about summary refs log tree commit diff
diff options
context:
space:
mode:
authorStarfall <us@starfall.systems>2022-05-04 12:00:22 -0500
committerStarfall <us@starfall.systems>2022-05-04 12:00:22 -0500
commite9b2e11520056d0ec822ac0862923d00c6a1289c (patch)
tree53b22a4fecda9846fc6c77cf4067c071a6287df0
parent9ec0ecda66745c892961a917b18354f42dfc1f19 (diff)
parent58ac5ae643dc57ffd20017c54e7be523deaef156 (diff)
Merge remote-tracking branch 'glitch/main'
-rw-r--r--Gemfile.lock118
-rw-r--r--app/controllers/api/v1/accounts/lookup_controller.rb2
-rw-r--r--app/controllers/authorize_interactions_controller.rb8
-rw-r--r--app/controllers/following_accounts_controller.rb5
-rw-r--r--app/controllers/oauth/tokens_controller.rb3
-rw-r--r--app/javascript/core/admin.js10
-rw-r--r--app/javascript/flavours/glitch/components/common_counter.js2
-rw-r--r--app/javascript/flavours/glitch/components/status_prepend.js2
-rw-r--r--app/javascript/flavours/glitch/components/status_visibility_icon.js2
-rw-r--r--app/javascript/flavours/glitch/features/account/components/header.js2
-rw-r--r--app/javascript/flavours/glitch/features/account_timeline/components/header.js4
-rw-r--r--app/javascript/flavours/glitch/features/account_timeline/index.js4
-rw-r--r--app/javascript/flavours/glitch/features/bookmarked_statuses/index.js2
-rw-r--r--app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.js8
-rw-r--r--app/javascript/flavours/glitch/features/compose/components/search_results.js6
-rw-r--r--app/javascript/flavours/glitch/features/compose/containers/warning_container.js4
-rw-r--r--app/javascript/flavours/glitch/features/compose/index.js2
-rw-r--r--app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.js7
-rw-r--r--app/javascript/flavours/glitch/features/direct_timeline/index.js32
-rw-r--r--app/javascript/flavours/glitch/features/directory/components/account_card.js2
-rw-r--r--app/javascript/flavours/glitch/features/favourited_statuses/index.js2
-rw-r--r--app/javascript/flavours/glitch/features/favourites/index.js2
-rw-r--r--app/javascript/flavours/glitch/features/getting_started_misc/index.js2
-rw-r--r--app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js2
-rw-r--r--app/javascript/flavours/glitch/features/notifications/components/column_settings.js2
-rw-r--r--app/javascript/flavours/glitch/features/pinned_statuses/index.js2
-rw-r--r--app/javascript/flavours/glitch/features/reblogs/index.js2
-rw-r--r--app/javascript/flavours/glitch/features/ui/components/boost_modal.js16
-rw-r--r--app/javascript/flavours/glitch/features/ui/components/favourite_modal.js16
-rw-r--r--app/javascript/flavours/glitch/styles/components/columns.scss2
-rw-r--r--app/javascript/flavours/glitch/styles/components/index.scss2
-rw-r--r--app/javascript/mastodon/components/common_counter.js2
-rw-r--r--app/javascript/mastodon/components/status.js4
-rw-r--r--app/javascript/mastodon/features/account/components/header.js2
-rw-r--r--app/javascript/mastodon/features/account_timeline/components/header.js4
-rw-r--r--app/javascript/mastodon/features/account_timeline/index.js4
-rw-r--r--app/javascript/mastodon/features/bookmarked_statuses/index.js2
-rw-r--r--app/javascript/mastodon/features/compose/components/action_bar.js2
-rw-r--r--app/javascript/mastodon/features/compose/components/privacy_dropdown.js10
-rw-r--r--app/javascript/mastodon/features/compose/components/search_results.js6
-rw-r--r--app/javascript/mastodon/features/compose/containers/warning_container.js4
-rw-r--r--app/javascript/mastodon/features/compose/index.js2
-rw-r--r--app/javascript/mastodon/features/direct_timeline/index.js3
-rw-r--r--app/javascript/mastodon/features/directory/components/account_card.js2
-rw-r--r--app/javascript/mastodon/features/explore/results.js2
-rw-r--r--app/javascript/mastodon/features/favourited_statuses/index.js2
-rw-r--r--app/javascript/mastodon/features/favourites/index.js2
-rw-r--r--app/javascript/mastodon/features/getting_started/index.js4
-rw-r--r--app/javascript/mastodon/features/keyboard_shortcuts/index.js4
-rw-r--r--app/javascript/mastodon/features/notifications/components/column_settings.js2
-rw-r--r--app/javascript/mastodon/features/pinned_statuses/index.js2
-rw-r--r--app/javascript/mastodon/features/reblogs/index.js2
-rw-r--r--app/javascript/mastodon/features/status/components/action_bar.js1
-rw-r--r--app/javascript/mastodon/features/ui/components/navigation_panel.js2
-rw-r--r--app/javascript/mastodon/locales/af.json87
-rw-r--r--app/javascript/mastodon/locales/ar.json17
-rw-r--r--app/javascript/mastodon/locales/ast.json23
-rw-r--r--app/javascript/mastodon/locales/bg.json17
-rw-r--r--app/javascript/mastodon/locales/bn.json17
-rw-r--r--app/javascript/mastodon/locales/br.json17
-rw-r--r--app/javascript/mastodon/locales/ca.json15
-rw-r--r--app/javascript/mastodon/locales/ckb.json17
-rw-r--r--app/javascript/mastodon/locales/co.json17
-rw-r--r--app/javascript/mastodon/locales/cs.json21
-rw-r--r--app/javascript/mastodon/locales/cy.json237
-rw-r--r--app/javascript/mastodon/locales/da.json19
-rw-r--r--app/javascript/mastodon/locales/de.json19
-rw-r--r--app/javascript/mastodon/locales/defaultMessages.json80
-rw-r--r--app/javascript/mastodon/locales/el.json15
-rw-r--r--app/javascript/mastodon/locales/en.json17
-rw-r--r--app/javascript/mastodon/locales/eo.json17
-rw-r--r--app/javascript/mastodon/locales/es-AR.json15
-rw-r--r--app/javascript/mastodon/locales/es-MX.json19
-rw-r--r--app/javascript/mastodon/locales/es.json17
-rw-r--r--app/javascript/mastodon/locales/et.json17
-rw-r--r--app/javascript/mastodon/locales/eu.json17
-rw-r--r--app/javascript/mastodon/locales/fa.json17
-rw-r--r--app/javascript/mastodon/locales/fi.json17
-rw-r--r--app/javascript/mastodon/locales/fr.json15
-rw-r--r--app/javascript/mastodon/locales/ga.json45
-rw-r--r--app/javascript/mastodon/locales/gd.json17
-rw-r--r--app/javascript/mastodon/locales/gl.json17
-rw-r--r--app/javascript/mastodon/locales/he.json17
-rw-r--r--app/javascript/mastodon/locales/hi.json15
-rw-r--r--app/javascript/mastodon/locales/hr.json17
-rw-r--r--app/javascript/mastodon/locales/hu.json17
-rw-r--r--app/javascript/mastodon/locales/hy.json75
-rw-r--r--app/javascript/mastodon/locales/id.json17
-rw-r--r--app/javascript/mastodon/locales/io.json107
-rw-r--r--app/javascript/mastodon/locales/is.json31
-rw-r--r--app/javascript/mastodon/locales/it.json17
-rw-r--r--app/javascript/mastodon/locales/ja.json75
-rw-r--r--app/javascript/mastodon/locales/ka.json17
-rw-r--r--app/javascript/mastodon/locales/kab.json17
-rw-r--r--app/javascript/mastodon/locales/kk.json17
-rw-r--r--app/javascript/mastodon/locales/kn.json13
-rw-r--r--app/javascript/mastodon/locales/ko.json17
-rw-r--r--app/javascript/mastodon/locales/ku.json15
-rw-r--r--app/javascript/mastodon/locales/kw.json17
-rw-r--r--app/javascript/mastodon/locales/lt.json13
-rw-r--r--app/javascript/mastodon/locales/lv.json15
-rw-r--r--app/javascript/mastodon/locales/mk.json17
-rw-r--r--app/javascript/mastodon/locales/ml.json17
-rw-r--r--app/javascript/mastodon/locales/mr.json13
-rw-r--r--app/javascript/mastodon/locales/ms.json17
-rw-r--r--app/javascript/mastodon/locales/nl.json17
-rw-r--r--app/javascript/mastodon/locales/nn.json59
-rw-r--r--app/javascript/mastodon/locales/no.json59
-rw-r--r--app/javascript/mastodon/locales/oc.json17
-rw-r--r--app/javascript/mastodon/locales/pa.json13
-rw-r--r--app/javascript/mastodon/locales/pl.json17
-rw-r--r--app/javascript/mastodon/locales/pt-BR.json19
-rw-r--r--app/javascript/mastodon/locales/pt-PT.json17
-rw-r--r--app/javascript/mastodon/locales/ro.json15
-rw-r--r--app/javascript/mastodon/locales/ru.json17
-rw-r--r--app/javascript/mastodon/locales/sa.json13
-rw-r--r--app/javascript/mastodon/locales/sc.json17
-rw-r--r--app/javascript/mastodon/locales/si.json15
-rw-r--r--app/javascript/mastodon/locales/sk.json17
-rw-r--r--app/javascript/mastodon/locales/sl.json17
-rw-r--r--app/javascript/mastodon/locales/sq.json17
-rw-r--r--app/javascript/mastodon/locales/sr-Latn.json17
-rw-r--r--app/javascript/mastodon/locales/sr.json17
-rw-r--r--app/javascript/mastodon/locales/sv.json35
-rw-r--r--app/javascript/mastodon/locales/szl.json13
-rw-r--r--app/javascript/mastodon/locales/ta.json17
-rw-r--r--app/javascript/mastodon/locales/tai.json13
-rw-r--r--app/javascript/mastodon/locales/te.json17
-rw-r--r--app/javascript/mastodon/locales/th.json15
-rw-r--r--app/javascript/mastodon/locales/tr.json45
-rw-r--r--app/javascript/mastodon/locales/tt.json33
-rw-r--r--app/javascript/mastodon/locales/ug.json13
-rw-r--r--app/javascript/mastodon/locales/uk.json17
-rw-r--r--app/javascript/mastodon/locales/ur.json13
-rw-r--r--app/javascript/mastodon/locales/vi.json23
-rw-r--r--app/javascript/mastodon/locales/zgh.json15
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json291
-rw-r--r--app/javascript/mastodon/locales/zh-HK.json17
-rw-r--r--app/javascript/mastodon/locales/zh-TW.json57
-rw-r--r--app/javascript/styles/mastodon/components.scss4
-rw-r--r--app/lib/redis_configuration.rb7
-rw-r--r--app/lib/webfinger.rb13
-rw-r--r--app/models/concerns/redisable.rb2
-rw-r--r--app/models/email_domain_block.rb24
-rw-r--r--app/models/status.rb2
-rw-r--r--app/models/trends/base.rb37
-rw-r--r--app/models/trends/links.rb42
-rw-r--r--app/models/trends/statuses.rb69
-rw-r--r--app/models/trends/tags.rb17
-rw-r--r--app/services/activitypub/fetch_featured_collection_service.rb34
-rw-r--r--app/services/resolve_account_service.rb2
-rw-r--r--app/validators/email_mx_validator.rb6
-rw-r--r--app/views/admin/instances/index.html.haml4
-rw-r--r--app/views/admin/report_notes/_report_note.html.haml5
-rw-r--r--app/workers/scheduler/email_domain_block_refresh_scheduler.rb31
-rw-r--r--config/initializers/stoplight.rb6
-rw-r--r--config/locales/activerecord.io.yml31
-rw-r--r--config/locales/activerecord.ja.yml4
-rw-r--r--config/locales/ar.yml3
-rw-r--r--config/locales/ca.yml2
-rw-r--r--config/locales/cs.yml2
-rw-r--r--config/locales/cy.yml2
-rw-r--r--config/locales/da.yml8
-rw-r--r--config/locales/devise.ja.yml22
-rw-r--r--config/locales/devise.zh-CN.yml2
-rw-r--r--config/locales/doorkeeper.fa.yml10
-rw-r--r--config/locales/doorkeeper.hy.yml22
-rw-r--r--config/locales/doorkeeper.io.yml140
-rw-r--r--config/locales/doorkeeper.ja.yml6
-rw-r--r--config/locales/el.yml3
-rw-r--r--config/locales/en-GB.yml12
-rw-r--r--config/locales/en.yml2
-rw-r--r--config/locales/es-MX.yml1
-rw-r--r--config/locales/es.yml2
-rw-r--r--config/locales/fr.yml10
-rw-r--r--config/locales/gd.yml18
-rw-r--r--config/locales/gl.yml4
-rw-r--r--config/locales/hu.yml2
-rw-r--r--config/locales/hy.yml74
-rw-r--r--config/locales/id.yml2
-rw-r--r--config/locales/io.yml3
-rw-r--r--config/locales/is.yml2
-rw-r--r--config/locales/it.yml2
-rw-r--r--config/locales/ja.yml438
-rw-r--r--config/locales/ko.yml2
-rw-r--r--config/locales/pl.yml12
-rw-r--r--config/locales/pt-PT.yml16
-rw-r--r--config/locales/ru.yml4
-rw-r--r--config/locales/simple_form.ckb.yml25
-rw-r--r--config/locales/simple_form.gd.yml2
-rw-r--r--config/locales/simple_form.is.yml6
-rw-r--r--config/locales/simple_form.ja.yml14
-rw-r--r--config/locales/simple_form.sq.yml2
-rw-r--r--config/locales/sq.yml2
-rw-r--r--config/locales/sv.yml36
-rw-r--r--config/locales/th.yml3
-rw-r--r--config/locales/tr.yml2
-rw-r--r--config/locales/uk.yml25
-rw-r--r--config/locales/vi.yml2
-rw-r--r--config/locales/zh-CN.yml10
-rw-r--r--config/locales/zh-TW.yml2
-rw-r--r--config/sidekiq.yml4
-rw-r--r--db/migrate/20180615122121_add_autofollow_to_invites.rb2
-rw-r--r--db/post_migrate/20220429101025_remove_ips_from_email_domain_blocks.rb12
-rw-r--r--db/post_migrate/20220429101850_clear_email_domain_blocks.rb14
-rw-r--r--db/schema.rb4
-rw-r--r--lib/mastodon/cli_helper.rb12
-rw-r--r--lib/mastodon/rack_middleware.rb2
-rw-r--r--lib/mastodon/search_cli.rb7
-rw-r--r--lib/mastodon/settings_cli.rb14
-rw-r--r--lib/mastodon/sidekiq_middleware.rb2
-rw-r--r--lib/tasks/emojis.rake14
-rw-r--r--package.json14
-rw-r--r--public/emoji/1f327_border.svg4
-rw-r--r--public/emoji/1f328_border.svg4
-rw-r--r--public/emoji/1f329_border.svg4
-rw-r--r--public/emoji/1f359_border.svg6
-rw-r--r--public/emoji/1f35a_border.svg8
-rw-r--r--public/emoji/1f365_border.svg4
-rw-r--r--public/emoji/1f3d0_border.svg4
-rw-r--r--public/emoji/1f3f3_border.svg10
-rw-r--r--public/emoji/1f40f_border.svg18
-rw-r--r--public/emoji/1f410_border.svg10
-rw-r--r--public/emoji/1f411_border.svg8
-rw-r--r--public/emoji/1f413_border.svg8
-rw-r--r--public/emoji/1f414_border.svg14
-rw-r--r--public/emoji/1f440_border.svg20
-rw-r--r--public/emoji/1f47b_border.svg10
-rw-r--r--public/emoji/1f47d_border.svg4
-rw-r--r--public/emoji/1f480_border.svg8
-rw-r--r--public/emoji/1f4a8_border.svg2
-rw-r--r--public/emoji/1f4ac_border.svg8
-rw-r--r--public/emoji/1f4ad_border.svg4
-rw-r--r--public/emoji/1f4c3_border.svg6
-rw-r--r--public/emoji/1f507_border.svg6
-rw-r--r--public/emoji/1f508_border.svg4
-rw-r--r--public/emoji/1f509_border.svg6
-rw-r--r--public/emoji/1f50a_border.svg10
-rw-r--r--public/emoji/1f54a_border.svg10
-rw-r--r--public/emoji/25ab_border.svg2
-rw-r--r--public/emoji/25fb_border.svg2
-rw-r--r--public/emoji/25fd_border.svg2
-rw-r--r--public/emoji/2601_border.svg4
-rw-r--r--public/emoji/2620_border.svg8
-rw-r--r--public/emoji/26aa_border.svg2
-rw-r--r--public/emoji/26be_border.svg6
-rw-r--r--public/emoji/26f8_border.svg10
-rw-r--r--public/emoji/2754_border.svg4
-rw-r--r--public/emoji/2755_border.svg4
-rw-r--r--public/emoji/2b1c_border.svg2
-rw-r--r--spec/services/activitypub/fetch_featured_collection_service_spec.rb123
-rw-r--r--spec/services/resolve_account_service_spec.rb2
-rw-r--r--spec/validators/email_mx_validator_spec.rb60
-rw-r--r--yarn.lock513
254 files changed, 2848 insertions, 2313 deletions
diff --git a/Gemfile.lock b/Gemfile.lock
index 32a4a17fc..2aa318499 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,40 +1,40 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    actioncable (6.1.5)
-      actionpack (= 6.1.5)
-      activesupport (= 6.1.5)
+    actioncable (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (6.1.5)
-      actionpack (= 6.1.5)
-      activejob (= 6.1.5)
-      activerecord (= 6.1.5)
-      activestorage (= 6.1.5)
-      activesupport (= 6.1.5)
+    actionmailbox (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      activejob (= 6.1.5.1)
+      activerecord (= 6.1.5.1)
+      activestorage (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       mail (>= 2.7.1)
-    actionmailer (6.1.5)
-      actionpack (= 6.1.5)
-      actionview (= 6.1.5)
-      activejob (= 6.1.5)
-      activesupport (= 6.1.5)
+    actionmailer (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      actionview (= 6.1.5.1)
+      activejob (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.1.5)
-      actionview (= 6.1.5)
-      activesupport (= 6.1.5)
+    actionpack (6.1.5.1)
+      actionview (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       rack (~> 2.0, >= 2.0.9)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actiontext (6.1.5)
-      actionpack (= 6.1.5)
-      activerecord (= 6.1.5)
-      activestorage (= 6.1.5)
-      activesupport (= 6.1.5)
+    actiontext (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      activerecord (= 6.1.5.1)
+      activestorage (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       nokogiri (>= 1.8.5)
-    actionview (6.1.5)
-      activesupport (= 6.1.5)
+    actionview (6.1.5.1)
+      activesupport (= 6.1.5.1)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
@@ -45,22 +45,22 @@ GEM
       case_transform (>= 0.2)
       jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
     active_record_query_trace (1.8)
-    activejob (6.1.5)
-      activesupport (= 6.1.5)
+    activejob (6.1.5.1)
+      activesupport (= 6.1.5.1)
       globalid (>= 0.3.6)
-    activemodel (6.1.5)
-      activesupport (= 6.1.5)
-    activerecord (6.1.5)
-      activemodel (= 6.1.5)
-      activesupport (= 6.1.5)
-    activestorage (6.1.5)
-      actionpack (= 6.1.5)
-      activejob (= 6.1.5)
-      activerecord (= 6.1.5)
-      activesupport (= 6.1.5)
+    activemodel (6.1.5.1)
+      activesupport (= 6.1.5.1)
+    activerecord (6.1.5.1)
+      activemodel (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
+    activestorage (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      activejob (= 6.1.5.1)
+      activerecord (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       marcel (~> 1.0)
       mini_mime (>= 1.1.0)
-    activesupport (6.1.5)
+    activesupport (6.1.5.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -81,7 +81,7 @@ GEM
     attr_required (1.0.1)
     awrence (1.1.1)
     aws-eventstream (1.2.0)
-    aws-partitions (1.579.0)
+    aws-partitions (1.582.0)
     aws-sdk-core (3.130.2)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.525.0)
@@ -90,7 +90,7 @@ GEM
     aws-sdk-kms (1.56.0)
       aws-sdk-core (~> 3, >= 3.127.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.113.1)
+    aws-sdk-s3 (1.113.2)
       aws-sdk-core (~> 3, >= 3.127.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.4)
@@ -377,7 +377,7 @@ GEM
       activesupport (>= 4)
       railties (>= 4)
       request_store (~> 1.0)
-    loofah (2.16.0)
+    loofah (2.17.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mail (2.7.1)
@@ -450,7 +450,7 @@ GEM
     pastel (0.8.0)
       tty-color (~> 0.5)
     pg (1.3.5)
-    pghero (2.8.2)
+    pghero (2.8.3)
       activerecord (>= 5)
     pkg-config (1.4.7)
     posix-spawn (0.3.15)
@@ -492,20 +492,20 @@ GEM
       rack
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
-    rails (6.1.5)
-      actioncable (= 6.1.5)
-      actionmailbox (= 6.1.5)
-      actionmailer (= 6.1.5)
-      actionpack (= 6.1.5)
-      actiontext (= 6.1.5)
-      actionview (= 6.1.5)
-      activejob (= 6.1.5)
-      activemodel (= 6.1.5)
-      activerecord (= 6.1.5)
-      activestorage (= 6.1.5)
-      activesupport (= 6.1.5)
+    rails (6.1.5.1)
+      actioncable (= 6.1.5.1)
+      actionmailbox (= 6.1.5.1)
+      actionmailer (= 6.1.5.1)
+      actionpack (= 6.1.5.1)
+      actiontext (= 6.1.5.1)
+      actionview (= 6.1.5.1)
+      activejob (= 6.1.5.1)
+      activemodel (= 6.1.5.1)
+      activerecord (= 6.1.5.1)
+      activestorage (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       bundler (>= 1.15.0)
-      railties (= 6.1.5)
+      railties (= 6.1.5.1)
       sprockets-rails (>= 2.0.0)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
@@ -521,9 +521,9 @@ GEM
       railties (>= 6.0.0, < 7)
     rails-settings-cached (0.6.6)
       rails (>= 4.2.0)
-    railties (6.1.5)
-      actionpack (= 6.1.5)
-      activesupport (= 6.1.5)
+    railties (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
@@ -555,10 +555,10 @@ GEM
     rspec-expectations (3.11.0)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.11.0)
-    rspec-mocks (3.11.0)
+    rspec-mocks (3.11.1)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.11.0)
-    rspec-rails (5.1.1)
+    rspec-rails (5.1.2)
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       railties (>= 5.2)
diff --git a/app/controllers/api/v1/accounts/lookup_controller.rb b/app/controllers/api/v1/accounts/lookup_controller.rb
index aee6be18a..8597f891d 100644
--- a/app/controllers/api/v1/accounts/lookup_controller.rb
+++ b/app/controllers/api/v1/accounts/lookup_controller.rb
@@ -12,5 +12,7 @@ class Api::V1::Accounts::LookupController < Api::BaseController
 
   def set_account
     @account = ResolveAccountService.new.call(params[:acct], skip_webfinger: true) || raise(ActiveRecord::RecordNotFound)
+  rescue Addressable::URI::InvalidURIError
+    raise(ActiveRecord::RecordNotFound)
   end
 end
diff --git a/app/controllers/authorize_interactions_controller.rb b/app/controllers/authorize_interactions_controller.rb
index f0bcac75b..97fe4a9ab 100644
--- a/app/controllers/authorize_interactions_controller.rb
+++ b/app/controllers/authorize_interactions_controller.rb
@@ -14,7 +14,7 @@ class AuthorizeInteractionsController < ApplicationController
     if @resource.is_a?(Account)
       render :show
     elsif @resource.is_a?(Status)
-      redirect_to web_url("statuses/#{@resource.id}")
+      redirect_to web_url("@#{@resource.account.pretty_acct}/#{@resource.id}")
     else
       render :error
     end
@@ -26,15 +26,17 @@ class AuthorizeInteractionsController < ApplicationController
     else
       render :error
     end
-  rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
+  rescue ActiveRecord::RecordNotFound
     render :error
   end
 
   private
 
   def set_resource
-    @resource = located_resource || render(:error)
+    @resource = located_resource
     authorize(@resource, :show?) if @resource.is_a?(Status)
+  rescue Mastodon::NotPermittedError
+    not_found
   end
 
   def located_resource
diff --git a/app/controllers/following_accounts_controller.rb b/app/controllers/following_accounts_controller.rb
index bc291c962..11c6b6d50 100644
--- a/app/controllers/following_accounts_controller.rb
+++ b/app/controllers/following_accounts_controller.rb
@@ -22,7 +22,10 @@ class FollowingAccountsController < ApplicationController
       end
 
       format.json do
-        raise Mastodon::NotPermittedError if page_requested? && @account.hide_collections?
+        if page_requested? && @account.hide_collections?
+          forbidden
+          next
+        end
 
         expires_in(page_requested? ? 0 : 3.minutes, public: public_fetch_mode?)
 
diff --git a/app/controllers/oauth/tokens_controller.rb b/app/controllers/oauth/tokens_controller.rb
index fa6d58f25..34087b20b 100644
--- a/app/controllers/oauth/tokens_controller.rb
+++ b/app/controllers/oauth/tokens_controller.rb
@@ -2,7 +2,8 @@
 
 class Oauth::TokensController < Doorkeeper::TokensController
   def revoke
-    unsubscribe_for_token if authorized? && token.accessible?
+    unsubscribe_for_token if token.present? && authorized? && token.accessible?
+
     super
   end
 
diff --git a/app/javascript/core/admin.js b/app/javascript/core/admin.js
index d2db89ca7..ef0a8f267 100644
--- a/app/javascript/core/admin.js
+++ b/app/javascript/core/admin.js
@@ -101,4 +101,14 @@ ready(() => {
 
   const registrationMode = document.getElementById('form_admin_settings_registrations_mode');
   if (registrationMode) onChangeRegistrationMode(registrationMode);
+
+  document.querySelector('a#add-instance-button')?.addEventListener('click', (e) => {
+    const domain = document.getElementById('by_domain')?.value;
+
+    if (domain) {
+      const url = new URL(event.target.href);
+      url.searchParams.set('_domain', domain);
+      e.target.href = url;
+    }
+  });
 });
diff --git a/app/javascript/flavours/glitch/components/common_counter.js b/app/javascript/flavours/glitch/components/common_counter.js
index e10cd9b76..dd9b62de9 100644
--- a/app/javascript/flavours/glitch/components/common_counter.js
+++ b/app/javascript/flavours/glitch/components/common_counter.js
@@ -25,7 +25,7 @@ export function counterRenderer(counterType, isBold = true) {
     return (displayNumber, pluralReady) => (
       <FormattedMessage
         id='account.statuses_counter'
-        defaultMessage='{count, plural, one {{counter} Toot} other {{counter} Toots}}'
+        defaultMessage='{count, plural, one {{counter} Post} other {{counter} Posts}}'
         values={{
           count: pluralReady,
           counter: renderCounter(displayNumber),
diff --git a/app/javascript/flavours/glitch/components/status_prepend.js b/app/javascript/flavours/glitch/components/status_prepend.js
index 1661ca8f5..d85009362 100644
--- a/app/javascript/flavours/glitch/components/status_prepend.js
+++ b/app/javascript/flavours/glitch/components/status_prepend.js
@@ -38,7 +38,7 @@ export default class StatusPrepend extends React.PureComponent {
     switch (type) {
     case 'featured':
       return (
-        <FormattedMessage id='status.pinned' defaultMessage='Pinned toot' />
+        <FormattedMessage id='status.pinned' defaultMessage='Pinned post' />
       );
     case 'reblogged_by':
       return (
diff --git a/app/javascript/flavours/glitch/components/status_visibility_icon.js b/app/javascript/flavours/glitch/components/status_visibility_icon.js
index e2e0f30b8..07d56c7a8 100644
--- a/app/javascript/flavours/glitch/components/status_visibility_icon.js
+++ b/app/javascript/flavours/glitch/components/status_visibility_icon.js
@@ -9,7 +9,7 @@ const messages = defineMessages({
   public: { id: 'privacy.public.short', defaultMessage: 'Public' },
   unlisted: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },
   private: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },
-  direct: { id: 'privacy.direct.short', defaultMessage: 'Direct' },
+  direct: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' },
 });
 
 export default @injectIntl
diff --git a/app/javascript/flavours/glitch/features/account/components/header.js b/app/javascript/flavours/glitch/features/account/components/header.js
index 4b0494fff..68c6bae8e 100644
--- a/app/javascript/flavours/glitch/features/account/components/header.js
+++ b/app/javascript/flavours/glitch/features/account/components/header.js
@@ -37,7 +37,7 @@ const messages = defineMessages({
   showReblogs: { id: 'account.show_reblogs', defaultMessage: 'Show boosts from @{name}' },
   enableNotifications: { id: 'account.enable_notifications', defaultMessage: 'Notify me when @{name} posts' },
   disableNotifications: { id: 'account.disable_notifications', defaultMessage: 'Stop notifying me when @{name} posts' },
-  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
+  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
   preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
   follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
   favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
diff --git a/app/javascript/flavours/glitch/features/account_timeline/components/header.js b/app/javascript/flavours/glitch/features/account_timeline/components/header.js
index e70f011b7..d6e607a37 100644
--- a/app/javascript/flavours/glitch/features/account_timeline/components/header.js
+++ b/app/javascript/flavours/glitch/features/account_timeline/components/header.js
@@ -128,8 +128,8 @@ export default class Header extends ImmutablePureComponent {
 
         {!hideTabs && (
           <div className='account__section-headline'>
-            <NavLink exact to={`/@${account.get('acct')}`}><FormattedMessage id='account.posts' defaultMessage='Toots' /></NavLink>
-            <NavLink exact to={`/@${account.get('acct')}/with_replies`}><FormattedMessage id='account.posts_with_replies' defaultMessage='Toots with replies' /></NavLink>
+            <NavLink exact to={`/@${account.get('acct')}`}><FormattedMessage id='account.posts' defaultMessage='Posts' /></NavLink>
+            <NavLink exact to={`/@${account.get('acct')}/with_replies`}><FormattedMessage id='account.posts_with_replies' defaultMessage='Posts with replies' /></NavLink>
             <NavLink exact to={`/@${account.get('acct')}/media`}><FormattedMessage id='account.media' defaultMessage='Media' /></NavLink>
           </div>
         )}
diff --git a/app/javascript/flavours/glitch/features/account_timeline/index.js b/app/javascript/flavours/glitch/features/account_timeline/index.js
index 776687486..6d2df5c6f 100644
--- a/app/javascript/flavours/glitch/features/account_timeline/index.js
+++ b/app/javascript/flavours/glitch/features/account_timeline/index.js
@@ -44,7 +44,7 @@ const mapStateToProps = (state, { params: { acct, id }, withReplies = false }) =
 };
 
 const RemoteHint = ({ url }) => (
-  <TimelineHint url={url} resource={<FormattedMessage id='timeline_hint.resources.statuses' defaultMessage='Older toots' />} />
+  <TimelineHint url={url} resource={<FormattedMessage id='timeline_hint.resources.statuses' defaultMessage='Older posts' />} />
 );
 
 RemoteHint.propTypes = {
@@ -156,7 +156,7 @@ class AccountTimeline extends ImmutablePureComponent {
     } else if (remote && statusIds.isEmpty()) {
       emptyMessage = <RemoteHint url={remoteUrl} />;
     } else {
-      emptyMessage = <FormattedMessage id='empty_column.account_timeline' defaultMessage='No toots here!' />;
+      emptyMessage = <FormattedMessage id='empty_column.account_timeline' defaultMessage='No posts found' />;
     }
 
     const remoteMessage = remote ? <RemoteHint url={remoteUrl} /> : null;
diff --git a/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js b/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js
index 58b9e6396..ada8fb068 100644
--- a/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js
+++ b/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js
@@ -70,7 +70,7 @@ class Bookmarks extends ImmutablePureComponent {
     const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;
     const pinned = !!columnId;
 
-    const emptyMessage = <FormattedMessage id='empty_column.bookmarked_statuses' defaultMessage="You don't have any bookmarked toots yet. When you bookmark one, it will show up here." />;
+    const emptyMessage = <FormattedMessage id='empty_column.bookmarked_statuses' defaultMessage="You don't have any bookmarked posts yet. When you bookmark one, it will show up here." />;
 
     return (
       <Column bindToDocument={!multiColumn} ref={this.setRef} name='bookmarks'>
diff --git a/app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.js b/app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.js
index c8e783d22..14364b0a0 100644
--- a/app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.js
+++ b/app/javascript/flavours/glitch/features/compose/components/privacy_dropdown.js
@@ -6,12 +6,12 @@ import Dropdown from './dropdown';
 
 const messages = defineMessages({
   public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
-  public_long: { id: 'privacy.public.long', defaultMessage: 'Visible for all, shown in public timelines' },
+  public_long: { id: 'privacy.public.long', defaultMessage: 'Visible for all' },
   unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },
-  unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Visible for all, but not in public timelines' },
-  private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },
+  unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Visible for all, but opted-out of discovery features' },
+  private_short: { id: 'privacy.private.short', defaultMessage: 'Followers only' },
   private_long: { id: 'privacy.private.long', defaultMessage: 'Visible for followers only' },
-  direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },
+  direct_short: { id: 'privacy.direct.short', defaultMessage: 'Only people I mention' },
   direct_long: { id: 'privacy.direct.long', defaultMessage: 'Visible for mentioned users only' },
   change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' },
 });
diff --git a/app/javascript/flavours/glitch/features/compose/components/search_results.js b/app/javascript/flavours/glitch/features/compose/components/search_results.js
index cbc1f35e5..d92a6bf6b 100644
--- a/app/javascript/flavours/glitch/features/compose/components/search_results.js
+++ b/app/javascript/flavours/glitch/features/compose/components/search_results.js
@@ -72,10 +72,10 @@ class SearchResults extends ImmutablePureComponent {
     } else if(results.get('statuses') && results.get('statuses').size === 0 && !searchEnabled && !(searchTerm.startsWith('@') || searchTerm.startsWith('#') || searchTerm.includes(' '))) {
       statuses = (
         <section className='search-results__section'>
-          <h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>
+          <h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></h5>
 
           <div className='search-results__info'>
-            <FormattedMessage id='search_results.statuses_fts_disabled' defaultMessage='Searching toots by their content is not enabled on this Mastodon server.' />
+            <FormattedMessage id='search_results.statuses_fts_disabled' defaultMessage='Searching posts by their content is not enabled on this Mastodon server.' />
           </div>
         </section>
       );
@@ -101,7 +101,7 @@ class SearchResults extends ImmutablePureComponent {
       count   += results.get('statuses').size;
       statuses = (
         <section className='search-results__section'>
-          <h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>
+          <h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></h5>
 
           {results.get('statuses').map(statusId => <StatusContainer id={statusId} key={statusId}/>)}
 
diff --git a/app/javascript/flavours/glitch/features/compose/containers/warning_container.js b/app/javascript/flavours/glitch/features/compose/containers/warning_container.js
index ab9d2123a..5fccaa442 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/warning_container.js
+++ b/app/javascript/flavours/glitch/features/compose/containers/warning_container.js
@@ -43,13 +43,13 @@ const WarningWrapper = ({ needsLockWarning, hashtagWarning, directMessageWarning
   }
 
   if (hashtagWarning) {
-    return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage="This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag." />} />;
+    return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage="This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag." />} />;
   }
 
   if (directMessageWarning) {
     const message = (
       <span>
-        <FormattedMessage id='compose_form.direct_message_warning' defaultMessage='This toot will only be sent to all the mentioned users.' /> {!!termsLink && <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a>}
+        <FormattedMessage id='compose_form.encryption_warning' defaultMessage='Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.' /> {!!termsLink && <a href={termsLink} target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a>}
       </span>
     );
 
diff --git a/app/javascript/flavours/glitch/features/compose/index.js b/app/javascript/flavours/glitch/features/compose/index.js
index cb6c54a48..b9a8e0245 100644
--- a/app/javascript/flavours/glitch/features/compose/index.js
+++ b/app/javascript/flavours/glitch/features/compose/index.js
@@ -16,7 +16,7 @@ import { cycleElefriendCompose } from 'flavours/glitch/actions/compose';
 import HeaderContainer from './containers/header_container';
 
 const messages = defineMessages({
-  compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },
+  compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new post' },
 });
 
 const mapStateToProps = (state, ownProps) => ({
diff --git a/app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.js b/app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.js
index ce14e2a9d..18c3c7e21 100644
--- a/app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.js
+++ b/app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.js
@@ -2,6 +2,7 @@ import React from 'react';
 import PropTypes from 'prop-types';
 import ImmutablePropTypes from 'react-immutable-proptypes';
 import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
+import SettingToggle from 'flavours/glitch/features/notifications/components/setting_toggle';
 import SettingText from '../../../components/setting_text';
 
 const messages = defineMessages({
@@ -23,6 +24,12 @@ class ColumnSettings extends React.PureComponent {
 
     return (
       <div>
+        <span className='column-settings__section'><FormattedMessage id='home.column_settings.basic' defaultMessage='Basic' /></span>
+
+        <div className='column-settings__row'>
+          <SettingToggle settings={settings} settingPath={['conversations']} onChange={onChange} label={<FormattedMessage id='direct.group_by_conversations' defaultMessage='Group by conversation' />} />
+        </div>
+
         <span className='column-settings__section'><FormattedMessage id='home.column_settings.advanced' defaultMessage='Advanced' /></span>
 
         <div className='column-settings__row'>
diff --git a/app/javascript/flavours/glitch/features/direct_timeline/index.js b/app/javascript/flavours/glitch/features/direct_timeline/index.js
index 7741c6922..75ca19d17 100644
--- a/app/javascript/flavours/glitch/features/direct_timeline/index.js
+++ b/app/javascript/flavours/glitch/features/direct_timeline/index.js
@@ -10,7 +10,6 @@ import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/col
 import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 import ColumnSettingsContainer from './containers/column_settings_container';
 import { connectDirectStream } from 'flavours/glitch/actions/streaming';
-import { changeSetting } from 'flavours/glitch/actions/settings';
 import ConversationsListContainer from './containers/conversations_list_container';
 
 const messages = defineMessages({
@@ -99,14 +98,6 @@ class DirectTimeline extends React.PureComponent {
     this.props.dispatch(expandConversations({ maxId }));
   }
 
-  handleTimelineClick = () => {
-    this.props.dispatch(changeSetting(['direct', 'conversations'], false));
-  }
-
-  handleConversationsClick = () => {
-    this.props.dispatch(changeSetting(['direct', 'conversations'], true));
-  }
-
   render () {
     const { intl, hasUnread, columnId, multiColumn, conversationsMode } = this.props;
     const pinned = !!columnId;
@@ -119,6 +110,7 @@ class DirectTimeline extends React.PureComponent {
           scrollKey={`direct_timeline-${columnId}`}
           timelineId='direct'
           onLoadMore={this.handleLoadMore}
+          prepend={<div className='follow_requests-unlocked_explanation'><span><FormattedMessage id='compose_form.encryption_warning' defaultMessage='Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a></span></div>}
           emptyMessage={<FormattedMessage id='empty_column.direct' defaultMessage="You don't have any direct messages yet. When you send or receive one, it will show up here." />}
         />
       );
@@ -129,6 +121,7 @@ class DirectTimeline extends React.PureComponent {
           scrollKey={`direct_timeline-${columnId}`}
           timelineId='direct'
           onLoadMore={this.handleLoadMoreTimeline}
+          prepend={<div className='follow_requests-unlocked_explanation'><span><FormattedMessage id='compose_form.encryption_warning' defaultMessage='Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a></span></div>}
           emptyMessage={<FormattedMessage id='empty_column.direct' defaultMessage="You don't have any direct messages yet. When you send or receive one, it will show up here." />}
         />
       );
@@ -149,27 +142,6 @@ class DirectTimeline extends React.PureComponent {
           <ColumnSettingsContainer />
         </ColumnHeader>
 
-        <div className='notification__filter-bar'>
-          <button
-            className={conversationsMode ? 'active' : ''}
-            onClick={this.handleConversationsClick}
-          >
-            <FormattedMessage
-              id='direct.conversations_mode'
-              defaultMessage='Conversations'
-            />
-          </button>
-          <button
-            className={conversationsMode ? '' : 'active'}
-            onClick={this.handleTimelineClick}
-          >
-            <FormattedMessage
-              id='direct.timeline_mode'
-              defaultMessage='Timeline'
-            />
-          </button>
-        </div>
-
         {contents}
       </Column>
     );
diff --git a/app/javascript/flavours/glitch/features/directory/components/account_card.js b/app/javascript/flavours/glitch/features/directory/components/account_card.js
index c9ef5850c..6c554336c 100644
--- a/app/javascript/flavours/glitch/features/directory/components/account_card.js
+++ b/app/javascript/flavours/glitch/features/directory/components/account_card.js
@@ -191,7 +191,7 @@ class AccountCard extends ImmutablePureComponent {
             <div className='account-card__counters__item'>
               <ShortNumber value={account.get('statuses_count')} />
               <small>
-                <FormattedMessage id='account.posts' defaultMessage='Toots' />
+                <FormattedMessage id='account.posts' defaultMessage='Posts' />
               </small>
             </div>
 
diff --git a/app/javascript/flavours/glitch/features/favourited_statuses/index.js b/app/javascript/flavours/glitch/features/favourited_statuses/index.js
index c6470ba74..4df3aaa64 100644
--- a/app/javascript/flavours/glitch/features/favourited_statuses/index.js
+++ b/app/javascript/flavours/glitch/features/favourited_statuses/index.js
@@ -70,7 +70,7 @@ class Favourites extends ImmutablePureComponent {
     const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;
     const pinned = !!columnId;
 
-    const emptyMessage = <FormattedMessage id='empty_column.favourited_statuses' defaultMessage="You don't have any favourite toots yet. When you favourite one, it will show up here." />;
+    const emptyMessage = <FormattedMessage id='empty_column.favourited_statuses' defaultMessage="You don't have any favourite posts yet. When you favourite one, it will show up here." />;
 
     return (
       <Column bindToDocument={!multiColumn} ref={this.setRef} name='favourites' label={intl.formatMessage(messages.heading)}>
diff --git a/app/javascript/flavours/glitch/features/favourites/index.js b/app/javascript/flavours/glitch/features/favourites/index.js
index bd6f782ce..a51562e71 100644
--- a/app/javascript/flavours/glitch/features/favourites/index.js
+++ b/app/javascript/flavours/glitch/features/favourites/index.js
@@ -68,7 +68,7 @@ class Favourites extends ImmutablePureComponent {
       );
     }
 
-    const emptyMessage = <FormattedMessage id='empty_column.favourites' defaultMessage='No one has favourited this toot yet. When someone does, they will show up here.' />;
+    const emptyMessage = <FormattedMessage id='empty_column.favourites' defaultMessage='No one has favourited this post yet. When someone does, they will show up here.' />;
 
     return (
       <Column ref={this.setRef}>
diff --git a/app/javascript/flavours/glitch/features/getting_started_misc/index.js b/app/javascript/flavours/glitch/features/getting_started_misc/index.js
index 570fe78bf..de354d6b1 100644
--- a/app/javascript/flavours/glitch/features/getting_started_misc/index.js
+++ b/app/javascript/flavours/glitch/features/getting_started_misc/index.js
@@ -18,7 +18,7 @@ const messages = defineMessages({
   mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
   info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' },
   show_me_around: { id: 'getting_started.onboarding', defaultMessage: 'Show me around' },
-  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
+  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
   info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' },
   keyboard_shortcuts: { id: 'navigation_bar.keyboard_shortcuts', defaultMessage: 'Keyboard shortcuts' },
   featured_users: { id: 'navigation_bar.featured_users', defaultMessage: 'Featured users' },
diff --git a/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js b/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js
index abc3f468f..481f76763 100644
--- a/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js
+++ b/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js
@@ -103,7 +103,7 @@ class KeyboardShortcuts extends ImmutablePureComponent {
               </tr>
               <tr>
                 <td><kbd>alt</kbd>+<kbd>n</kbd></td>
-                <td><FormattedMessage id='keyboard_shortcuts.toot' defaultMessage='to start a brand new toot' /></td>
+                <td><FormattedMessage id='keyboard_shortcuts.toot' defaultMessage='to start a brand new post' /></td>
               </tr>
               <tr>
                 <td><kbd>alt</kbd>+<kbd>x</kbd></td>
diff --git a/app/javascript/flavours/glitch/features/notifications/components/column_settings.js b/app/javascript/flavours/glitch/features/notifications/components/column_settings.js
index 0dad079ad..0be2a7e13 100644
--- a/app/javascript/flavours/glitch/features/notifications/components/column_settings.js
+++ b/app/javascript/flavours/glitch/features/notifications/components/column_settings.js
@@ -146,7 +146,7 @@ export default class ColumnSettings extends React.PureComponent {
         </div>
 
         <div role='group' aria-labelledby='notifications-status'>
-          <span id='notifications-status' className='column-settings__section'><FormattedMessage id='notifications.column_settings.status' defaultMessage='New toots:' /></span>
+          <span id='notifications-status' className='column-settings__section'><FormattedMessage id='notifications.column_settings.status' defaultMessage='New posts:' /></span>
 
           <div className='column-settings__pillbar'>
             <PillBarButton disabled={browserPermission === 'denied'} prefix='notifications_desktop' settings={settings} settingPath={['alerts', 'status']} onChange={onChange} label={alertStr} />
diff --git a/app/javascript/flavours/glitch/features/pinned_statuses/index.js b/app/javascript/flavours/glitch/features/pinned_statuses/index.js
index 34d8e465f..518d0294b 100644
--- a/app/javascript/flavours/glitch/features/pinned_statuses/index.js
+++ b/app/javascript/flavours/glitch/features/pinned_statuses/index.js
@@ -10,7 +10,7 @@ import { defineMessages, injectIntl } from 'react-intl';
 import ImmutablePureComponent from 'react-immutable-pure-component';
 
 const messages = defineMessages({
-  heading: { id: 'column.pins', defaultMessage: 'Pinned toot' },
+  heading: { id: 'column.pins', defaultMessage: 'Pinned post' },
 });
 
 const mapStateToProps = state => ({
diff --git a/app/javascript/flavours/glitch/features/reblogs/index.js b/app/javascript/flavours/glitch/features/reblogs/index.js
index d88916d19..ed646c6ed 100644
--- a/app/javascript/flavours/glitch/features/reblogs/index.js
+++ b/app/javascript/flavours/glitch/features/reblogs/index.js
@@ -68,7 +68,7 @@ class Reblogs extends ImmutablePureComponent {
       );
     }
 
-    const emptyMessage = <FormattedMessage id='status.reblogs.empty' defaultMessage='No one has boosted this toot yet. When someone does, they will show up here.' />;
+    const emptyMessage = <FormattedMessage id='status.reblogs.empty' defaultMessage='No one has boosted this post yet. When someone does, they will show up here.' />;
 
     return (
       <Column ref={this.setRef}>
diff --git a/app/javascript/flavours/glitch/features/ui/components/boost_modal.js b/app/javascript/flavours/glitch/features/ui/components/boost_modal.js
index c23aec5ee..8d9496bb9 100644
--- a/app/javascript/flavours/glitch/features/ui/components/boost_modal.js
+++ b/app/javascript/flavours/glitch/features/ui/components/boost_modal.js
@@ -14,14 +14,11 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
 import PrivacyDropdown from 'flavours/glitch/features/compose/components/privacy_dropdown';
 import classNames from 'classnames';
 import { changeBoostPrivacy } from 'flavours/glitch/actions/boosts';
+import VisibilityIcon from 'flavours/glitch/components/status_visibility_icon';
 
 const messages = defineMessages({
   cancel_reblog: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },
   reblog: { id: 'status.reblog', defaultMessage: 'Boost' },
-  public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
-  unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },
-  private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },
-  direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },
 });
 
 const mapStateToProps = state => {
@@ -85,15 +82,6 @@ class BoostModal extends ImmutablePureComponent {
     const { status, missingMediaDescription, privacy, intl } = this.props;
     const buttonText = status.get('reblogged') ? messages.cancel_reblog : messages.reblog;
 
-    const visibilityIconInfo = {
-      'public': { icon: 'globe', text: intl.formatMessage(messages.public_short) },
-      'unlisted': { icon: 'unlock', text: intl.formatMessage(messages.unlisted_short) },
-      'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) },
-      'direct': { icon: 'envelope', text: intl.formatMessage(messages.direct_short) },
-    };
-
-    const visibilityIcon = visibilityIconInfo[status.get('visibility')];
-
     return (
       <div className='modal-root__modal boost-modal'>
         <div className='boost-modal__container'>
@@ -101,7 +89,7 @@ class BoostModal extends ImmutablePureComponent {
             <div className='boost-modal__status-header'>
               <div className='boost-modal__status-time'>
                 <a href={status.get('url')} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
-                  <span className='status__visibility-icon'><Icon id={visibilityIcon.icon} title={visibilityIcon.text} /></span>
+                  <VisibilityIcon visibility={status.get('visibility')} />
                   <RelativeTimestamp timestamp={status.get('created_at')} /></a>
               </div>
 
diff --git a/app/javascript/flavours/glitch/features/ui/components/favourite_modal.js b/app/javascript/flavours/glitch/features/ui/components/favourite_modal.js
index 9b7f9d1fb..4d02be29b 100644
--- a/app/javascript/flavours/glitch/features/ui/components/favourite_modal.js
+++ b/app/javascript/flavours/glitch/features/ui/components/favourite_modal.js
@@ -11,13 +11,10 @@ import AttachmentList from 'flavours/glitch/components/attachment_list';
 import Icon from 'flavours/glitch/components/icon';
 import ImmutablePureComponent from 'react-immutable-pure-component';
 import classNames from 'classnames';
+import VisibilityIcon from 'flavours/glitch/components/status_visibility_icon';
 
 const messages = defineMessages({
   favourite: { id: 'status.favourite', defaultMessage: 'Favourite' },
-  public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
-  unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },
-  private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },
-  direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },
 });
 
 export default @injectIntl
@@ -60,15 +57,6 @@ class FavouriteModal extends ImmutablePureComponent {
   render () {
     const { status, intl } = this.props;
 
-    const visibilityIconInfo = {
-      'public': { icon: 'globe', text: intl.formatMessage(messages.public_short) },
-      'unlisted': { icon: 'unlock', text: intl.formatMessage(messages.unlisted_short) },
-      'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) },
-      'direct': { icon: 'envelope', text: intl.formatMessage(messages.direct_short) },
-    };
-
-    const visibilityIcon = visibilityIconInfo[status.get('visibility')];
-
     return (
       <div className='modal-root__modal favourite-modal'>
         <div className='favourite-modal__container'>
@@ -76,7 +64,7 @@ class FavouriteModal extends ImmutablePureComponent {
             <div className='favourite-modal__status-header'>
               <div className='favourite-modal__status-time'>
                 <a href={status.get('url')} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
-                  <span className='status__visibility-icon'><Icon id={visibilityIcon.icon} title={visibilityIcon.text} /></span>
+                  <VisibilityIcon visibility={status.get('visibility')} />
                   <RelativeTimestamp timestamp={status.get('created_at')} />
                 </a>
               </div>
diff --git a/app/javascript/flavours/glitch/styles/components/columns.scss b/app/javascript/flavours/glitch/styles/components/columns.scss
index 512a04376..96e292d8b 100644
--- a/app/javascript/flavours/glitch/styles/components/columns.scss
+++ b/app/javascript/flavours/glitch/styles/components/columns.scss
@@ -579,7 +579,7 @@
   }
 
   & > span {
-    max-width: 400px;
+    max-width: 500px;
   }
 
   a {
diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss
index 016e31c63..373280fc4 100644
--- a/app/javascript/flavours/glitch/styles/components/index.scss
+++ b/app/javascript/flavours/glitch/styles/components/index.scss
@@ -1566,7 +1566,7 @@ button.icon-button.active i.fa-retweet {
 .loading-bar {
   background-color: $ui-highlight-color;
   height: 3px;
-  position: absolute;
+  position: fixed;
   top: 0;
   left: 0;
   z-index: 9999;
diff --git a/app/javascript/mastodon/components/common_counter.js b/app/javascript/mastodon/components/common_counter.js
index e10cd9b76..dd9b62de9 100644
--- a/app/javascript/mastodon/components/common_counter.js
+++ b/app/javascript/mastodon/components/common_counter.js
@@ -25,7 +25,7 @@ export function counterRenderer(counterType, isBold = true) {
     return (displayNumber, pluralReady) => (
       <FormattedMessage
         id='account.statuses_counter'
-        defaultMessage='{count, plural, one {{counter} Toot} other {{counter} Toots}}'
+        defaultMessage='{count, plural, one {{counter} Post} other {{counter} Posts}}'
         values={{
           count: pluralReady,
           counter: renderCounter(displayNumber),
diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js
index fb370ca71..8d917a995 100644
--- a/app/javascript/mastodon/components/status.js
+++ b/app/javascript/mastodon/components/status.js
@@ -56,7 +56,7 @@ const messages = defineMessages({
   public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
   unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },
   private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },
-  direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },
+  direct_short: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' },
   edited: { id: 'status.edited', defaultMessage: 'Edited {date}' },
 });
 
@@ -349,7 +349,7 @@ class Status extends ImmutablePureComponent {
       prepend = (
         <div className='status__prepend'>
           <div className='status__prepend-icon-wrapper'><Icon id='thumb-tack' className='status__prepend-icon' fixedWidth /></div>
-          <FormattedMessage id='status.pinned' defaultMessage='Pinned toot' />
+          <FormattedMessage id='status.pinned' defaultMessage='Pinned post' />
         </div>
       );
     } else if (status.get('reblog', null) !== null && typeof status.get('reblog') === 'object') {
diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js
index 48ec49d81..2830bee29 100644
--- a/app/javascript/mastodon/features/account/components/header.js
+++ b/app/javascript/mastodon/features/account/components/header.js
@@ -38,7 +38,7 @@ const messages = defineMessages({
   showReblogs: { id: 'account.show_reblogs', defaultMessage: 'Show boosts from @{name}' },
   enableNotifications: { id: 'account.enable_notifications', defaultMessage: 'Notify me when @{name} posts' },
   disableNotifications: { id: 'account.disable_notifications', defaultMessage: 'Stop notifying me when @{name} posts' },
-  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
+  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
   preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
   follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
   favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
diff --git a/app/javascript/mastodon/features/account_timeline/components/header.js b/app/javascript/mastodon/features/account_timeline/components/header.js
index 33bea4c17..507b6c895 100644
--- a/app/javascript/mastodon/features/account_timeline/components/header.js
+++ b/app/javascript/mastodon/features/account_timeline/components/header.js
@@ -121,8 +121,8 @@ export default class Header extends ImmutablePureComponent {
 
         {!hideTabs && (
           <div className='account__section-headline'>
-            <NavLink exact to={`/@${account.get('acct')}`}><FormattedMessage id='account.posts' defaultMessage='Toots' /></NavLink>
-            <NavLink exact to={`/@${account.get('acct')}/with_replies`}><FormattedMessage id='account.posts_with_replies' defaultMessage='Toots and replies' /></NavLink>
+            <NavLink exact to={`/@${account.get('acct')}`}><FormattedMessage id='account.posts' defaultMessage='Posts' /></NavLink>
+            <NavLink exact to={`/@${account.get('acct')}/with_replies`}><FormattedMessage id='account.posts_with_replies' defaultMessage='Posts and replies' /></NavLink>
             <NavLink exact to={`/@${account.get('acct')}/media`}><FormattedMessage id='account.media' defaultMessage='Media' /></NavLink>
           </div>
         )}
diff --git a/app/javascript/mastodon/features/account_timeline/index.js b/app/javascript/mastodon/features/account_timeline/index.js
index 37df2818b..5122aec4e 100644
--- a/app/javascript/mastodon/features/account_timeline/index.js
+++ b/app/javascript/mastodon/features/account_timeline/index.js
@@ -45,7 +45,7 @@ const mapStateToProps = (state, { params: { acct, id }, withReplies = false }) =
 };
 
 const RemoteHint = ({ url }) => (
-  <TimelineHint url={url} resource={<FormattedMessage id='timeline_hint.resources.statuses' defaultMessage='Older toots' />} />
+  <TimelineHint url={url} resource={<FormattedMessage id='timeline_hint.resources.statuses' defaultMessage='Older posts' />} />
 );
 
 RemoteHint.propTypes = {
@@ -156,7 +156,7 @@ class AccountTimeline extends ImmutablePureComponent {
     } else if (remote && statusIds.isEmpty()) {
       emptyMessage = <RemoteHint url={remoteUrl} />;
     } else {
-      emptyMessage = <FormattedMessage id='empty_column.account_timeline' defaultMessage='No toots here!' />;
+      emptyMessage = <FormattedMessage id='empty_column.account_timeline' defaultMessage='No posts found' />;
     }
 
     const remoteMessage = remote ? <RemoteHint url={remoteUrl} /> : null;
diff --git a/app/javascript/mastodon/features/bookmarked_statuses/index.js b/app/javascript/mastodon/features/bookmarked_statuses/index.js
index cf067d954..8f41b0f95 100644
--- a/app/javascript/mastodon/features/bookmarked_statuses/index.js
+++ b/app/javascript/mastodon/features/bookmarked_statuses/index.js
@@ -70,7 +70,7 @@ class Bookmarks extends ImmutablePureComponent {
     const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;
     const pinned = !!columnId;
 
-    const emptyMessage = <FormattedMessage id='empty_column.bookmarked_statuses' defaultMessage="You don't have any bookmarked toots yet. When you bookmark one, it will show up here." />;
+    const emptyMessage = <FormattedMessage id='empty_column.bookmarked_statuses' defaultMessage="You don't have any bookmarked posts yet. When you bookmark one, it will show up here." />;
 
     return (
       <Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.heading)}>
diff --git a/app/javascript/mastodon/features/compose/components/action_bar.js b/app/javascript/mastodon/features/compose/components/action_bar.js
index 07d92bb7e..4ff0b7b94 100644
--- a/app/javascript/mastodon/features/compose/components/action_bar.js
+++ b/app/javascript/mastodon/features/compose/components/action_bar.js
@@ -6,7 +6,7 @@ import { defineMessages, injectIntl } from 'react-intl';
 
 const messages = defineMessages({
   edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' },
-  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
+  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
   preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
   follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
   favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js b/app/javascript/mastodon/features/compose/components/privacy_dropdown.js
index 599467cdb..c94db59c5 100644
--- a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js
+++ b/app/javascript/mastodon/features/compose/components/privacy_dropdown.js
@@ -11,12 +11,12 @@ import Icon from 'mastodon/components/icon';
 
 const messages = defineMessages({
   public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
-  public_long: { id: 'privacy.public.long', defaultMessage: 'Visible for all, shown in public timelines' },
+  public_long: { id: 'privacy.public.long', defaultMessage: 'Visible for all' },
   unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },
-  unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Visible for all, but not in public timelines' },
-  private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },
+  unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Visible for all, but opted-out of discovery features' },
+  private_short: { id: 'privacy.private.short', defaultMessage: 'Followers only' },
   private_long: { id: 'privacy.private.long', defaultMessage: 'Visible for followers only' },
-  direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },
+  direct_short: { id: 'privacy.direct.short', defaultMessage: 'Only people I mention' },
   direct_long: { id: 'privacy.direct.long', defaultMessage: 'Visible for mentioned users only' },
   change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' },
 });
@@ -242,7 +242,7 @@ class PrivacyDropdown extends React.PureComponent {
 
     if (!this.props.noDirect) {
       this.options.push(
-        { icon: 'envelope', value: 'direct', text: formatMessage(messages.direct_short), meta: formatMessage(messages.direct_long) },
+        { icon: 'at', value: 'direct', text: formatMessage(messages.direct_short), meta: formatMessage(messages.direct_long) },
       );
     }
   }
diff --git a/app/javascript/mastodon/features/compose/components/search_results.js b/app/javascript/mastodon/features/compose/components/search_results.js
index 9b3d01cfd..e2493a6c6 100644
--- a/app/javascript/mastodon/features/compose/components/search_results.js
+++ b/app/javascript/mastodon/features/compose/components/search_results.js
@@ -91,7 +91,7 @@ class SearchResults extends ImmutablePureComponent {
       count   += results.get('statuses').size;
       statuses = (
         <div className='search-results__section'>
-          <h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>
+          <h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></h5>
 
           {results.get('statuses').map(statusId => <StatusContainer key={statusId} id={statusId} />)}
 
@@ -101,10 +101,10 @@ class SearchResults extends ImmutablePureComponent {
     } else if(results.get('statuses') && results.get('statuses').size === 0 && !searchEnabled && !(searchTerm.startsWith('@') || searchTerm.startsWith('#') || searchTerm.includes(' '))) {
       statuses = (
         <div className='search-results__section'>
-          <h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>
+          <h5><Icon id='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></h5>
 
           <div className='search-results__info'>
-            <FormattedMessage id='search_results.statuses_fts_disabled' defaultMessage='Searching toots by their content is not enabled on this Mastodon server.' />
+            <FormattedMessage id='search_results.statuses_fts_disabled' defaultMessage='Searching posts by their content is not enabled on this Mastodon server.' />
           </div>
         </div>
       );
diff --git a/app/javascript/mastodon/features/compose/containers/warning_container.js b/app/javascript/mastodon/features/compose/containers/warning_container.js
index bf0660ea9..571d1d838 100644
--- a/app/javascript/mastodon/features/compose/containers/warning_container.js
+++ b/app/javascript/mastodon/features/compose/containers/warning_container.js
@@ -42,13 +42,13 @@ const WarningWrapper = ({ needsLockWarning, hashtagWarning, directMessageWarning
   }
 
   if (hashtagWarning) {
-    return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage="This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag." />} />;
+    return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage="This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag." />} />;
   }
 
   if (directMessageWarning) {
     const message = (
       <span>
-        <FormattedMessage id='compose_form.direct_message_warning' defaultMessage='This toot will only be sent to all the mentioned users.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a>
+        <FormattedMessage id='compose_form.encryption_warning' defaultMessage='Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a>
       </span>
     );
 
diff --git a/app/javascript/mastodon/features/compose/index.js b/app/javascript/mastodon/features/compose/index.js
index 663dd324f..711a55904 100644
--- a/app/javascript/mastodon/features/compose/index.js
+++ b/app/javascript/mastodon/features/compose/index.js
@@ -26,7 +26,7 @@ const messages = defineMessages({
   community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
   preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
   logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
-  compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },
+  compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new post' },
   logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
   logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },
 });
diff --git a/app/javascript/mastodon/features/direct_timeline/index.js b/app/javascript/mastodon/features/direct_timeline/index.js
index 68523666c..debb2d721 100644
--- a/app/javascript/mastodon/features/direct_timeline/index.js
+++ b/app/javascript/mastodon/features/direct_timeline/index.js
@@ -76,7 +76,7 @@ class DirectTimeline extends React.PureComponent {
     return (
       <Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.title)}>
         <ColumnHeader
-          icon='envelope'
+          icon='at'
           active={hasUnread}
           title={intl.formatMessage(messages.title)}
           onPin={this.handlePin}
@@ -91,6 +91,7 @@ class DirectTimeline extends React.PureComponent {
           scrollKey={`direct_timeline-${columnId}`}
           timelineId='direct'
           onLoadMore={this.handleLoadMore}
+          prepend={<div className='follow_requests-unlocked_explanation'><span><FormattedMessage id='compose_form.encryption_warning' defaultMessage='Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a></span></div>}
           emptyMessage={<FormattedMessage id='empty_column.direct' defaultMessage="You don't have any direct messages yet. When you send or receive one, it will show up here." />}
         />
       </Column>
diff --git a/app/javascript/mastodon/features/directory/components/account_card.js b/app/javascript/mastodon/features/directory/components/account_card.js
index 31f59cd84..27ba4e7f4 100644
--- a/app/javascript/mastodon/features/directory/components/account_card.js
+++ b/app/javascript/mastodon/features/directory/components/account_card.js
@@ -191,7 +191,7 @@ class AccountCard extends ImmutablePureComponent {
             <div className='account-card__counters__item'>
               <ShortNumber value={account.get('statuses_count')} />
               <small>
-                <FormattedMessage id='account.posts' defaultMessage='Toots' />
+                <FormattedMessage id='account.posts' defaultMessage='Posts' />
               </small>
             </div>
 
diff --git a/app/javascript/mastodon/features/explore/results.js b/app/javascript/mastodon/features/explore/results.js
index 339f883c5..1286020f5 100644
--- a/app/javascript/mastodon/features/explore/results.js
+++ b/app/javascript/mastodon/features/explore/results.js
@@ -100,7 +100,7 @@ class Results extends React.PureComponent {
           <button onClick={this.handleSelectAll} className={type === 'all' && 'active'}><FormattedMessage id='search_results.all' defaultMessage='All' /></button>
           <button onClick={this.handleSelectAccounts} className={type === 'accounts' && 'active'}><FormattedMessage id='search_results.accounts' defaultMessage='People' /></button>
           <button onClick={this.handleSelectHashtags} className={type === 'hashtags' && 'active'}><FormattedMessage id='search_results.hashtags' defaultMessage='Hashtags' /></button>
-          <button onClick={this.handleSelectStatuses} className={type === 'statuses' && 'active'}><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></button>
+          <button onClick={this.handleSelectStatuses} className={type === 'statuses' && 'active'}><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></button>
         </div>
 
         <div className='explore__search-results'>
diff --git a/app/javascript/mastodon/features/favourited_statuses/index.js b/app/javascript/mastodon/features/favourited_statuses/index.js
index 9606a144c..73631946a 100644
--- a/app/javascript/mastodon/features/favourited_statuses/index.js
+++ b/app/javascript/mastodon/features/favourited_statuses/index.js
@@ -70,7 +70,7 @@ class Favourites extends ImmutablePureComponent {
     const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;
     const pinned = !!columnId;
 
-    const emptyMessage = <FormattedMessage id='empty_column.favourited_statuses' defaultMessage="You don't have any favourite toots yet. When you favourite one, it will show up here." />;
+    const emptyMessage = <FormattedMessage id='empty_column.favourited_statuses' defaultMessage="You don't have any favourite posts yet. When you favourite one, it will show up here." />;
 
     return (
       <Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.heading)}>
diff --git a/app/javascript/mastodon/features/favourites/index.js b/app/javascript/mastodon/features/favourites/index.js
index ac94ae18a..f060068a4 100644
--- a/app/javascript/mastodon/features/favourites/index.js
+++ b/app/javascript/mastodon/features/favourites/index.js
@@ -59,7 +59,7 @@ class Favourites extends ImmutablePureComponent {
       );
     }
 
-    const emptyMessage = <FormattedMessage id='empty_column.favourites' defaultMessage='No one has favourited this toot yet. When someone does, they will show up here.' />;
+    const emptyMessage = <FormattedMessage id='empty_column.favourites' defaultMessage='No one has favourited this post yet. When someone does, they will show up here.' />;
 
     return (
       <Column bindToDocument={!multiColumn}>
diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.js
index a9000a3d9..65cee7498 100644
--- a/app/javascript/mastodon/features/getting_started/index.js
+++ b/app/javascript/mastodon/features/getting_started/index.js
@@ -30,7 +30,7 @@ const messages = defineMessages({
   blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
   domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },
   mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
-  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
+  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
   lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
   discover: { id: 'navigation_bar.discover', defaultMessage: 'Discover' },
   personal: { id: 'navigation_bar.personal', defaultMessage: 'Personal' },
@@ -130,7 +130,7 @@ class GettingStarted extends ImmutablePureComponent {
     }
 
     navItems.push(
-      <ColumnLink key='direct' icon='envelope' text={intl.formatMessage(messages.direct)} to='/conversations' />,
+      <ColumnLink key='direct' icon='at' text={intl.formatMessage(messages.direct)} to='/conversations' />,
       <ColumnLink key='bookmark' icon='bookmark' text={intl.formatMessage(messages.bookmarks)} to='/bookmarks' />,
       <ColumnLink key='favourites' icon='star' text={intl.formatMessage(messages.favourites)} to='/favourites' />,
       <ColumnLink key='lists' icon='list-ul' text={intl.formatMessage(messages.lists)} to='/lists' />,
diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.js
index d278d2b26..8f1631d82 100644
--- a/app/javascript/mastodon/features/keyboard_shortcuts/index.js
+++ b/app/javascript/mastodon/features/keyboard_shortcuts/index.js
@@ -86,7 +86,7 @@ class KeyboardShortcuts extends ImmutablePureComponent {
               </tr>
               <tr>
                 <td><kbd>alt</kbd>+<kbd>n</kbd></td>
-                <td><FormattedMessage id='keyboard_shortcuts.toot' defaultMessage='to start a brand new toot' /></td>
+                <td><FormattedMessage id='keyboard_shortcuts.toot' defaultMessage='to start a brand new post' /></td>
               </tr>
               <tr>
                 <td><kbd>alt</kbd>+<kbd>x</kbd></td>
@@ -134,7 +134,7 @@ class KeyboardShortcuts extends ImmutablePureComponent {
               </tr>
               <tr>
                 <td><kbd>g</kbd>+<kbd>p</kbd></td>
-                <td><FormattedMessage id='keyboard_shortcuts.pinned' defaultMessage='to open pinned toots list' /></td>
+                <td><FormattedMessage id='keyboard_shortcuts.pinned' defaultMessage='to open pinned posts list' /></td>
               </tr>
               <tr>
                 <td><kbd>g</kbd>+<kbd>u</kbd></td>
diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.js b/app/javascript/mastodon/features/notifications/components/column_settings.js
index 84db04430..1cdb24086 100644
--- a/app/javascript/mastodon/features/notifications/components/column_settings.js
+++ b/app/javascript/mastodon/features/notifications/components/column_settings.js
@@ -145,7 +145,7 @@ export default class ColumnSettings extends React.PureComponent {
         </div>
 
         <div role='group' aria-labelledby='notifications-status'>
-          <span id='notifications-status' className='column-settings__section'><FormattedMessage id='notifications.column_settings.status' defaultMessage='New toots:' /></span>
+          <span id='notifications-status' className='column-settings__section'><FormattedMessage id='notifications.column_settings.status' defaultMessage='New posts:' /></span>
 
           <div className='column-settings__row'>
             <SettingToggle disabled={browserPermission === 'denied'} prefix='notifications_desktop' settings={settings} settingPath={['alerts', 'status']} onChange={onChange} label={alertStr} />
diff --git a/app/javascript/mastodon/features/pinned_statuses/index.js b/app/javascript/mastodon/features/pinned_statuses/index.js
index f32bd6d23..67b13f10a 100644
--- a/app/javascript/mastodon/features/pinned_statuses/index.js
+++ b/app/javascript/mastodon/features/pinned_statuses/index.js
@@ -10,7 +10,7 @@ import { defineMessages, injectIntl } from 'react-intl';
 import ImmutablePureComponent from 'react-immutable-pure-component';
 
 const messages = defineMessages({
-  heading: { id: 'column.pins', defaultMessage: 'Pinned toot' },
+  heading: { id: 'column.pins', defaultMessage: 'Pinned post' },
 });
 
 const mapStateToProps = state => ({
diff --git a/app/javascript/mastodon/features/reblogs/index.js b/app/javascript/mastodon/features/reblogs/index.js
index 0fbd09415..7704a049f 100644
--- a/app/javascript/mastodon/features/reblogs/index.js
+++ b/app/javascript/mastodon/features/reblogs/index.js
@@ -59,7 +59,7 @@ class Reblogs extends ImmutablePureComponent {
       );
     }
 
-    const emptyMessage = <FormattedMessage id='status.reblogs.empty' defaultMessage='No one has boosted this toot yet. When someone does, they will show up here.' />;
+    const emptyMessage = <FormattedMessage id='status.reblogs.empty' defaultMessage='No one has boosted this post yet. When someone does, they will show up here.' />;
 
     return (
       <Column bindToDocument={!multiColumn}>
diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js
index 3f3ec0e71..edaff959e 100644
--- a/app/javascript/mastodon/features/status/components/action_bar.js
+++ b/app/javascript/mastodon/features/status/components/action_bar.js
@@ -220,7 +220,6 @@ class ActionBar extends React.PureComponent {
       menu.push({ text: intl.formatMessage(messages.redraft), action: this.handleRedraftClick });
     } else {
       menu.push({ text: intl.formatMessage(messages.mention, { name: status.getIn(['account', 'username']) }), action: this.handleMentionClick });
-      menu.push({ text: intl.formatMessage(messages.direct, { name: status.getIn(['account', 'username']) }), action: this.handleDirectClick });
       menu.push(null);
 
       if (relationship && relationship.get('muting')) {
diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.js b/app/javascript/mastodon/features/ui/components/navigation_panel.js
index eb42115b7..fe4ed5d77 100644
--- a/app/javascript/mastodon/features/ui/components/navigation_panel.js
+++ b/app/javascript/mastodon/features/ui/components/navigation_panel.js
@@ -16,7 +16,7 @@ const NavigationPanel = () => (
     <NavLink className='column-link column-link--transparent' to='/explore' data-preview-title-id='explore.title' data-preview-icon='hashtag'><Icon className='column-link__icon' id='hashtag' fixedWidth /><FormattedMessage id='explore.title' defaultMessage='Explore' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/public/local' data-preview-title-id='column.community' data-preview-icon='users' ><Icon className='column-link__icon' id='users' fixedWidth /><FormattedMessage id='tabs_bar.local_timeline' defaultMessage='Local' /></NavLink>
     <NavLink className='column-link column-link--transparent' exact to='/public' data-preview-title-id='column.public' data-preview-icon='globe' ><Icon className='column-link__icon' id='globe' fixedWidth /><FormattedMessage id='tabs_bar.federated_timeline' defaultMessage='Federated' /></NavLink>
-    <NavLink className='column-link column-link--transparent' to='/conversations'><Icon className='column-link__icon' id='envelope' fixedWidth /><FormattedMessage id='navigation_bar.direct' defaultMessage='Direct messages' /></NavLink>
+    <NavLink className='column-link column-link--transparent' to='/conversations'><Icon className='column-link__icon' id='at' fixedWidth /><FormattedMessage id='navigation_bar.direct' defaultMessage='Direct messages' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/favourites'><Icon className='column-link__icon' id='star' fixedWidth /><FormattedMessage id='navigation_bar.favourites' defaultMessage='Favourites' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/bookmarks'><Icon className='column-link__icon' id='bookmark' fixedWidth /><FormattedMessage id='navigation_bar.bookmarks' defaultMessage='Bookmarks' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/lists'><Icon className='column-link__icon' id='list-ul' fixedWidth /><FormattedMessage id='navigation_bar.lists' defaultMessage='Lists' /></NavLink>
diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json
index 4373287dd..fe91569bc 100644
--- a/app/javascript/mastodon/locales/af.json
+++ b/app/javascript/mastodon/locales/af.json
@@ -1,59 +1,59 @@
 {
-  "account.account_note_header": "Note",
-  "account.add_or_remove_from_list": "Add or Remove from lists",
+  "account.account_note_header": "Nota",
+  "account.add_or_remove_from_list": "Voeg by of verwyder van lyste",
   "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
-  "account.block": "Block @{name}",
-  "account.block_domain": "Block domain {domain}",
-  "account.blocked": "Blocked",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
-  "account.cancel_follow_request": "Cancel follow request",
-  "account.direct": "Direct message @{name}",
+  "account.badges.group": "Groep",
+  "account.block": "Blok @{name}",
+  "account.block_domain": "Blokeer alles van {domain}",
+  "account.blocked": "Geblok",
+  "account.browse_more_on_origin_server": "Snuffel rond op oorspronklike profiel",
+  "account.cancel_follow_request": "Kanselleer volgversoek",
+  "account.direct": "Stuur direkte boodskap aan @{name}",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
   "account.domain_blocked": "Domain blocked",
-  "account.edit_profile": "Edit profile",
-  "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Feature on profile",
-  "account.follow": "Follow",
-  "account.followers": "Followers",
-  "account.followers.empty": "No one follows this user yet.",
+  "account.edit_profile": "Redigeer profiel",
+  "account.enable_notifications": "Stel my in kennis wanneer @{name} plasings maak",
+  "account.endorse": "Beklemtoon op profiel",
+  "account.follow": "Volg",
+  "account.followers": "Volgelinge",
+  "account.followers.empty": "Niemand volg tans hierdie gebruiker nie.",
   "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
   "account.following": "Following",
   "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
   "account.follows.empty": "This user doesn't follow anyone yet.",
-  "account.follows_you": "Follows you",
-  "account.hide_reblogs": "Hide boosts from @{name}",
-  "account.joined": "Joined {date}",
-  "account.link_verified_on": "Ownership of this link was checked on {date}",
+  "account.follows_you": "Volg jou",
+  "account.hide_reblogs": "Versteek hupstoot vanaf @{name}",
+  "account.joined": "{date} aangesluit",
+  "account.link_verified_on": "Eienaarskap van die skakel was getoets op {date}",
   "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
   "account.media": "Media",
-  "account.mention": "Mention @{name}",
-  "account.moved_to": "{name} has moved to:",
-  "account.mute": "Mute @{name}",
-  "account.mute_notifications": "Mute notifications from @{name}",
-  "account.muted": "Muted",
+  "account.mention": "Noem @{name}",
+  "account.moved_to": "{name} is geskuif na:",
+  "account.mute": "Demp @{name}",
+  "account.mute_notifications": "Demp kennisgewings van @{name}",
+  "account.muted": "Gedemp",
   "account.posts": "Toots",
   "account.posts_with_replies": "Toots and replies",
-  "account.report": "Report @{name}",
+  "account.report": "Rapporteer @{name}",
   "account.requested": "Awaiting approval",
-  "account.share": "Share @{name}'s profile",
-  "account.show_reblogs": "Show boosts from @{name}",
+  "account.share": "Deel @{name} se profiel",
+  "account.show_reblogs": "Wys hupstote vanaf @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
-  "account.unblock": "Unblock @{name}",
-  "account.unblock_domain": "Unblock domain {domain}",
-  "account.unblock_short": "Unblock",
-  "account.unendorse": "Don't feature on profile",
+  "account.unblock": "Ontblok @{name}",
+  "account.unblock_domain": "Ontblok domein {domain}",
+  "account.unblock_short": "Ontblok",
+  "account.unendorse": "Moenie beklemtoon op profiel nie",
   "account.unfollow": "Unfollow",
-  "account.unmute": "Unmute @{name}",
-  "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account.unmute_short": "Unmute",
+  "account.unmute": "Ontdemp @{name}",
+  "account.unmute_notifications": "Ontdemp kennisgewings vanaf @{name}",
+  "account.unmute_short": "Ontdemp",
   "account_note.placeholder": "Click to add a note",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
-  "admin.dashboard.retention.average": "Average",
+  "admin.dashboard.retention.average": "Gemiddeld",
   "admin.dashboard.retention.cohort": "Sign-up month",
-  "admin.dashboard.retention.cohort_size": "New users",
-  "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
+  "admin.dashboard.retention.cohort_size": "Nuwe gebruikers",
+  "alert.rate_limited.message": "Probeer asb. weer na {retry_time, time, medium}.",
   "alert.rate_limited.title": "Rate limited",
   "alert.unexpected.message": "An unexpected error occurred.",
   "alert.unexpected.title": "Oops!",
@@ -70,7 +70,7 @@
   "column.blocks": "Blocked users",
   "column.bookmarks": "Bookmarks",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Blocked domains",
   "column.favourites": "Favourites",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no blocked domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Visible for followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 57d8376a9..ac93bf706 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -70,7 +70,7 @@
   "column.blocks": "المُستَخدِمون المَحظورون",
   "column.bookmarks": "الفواصل المرجعية",
   "column.community": "الخيط الزمني المحلي",
-  "column.direct": "الرسائل المباشرة",
+  "column.conversations": "المحادثات",
   "column.directory": "تَصَفُّحُ المَلفات الشخصية",
   "column.domain_blocks": "النِّطاقَاتُ المَحظُورَة",
   "column.favourites": "المُفَضَّلَة",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "المحلي فقط",
   "community.column_settings.media_only": "الوسائط فقط",
   "community.column_settings.remote_only": "عن بُعد فقط",
-  "compose_form.direct_message_warning": "سوف تُرسَل هذه التَّبويقة فقط للمُستَخدِمين المَذكورين.",
   "compose_form.direct_message_warning_learn_more": "تَعَلَّم المَزيد",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "لن يُدرَج هذا المنشور تحت أي وسم بما أنَّه غير مُدرَج. فقط المنشورات العامة يُمكن البحث عنها بواسطة الوسم.",
   "compose_form.lock_disclaimer": "حسابُك غير {locked}. يُمكن لأي شخص مُتابعتك لرؤية (منشورات المتابعين فقط).",
   "compose_form.lock_disclaimer.lock": "مُقفَل",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "لم تقم بحظر أي مستخدِم بعد.",
   "empty_column.bookmarked_statuses": "ليس لديك أية منشورات في الفواصل المرجعية بعد. عندما ستقوم بإضافة البعض منها، ستظهر هنا.",
   "empty_column.community": "الخط العام المحلي فارغ. أكتب شيئا ما للعامة كبداية!",
-  "empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
+  "empty_column.conversations": "عندما ترسل أو تستلم منشورًا محصورٌا على الأشخاص المشار إليهم فيه، سيظهر هنا.",
   "empty_column.domain_blocks": "ليس هناك نطاقات مخفية بعد.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "ليس لديك أية منشورات مفضلة بعد. عندما ستقوم بالإعجاب بواحدة، ستظهر هنا.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "للترقية",
   "keyboard_shortcuts.column": "للتركيز على منشور على أحد الأعمدة",
   "keyboard_shortcuts.compose": "للتركيز على نافذة تحرير النصوص",
+  "keyboard_shortcuts.conversations": "لفتح عمود المحادثات",
   "keyboard_shortcuts.description": "الوصف",
-  "keyboard_shortcuts.direct": "لفتح عمود الرسائل المباشرة",
   "keyboard_shortcuts.down": "للانتقال إلى أسفل القائمة",
   "keyboard_shortcuts.enter": "لفتح المنشور",
   "keyboard_shortcuts.favourite": "للإضافة إلى المفضلة",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "الفواصل المرجعية",
   "navigation_bar.community_timeline": "الخيط العام المحلي",
   "navigation_bar.compose": "لتحرير منشور جديد",
-  "navigation_bar.direct": "الرسائل المباشِرة",
   "navigation_bar.discover": "اكتشف",
   "navigation_bar.domain_blocks": "النطاقات المخفية",
   "navigation_bar.edit_profile": "عدّل الملف التعريفي",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "إزالة استطلاع الرأي",
   "privacy.change": "اضبط خصوصية المنشور",
   "privacy.direct.long": "أنشر إلى المستخدمين المشار إليهم فقط",
-  "privacy.direct.short": "مباشر",
+  "privacy.direct.short": "للمشار إليهم فقط",
   "privacy.private.long": "أنشر لمتابعيك فقط",
-  "privacy.private.short": "لمتابعيك فقط",
-  "privacy.public.long": "أنشر على الخيوط العامة",
+  "privacy.private.short": "للمتابِعين فقط",
+  "privacy.public.long": "مرئي للكل",
   "privacy.public.short": "للعامة",
-  "privacy.unlisted.long": "لا تقم بإدراجه على الخيوط العامة",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "غير مدرج",
   "refresh": "أنعِش",
   "regeneration_indicator.label": "جارٍ التحميل…",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index e7f7248e1..3400e3cd1 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -70,7 +70,7 @@
   "column.blocks": "Usuarios bloquiaos",
   "column.bookmarks": "Marcadores",
   "column.community": "Llinia temporal llocal",
-  "column.direct": "Mensaxes direutos",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Dominios anubríos",
   "column.favourites": "Favoritos",
@@ -92,9 +92,9 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Namái multimedia",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "Esti barritu namái va unviase a los usuarios mentaos.",
   "compose_form.direct_message_warning_learn_more": "Saber más",
-  "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
+  "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
   "compose_form.placeholder": "¿En qué pienses?",
@@ -166,11 +166,11 @@
   "empty_column.blocks": "Entá nun bloquiesti a nengún usuariu.",
   "empty_column.bookmarked_statuses": "Entá nun tienes nengún barritu en Marcadores. Cuando amiestes unu, va amosase equí.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "Entá nun tienes nuengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Entá nun hai dominios anubríos.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Entá nun tienes nengún barritu en Favoritos. Cuando amiestes unu, va amosase equí.",
-  "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
+  "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
   "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
   "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, va amosase equí.",
   "empty_column.hashtag": "Entá nun hai nada nesta etiqueta.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "pa compartir un toot",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "Enfocar l'área de composición",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Descripción",
-  "keyboard_shortcuts.direct": "Abrir la columna de los mensaxes direutos",
   "keyboard_shortcuts.down": "pa baxar na llista",
   "keyboard_shortcuts.enter": "p'abrir estaos",
   "keyboard_shortcuts.favourite": "p'amestar a Favoritos",
@@ -289,8 +289,7 @@
   "navigation_bar.blocks": "Usuarios bloquiaos",
   "navigation_bar.bookmarks": "Marcadores",
   "navigation_bar.community_timeline": "Llinia temporal llocal",
-  "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Mensaxes direutos",
+  "navigation_bar.compose": "Compose new post",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Dominios anubríos",
   "navigation_bar.edit_profile": "Editar el perfil",
@@ -369,10 +368,10 @@
   "privacy.direct.long": "Post to mentioned users only",
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Post to followers only",
-  "privacy.private.short": "Namái siguidores",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Nun apaez nes llinies temporales públiques",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Nun llistar",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Cargando…",
@@ -502,7 +501,7 @@
   "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
   "timeline_hint.resources.followers": "Followers",
   "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
+  "timeline_hint.resources.statuses": "Older posts",
   "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
   "trends.trending_now": "Trending now",
   "ui.beforeunload": "El borrador va perdese si coles de Mastodon.",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 3efde0381..42cd08f1f 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -70,7 +70,7 @@
   "column.blocks": "Блокирани потребители",
   "column.bookmarks": "Отметки",
   "column.community": "Локална емисия",
-  "column.direct": "Директни съобщения",
+  "column.conversations": "Conversations",
   "column.directory": "Преглед на профили",
   "column.domain_blocks": "Hidden domains",
   "column.favourites": "Любими",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Само локално",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Само дистанционно",
-  "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Още информация",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Тази публикация няма да бъде изброена под нито един хаштаг, тъй като е скрита. Само публични публикации могат да се търсят по хаштаг.",
   "compose_form.lock_disclaimer": "Вашият акаунт не е {locked}. Всеки може да ви последва, за да прегледа вашите публикации само за последователи.",
   "compose_form.lock_disclaimer.lock": "заключено",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Не сте блокирали потребители все още.",
   "empty_column.bookmarked_statuses": "Все още нямате отметнати публикации. Когато отметнете някоя, тя ще се покаже тук.",
   "empty_column.community": "Локалната емисия е празна. Напишете нещо публично, за да започнете!",
-  "empty_column.direct": "Все още нямате директни съобщения. Когато изпратите или получите някое, то ще се покаже тук.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no hidden domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Все още нямате любими публикации. Когато поставите някоя в любими, тя ще се покаже тук.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "за споделяне",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "за фокусиране на текстовото пространство за композиране",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Описание",
-  "keyboard_shortcuts.direct": "за отваряне на колона за директни съобщения",
   "keyboard_shortcuts.down": "за придвижване надолу в списъка",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "за поставяне в любими",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Отметки",
   "navigation_bar.community_timeline": "Локална емисия",
   "navigation_bar.compose": "Композиране на нова публикация",
-  "navigation_bar.direct": "Директни съобщения",
   "navigation_bar.discover": "Откриване",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Редактирай профил",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Премахване на анкета",
   "privacy.change": "Adjust status privacy",
   "privacy.direct.long": "Post to mentioned users only",
-  "privacy.direct.short": "Директно",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Post to followers only",
-  "privacy.private.short": "Само за последователи",
-  "privacy.public.long": "Post to public timelines",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Публично",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Скрито",
   "refresh": "Опресняване",
   "regeneration_indicator.label": "Зареждане…",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index 75e0fbb77..b009d5964 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -70,7 +70,7 @@
   "column.blocks": "যাদের ব্লক করা হয়েছে",
   "column.bookmarks": "বুকমার্ক",
   "column.community": "স্থানীয় সময়সারি",
-  "column.direct": "সরাসরি লেখা",
+  "column.conversations": "Conversations",
   "column.directory": "প্রোফাইল ব্রাউজ করুন",
   "column.domain_blocks": "লুকোনো ডোমেনগুলি",
   "column.favourites": "পছন্দের গুলো",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "শুধুমাত্র স্থানীয়",
   "community.column_settings.media_only": "শুধুমাত্র ছবি বা ভিডিও",
   "community.column_settings.remote_only": "শুধুমাত্র দূরবর্তী",
-  "compose_form.direct_message_warning": "শুধুমাত্র যাদেরকে উল্লেখ করা হয়েছে তাদেরকেই এই টুটটি পাঠানো হবে ।",
   "compose_form.direct_message_warning_learn_more": "আরো জানুন",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "কোনো হ্যাশট্যাগের ভেতরে এই টুটটি থাকবেনা কারণ এটি তালিকাবহির্ভূত। শুধুমাত্র প্রকাশ্য ঠোটগুলো হ্যাশট্যাগের ভেতরে খুঁজে পাওয়া যাবে।",
   "compose_form.lock_disclaimer": "আপনার নিবন্ধনে তালা দেওয়া নেই, যে কেও আপনাকে অনুসরণ করতে পারবে এবং অনুশারকদের জন্য লেখা দেখতে পারবে।",
   "compose_form.lock_disclaimer.lock": "তালা দেওয়া",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "আপনি কোনো ব্যবহারকারীদের ব্লক করেন নি।",
   "empty_column.bookmarked_statuses": "আপনার কাছে এখনও কোনও বুকমার্কড টুট নেই। আপনি যখন একটি বুকমার্ক করেন, এটি এখানে প্রদর্শিত হবে।",
   "empty_column.community": "স্থানীয় সময়রেখাতে কিছু নেই। প্রকাশ্যভাবে কিছু লিখে লেখালেখির উদ্বোধন করে ফেলুন!",
-  "empty_column.direct": "আপনার কাছে সরাসরি পাঠানো কোনো লেখা নেই। যদি কেও পাঠায়, সেটা এখানে দেখা যাবে।",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "এখনও কোনও লুকানো ডোমেন নেই।",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "আপনার পছন্দের কোনো টুট এখনো নেই। আপনি কোনো লেখা পছন্দের হিসেবে চিহ্নিত করলে এখানে পাওয়া যাবে।",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "সমর্থন করতে",
   "keyboard_shortcuts.column": "কোনো কলামএ কোনো লেখা ফোকাস করতে",
   "keyboard_shortcuts.compose": "লেখা সম্পদনার জায়গায় ফোকাস করতে",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "বিবরণ",
-  "keyboard_shortcuts.direct": "সরাসরি পাঠানো লেখা দেখতে",
   "keyboard_shortcuts.down": "তালিকার ভেতরে নিচে যেতে",
   "keyboard_shortcuts.enter": "অবস্থা দেখতে",
   "keyboard_shortcuts.favourite": "পছন্দের দেখতে",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "বুকমার্ক",
   "navigation_bar.community_timeline": "স্থানীয় সময়রেখা",
   "navigation_bar.compose": "নতুন টুট লিখুন",
-  "navigation_bar.direct": "সরাসরি লেখাগুলি",
   "navigation_bar.discover": "ঘুরে দেখুন",
   "navigation_bar.domain_blocks": "লুকানো ডোমেনগুলি",
   "navigation_bar.edit_profile": "নিজের পাতা সম্পাদনা করতে",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "নির্বাচন বাদ দিতে",
   "privacy.change": "লেখার গোপনীয়তা অবস্থা ঠিক করতে",
   "privacy.direct.long": "শুধুমাত্র উল্লেখিত ব্যবহারকারীদের কাছে লিখতে",
-  "privacy.direct.short": "সরাসরি",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "শুধুমাত্র আপনার অনুসরণকারীদের লিখতে",
-  "privacy.private.short": "শুধুমাত্র অনুসরণকারীদের জন্য",
-  "privacy.public.long": "সর্বজনীন প্রকাশ্য সময়রেখাতে লিখতে",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "সর্বজনীন প্রকাশ্য",
-  "privacy.unlisted.long": "সর্বজনীন প্রকাশ্য সময়রেখাতে না দেখাতে",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "প্রকাশ্য নয়",
   "refresh": "সতেজ করা",
   "regeneration_indicator.label": "আসছে…",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index 8b86cd62a..74d430b50 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -70,7 +70,7 @@
   "column.blocks": "Implijer·ezed·ien berzet",
   "column.bookmarks": "Sinedoù",
   "column.community": "Red-amzer lec'hel",
-  "column.direct": "Kemennadoù prevez",
+  "column.conversations": "Conversations",
   "column.directory": "Mont a-dreuz ar profiloù",
   "column.domain_blocks": "Domani berzet",
   "column.favourites": "Muiañ-karet",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Nemet lec'hel",
   "community.column_settings.media_only": "Nemet Mediaoù",
   "community.column_settings.remote_only": "Nemet a-bell",
-  "compose_form.direct_message_warning": "An toud-mañ a vo kaset nemet d'an implijer·ezed·ien meneget.",
   "compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Ne vo ket lakaet an toud-mañ er rolloù gerioù-klik dre mard eo anlistennet. N'eus nemet an toudoù foran a c'hall bezañ klasket dre c'her-klik.",
   "compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal heuliañ ac'hanoc'h evit gwelout ho toudoù prevez.",
   "compose_form.lock_disclaimer.lock": "prennet",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.",
   "empty_column.bookmarked_statuses": "N'ho peus toud ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan ganeoc'h e teuio war wel amañ.",
   "empty_column.community": "Goulo eo ar red-amzer lec'hel. Skrivit'ta un dra evit lakaat tan dezhi !",
-  "empty_column.direct": "N'ho peus kemennad prevez ebet c'hoazh. Pa vo resevet pe kaset unan ganeoc'h e teuio war wel amañ.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "N'ho peus toud muiañ-karet ebet c'hoazh. Pa vo lakaet unan ganeoc'h e vo diskouezet amañ.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "da skignañ",
   "keyboard_shortcuts.column": "Fokus ar bann",
   "keyboard_shortcuts.compose": "Fokus an takad testenn",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Deskrivadur",
-  "keyboard_shortcuts.direct": "Digeriñ bann ar c'hemennadennoù prevez",
   "keyboard_shortcuts.down": "Diskennañ er roll",
   "keyboard_shortcuts.enter": "evit digeriñ un toud",
   "keyboard_shortcuts.favourite": "Lakaat an toud evel muiañ-karet",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Sinedoù",
   "navigation_bar.community_timeline": "Red-amzer lec'hel",
   "navigation_bar.compose": "Skrivañ un toud nevez",
-  "navigation_bar.direct": "Kemennadoù prevez",
   "navigation_bar.discover": "Dizoleiñ",
   "navigation_bar.domain_blocks": "Domanioù kuzhet",
   "navigation_bar.edit_profile": "Aozañ ar profil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Dilemel ar sontadeg",
   "privacy.change": "Kemmañ gwelidigezh ar statud",
   "privacy.direct.long": "Embann evit an implijer·ezed·ien meneget hepken",
-  "privacy.direct.short": "War-eeun",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Embann evit ar re a heuilh ac'hanon hepken",
-  "privacy.private.short": "Ar re a heuilh ac'hanon hepken",
-  "privacy.public.long": "Embann war ar redoù-amzer foran",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Publik",
-  "privacy.unlisted.long": "Na embann war ar redoù-amzer foran",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Anlistennet",
   "refresh": "Freskaat",
   "regeneration_indicator.label": "O kargañ…",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index f2d3e397d..16de55828 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -70,7 +70,7 @@
   "column.blocks": "Usuaris bloquejats",
   "column.bookmarks": "Marcadors",
   "column.community": "Línia de temps local",
-  "column.direct": "Missatges directes",
+  "column.conversations": "Converses",
   "column.directory": "Navega pels perfils",
   "column.domain_blocks": "Dominis bloquejats",
   "column.favourites": "Favorits",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Només local",
   "community.column_settings.media_only": "Només multimèdia",
   "community.column_settings.remote_only": "Només remot",
-  "compose_form.direct_message_warning": "Aquesta publicació només s'enviarà als usuaris esmentats.",
   "compose_form.direct_message_warning_learn_more": "Més informació",
+  "compose_form.encryption_warning": "Les publicacions a Mastodon no estant xifrades punt a punt. No comparteixis informació perillosa mitjançant Mastodon.",
   "compose_form.hashtag_warning": "Aquesta publicació no es mostrarà en cap etiqueta, ja que no està llistada. Només les publicacions públiques es poden cercar per etiqueta.",
   "compose_form.lock_disclaimer": "El teu compte no està bloquejat {locked}. Tothom pot seguir-te i veure els teus missatges només per a seguidors.",
   "compose_form.lock_disclaimer.lock": "bloquejat",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Encara no has bloquejat cap usuari.",
   "empty_column.bookmarked_statuses": "Encara no has marcat com publicació com a preferida. Quan en marquis una apareixerà aquí.",
   "empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!",
-  "empty_column.direct": "Encara no tens missatges directes. Quan n'enviïs o en rebis, es mostraran aquí.",
+  "empty_column.conversations": "Cada vegada que envies o reps una publicació que és només visible per la gent que hi has mencionat en ella, serà mostrada aquí.",
   "empty_column.domain_blocks": "Encara no hi ha dominis bloquejats.",
   "empty_column.explore_statuses": "No hi ha res en tendència ara mateix. Revisa-ho més tard!",
   "empty_column.favourited_statuses": "Encara no has marcat cap publicació com a preferida. Quan les marquis, apareixeran aquí.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Impulsa publicació",
   "keyboard_shortcuts.column": "Centra la columna",
   "keyboard_shortcuts.compose": "Centra l'àrea de composició del text",
+  "keyboard_shortcuts.conversations": "per a obrir la columna de converses",
   "keyboard_shortcuts.description": "Descripció",
-  "keyboard_shortcuts.direct": "Obre la columna de missatges directes",
   "keyboard_shortcuts.down": "Mou-lo avall en la llista",
   "keyboard_shortcuts.enter": "Obre publicació",
   "keyboard_shortcuts.favourite": "Afavorir publicació",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Marcadors",
   "navigation_bar.community_timeline": "Línia de temps local",
   "navigation_bar.compose": "Redacta una nova publicació",
-  "navigation_bar.direct": "Missatges directes",
   "navigation_bar.discover": "Descobrir",
   "navigation_bar.domain_blocks": "Dominis bloquejats",
   "navigation_bar.edit_profile": "Edita el perfil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Elimina l'enquesta",
   "privacy.change": "Ajusta la privacitat de la publicació",
   "privacy.direct.long": "Visible només per als usuaris esmentats",
-  "privacy.direct.short": "Directe",
+  "privacy.direct.short": "Només la gent que menciono",
   "privacy.private.long": "Visible només per als seguidors",
   "privacy.private.short": "Només seguidors",
-  "privacy.public.long": "Visible per a tothom, mostrat en línies de temps públiques",
+  "privacy.public.long": "Visible per tothom",
   "privacy.public.short": "Públic",
-  "privacy.unlisted.long": "Visible per a tothom però no en les línies de temps públiques",
+  "privacy.unlisted.long": "Visible per tothom però exclosa de les funcions de descobriment",
   "privacy.unlisted.short": "No llistat",
   "refresh": "Actualitza",
   "regeneration_indicator.label": "Carregant…",
diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json
index ea976b3af..5a64eaebb 100644
--- a/app/javascript/mastodon/locales/ckb.json
+++ b/app/javascript/mastodon/locales/ckb.json
@@ -70,7 +70,7 @@
   "column.blocks": "بەکارهێنەرە بلۆککراوەکان",
   "column.bookmarks": "نیشانەکان",
   "column.community": "هێڵی کاتی ناوخۆیی",
-  "column.direct": "نامە ڕاستەوخۆکان",
+  "column.conversations": "Conversations",
   "column.directory": "گەڕان لە پرۆفایلەکان",
   "column.domain_blocks": "دۆمەینە داخراوەکان",
   "column.favourites": "دڵخوازترینەکان",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "تەنها خۆماڵی",
   "community.column_settings.media_only": "تەنها میدیا",
   "community.column_settings.remote_only": "تەنها بۆ دوور",
-  "compose_form.direct_message_warning": "ئەم توتە تەنیا بۆ بەکارهێنەرانی ناوبراو دەنێردرێت.",
   "compose_form.direct_message_warning_learn_more": "زیاتر فێربه",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "ئەم توتە لە ژێر هیچ هاشتاگییەک دا ناکرێت وەک ئەوەی لە لیستەکەدا نەریزراوە. تەنها توتی گشتی دەتوانرێت بە هاشتاگی بگەڕێت.",
   "compose_form.lock_disclaimer": "هەژمێرەکەی لە حاڵەتی {locked}. هەر کەسێک دەتوانێت شوێنت بکەوێت بۆ پیشاندانی بابەتەکانی تەنها دوایخۆی.",
   "compose_form.lock_disclaimer.lock": "قفڵ دراوە",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "تۆ هێشتا هیچ بەکارهێنەرێکت بلۆک نەکردووە.",
   "empty_column.bookmarked_statuses": "تۆ هێشتا هیچ توتێکی دیاریکراوت نیە کاتێک نیشانەیەک نیشان دەکەیت، لێرە دەرئەکەویت.",
   "empty_column.community": "هێڵی کاتی ناوخۆیی بەتاڵە. شتێک بە ئاشکرا بنووسە بۆ ئەوەی تۆپەکە بسووڕێت!",
-  "empty_column.direct": "تۆ هیچ نامەی ڕاستەوخۆت نیە تا ئێستا. کاتێک دانەیەک دەنێریت یان وەرت دەگرێت، لێرە پیشان دەدات.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "هێشتا هیچ دۆمەینێکی بلۆک کراو نییە.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "تۆ هێشتا هیچ توتێکی دڵخوازت نییە، کاتێک حەزت لە دانەیەکی باشە، لێرە دەرئەکەویت.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "بۆ بەهێزکردن",
   "keyboard_shortcuts.column": "بۆ ئەوەی تیشک بخاتە سەر توتێک لە یەکێک لە ستوونەکان",
   "keyboard_shortcuts.compose": "بۆ سەرنجدان بە نووسینی ناوچەی دەق",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "وه‌سف",
-  "keyboard_shortcuts.direct": "بۆ کردنەوەی ستوونی نامە ڕاستەوخۆکان",
   "keyboard_shortcuts.down": "بۆ چوونە خوارەوە لە لیستەکەدا",
   "keyboard_shortcuts.enter": "بۆ کردنەوەی توت",
   "keyboard_shortcuts.favourite": "بۆ دڵخواز",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "نیشانکراوەکان",
   "navigation_bar.community_timeline": "دەمنامەی ناوخۆیی",
   "navigation_bar.compose": "نووسینی توتی نوێ",
-  "navigation_bar.direct": "نامە ڕاستەوخۆکان",
   "navigation_bar.discover": "دۆزینەوە",
   "navigation_bar.domain_blocks": "دۆمەینە بلۆک کراوەکان",
   "navigation_bar.edit_profile": "دەستکاری پرۆفایل بکە",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "ده‌نگدان بسڕه‌وه‌‌",
   "privacy.change": "ڕێکخستنی تایبەتمەندی توت",
   "privacy.direct.long": "تەنیا بۆ بەکارهێنەرانی ناوبراو",
-  "privacy.direct.short": "ڕاستەوخۆ",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "بینراو تەنها بۆ شوێنکەوتوان",
-  "privacy.private.short": "تەنها بۆ شوێنکەوتوان",
-  "privacy.public.long": "بۆ هەمووان دیاربێت، لە هێڵی کاتی گشتی دا نیشان دەدرێت",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "گشتی",
-  "privacy.unlisted.long": "بۆ هەمووان دیارە، بەڵام لە هێڵی کاتی گشتیدا نا",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "لە لیست نەکراو",
   "refresh": "نوێکردنەوە",
   "regeneration_indicator.label": "بارکردن…",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index 453aa9653..770bd71bc 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -70,7 +70,7 @@
   "column.blocks": "Utilizatori bluccati",
   "column.bookmarks": "Segnalibri",
   "column.community": "Linea pubblica lucale",
-  "column.direct": "Missaghji diretti",
+  "column.conversations": "Conversations",
   "column.directory": "Percorre i prufili",
   "column.domain_blocks": "Duminii piattati",
   "column.favourites": "Favuriti",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Solu lucale",
   "community.column_settings.media_only": "Solu media",
   "community.column_settings.remote_only": "Solu distante",
-  "compose_form.direct_message_warning": "Solu l'utilizatori mintuvati puderenu vede stu statutu.",
   "compose_form.direct_message_warning_learn_more": "Amparà di più",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Stu statutu ùn hè \"Micca listatu\" è ùn sarà micca listatu indè e circate da hashtag. Per esse vistu in quesse, u statutu deve esse \"Pubblicu\".",
   "compose_form.lock_disclaimer": "U vostru contu ùn hè micca {locked}. Tuttu u mondu pò seguitavi è vede i vostri statuti privati.",
   "compose_form.lock_disclaimer.lock": "privatu",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Per avà ùn avete bluccatu manc'un utilizatore.",
   "empty_column.bookmarked_statuses": "Ùn avete manc'un segnalibru. Quandu aghjunghjerate unu, sarà mustratu quì.",
   "empty_column.community": "Ùn c'hè nunda indè a linea lucale. Scrivete puru qualcosa!",
-  "empty_column.direct": "Ùn avete ancu nisun missaghju direttu. S'è voi mandate o ricevete unu, u vidarete quì.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Ùn c'hè manc'un duminiu bluccatu avà.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Ùn avete manc'unu statutu favuritu. Quandu aghjunghjerate unu à i vostri favuriti, sarà mustratu quì.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "sparte",
   "keyboard_shortcuts.column": "fucalizà un statutu indè una colonna",
   "keyboard_shortcuts.compose": "fucalizà nant'à l'area di ridazzione",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Descrizzione",
-  "keyboard_shortcuts.direct": "per apre una culonna di missaghji diretti",
   "keyboard_shortcuts.down": "falà indè a lista",
   "keyboard_shortcuts.enter": "apre u statutu",
   "keyboard_shortcuts.favourite": "aghjunghje à i favuriti",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Segnalibri",
   "navigation_bar.community_timeline": "Linea pubblica lucale",
   "navigation_bar.compose": "Scrive un novu statutu",
-  "navigation_bar.direct": "Missaghji diretti",
   "navigation_bar.discover": "Scopre",
   "navigation_bar.domain_blocks": "Duminii piattati",
   "navigation_bar.edit_profile": "Mudificà u prufile",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Toglie u scandagliu",
   "privacy.change": "Mudificà a cunfidenzialità di u statutu",
   "privacy.direct.long": "Mandà solu à quelli chì so mintuvati",
-  "privacy.direct.short": "Direttu",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Mustrà solu à l'abbunati",
-  "privacy.private.short": "Privatu",
-  "privacy.public.long": "Mustrà à tuttu u mondu nant'à e linee pubbliche",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Pubblicu",
-  "privacy.unlisted.long": "Ùn mette micca nant'à e linee pubbliche",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Micca listatu",
   "refresh": "Attualizà",
   "regeneration_indicator.label": "Caricamentu…",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index 0b49c3f77..df1e750b7 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blokovaní uživatelé",
   "column.bookmarks": "Záložky",
   "column.community": "Místní časová osa",
-  "column.direct": "Přímé zprávy",
+  "column.conversations": "Konverzace",
   "column.directory": "Prozkoumat profily",
   "column.domain_blocks": "Blokované domény",
   "column.favourites": "Oblíbené",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Pouze místní",
   "community.column_settings.media_only": "Pouze média",
   "community.column_settings.remote_only": "Pouze vzdálené",
-  "compose_form.direct_message_warning": "Tento příspěvek bude odeslán pouze zmíněným uživatelům.",
   "compose_form.direct_message_warning_learn_more": "Zjistit více",
+  "compose_form.encryption_warning": "Příspěvky na Mastodonu nejsou end-to-end šifrovány. Nesdílejte přes Mastodon žádné nebezpečné informace.",
   "compose_form.hashtag_warning": "Tento příspěvek nebude zobrazen pod žádným hashtagem, neboť je neuvedený. Pouze veřejné příspěvky mohou být vyhledány podle hashtagu.",
   "compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky učené pouze pro sledující.",
   "compose_form.lock_disclaimer.lock": "uzamčen",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ještě jste nezablokovali žádného uživatele.",
   "empty_column.bookmarked_statuses": "Ještě nemáte v záložkách žádné příspěvky. Pokud si do nich nějaký přidáte, zobrazí se zde.",
   "empty_column.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!",
-  "empty_column.direct": "Ještě nemáte žádné přímé zprávy. Pokud nějakou pošlete nebo dostanete, zobrazí se zde.",
+  "empty_column.conversations": "Jakmile pošlete nebo obdržíte příspěvek, který je viditelný pouze lidem v něm zmíněným, objeví se tady.",
   "empty_column.domain_blocks": "Ještě nemáte žádné blokované domény.",
   "empty_column.explore_statuses": "Momentálně není nic populární. Vraťte se později!",
   "empty_column.favourited_statuses": "Ještě nemáte žádné oblíbené příspěvky. Pokud si nějaký oblíbíte, zobrazí se zde.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Boostnout příspěvek",
   "keyboard_shortcuts.column": "Focus na sloupec",
   "keyboard_shortcuts.compose": "Focus na textové pole nového příspěvku",
+  "keyboard_shortcuts.conversations": "Otevřít sloupec konverzací",
   "keyboard_shortcuts.description": "Popis",
-  "keyboard_shortcuts.direct": "Otevřít sloupec přímých zpráv",
   "keyboard_shortcuts.down": "Posunout dolů v seznamu",
   "keyboard_shortcuts.enter": "Otevřít příspěvek",
   "keyboard_shortcuts.favourite": "Oblíbit příspěvek",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Záložky",
   "navigation_bar.community_timeline": "Místní časová osa",
   "navigation_bar.compose": "Vytvořit nový příspěvek",
-  "navigation_bar.direct": "Přímé zprávy",
   "navigation_bar.discover": "Objevujte",
   "navigation_bar.domain_blocks": "Blokované domény",
   "navigation_bar.edit_profile": "Upravit profil",
@@ -366,13 +365,13 @@
   "poll_button.add_poll": "Přidat anketu",
   "poll_button.remove_poll": "Odstranit anketu",
   "privacy.change": "Změnit soukromí příspěvku",
-  "privacy.direct.long": "Viditelné pouze pro zmíněné uživatele",
-  "privacy.direct.short": "Přímý",
-  "privacy.private.long": "Viditelné pouze pro sledující",
-  "privacy.private.short": "Pouze pro sledující",
-  "privacy.public.long": "Viditelné pro všechny, i ve veřejných časových osách",
+  "privacy.direct.long": "Viditelný pouze pro zmíněné uživatele",
+  "privacy.direct.short": "Pouze lidé, které zmíním",
+  "privacy.private.long": "Viditelný pouze pro sledující",
+  "privacy.private.short": "Pouze sledující",
+  "privacy.public.long": "Viditelný pro všechny",
   "privacy.public.short": "Veřejný",
-  "privacy.unlisted.long": "Viditelné pro všechny, ale ne ve veřejných časových osách",
+  "privacy.unlisted.long": "Viditelný pro všechny, ale vyňat z funkcí objevování",
   "privacy.unlisted.short": "Neuvedený",
   "refresh": "Obnovit",
   "regeneration_indicator.label": "Načítání…",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index a3979b197..7edb1d1cf 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -4,26 +4,26 @@
   "account.badges.bot": "Bot",
   "account.badges.group": "Grŵp",
   "account.block": "Blocio @{name}",
-  "account.block_domain": "Cuddio popeth rhag {domain}",
+  "account.block_domain": "Blocio parth {domain}",
   "account.blocked": "Blociwyd",
   "account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol",
   "account.cancel_follow_request": "Canslo cais dilyn",
   "account.direct": "Neges breifat @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Parth wedi ei guddio",
+  "account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio",
+  "account.domain_blocked": "Parth wedi ei flocio",
   "account.edit_profile": "Golygu proffil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio",
   "account.endorse": "Arddangos ar fy mhroffil",
   "account.follow": "Dilyn",
   "account.followers": "Dilynwyr",
-  "account.followers.empty": "Nid oes neb yn dilyn y defnyddiwr hwn eto.",
-  "account.followers_counter": "{count, plural, one {{counter} Ddilynwr} other {{counter} o Ddilynwyr}}",
+  "account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
+  "account.followers_counter": "{count, plural, one {{counter} Dilynwr} other {{counter} o Ddilynwyr}}",
   "account.following": "Yn dilyn",
   "account.following_counter": "{count, plural, one {{counter} yn Dilyn} other {{counter} yn Dilyn}}",
   "account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.",
   "account.follows_you": "Yn eich dilyn chi",
   "account.hide_reblogs": "Cuddio bwstiau o @{name}",
-  "account.joined": "Joined {date}",
+  "account.joined": "Ymunodd {date}",
   "account.link_verified_on": "Gwiriwyd perchnogaeth y ddolen yma ar {date}",
   "account.locked_info": "Mae'r statws preifatrwydd cyfrif hwn wedi'i osod i gloi. Mae'r perchennog yn adolygu'r sawl sy'n gallu eu dilyn.",
   "account.media": "Cyfryngau",
@@ -32,8 +32,8 @@
   "account.mute": "Tawelu @{name}",
   "account.mute_notifications": "Cuddio hysbysiadau o @{name}",
   "account.muted": "Distewyd",
-  "account.posts": "Tŵtiau",
-  "account.posts_with_replies": "Tŵtiau ac atebion",
+  "account.posts": "Postiadau",
+  "account.posts_with_replies": "Postiadau ac atebion",
   "account.report": "Adrodd @{name}",
   "account.requested": "Aros am gymeradwyaeth. Cliciwch er mwyn canslo cais dilyn",
   "account.share": "Rhannwch broffil @{name}",
@@ -48,17 +48,17 @@
   "account.unmute_notifications": "Dad-dawelu hysbysiadau o @{name}",
   "account.unmute_short": "Dad-dewi",
   "account_note.placeholder": "Clicio i ychwanegu nodyn",
-  "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
-  "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
+  "admin.dashboard.daily_retention": "Cyfradd cadw defnyddwyr fesul diwrnod ar ôl cofrestru",
+  "admin.dashboard.monthly_retention": "Cyfradd cadw defnyddwyr fesul mis ar ôl cofrestru",
   "admin.dashboard.retention.average": "Cyfartaledd",
-  "admin.dashboard.retention.cohort": "Sign-up month",
+  "admin.dashboard.retention.cohort": "Mis cofrestru",
   "admin.dashboard.retention.cohort_size": "Defnyddwyr newydd",
   "alert.rate_limited.message": "Ceisiwch eto ar ôl {retry_time, time, medium}.",
   "alert.rate_limited.title": "Cyfradd gyfyngedig",
   "alert.unexpected.message": "Digwyddodd gwall annisgwyl.",
   "alert.unexpected.title": "Wps!",
   "announcement.announcement": "Cyhoeddiad",
-  "attachments_list.unprocessed": "(unprocessed)",
+  "attachments_list.unprocessed": "(heb eu prosesu)",
   "autosuggest_hashtag.per_week": "{count} yr wythnos",
   "boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa",
   "bundle_column_error.body": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.",
@@ -70,7 +70,7 @@
   "column.blocks": "Defnyddwyr a flociwyd",
   "column.bookmarks": "Tudalnodau",
   "column.community": "Ffrwd lleol",
-  "column.direct": "Negeseuon preifat",
+  "column.conversations": "Sgyrsiau",
   "column.directory": "Pori proffiliau",
   "column.domain_blocks": "Parthau cuddiedig",
   "column.favourites": "Ffefrynnau",
@@ -79,7 +79,7 @@
   "column.lists": "Rhestrau",
   "column.mutes": "Defnyddwyr a ddistewyd",
   "column.notifications": "Hysbysiadau",
-  "column.pins": "Tŵtiau wedi eu pinio",
+  "column.pins": "Postiadau wedi eu pinio",
   "column.public": "Ffrwd y ffederasiwn",
   "column_back_button.label": "Nôl",
   "column_header.hide_settings": "Cuddio dewisiadau",
@@ -92,10 +92,10 @@
   "community.column_settings.local_only": "Lleol yn unig",
   "community.column_settings.media_only": "Cyfryngau yn unig",
   "community.column_settings.remote_only": "Anghysbell yn unig",
-  "compose_form.direct_message_warning": "Mi fydd y tŵt hwn ond yn cael ei anfon at y defnyddwyr sy'n cael eu crybwyll.",
   "compose_form.direct_message_warning_learn_more": "Dysgu mwy",
-  "compose_form.hashtag_warning": "Ni fydd y tŵt hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond tŵtiau cyhoeddus gellid chwilota amdanynt drwy hashnod.",
-  "compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich tŵtiau dilynwyr-yn-unig.",
+  "compose_form.encryption_warning": "Dyw postiadau ar Mastodon ddim wedi'u hamgryptio o ben i ben. Peidiwch â rhannu unrhyw wybodaeth beryglus dros Mastodon.",
+  "compose_form.hashtag_warning": "Ni fydd y post hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond postiadau cyhoeddus gellid chwilio amdanynt drwy hashnod.",
+  "compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich postiadau dilynwyr-yn-unig.",
   "compose_form.lock_disclaimer.lock": "wedi ei gloi",
   "compose_form.placeholder": "Beth sydd ar eich meddwl?",
   "compose_form.poll.add_option": "Ychwanegu Dewisiad",
@@ -106,7 +106,7 @@
   "compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis",
   "compose_form.publish": "Tŵt",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Save changes",
+  "compose_form.save_changes": "Cadw newidiadau",
   "compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif",
   "compose_form.sensitive.marked": "Cyfryngau wedi'u marcio'n sensitif",
   "compose_form.sensitive.unmarked": "Nid yw'r cyfryngau wedi'u marcio'n sensitif",
@@ -118,11 +118,11 @@
   "confirmations.block.confirm": "Blocio",
   "confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
   "confirmations.delete.confirm": "Dileu",
-  "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y tŵt hwn?",
+  "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
   "confirmations.delete_list.confirm": "Dileu",
   "confirmations.delete_list.message": "Ydych chi'n sicr eich bod eisiau dileu y rhestr hwn am byth?",
   "confirmations.discard_edit_media.confirm": "Gwaredu",
-  "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
+  "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg, eu taflu beth bynnag?",
   "confirmations.domain_block.confirm": "Cuddio parth cyfan",
   "confirmations.domain_block.message": "A ydych yn hollol, hollol sicr eich bod am flocio y {domain} cyfan? Yn y nifer helaeth o achosion mae blocio neu tawelu ambell gyfrif yn ddigonol ac yn well. Ni fyddwch yn gweld cynnwys o'r parth hwnnw mewn unrhyw ffrydiau cyhoeddus na chwaith yn eich hysbysiadau. Bydd hyn yn cael gwared o'ch dilynwyr o'r parth hwnnw.",
   "confirmations.logout.confirm": "Allgofnodi",
@@ -131,7 +131,7 @@
   "confirmations.mute.explanation": "Bydd hyn yn cuddio pyst oddi wrthynt a physt sydd yn sôn amdanynt, ond bydd hyn dal yn gadael iddyn nhw gweld eich pyst a'ch dilyn.",
   "confirmations.mute.message": "Ydych chi'n sicr eich bod am ddistewi {name}?",
   "confirmations.redraft.confirm": "Dileu & ailddrafftio",
-  "confirmations.redraft.message": "Ydych chi'n siwr eich bod eisiau dileu y tŵt hwn a'i ailddrafftio? Bydd ffefrynnau a bwstiau'n cael ei colli, a bydd ymatebion i'r tŵt gwreiddiol yn cael eu hamddifadu.",
+  "confirmations.redraft.message": "Ydych chi'n siwr eich bod eisiau dileu y post hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael ei colli, a bydd ymatebion i'r post gwreiddiol yn cael eu hamddifadu.",
   "confirmations.reply.confirm": "Ateb",
   "confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n sicr yr ydych am barhau?",
   "confirmations.unfollow.confirm": "Dad-ddilynwch",
@@ -140,11 +140,11 @@
   "conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
   "conversation.open": "Gweld sgwrs",
   "conversation.with": "Gyda {names}",
-  "directory.federated": "O ffedysawd hysbys",
+  "directory.federated": "O'r ffedysawd cyfan",
   "directory.local": "O {domain} yn unig",
   "directory.new_arrivals": "Newydd-ddyfodiaid",
   "directory.recently_active": "Yn weithredol yn ddiweddar",
-  "embed.instructions": "Mewnblannwch y tŵt hwn ar eich gwefan drwy gopïo'r côd isod.",
+  "embed.instructions": "Gosodwch y post hwn ar eich gwefan drwy gopïo'r côd isod.",
   "embed.preview": "Dyma sut olwg fydd arno:",
   "emoji_button.activity": "Gweithgarwch",
   "emoji_button.custom": "Unigryw",
@@ -160,42 +160,42 @@
   "emoji_button.search_results": "Canlyniadau chwilio",
   "emoji_button.symbols": "Symbolau",
   "emoji_button.travel": "Teithio & Llefydd",
-  "empty_column.account_suspended": "Account suspended",
-  "empty_column.account_timeline": "Dim tŵtiau fama!",
+  "empty_column.account_suspended": "Cyfrif wedi'i atal",
+  "empty_column.account_timeline": "Dim postiadau yma!",
   "empty_column.account_unavailable": "Proffil ddim ar gael",
   "empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
   "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw dwtiau tudalnodiedig eto. Pan y byddwch yn tudalnodi un, mi fydd yn ymddangos yma.",
   "empty_column.community": "Mae'r ffrwd lleol yn wag. Ysgrifenwch rhywbeth yn gyhoeddus i gael dechrau arni!",
-  "empty_column.direct": "Nid oes gennych unrhyw negeseuon preifat eto. Pan y byddwch yn anfon neu derbyn un, mi fydd yn ymddangos yma.",
+  "empty_column.conversations": "Unwaith y byddwch chi'n anfon neu'n derbyn post sydd ond yn weladwy i'r bobl a grybwyllir ynddo, bydd yn ymddangos yma.",
   "empty_column.domain_blocks": "Nid oes yna unrhyw barthau cuddiedig eto.",
-  "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
+  "empty_column.explore_statuses": "Does dim byd yn trendio ar hyn o bryd. Gwiriwch yn ôl yn nes ymlaen!",
   "empty_column.favourited_statuses": "Nid oes gennych unrhyw hoff dwtiau eto. Pan y byddwch yn hoffi un, mi fydd yn ymddangos yma.",
-  "empty_column.favourites": "Nid oes neb wedi hoffi'r tŵt yma eto. Pan bydd rhywun yn ei hoffi, byddent yn ymddangos yma.",
-  "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
+  "empty_column.favourites": "Does neb wedi hoffi'r post hwn eto. Pan bydd rhywun yn ei hoffi, byddent yn ymddangos yma.",
+  "empty_column.follow_recommendations": "Does dim awgrymiadau yma i chi. Gallwch geisio chwilio am bobl yr ydych yn eu hadnabod neu archwilio hashnodau sy'n trendio.",
   "empty_column.follow_requests": "Nid oes gennych unrhyw geisiadau dilyn eto. Pan dderbyniwch chi un, byddent yn ymddangos yma.",
   "empty_column.hashtag": "Nid oes dim ar yr hashnod hwn eto.",
   "empty_column.home": "Mae eich ffrwd gartref yn wag! Ymwelwch a {public} neu defnyddiwch y chwilotwr i ddechrau arni ac i gwrdd a defnyddwyr eraill.",
-  "empty_column.home.suggestions": "See some suggestions",
+  "empty_column.home.suggestions": "Gweler awgrymiadau",
   "empty_column.list": "Nid oes dim yn y rhestr yma eto. Pan y bydd aelodau'r rhestr yn cyhoeddi statws newydd, mi fydd yn ymddangos yma.",
   "empty_column.lists": "Nid oes gennych unrhyw restrau eto. Pan grëwch chi un, mi fydd yn ymddangos yma.",
   "empty_column.mutes": "Nid ydych wedi tawelu unrhyw ddefnyddwyr eto.",
   "empty_column.notifications": "Nid oes gennych unrhyw hysbysiadau eto. Rhyngweithiwch ac eraill i ddechrau'r sgwrs.",
   "empty_column.public": "Does dim byd yma! Ysgrifennwch rhywbeth yn gyhoeddus, neu dilynwch ddefnyddwyr o achosion eraill i'w lenwi",
   "error.unexpected_crash.explanation": "Oherwydd gwall yn ein cod neu oherwydd problem cysondeb porwr, nid oedd y dudalen hon gallu cael ei dangos yn gywir.",
-  "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
+  "error.unexpected_crash.explanation_addons": "Ni ellid arddangos y dudalen hon yn gywir. Mae'r gwall hwn yn debygol o gael ei achosi gan ategyn porwr neu offer cyfieithu awtomatig.",
   "error.unexpected_crash.next_steps": "Ceisiwch ail-lwytho y dudalen. Os nad yw hyn yn eich helpu, efallai gallech defnyddio Mastodon trwy borwr neu ap brodorol gwahanol.",
-  "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+  "error.unexpected_crash.next_steps_addons": "Ceisiwch eu hanalluogi ac adnewyddu'r dudalen. Os nad yw hynny'n helpu, efallai y byddwch yn dal i allu defnyddio Mastodon trwy borwr neu ap cynhenid arall.",
   "errors.unexpected_crash.copy_stacktrace": "Copïo'r olrhain stac i'r clipfwrdd",
   "errors.unexpected_crash.report_issue": "Rhoi gwybod am broblem",
-  "explore.search_results": "Search results",
+  "explore.search_results": "Canlyniadau chwilio",
   "explore.suggested_follows": "I chi",
   "explore.title": "Archwilio",
   "explore.trending_links": "Newyddion",
   "explore.trending_statuses": "Postiau",
   "explore.trending_tags": "Hanshnodau",
   "follow_recommendations.done": "Wedi gorffen",
-  "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
-  "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
+  "follow_recommendations.heading": "Dilynwch y bobl yr hoffech chi weld eu postiadau! Dyma ambell i awgrymiad.",
+  "follow_recommendations.lead": "Bydd postiadau gan bobl rydych chi'n eu dilyn yn ymddangos mewn trefn amser ar eich ffrwd cartref. Peidiwch â bod ofn gwneud camgymeriadau, gallwch chi ddad-ddilyn pobl yr un mor hawdd unrhyw bryd!",
   "follow_request.authorize": "Caniatau",
   "follow_request.reject": "Gwrthod",
   "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
@@ -218,7 +218,7 @@
   "hashtag.column_settings.tag_mode.none": "Dim o'r rhain",
   "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
   "home.column_settings.basic": "Syml",
-  "home.column_settings.show_reblogs": "Dangos bŵstiau",
+  "home.column_settings.show_reblogs": "Dangos hybiau",
   "home.column_settings.show_replies": "Dangos ymatebion",
   "home.hide_announcements": "Cuddio cyhoeddiadau",
   "home.show_announcements": "Dangos cyhoeddiadau",
@@ -228,26 +228,26 @@
   "keyboard_shortcuts.back": "i lywio nôl",
   "keyboard_shortcuts.blocked": "i agor rhestr defnyddwyr a flociwyd",
   "keyboard_shortcuts.boost": "i fŵstio",
-  "keyboard_shortcuts.column": "i ffocysu tŵt yn un o'r colofnau",
+  "keyboard_shortcuts.column": "Ffocysu colofn",
   "keyboard_shortcuts.compose": "i ffocysu yr ardal cyfansoddi testun",
+  "keyboard_shortcuts.conversations": "i agor colofn sgyrsiau",
   "keyboard_shortcuts.description": "Disgrifiad",
-  "keyboard_shortcuts.direct": "i agor colofn negeseuon preifat",
   "keyboard_shortcuts.down": "i symud lawr yn y rhestr",
-  "keyboard_shortcuts.enter": "i agor tŵt",
+  "keyboard_shortcuts.enter": "Agor post",
   "keyboard_shortcuts.favourite": "i hoffi",
   "keyboard_shortcuts.favourites": "i agor rhestr hoffi",
   "keyboard_shortcuts.federated": "i agor ffrwd y ffederasiwn",
   "keyboard_shortcuts.heading": "Llwybrau byr allweddell",
   "keyboard_shortcuts.home": "i agor ffrwd cartref",
   "keyboard_shortcuts.hotkey": "Bysell brys",
-  "keyboard_shortcuts.legend": "i ddangos yr arwr yma",
+  "keyboard_shortcuts.legend": "i ddangos y rhestr hon",
   "keyboard_shortcuts.local": "i agor ffrwd lleol",
   "keyboard_shortcuts.mention": "i grybwyll yr awdur",
   "keyboard_shortcuts.muted": "i agor rhestr defnyddwyr a dawelwyd",
   "keyboard_shortcuts.my_profile": "i agor eich proffil",
   "keyboard_shortcuts.notifications": "i agor colofn hysbysiadau",
   "keyboard_shortcuts.open_media": "i agor cyfryngau",
-  "keyboard_shortcuts.pinned": "i agor rhestr tŵtiau wedi'i pinio",
+  "keyboard_shortcuts.pinned": "Agor rhestr postiadau wedi'u pinio",
   "keyboard_shortcuts.profile": "i agor proffil yr awdur",
   "keyboard_shortcuts.reply": "i ateb",
   "keyboard_shortcuts.requests": "i agor rhestr ceisiadau dilyn",
@@ -256,7 +256,7 @@
   "keyboard_shortcuts.start": "i agor colofn \"dechrau arni\"",
   "keyboard_shortcuts.toggle_hidden": "i ddangos/cuddio testun tu ôl i CW",
   "keyboard_shortcuts.toggle_sensitivity": "i ddangos/gyddio cyfryngau",
-  "keyboard_shortcuts.toot": "i ddechrau tŵt newydd sbon",
+  "keyboard_shortcuts.toot": "Dechrau post newydd",
   "keyboard_shortcuts.unfocus": "i ddad-ffocysu ardal cyfansoddi testun/chwilio",
   "keyboard_shortcuts.up": "i symud yn uwch yn y rhestr",
   "lightbox.close": "Cau",
@@ -275,7 +275,7 @@
   "lists.replies_policy.list": "Aelodau'r rhestr",
   "lists.replies_policy.none": "Neb",
   "lists.replies_policy.title": "Dangos ymatebion i:",
-  "lists.search": "Chwilio ymysg pobl yr ydych yn ei ddilyn",
+  "lists.search": "Chwilio ymysg pobl yr ydych yn eu dilyn",
   "lists.subheading": "Eich rhestrau",
   "load_pending": "{count, plural, one {# eitem newydd} other {# eitemau newydd}}",
   "loading_indicator.label": "Llwytho...",
@@ -289,8 +289,7 @@
   "navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
   "navigation_bar.bookmarks": "Tudalnodau",
   "navigation_bar.community_timeline": "Ffrwd leol",
-  "navigation_bar.compose": "Cyfansoddi tŵt newydd",
-  "navigation_bar.direct": "Negeseuon preifat",
+  "navigation_bar.compose": "Cyfansoddi post newydd",
   "navigation_bar.discover": "Darganfod",
   "navigation_bar.domain_blocks": "Parthau cuddiedig",
   "navigation_bar.edit_profile": "Golygu proffil",
@@ -305,28 +304,28 @@
   "navigation_bar.logout": "Allgofnodi",
   "navigation_bar.mutes": "Defnyddwyr a dawelwyd",
   "navigation_bar.personal": "Personol",
-  "navigation_bar.pins": "Tŵtiau wedi eu pinio",
+  "navigation_bar.pins": "Postiadau wedi eu pinio",
   "navigation_bar.preferences": "Dewisiadau",
   "navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
   "navigation_bar.security": "Diogelwch",
-  "notification.admin.sign_up": "{name} signed up",
-  "notification.favourite": "hoffodd {name} eich tŵt",
-  "notification.follow": "dilynodd {name} chi",
+  "notification.admin.sign_up": "Cofrestrodd {name}",
+  "notification.favourite": "Hoffodd {name} eich post",
+  "notification.follow": "Dilynodd {name} chi",
   "notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn",
   "notification.mention": "Soniodd {name} amdanoch chi",
   "notification.own_poll": "Mae eich pôl wedi diweddu",
   "notification.poll": "Mae pleidlais rydych wedi pleidleisio ynddi wedi dod i ben",
-  "notification.reblog": "Hysbysebodd {name} eich tŵt",
+  "notification.reblog": "Hybodd {name} eich post",
   "notification.status": "{name} newydd ei bostio",
-  "notification.update": "{name} edited a post",
+  "notification.update": "Golygodd {name} bost",
   "notifications.clear": "Clirio hysbysiadau",
   "notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?",
-  "notifications.column_settings.admin.sign_up": "New sign-ups:",
+  "notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:",
   "notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith",
   "notifications.column_settings.favourite": "Ffefrynnau:",
   "notifications.column_settings.filter_bar.advanced": "Dangos pob categori",
   "notifications.column_settings.filter_bar.category": "Bar hidlo",
-  "notifications.column_settings.filter_bar.show_bar": "Show filter bar",
+  "notifications.column_settings.filter_bar.show_bar": "Dangos bar hidlo",
   "notifications.column_settings.follow": "Dilynwyr newydd:",
   "notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:",
   "notifications.column_settings.mention": "Crybwylliadau:",
@@ -336,10 +335,10 @@
   "notifications.column_settings.show": "Dangos yn y golofn",
   "notifications.column_settings.sound": "Chwarae sain",
   "notifications.column_settings.status": "New toots:",
-  "notifications.column_settings.unread_notifications.category": "Unread notifications",
-  "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
+  "notifications.column_settings.unread_notifications.category": "Hysbysiadau heb eu darllen",
+  "notifications.column_settings.unread_notifications.highlight": "Amlygu hysbysiadau heb eu darllen",
   "notifications.column_settings.update": "Golygiadau:",
-  "notifications.filter.all": "Pob",
+  "notifications.filter.all": "Popeth",
   "notifications.filter.boosts": "Hybiadau",
   "notifications.filter.favourites": "Ffefrynnau",
   "notifications.filter.follows": "Yn dilyn",
@@ -362,116 +361,116 @@
   "poll.total_votes": "{count, plural, one {# bleidlais} other {# o bleidleisiau}}",
   "poll.vote": "Pleidleisio",
   "poll.voted": "Pleidleisioch chi am yr ateb hon",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, one {# bleidlais} other {# o bleidleisiau}}",
   "poll_button.add_poll": "Ychwanegu pleidlais",
   "poll_button.remove_poll": "Tynnu pleidlais",
-  "privacy.change": "Addasu preifatrwdd y tŵt",
+  "privacy.change": "Addasu preifatrwdd y post",
   "privacy.direct.long": "Cyhoeddi i'r defnyddwyr sy'n cael eu crybwyll yn unig",
-  "privacy.direct.short": "Uniongyrchol",
+  "privacy.direct.short": "Dim ond pobl rwy'n eu crybwyll",
   "privacy.private.long": "Cyhoeddi i ddilynwyr yn unig",
-  "privacy.private.short": "Dilynwyr-yn-unig",
-  "privacy.public.long": "Cyhoeddi i ffrydiau cyhoeddus",
+  "privacy.private.short": "Dilynwyr yn unig",
+  "privacy.public.long": "Gweladwy i bawb",
   "privacy.public.short": "Cyhoeddus",
-  "privacy.unlisted.long": "Peidio a chyhoeddi i ffrydiau cyhoeddus",
+  "privacy.unlisted.long": "Gweladwy i bawb, ond wedi optio allan o nodweddion darganfod",
   "privacy.unlisted.short": "Heb ei restru",
   "refresh": "Adnewyddu",
   "regeneration_indicator.label": "Llwytho…",
   "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!",
   "relative_time.days": "{number}dydd",
-  "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
-  "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
+  "relative_time.full.days": "{number, plural, one {# dydd} other {# o ddyddiau}} yn ôl",
+  "relative_time.full.hours": "{number, plural, one {# awr} other {# o oriau}} yn ôl",
   "relative_time.full.just_now": "jyst nawr",
-  "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
-  "relative_time.hours": "{number}awr",
+  "relative_time.full.minutes": "{number, plural, one {# funud} other {# o funudau}} yn ôl",
+  "relative_time.full.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} yn ôl",
+  "relative_time.hours": "{number} awr",
   "relative_time.just_now": "nawr",
-  "relative_time.minutes": "{number}munud",
+  "relative_time.minutes": "{number} munud",
   "relative_time.seconds": "{number}eiliad",
   "relative_time.today": "heddiw",
   "reply_indicator.cancel": "Canslo",
   "report.block": "Blocio",
-  "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
+  "report.block_explanation": "Ni welwch chi eu postiadau. Ni allan nhw weld eich postiadau na'ch dilyn. Byddan nhw'n gallu gweld eu bod nhw wedi'u rhwystro.",
   "report.categories.other": "Arall",
   "report.categories.spam": "Sbam",
-  "report.categories.violation": "Content violates one or more server rules",
-  "report.category.subtitle": "Choose the best match",
-  "report.category.title": "Tell us what's going on with this {type}",
-  "report.category.title_account": "profile",
+  "report.categories.violation": "Mae cynnwys yn torri un neu fwy o reolau'r gweinydd",
+  "report.category.subtitle": "Dewiswch yr ateb gorau",
+  "report.category.title": "Beth sy'n bod â'r {type} hwn?",
+  "report.category.title_account": "proffil",
   "report.category.title_status": "post",
-  "report.close": "Done",
-  "report.comment.title": "Is there anything else you think we should know?",
+  "report.close": "Iawn",
+  "report.comment.title": "Oes unrhyw beth arall y dylem ei wybod yn eich barn chi?",
   "report.forward": "Ymlaen i {target}",
   "report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?",
-  "report.mute": "Mute",
-  "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
-  "report.next": "Next",
+  "report.mute": "Mudo",
+  "report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u mudo.",
+  "report.next": "Nesaf",
   "report.placeholder": "Sylwadau ychwanegol",
-  "report.reasons.dislike": "I don't like it",
-  "report.reasons.dislike_description": "It is not something you want to see",
-  "report.reasons.other": "It's something else",
-  "report.reasons.other_description": "The issue does not fit into other categories",
-  "report.reasons.spam": "It's spam",
-  "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
-  "report.reasons.violation": "It violates server rules",
-  "report.reasons.violation_description": "You are aware that it breaks specific rules",
-  "report.rules.subtitle": "Select all that apply",
-  "report.rules.title": "Which rules are being violated?",
-  "report.statuses.subtitle": "Select all that apply",
-  "report.statuses.title": "Are there any posts that back up this report?",
+  "report.reasons.dislike": "Dydw i ddim yn ei hoffi",
+  "report.reasons.dislike_description": "Nid yw'n rhywbeth yr ydych am ei weld",
+  "report.reasons.other": "Mae'n rhywbeth arall",
+  "report.reasons.other_description": "Nid yw'r mater yn ffitio i gategorïau eraill",
+  "report.reasons.spam": "Sothach yw e",
+  "report.reasons.spam_description": "Cysylltiadau maleisus, ymgysylltu ffug, neu atebion ailadroddus",
+  "report.reasons.violation": "Mae'n torri rheolau'r gweinydd",
+  "report.reasons.violation_description": "Rydych yn ymwybodol ei fod yn torri rheolau penodol",
+  "report.rules.subtitle": "Dewiswch bob un sy'n berthnasol",
+  "report.rules.title": "Pa reolau sy'n cael eu torri?",
+  "report.statuses.subtitle": "Dewiswch bob un sy'n berthnasol",
+  "report.statuses.title": "Oes postiadau eraill sy'n cefnogi'r adroddiad hwn?",
   "report.submit": "Cyflwyno",
   "report.target": "Cwyno am {target}",
-  "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
-  "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
-  "report.thanks.title": "Don't want to see this?",
-  "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
-  "report.unfollow": "Unfollow @{name}",
-  "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
+  "report.thanks.take_action": "Dyma'ch opsiynau ar gyfer rheoli'r hyn a welwch ar Mastodon:",
+  "report.thanks.take_action_actionable": "Tra byddwn yn edrych ar hyn, gallwch gymryd camau yn erbyn @{name}:",
+  "report.thanks.title": "Ddim eisiau gweld hwn?",
+  "report.thanks.title_actionable": "Diolch am adrodd, byddwn yn ymchwilio i hyn.",
+  "report.unfollow": "Dad-ddilyn @{name}",
+  "report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich porthiant cartref mwyach, dad-ddilynwch nhw.",
   "search.placeholder": "Chwilio",
   "search_popout.search_format": "Fformat chwilio uwch",
-  "search_popout.tips.full_text": "Mae testun syml yn dychwelyd tŵtiau yr ydych wedi ysgrifennu, hoffi, wedi'u bŵstio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
+  "search_popout.tips.full_text": "Mae testun syml yn dychwelyd postiadau yr ydych wedi ysgrifennu, hoffi, wedi'u hybio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
   "search_popout.tips.hashtag": "hashnod",
-  "search_popout.tips.status": "tŵt",
+  "search_popout.tips.status": "post",
   "search_popout.tips.text": "Mae testun syml yn dychwelyd enwau arddangos, enwau defnyddwyr a hashnodau sy'n cyfateb",
   "search_popout.tips.user": "defnyddiwr",
   "search_results.accounts": "Pobl",
-  "search_results.all": "Pob",
+  "search_results.all": "Popeth",
   "search_results.hashtags": "Hanshnodau",
-  "search_results.nothing_found": "Could not find anything for these search terms",
-  "search_results.statuses": "Tŵtiau",
-  "search_results.statuses_fts_disabled": "Nid yw chwilio Tŵtiau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.",
-  "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
+  "search_results.nothing_found": "Methu dod o hyd i unrhyw beth ar gyfer y termau chwilio hyn",
+  "search_results.statuses": "Postiadau",
+  "search_results.statuses_fts_disabled": "Nid yw chwilio postiadau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.",
+  "search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {o ganlyniadau}}",
   "status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}",
-  "status.admin_status": "Agor y tŵt yn y rhyngwyneb goruwchwylio",
+  "status.admin_status": "Agor y post hwn yn y rhyngwyneb goruwchwylio",
   "status.block": "Blocio @{name}",
   "status.bookmark": "Tudalnodi",
   "status.cancel_reblog_private": "Dadfŵstio",
-  "status.cannot_reblog": "Ni ellir sbarduno'r tŵt hwn",
-  "status.copy": "Copïo cysylltiad i'r tŵt",
+  "status.cannot_reblog": "Ni ellir hybio'r post hwn",
+  "status.copy": "Copïo dolen i'r post",
   "status.delete": "Dileu",
   "status.detailed_status": "Golwg manwl o'r sgwrs",
   "status.direct": "Neges breifat @{name}",
   "status.edit": "Golygu",
-  "status.edited": "Edited {date}",
-  "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
+  "status.edited": "Ymunodd {date}",
+  "status.edited_x_times": "Golygwyd {count, plural, one {unwaith} two {dwywaith} other {{count} gwaith}}",
   "status.embed": "Plannu",
   "status.favourite": "Hoffi",
   "status.filtered": "Wedi'i hidlo",
-  "status.history.created": "{name} created {date}",
-  "status.history.edited": "{name} edited {date}",
+  "status.history.created": "{name} greuodd {date}",
+  "status.history.edited": "{name} olygodd {date}",
   "status.load_more": "Llwythwch mwy",
   "status.media_hidden": "Cyfryngau wedi'u cuddio",
   "status.mention": "Crybwyll @{name}",
   "status.more": "Mwy",
   "status.mute": "Tawelu @{name}",
   "status.mute_conversation": "Tawelu sgwrs",
-  "status.open": "Ehangu'r tŵt hwn",
+  "status.open": "Ehangu'r post hwn",
   "status.pin": "Pinio ar y proffil",
-  "status.pinned": "Pinio tŵt",
+  "status.pinned": "Pinio post",
   "status.read_more": "Darllen mwy",
   "status.reblog": "Hybu",
   "status.reblog_private": "Hybu i'r gynulleidfa wreiddiol",
-  "status.reblogged_by": "Bŵstio {name}",
-  "status.reblogs.empty": "Does neb wedi bŵstio'r tŵt yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
+  "status.reblogged_by": "Hybio {name}",
+  "status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
   "status.redraft": "Dileu & ailddrafftio",
   "status.remove_bookmark": "Tynnu'r tudalnod",
   "status.reply": "Ateb",
@@ -502,7 +501,7 @@
   "timeline_hint.remote_resource_not_displayed": "ni chaiff {resource} o gweinyddion eraill ei ddangos.",
   "timeline_hint.resources.followers": "Dilynwyr",
   "timeline_hint.resources.follows": "Yn dilyn",
-  "timeline_hint.resources.statuses": "Tŵtiau henach",
+  "timeline_hint.resources.statuses": "Postiadau hŷn",
   "trends.counter_by_accounts": "{count, plural, one {{counter} berson} other {{counter} o bobl}}",
   "trends.trending_now": "Yn tueddu nawr",
   "ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.",
@@ -515,20 +514,20 @@
   "upload_error.poll": "Nid oes modd uwchlwytho ffeiliau â phleidleisiau.",
   "upload_form.audio_description": "Disgrifio ar gyfer pobl sydd â cholled clyw",
   "upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
-  "upload_form.description_missing": "No description added",
+  "upload_form.description_missing": "Dim disgrifiad wedi'i ychwanegu",
   "upload_form.edit": "Golygu",
   "upload_form.thumbnail": "Newid mân-lun",
   "upload_form.undo": "Dileu",
   "upload_form.video_description": "Disgrifio ar gyfer pobl sydd â cholled clyw neu amhariad golwg",
   "upload_modal.analyzing_picture": "Dadansoddi llun…",
   "upload_modal.apply": "Gweithredu",
-  "upload_modal.applying": "Applying…",
+  "upload_modal.applying": "Gweithio…",
   "upload_modal.choose_image": "Dewis delwedd",
   "upload_modal.description_placeholder": "Mae ei phen bach llawn jocs, 'run peth a fy nghot golff, rhai dyddiau",
   "upload_modal.detect_text": "Canfod testun o'r llun",
   "upload_modal.edit_media": "Golygu cyfryngau",
   "upload_modal.hint": "Cliciwch neu llusgwch y cylch ar y rhagolwg i ddewis y canolbwynt a fydd bob amser i'w weld ar bob mân-lunau.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Paratoi OCR…",
   "upload_modal.preview_label": "Rhagolwg ({ratio})",
   "upload_progress.label": "Uwchlwytho...",
   "video.close": "Cau fideo",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index d029e6244..e04a0634c 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blokerede brugere",
   "column.bookmarks": "Bogmærker",
   "column.community": "Lokal tidslinje",
-  "column.direct": "Direkte beskeder",
+  "column.conversations": "Konversationer",
   "column.directory": "Tjek profiler",
   "column.domain_blocks": "Blokerede domæner",
   "column.favourites": "Favoritter",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Kun lokalt",
   "community.column_settings.media_only": "Kun medier",
   "community.column_settings.remote_only": "Kun udefra",
-  "compose_form.direct_message_warning": "Indlægget sendes kun til de nævnte brugere.",
   "compose_form.direct_message_warning_learn_more": "Få mere at vide",
+  "compose_form.encryption_warning": "Indlæg på Mastodon er ikke ende-til-ende krypteret. Del derfor ikke sensitiv information over Mastodon.",
   "compose_form.hashtag_warning": "Da indlægget ikke er offentligt, vises det ikke under noget hashtag, idet kun offentlige indlæg kan søges via hashtags.",
   "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Enhver kan følge dig og se indlæg kun beregnet for følgere.",
   "compose_form.lock_disclaimer.lock": "låst",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ingen brugere blokeret endnu.",
   "empty_column.bookmarked_statuses": "Du har ingen bogmærkede indlæg endnu. Når du bogmærker ét, vil det dukke op hér.",
   "empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at sætte tingene i gang!",
-  "empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager én, vil den dukke op hér.",
+  "empty_column.conversations": "Når der sendes eller modtages indlæg, som kun er synligt for personer nævnt heri, vil de dukke op her.",
   "empty_column.domain_blocks": "Ingen blokerede domæner endnu.",
   "empty_column.explore_statuses": "Ingen nye tendensen pt. Tjek igen senere!",
   "empty_column.favourited_statuses": "Du har endnu ingen favoritindlæg. Når du favoritmarkerer ét, vil det dukke op hér.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Boost indlæg",
   "keyboard_shortcuts.column": "Fokusér kolonne",
   "keyboard_shortcuts.compose": "Fokusér skriveområdet",
+  "keyboard_shortcuts.conversations": "for at åbne konversationskolonnen",
   "keyboard_shortcuts.description": "Beskrivelse",
-  "keyboard_shortcuts.direct": "Åbn Direkte beskeder-kolonnen",
   "keyboard_shortcuts.down": "Flyt nedad på listen",
   "keyboard_shortcuts.enter": "Åbn indlæg",
   "keyboard_shortcuts.favourite": "Favoritmarkér indlæg",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bogmærker",
   "navigation_bar.community_timeline": "Lokal tidslinje",
   "navigation_bar.compose": "Skriv nyt indlæg",
-  "navigation_bar.direct": "Direkte beskeder",
   "navigation_bar.discover": "Opdag",
   "navigation_bar.domain_blocks": "Blokerede domæner",
   "navigation_bar.edit_profile": "Redigér profil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Fjern afstemning",
   "privacy.change": "Justér indlægsfortrolighed",
   "privacy.direct.long": "Kun synlig for nævnte brugere",
-  "privacy.direct.short": "Direkte",
+  "privacy.direct.short": "Kun personer, jeg nævner",
   "privacy.private.long": "Kun synlig for følgere",
-  "privacy.private.short": "Kun for følgere",
-  "privacy.public.long": "Synlig for alle, fremgår på offentlige tidslinjer",
+  "privacy.private.short": "Kun følgere",
+  "privacy.public.long": "Synlig for alle",
   "privacy.public.short": "Offentlig",
-  "privacy.unlisted.long": "Synlig for alle, fremgår ikke på offentlige tidslinjer",
+  "privacy.unlisted.long": "Synlig for alle, men med fravalgt visning i opdagelsesfunktioner",
   "privacy.unlisted.short": "Diskret",
   "refresh": "Genindlæs",
   "regeneration_indicator.label": "Indlæser…",
@@ -515,7 +514,7 @@
   "upload_error.poll": "Filupload ikke tilladt for afstemninger.",
   "upload_form.audio_description": "Beskrivelse til hørehæmmede",
   "upload_form.description": "Beskrivelse til svagtseende",
-  "upload_form.description_missing": "No description added",
+  "upload_form.description_missing": "Ingen beskrivelse tilføjet",
   "upload_form.edit": "Redigér",
   "upload_form.thumbnail": "Skift miniature",
   "upload_form.undo": "Slet",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 58d85852c..1a36fa736 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blockierte Profile",
   "column.bookmarks": "Lesezeichen",
   "column.community": "Lokale Zeitleiste",
-  "column.direct": "Direktnachrichten",
+  "column.conversations": "Konversationen",
   "column.directory": "Profile durchsuchen",
   "column.domain_blocks": "Blockierte Domains",
   "column.favourites": "Favoriten",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Nur lokal",
   "community.column_settings.media_only": "Nur Medien",
   "community.column_settings.remote_only": "Nur entfernt",
-  "compose_form.direct_message_warning": "Dieser Beitrag wird nur für die erwähnten Nutzer sichtbar sein.",
   "compose_form.direct_message_warning_learn_more": "Mehr erfahren",
+  "compose_form.encryption_warning": "Beiträge auf Mastodon sind nicht Ende-zu-Ende-verschlüsselt. Teile keine sensiblen Informationen über Mastodon.",
   "compose_form.hashtag_warning": "Dieser Beitrag wird nicht durch Hashtags entdeckbar sein, weil er ungelistet ist. Nur öffentliche Beiträge tauchen in Hashtag-Zeitleisten auf.",
   "compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.",
   "compose_form.lock_disclaimer.lock": "gesperrt",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Du hast keine Profile blockiert.",
   "empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.",
   "empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Ball ins Rollen zu bringen!",
-  "empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Wenn du eine sendest oder empfängst, wird sie hier zu sehen sein.",
+  "empty_column.conversations": "Sobald du einen Beitrag sendest oder empfängst, der nur für die in ihm erwähnten Personen sichtbar ist, wird er hier angezeigt.",
   "empty_column.domain_blocks": "Es sind noch keine Domains versteckt.",
   "empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder!",
   "empty_column.favourited_statuses": "Du hast noch keine favorisierten Tröts. Wenn du einen favorisierst, wird er hier erscheinen.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "teilen",
   "keyboard_shortcuts.column": "einen Beitrag in einer der Spalten fokussieren",
   "keyboard_shortcuts.compose": "fokussiere das Eingabefeld",
+  "keyboard_shortcuts.conversations": "um die Konversationsspalte zu öffnen",
   "keyboard_shortcuts.description": "Beschreibung",
-  "keyboard_shortcuts.direct": "Direct-Message-Spalte öffnen",
   "keyboard_shortcuts.down": "sich in der Liste hinunter bewegen",
   "keyboard_shortcuts.enter": "Beitrag öffnen",
   "keyboard_shortcuts.favourite": "um zu favorisieren",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Lesezeichen",
   "navigation_bar.community_timeline": "Lokale Zeitleiste",
   "navigation_bar.compose": "Neuen Beitrag verfassen",
-  "navigation_bar.direct": "Direktnachrichten",
   "navigation_bar.discover": "Entdecken",
   "navigation_bar.domain_blocks": "Versteckte Domains",
   "navigation_bar.edit_profile": "Profil bearbeiten",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Umfrage entfernen",
   "privacy.change": "Sichtbarkeit des Beitrags anpassen",
   "privacy.direct.long": "Wird an erwähnte Profile gesendet",
-  "privacy.direct.short": "Direktnachricht",
+  "privacy.direct.short": "Nur Leute, die ich erwähne",
   "privacy.private.long": "Nur für Folgende sichtbar",
-  "privacy.private.short": "Nur für Folgende",
-  "privacy.public.long": "Wird in öffentlichen Zeitleisten erscheinen",
+  "privacy.private.short": "Nur Follower",
+  "privacy.public.long": "Für alle sichtbar",
   "privacy.public.short": "Öffentlich",
-  "privacy.unlisted.long": "Wird in öffentlichen Zeitleisten nicht gezeigt",
+  "privacy.unlisted.long": "Sichtbar für alle, aber nicht über Entdeckungsfunktionen",
   "privacy.unlisted.short": "Nicht gelistet",
   "refresh": "Aktualisieren",
   "regeneration_indicator.label": "Laden…",
@@ -524,7 +523,7 @@
   "upload_modal.apply": "Übernehmen",
   "upload_modal.applying": "Anwenden…",
   "upload_modal.choose_image": "Bild auswählen",
-  "upload_modal.description_placeholder": "Die heiße Zypernsonne quälte Max und Victoria ja böse auf dem Weg bis zur Küste",
+  "upload_modal.description_placeholder": "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich",
   "upload_modal.detect_text": "Text aus Bild erkennen",
   "upload_modal.edit_media": "Medien bearbeiten",
   "upload_modal.hint": "Klicke oder ziehe den Kreis auf die Vorschau, um den Brennpunkt auszuwählen, der immer auf allen Vorschaubilder angezeigt wird.",
diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json
index 555aa5898..b699088d4 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -206,7 +206,7 @@
   {
     "descriptors": [
       {
-        "defaultMessage": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+        "defaultMessage": "{count, plural, one {{counter} Post} other {{counter} Posts}}",
         "id": "account.statuses_counter"
       },
       {
@@ -659,7 +659,7 @@
         "id": "privacy.private.short"
       },
       {
-        "defaultMessage": "Direct",
+        "defaultMessage": "Mentioned people only",
         "id": "privacy.direct.short"
       },
       {
@@ -671,7 +671,7 @@
         "id": "status.filtered"
       },
       {
-        "defaultMessage": "Pinned toot",
+        "defaultMessage": "Pinned post",
         "id": "status.pinned"
       },
       {
@@ -773,11 +773,11 @@
   {
     "descriptors": [
       {
-        "defaultMessage": "Toots",
+        "defaultMessage": "Posts",
         "id": "account.posts"
       },
       {
-        "defaultMessage": "Toots and replies",
+        "defaultMessage": "Posts and replies",
         "id": "account.posts_with_replies"
       },
       {
@@ -820,7 +820,7 @@
   {
     "descriptors": [
       {
-        "defaultMessage": "Older toots",
+        "defaultMessage": "Older posts",
         "id": "timeline_hint.resources.statuses"
       },
       {
@@ -832,7 +832,7 @@
         "id": "empty_column.account_unavailable"
       },
       {
-        "defaultMessage": "No toots here!",
+        "defaultMessage": "No posts found",
         "id": "empty_column.account_timeline"
       }
     ],
@@ -946,7 +946,7 @@
         "id": "account.disable_notifications"
       },
       {
-        "defaultMessage": "Pinned toots",
+        "defaultMessage": "Pinned posts",
         "id": "navigation_bar.pins"
       },
       {
@@ -1069,7 +1069,7 @@
         "id": "column.bookmarks"
       },
       {
-        "defaultMessage": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+        "defaultMessage": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
         "id": "empty_column.bookmarked_statuses"
       }
     ],
@@ -1104,7 +1104,7 @@
         "id": "account.edit_profile"
       },
       {
-        "defaultMessage": "Pinned toots",
+        "defaultMessage": "Pinned posts",
         "id": "navigation_bar.pins"
       },
       {
@@ -1306,7 +1306,7 @@
         "id": "privacy.public.short"
       },
       {
-        "defaultMessage": "Visible for all, shown in public timelines",
+        "defaultMessage": "Visible for all",
         "id": "privacy.public.long"
       },
       {
@@ -1314,11 +1314,11 @@
         "id": "privacy.unlisted.short"
       },
       {
-        "defaultMessage": "Visible for all, but not in public timelines",
+        "defaultMessage": "Visible for all, but opted-out of discovery features",
         "id": "privacy.unlisted.long"
       },
       {
-        "defaultMessage": "Followers-only",
+        "defaultMessage": "Followers only",
         "id": "privacy.private.short"
       },
       {
@@ -1326,7 +1326,7 @@
         "id": "privacy.private.long"
       },
       {
-        "defaultMessage": "Direct",
+        "defaultMessage": "Only people I mention",
         "id": "privacy.direct.short"
       },
       {
@@ -1364,11 +1364,11 @@
         "id": "search_results.accounts"
       },
       {
-        "defaultMessage": "Toots",
+        "defaultMessage": "Posts",
         "id": "search_results.statuses"
       },
       {
-        "defaultMessage": "Searching toots by their content is not enabled on this Mastodon server.",
+        "defaultMessage": "Searching posts by their content is not enabled on this Mastodon server.",
         "id": "search_results.statuses_fts_disabled"
       },
       {
@@ -1504,12 +1504,12 @@
         "id": "compose_form.lock_disclaimer.lock"
       },
       {
-        "defaultMessage": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
+        "defaultMessage": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
         "id": "compose_form.hashtag_warning"
       },
       {
-        "defaultMessage": "This toot will only be sent to all the mentioned users.",
-        "id": "compose_form.direct_message_warning"
+        "defaultMessage": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
+        "id": "compose_form.encryption_warning"
       },
       {
         "defaultMessage": "Learn more",
@@ -1549,7 +1549,7 @@
         "id": "navigation_bar.logout"
       },
       {
-        "defaultMessage": "Compose new toot",
+        "defaultMessage": "Compose new post",
         "id": "navigation_bar.compose"
       },
       {
@@ -1616,12 +1616,12 @@
   {
     "descriptors": [
       {
-        "defaultMessage": "Direct messages",
-        "id": "column.direct"
+        "defaultMessage": "Conversations",
+        "id": "column.conversations"
       },
       {
-        "defaultMessage": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
-        "id": "empty_column.direct"
+        "defaultMessage": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+        "id": "empty_column.conversations"
       }
     ],
     "path": "app/javascript/mastodon/features/direct_timeline/index.json"
@@ -1665,7 +1665,7 @@
         "id": "confirmations.unfollow.message"
       },
       {
-        "defaultMessage": "Toots",
+        "defaultMessage": "Posts",
         "id": "account.posts"
       },
       {
@@ -1769,7 +1769,7 @@
         "id": "search_results.hashtags"
       },
       {
-        "defaultMessage": "Toots",
+        "defaultMessage": "Posts",
         "id": "search_results.statuses"
       }
     ],
@@ -1791,7 +1791,7 @@
         "id": "column.favourites"
       },
       {
-        "defaultMessage": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
+        "defaultMessage": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
         "id": "empty_column.favourited_statuses"
       }
     ],
@@ -1804,7 +1804,7 @@
         "id": "refresh"
       },
       {
-        "defaultMessage": "No one has favourited this toot yet. When someone does, they will show up here.",
+        "defaultMessage": "No one has favourited this post yet. When someone does, they will show up here.",
         "id": "empty_column.favourites"
       }
     ],
@@ -1965,8 +1965,8 @@
         "id": "navigation_bar.explore"
       },
       {
-        "defaultMessage": "Direct messages",
-        "id": "navigation_bar.direct"
+        "defaultMessage": "Conversations",
+        "id": "column.conversations"
       },
       {
         "defaultMessage": "Bookmarks",
@@ -1997,7 +1997,7 @@
         "id": "navigation_bar.mutes"
       },
       {
-        "defaultMessage": "Pinned toots",
+        "defaultMessage": "Pinned posts",
         "id": "navigation_bar.pins"
       },
       {
@@ -2186,7 +2186,7 @@
         "id": "keyboard_shortcuts.compose"
       },
       {
-        "defaultMessage": "to start a brand new toot",
+        "defaultMessage": "to start a brand new post",
         "id": "keyboard_shortcuts.toot"
       },
       {
@@ -2222,8 +2222,8 @@
         "id": "keyboard_shortcuts.federated"
       },
       {
-        "defaultMessage": "to open direct messages column",
-        "id": "keyboard_shortcuts.direct"
+        "defaultMessage": "to open conversations column",
+        "id": "keyboard_shortcuts.conversations"
       },
       {
         "defaultMessage": "to open \"get started\" column",
@@ -2234,7 +2234,7 @@
         "id": "keyboard_shortcuts.favourites"
       },
       {
-        "defaultMessage": "to open pinned toots list",
+        "defaultMessage": "to open pinned posts list",
         "id": "keyboard_shortcuts.pinned"
       },
       {
@@ -2468,7 +2468,7 @@
         "id": "notifications.column_settings.poll"
       },
       {
-        "defaultMessage": "New toots:",
+        "defaultMessage": "New posts:",
         "id": "notifications.column_settings.status"
       },
       {
@@ -2690,7 +2690,7 @@
   {
     "descriptors": [
       {
-        "defaultMessage": "Pinned toot",
+        "defaultMessage": "Pinned post",
         "id": "column.pins"
       }
     ],
@@ -2729,7 +2729,7 @@
         "id": "refresh"
       },
       {
-        "defaultMessage": "No one has boosted this toot yet. When someone does, they will show up here.",
+        "defaultMessage": "No one has boosted this post yet. When someone does, they will show up here.",
         "id": "status.reblogs.empty"
       }
     ],
@@ -3526,8 +3526,8 @@
         "id": "tabs_bar.federated_timeline"
       },
       {
-        "defaultMessage": "Direct messages",
-        "id": "navigation_bar.direct"
+        "defaultMessage": "Conversations",
+        "id": "column.conversations"
       },
       {
         "defaultMessage": "Favourites",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 8b4a9c168..5a6af8291 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -70,7 +70,7 @@
   "column.blocks": "Αποκλεισμένοι χρήστες",
   "column.bookmarks": "Σελιδοδείκτες",
   "column.community": "Τοπική ροή",
-  "column.direct": "Προσωπικά μηνύματα",
+  "column.conversations": "Συνομιλίες",
   "column.directory": "Δες προφίλ",
   "column.domain_blocks": "Κρυμμένοι τομείς",
   "column.favourites": "Αγαπημένα",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Τοπικά μόνο",
   "community.column_settings.media_only": "Μόνο πολυμέσα",
   "community.column_settings.remote_only": "Απομακρυσμένα μόνο",
-  "compose_form.direct_message_warning": "Αυτό το τουτ θα σταλεί μόνο στους αναφερόμενους χρήστες.",
   "compose_form.direct_message_warning_learn_more": "Μάθετε περισσότερα",
+  "compose_form.encryption_warning": "Οι δημοσιεύσεις στο Mastodon δεν είναι κρυπτογραφημένες από άκρο σε άκρο. Μην μοιράζεστε επικίνδυνες πληροφορίες μέσω του Mastodon.",
   "compose_form.hashtag_warning": "Αυτό το τουτ δεν θα εμφανίζεται κάτω από κανένα hashtag καθώς είναι αφανές. Μόνο τα δημόσια τουτ μπορούν να αναζητηθούν ανά hashtag.",
   "compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σας προς τους ακολούθους σας.",
   "compose_form.lock_disclaimer.lock": "κλειδωμένο",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Δεν έχεις αποκλείσει κανέναν χρήστη ακόμα.",
   "empty_column.bookmarked_statuses": "Δεν έχεις κανένα αποθηκευμένο τουτ ακόμα. Μόλις αποθηκεύσεις κάποιο, θα εμφανιστεί εδώ.",
   "empty_column.community": "Η τοπική ροή είναι κενή. Γράψε κάτι δημόσιο παραμύθι ν' αρχινίσει!",
-  "empty_column.direct": "Δεν έχεις προσωπικά μηνύματα ακόμα. Όταν στείλεις ή λάβεις κανένα, θα εμφανιστεί εδώ.",
+  "empty_column.conversations": "Μόλις στείλετε ή λάβετε μια δημοσίευση που είναι ορατή μόνο σε άτομα που αναφέρονται σε αυτή, θα εμφανιστεί εδώ.",
   "empty_column.domain_blocks": "Δεν υπάρχουν αποκλεισμένοι τομείς ακόμα.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Δεν έχεις κανένα αγαπημένο τουτ ακόμα. Μόλις αγαπήσεις κάποιο, θα εμφανιστεί εδώ.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "προώθηση",
   "keyboard_shortcuts.column": "εμφάνιση της κατάστασης σε μια από τις στήλες",
   "keyboard_shortcuts.compose": "εστίαση στην περιοχή συγγραφής",
+  "keyboard_shortcuts.conversations": "για να ανοίξετε στήλη συνομιλιών",
   "keyboard_shortcuts.description": "Περιγραφή",
-  "keyboard_shortcuts.direct": "άνοιγμα στήλης απευθείας μηνυμάτων",
   "keyboard_shortcuts.down": "κίνηση προς τα κάτω στη λίστα",
   "keyboard_shortcuts.enter": "εμφάνιση κατάστασης",
   "keyboard_shortcuts.favourite": "σημείωση ως αγαπημένο",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Σελιδοδείκτες",
   "navigation_bar.community_timeline": "Τοπική ροή",
   "navigation_bar.compose": "Γράψε νέο τουτ",
-  "navigation_bar.direct": "Προσωπικά μηνύματα",
   "navigation_bar.discover": "Ανακάλυψη",
   "navigation_bar.domain_blocks": "Κρυμμένοι τομείς",
   "navigation_bar.edit_profile": "Επεξεργασία προφίλ",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Αφαίρεση δημοσκόπησης",
   "privacy.change": "Προσαρμογή ιδιωτικότητας δημοσίευσης",
   "privacy.direct.long": "Δημοσίευση μόνο σε όσους και όσες αναφέρονται",
-  "privacy.direct.short": "Προσωπικά",
+  "privacy.direct.short": "Μόνο άτομα που αναφέρω",
   "privacy.private.long": "Δημοσίευση μόνο στους ακόλουθους",
   "privacy.private.short": "Μόνο ακόλουθοι",
-  "privacy.public.long": "Δημοσίευσε στις δημόσιες ροές",
+  "privacy.public.long": "Ορατό σε όλους",
   "privacy.public.short": "Δημόσιο",
-  "privacy.unlisted.long": "Μην δημοσιεύσεις στις δημόσιες ροές",
+  "privacy.unlisted.long": "Ορατό για όλους, αλλά opted-out των χαρακτηριστικών της ανακάλυψης",
   "privacy.unlisted.short": "Μη καταχωρημένα",
   "refresh": "Ανανέωση",
   "regeneration_indicator.label": "Φορτώνει…",
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 467d041ee..4804eefa2 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blocked users",
   "column.bookmarks": "Bookmarks",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Blocked domains",
   "column.favourites": "Favourites",
@@ -96,8 +96,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media Only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This post will only be sent to the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -170,7 +170,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no blocked domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
@@ -234,8 +234,8 @@
   "keyboard_shortcuts.boost": "Boost post",
   "keyboard_shortcuts.column": "Focus column",
   "keyboard_shortcuts.compose": "Focus compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "Open direct messages column",
   "keyboard_shortcuts.down": "Move down in the list",
   "keyboard_shortcuts.enter": "Open post",
   "keyboard_shortcuts.favourite": "Favourite post",
@@ -294,7 +294,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new post",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Blocked domains",
   "navigation_bar.edit_profile": "Edit profile",
@@ -372,12 +371,12 @@
   "poll_button.remove_poll": "Remove poll",
   "privacy.change": "Change post privacy",
   "privacy.direct.long": "Visible for mentioned users only",
-  "privacy.direct.short": "Direct",
+  "privacy.direct.short": "Only people I mention",
   "privacy.private.long": "Visible for followers only",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.private.short": "Followers only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index f72bb7244..315c416db 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blokitaj uzantoj",
   "column.bookmarks": "Legosignoj",
   "column.community": "Loka templinio",
-  "column.direct": "Rektaj mesaĝoj",
+  "column.conversations": "Conversations",
   "column.directory": "Trarigardi profilojn",
   "column.domain_blocks": "Blokitaj domajnoj",
   "column.favourites": "Stelumoj",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Nur loka",
   "community.column_settings.media_only": "Nur aŭdovidaĵoj",
   "community.column_settings.remote_only": "Nur malproksima",
-  "compose_form.direct_message_warning": "Tiu mesaĝo estos sendita nur al menciitaj uzantoj.",
   "compose_form.direct_message_warning_learn_more": "Lerni pli",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Ĉi tiu mesaĝo ne estos listigita per ajna kradvorto. Nur publikaj mesaĝoj estas serĉeblaj per kradvortoj.",
   "compose_form.lock_disclaimer": "Via konta ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn mesaĝojn, kiuj estas nur por sekvantoj.",
   "compose_form.lock_disclaimer.lock": "ŝlosita",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.",
   "empty_column.bookmarked_statuses": "Vi ankoraŭ ne aldonis mesaĝon al viaj legosignoj. Kiam vi aldonos iun, tiu aperos ĉi tie.",
   "empty_column.community": "La loka templinio estas malplena. Skribu ion por plenigi ĝin!",
-  "empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Ankoraŭ neniu domajno estas blokita.",
   "empty_column.explore_statuses": "Nenio tendencas nun. Rekontrolu poste!",
   "empty_column.favourited_statuses": "Vi ankoraŭ ne stelumis mesaĝon. Kiam vi stelumos iun, tiu aperos ĉi tie.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "diskonigi",
   "keyboard_shortcuts.column": "fokusi mesaĝon en unu el la kolumnoj",
   "keyboard_shortcuts.compose": "enfokusigi la tekstujon",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Priskribo",
-  "keyboard_shortcuts.direct": "malfermi la kolumnon de rektaj mesaĝoj",
   "keyboard_shortcuts.down": "iri suben en la listo",
   "keyboard_shortcuts.enter": "malfermi mesaĝon",
   "keyboard_shortcuts.favourite": "stelumi",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Legosignoj",
   "navigation_bar.community_timeline": "Loka templinio",
   "navigation_bar.compose": "Skribi novan mesaĝon",
-  "navigation_bar.direct": "Rektaj mesaĝoj",
   "navigation_bar.discover": "Esplori",
   "navigation_bar.domain_blocks": "Blokitaj domajnoj",
   "navigation_bar.edit_profile": "Redakti profilon",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Forigi balotenketon",
   "privacy.change": "Agordi mesaĝan privatecon",
   "privacy.direct.long": "Videbla nur al menciitaj uzantoj",
-  "privacy.direct.short": "Rekta",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Videbla nur al viaj sekvantoj",
-  "privacy.private.short": "Nur al sekvantoj",
-  "privacy.public.long": "Videbla al ĉiuj, afiŝita en publikaj templinioj",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Publika",
-  "privacy.unlisted.long": "Videbla al ĉiuj, sed ne en publikaj templinioj",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Nelistigita",
   "refresh": "Refreŝigu",
   "regeneration_indicator.label": "Ŝargado…",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index 233794b84..1eac00cff 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -70,7 +70,7 @@
   "column.blocks": "Usuarios bloqueados",
   "column.bookmarks": "Marcadores",
   "column.community": "Línea temporal local",
-  "column.direct": "Mensajes directos",
+  "column.conversations": "Conversaciones",
   "column.directory": "Explorar perfiles",
   "column.domain_blocks": "Dominios bloqueados",
   "column.favourites": "Favoritos",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Sólo local",
   "community.column_settings.media_only": "Sólo medios",
   "community.column_settings.remote_only": "Sólo remoto",
-  "compose_form.direct_message_warning": "Este mensaje sólo será enviado a los usuarios mencionados.",
   "compose_form.direct_message_warning_learn_more": "Aprendé más",
+  "compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No comparta ninguna información sensible al usar Mastodon.",
   "compose_form.hashtag_warning": "Este mensaje no se mostrará bajo ninguna etiqueta porque no es público. Sólo los mensajes públicos se pueden buscar por etiquetas.",
   "compose_form.lock_disclaimer": "Tu cuenta no es {locked}. Todos pueden seguirte para ver tus mensajes marcados como \"Sólo para seguidores\".",
   "compose_form.lock_disclaimer.lock": "privada",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Todavía no bloqueaste a ningún usuario.",
   "empty_column.bookmarked_statuses": "Todavía no tenés mensajes guardados en \"Marcadores\". Cuando guardés uno en \"Marcadores\", se mostrará acá.",
   "empty_column.community": "La línea temporal local está vacía. ¡Escribí algo en modo público para que se empiece a correr la bola!",
-  "empty_column.direct": "Todavía no tenés ningún mensaje directo. Cuando enviés o recibás uno, se mostrará acá.",
+  "empty_column.conversations": "Una vez que enviés o recibás un mensaje que sólo sea visible para la gente mencionada en él, aparecerá aquí.",
   "empty_column.domain_blocks": "Todavía no hay dominios bloqueados.",
   "empty_column.explore_statuses": "No hay nada en tendencia ahora mismo. ¡Volvé a revisar más tarde!",
   "empty_column.favourited_statuses": "Todavía no tenés mensajes favoritos. Cuando marqués uno como favorito, se mostrará acá.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Adherir al mensaje",
   "keyboard_shortcuts.column": "Enfocar columna",
   "keyboard_shortcuts.compose": "Enfocar el área de texto de redacción",
+  "keyboard_shortcuts.conversations": "para abrir la columna de conversaciones",
   "keyboard_shortcuts.description": "Descripción",
-  "keyboard_shortcuts.direct": "Abrir columna de mensajes directos",
   "keyboard_shortcuts.down": "Bajar en la lista",
   "keyboard_shortcuts.enter": "Abrir mensaje",
   "keyboard_shortcuts.favourite": "Marcar mensaje como favorito",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Marcadores",
   "navigation_bar.community_timeline": "Línea temporal local",
   "navigation_bar.compose": "Redactar un nuevo mensaje",
-  "navigation_bar.direct": "Mensajes directos",
   "navigation_bar.discover": "Descubrir",
   "navigation_bar.domain_blocks": "Dominios bloqueados",
   "navigation_bar.edit_profile": "Editar perfil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Quitar encuesta",
   "privacy.change": "Configurar privacidad del mensaje",
   "privacy.direct.long": "Visible sólo para los usuarios mencionados",
-  "privacy.direct.short": "Directo",
+  "privacy.direct.short": "Sólo a las cuentas que menciono",
   "privacy.private.long": "Visible sólo para los seguidores",
   "privacy.private.short": "Sólo para seguidores",
-  "privacy.public.long": "Visible para todos, mostrado en las líneas temporales públicas",
+  "privacy.public.long": "Visible para todos",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "Visible para todos, pero no en las líneas temporales públicas",
+  "privacy.unlisted.long": "Visible para todos, pero excluido de las características de descubrimiento",
   "privacy.unlisted.short": "No listado",
   "refresh": "Refrescar",
   "regeneration_indicator.label": "Cargando…",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index 4ad7249be..c51ed52a6 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -70,7 +70,7 @@
   "column.blocks": "Usuarios bloqueados",
   "column.bookmarks": "Marcadores",
   "column.community": "Línea de tiempo local",
-  "column.direct": "Mensajes directos",
+  "column.conversations": "Conversations",
   "column.directory": "Buscar perfiles",
   "column.domain_blocks": "Dominios ocultados",
   "column.favourites": "Favoritos",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Solo local",
   "community.column_settings.media_only": "Solo media",
   "community.column_settings.remote_only": "Solo remoto",
-  "compose_form.direct_message_warning": "Este toot solo será enviado a los usuarios mencionados.",
   "compose_form.direct_message_warning_learn_more": "Aprender mas",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.",
   "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
   "compose_form.lock_disclaimer.lock": "bloqueado",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
   "empty_column.bookmarked_statuses": "Aún no tienes ningún toot guardado como marcador. Cuando guardes uno, se mostrará aquí.",
   "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
-  "empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Todavía no hay dominios ocultos.",
   "empty_column.explore_statuses": "Nada es tendencia en este momento. ¡Revisa más tarde!",
   "empty_column.favourited_statuses": "Aún no tienes toots preferidos. Cuando marques uno como favorito, aparecerá aquí.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "retootear",
   "keyboard_shortcuts.column": "enfocar un estado en una de las columnas",
   "keyboard_shortcuts.compose": "enfocar el área de texto de redacción",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Descripción",
-  "keyboard_shortcuts.direct": "abrir la columna de mensajes directos",
   "keyboard_shortcuts.down": "mover hacia abajo en la lista",
   "keyboard_shortcuts.enter": "abrir estado",
   "keyboard_shortcuts.favourite": "añadir a favoritos",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Marcadores",
   "navigation_bar.community_timeline": "Historia local",
   "navigation_bar.compose": "Escribir un nuevo toot",
-  "navigation_bar.direct": "Mensajes directos",
   "navigation_bar.discover": "Descubrir",
   "navigation_bar.domain_blocks": "Dominios ocultos",
   "navigation_bar.edit_profile": "Editar perfil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Eliminar encuesta",
   "privacy.change": "Ajustar privacidad",
   "privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
-  "privacy.direct.short": "Directo",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Sólo mostrar a seguidores",
-  "privacy.private.short": "Privado",
-  "privacy.public.long": "Mostrar en la historia federada",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "No mostrar en la historia federada",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "No listado",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "Cargando…",
@@ -515,7 +514,7 @@
   "upload_error.poll": "Subida de archivos no permitida con encuestas.",
   "upload_form.audio_description": "Describir para personas con problemas auditivos",
   "upload_form.description": "Describir para los usuarios con dificultad visual",
-  "upload_form.description_missing": "No description added",
+  "upload_form.description_missing": "Ninguna descripción añadida",
   "upload_form.edit": "Editar",
   "upload_form.thumbnail": "Cambiar miniatura",
   "upload_form.undo": "Borrar",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index d80e2f43f..510d84baa 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -70,7 +70,7 @@
   "column.blocks": "Usuarios bloqueados",
   "column.bookmarks": "Marcadores",
   "column.community": "Línea de tiempo local",
-  "column.direct": "Mensajes directos",
+  "column.conversations": "Conversaciones",
   "column.directory": "Buscar perfiles",
   "column.domain_blocks": "Dominios ocultados",
   "column.favourites": "Favoritos",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Solo local",
   "community.column_settings.media_only": "Solo media",
   "community.column_settings.remote_only": "Solo remoto",
-  "compose_form.direct_message_warning": "Esta nueva publicación solo será enviada a los usuarios mencionados.",
   "compose_form.direct_message_warning_learn_more": "Aprender más",
+  "compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No comparta ninguna información confidencial en Mastodon.",
   "compose_form.hashtag_warning": "Esta publicación no se mostrará bajo ningún hashtag porque no está listada. Sólo las publicaciones públicas se pueden buscar por hashtag.",
   "compose_form.lock_disclaimer": "Tu cuenta no está {locked}. Todos pueden seguirte para ver tus publicaciones solo para seguidores.",
   "compose_form.lock_disclaimer.lock": "bloqueado",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
   "empty_column.bookmarked_statuses": "Aún no tienes ninguna publicación guardada como marcador. Cuando guardes una, se mostrará aquí.",
   "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
-  "empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
+  "empty_column.conversations": "Una vez que envíe o reciba un mensaje que solo sea visible para la gente mencionada en él, aparecerá aquí.",
   "empty_column.domain_blocks": "Todavía no hay dominios ocultos.",
   "empty_column.explore_statuses": "Nada está en tendencia en este momento. ¡Revisa más tarde!",
   "empty_column.favourited_statuses": "Aún no tienes publicaciones favoritas. Cuando marques una como favorita, aparecerá aquí.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Retootear",
   "keyboard_shortcuts.column": "enfocar un estado en una de las columnas",
   "keyboard_shortcuts.compose": "enfocar el área de texto de redacción",
+  "keyboard_shortcuts.conversations": "para abrir la columna de conversaciones",
   "keyboard_shortcuts.description": "Descripción",
-  "keyboard_shortcuts.direct": "abrir la columna de mensajes directos",
   "keyboard_shortcuts.down": "mover hacia abajo en la lista",
   "keyboard_shortcuts.enter": "abrir estado",
   "keyboard_shortcuts.favourite": "añadir a favoritos",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Marcadores",
   "navigation_bar.community_timeline": "Línea de tiempo local",
   "navigation_bar.compose": "Escribir nueva publicación",
-  "navigation_bar.direct": "Mensajes directos",
   "navigation_bar.discover": "Descubrir",
   "navigation_bar.domain_blocks": "Dominios ocultos",
   "navigation_bar.edit_profile": "Editar perfil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Eliminar encuesta",
   "privacy.change": "Ajustar privacidad",
   "privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
-  "privacy.direct.short": "Directo",
+  "privacy.direct.short": "Solo la gente que yo menciono",
   "privacy.private.long": "Sólo mostrar a seguidores",
-  "privacy.private.short": "Privado",
-  "privacy.public.long": "Mostrar en la historia federada",
+  "privacy.private.short": "Solo seguidores",
+  "privacy.public.long": "Visible para todos",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "No mostrar en la historia federada",
+  "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
   "privacy.unlisted.short": "No listado",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "Cargando…",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index bb10fd504..ca40ff370 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blokeeritud kasutajad",
   "column.bookmarks": "Järjehoidjad",
   "column.community": "Kohalik ajajoon",
-  "column.direct": "Otsesõnumid",
+  "column.conversations": "Conversations",
   "column.directory": "Sirvi profiile",
   "column.domain_blocks": "Peidetud domeenid",
   "column.favourites": "Lemmikud",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Ainult kohalik",
   "community.column_settings.media_only": "Ainult meedia",
   "community.column_settings.remote_only": "Ainult kaug",
-  "compose_form.direct_message_warning": "See tuut saadetakse ainult mainitud kasutajatele.",
   "compose_form.direct_message_warning_learn_more": "Vaata veel",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Seda tuuti ei kuvata ühegi sildi all, sest see on kirjendamata. Ainult avalikud tuutid on sildi järgi otsitavad.",
   "compose_form.lock_disclaimer": "Teie konto ei ole {locked}. Igaüks saab Teid jälgida ja näha Teie ainult-jälgijatele postitusi.",
   "compose_form.lock_disclaimer.lock": "lukus",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Sa ei ole veel ühtegi kasutajat blokeerinud.",
   "empty_column.bookmarked_statuses": "Teil pole veel järjehoidjatesse lisatud tuututusi. Kui lisate mõne, näete neid siin.",
   "empty_column.community": "Kohalik ajajoon on tühi. Kirjutage midagi avalikult, et pall veerema ajada!",
-  "empty_column.direct": "Teil ei ole veel otsesõnumeid. Kui saadate või võtate mõne vastu, ilmuvad nad siia.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Siin ei ole veel peidetud domeene.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Teil pole veel lemmikuid tuute. Kui märgite mõne, näete neid siin.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "upitamiseks",
   "keyboard_shortcuts.column": "fokuseerimaks staatust ühele tulpadest",
   "keyboard_shortcuts.compose": "fokuseerimaks tekstikoostamise alale",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Kirjeldus",
-  "keyboard_shortcuts.direct": "avamaks otsesõnumite tulpa",
   "keyboard_shortcuts.down": "liikumaks nimstus alla",
   "keyboard_shortcuts.enter": "staatuse avamiseks",
   "keyboard_shortcuts.favourite": "lemmikuks märkimiseks",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Järjehoidjad",
   "navigation_bar.community_timeline": "Kohalik ajajoon",
   "navigation_bar.compose": "Koosta uus tuut",
-  "navigation_bar.direct": "Otsesõnumid",
   "navigation_bar.discover": "Avasta",
   "navigation_bar.domain_blocks": "Peidetud domeenid",
   "navigation_bar.edit_profile": "Muuda profiili",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Eemalda küsitlus",
   "privacy.change": "Muuda staatuse privaatsust",
   "privacy.direct.long": "Postita ainult mainitud kasutajatele",
-  "privacy.direct.short": "Otsene",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Postita ainult jälgijatele",
-  "privacy.private.short": "Ainult jälgijatele",
-  "privacy.public.long": "Postita avalikele ajajoontele",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Avalik",
-  "privacy.unlisted.long": "Ära postita avalikele ajajoontele",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Määramata",
   "refresh": "Värskenda",
   "regeneration_indicator.label": "Laeb…",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 6aca056d0..119395b2f 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blokeatutako erabiltzaileak",
   "column.bookmarks": "Laster-markak",
   "column.community": "Denbora-lerro lokala",
-  "column.direct": "Mezu zuzenak",
+  "column.conversations": "Conversations",
   "column.directory": "Arakatu profilak",
   "column.domain_blocks": "Ezkutatutako domeinuak",
   "column.favourites": "Gogokoak",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Lokala soilik",
   "community.column_settings.media_only": "Multimedia besterik ez",
   "community.column_settings.remote_only": "Urrunekoa soilik",
-  "compose_form.direct_message_warning": "Bidalketa hau aipatutako erabiltzaileei besterik ez zaie bidaliko.",
   "compose_form.direct_message_warning_learn_more": "Ikasi gehiago",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Bidalketa hau ez da traoletan agertuko zerrendatu gabekoa baita. Traoletan bidalketa publikoak besterik ez dira agertzen.",
   "compose_form.lock_disclaimer": "Zure kontua ez dago {locked}. Edonork jarraitu zaitzake zure jarraitzaileentzako soilik diren bidalketak ikusteko.",
   "compose_form.lock_disclaimer.lock": "giltzapetuta",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ez duzu erabiltzailerik blokeatu oraindik.",
   "empty_column.bookmarked_statuses": "Oraindik ez dituzu bidalketa laster-markatutarik. Bat laster-markatzerakoan, hemen agertuko da.",
   "empty_column.community": "Denbora-lerro lokala hutsik dago. Idatzi zerbait publikoki pilota biraka jartzeko!",
-  "empty_column.direct": "Ez duzu mezu zuzenik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Ez dago ezkutatutako domeinurik oraindik.",
   "empty_column.explore_statuses": "Ez dago joerarik une honetan. Begiratu beranduago!",
   "empty_column.favourited_statuses": "Ez duzu gogokorik oraindik. Gogokoren bat duzunean hemen agertuko da.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Bultzatu bidalketa",
   "keyboard_shortcuts.column": "mezu bat zutabe batean fokatzea",
   "keyboard_shortcuts.compose": "testua konposatzeko arean fokatzea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Deskripzioa",
-  "keyboard_shortcuts.direct": "mezu zuzenen zutabea irekitzeko",
   "keyboard_shortcuts.down": "zerrendan behera mugitzea",
   "keyboard_shortcuts.enter": "Ireki bidalketa",
   "keyboard_shortcuts.favourite": "Egin gogoko bidalketa",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Laster-markak",
   "navigation_bar.community_timeline": "Denbora-lerro lokala",
   "navigation_bar.compose": "Idatzi bidalketa berria",
-  "navigation_bar.direct": "Mezu zuzenak",
   "navigation_bar.discover": "Aurkitu",
   "navigation_bar.domain_blocks": "Ezkutatutako domeinuak",
   "navigation_bar.edit_profile": "Aldatu profila",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Kendu inkesta",
   "privacy.change": "Aldatu bidalketaren pribatutasuna",
   "privacy.direct.long": "Bidali aipatutako erabiltzaileei besterik ez",
-  "privacy.direct.short": "Zuzena",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Bidali jarraitzaileei besterik ez",
-  "privacy.private.short": "Jarraitzaileak soilik",
-  "privacy.public.long": "Bistaratu denbora-lerro publikoetan",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Publikoa",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Zerrendatu gabea",
   "refresh": "Berritu",
   "regeneration_indicator.label": "Kargatzen…",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 17399a01f..ae74607ab 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -70,7 +70,7 @@
   "column.blocks": "کاربران مسدود شده",
   "column.bookmarks": "نشانک‌ها",
   "column.community": "خط زمانی محلّی",
-  "column.direct": "پیام‌های مستقیم",
+  "column.conversations": "Conversations",
   "column.directory": "مرور نمایه‌ها",
   "column.domain_blocks": "دامنه‌های مسدود شده",
   "column.favourites": "پسندیده‌ها",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "فقط محلّی",
   "community.column_settings.media_only": "فقط رسانه",
   "community.column_settings.remote_only": "تنها دوردست",
-  "compose_form.direct_message_warning": "این فرسته تنها به کاربرانی که از آن‌ها نام برده شده فرستاده خواهد شد.",
   "compose_form.direct_message_warning_learn_more": "بیشتر بدانید",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "از آن‌جا که این فرسته فهرست نشده است، در نتایج جست‌وجوی هشتگ‌ها پیدا نخواهد شد. تنها فرسته‌های عمومی را می‌توان با جست‌وجوی هشتگ یافت.",
   "compose_form.lock_disclaimer": "حسابتان {locked} نیست. هر کسی می‌تواند پی‌گیرتان شده و فرسته‌های ویژهٔ پی‌گیرانتان را ببیند.",
   "compose_form.lock_disclaimer.lock": "قفل‌شده",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "هنوز کسی را مسدود نکرده‌اید.",
   "empty_column.bookmarked_statuses": "هنوز هیچ فرستهٔ نشانه‌گذاری شده‌ای ندارید. هنگامی که فرسته‌ای را نشانه‌گذاری کنید، این‌جا نشان داده خواهد شد.",
   "empty_column.community": "خط زمانی محلّی خالی است. چیزی بنویسید تا چرخش بچرخد!",
-  "empty_column.direct": "هنوز هیچ پیام مستقیمی ندارید. هنگامی که چنین پیامی بگیرید یا بفرستید این‌جا نشان داده خواهد شد.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "هنوز هیچ دامنه‌ای مسدود نشده است.",
   "empty_column.explore_statuses": "الآن چیزی پرطرفدار نیست. بعداً دوباره بررسی کنید!",
   "empty_column.favourited_statuses": "شما هنوز هیچ فرسته‌ای را نپسندیده‌اید. هنگامی که فرسته‌ای را بپسندید، این‌جا نشان داده خواهد شد.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "تقویت فرسته",
   "keyboard_shortcuts.column": "برای تمرکز روی یک فرسته در یکی از ستون‌ها",
   "keyboard_shortcuts.compose": "تمرکز روی محیط نوشتن",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "توضیح",
-  "keyboard_shortcuts.direct": "گشودن ستون پیام‌های مستقیم",
   "keyboard_shortcuts.down": "پایین بردن در سیاهه",
   "keyboard_shortcuts.enter": "گشودن فرسته",
   "keyboard_shortcuts.favourite": "پسندیدن فرسته",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "نشانک‌ها",
   "navigation_bar.community_timeline": "خط زمانی محلّی",
   "navigation_bar.compose": "نوشتن فرستهٔ تازه",
-  "navigation_bar.direct": "پیام‌های مستقیم",
   "navigation_bar.discover": "گشت و گذار",
   "navigation_bar.domain_blocks": "دامنه‌های مسدود شده",
   "navigation_bar.edit_profile": "ویرایش نمایه",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "برداشتن نظرسنجی",
   "privacy.change": "تغییر محرمانگی فرسته",
   "privacy.direct.long": "فقط برای کاربران نام‌برده نمایان است",
-  "privacy.direct.short": "مستقیم",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "نمایان فقط برای پی‌گیرندگان",
-  "privacy.private.short": "فقط پی‌گیرندگان",
-  "privacy.public.long": "نمایان برای همه، در خط‌های زمانی همگانی نمایش داده خواهد شد",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "عمومی",
-  "privacy.unlisted.long": "نمایان برای همه، ولی در خط‌های زمانی همگانی نمایش داده نخواهد شد",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "فهرست نشده",
   "refresh": "نوسازی",
   "regeneration_indicator.label": "در حال بار شدن…",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index dfed86fa5..e18e3b763 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -70,7 +70,7 @@
   "column.blocks": "Estetyt käyttäjät",
   "column.bookmarks": "Kirjanmerkit",
   "column.community": "Paikallinen aikajana",
-  "column.direct": "Pikaviestit",
+  "column.conversations": "Conversations",
   "column.directory": "Selaa profiileja",
   "column.domain_blocks": "Piilotetut verkkotunnukset",
   "column.favourites": "Suosikit",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Vain paikalliset",
   "community.column_settings.media_only": "Vain media",
   "community.column_settings.remote_only": "Vain etäkäyttö",
-  "compose_form.direct_message_warning": "Tämä viesti näkyy vain mainituille käyttäjille.",
   "compose_form.direct_message_warning_learn_more": "Lisätietoja",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Tätä julkaisua listata minkään hastagin alle, koska se on listaamaton. Ainoastaan julkisia julkaisuja etsiä hastageilla.",
   "compose_form.lock_disclaimer": "Tilisi ei ole {locked}. Kuka tahansa voi seurata tiliäsi ja nähdä vain seuraajille rajaamasi julkaisut.",
   "compose_form.lock_disclaimer.lock": "lukittu",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Et ole vielä estänyt yhtään käyttäjää.",
   "empty_column.bookmarked_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
   "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!",
-  "empty_column.direct": "Sinulla ei ole vielä yhtään viestiä yksittäiselle käyttäjälle. Kun lähetät tai vastaanotat sellaisen, se näkyy täällä.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Yhtään verkko-osoitetta ei ole vielä estetty.",
   "empty_column.explore_statuses": "Mikään ei ole nyt trendi. Tarkista myöhemmin!",
   "empty_column.favourited_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Buustaa viestiä",
   "keyboard_shortcuts.column": "Kohdista sarakkeeseen",
   "keyboard_shortcuts.compose": "siirry tekstinsyöttöön",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Kuvaus",
-  "keyboard_shortcuts.direct": "Avaa pikaviestisarake",
   "keyboard_shortcuts.down": "Siirry listassa alaspäin",
   "keyboard_shortcuts.enter": "Avaa julkaisu",
   "keyboard_shortcuts.favourite": "Lisää suosikkeihin",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Kirjanmerkit",
   "navigation_bar.community_timeline": "Paikallinen aikajana",
   "navigation_bar.compose": "Luo uusi viesti",
-  "navigation_bar.direct": "Pikaviestit",
   "navigation_bar.discover": "Löydä uutta",
   "navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
   "navigation_bar.edit_profile": "Muokkaa profiilia",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Poista kysely",
   "privacy.change": "Muuta julkaisun näkyvyyttä",
   "privacy.direct.long": "Julkaise vain mainituille käyttäjille",
-  "privacy.direct.short": "Suora viesti",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Julkaise vain seuraajille",
-  "privacy.private.short": "Vain seuraajat",
-  "privacy.public.long": "Julkaise julkisille aikajanoille",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Julkinen",
-  "privacy.unlisted.long": "Älä julkaise julkisilla aikajanoilla",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Listaamaton julkinen",
   "refresh": "Päivitä",
   "regeneration_indicator.label": "Ladataan…",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 2ebfbce58..c7762fcef 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -70,7 +70,7 @@
   "column.blocks": "Comptes bloqués",
   "column.bookmarks": "Marque-pages",
   "column.community": "Fil public local",
-  "column.direct": "Messages directs",
+  "column.conversations": "Conversations",
   "column.directory": "Parcourir les profils",
   "column.domain_blocks": "Domaines bloqués",
   "column.favourites": "Favoris",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local seulement",
   "community.column_settings.media_only": "Média uniquement",
   "community.column_settings.remote_only": "Distant seulement",
-  "compose_form.direct_message_warning": "Ce message sera uniquement envoyé aux personnes mentionnées. Cependant, l’administration de votre instance et des instances réceptrices pourront inspecter ce message.",
   "compose_form.direct_message_warning_learn_more": "En savoir plus",
+  "compose_form.encryption_warning": "Les messages sur Mastodon ne sont pas chiffrés de bout en bout. Ne partagez aucune information confidentielle sur Mastodon.",
   "compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur « non listé ». Seuls les pouets avec une visibilité « publique » peuvent être recherchés par hashtag.",
   "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos messages privés.",
   "compose_form.lock_disclaimer.lock": "verrouillé",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Vous n’avez bloqué aucun compte pour le moment.",
   "empty_column.bookmarked_statuses": "Vous n'avez pas de message en marque-page. Lorsque vous en ajouterez un, il apparaîtra ici.",
   "empty_column.community": "Le fil public local est vide. Écrivez donc quelque chose pour le remplir !",
-  "empty_column.direct": "Vous n’avez pas encore de messages directs. Lorsque vous en enverrez ou recevrez un, il s’affichera ici.",
+  "empty_column.conversations": "Une fois que vous avez envoyé ou reçu un message qui ne sera visible que par les personnes mentionnées, il apparaîtra ici.",
   "empty_column.domain_blocks": "Il n’y a aucun domaine bloqué pour le moment.",
   "empty_column.explore_statuses": "Rien n'est en tendance pour le moment. Revenez plus tard !",
   "empty_column.favourited_statuses": "Vous n’avez pas encore de message en favori. Lorsque vous en ajouterez un, il apparaîtra ici.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Partager le message",
   "keyboard_shortcuts.column": "Se placer dans une colonne",
   "keyboard_shortcuts.compose": "Se placer dans la zone de rédaction",
+  "keyboard_shortcuts.conversations": "pour ouvrir la colonne des conversations",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "Ouvrir la colonne des messages directs",
   "keyboard_shortcuts.down": "Descendre dans la liste",
   "keyboard_shortcuts.enter": "Ouvrir le message",
   "keyboard_shortcuts.favourite": "Ajouter le message aux favoris",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Marque-pages",
   "navigation_bar.community_timeline": "Fil public local",
   "navigation_bar.compose": "Rédiger un nouveau message",
-  "navigation_bar.direct": "Messages directs",
   "navigation_bar.discover": "Découvrir",
   "navigation_bar.domain_blocks": "Domaines bloqués",
   "navigation_bar.edit_profile": "Modifier le profil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Supprimer le sondage",
   "privacy.change": "Ajuster la confidentialité du message",
   "privacy.direct.long": "Visible uniquement par les comptes mentionnés",
-  "privacy.direct.short": "Direct",
+  "privacy.direct.short": "Seulement les personnes mentionnées",
   "privacy.private.long": "Visible uniquement par vos abonné·e·s",
   "privacy.private.short": "Abonné·e·s uniquement",
-  "privacy.public.long": "Visible par tou·te·s, affiché dans les fils publics",
+  "privacy.public.long": "Visible pour tous",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible par tou·te·s, mais pas dans les fils publics",
+  "privacy.unlisted.long": "Visible pour tous, mais sans fonctionnalités de découverte",
   "privacy.unlisted.short": "Non listé",
   "refresh": "Actualiser",
   "regeneration_indicator.label": "Chargement…",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index 963d2f61d..6370cd9d6 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -70,7 +70,7 @@
   "column.blocks": "Cuntais choiscthe",
   "column.bookmarks": "Leabharmharcanna",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Blocked domains",
   "column.favourites": "Favourites",
@@ -79,7 +79,7 @@
   "column.lists": "Liostaí",
   "column.mutes": "Úsáideoirí balbhaithe",
   "column.notifications": "Notifications",
-  "column.pins": "Pinned toot",
+  "column.pins": "Pinned post",
   "column.public": "Federated timeline",
   "column_back_button.label": "Siar",
   "column_header.hide_settings": "Hide settings",
@@ -92,9 +92,9 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
-  "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
+  "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
   "compose_form.placeholder": "Cad atá ag tarlú?",
@@ -161,16 +161,16 @@
   "emoji_button.symbols": "Symbols",
   "emoji_button.travel": "Taisteal ⁊ Áiteanna",
   "empty_column.account_suspended": "Account suspended",
-  "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_timeline": "No posts found",
   "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
-  "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+  "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no blocked domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
-  "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
-  "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
+  "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
+  "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
   "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
   "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
   "empty_column.hashtag": "There is nothing in this hashtag yet.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -247,7 +247,7 @@
   "keyboard_shortcuts.my_profile": "to open your profile",
   "keyboard_shortcuts.notifications": "to open notifications column",
   "keyboard_shortcuts.open_media": "to open media",
-  "keyboard_shortcuts.pinned": "to open pinned toots list",
+  "keyboard_shortcuts.pinned": "to open pinned posts list",
   "keyboard_shortcuts.profile": "to open author's profile",
   "keyboard_shortcuts.reply": "to reply",
   "keyboard_shortcuts.requests": "to open follow requests list",
@@ -256,7 +256,7 @@
   "keyboard_shortcuts.start": "to open \"get started\" column",
   "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
   "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
-  "keyboard_shortcuts.toot": "to start a brand new toot",
+  "keyboard_shortcuts.toot": "to start a brand new post",
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
   "keyboard_shortcuts.up": "to move up in the list",
   "lightbox.close": "Close",
@@ -289,8 +289,7 @@
   "navigation_bar.blocks": "Blocked users",
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
-  "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
+  "navigation_bar.compose": "Compose new post",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Cuir an phróifíl in eagar",
@@ -305,7 +304,7 @@
   "navigation_bar.logout": "Logáil Amach",
   "navigation_bar.mutes": "Úsáideoirí balbhaithe",
   "navigation_bar.personal": "Pearsanta",
-  "navigation_bar.pins": "Pinned toots",
+  "navigation_bar.pins": "Pinned posts",
   "navigation_bar.preferences": "Preferences",
   "navigation_bar.public_timeline": "Federated timeline",
   "navigation_bar.security": "Security",
@@ -335,7 +334,7 @@
   "notifications.column_settings.reblog": "Boosts:",
   "notifications.column_settings.show": "Show in column",
   "notifications.column_settings.sound": "Play sound",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "New posts:",
   "notifications.column_settings.unread_notifications.category": "Unread notifications",
   "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
   "notifications.column_settings.update": "Eagair:",
@@ -369,10 +368,10 @@
   "privacy.direct.long": "Visible for mentioned users only",
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Sofheicthe do Leantóirí amháin",
-  "privacy.private.short": "Leantóirí amháin",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Poiblí",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Ag lódáil…",
@@ -438,7 +437,7 @@
   "search_results.hashtags": "Haischlibeanna",
   "search_results.nothing_found": "Could not find anything for these search terms",
   "search_results.statuses": "Postálacha",
-  "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
+  "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
@@ -466,12 +465,12 @@
   "status.mute_conversation": "Balbhaigh comhrá",
   "status.open": "Expand this status",
   "status.pin": "Pin on profile",
-  "status.pinned": "Pinned toot",
+  "status.pinned": "Pinned post",
   "status.read_more": "Read more",
   "status.reblog": "Boost",
   "status.reblog_private": "Boost with original visibility",
   "status.reblogged_by": "{name} boosted",
-  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
+  "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
   "status.redraft": "Delete & re-draft",
   "status.remove_bookmark": "Remove bookmark",
   "status.reply": "Reply",
@@ -502,7 +501,7 @@
   "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
   "timeline_hint.resources.followers": "Leantóirí",
   "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
+  "timeline_hint.resources.statuses": "Older posts",
   "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
   "trends.trending_now": "Trending now",
   "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index 52020f896..be1b10025 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -70,7 +70,7 @@
   "column.blocks": "Cleachdaichean bacte",
   "column.bookmarks": "Comharran-lìn",
   "column.community": "Loidhne-ama ionadail",
-  "column.direct": "Teachdaireachdan dìreach",
+  "column.conversations": "Còmhraidhean",
   "column.directory": "Rùraich sna pròifilean",
   "column.domain_blocks": "Àrainnean bacte",
   "column.favourites": "Na h-annsachdan",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Feadhainn ionadail a-mhàin",
   "community.column_settings.media_only": "Meadhanan a-mhàin",
   "community.column_settings.remote_only": "Feadhainn chèin a-mhàin",
-  "compose_form.direct_message_warning": "Cha dèid am post seo a chur ach dha na cleachdaichean air an dug thu iomradh.",
   "compose_form.direct_message_warning_learn_more": "Barrachd fiosrachaidh",
+  "compose_form.encryption_warning": "Chan eil crioptachadh ceann gu ceann air postaichean Mhastodon. Na co-roinn fiosrachadh cunnartach idir le Mastodon.",
   "compose_form.hashtag_warning": "Cha nochd am post seo fon taga hais on a tha e falaichte o liostaichean. Cha ghabh ach postaichean poblach a lorg a-rèir an tagaichean hais.",
   "compose_form.lock_disclaimer": "Chan eil an cunntas agad {locked}. ’S urrainn do dhuine sam bith leantainn ort is na postaichean agad a tha ag amas air an luchd-leantainn agad a-mhàin a shealltainn.",
   "compose_form.lock_disclaimer.lock": "glaiste",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Cha do bhac thu cleachdaiche sam bith fhathast.",
   "empty_column.bookmarked_statuses": "Chan eil comharra-lìn ri post agad fhathast. Nuair a nì thu comharra-lìn de dh’fhear, nochdaidh e an-seo.",
   "empty_column.community": "Tha an loidhne-ama ionadail falamh. Sgrìobh rudeigin gu poblach airson toiseach-tòiseachaidh a dhèanamh!",
-  "empty_column.direct": "Chan eil teachdaireachd dhìreach agad fhathast. Nuair a chuireas no a gheibh thu tè, nochdaidh i an-seo.",
+  "empty_column.conversations": "Nuair a chuireas no gheibh thu post nach fhaic ach an fheadhainn le iomradh orra ann, nochdaidh e an-seo.",
   "empty_column.domain_blocks": "Cha deach àrainn sam bith a bhacadh fhathast.",
   "empty_column.explore_statuses": "Chan eil dad a’ treandadh an-dràsta fhèin. Thoir sùil a-rithist an ceann greis!",
   "empty_column.favourited_statuses": "Chan eil annsachd air post agad fhathast. Nuair a nì thu annsachd de dh’fhear, nochdaidh e an-seo.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Brosnaich post",
   "keyboard_shortcuts.column": "Cuir am fòcas air colbh",
   "keyboard_shortcuts.compose": "Cuir am fòcas air raon teacsa an sgrìobhaidh",
+  "keyboard_shortcuts.conversations": "a dh’fhosgladh colbh nan còmhraidhean",
   "keyboard_shortcuts.description": "Tuairisgeul",
-  "keyboard_shortcuts.direct": "Fosgail colbh nan teachdaireachdan dìreach",
   "keyboard_shortcuts.down": "Gluais sìos air an liosta",
   "keyboard_shortcuts.enter": "Fosgail post",
   "keyboard_shortcuts.favourite": "Cuir post ris na h-annsachdan",
@@ -290,8 +290,7 @@
   "navigation_bar.bookmarks": "Comharran-lìn",
   "navigation_bar.community_timeline": "Loidhne-ama ionadail",
   "navigation_bar.compose": "Sgrìobh post ùr",
-  "navigation_bar.direct": "Teachdaireachdan dìreach",
-  "navigation_bar.discover": "Fidir",
+  "navigation_bar.discover": "Rùraich",
   "navigation_bar.domain_blocks": "Àrainnean bacte",
   "navigation_bar.edit_profile": "Deasaich a’ phròifil",
   "navigation_bar.explore": "Rùraich",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Thoir air falbh an cunntas-bheachd",
   "privacy.change": "Cuir gleus air prìobhaideachd a’ phuist",
   "privacy.direct.long": "Chan fhaic ach na cleachdaichean le iomradh orra seo",
-  "privacy.direct.short": "Dìreach",
+  "privacy.direct.short": "Daoine air an dug mi iomradh a-mhàin",
   "privacy.private.long": "Chan fhaic ach na daoine a tha a’ leantainn ort seo",
   "privacy.private.short": "Luchd-leantainn a-mhàin",
-  "privacy.public.long": "Chì a h-uile duine seo ’s e ’ga shealltainn air loidhnichean-ama poblach",
+  "privacy.public.long": "Chì a h-uile duine e",
   "privacy.public.short": "Poblach",
-  "privacy.unlisted.long": "Chì a h-uile duine seo ach cha dèid a shealltainn air loidhnichean-ama poblach",
+  "privacy.unlisted.long": "Chì a h-uile duine e ach cha nochd e ann an gleusan rùrachaidh",
   "privacy.unlisted.short": "Falaichte o liostaichean",
   "refresh": "Ath-nuadhaich",
   "regeneration_indicator.label": "’Ga luchdadh…",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 058e525b5..114d90335 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -70,7 +70,7 @@
   "column.blocks": "Usuarias bloqueadas",
   "column.bookmarks": "Marcadores",
   "column.community": "Cronoloxía local",
-  "column.direct": "Mensaxes directas",
+  "column.conversations": "Conversas",
   "column.directory": "Procurar perfís",
   "column.domain_blocks": "Dominios agochados",
   "column.favourites": "Favoritos",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Só local",
   "community.column_settings.media_only": "Só multimedia",
   "community.column_settings.remote_only": "Só remoto",
-  "compose_form.direct_message_warning": "Esta publicación só será enviada ás usuarias mencionadas.",
   "compose_form.direct_message_warning_learn_more": "Coñecer máis",
+  "compose_form.encryption_warning": "As publicacións en Mastodon non están cifradas de extremo-a-extremo. Non compartas información sensible en Mastodon.",
   "compose_form.hashtag_warning": "Esta publicación non aparecerá baixo ningún cancelo (hashtag) porque non está listada. Só se poden procurar publicacións públicas por cancelos.",
   "compose_form.lock_disclaimer": "A túa conta non está {locked}. Todas poden seguirte para ollar os teus toots só para seguidoras.",
   "compose_form.lock_disclaimer.lock": "bloqueada",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Aínda non bloqueaches a ningún usuaria.",
   "empty_column.bookmarked_statuses": "Aínda non marcaches ningunha publicación. Cando o fagas, aparecerán aquí.",
   "empty_column.community": "A cronoloxía local está baleira. Escribe algo de xeito público para espallalo!",
-  "empty_column.direct": "Aínda non tes mensaxes directas. Cando envíes ou recibas unha, amosarase aquí.",
+  "empty_column.conversations": "Aquí verás as publicacións que envíes ou recibas é só son visibles para as persoas mencionadas.",
   "empty_column.domain_blocks": "Aínda non hai dominios agochados.",
   "empty_column.explore_statuses": "Non hai temas en voga. Volve máis tarde!",
   "empty_column.favourited_statuses": "Aínda non tes publicacións favoritas. Cando che guste algunha, aparecerá aquí.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Promover publicación",
   "keyboard_shortcuts.column": "Destacar unha columna",
   "keyboard_shortcuts.compose": "Por o cursor na área de escritura",
+  "keyboard_shortcuts.conversations": "para abrir a columna das conversas",
   "keyboard_shortcuts.description": "Descrición",
-  "keyboard_shortcuts.direct": "Para abrir a columna de mensaxes directas",
   "keyboard_shortcuts.down": "Para mover cara abaixo na listaxe",
   "keyboard_shortcuts.enter": "Para abrir publicación",
   "keyboard_shortcuts.favourite": "Para engadir a favoritos",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Marcadores",
   "navigation_bar.community_timeline": "Cronoloxía local",
   "navigation_bar.compose": "Escribir unha nova publicación",
-  "navigation_bar.direct": "Mensaxes directas",
   "navigation_bar.discover": "Descubrir",
   "navigation_bar.domain_blocks": "Dominios agochados",
   "navigation_bar.edit_profile": "Editar perfil",
@@ -315,7 +314,7 @@
   "notification.follow_request": "{name} solicitou seguirte",
   "notification.mention": "{name} mencionoute",
   "notification.own_poll": "A túa enquisa rematou",
-  "notification.poll": "Unha enquisa na que votaches rematou",
+  "notification.poll": "Rematou a enquisa na que votaches",
   "notification.reblog": "{name} compartiu a túa publicación",
   "notification.status": "{name} publicou",
   "notification.update": "{name} editou unha publicación",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Eliminar enquisa",
   "privacy.change": "Axustar privacidade",
   "privacy.direct.long": "Só para as usuarias mencionadas",
-  "privacy.direct.short": "Directo",
+  "privacy.direct.short": "Só para persoas mencionadas",
   "privacy.private.long": "Só para os seguidoras",
   "privacy.private.short": "Só para seguidoras",
-  "privacy.public.long": "Publicar nas cronoloxías públicas",
+  "privacy.public.long": "Visible por todas",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "Non publicar nas cronoloxías públicas",
+  "privacy.unlisted.long": "Visible por todas, pero excluída da sección descubrir",
   "privacy.unlisted.short": "Non listado",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "Estase a cargar…",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index db192fa53..efa740656 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -70,7 +70,7 @@
   "column.blocks": "חסימות",
   "column.bookmarks": "סימניות",
   "column.community": "ציר זמן מקומי",
-  "column.direct": "הודעות ישירות",
+  "column.conversations": "Conversations",
   "column.directory": "גלוש פרופילים",
   "column.domain_blocks": "Hidden domains",
   "column.favourites": "חיבובים",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "מקומי בלבד",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "מרחוק בלבד",
-  "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "מידע נוסף",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "חשבונך אינו {locked}. כל אחד יוכל לעקוב אחריך כדי לקרוא את הודעותיך המיועדות לעוקבים בלבד.",
   "compose_form.lock_disclaimer.lock": "נעול",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "עדיין לא חסמתם משתמשים אחרים.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "טור הסביבה ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!",
-  "empty_column.direct": "עדיין אין לכם הודעות פרטיות. כאשר תשלחו או תקבלו אחת, היא תופיע כאן.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no hidden domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "להדהד",
   "keyboard_shortcuts.column": "להתמקד בהודעה באחד מהטורים",
   "keyboard_shortcuts.compose": "להתמקד בתיבת חיבור ההודעות",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "תיאור",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "לנוע במורד הרשימה",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "לחבב",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "ציר זמן מקומי",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "הודעות ישירות",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "עריכת פרופיל",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Remove poll",
   "privacy.change": "שינוי פרטיות ההודעה",
   "privacy.direct.long": "הצג רק למי שהודעה זו פונה אליו",
-  "privacy.direct.short": "הודעה ישירה",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "הצג לעוקבים בלבד",
-  "privacy.private.short": "לעוקבים בלבד",
-  "privacy.public.long": "פרסם בפומבי",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "פומבי",
-  "privacy.unlisted.long": "לא יופיע בפידים הציבוריים המשותפים",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "לא לפיד הכללי",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index ecc6898c3..d208cf51e 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -70,7 +70,7 @@
   "column.blocks": "ब्लॉक्ड यूज़र्स",
   "column.bookmarks": "पुस्तकचिह्न:",
   "column.community": "लोकल टाइम्लाइन",
-  "column.direct": "सीधा संदेश",
+  "column.conversations": "Conversations",
   "column.directory": "प्रोफाइल्स खोजें",
   "column.domain_blocks": "छुपे डोमेन्स",
   "column.favourites": "पसंदीदा",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "स्थानीय ही",
   "community.column_settings.media_only": "सिर्फ़ मीडिया",
   "community.column_settings.remote_only": "केवल सुदूर",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "और जानें",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "यह टूट् किसी भी हैशटैग के तहत सूचीबद्ध नहीं होगा क्योंकि यह अनलिस्टेड है। हैशटैग द्वारा केवल सार्वजनिक टूट्स खोजे जा सकते हैं।",
   "compose_form.lock_disclaimer": "आपका खाता {locked} नहीं है। आपको केवल फॉलोवर्स को दिखाई दिए जाने वाले पोस्ट देखने के लिए कोई भी फॉलो कर सकता है।",
   "compose_form.lock_disclaimer.lock": "लॉक्ड",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "आप अभी तक किसी भी यूजर के द्वारा ब्लॉक्ड नहीं हो।",
   "empty_column.bookmarked_statuses": "आपके पास अभी तक कोई बुकमार्क नहीं है। जब आप एक बुकमार्क करते हैं, तो यह यहां दिखाई देगा।",
   "empty_column.community": "लोकल टाइम्लाइन खाली है, कुछ देखने के लिये सार्वजनिक रूप से कुछ लिखें!",
-  "empty_column.direct": "आपके पास कोई सीधा सन्देश नहीं है, जब आप कोई भेजेंगे प्राप्त करेंगे तो यहाँ दिखेगा।",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "अभी तक कोई छुपा हुआ डोमेन नहीं है।",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "आपके पास अभी कोई भी चहिता टूट नहीं है. जब आप किसी टूट को पसंद (स्टार) करेंगे, तब वो यहाँ दिखेगा।",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "बढ़ावा देने के लिए",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "कंपोज़ टेक्स्ट-एरिया पर ध्यान केंद्रित करने के लिए",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "विवरण",
-  "keyboard_shortcuts.direct": "सीधा सन्देश कॉलम को खोलने के लिए",
   "keyboard_shortcuts.down": "सूची में शामिल करने के लिए",
   "keyboard_shortcuts.enter": "स्टेटस खोलने के लिए",
   "keyboard_shortcuts.favourite": "पसंदीदा के लिए",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "पुस्तकचिह्न:",
   "navigation_bar.community_timeline": "लोकल टाइम्लाइन",
   "navigation_bar.compose": "नया टूट् लिखें",
-  "navigation_bar.direct": "सीधा संदेश",
   "navigation_bar.discover": "खोजें",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "प्रोफ़ाइल संपादित करें",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Remove poll",
   "privacy.change": "Adjust status privacy",
   "privacy.direct.long": "Post to mentioned users only",
-  "privacy.direct.short": "सीधा",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Post to followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "सार्वजनिक टाइम्लाइन पर भेजें",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "सार्वजनिक",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "अनलिस्टेड",
   "refresh": "रीफ्रेश करें",
   "regeneration_indicator.label": "लोड हो रहा है...",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 25bd26c8e..16434ea46 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blokirani korisnici",
   "column.bookmarks": "Knjižne oznake",
   "column.community": "Lokalna vremenska crta",
-  "column.direct": "Izravne poruke",
+  "column.conversations": "Conversations",
   "column.directory": "Pregledavanje profila",
   "column.domain_blocks": "Blokirane domene",
   "column.favourites": "Favoriti",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Samo lokalno",
   "community.column_settings.media_only": "Samo medijski sadržaj",
   "community.column_settings.remote_only": "Samo udaljeno",
-  "compose_form.direct_message_warning": "Ovaj toot bit će poslan samo spomenutim korisnicima.",
   "compose_form.direct_message_warning_learn_more": "Saznajte više",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Ovaj toot neće biti prikazan ni pod jednim hashtagom jer je postavljen kao neprikazan. Samo javni tootovi mogu biti pretraživani pomoći hashtagova.",
   "compose_form.lock_disclaimer": "Vaš račun nije {locked}. Svatko Vas može pratiti kako bi vidjeli objave namijenjene Vašim pratiteljima.",
   "compose_form.lock_disclaimer.lock": "zaključan",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Još niste blokirali nikoga.",
   "empty_column.bookmarked_statuses": "Još nemaš niti jedan označeni toot. Kada označiš jedan, prikazad će se ovdje.",
   "empty_column.community": "Lokalna vremenska crta je prazna. Napišite nešto javno da biste pokrenuli stvari!",
-  "empty_column.direct": "Nemate još niti jedne direktne poruke. Kada ih pošaljete ili primite, prikazati će se ovdje.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Još nema blokiranih domena.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "za boostanje",
   "keyboard_shortcuts.column": "za fokusiranje na toot u jednom od stupaca",
   "keyboard_shortcuts.compose": "za fokusiranje na tekstualni okvir za stvaranje",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Opis",
-  "keyboard_shortcuts.direct": "za otvaranje stupca s izravnim porukama",
   "keyboard_shortcuts.down": "za pomak dolje na listi",
   "keyboard_shortcuts.enter": "za otvaranje toota",
   "keyboard_shortcuts.favourite": "za označavanje favoritom",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Lokalna vremenska crta",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Izravne poruke",
   "navigation_bar.discover": "Istraživanje",
   "navigation_bar.domain_blocks": "Blokirane domene",
   "navigation_bar.edit_profile": "Uredi profil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Ukloni anketu",
   "privacy.change": "Podesi privatnost toota",
   "privacy.direct.long": "Vidljivo samo spomenutim korisnicima",
-  "privacy.direct.short": "Izravno",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Vidljivo samo pratiteljima",
-  "privacy.private.short": "Samo pratitelji",
-  "privacy.public.long": "Vidljivo svima, prikazano u javim vremenskim crtama",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Javno",
-  "privacy.unlisted.long": "Vidljivo svima, ali se ne prikazuje u javnim vremenskim crtama",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Neprikazano",
   "refresh": "Osvježi",
   "regeneration_indicator.label": "Učitavanje…",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 2f747f591..ccf0dd3fd 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -70,7 +70,7 @@
   "column.blocks": "Letiltott felhasználók",
   "column.bookmarks": "Könyvjelzők",
   "column.community": "Helyi idővonal",
-  "column.direct": "Közvetlen üzenetek",
+  "column.conversations": "Beszélgetések",
   "column.directory": "Profilok böngészése",
   "column.domain_blocks": "Rejtett domainek",
   "column.favourites": "Kedvencek",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Csak helyi",
   "community.column_settings.media_only": "Csak média",
   "community.column_settings.remote_only": "Csak távoli",
-  "compose_form.direct_message_warning": "Ezt a bejegyzést csak a benne megemlített felhasználók láthatják majd.",
   "compose_form.direct_message_warning_learn_more": "Tudj meg többet",
+  "compose_form.encryption_warning": "A bejegyzések a Mastodonon nem használnak végpontok közötti titkosítást. Ne ossz meg érzékeny információt Mastodonon.",
   "compose_form.hashtag_warning": "Ez a bejegyzésed nem fog megjelenni semmilyen hashtag alatt, mivel listázatlan. Csak a nyilvános bejegyzések kereshetők hashtaggel.",
   "compose_form.lock_disclaimer": "A fiókod nincs {locked}. Bárki követni tud, hogy megtekintse a kizárólag követőknek szánt bejegyzéseket.",
   "compose_form.lock_disclaimer.lock": "lezárva",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Még senkit sem tiltottál le.",
   "empty_column.bookmarked_statuses": "Még nincs egyetlen könyvjelzőzött bejegyzésed sem. Ha könyvjelzőzöl egyet, itt fog megjelenni.",
   "empty_column.community": "A helyi idővonal üres. Tégy közzé valamit nyilvánosan, hogy elindítsd az eseményeket!",
-  "empty_column.direct": "Még nincs egy közvetlen üzeneted sem. Ha küldesz vagy kapsz egyet, itt fog megjelenni.",
+  "empty_column.conversations": "Ha olyan bejegyzést küldesz vagy fogadsz, melyet csak az abban megemlítettek látnak, itt fog megjelenni.",
   "empty_column.domain_blocks": "Még nem rejtettél el egyetlen domaint sem.",
   "empty_column.explore_statuses": "Jelenleg semmi sem felkapott. Nézz vissza később!",
   "empty_column.favourited_statuses": "Még nincs egyetlen kedvenc bejegyzésed sem. Ha kedvencnek jelölsz egyet, itt fog megjelenni.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Bejegyzés megtolása",
   "keyboard_shortcuts.column": "Fókuszálás egy oszlopra",
   "keyboard_shortcuts.compose": "fókuszálás a szerkesztési szövegdobozra",
+  "keyboard_shortcuts.conversations": "beszélgetések megnyitása",
   "keyboard_shortcuts.description": "Leírás",
-  "keyboard_shortcuts.direct": "Közvetlen üzenetek oszlopának megnyitása",
   "keyboard_shortcuts.down": "lefele navigálás a listában",
   "keyboard_shortcuts.enter": "Bejegyzés megnyitása",
   "keyboard_shortcuts.favourite": "Bejegyzés kedvencnek jelölése",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Könyvjelzők",
   "navigation_bar.community_timeline": "Helyi idővonal",
   "navigation_bar.compose": "Új bejegyzés írása",
-  "navigation_bar.direct": "Közvetlen üzenetek",
   "navigation_bar.discover": "Felfedezés",
   "navigation_bar.domain_blocks": "Rejtett domainek",
   "navigation_bar.edit_profile": "Profil szerkesztése",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Szavazás törlése",
   "privacy.change": "Bejegyzés láthatóságának módosítása",
   "privacy.direct.long": "Csak a megemlített felhasználóknak látható",
-  "privacy.direct.short": "Közvetlen",
+  "privacy.direct.short": "Csak a megemlítettek",
   "privacy.private.long": "Csak követőknek látható",
-  "privacy.private.short": "Csak követőknek",
-  "privacy.public.long": "Mindenki számára látható, nyilvános idővonalakon is szerepel",
+  "privacy.private.short": "Csak követők",
+  "privacy.public.long": "Mindenki számára látható",
   "privacy.public.short": "Nyilvános",
-  "privacy.unlisted.long": "Ne mutassuk nyilvános idővonalon",
+  "privacy.unlisted.long": "Mindenki számára látható, de kimarad a felfedezős funkciókból",
   "privacy.unlisted.short": "Listázatlan",
   "refresh": "Frissítés",
   "regeneration_indicator.label": "Töltődik…",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index dc6234766..c7ba3b852 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -18,8 +18,8 @@
   "account.followers": "Հետեւողներ",
   "account.followers.empty": "Այս օգտատիրոջը դեռ ոչ մէկ չի հետեւում։",
   "account.followers_counter": "{count, plural, one {{counter} Հետեւորդ} other {{counter} Հետեւորդ}}",
-  "account.following": "Following",
-  "account.following_counter": "{count, plural, one {{counter} հետեւած} other {{counter} հետեւած}}",
+  "account.following": "Հետեւած",
+  "account.following_counter": "{count, plural, one {{counter} Հետեւած} other {{counter} Հետեւած}}",
   "account.follows.empty": "Այս օգտատէրը դեռ ոչ մէկի չի հետեւում։",
   "account.follows_you": "Հետեւում է քեզ",
   "account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները",
@@ -41,12 +41,12 @@
   "account.statuses_counter": "{count, plural, one {{counter} Գրառում} other {{counter} Գրառումներ}}",
   "account.unblock": "Ապաարգելափակել @{name}֊ին",
   "account.unblock_domain": "Ցուցադրել {domain} թաքցուած տիրոյթի գրառումները",
-  "account.unblock_short": "Unblock",
+  "account.unblock_short": "Արգելաբացել",
   "account.unendorse": "Չցուցադրել անձնական էջում",
   "account.unfollow": "Ապահետեւել",
   "account.unmute": "Ապալռեցնել @{name}֊ին",
   "account.unmute_notifications": "Միացնել ծանուցումները @{name}֊ից",
-  "account.unmute_short": "Unmute",
+  "account.unmute_short": "Ապախլացնել",
   "account_note.placeholder": "Սեղմէ՛ք գրառելու համար\n",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
@@ -70,7 +70,7 @@
   "column.blocks": "Արգելափակուած օգտատէրեր",
   "column.bookmarks": "Էջանիշեր",
   "column.community": "Տեղական հոսք",
-  "column.direct": "Հասցէագրուած հաղորդագրութիւններ",
+  "column.conversations": "Զրոյցներ",
   "column.directory": "Զննել անձնական էջերը",
   "column.domain_blocks": "Թաքցուած տիրոյթները",
   "column.favourites": "Հաւանածներ",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Միայն տեղական",
   "community.column_settings.media_only": "Միայն մեդիա",
   "community.column_settings.remote_only": "Միայն հեռակայ",
-  "compose_form.direct_message_warning": "Այս գրառումը տեսանելի կը լինի միայն նշուած օգտատէրերին։",
   "compose_form.direct_message_warning_learn_more": "Իմանալ աւելին",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Այս գրառումը չի հաշուառուի որեւէ պիտակի տակ, քանզի այն ծածուկ է։ Միայն հրապարակային թթերը հնարաւոր է որոնել պիտակներով։",
   "compose_form.lock_disclaimer": "Քո հաշիւը {locked} չէ։ Իւրաքանչիւրութիւն ոք կարող է հետեւել քեզ եւ տեսնել միայն հետեւողների համար նախատեսուած գրառումները։",
   "compose_form.lock_disclaimer.lock": "փակ",
@@ -106,7 +106,7 @@
   "compose_form.poll.switch_to_single": "Հարցումը դարձնել եզակի ընտրութեամբ",
   "compose_form.publish": "Հրապարակել",
   "compose_form.publish_loud": "Հրապարակե՜լ",
-  "compose_form.save_changes": "Save changes",
+  "compose_form.save_changes": "Պահպանել փոփոխութիւնները",
   "compose_form.sensitive.hide": "Նշել մեդիան որպէս դիւրազգաց",
   "compose_form.sensitive.marked": "Մեդիան նշուած է որպէս դիւրազգաց",
   "compose_form.sensitive.unmarked": "Մեդիան նշուած չէ որպէս դիւրազգաց",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Դու դեռ ոչ մէկի չես արգելափակել։",
   "empty_column.bookmarked_statuses": "Դու դեռ չունես որեւէ էջանշուած գրառում։ Երբ էջանշես, դրանք կը երեւան այստեղ։",
   "empty_column.community": "Տեղական հոսքը դատարկ է։ Հրապարակային մի բան գրի՛ր շարժիչը գործարկելու համար։",
-  "empty_column.direct": "Դու դեռ չունես ոչ մի հասցէագրուած հաղորդագրութիւն։ Երբ ուղարկես կամ ստանաս որեւէ անձնական նամակ, այն այստեղ կերեւայ։",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Թաքցուած տիրոյթներ դեռ չկան։",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Դու դեռ չունես որեւէ հաւանած գրառում։ Երբ հաւանես, դրանք կերեւան այստեղ։",
@@ -189,7 +189,7 @@
   "errors.unexpected_crash.report_issue": "Զեկուցել խնդրի մասին",
   "explore.search_results": "Որոնման արդիւնքներ",
   "explore.suggested_follows": "Ձեզ համար",
-  "explore.title": "Explore",
+  "explore.title": "Բացայայտել",
   "explore.trending_links": "Նորութիւններ",
   "explore.trending_statuses": "Գրառումներ",
   "explore.trending_tags": "Պիտակներ",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "տարածելու համար",
   "keyboard_shortcuts.column": "սիւներից մէկի վրայ սեւեռուելու համար",
   "keyboard_shortcuts.compose": "շարադրման տիրոյթին սեւեռուելու համար",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Նկարագրութիւն",
-  "keyboard_shortcuts.direct": "հասցէագրուած գրուածքների հոսքը բացելու համար",
   "keyboard_shortcuts.down": "ցանկով ներքեւ շարժուելու համար",
   "keyboard_shortcuts.enter": "Գրառումը բացելու համար",
   "keyboard_shortcuts.favourite": "հաւանելու համար",
@@ -290,11 +290,10 @@
   "navigation_bar.bookmarks": "Էջանիշեր",
   "navigation_bar.community_timeline": "Տեղական հոսք",
   "navigation_bar.compose": "Ստեղծել նոր գրառում",
-  "navigation_bar.direct": "Հասցէագրուած",
   "navigation_bar.discover": "Բացայայտել",
   "navigation_bar.domain_blocks": "Թաքցուած տիրոյթներ",
   "navigation_bar.edit_profile": "Խմբագրել անձնական էջը",
-  "navigation_bar.explore": "Explore",
+  "navigation_bar.explore": "Բացայայտել",
   "navigation_bar.favourites": "Հաւանածներ",
   "navigation_bar.filters": "Լռեցուած բառեր",
   "navigation_bar.follow_requests": "Հետեւելու հայցեր",
@@ -309,7 +308,7 @@
   "navigation_bar.preferences": "Նախապատուութիւններ",
   "navigation_bar.public_timeline": "Դաշնային հոսք",
   "navigation_bar.security": "Անվտանգութիւն",
-  "notification.admin.sign_up": "{name} signed up",
+  "notification.admin.sign_up": "{name}-ը գրանցուած է",
   "notification.favourite": "{name} հաւանեց գրառումդ",
   "notification.follow": "{name} սկսեց հետեւել քեզ",
   "notification.follow_request": "{name} քեզ հետեւելու հայց է ուղարկել",
@@ -318,10 +317,10 @@
   "notification.poll": "Հարցումը, ուր դու քուէարկել ես, աւարտուեց։",
   "notification.reblog": "{name} տարածեց գրառումդ",
   "notification.status": "{name} հենց նոր գրառում արեց",
-  "notification.update": "{name} edited a post",
+  "notification.update": "{name}-ը փոխել է գրառումը",
   "notifications.clear": "Մաքրել ծանուցումները",
   "notifications.clear_confirmation": "Վստա՞հ ես, որ ուզում ես մշտապէս մաքրել քո բոլոր ծանուցումները։",
-  "notifications.column_settings.admin.sign_up": "New sign-ups:",
+  "notifications.column_settings.admin.sign_up": "Նոր գրանցումներ՝",
   "notifications.column_settings.alert": "Աշխատատիրոյթի ծանուցումներ",
   "notifications.column_settings.favourite": "Հաւանածներից՝",
   "notifications.column_settings.filter_bar.advanced": "Ցուցադրել բոլոր կատեգորիաները",
@@ -338,7 +337,7 @@
   "notifications.column_settings.status": "Նոր գրառումներ։",
   "notifications.column_settings.unread_notifications.category": "Չկարդացուած ծանուցումներ",
   "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
-  "notifications.column_settings.update": "Edits:",
+  "notifications.column_settings.update": "Խմբագրածներ՝",
   "notifications.filter.all": "Բոլորը",
   "notifications.filter.boosts": "Տարածածները",
   "notifications.filter.favourites": "Հաւանածները",
@@ -362,55 +361,55 @@
   "poll.total_votes": "{count, plural, one {# ձայն} other {# ձայն}}",
   "poll.vote": "Քուէարկել",
   "poll.voted": "Դու քուէարկել ես այս տարբերակի համար",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, one {# ձայն} other {# ձայն}}",
   "poll_button.add_poll": "Աւելացնել հարցում",
   "poll_button.remove_poll": "Հեռացնել հարցումը",
   "privacy.change": "Կարգաւորել գրառման գաղտնիութիւնը",
   "privacy.direct.long": "Կը տեսնեն միայն նշուած օգտատէրերը",
-  "privacy.direct.short": "Հասցէագրուած",
+  "privacy.direct.short": "Միայն նշածս մարդիկ",
   "privacy.private.long": "Կը տեսնեն միայն հետեւորդները",
-  "privacy.private.short": "Միայն հետեւողներին",
-  "privacy.public.long": "Կը տեսնեն բոլոր,  հրապարակային հոսքում",
+  "privacy.private.short": "Միայն հետեւողները",
+  "privacy.public.long": "Տեսանելի բոլորին",
   "privacy.public.short": "Հրապարակային",
-  "privacy.unlisted.long": "Կը տեսնեն բոլոր,  բայց ոչ հրապարակային հոսքում",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Ծածուկ",
   "refresh": "Թարմացնել",
   "regeneration_indicator.label": "Բեռնւում է…",
   "regeneration_indicator.sublabel": "պատրաստւում է հիմնական հոսքդ",
   "relative_time.days": "{number}օր",
-  "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
-  "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
-  "relative_time.full.just_now": "just now",
-  "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
+  "relative_time.full.days": "{number, plural, one {# օր} other {# օր}} առաջ",
+  "relative_time.full.hours": "{number, plural, one {# ժամ} other {# ժամ}} առաջ",
+  "relative_time.full.just_now": "հէնց նոր",
+  "relative_time.full.minutes": "{number, plural, one {# րոպէ} other {# րոպէ}} առաջ",
+  "relative_time.full.seconds": "{number, plural, one {# վայրկեան} other {# վայրկեան}} առաջ",
   "relative_time.hours": "{number}ժ",
   "relative_time.just_now": "նոր",
   "relative_time.minutes": "{number}ր",
   "relative_time.seconds": "{number}վ",
   "relative_time.today": "Այսօր",
   "reply_indicator.cancel": "Չեղարկել",
-  "report.block": "Block",
+  "report.block": "Արգելափակել",
   "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
-  "report.categories.other": "Other",
-  "report.categories.spam": "Spam",
+  "report.categories.other": "Այլ",
+  "report.categories.spam": "Սպամ",
   "report.categories.violation": "Content violates one or more server rules",
   "report.category.subtitle": "Choose the best match",
   "report.category.title": "Tell us what's going on with this {type}",
-  "report.category.title_account": "profile",
-  "report.category.title_status": "post",
-  "report.close": "Done",
+  "report.category.title_account": "հաշիւ",
+  "report.category.title_status": "գրառում",
+  "report.close": "Աւարտել",
   "report.comment.title": "Is there anything else you think we should know?",
   "report.forward": "Փոխանցել {target}֊ին",
   "report.forward_hint": "Այս հաշիւ այլ հանգոյցից է։ Ուղարկե՞մ այնտեղ էլ այս բողոքի անոնիմ պատճէնը։",
-  "report.mute": "Mute",
+  "report.mute": "Լռեցնել",
   "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
-  "report.next": "Next",
+  "report.next": "Յաջորդ",
   "report.placeholder": "Լրացուցիչ մեկնաբանութիւններ",
-  "report.reasons.dislike": "I don't like it",
+  "report.reasons.dislike": "Ինձ դուր չի գալիս",
   "report.reasons.dislike_description": "It is not something you want to see",
-  "report.reasons.other": "It's something else",
+  "report.reasons.other": "Այլ բան է",
   "report.reasons.other_description": "The issue does not fit into other categories",
-  "report.reasons.spam": "It's spam",
+  "report.reasons.spam": "Սպամ է",
   "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
   "report.reasons.violation": "It violates server rules",
   "report.reasons.violation_description": "You are aware that it breaks specific rules",
@@ -500,7 +499,7 @@
   "time_remaining.moments": "Մնացել է մի քանի վարկեան",
   "time_remaining.seconds": "{number, plural, one {# վարկեան} other {# վարկեան}} անց",
   "timeline_hint.remote_resource_not_displayed": "{resource} այլ սպասարկիչներից չեն ցուցադրվել:",
-  "timeline_hint.resources.followers": "Հետևորդներ",
+  "timeline_hint.resources.followers": "Հետեւորդ",
   "timeline_hint.resources.follows": "Հետեւել",
   "timeline_hint.resources.statuses": "Հին գրառումներ",
   "trends.counter_by_accounts": "{count, plural, one {{counter} մարդ} other {{counter} մարդիկ}} խօսում են",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index 04366f1f8..c093688e4 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -70,7 +70,7 @@
   "column.blocks": "Pengguna yang diblokir",
   "column.bookmarks": "Markah",
   "column.community": "Linimasa Lokal",
-  "column.direct": "Pesan langsung",
+  "column.conversations": "Percakapan",
   "column.directory": "Jelajahi profil",
   "column.domain_blocks": "Topik tersembunyi",
   "column.favourites": "Favorit",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Hanya lokal",
   "community.column_settings.media_only": "Hanya media",
   "community.column_settings.remote_only": "Hanya jarak jauh",
-  "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Pelajari selengkapnya",
+  "compose_form.encryption_warning": "Kiriman di Mastodon tidak dienkripsi end-to-end. Jangan bagikan informasi rahasial melalui Mastodon.",
   "compose_form.hashtag_warning": "Toot ini tidak akan ada dalam daftar tagar manapun karena telah diatur sebagai tidak terdaftar. Hanya postingan publik yang bisa dicari dengan tagar.",
   "compose_form.lock_disclaimer": "Akun anda tidak {locked}. Semua orang dapat mengikuti anda untuk melihat postingan khusus untuk pengikut anda.",
   "compose_form.lock_disclaimer.lock": "terkunci",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Anda belum memblokir siapapun.",
   "empty_column.bookmarked_statuses": "Anda belum memiliki toot termarkah. Saat Anda menandainya sebagai markah, ia akan muncul di sini.",
   "empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!",
-  "empty_column.direct": "Anda belum memiliki pesan langsung. Ketika Anda mengirim atau menerimanya, maka akan muncul di sini.",
+  "empty_column.conversations": "Saat Anda mengirim atau menerima kiriman yang hanya terlihat oleh orang yang disebutkan, itu akan muncul di sini.",
   "empty_column.domain_blocks": "Tidak ada topik tersembunyi.",
   "empty_column.explore_statuses": "Tidak ada yang sedang tren pada saat ini. Silakan mengecek lagi nanti!",
   "empty_column.favourited_statuses": "Anda belum memiliki toot favorit. Ketika Anda mengirim atau menerimanya, maka akan muncul di sini.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "untuk menyebarkan",
   "keyboard_shortcuts.column": "untuk fokus kepada sebuah status di sebuah kolom",
   "keyboard_shortcuts.compose": "untuk fokus ke area penulisan",
+  "keyboard_shortcuts.conversations": "untuk membuka kolom percakapan",
   "keyboard_shortcuts.description": "Deskripsi",
-  "keyboard_shortcuts.direct": "buka kolom pesan langsung",
   "keyboard_shortcuts.down": "untuk pindah ke bawah dalam sebuah daftar",
   "keyboard_shortcuts.enter": "untuk membuka status",
   "keyboard_shortcuts.favourite": "untuk memfavoritkan",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Markah",
   "navigation_bar.community_timeline": "Linimasa lokal",
   "navigation_bar.compose": "Tulis toot baru",
-  "navigation_bar.direct": "Pesan langsung",
   "navigation_bar.discover": "Temukan",
   "navigation_bar.domain_blocks": "Domain tersembunyi",
   "navigation_bar.edit_profile": "Ubah profil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Hapus japat",
   "privacy.change": "Tentukan privasi status",
   "privacy.direct.long": "Kirim hanya ke pengguna yang disebut",
-  "privacy.direct.short": "Langsung",
+  "privacy.direct.short": "Hanya orang yang saya sebut",
   "privacy.private.long": "Kirim postingan hanya kepada pengikut",
-  "privacy.private.short": "Pribadi",
-  "privacy.public.long": "Kirim ke linimasa publik",
+  "privacy.private.short": "Pengikut saja",
+  "privacy.public.long": "Terlihat oleh semua",
   "privacy.public.short": "Publik",
-  "privacy.unlisted.long": "Tidak ditampilkan di linimasa publik",
+  "privacy.unlisted.long": "Terlihat oleh semua, tapi jangan tampilkan di fitur jelajah",
   "privacy.unlisted.short": "Tak Terdaftar",
   "refresh": "Segarkan",
   "regeneration_indicator.label": "Memuat…",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 2ffee1eb2..d0ce09335 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -1,76 +1,76 @@
 {
-  "account.account_note_header": "Note",
-  "account.add_or_remove_from_list": "Add or Remove from lists",
-  "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
+  "account.account_note_header": "Noto",
+  "account.add_or_remove_from_list": "Insertez o removez de listi",
+  "account.badges.bot": "Boto",
+  "account.badges.group": "Grupo",
   "account.block": "Blokusar @{name}",
   "account.block_domain": "Hide everything from {domain}",
-  "account.blocked": "Blocked",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
-  "account.cancel_follow_request": "Cancel follow request",
+  "account.blocked": "Restriktita",
+  "account.browse_more_on_origin_server": "Videz plu che originala profilo",
+  "account.cancel_follow_request": "Removez sequodemando",
   "account.direct": "Direct Message @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Cesez avizar me kande @{name} postas",
   "account.domain_blocked": "Domain hidden",
   "account.edit_profile": "Modifikar profilo",
-  "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Feature on profile",
+  "account.enable_notifications": "Avizez me kande @{name} postas",
+  "account.endorse": "Traito di profilo",
   "account.follow": "Sequar",
   "account.followers": "Sequanti",
-  "account.followers.empty": "No one follows this user yet.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following": "Following",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
-  "account.follows.empty": "This user doesn't follow anyone yet.",
+  "account.followers.empty": "Nulu sequas ca uzanto til nun.",
+  "account.followers_counter": "{count, plural, one {{counter} Sequanto} other {{counter} Sequanti}}",
+  "account.following": "Sequata",
+  "account.following_counter": "{count, plural, one {{counter} Sequas} other {{counter} Sequanti}}",
+  "account.follows.empty": "Ca uzanto ne sequa irgu til nun.",
   "account.follows_you": "Sequas tu",
-  "account.hide_reblogs": "Hide boosts from @{name}",
-  "account.joined": "Joined {date}",
-  "account.link_verified_on": "Ownership of this link was checked on {date}",
-  "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
-  "account.media": "Media",
+  "account.hide_reblogs": "Celez busti de @{name}",
+  "account.joined": "Juntas ye {date}",
+  "account.link_verified_on": "Proprieteso di ca ligilo kontrolesis ye {date}",
+  "account.locked_info": "La privatesostaco di ca konto fixesas quale lokata. Proprietato manue kontrolas personi qui povas sequar.",
+  "account.media": "Medio",
   "account.mention": "Mencionar @{name}",
-  "account.moved_to": "{name} has moved to:",
+  "account.moved_to": "{name} movesis a:",
   "account.mute": "Celar @{name}",
-  "account.mute_notifications": "Mute notifications from @{name}",
-  "account.muted": "Muted",
+  "account.mute_notifications": "Silencigez avizi de @{name}",
+  "account.muted": "Silencigata",
   "account.posts": "Mesaji",
   "account.posts_with_replies": "Toots with replies",
   "account.report": "Denuncar @{name}",
   "account.requested": "Vartante aprobo",
-  "account.share": "Share @{name}'s profile",
-  "account.show_reblogs": "Show boosts from @{name}",
+  "account.share": "Partigez profilo di @{name}",
+  "account.show_reblogs": "Montrez busti de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
   "account.unblock": "Desblokusar @{name}",
   "account.unblock_domain": "Unhide {domain}",
-  "account.unblock_short": "Unblock",
-  "account.unendorse": "Don't feature on profile",
+  "account.unblock_short": "Derestriktez",
+  "account.unendorse": "Ne publikigez che profilo",
   "account.unfollow": "Ne plus sequar",
   "account.unmute": "Ne plus celar @{name}",
-  "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account.unmute_short": "Unmute",
+  "account.unmute_notifications": "Desilencigez avizi de @{name}",
+  "account.unmute_short": "Desilencigez",
   "account_note.placeholder": "Click to add a note",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
-  "admin.dashboard.retention.average": "Average",
-  "admin.dashboard.retention.cohort": "Sign-up month",
-  "admin.dashboard.retention.cohort_size": "New users",
-  "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Rate limited",
-  "alert.unexpected.message": "An unexpected error occurred.",
-  "alert.unexpected.title": "Oops!",
-  "announcement.announcement": "Announcement",
-  "attachments_list.unprocessed": "(unprocessed)",
-  "autosuggest_hashtag.per_week": "{count} per week",
+  "admin.dashboard.retention.average": "Averajo",
+  "admin.dashboard.retention.cohort": "Registromonato",
+  "admin.dashboard.retention.cohort_size": "Nova uzanti",
+  "alert.rate_limited.message": "Riprobez pos {retry_time, time, medium}.",
+  "alert.rate_limited.title": "Limitizita multeso",
+  "alert.unexpected.message": "Neexpektita eroro eventis.",
+  "alert.unexpected.title": "Problemo!",
+  "announcement.announcement": "Anunco",
+  "attachments_list.unprocessed": "(neprocedita)",
+  "autosuggest_hashtag.per_week": "{count} dum singla semano",
   "boost_modal.combo": "Tu povas presar sur {combo} por omisar co en la venonta foyo",
-  "bundle_column_error.body": "Something went wrong while loading this component.",
-  "bundle_column_error.retry": "Try again",
-  "bundle_column_error.title": "Network error",
-  "bundle_modal_error.close": "Close",
-  "bundle_modal_error.message": "Something went wrong while loading this component.",
-  "bundle_modal_error.retry": "Try again",
+  "bundle_column_error.body": "Nulo ne functionis dum chargar ca kompozaj.",
+  "bundle_column_error.retry": "Probez itere",
+  "bundle_column_error.title": "Rederor",
+  "bundle_modal_error.close": "Klozez",
+  "bundle_modal_error.message": "Nulo ne functionis dum chargar ca kompozaj.",
+  "bundle_modal_error.retry": "Probez itere",
   "column.blocks": "Blokusita uzeri",
   "column.bookmarks": "Bookmarks",
   "column.community": "Lokala tempolineo",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Hidden domains",
   "column.favourites": "Favorati",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "La lokala tempolineo esas vakua. Skribez ulo publike por iniciar la agiveso!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no hidden domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Lokala tempolineo",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Modifikar profilo",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Remove poll",
   "privacy.change": "Aranjar privateso di mesaji",
   "privacy.direct.long": "Sendar nur a mencionata uzeri",
-  "privacy.direct.short": "Direte",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Sendar nur a sequanti",
-  "privacy.private.short": "Private",
-  "privacy.public.long": "Sendar a publika tempolinei",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Publike",
-  "privacy.unlisted.long": "Ne montrar en publika tempolinei",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Ne enlistigota",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 480562c06..053c18fcf 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -1,7 +1,7 @@
 {
   "account.account_note_header": "Minnispunktur",
   "account.add_or_remove_from_list": "Bæta við eða fjarlægja af listum",
-  "account.badges.bot": "Róbót",
+  "account.badges.bot": "Vélmenni",
   "account.badges.group": "Hópur",
   "account.block": "Loka á @{name}",
   "account.block_domain": "Útiloka lénið {domain}",
@@ -70,8 +70,8 @@
   "column.blocks": "Útilokaðir notendur",
   "column.bookmarks": "Bókamerki",
   "column.community": "Staðvær tímalína",
-  "column.direct": "Bein skilaboð",
-  "column.directory": "Skoða notandasnið",
+  "column.conversations": "Samtöl",
+  "column.directory": "Vafra notandasnið",
   "column.domain_blocks": "Útilokuð lén",
   "column.favourites": "Eftirlæti",
   "column.follow_requests": "Beiðnir um að fylgjast með",
@@ -92,11 +92,11 @@
   "community.column_settings.local_only": "Einungis staðvært",
   "community.column_settings.media_only": "Einungis myndskrár",
   "community.column_settings.remote_only": "Einungis fjartengt",
-  "compose_form.direct_message_warning": "Þessi færsla verður aðeins send á notendur sem minnst er á.",
   "compose_form.direct_message_warning_learn_more": "Kanna nánar",
+  "compose_form.encryption_warning": "Færslur á Mastodon eru ekki enda-í-enda dulritaðar. Ekki deila viðkvæmum upplýsingum á Mastodon.",
   "compose_form.hashtag_warning": "Þessi færsla verður ekki talin með undir nokkru myllumerki þar sem það er óskráð. Einungis er hægt að leita að opinberum færslum eftir myllumerkjum.",
-  "compose_form.lock_disclaimer": "Aðgangurinn þinn er ekki {locked}. Hver sem er getur fylgst með þeim færslum þínum sem einungis eru til fylgjenda þinna.",
-  "compose_form.lock_disclaimer.lock": "læst",
+  "compose_form.lock_disclaimer": "Aðgangurinn þinn er ekki {locked}. Hver sem er getur fylgst með þér til að sjá þær færslur sem einungis eru til fylgjenda þinna.",
+  "compose_form.lock_disclaimer.lock": "læstur",
   "compose_form.placeholder": "Hvað varstu að hugsa?",
   "compose_form.poll.add_option": "Bæta við valkosti",
   "compose_form.poll.duration": "Tímalengd könnunar",
@@ -130,7 +130,7 @@
   "confirmations.mute.confirm": "Þagga",
   "confirmations.mute.explanation": "Þetta mun fela færslur frá þeim og þær færslur þar sem minnst er á þau, en það mun samt sem áður gera þeim kleift að sjá færslurnar þínar og að fylgjast með þér.",
   "confirmations.mute.message": "Ertu viss um að þú viljir þagga niður í {name}?",
-  "confirmations.redraft.confirm": "Eyða og enduvinna drög",
+  "confirmations.redraft.confirm": "Eyða og endurvinna drög",
   "confirmations.redraft.message": "Ertu viss um að þú viljir eyða þessari færslu og enduvinna drögin? Eftirlæti og endurbirtingar munu glatast og svör við upprunalegu færslunni munu verða munaðarlaus.",
   "confirmations.reply.confirm": "Svara",
   "confirmations.reply.message": "Ef þú svarar núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?",
@@ -147,7 +147,7 @@
   "embed.instructions": "Felldu þessa færslu inn í vefsvæðið þitt með því að afrita kóðann hér fyrir neðan.",
   "embed.preview": "Svona mun þetta líta út:",
   "emoji_button.activity": "Virkni",
-  "emoji_button.custom": "Sérsniðið",
+  "emoji_button.custom": "Sérsniðin",
   "emoji_button.flags": "Flögg",
   "emoji_button.food": "Matur og drykkur",
   "emoji_button.label": "Setja inn tjáningartákn",
@@ -155,7 +155,7 @@
   "emoji_button.not_found": "Engin samsvarandi tjáningartákn fundust",
   "emoji_button.objects": "Hlutir",
   "emoji_button.people": "Fólk",
-  "emoji_button.recent": "Oft notað",
+  "emoji_button.recent": "Oft notuð",
   "emoji_button.search": "Leita...",
   "emoji_button.search_results": "Leitarniðurstöður",
   "emoji_button.symbols": "Tákn",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Þú hefur ekki ennþá útilokað neina notendur.",
   "empty_column.bookmarked_statuses": "Þú ert ekki ennþá með neinar bókamerktar færslur. Þegar þú bókamerkir færslu, mun það birtast hér.",
   "empty_column.community": "Staðværa tímalínan er tóm. Skrifaðu eitthvað opinberlega til að láta boltann fara að rúlla!",
-  "empty_column.direct": "Þú átt ennþá engin bein skilaboð. Þegar þú sendir eða tekur á móti slíkum skilaboðum, munu þau birtast hér.",
+  "empty_column.conversations": "Þegar þú hefur sent eða móttekið færslu sem er aðeins sýnileg fólki sem nefnt er í henni þá birtist hún hér.",
   "empty_column.domain_blocks": "Það eru ennþá engin útilokuð lén.",
   "empty_column.explore_statuses": "Ekkert er á uppleið í augnablikinu. Athugaðu aftur síðar!",
   "empty_column.favourited_statuses": "Þú ert ekki ennþá með neinar eftirlætisfærslur. Þegar þú setur færslu í eftirlæti, munu þau birtast hér.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Endurbirta færslu",
   "keyboard_shortcuts.column": "Setja virkni í dálk",
   "keyboard_shortcuts.compose": "Setja virkni á textainnsetningarreit",
+  "keyboard_shortcuts.conversations": "að opna samtalsdálka",
   "keyboard_shortcuts.description": "Lýsing",
-  "keyboard_shortcuts.direct": "Opna dálk með beinum skilaboðum",
   "keyboard_shortcuts.down": "Fara neðar í listanum",
   "keyboard_shortcuts.enter": "Opna færslu",
   "keyboard_shortcuts.favourite": "Eftirlætisfærsla",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bókamerki",
   "navigation_bar.community_timeline": "Staðvær tímalína",
   "navigation_bar.compose": "Semja nýja færslu",
-  "navigation_bar.direct": "Bein skilaboð",
   "navigation_bar.discover": "Uppgötva",
   "navigation_bar.domain_blocks": "Útilokuð lén",
   "navigation_bar.edit_profile": "Breyta notandasniði",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Fjarlægja könnun",
   "privacy.change": "Aðlaga gagnaleynd færslu",
   "privacy.direct.long": "Senda einungis á notendur sem minnst er á",
-  "privacy.direct.short": "Beint",
+  "privacy.direct.short": "Aðeins fólk sem ég minnist á",
   "privacy.private.long": "Senda einungis á fylgjendur",
   "privacy.private.short": "Einungis fylgjendur",
-  "privacy.public.long": "Senda á opinberar tímalínur",
+  "privacy.public.long": "Sýnilegt fyrir alla",
   "privacy.public.short": "Opinbert",
-  "privacy.unlisted.long": "Ekki senda á opinberar tímalínur",
+  "privacy.unlisted.long": "Sýnilegt öllum, en ekki tekið með í uppgötvunareiginleikum",
   "privacy.unlisted.short": "Óskráð",
   "refresh": "Endurlesa",
   "regeneration_indicator.label": "Hleð inn…",
@@ -472,7 +471,7 @@
   "status.reblog_private": "Endurbirta til upphaflegra lesenda",
   "status.reblogged_by": "{name} endurbirti",
   "status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.",
-  "status.redraft": "Eyða og enduvinna drög",
+  "status.redraft": "Eyða og endurvinna drög",
   "status.remove_bookmark": "Fjarlægja bókamerki",
   "status.reply": "Svara",
   "status.replyAll": "Svara þræði",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index f64ca1b5c..8e881e284 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -70,7 +70,7 @@
   "column.blocks": "Utenti bloccati",
   "column.bookmarks": "Segnalibri",
   "column.community": "Timeline locale",
-  "column.direct": "Messaggi diretti",
+  "column.conversations": "Conversazioni",
   "column.directory": "Sfoglia profili",
   "column.domain_blocks": "Domini bloccati",
   "column.favourites": "Preferiti",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Solo Locale",
   "community.column_settings.media_only": "Solo Media",
   "community.column_settings.remote_only": "Solo Remoto",
-  "compose_form.direct_message_warning": "Questo post sarà inviato solo agli utenti menzionati.",
   "compose_form.direct_message_warning_learn_more": "Scopri di più",
+  "compose_form.encryption_warning": "I messaggi su Mastodon non sono crittografati end-to-end. Non condividere alcuna informazione sensibile su Mastodon.",
   "compose_form.hashtag_warning": "Questo post non sarà elencato sotto alcun hashtag poiché senza elenco. Solo i toot pubblici possono essere ricercati per hashtag.",
   "compose_form.lock_disclaimer": "Il tuo profilo non è {locked}. Chiunque può seguirti e vedere le tue pubblicazioni visibili solo dai follower.",
   "compose_form.lock_disclaimer.lock": "bloccato",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Non hai ancora bloccato alcun utente.",
   "empty_column.bookmarked_statuses": "Non hai ancora segnato alcun post. Quando ne segni uno, sarà mostrato qui.",
   "empty_column.community": "La timeline locale è vuota. Condividi qualcosa pubblicamente per dare inizio alla festa!",
-  "empty_column.direct": "Non hai ancora nessun messaggio privato. Quando ne manderai o riceverai qualcuno, apparirà qui.",
+  "empty_column.conversations": "Quando invii o ricevi un post visibile solo alle persone citate in esso, apparirà qui.",
   "empty_column.domain_blocks": "Non vi sono domini nascosti.",
   "empty_column.explore_statuses": "Nulla è in tendenza in questo momento. Riprova più tardi!",
   "empty_column.favourited_statuses": "Non hai ancora segnato nessun post come apprezzato. Quando lo farai, comparirà qui.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Condividi il post",
   "keyboard_shortcuts.column": "per portare il focus su uno status in una delle colonne",
   "keyboard_shortcuts.compose": "per portare il focus nell'area di composizione",
+  "keyboard_shortcuts.conversations": "per aprire la colonna conversazioni",
   "keyboard_shortcuts.description": "Descrizione",
-  "keyboard_shortcuts.direct": "per aprire la colonna dei messaggi diretti",
   "keyboard_shortcuts.down": "Spostati in basso nella lista",
   "keyboard_shortcuts.enter": "Apri il post",
   "keyboard_shortcuts.favourite": "Apprezza post",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Segnalibri",
   "navigation_bar.community_timeline": "Timeline locale",
   "navigation_bar.compose": "Componi nuovo toot",
-  "navigation_bar.direct": "Messaggi diretti",
   "navigation_bar.discover": "Scopri",
   "navigation_bar.domain_blocks": "Domini nascosti",
   "navigation_bar.edit_profile": "Modifica profilo",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Rimuovi sondaggio",
   "privacy.change": "Modifica privacy del post",
   "privacy.direct.long": "Invia solo a utenti menzionati",
-  "privacy.direct.short": "Diretto in privato",
+  "privacy.direct.short": "Solo le persone che menziono",
   "privacy.private.long": "Invia solo ai follower",
-  "privacy.private.short": "Privato",
-  "privacy.public.long": "Invia alla timeline pubblica",
+  "privacy.private.short": "Solo i seguaci",
+  "privacy.public.long": "Visibile a tutti",
   "privacy.public.short": "Pubblico",
-  "privacy.unlisted.long": "Non mostrare sulla timeline pubblica",
+  "privacy.unlisted.long": "Visibile a tutti, ma escluso dalle funzioni di scoperta",
   "privacy.unlisted.short": "Non elencato",
   "refresh": "Aggiorna",
   "regeneration_indicator.label": "Caricamento in corso…",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index 549e3c813..075acab5d 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "リモートで表示",
   "account.cancel_follow_request": "フォローリクエストを取り消す",
   "account.direct": "@{name}さんにダイレクトメッセージ",
-  "account.disable_notifications": "@{name} の投稿時の通知を停止",
+  "account.disable_notifications": "@{name}さんの投稿時の通知を停止",
   "account.domain_blocked": "ドメインブロック中",
   "account.edit_profile": "プロフィール編集",
-  "account.enable_notifications": "@{name} の投稿時に通知",
+  "account.enable_notifications": "@{name}さんの投稿時に通知",
   "account.endorse": "プロフィールで紹介する",
   "account.follow": "フォロー",
   "account.followers": "フォロワー",
@@ -27,7 +27,7 @@
   "account.link_verified_on": "このリンクの所有権は{date}に確認されました",
   "account.locked_info": "このアカウントは承認制アカウントです。相手が承認するまでフォローは完了しません。",
   "account.media": "メディア",
-  "account.mention": "@{name}さんに投稿",
+  "account.mention": "@{name}さんにメンション",
   "account.moved_to": "{name}さんは引っ越しました:",
   "account.mute": "@{name}さんをミュート",
   "account.mute_notifications": "@{name}さんからの通知を受け取らない",
@@ -70,7 +70,7 @@
   "column.blocks": "ブロックしたユーザー",
   "column.bookmarks": "ブックマーク",
   "column.community": "ローカルタイムライン",
-  "column.direct": "ダイレクトメッセージ",
+  "column.conversations": "会話",
   "column.directory": "ディレクトリ",
   "column.domain_blocks": "ブロックしたドメイン",
   "column.favourites": "お気に入り",
@@ -96,8 +96,8 @@
   "community.column_settings.local_only": "ローカルのみ表示",
   "community.column_settings.media_only": "メディアのみ表示",
   "community.column_settings.remote_only": "リモートのみ表示",
-  "compose_form.direct_message_warning": "この投稿はメンションされた人にのみ送信されます。",
   "compose_form.direct_message_warning_learn_more": "もっと詳しく",
+  "compose_form.encryption_warning": "Mastodonの投稿はエンドツーエンド暗号化に対応していません。安全に送受信されるべき情報をMastodonで共有しないでください。",
   "compose_form.hashtag_warning": "この投稿は公開設定ではないのでハッシュタグの一覧に表示されません。公開投稿だけがハッシュタグで検索できます。",
   "compose_form.lock_disclaimer": "あなたのアカウントは{locked}になっていません。誰でもあなたをフォローすることができ、フォロワー限定の投稿を見ることができます。",
   "compose_form.lock_disclaimer.lock": "承認制",
@@ -170,7 +170,7 @@
   "empty_column.blocks": "まだ誰もブロックしていません。",
   "empty_column.bookmarked_statuses": "まだ何もブックマーク登録していません。ブックマーク登録するとここに表示されます。",
   "empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!",
-  "empty_column.direct": "ダイレクトメッセージはまだありません。ダイレクトメッセージをやりとりすると、ここに表示されます。",
+  "empty_column.conversations": "メンションした相手にだけ表示されるメッセージを一度でも送受信した場合、ここに表示されます。",
   "empty_column.domain_blocks": "ブロックしているドメインはありません。",
   "empty_column.explore_statuses": "まだ何もありません。後で確認してください。",
   "empty_column.favourited_statuses": "まだ何もお気に入り登録していません。お気に入り登録するとここに表示されます。",
@@ -202,18 +202,18 @@
   "follow_recommendations.lead": "あなたがフォローしている人の投稿は、ホームフィードに時系列で表示されます。いつでも簡単に解除できるので、気軽にフォローしてみてください!",
   "follow_request.authorize": "許可",
   "follow_request.reject": "拒否",
-  "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain} のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。",
+  "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain}のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。",
   "generic.saved": "保存しました",
   "getting_started.developers": "開発",
   "getting_started.directory": "ディレクトリ",
   "getting_started.documentation": "ドキュメント",
   "getting_started.heading": "スタート",
   "getting_started.invite": "招待",
-  "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ( {github} ) から開発に参加したり、問題を報告したりできます。",
+  "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ({github}) から開発に参加したり、問題を報告したりできます。",
   "getting_started.security": "アカウント設定",
   "getting_started.terms": "プライバシーポリシー",
-  "hashtag.column_header.tag_mode.all": "と {additional}",
-  "hashtag.column_header.tag_mode.any": "か {additional}",
+  "hashtag.column_header.tag_mode.all": "と{additional}",
+  "hashtag.column_header.tag_mode.any": "か{additional}",
   "hashtag.column_header.tag_mode.none": "({additional} を除く)",
   "hashtag.column_settings.select.no_options_message": "提案はありません",
   "hashtag.column_settings.select.placeholder": "ハッシュタグを入力してください…",
@@ -234,8 +234,8 @@
   "keyboard_shortcuts.boost": "ブースト",
   "keyboard_shortcuts.column": "左からn番目のカラムの最新に移動",
   "keyboard_shortcuts.compose": "投稿の入力欄に移動",
+  "keyboard_shortcuts.conversations": "会話カラムを開く",
   "keyboard_shortcuts.description": "説明",
-  "keyboard_shortcuts.direct": "ダイレクトメッセージのカラムを開く",
   "keyboard_shortcuts.down": "カラム内一つ下に移動",
   "keyboard_shortcuts.enter": "投稿の詳細を表示",
   "keyboard_shortcuts.favourite": "お気に入り",
@@ -281,7 +281,7 @@
   "lists.replies_policy.title": "リプライを表示:",
   "lists.search": "フォローしている人の中から検索",
   "lists.subheading": "あなたのリスト",
-  "load_pending": "{count} 件の新着",
+  "load_pending": "{count}件の新着",
   "loading_indicator.label": "読み込み中...",
   "media_gallery.toggle_visible": "メディアを隠す",
   "missing_indicator.label": "見つかりません",
@@ -294,7 +294,6 @@
   "navigation_bar.bookmarks": "ブックマーク",
   "navigation_bar.community_timeline": "ローカルタイムライン",
   "navigation_bar.compose": "投稿の新規作成",
-  "navigation_bar.direct": "ダイレクトメッセージ",
   "navigation_bar.discover": "見つける",
   "navigation_bar.domain_blocks": "ブロックしたドメイン",
   "navigation_bar.edit_profile": "プロフィールを編集",
@@ -304,7 +303,7 @@
   "navigation_bar.follow_requests": "フォローリクエスト",
   "navigation_bar.follows_and_followers": "フォロー・フォロワー",
   "navigation_bar.info": "このサーバーについて",
-  "navigation_bar.keyboard_shortcuts": "ホットキー",
+  "navigation_bar.keyboard_shortcuts": "キーボードショートカット",
   "navigation_bar.lists": "リスト",
   "navigation_bar.logout": "ログアウト",
   "navigation_bar.mutes": "ミュートしたユーザー",
@@ -314,16 +313,16 @@
   "navigation_bar.public_timeline": "連合タイムライン",
   "navigation_bar.misc": "その他",
   "navigation_bar.security": "セキュリティ",
-  "notification.admin.sign_up": "{name} がサインアップしました",
+  "notification.admin.sign_up": "{name}さんがサインアップしました",
   "notification.favourite": "{name}さんがあなたの投稿をお気に入りに登録しました",
   "notification.follow": "{name}さんにフォローされました",
-  "notification.follow_request": "{name} さんがあなたにフォローリクエストしました",
+  "notification.follow_request": "{name}さんがあなたにフォローリクエストしました",
   "notification.mention": "{name}さんがあなたに返信しました",
   "notification.own_poll": "アンケートが終了しました",
   "notification.poll": "アンケートが終了しました",
   "notification.reblog": "{name}さんがあなたの投稿をブーストしました",
   "notification.status": "{name}さんが投稿しました",
-  "notification.update": "{name} が投稿を編集しました",
+  "notification.update": "{name}さんが投稿を編集しました",
   "notifications.clear": "通知を消去",
   "notifications.clear_confirmation": "本当に通知を消去しますか?",
   "notifications.column_settings.admin.sign_up": "新規登録:",
@@ -352,13 +351,13 @@
   "notifications.filter.polls": "アンケート結果",
   "notifications.filter.statuses": "フォローしている人の新着情報",
   "notifications.grant_permission": "権限の付与",
-  "notifications.group": "{count} 件の通知",
+  "notifications.group": "{count}件の通知",
   "notifications.mark_as_read": "すべて既読にする",
   "notifications.permission_denied": "ブラウザの通知が拒否されているためデスクトップ通知は利用できません",
   "notifications.permission_denied_alert": "ブラウザの通知が拒否されているためデスクトップ通知を有効にできません",
   "notifications.permission_required": "必要な権限が付与されていないため、デスクトップ通知は利用できません。",
   "notifications_permission_banner.enable": "デスクトップ通知を有効にする",
-  "notifications_permission_banner.how_to_control": "Mastodon を閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {icon} ボタンから通知の内容を細かくカスタマイズできます。",
+  "notifications_permission_banner.how_to_control": "Mastodonを閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {icon} ボタンから通知の内容を細かくカスタマイズできます。",
   "notifications_permission_banner.title": "お見逃しなく",
   "picture_in_picture.restore": "元に戻す",
   "poll.closed": "終了",
@@ -372,22 +371,22 @@
   "poll_button.remove_poll": "アンケートを削除",
   "privacy.change": "公開範囲を変更",
   "privacy.direct.long": "送信した相手のみ閲覧可",
-  "privacy.direct.short": "ダイレクト",
+  "privacy.direct.short": "メンションした相手のみ",
   "privacy.private.long": "フォロワーのみ閲覧可",
-  "privacy.private.short": "フォロワー限定",
-  "privacy.public.long": "誰でも閲覧可、公開TLに表示",
+  "privacy.private.short": "フォロワーのみ",
+  "privacy.public.long": "誰でも閲覧可",
   "privacy.public.short": "公開",
-  "privacy.unlisted.long": "誰でも閲覧可、公開TLに非表示",
+  "privacy.unlisted.long": "誰でも閲覧可、サイレント",
   "privacy.unlisted.short": "未収載",
   "refresh": "更新",
   "regeneration_indicator.label": "読み込み中…",
   "regeneration_indicator.sublabel": "ホームタイムラインは準備中です!",
   "relative_time.days": "{number}日前",
-  "relative_time.full.days": "{number} 日前",
-  "relative_time.full.hours": "{number} 時間前",
+  "relative_time.full.days": "{number}日前",
+  "relative_time.full.hours": "{number}時間前",
   "relative_time.full.just_now": "今",
-  "relative_time.full.minutes": "{number} 分前",
-  "relative_time.full.seconds": "{number} 秒前",
+  "relative_time.full.minutes": "{number}分前",
+  "relative_time.full.seconds": "{number}秒前",
   "relative_time.hours": "{number}時間前",
   "relative_time.just_now": "今",
   "relative_time.minutes": "{number}分前",
@@ -405,7 +404,7 @@
   "report.category.title_status": "投稿",
   "report.close": "完了",
   "report.comment.title": "その他に私たちに伝えておくべき事はありますか?",
-  "report.forward": "{target} に転送する",
+  "report.forward": "{target}に転送する",
   "report.forward_hint": "このアカウントは別のサーバーに所属しています。通報内容を匿名で転送しますか?",
   "report.mute": "ミュート",
   "report.mute_explanation": "相手の投稿は表示されなくなります。相手は引き続きあなたをフォローして、あなたの投稿を表示することができますが、ミュートされていることはわかりません。",
@@ -426,10 +425,10 @@
   "report.submit": "通報する",
   "report.target": "{target}さんを通報する",
   "report.thanks.take_action": "次のような方法はいかがでしょうか?",
-  "report.thanks.take_action_actionable": "私達が確認している間でも、あなたは @{name} さんに対して対応することが出来ます:",
+  "report.thanks.take_action_actionable": "私達が確認している間でも、あなたは@{name}さんに対して対応することが出来ます:",
   "report.thanks.title": "見えないようにしたいですか?",
   "report.thanks.title_actionable": "ご報告ありがとうございます、追って確認します。",
-  "report.unfollow": "@{name}のフォローを解除",
+  "report.unfollow": "@{name}さんのフォローを解除",
   "report.unfollow_explanation": "このアカウントをフォローしています。ホームフィードに彼らの投稿を表示しないようにするには、彼らのフォローを外してください。",
   "search.placeholder": "検索",
   "search_popout.search_format": "高度な検索フォーマット",
@@ -445,7 +444,7 @@
   "search_results.statuses": "投稿",
   "search_results.statuses_fts_disabled": "このサーバーでは投稿本文の検索は利用できません。",
   "search_results.total": "{count, number}件の結果",
-  "status.admin_account": "@{name} のモデレーション画面を開く",
+  "status.admin_account": "@{name}さんのモデレーション画面を開く",
   "status.admin_status": "この投稿をモデレーション画面で開く",
   "status.block": "@{name}さんをブロック",
   "status.bookmark": "ブックマーク",
@@ -456,13 +455,13 @@
   "status.detailed_status": "詳細な会話ビュー",
   "status.direct": "@{name}さんにダイレクトメッセージ",
   "status.edit": "編集",
-  "status.edited": "{date} 編集済み",
-  "status.edited_x_times": "{count} 回編集",
+  "status.edited": "{date}に編集",
+  "status.edited_x_times": "{count}回編集",
   "status.embed": "埋め込み",
   "status.favourite": "お気に入り",
   "status.filtered": "フィルターされました",
-  "status.history.created": "{name}さんが {date} に作成",
-  "status.history.edited": "{name}さんが {date} に編集",
+  "status.history.created": "{name}さんが{date}に作成",
+  "status.history.edited": "{name}さんが{date}に編集",
   "status.load_more": "もっと見る",
   "status.media_hidden": "非表示のメディア",
   "status.mention": "@{name}さんに投稿",
@@ -508,7 +507,7 @@
   "timeline_hint.resources.followers": "フォロワー",
   "timeline_hint.resources.follows": "フォロー",
   "timeline_hint.resources.statuses": "以前の投稿",
-  "trends.counter_by_accounts": "{counter} 人が投稿",
+  "trends.counter_by_accounts": "{counter}人が投稿",
   "trends.trending_now": "トレンドタグ",
   "ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。",
   "units.short.billion": "{count}B",
@@ -518,7 +517,7 @@
   "upload_button.label": "メディアを追加 (複数の画像または1つの動画か音声ファイル)",
   "upload_error.limit": "アップロードできる上限を超えています。",
   "upload_error.poll": "アンケートではファイルをアップロードできません。",
-  "upload_form.audio_description": "聴取が難しいユーザーへの説明",
+  "upload_form.audio_description": "聴き取りが難しいユーザーへの説明",
   "upload_form.description": "閲覧が難しいユーザーへの説明",
   "upload_form.description_missing": "説明を追加していません",
   "upload_form.edit": "説明",
@@ -533,7 +532,7 @@
   "upload_modal.detect_text": "画像からテキストを検出",
   "upload_modal.edit_media": "メディアを編集",
   "upload_modal.hint": "サムネイルの焦点にしたい場所をクリックするか円形の枠をその場所にドラッグしてください。",
-  "upload_modal.preparing_ocr": "OCR の準備中…",
+  "upload_modal.preparing_ocr": "OCRの準備中…",
   "upload_modal.preview_label": "プレビュー ({ratio})",
   "upload_progress.label": "アップロード中...",
   "video.close": "動画を閉じる",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index a0a2b821d..6b5fa5c97 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -70,7 +70,7 @@
   "column.blocks": "დაბლოკილი მომხმარებლები",
   "column.bookmarks": "Bookmarks",
   "column.community": "ლოკალური თაიმლაინი",
-  "column.direct": "პირდაპირი წერილები",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "დამალული დომენები",
   "column.favourites": "ფავორიტები",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "მხოლოდ მედია",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "ეს ტუტი გაეგზავნება მხოლოდ ნახსენებ მომხმარებლებს.",
   "compose_form.direct_message_warning_learn_more": "გაიგე მეტი",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "ეს ტუტი არ მოექცევა ჰეშტეგების ქვეს, რამეთუ ის არაა მითითებული. მხოლოდ ღია ტუტები მოიძებნება ჰეშტეგით.",
   "compose_form.lock_disclaimer": "თქვენი ანგარიში არაა {locked}. ნებისმიერს შეიძლია გამოგყვეთ, რომ იხილოს თქვენი მიმდევრებზე გათვლილი პოსტები.",
   "compose_form.lock_disclaimer.lock": "ჩაკეტილი",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "ლოკალური თაიმლაინი ცარიელია. დაწერეთ რაიმე ღიად ან ქენით რაიმე სხვა!",
-  "empty_column.direct": "ჯერ პირდაპირი წერილები არ გაქვთ. როდესაც მიიღებთ ან გააგზავნით, გამოჩნდება აქ.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no hidden domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "დასაბუსტად",
   "keyboard_shortcuts.column": "ერთ-ერთი სვეტში სტატუსზე ფოკუსირებისთვის",
   "keyboard_shortcuts.compose": "შედგენის ტექსტ-არეაზე ფოკუსირებისთვის",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "აღწერილობა",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "სიაში ქვემოთ გადასაადგილებლად",
   "keyboard_shortcuts.enter": "სტატუსის გასახსნელად",
   "keyboard_shortcuts.favourite": "ფავორიტად ქცევისთვის",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "ლოკალური თაიმლაინი",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "პირდაპირი წერილები",
   "navigation_bar.discover": "აღმოაჩინე",
   "navigation_bar.domain_blocks": "დამალული დომენები",
   "navigation_bar.edit_profile": "შეცვალე პროფილი",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Remove poll",
   "privacy.change": "სტატუსის კონფიდენციალურობის მითითება",
   "privacy.direct.long": "დაიპოსტოს მხოლოდ დასახელებულ მომხმარებლებთან",
-  "privacy.direct.short": "პირდაპირი",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "დაიპოსტოს მხოლოდ მიმდევრებთან",
-  "privacy.private.short": "მხოლოდ-მიმდევრებისთვის",
-  "privacy.public.long": "დაიპოსტოს საჯარო თაიმლაინებზე",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "საჯარო",
-  "privacy.unlisted.long": "არ დაიპოსტოს საჯარო თაიმლაინებზე",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "ჩამოუთვლელი",
   "refresh": "Refresh",
   "regeneration_indicator.label": "იტვირთება…",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index b6628332e..48a1d6fa8 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -70,7 +70,7 @@
   "column.blocks": "Imiḍanen yettusḥebsen",
   "column.bookmarks": "Ticraḍ",
   "column.community": "Tasuddemt tadigant",
-  "column.direct": "Iznan usriden",
+  "column.conversations": "Conversations",
   "column.directory": "Inig deg imaɣnuten",
   "column.domain_blocks": "Taɣulin yeffren",
   "column.favourites": "Ismenyifen",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Adigan kan",
   "community.column_settings.media_only": "Allal n teywalt kan",
   "community.column_settings.remote_only": "Anmeggag kan",
-  "compose_form.direct_message_warning": "Tajewwaqt-a ad d-tettwasken kan i yimseqdacen i d-yettwabedren.",
   "compose_form.direct_message_warning_learn_more": "Issin ugar",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Amiḍan-ik ur yelli ara {locked}. Menwala yezmer ad k-yeḍfeṛ akken ad iẓer acu tbeṭṭuḍ akked yimeḍfaṛen-ik.",
   "compose_form.lock_disclaimer.lock": "yettwacekkel",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ur tesḥebseḍ ula yiwen n umseqdac ar tura.",
   "empty_column.bookmarked_statuses": "Ulac tijewwaqin i terniḍ ɣer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.",
   "empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!",
-  "empty_column.direct": "Ulac ɣur-k ula yiwen n yizen usrid. Ad d-yettwasken da, ticki tuzneḍ neɣ teṭṭfeḍ-d yiwen.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Ulac kra n taɣult yettwaffren ar tura.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Ulac ula yiwet n tjewwaqt deg yismenyifen-ik ar tura. Ticki Tella-d yiwet, ad d-ban da.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "i beṭṭu tikelt-nniḍen",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Aglam",
-  "keyboard_shortcuts.direct": "akken ad teldiḍ ajgu n yiznan usriden",
   "keyboard_shortcuts.down": "i kennu ɣer wadda n tebdart",
   "keyboard_shortcuts.enter": "i tildin n tsuffeɣt",
   "keyboard_shortcuts.favourite": "akken ad ternuḍ ɣer yismenyifen",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Ticraḍ",
   "navigation_bar.community_timeline": "Tasuddemt tadigant",
   "navigation_bar.compose": "Aru tajewwiqt tamaynut",
-  "navigation_bar.direct": "Iznan usridden",
   "navigation_bar.discover": "Ẓer",
   "navigation_bar.domain_blocks": "Tiɣula yeffren",
   "navigation_bar.edit_profile": "Ẓreg amaɣnu",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Kkes asenqed",
   "privacy.change": "Seggem tabaḍnit n yizen",
   "privacy.direct.long": "Bḍu gar yimseqdacen i tbedreḍ kan",
-  "privacy.direct.short": "Usrid",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Bḍu i yimeḍfaṛen-ik kan",
-  "privacy.private.short": "Imeḍfaṛen kan",
-  "privacy.public.long": "Bḍu deg tsuddemt tazayezt",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Azayez",
-  "privacy.unlisted.long": "Ur beṭṭu ara deg tsuddemt tazayezt",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "War tabdert",
   "refresh": "Smiren",
   "regeneration_indicator.label": "Yessalay-d…",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index f8185fe95..fd9074afd 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -70,7 +70,7 @@
   "column.blocks": "Бұғатталғандар",
   "column.bookmarks": "Бетбелгілер",
   "column.community": "Жергілікті желі",
-  "column.direct": "Жеке хаттар",
+  "column.conversations": "Conversations",
   "column.directory": "Профильдерді аралау",
   "column.domain_blocks": "Жасырылған домендер",
   "column.favourites": "Таңдаулылар",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Тек жергілікті",
   "community.column_settings.media_only": "Тек медиа",
   "community.column_settings.remote_only": "Тек сыртқы",
-  "compose_form.direct_message_warning": "Тек аталған қолданушыларға.",
   "compose_form.direct_message_warning_learn_more": "Көбірек білу",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Бұл пост іздеуде хэштегпен шықпайды, өйткені ол бәріне ашық емес. Тек ашық жазбаларды ғана хэштег арқылы іздеп табуға болады.",
   "compose_form.lock_disclaimer": "Аккаунтыңыз {locked} емес. Кез келген адам жазылып, сізді оқи алады.",
   "compose_form.lock_disclaimer.lock": "жабық",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ешкімді бұғаттамағансыз.",
   "empty_column.bookmarked_statuses": "Ешқандай жазба Бетбелгілер тізіміне қосылмапты. Қосылғаннан кейін осында жинала бастайды.",
   "empty_column.community": "Жергілікті желі бос. Сіз бастап жазыңыз!",
-  "empty_column.direct": "Әзірше дым хат жоқ. Өзіңіз жазып көріңіз алдымен.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Бұғатталған домен жоқ.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Ешқандай жазба 'Таңдаулылар' тізіміне қосылмапты. Қосылғаннан кейін осында жинала бастайды.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "жазба бөлісу",
   "keyboard_shortcuts.column": "бағандардағы жазбаны оқу",
   "keyboard_shortcuts.compose": "пост жазу",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Сипаттама",
-  "keyboard_shortcuts.direct": "жеке хаттар бағаны",
   "keyboard_shortcuts.down": "тізімде төмен түсу",
   "keyboard_shortcuts.enter": "жазбаны ашу",
   "keyboard_shortcuts.favourite": "таңдаулыға қосу",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Бетбелгілер",
   "navigation_bar.community_timeline": "Жергілікті желі",
   "navigation_bar.compose": "Жаңа жазба бастау",
-  "navigation_bar.direct": "Жеке хаттар",
   "navigation_bar.discover": "шарлау",
   "navigation_bar.domain_blocks": "Жабық домендер",
   "navigation_bar.edit_profile": "Профиль түзету",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Сауалнаманы өшіру",
   "privacy.change": "Құпиялылықты реттеу",
   "privacy.direct.long": "Аталған адамдарға ғана көрінетін жазба",
-  "privacy.direct.short": "Тікелей",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Тек оқырмандарға арналған жазба",
-  "privacy.private.short": "Оқырмандарға ғана",
-  "privacy.public.long": "Ашық желіге жібер",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Ашық",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Тізімсіз",
   "refresh": "Жаңарту",
   "regeneration_indicator.label": "Жүктеу…",
diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json
index 74b3992c7..222a62164 100644
--- a/app/javascript/mastodon/locales/kn.json
+++ b/app/javascript/mastodon/locales/kn.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blocked users",
   "column.bookmarks": "Bookmarks",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Hidden domains",
   "column.favourites": "Favourites",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no hidden domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Post to followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Post to public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index eb51428bc..4af91f569 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -70,7 +70,7 @@
   "column.blocks": "차단한 사용자",
   "column.bookmarks": "보관함",
   "column.community": "로컬 타임라인",
-  "column.direct": "다이렉트 메시지",
+  "column.conversations": "대화",
   "column.directory": "프로필 둘러보기",
   "column.domain_blocks": "차단한 도메인",
   "column.favourites": "좋아요",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "로컬만",
   "community.column_settings.media_only": "미디어만",
   "community.column_settings.remote_only": "원격만",
-  "compose_form.direct_message_warning": "이 게시물은 멘션 된 유저들에게만 보여집니다.",
   "compose_form.direct_message_warning_learn_more": "더 알아보기",
+  "compose_form.encryption_warning": "마스토돈의 게시물들은 종단간 암호화가 되지 않습니아. 위험한 정보를 마스토돈을 통해 전달하지 마세요.",
   "compose_form.hashtag_warning": "이 게시물은 어떤 해시태그로도 검색 되지 않습니다. 전체공개로 게시 된 게시물만이 해시태그로 검색 될 수 있습니다.",
   "compose_form.lock_disclaimer": "이 계정은 {locked}로 설정 되어 있지 않습니다. 누구나 이 계정을 팔로우 할 수 있으며, 팔로워 공개의 포스팅을 볼 수 있습니다.",
   "compose_form.lock_disclaimer.lock": "비공개",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "아직 아무도 차단하지 않았습니다.",
   "empty_column.bookmarked_statuses": "아직 보관한 게시물이 없습니다. 게시물을 보관하면 여기에 나타납니다.",
   "empty_column.community": "로컬 타임라인에 아무 것도 없습니다. 아무거나 적어 보세요!",
-  "empty_column.direct": "아직 다이렉트 메시지가 없습니다. 다이렉트 메시지를 보내거나 받은 경우, 여기에 표시 됩니다.",
+  "empty_column.conversations": "멘션한 사람만 볼 수 있는 게시물을 보내거나 받은 경우에, 여기에 나타납니다.",
   "empty_column.domain_blocks": "아직 차단한 도메인이 없습니다.",
   "empty_column.explore_statuses": "아직 유행하는 것이 없습니다. 나중에 다시 확인하세요!",
   "empty_column.favourited_statuses": "아직 마음에 들어한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "게시물 부스트",
   "keyboard_shortcuts.column": "해당 컬럼에 포커스",
   "keyboard_shortcuts.compose": "작성창에 포커스",
+  "keyboard_shortcuts.conversations": "대화 컬럼 열기",
   "keyboard_shortcuts.description": "설명",
-  "keyboard_shortcuts.direct": "다이렉트 메시지 컬럼 열기",
   "keyboard_shortcuts.down": "리스트에서 아래로 이동",
   "keyboard_shortcuts.enter": "게시물 열기",
   "keyboard_shortcuts.favourite": "관심글 지정",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "보관함",
   "navigation_bar.community_timeline": "로컬 타임라인",
   "navigation_bar.compose": "새 게시물 작성",
-  "navigation_bar.direct": "다이렉트 메시지",
   "navigation_bar.discover": "발견하기",
   "navigation_bar.domain_blocks": "차단한 도메인",
   "navigation_bar.edit_profile": "프로필 편집",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "투표 삭제",
   "privacy.change": "게시물의 프라이버시 설정을 변경",
   "privacy.direct.long": "멘션한 사용자에게만 공개",
-  "privacy.direct.short": "다이렉트",
+  "privacy.direct.short": "내가 멘션한 사람만",
   "privacy.private.long": "팔로워에게만 공개",
-  "privacy.private.short": "비공개",
-  "privacy.public.long": "공개 타임라인에 표시",
+  "privacy.private.short": "팔로워 전용",
+  "privacy.public.long": "모두가 볼 수 있음",
   "privacy.public.short": "공개",
-  "privacy.unlisted.long": "공개 타임라인에 표시하지 않음",
+  "privacy.unlisted.long": "모두가 볼 수 있지만, 발견하기 기능에서는 제외됨",
   "privacy.unlisted.short": "타임라인에 비표시",
   "refresh": "새로고침",
   "regeneration_indicator.label": "불러오는 중…",
diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json
index 642ec5fba..02df9eff6 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -70,7 +70,7 @@
   "column.blocks": "Bikarhênerên astengkirî",
   "column.bookmarks": "Şûnpel",
   "column.community": "Demnameya herêmî",
-  "column.direct": "Peyamên taybet",
+  "column.conversations": "Axaftin",
   "column.directory": "Li profîlan bigere",
   "column.domain_blocks": "Navperên astengkirî",
   "column.favourites": "Bijarte",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Tenê herêmî",
   "community.column_settings.media_only": "Tenê media",
   "community.column_settings.remote_only": "Tenê ji dûr ve",
-  "compose_form.direct_message_warning": "Ev şandî tenê ji bikarhênerên qalkirî re wê were şandin.",
   "compose_form.direct_message_warning_learn_more": "Bêtir fêr bibe",
+  "compose_form.encryption_warning": "Şandiyên li ser Mastodon dawî-bi-dawî ne şîfrekirî ne. Li ser Mastodon zanyariyên talûke parve neke.",
   "compose_form.hashtag_warning": "Ev şandî ji ber ku nehatiye tomarkirin dê di binê hashtagê de neyê tomar kirin. Tenê peyamên gelemperî dikarin bi hashtagê werin lêgerîn.",
   "compose_form.lock_disclaimer": "Ajimêrê te {locked} nîne. Herkes dikare te bişopîne da ku şandiyên te yên tenê şopînerên te ra xûya dibin bibînin.",
   "compose_form.lock_disclaimer.lock": "girtî ye",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Te tu bikarhêner asteng nekiriye.",
   "empty_column.bookmarked_statuses": "Hîn tu peyamên şûnpelkirî tuneye. Gava ku hûn yek şûnpel bikin, ew ê li vir xûya bike.",
   "empty_column.community": "Demnameya herêmî vala ye. Tiştek ji raya giştî re binivsînin da ku rûpel biherike!",
-  "empty_column.direct": "Hêj peyameke te yê rasterast tuneye. Gava ku tu yekî bişeynî an jî bigirî, ew ê li vir xûya bike.",
+  "empty_column.conversations": "Dema tu şandiyekê bişîninî an jî bistînî ku tenê ji kesên qalkirî re xuyabar in, ew ê li vir xuya bibe.",
   "empty_column.domain_blocks": "Hê jî navperên hatine asteng kirin tune ne.",
   "empty_column.explore_statuses": "Tiştek niha di rojevê de tune. Paşê vegere!",
   "empty_column.favourited_statuses": "Hîn tu peyamên te yên bijare tunene. Gava ku te yekî bijart, ew ê li vir xûya bike.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Şandiyê bilind bike",
   "keyboard_shortcuts.column": "Stûna balkişandinê",
   "keyboard_shortcuts.compose": "Bal bikşîne cîhê nivîsê/textarea",
+  "keyboard_shortcuts.conversations": "ji bo vekirina stûna axaftinan",
   "keyboard_shortcuts.description": "Danasîn",
-  "keyboard_shortcuts.direct": "Ji stûnê peyamên rasterast veke",
   "keyboard_shortcuts.down": "Di rêzokê de dakêşe jêr",
   "keyboard_shortcuts.enter": "Şandiyê veke",
   "keyboard_shortcuts.favourite": "Şandiya bijarte",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Şûnpel",
   "navigation_bar.community_timeline": "Demnameya herêmî",
   "navigation_bar.compose": "Şandiyeke nû binivsîne",
-  "navigation_bar.direct": "Peyamên rasterast",
   "navigation_bar.discover": "Vekolê",
   "navigation_bar.domain_blocks": "Navparên astengkirî",
   "navigation_bar.edit_profile": "Profîl serrast bike",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Rapirsî yê rake",
   "privacy.change": "Nepênîtiya şandiyan biguherîne",
   "privacy.direct.long": "Tenê ji bo bikarhênerên qalkirî tê dîtin",
-  "privacy.direct.short": "Taybet",
+  "privacy.direct.short": "Tenê mirovên ku min qalkirî",
   "privacy.private.long": "Tenê bo şopîneran xuyabar e",
   "privacy.private.short": "Tenê şopîneran",
-  "privacy.public.long": "Ji bo herkesî li berçav e, di demnameyên gelemperî de dê xûyakirin",
+  "privacy.public.long": "Ji bo hemûyan xuyabar e",
   "privacy.public.short": "Gelemperî",
-  "privacy.unlisted.long": "Ji herkesî ra tê xûya, lê demnameyê gelemperî ra nay xûyakirin",
+  "privacy.unlisted.long": "Ji bo hemûyan xuyabar e, lê ji taybetmendiyên vekolînê veqetiya ye",
   "privacy.unlisted.short": "Nerêzok",
   "refresh": "Nû bike",
   "regeneration_indicator.label": "Tê barkirin…",
diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json
index 8ca7c68c1..7aa686a7a 100644
--- a/app/javascript/mastodon/locales/kw.json
+++ b/app/javascript/mastodon/locales/kw.json
@@ -70,7 +70,7 @@
   "column.blocks": "Devnydhyoryon lettys",
   "column.bookmarks": "Folennosow",
   "column.community": "Amserlin leel",
-  "column.direct": "Messajys didro",
+  "column.conversations": "Conversations",
   "column.directory": "Peuri profilys",
   "column.domain_blocks": "Gorfarthow lettys",
   "column.favourites": "Re drudh",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Leel hepken",
   "community.column_settings.media_only": "Myski hepken",
   "community.column_settings.remote_only": "A-bell hepken",
-  "compose_form.direct_message_warning": "An post ma a vydh danvenys dhe'n dhevnydhyoryon menegys hepken.",
   "compose_form.direct_message_warning_learn_more": "Dyski moy",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Ny vydh an post ma diskwedhys yn-dann vòlnos vyth awos y vos mes a rol. Ny yllir hwilas saw poblow postek dre vòlnos.",
   "compose_form.lock_disclaimer": "Nyns yw agas akont {locked}. Piwpynag a yll agas holya dhe weles agas postow holyoryon-hepken.",
   "compose_form.lock_disclaimer.lock": "Alhwedhys",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ny wrussowgh lettya devnydhyoryon vyth hwath.",
   "empty_column.bookmarked_statuses": "Nyns eus dhywgh postow gans folennos hwath. Pan wrewgh gorra onan, ev a wra omdhiskwedhes omma.",
   "empty_column.community": "An amserlin leel yw gwag. Skrifewgh neppytn yn poblek dh'y lonchya!",
-  "empty_column.direct": "Nyns eus dhywgh messajys didro hwath. Pan wrewgh dannvon po degemeres onan, ev a wra omdhiskwedhes omma.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Nyns eus gorfarthow lettys hwath.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Nyns eus dhywgh postow drudh hwath. Pan wrewgh merkya onan vel drudh, ev a wra omdhiskwedhes omma.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Kenertha post",
   "keyboard_shortcuts.column": "Fogella koloven",
   "keyboard_shortcuts.compose": "Fogella tekstva gomposya",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Deskrifans",
-  "keyboard_shortcuts.direct": "Ygeri koloven messajys didro",
   "keyboard_shortcuts.down": "Movya war-nans y'n rol",
   "keyboard_shortcuts.enter": "Ygeri post",
   "keyboard_shortcuts.favourite": "Merkya post vel drudh",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Folennosow",
   "navigation_bar.community_timeline": "Amserlin leel",
   "navigation_bar.compose": "Komposya post nowydh",
-  "navigation_bar.direct": "Messajys didro",
   "navigation_bar.discover": "Diskudha",
   "navigation_bar.domain_blocks": "Gorfarthow lettys",
   "navigation_bar.edit_profile": "Golegi profil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Dilea sondyans",
   "privacy.change": "Chanjya privetter an post",
   "privacy.direct.long": "Gweladow dhe'n dhevnydhyoryon menegys hepken",
-  "privacy.direct.short": "Didro",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Gweladow dhe holyoryon hepken",
-  "privacy.private.short": "Holyoryon-hepken",
-  "privacy.public.long": "Gweladow dhe beub, diskwedhys yn amserlinyow poblek",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Poblek",
-  "privacy.unlisted.long": "Gweladow dhe beub, a-der yn amserlinyow poblek",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Anrelys",
   "refresh": "Daskarga",
   "regeneration_indicator.label": "Ow karga…",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index d54fc64f0..ade4933f9 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blocked users",
   "column.bookmarks": "Bookmarks",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Hidden domains",
   "column.favourites": "Mėgstamiausi",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no hidden domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Post to followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Post to public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index 559d06f98..3bfb7532a 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -70,7 +70,7 @@
   "column.blocks": "Bloķētie lietotāji",
   "column.bookmarks": "Grāmatzīmes",
   "column.community": "Vietējā ziņu līnija",
-  "column.direct": "Privātās ziņas",
+  "column.conversations": "Sarunas",
   "column.directory": "Pārlūkot profilus",
   "column.domain_blocks": "Bloķētie domēni",
   "column.favourites": "Izlase",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Tikai vietējie",
   "community.column_settings.media_only": "Tikai mediji",
   "community.column_settings.remote_only": "Tikai attālinātie",
-  "compose_form.direct_message_warning": "Šis ziņojums tiks nosūtīts tikai pieminētajiem lietotājiem.",
   "compose_form.direct_message_warning_learn_more": "Uzzināt vairāk",
+  "compose_form.encryption_warning": "Ziņas vietnē Mastodon nav pilnībā šifrētas. Nedalies ar bīstamu informāciju caur Mastodon.",
   "compose_form.hashtag_warning": "Ziņojumu nebūs iespējams atrast zem haštagiem jo tas nav publisks. Tikai publiskos ziņojumus ir iespējams meklēt pēc tiem.",
   "compose_form.lock_disclaimer": "Tavs konts nav {locked}. Ikviens var Tev sekot lai apskatītu tikai sekotājiem paredzētos ziņojumus.",
   "compose_form.lock_disclaimer.lock": "slēgts",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Patreiz tu neesi nevienu bloķējis.",
   "empty_column.bookmarked_statuses": "Patreiz tev nav neviena grāmatzīmēm pievienota ieraksta. Kad tādu pievienosi, tas parādīsies šeit.",
   "empty_column.community": "Vietējā ziņu lenta ir tukša. Uzraksti kaut ko publiski, lai viss notiktu!",
-  "empty_column.direct": "Patrez tev nav privātu ziņu. Tiklīdz tādu nosūtīsi vai saņemsi, tās parādīsies šeit.",
+  "empty_column.conversations": "Kad nosūtīsi vai saņemsi ziņu, kas ir redzama tikai tajā minētajām personām, tā tiks parādīta šeit.",
   "empty_column.domain_blocks": "Vēl nav neviena bloķēta domēna.",
   "empty_column.explore_statuses": "Pašlaik nekas nav tendēts. Pārbaudiet vēlāk!",
   "empty_column.favourited_statuses": "Patreiz tev nav neviena izceltā ieraksta. Kad kādu izcelsi, tas parādīsies šeit.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Palielināt ziņu",
   "keyboard_shortcuts.column": "Fokusēt kolonnu",
   "keyboard_shortcuts.compose": "Fokusēt veidojamā teksta lauku",
+  "keyboard_shortcuts.conversations": "lai atvērtu sarunu kolonnu",
   "keyboard_shortcuts.description": "Apraksts",
-  "keyboard_shortcuts.direct": "Atvērt privāto ziņojumu kolonnu",
   "keyboard_shortcuts.down": "Pārvietot sarakstā uz leju",
   "keyboard_shortcuts.enter": "Atvērt ziņu",
   "keyboard_shortcuts.favourite": "Pievienot izlasei",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Grāmatzīmes",
   "navigation_bar.community_timeline": "Vietējā ziņu lenta",
   "navigation_bar.compose": "Veidot jaunu ziņu",
-  "navigation_bar.direct": "Privātās ziņas",
   "navigation_bar.discover": "Atklāt",
   "navigation_bar.domain_blocks": "Bloķētie domēni",
   "navigation_bar.edit_profile": "Rediģēt profilu",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Noņemt aptauju",
   "privacy.change": "Mainīt ziņas privātumu",
   "privacy.direct.long": "Redzams tikai pieminētajiem lietotājiem",
-  "privacy.direct.short": "Tiešs",
+  "privacy.direct.short": "Tikai cilvēki, kurus es pieminu",
   "privacy.private.long": "Redzams tikai sekotājiem",
   "privacy.private.short": "Tikai sekotājiem",
-  "privacy.public.long": "Redzams visiem, rāda publiskajās ziņu lentās",
+  "privacy.public.long": "Redzama visiem",
   "privacy.public.short": "Publisks",
-  "privacy.unlisted.long": "Redzams visiem, bet ne publiskajās ziņu lentās",
+  "privacy.unlisted.long": "Redzama visiem, bet atteicās no atklāšanas funkcijām",
   "privacy.unlisted.short": "Neminētie",
   "refresh": "Atsvaidzināt",
   "regeneration_indicator.label": "Ielādē…",
diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json
index def8e718b..72bb52adf 100644
--- a/app/javascript/mastodon/locales/mk.json
+++ b/app/javascript/mastodon/locales/mk.json
@@ -70,7 +70,7 @@
   "column.blocks": "Блокирани корисници",
   "column.bookmarks": "Bookmarks",
   "column.community": "Локална временска зона",
-  "column.direct": "Директна порака",
+  "column.conversations": "Conversations",
   "column.directory": "Види профили",
   "column.domain_blocks": "Скриени домеини",
   "column.favourites": "Омилени",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Само медиа",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Научи повеќе",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "заклучен",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Немате сеуште блокирано корисници.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "Локалниот времеплов е празен. Објавете нешто јавно за да може да почне шоуто!",
-  "empty_column.direct": "Немате директни пораки. Кога ќе пратите или примите, ќе се појават тука.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Немате сокриени домеини уште.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Уреди профил",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Избришете анкета",
   "privacy.change": "Штеловај статус на приватност",
   "privacy.direct.long": "Објави само на спомнати корисници",
-  "privacy.direct.short": "Директно",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Објави само на следбеници",
-  "privacy.private.short": "Само следбеници",
-  "privacy.public.long": "Објави во јавни времплови",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Јавно",
-  "privacy.unlisted.long": "Не објавувај на јавни времеплови",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Необјавено",
   "refresh": "Освежи",
   "regeneration_indicator.label": "Вчитување…",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index adca25974..a1db3f5a5 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -70,7 +70,7 @@
   "column.blocks": "തടയപ്പെട്ട ഉപയോക്താക്കൾ",
   "column.bookmarks": "ബുക്ക്മാർക്കുകൾ",
   "column.community": "പ്രാദേശികമായ സമയരേഖ",
-  "column.direct": "നേരിട്ടുള്ള സന്ദേശങ്ങൾ",
+  "column.conversations": "Conversations",
   "column.directory": "പ്രൊഫൈലുകൾ മറിച്ചുനോക്കുക",
   "column.domain_blocks": "മറയ്ക്കപ്പെട്ട മേഖലകൾ",
   "column.favourites": "പ്രിയപ്പെട്ടവ",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "പ്രാദേശികം മാത്രം",
   "community.column_settings.media_only": "മാധ്യമങ്ങൾ മാത്രം",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "പരാമർശിക്കപ്പെട്ടിരിക്കുന്ന ഉപയോഗ്താക്കൾക്കെ ഈ ടൂട്ട് അയക്കപ്പെടുകയുള്ളു.",
   "compose_form.direct_message_warning_learn_more": "കൂടുതൽ പഠിക്കുക",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "ഈ ടൂട്ട് പട്ടികയിൽ ഇല്ലാത്തതിനാൽ ഒരു ചർച്ചാവിഷയത്തിന്റെ പട്ടികയിലും പെടുകയില്ല. പരസ്യമായ ടൂട്ടുകൾ മാത്രമേ ചർച്ചാവിഷയം അടിസ്ഥാനമാക്കി തിരയുവാൻ സാധിക്കുകയുള്ളു.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "ലോക്കുചെയ്തു",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "നിങ്ങൾ ഇതുവരെ ഒരു ഉപയോക്താക്കളെയും തടഞ്ഞിട്ടില്ല.",
   "empty_column.bookmarked_statuses": "നിങ്ങൾക് ഇതുവരെ അടയാളപ്പെടുത്തിയ ടൂട്ടുകൾ ഇല്ല. അടയാളപ്പെടുത്തിയാൽ അത് ഇവിടെ വരും.",
   "empty_column.community": "പ്രാദേശികമായ സമയരേഖ ശൂന്യമാണ്. എന്തെങ്കിലും പരസ്യമായി എഴുതി തുടക്കം കുറിക്കു!",
-  "empty_column.direct": "നിങ്ങൾക്ക് ഇതുവരെ നേരിട്ടുള്ള സന്ദേശങ്ങൾ ഒന്നുമില്ല. നിങ്ങൾ അങ്ങനെ ഒന്ന് അയക്കുകയോ, നിങ്ങൾക്ക് ലഭിക്കുകയോ ചെയ്യുന്നപക്ഷം അതിവിടെ കാണപ്പെടുന്നതാണ്.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "മറയ്ക്കപ്പെട്ടിരിക്കുന്ന മേഖലകൾ ഇതുവരെ ഇല്ല.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "നിങ്ങൾക്ക് ഇത് വരെ ഒരു പ്രിയപ്പെട്ട ടൂട്ടും ഇല്ല. നിങ്ങൾ അങ്ങനെ ഒന്ന് പ്രിയപ്പെടുന്ന പക്ഷം അതിവിടെ കാണപ്പെടുന്നതാണ്.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "ബൂസ്റ്റ് ചെയ്യുക",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "വിവരണം",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "ടൂട്ട് എടുക്കാൻ",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "ബുക്ക്മാർക്കുകൾ",
   "navigation_bar.community_timeline": "പ്രാദേശിക സമയരേഖ",
   "navigation_bar.compose": "പുതിയ ടൂട്ട് എഴുതുക",
-  "navigation_bar.direct": "നേരിട്ടുള്ള സന്ദേശങ്ങൾ",
   "navigation_bar.discover": "കണ്ടെത്തുക",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "പ്രൊഫൈൽ തിരുത്തുക",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "പോൾ നീക്കംചെയ്യുക",
   "privacy.change": "ടൂട്ട് സ്വകാര്യത ക്രമീകരിക്കുക",
   "privacy.direct.long": "Post to mentioned users only",
-  "privacy.direct.short": "നേരിട്ട്",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Post to followers only",
-  "privacy.private.short": "പിന്തുടരുന്നവർക്ക് മാത്രം",
-  "privacy.public.long": "Post to public timelines",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "എല്ലാവര്‍ക്കും",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "പുതുക്കുക",
   "regeneration_indicator.label": "ലഭ്യമാക്കുന്നു…",
diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json
index 373b8b026..9c3500443 100644
--- a/app/javascript/mastodon/locales/mr.json
+++ b/app/javascript/mastodon/locales/mr.json
@@ -70,7 +70,7 @@
   "column.blocks": "ब्लॉक केलेले खातेधारक",
   "column.bookmarks": "Bookmarks",
   "column.community": "Local timeline",
-  "column.direct": "थेट संदेश",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "गुप्त डोमेन्स",
   "column.favourites": "आवडते",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "केवळ मीडिया",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "अधिक जाणून घ्या",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no hidden domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Post to followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Post to public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index f4cc1c7ba..0c6996463 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -70,7 +70,7 @@
   "column.blocks": "Pengguna yang disekat",
   "column.bookmarks": "Tanda buku",
   "column.community": "Garis masa tempatan",
-  "column.direct": "Mesej terus",
+  "column.conversations": "Conversations",
   "column.directory": "Layari profil",
   "column.domain_blocks": "Domain disekat",
   "column.favourites": "Kegemaran",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Tempatan sahaja",
   "community.column_settings.media_only": "Media sahaja",
   "community.column_settings.remote_only": "Jauh sahaja",
-  "compose_form.direct_message_warning": "Hantaran ini hanya akan dihantar kepada pengguna yang disebut.",
   "compose_form.direct_message_warning_learn_more": "Ketahui lebih lanjut",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Hantaran ini tidak akan disenaraikan di bawah mana-mana tanda pagar kerana ia tidak tersenarai. Hanya hantaran awam sahaja boleh dicari menggunakan tanda pagar.",
   "compose_form.lock_disclaimer": "Akaun anda tidak {locked}. Sesiapa pun boleh mengikuti anda untuk melihat hantaran pengikut-sahaja anda.",
   "compose_form.lock_disclaimer.lock": "dikunci",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Anda belum menyekat sesiapa.",
   "empty_column.bookmarked_statuses": "Anda belum ada hantaran yang ditanda buku. Apabila anda menanda buku sesuatu, ia akan muncul di sini.",
   "empty_column.community": "Garis masa tempatan kosong. Tulislah secara awam untuk memulakan sesuatu!",
-  "empty_column.direct": "Anda tidak mempunyai mesej terus. Apabila anda menghantar atau menerimanya, ia akan muncul di sini.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Belum ada domain yang disekat.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Anda belum ada hantaran yang digemari. Apabila anda menggemari sesuatu, ia akan muncul di sini.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "Tumpu pada lajur",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Keterangan",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "Buka hantaran",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Tanda buku",
   "navigation_bar.community_timeline": "Garis masa tempatan",
   "navigation_bar.compose": "Karang hantaran baharu",
-  "navigation_bar.direct": "Mesej terus",
   "navigation_bar.discover": "Teroka",
   "navigation_bar.domain_blocks": "Domain disekat",
   "navigation_bar.edit_profile": "Sunting profil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Buang undian",
   "privacy.change": "Ubah privasi hantaran",
   "privacy.direct.long": "Hanya boleh dilihat oleh pengguna disebut",
-  "privacy.direct.short": "Terus",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Hanya boleh dilihat oleh pengikut",
-  "privacy.private.short": "Pengikut sahaja",
-  "privacy.public.long": "Boleh dilihat oleh semua orang, ditunjukkan di garis masa awam",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Awam",
-  "privacy.unlisted.long": "Boleh dilihat oleh semua orang, tapi jangan tunjukkan di garis masa awam",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Tidak tersenarai",
   "refresh": "Muat semula",
   "regeneration_indicator.label": "Memuatkan…",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 905c61e63..ef09ca5e6 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -70,7 +70,7 @@
   "column.blocks": "Geblokkeerde gebruikers",
   "column.bookmarks": "Bladwijzers",
   "column.community": "Lokale tijdlijn",
-  "column.direct": "Directe berichten",
+  "column.conversations": "Gesprekken",
   "column.directory": "Gebruikersgids",
   "column.domain_blocks": "Geblokkeerde domeinen",
   "column.favourites": "Favorieten",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Alleen lokaal",
   "community.column_settings.media_only": "Alleen media",
   "community.column_settings.remote_only": "Alleen andere servers",
-  "compose_form.direct_message_warning": "Dit bericht wordt alleen naar vermelde gebruikers verstuurd.",
   "compose_form.direct_message_warning_learn_more": "Meer leren",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Dit bericht valt niet onder een hashtag te bekijken, omdat deze niet op openbare tijdlijnen wordt getoond. Alleen openbare berichten kunnen via hashtags gevonden worden.",
   "compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de berichten zien die je alleen aan jouw volgers hebt gericht.",
   "compose_form.lock_disclaimer.lock": "besloten",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Jij hebt nog geen enkele gebruiker geblokkeerd.",
   "empty_column.bookmarked_statuses": "Jij hebt nog geen berichten aan je bladwijzers toegevoegd. Wanneer je er een aan jouw bladwijzers toevoegt, valt deze hier te zien.",
   "empty_column.community": "De lokale tijdlijn is nog leeg. Plaats een openbaar bericht om de spits af te bijten!",
-  "empty_column.direct": "Je hebt nog geen directe berichten. Wanneer je er een verzend of ontvangt, zijn deze hier te zien.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Er zijn nog geen geblokkeerde domeinen.",
   "empty_column.explore_statuses": "Momenteel zijn er geen trends. Kom later terug!",
   "empty_column.favourited_statuses": "Jij hebt nog geen favoriete berichten. Wanneer je er een aan jouw favorieten toevoegt, valt deze hier te zien.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Bericht boosten",
   "keyboard_shortcuts.column": "Op één van de kolommen focussen",
   "keyboard_shortcuts.compose": "Tekstveld om een bericht te schrijven focussen",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Omschrijving",
-  "keyboard_shortcuts.direct": "Jouw directe berichten tonen",
   "keyboard_shortcuts.down": "Naar beneden in de lijst bewegen",
   "keyboard_shortcuts.enter": "Volledig bericht tonen",
   "keyboard_shortcuts.favourite": "Aan jouw favorieten toevoegen",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bladwijzers",
   "navigation_bar.community_timeline": "Lokale tijdlijn",
   "navigation_bar.compose": "Nieuw bericht schrijven",
-  "navigation_bar.direct": "Directe berichten",
   "navigation_bar.discover": "Ontdekken",
   "navigation_bar.domain_blocks": "Geblokkeerde domeinen",
   "navigation_bar.edit_profile": "Profiel bewerken",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Poll verwijderen",
   "privacy.change": "Zichtbaarheid van bericht aanpassen",
   "privacy.direct.long": "Alleen aan vermelde gebruikers tonen",
-  "privacy.direct.short": "Direct",
+  "privacy.direct.short": "Alleen gebruikers die ik noem",
   "privacy.private.long": "Alleen aan volgers tonen",
   "privacy.private.short": "Alleen volgers",
-  "privacy.public.long": "Voor iedereen zichtbaar en op openbare tijdlijnen tonen",
+  "privacy.public.long": "Voor iedereen zichtbaar",
   "privacy.public.short": "Openbaar",
-  "privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet op openbare tijdlijnen tonen",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Minder openbaar",
   "refresh": "Vernieuwen",
   "regeneration_indicator.label": "Aan het laden…",
@@ -515,7 +514,7 @@
   "upload_error.poll": "Het uploaden van bestanden is in polls niet toegestaan.",
   "upload_form.audio_description": "Omschrijf dit voor mensen met een auditieve beperking",
   "upload_form.description": "Omschrijf dit voor mensen met een visuele beperking",
-  "upload_form.description_missing": "No description added",
+  "upload_form.description_missing": "Geen omschrijving toegevoegd",
   "upload_form.edit": "Omschrijf",
   "upload_form.thumbnail": "Miniatuurafbeelding wijzigen",
   "upload_form.undo": "Verwijderen",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 491b24a40..521403c51 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -18,7 +18,7 @@
   "account.followers": "Fylgjarar",
   "account.followers.empty": "Ingen fylgjer denne brukaren enno.",
   "account.followers_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjarar}}",
-  "account.following": "Following",
+  "account.following": "Følger",
   "account.following_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjar}}",
   "account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.",
   "account.follows_you": "Fylgjer deg",
@@ -41,16 +41,16 @@
   "account.statuses_counter": "{count, plural, one {{counter} tut} other {{counter} tut}}",
   "account.unblock": "Slutt å blokera @{name}",
   "account.unblock_domain": "Vis {domain}",
-  "account.unblock_short": "Unblock",
+  "account.unblock_short": "Opphev blokkering",
   "account.unendorse": "Ikkje framhev på profil",
   "account.unfollow": "Slutt å fylgja",
   "account.unmute": "Av-demp @{name}",
   "account.unmute_notifications": "Vis varsel frå @{name}",
-  "account.unmute_short": "Unmute",
+  "account.unmute_short": "Opphev demping",
   "account_note.placeholder": "Klikk for å leggja til merknad",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
-  "admin.dashboard.retention.average": "Average",
+  "admin.dashboard.retention.average": "Gjennomsnitt",
   "admin.dashboard.retention.cohort": "Sign-up month",
   "admin.dashboard.retention.cohort_size": "Nye brukere",
   "alert.rate_limited.message": "Ver venleg å prøva igjen etter {retry_time, time, medium}.",
@@ -70,7 +70,7 @@
   "column.blocks": "Blokkerte brukarar",
   "column.bookmarks": "Bokmerke",
   "column.community": "Lokal tidsline",
-  "column.direct": "Meldingar",
+  "column.conversations": "Conversations",
   "column.directory": "Sjå gjennom profilar",
   "column.domain_blocks": "Gøymde domene",
   "column.favourites": "Favorittar",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Berre lokalt",
   "community.column_settings.media_only": "Berre media",
   "community.column_settings.remote_only": "Berre eksternt",
-  "compose_form.direct_message_warning": "Dette tutet vert berre synleg for nemnde brukarar.",
   "compose_form.direct_message_warning_learn_more": "Lær meir",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Dette tutet vert ikkje oppført under nokon emneknagg sidan det ikkje er oppført. Berre offentlege tut kan verta søkt etter med emneknagg.",
   "compose_form.lock_disclaimer": "Kontoen din er ikkje {locked}. Kven som helst kan fylgja deg for å sjå innlegga dine som berre visast til fylgjarar.",
   "compose_form.lock_disclaimer.lock": "låst",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Du har ikkje blokkert nokon brukarar enno.",
   "empty_column.bookmarked_statuses": "Du har ikkje nokon bokmerkte tut enno. Når du bokmerkjer eit, dukkar det opp her.",
   "empty_column.community": "Den lokale samtiden er tom. Skriv noko offentleg å få ballen til å rulle!",
-  "empty_column.direct": "Du har ingen direktemeldingar ennå. Når du sender eller får ein vil den dukke opp her.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Det er ingen gøymde domene ennå.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Du har ingen favoritt-tut ennå. Når du merkjer ein som favoritt, så dukkar det opp her.",
@@ -187,11 +187,11 @@
   "error.unexpected_crash.next_steps_addons": "Prøv å deaktivere dem og laste siden på nytt. Hvis det ikke hjelper, kan du fremdeles bruke Mastodon via en annen nettleser eller en annen app.",
   "errors.unexpected_crash.copy_stacktrace": "Kopier stacktrace til utklippstavla",
   "errors.unexpected_crash.report_issue": "Rapporter problem",
-  "explore.search_results": "Search results",
-  "explore.suggested_follows": "For you",
-  "explore.title": "Explore",
-  "explore.trending_links": "News",
-  "explore.trending_statuses": "Posts",
+  "explore.search_results": "Søkeresultater",
+  "explore.suggested_follows": "For deg",
+  "explore.title": "Utforsk",
+  "explore.trending_links": "Nyheter",
+  "explore.trending_statuses": "Innlegg",
   "explore.trending_tags": "Hashtags",
   "follow_recommendations.done": "Ferdig",
   "follow_recommendations.heading": "Følg folk du ønsker å se innlegg fra! Her er noen forslag.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "for å framheva",
   "keyboard_shortcuts.column": "for å fokusera på ein status i ei av kolonnane",
   "keyboard_shortcuts.compose": "for å fokusera tekstfeltet for skriving",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Skildring",
-  "keyboard_shortcuts.direct": "for å opna direktemeldingskolonna",
   "keyboard_shortcuts.down": "for å flytta seg opp og ned i lista",
   "keyboard_shortcuts.enter": "for å opna status",
   "keyboard_shortcuts.favourite": "for å merkja som favoritt",
@@ -290,11 +290,10 @@
   "navigation_bar.bookmarks": "Bokmerke",
   "navigation_bar.community_timeline": "Lokal tidsline",
   "navigation_bar.compose": "Lag eit nytt tut",
-  "navigation_bar.direct": "Direktemeldingar",
   "navigation_bar.discover": "Oppdag",
   "navigation_bar.domain_blocks": "Skjulte domene",
   "navigation_bar.edit_profile": "Rediger profil",
-  "navigation_bar.explore": "Explore",
+  "navigation_bar.explore": "Utforsk",
   "navigation_bar.favourites": "Favorittar",
   "navigation_bar.filters": "Målbundne ord",
   "navigation_bar.follow_requests": "Fylgjeførespurnader",
@@ -338,7 +337,7 @@
   "notifications.column_settings.status": "Nye tuter:",
   "notifications.column_settings.unread_notifications.category": "Unread notifications",
   "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
-  "notifications.column_settings.update": "Edits:",
+  "notifications.column_settings.update": "Redigeringer:",
   "notifications.filter.all": "Alle",
   "notifications.filter.boosts": "Framhevingar",
   "notifications.filter.favourites": "Favorittar",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Fjern røyst",
   "privacy.change": "Juster status-synlegheit",
   "privacy.direct.long": "Legg berre ut for nemnde brukarar",
-  "privacy.direct.short": "Direkte",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Post kun til følgjarar",
-  "privacy.private.short": "Kun følgjarar",
-  "privacy.public.long": "Post til offentlege tidslinjer",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Offentleg",
-  "privacy.unlisted.long": "Ikkje post til offentlege tidslinjer",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Uoppført",
   "refresh": "Oppdater",
   "regeneration_indicator.label": "Lastar…",
@@ -389,28 +388,28 @@
   "relative_time.seconds": "{number}sek",
   "relative_time.today": "i dag",
   "reply_indicator.cancel": "Avbryt",
-  "report.block": "Block",
+  "report.block": "Blokker",
   "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
   "report.categories.other": "Other",
-  "report.categories.spam": "Spam",
+  "report.categories.spam": "Søppelpost",
   "report.categories.violation": "Content violates one or more server rules",
   "report.category.subtitle": "Choose the best match",
   "report.category.title": "Tell us what's going on with this {type}",
-  "report.category.title_account": "profile",
-  "report.category.title_status": "post",
-  "report.close": "Done",
+  "report.category.title_account": "profil",
+  "report.category.title_status": "innlegg",
+  "report.close": "Utført",
   "report.comment.title": "Is there anything else you think we should know?",
   "report.forward": "Vidaresend til {target}",
   "report.forward_hint": "Kontoen er frå ein annan tenar. Vil du senda ein anonymisert kopi av rapporten dit òg?",
-  "report.mute": "Mute",
+  "report.mute": "Demp",
   "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
-  "report.next": "Next",
+  "report.next": "Neste",
   "report.placeholder": "Tilleggskommentarar",
-  "report.reasons.dislike": "I don't like it",
+  "report.reasons.dislike": "Jeg liker det ikke",
   "report.reasons.dislike_description": "It is not something you want to see",
   "report.reasons.other": "It's something else",
   "report.reasons.other_description": "The issue does not fit into other categories",
-  "report.reasons.spam": "It's spam",
+  "report.reasons.spam": "Det er spam",
   "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
   "report.reasons.violation": "It violates server rules",
   "report.reasons.violation_description": "You are aware that it breaks specific rules",
@@ -515,7 +514,7 @@
   "upload_error.poll": "Filopplasting ikkje tillate med meiningsmålingar.",
   "upload_form.audio_description": "Grei ut for folk med nedsett høyrsel",
   "upload_form.description": "Skildr for synshemja",
-  "upload_form.description_missing": "No description added",
+  "upload_form.description_missing": "Ingen beskrivelse lagt til",
   "upload_form.edit": "Rediger",
   "upload_form.thumbnail": "Bytt miniatyrbilete",
   "upload_form.undo": "Slett",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 0a1286f7b..707564404 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -18,7 +18,7 @@
   "account.followers": "Følgere",
   "account.followers.empty": "Ingen følger denne brukeren ennå.",
   "account.followers_counter": "{count, plural, one {{counter} følger} other {{counter} følgere}}",
-  "account.following": "Following",
+  "account.following": "Følger",
   "account.following_counter": "{count, plural, one {{counter} som følges} other {{counter} som følges}}",
   "account.follows.empty": "Denne brukeren følger ikke noen enda.",
   "account.follows_you": "Følger deg",
@@ -41,16 +41,16 @@
   "account.statuses_counter": "{count, plural, one {{counter} tut} other {{counter} tuter}}",
   "account.unblock": "Avblokker @{name}",
   "account.unblock_domain": "Vis {domain}",
-  "account.unblock_short": "Unblock",
+  "account.unblock_short": "Opphev blokkering",
   "account.unendorse": "Ikke vis frem på profilen",
   "account.unfollow": "Avfølg",
   "account.unmute": "Avdemp @{name}",
   "account.unmute_notifications": "Vis varsler fra @{name}",
-  "account.unmute_short": "Unmute",
+  "account.unmute_short": "Opphev demping",
   "account_note.placeholder": "Klikk for å legge til et notat",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
-  "admin.dashboard.retention.average": "Average",
+  "admin.dashboard.retention.average": "Gjennomsnitt",
   "admin.dashboard.retention.cohort": "Sign-up month",
   "admin.dashboard.retention.cohort_size": "Nye brukere",
   "alert.rate_limited.message": "Vennligst prøv igjen etter kl. {retry_time, time, medium}.",
@@ -70,7 +70,7 @@
   "column.blocks": "Blokkerte brukere",
   "column.bookmarks": "Bokmerker",
   "column.community": "Lokal tidslinje",
-  "column.direct": "Direktemeldinger",
+  "column.conversations": "Conversations",
   "column.directory": "Bla gjennom profiler",
   "column.domain_blocks": "Skjulte domener",
   "column.favourites": "Likt",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Kun lokalt",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Kun eksternt",
-  "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Lær mer",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Denne tuten blir ikke listet under noen emneknagger da den er ulistet. Kun offentlige tuter kan søktes etter med emneknagg.",
   "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Hvem som helst kan følge deg og se dine private poster.",
   "compose_form.lock_disclaimer.lock": "låst",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Du har ikke blokkert noen brukere enda.",
   "empty_column.bookmarked_statuses": "Du har ikke bokmerket noen tuter enda. Når du bokmerker en, vil den dukke opp her.",
   "empty_column.community": "Den lokale tidslinjen er tom. Skriv noe offentlig for å få snøballen til å rulle!",
-  "empty_column.direct": "Du har ingen direktemeldinger enda. Når du mottar eller sender en, vil den dukke opp her.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Det er ingen skjulte domener enda.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Du har ikke likt noen tuter enda. Når du liker en, vil den dukke opp her.",
@@ -187,11 +187,11 @@
   "error.unexpected_crash.next_steps_addons": "Prøv å deaktivere dem og laste siden på nytt. Hvis det ikke hjelper, kan du fremdeles bruke Mastodon via en annen nettleser eller en annen app.",
   "errors.unexpected_crash.copy_stacktrace": "Kopier stacktrace-en til utklippstavlen",
   "errors.unexpected_crash.report_issue": "Rapporter en feil",
-  "explore.search_results": "Search results",
-  "explore.suggested_follows": "For you",
-  "explore.title": "Explore",
-  "explore.trending_links": "News",
-  "explore.trending_statuses": "Posts",
+  "explore.search_results": "Søkeresultater",
+  "explore.suggested_follows": "For deg",
+  "explore.title": "Utforsk",
+  "explore.trending_links": "Nyheter",
+  "explore.trending_statuses": "Innlegg",
   "explore.trending_tags": "Hashtags",
   "follow_recommendations.done": "Utført",
   "follow_recommendations.heading": "Følg folk du ønsker å se innlegg fra! Her er noen forslag.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "å fremheve",
   "keyboard_shortcuts.column": "å fokusere en status i en av kolonnene",
   "keyboard_shortcuts.compose": "å fokusere komponeringsfeltet",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Beskrivelse",
-  "keyboard_shortcuts.direct": "åpne direktemeldingskolonnen",
   "keyboard_shortcuts.down": "for å flytte ned i listen",
   "keyboard_shortcuts.enter": "å åpne status",
   "keyboard_shortcuts.favourite": "for å favorittmarkere",
@@ -290,11 +290,10 @@
   "navigation_bar.bookmarks": "Bokmerker",
   "navigation_bar.community_timeline": "Lokal tidslinje",
   "navigation_bar.compose": "Skriv en ny tut",
-  "navigation_bar.direct": "Direktemeldinger",
   "navigation_bar.discover": "Oppdag",
   "navigation_bar.domain_blocks": "Skjulte domener",
   "navigation_bar.edit_profile": "Rediger profil",
-  "navigation_bar.explore": "Explore",
+  "navigation_bar.explore": "Utforsk",
   "navigation_bar.favourites": "Favoritter",
   "navigation_bar.filters": "Stilnede ord",
   "navigation_bar.follow_requests": "Følgeforespørsler",
@@ -338,7 +337,7 @@
   "notifications.column_settings.status": "Nye tuter:",
   "notifications.column_settings.unread_notifications.category": "Unread notifications",
   "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
-  "notifications.column_settings.update": "Edits:",
+  "notifications.column_settings.update": "Redigeringer:",
   "notifications.filter.all": "Alle",
   "notifications.filter.boosts": "Fremhevinger",
   "notifications.filter.favourites": "Favoritter",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Fjern avstemningen",
   "privacy.change": "Justér synlighet",
   "privacy.direct.long": "Post kun til nevnte brukere",
-  "privacy.direct.short": "Direkte",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Post kun til følgere",
-  "privacy.private.short": "Privat",
-  "privacy.public.long": "Post kun til offentlige tidslinjer",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Offentlig",
-  "privacy.unlisted.long": "Ikke vis i offentlige tidslinjer",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Uoppført",
   "refresh": "Oppfrisk",
   "regeneration_indicator.label": "Laster…",
@@ -389,28 +388,28 @@
   "relative_time.seconds": "{number}s",
   "relative_time.today": "i dag",
   "reply_indicator.cancel": "Avbryt",
-  "report.block": "Block",
+  "report.block": "Blokker",
   "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
   "report.categories.other": "Other",
-  "report.categories.spam": "Spam",
+  "report.categories.spam": "Søppelpost",
   "report.categories.violation": "Content violates one or more server rules",
   "report.category.subtitle": "Choose the best match",
   "report.category.title": "Tell us what's going on with this {type}",
-  "report.category.title_account": "profile",
-  "report.category.title_status": "post",
-  "report.close": "Done",
+  "report.category.title_account": "profil",
+  "report.category.title_status": "innlegg",
+  "report.close": "Utført",
   "report.comment.title": "Is there anything else you think we should know?",
   "report.forward": "Videresend til {target}",
   "report.forward_hint": "Denne kontoen er fra en annen tjener. Vil du sende en anonymisert kopi av rapporten dit også?",
-  "report.mute": "Mute",
+  "report.mute": "Demp",
   "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
-  "report.next": "Next",
+  "report.next": "Neste",
   "report.placeholder": "Tilleggskommentarer",
-  "report.reasons.dislike": "I don't like it",
+  "report.reasons.dislike": "Jeg liker det ikke",
   "report.reasons.dislike_description": "It is not something you want to see",
   "report.reasons.other": "It's something else",
   "report.reasons.other_description": "The issue does not fit into other categories",
-  "report.reasons.spam": "It's spam",
+  "report.reasons.spam": "Det er spam",
   "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
   "report.reasons.violation": "It violates server rules",
   "report.reasons.violation_description": "You are aware that it breaks specific rules",
@@ -515,7 +514,7 @@
   "upload_error.poll": "Filopplasting inni avstemninger er ikke tillatt.",
   "upload_form.audio_description": "Beskriv det for folk med hørselstap",
   "upload_form.description": "Beskriv for synshemmede",
-  "upload_form.description_missing": "No description added",
+  "upload_form.description_missing": "Ingen beskrivelse lagt til",
   "upload_form.edit": "Rediger",
   "upload_form.thumbnail": "Endre miniatyrbilde",
   "upload_form.undo": "Angre",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index 83cd3a632..e13c68c3f 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -70,7 +70,7 @@
   "column.blocks": "Personas blocadas",
   "column.bookmarks": "Marcadors",
   "column.community": "Flux public local",
-  "column.direct": "Messatges dirèctes",
+  "column.conversations": "Conversations",
   "column.directory": "Percórrer los perfils",
   "column.domain_blocks": "Domenis resconduts",
   "column.favourites": "Favorits",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Sonque local",
   "community.column_settings.media_only": "Solament los mèdias",
   "community.column_settings.remote_only": "Sonque alonhat",
-  "compose_form.direct_message_warning": "Sols los mencionats poiràn veire aqueste tut.",
   "compose_form.direct_message_warning_learn_more": "Ne saber mai",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Aqueste tut serà pas ligat a cap d’etiqueta estant qu’es pas listat. Òm pòt pas cercar que los tuts publics per etiqueta.",
   "compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo mond pòt vos sègre e veire los estatuts reservats als seguidors.",
   "compose_form.lock_disclaimer.lock": "clavat",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Avètz pas blocat degun pel moment.",
   "empty_column.bookmarked_statuses": "Avètz pas cap de tuts marcats pel moment. Quand ne marquetz un, serà mostrat aquí.",
   "empty_column.community": "Lo flux public local es void. Escrivètz quicòm per lo garnir !",
-  "empty_column.direct": "Avètz pas encara cap de messatges. Quand ne mandatz un o que ne recebètz un, serà mostrat aquí.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "I a pas encara cap de domeni amagat.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Avètz pas encara cap de tut favorit. Quand n’auretz un, apareisserà aquí.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "partejar",
   "keyboard_shortcuts.column": "centrar un estatut a una colomna",
   "keyboard_shortcuts.compose": "anar al camp tèxte",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "descripcion",
-  "keyboard_shortcuts.direct": "dobrir la colomna de messatges dirèctes",
   "keyboard_shortcuts.down": "far davalar dins la lista",
   "keyboard_shortcuts.enter": "dobrir los estatuts",
   "keyboard_shortcuts.favourite": "apondre als favorits",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Marcadors",
   "navigation_bar.community_timeline": "Flux public local",
   "navigation_bar.compose": "Escriure un nòu tut",
-  "navigation_bar.direct": "Messatges dirèctes",
   "navigation_bar.discover": "Trobar",
   "navigation_bar.domain_blocks": "Domenis resconduts",
   "navigation_bar.edit_profile": "Modificar lo perfil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Levar lo sondatge",
   "privacy.change": "Ajustar la confidencialitat del messatge",
   "privacy.direct.long": "Mostrar pas qu’a las personas mencionadas",
-  "privacy.direct.short": "Dirècte",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Mostrar pas qu’a vòstres seguidors",
-  "privacy.private.short": "Privat",
-  "privacy.public.long": "Mostrar dins los fluxes publics",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Mostrar pas dins los fluxes publics",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Pas-listat",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "Cargament…",
diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json
index 4373287dd..09d473ef4 100644
--- a/app/javascript/mastodon/locales/pa.json
+++ b/app/javascript/mastodon/locales/pa.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blocked users",
   "column.bookmarks": "Bookmarks",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Blocked domains",
   "column.favourites": "Favourites",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no blocked domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Visible for followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index be086c830..978c3b840 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -70,7 +70,7 @@
   "column.blocks": "Zablokowani użytkownicy",
   "column.bookmarks": "Zakładki",
   "column.community": "Lokalna oś czasu",
-  "column.direct": "Wiadomości bezpośrednie",
+  "column.conversations": "Konwersacje",
   "column.directory": "Przeglądaj profile",
   "column.domain_blocks": "Ukryte domeny",
   "column.favourites": "Ulubione",
@@ -96,8 +96,8 @@
   "community.column_settings.local_only": "Tylko Lokalne",
   "community.column_settings.media_only": "Tylko zawartość multimedialna",
   "community.column_settings.remote_only": "Tylko Zdalne",
-  "compose_form.direct_message_warning": "Ten wpis będzie widoczny tylko dla wszystkich wspomnianych użytkowników.",
   "compose_form.direct_message_warning_learn_more": "Dowiedz się więcej",
+  "compose_form.encryption_warning": "Posty na Mastodon nie są szyfrowane end-to-end. Nie udostępniaj żadnych wrażliwych informacji przez Mastodon.",
   "compose_form.hashtag_warning": "Ten wpis nie będzie widoczny pod podanymi hasztagami, ponieważ jest oznaczony jako niewidoczny. Tylko publiczne wpisy mogą zostać znalezione z użyciem hasztagów.",
   "compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. Każdy, kto Cię śledzi, może wyświetlać Twoje wpisy przeznaczone tylko dla śledzących.",
   "compose_form.lock_disclaimer.lock": "zablokowane",
@@ -170,7 +170,7 @@
   "empty_column.blocks": "Nie zablokowałeś(-aś) jeszcze żadnego użytkownika.",
   "empty_column.bookmarked_statuses": "Nie dodałeś(-aś) żadnego wpisu do zakładek. Kiedy to zrobisz, pojawi się on tutaj.",
   "empty_column.community": "Lokalna oś czasu jest pusta. Napisz coś publicznie, aby zagaić!",
-  "empty_column.direct": "Nie masz żadnych wiadomości bezpośrednich. Kiedy dostaniesz lub wyślesz jakąś, pojawi się ona tutaj.",
+  "empty_column.conversations": "Gdy wyślesz lub otrzymasz wpis, który jest widoczny tylko dla osób w nim wymienionych, pojawi się on tutaj.",
   "empty_column.domain_blocks": "Brak ukrytych domen.",
   "empty_column.explore_statuses": "Nic nie jest w tej chwili popularne. Sprawdź później!",
   "empty_column.favourited_statuses": "Nie dodałeś(-aś) żadnego wpisu do ulubionych. Kiedy to zrobisz, pojawi się on tutaj.",
@@ -234,8 +234,8 @@
   "keyboard_shortcuts.boost": "aby podbić wpis",
   "keyboard_shortcuts.column": "aby przejść do wpisu z jednej z kolumn",
   "keyboard_shortcuts.compose": "aby przejść do pola tworzenia wpisu",
+  "keyboard_shortcuts.conversations": "aby otworzyć kolumnę konwersacji",
   "keyboard_shortcuts.description": "Opis",
-  "keyboard_shortcuts.direct": "aby otworzyć kolumnę wiadomości bezpośrednich",
   "keyboard_shortcuts.down": "aby przejść na dół listy",
   "keyboard_shortcuts.enter": "aby otworzyć wpis",
   "keyboard_shortcuts.favourite": "aby dodać do ulubionych",
@@ -294,7 +294,6 @@
   "navigation_bar.bookmarks": "Zakładki",
   "navigation_bar.community_timeline": "Lokalna oś czasu",
   "navigation_bar.compose": "Utwórz nowy wpis",
-  "navigation_bar.direct": "Wiadomości bezpośrednie",
   "navigation_bar.discover": "Odkrywaj",
   "navigation_bar.domain_blocks": "Ukryte domeny",
   "navigation_bar.edit_profile": "Edytuj profil",
@@ -372,12 +371,12 @@
   "poll_button.remove_poll": "Usuń głosowanie",
   "privacy.change": "Dostosuj widoczność wpisów",
   "privacy.direct.long": "Widoczny tylko dla wspomnianych",
-  "privacy.direct.short": "Bezpośrednio",
+  "privacy.direct.short": "Tylko wspominane osoby",
   "privacy.private.long": "Widoczny tylko dla osób, które Cię śledzą",
-  "privacy.private.short": "Tylko dla śledzących",
-  "privacy.public.long": "Widoczny na publicznych osiach czasu",
+  "privacy.private.short": "Tylko śledzący",
+  "privacy.public.long": "Widoczne dla każdego",
   "privacy.public.short": "Publiczny",
-  "privacy.unlisted.long": "Niewidoczny na publicznych osiach czasu",
+  "privacy.unlisted.long": "Widoczne dla każdego, z wyłączeniem funkcji odkrywania",
   "privacy.unlisted.short": "Niewidoczny",
   "refresh": "Odśwież",
   "regeneration_indicator.label": "Ładuję…",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index f33757945..c7f6238d0 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -70,7 +70,7 @@
   "column.blocks": "Usuários bloqueados",
   "column.bookmarks": "Salvos",
   "column.community": "Linha local",
-  "column.direct": "Toots Diretos",
+  "column.conversations": "Conversations",
   "column.directory": "Explorar perfis",
   "column.domain_blocks": "Domínios bloqueados",
   "column.favourites": "Favoritos",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Somente local",
   "community.column_settings.media_only": "Somente mídia",
   "community.column_settings.remote_only": "Somente global",
-  "compose_form.direct_message_warning": "Este toot só será enviado aos usuários mencionados.",
   "compose_form.direct_message_warning_learn_more": "Saiba mais",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Este toot não aparecerá em nenhuma hashtag porque está como não-listado. Somente toots públicos podem ser pesquisados por hashtag.",
   "compose_form.lock_disclaimer": "Seu perfil não está {locked}. Qualquer um pode te seguir e ver os toots privados.",
   "compose_form.lock_disclaimer.lock": "trancado",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Nada aqui.",
   "empty_column.bookmarked_statuses": "Nada aqui. Quando você salvar um toot, ele aparecerá aqui.",
   "empty_column.community": "A linha local está vazia. Publique algo para começar!",
-  "empty_column.direct": "Nada aqui. Quando você enviar ou receber toots diretos, eles aparecerão aqui.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Nada aqui.",
   "empty_column.explore_statuses": "Nada está em alta no momento. Volte mais tarde!",
   "empty_column.favourited_statuses": "Nada aqui. Quando você favoritar um toot, ele aparecerá aqui.",
@@ -190,7 +190,7 @@
   "explore.search_results": "Resultado da pesquisa",
   "explore.suggested_follows": "Para você",
   "explore.title": "Explorar",
-  "explore.trending_links": "Novidades",
+  "explore.trending_links": "Notícias",
   "explore.trending_statuses": "Posts",
   "explore.trending_tags": "Hashtags",
   "follow_recommendations.done": "Salvar",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "dar boost",
   "keyboard_shortcuts.column": "focar na coluna",
   "keyboard_shortcuts.compose": "focar no compositor",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Descrição",
-  "keyboard_shortcuts.direct": "abrir toots diretos",
   "keyboard_shortcuts.down": "mover para baixo",
   "keyboard_shortcuts.enter": "abrir toot",
   "keyboard_shortcuts.favourite": "favoritar toot",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Salvos",
   "navigation_bar.community_timeline": "Linha do tempo local",
   "navigation_bar.compose": "Compor novo toot",
-  "navigation_bar.direct": "Toots diretos",
   "navigation_bar.discover": "Descobrir",
   "navigation_bar.domain_blocks": "Domínios bloqueados",
   "navigation_bar.edit_profile": "Editar perfil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Remover enquete",
   "privacy.change": "Alterar privacidade do toot",
   "privacy.direct.long": "Postar só para usuários mencionados",
-  "privacy.direct.short": "Direto",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Postar só para seguidores",
-  "privacy.private.short": "Privado",
-  "privacy.public.long": "Postar em linhas públicas",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "Não postar em linhas públicas",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Não-listado",
   "refresh": "Atualizar",
   "regeneration_indicator.label": "Carregando…",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index 01b9c4f65..f36683346 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -70,7 +70,7 @@
   "column.blocks": "Utilizadores Bloqueados",
   "column.bookmarks": "Itens salvos",
   "column.community": "Cronologia local",
-  "column.direct": "Mensagens diretas",
+  "column.conversations": "Conversações",
   "column.directory": "Procurar perfis",
   "column.domain_blocks": "Domínios escondidos",
   "column.favourites": "Favoritos",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local apenas",
   "community.column_settings.media_only": "Somente media",
   "community.column_settings.remote_only": "Remoto apenas",
-  "compose_form.direct_message_warning": "Esta publicação será enviada apenas para os utilizadores mencionados.",
   "compose_form.direct_message_warning_learn_more": "Conhecer mais",
+  "compose_form.encryption_warning": "As publicações no Mastodon não são criptografadas de ponta a ponta. Não partilhe nenhuma informação sensível através do Mastodon.",
   "compose_form.hashtag_warning": "Este toot não será listado em nenhuma hashtag por ser não listado. Apenas toots públics podem ser pesquisados por hashtag.",
   "compose_form.lock_disclaimer": "A sua conta não é {locked}. Qualquer pessoa pode segui-lo e ver as publicações direcionadas apenas a seguidores.",
   "compose_form.lock_disclaimer.lock": "bloqueado",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ainda não bloqueaste qualquer utilizador.",
   "empty_column.bookmarked_statuses": "Ainda não adicionou nenhum toot aos Itens salvos. Quando adicionar, eles serão exibidos aqui.",
   "empty_column.community": "A timeline local está vazia. Escreve algo publicamente para começar!",
-  "empty_column.direct": "Ainda não tem qualquer mensagem direta. Quando enviar ou receber alguma, ela irá aparecer aqui.",
+  "empty_column.conversations": "Quando enviar ou receber uma publicação que seja visível apenas para as pessoas nela mencionadas, ela aparecerá aqui.",
   "empty_column.domain_blocks": "Ainda não há qualquer domínio escondido.",
   "empty_column.explore_statuses": "Nada em destaque por agora. Volte mais tarde!",
   "empty_column.favourited_statuses": "Ainda não tens quaisquer toots favoritos. Quando tiveres algum, ele irá aparecer aqui.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "para partilhar",
   "keyboard_shortcuts.column": "para focar uma publicação numa das colunas",
   "keyboard_shortcuts.compose": "para focar na área de publicação",
+  "keyboard_shortcuts.conversations": "para abrir a coluna de conversações",
   "keyboard_shortcuts.description": "Descrição",
-  "keyboard_shortcuts.direct": "para abrir a coluna das mensagens diretas",
   "keyboard_shortcuts.down": "para mover para baixo na lista",
   "keyboard_shortcuts.enter": "para expandir uma publicação",
   "keyboard_shortcuts.favourite": "para adicionar aos favoritos",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Itens salvos",
   "navigation_bar.community_timeline": "Cronologia local",
   "navigation_bar.compose": "Escrever novo toot",
-  "navigation_bar.direct": "Mensagens diretas",
   "navigation_bar.discover": "Descobrir",
   "navigation_bar.domain_blocks": "Domínios escondidos",
   "navigation_bar.edit_profile": "Editar perfil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Remover votação",
   "privacy.change": "Ajustar a privacidade da publicação",
   "privacy.direct.long": "Apenas para utilizadores mencionados",
-  "privacy.direct.short": "Directo",
+  "privacy.direct.short": "Apenas pessoas que menciono",
   "privacy.private.long": "Apenas para os seguidores",
-  "privacy.private.short": "Privado",
-  "privacy.public.long": "Publicar em todos os feeds",
+  "privacy.private.short": "Apenas seguidores",
+  "privacy.public.long": "Visível para todos",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "Não publicar nos feeds públicos",
+  "privacy.unlisted.long": "Visível para todos, mas não incluir em funcionalidades de divulgação",
   "privacy.unlisted.short": "Não listar",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "A carregar…",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 49babba8b..5a0932f5b 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -70,7 +70,7 @@
   "column.blocks": "Utilizatori blocați",
   "column.bookmarks": "Marcaje",
   "column.community": "Cronologie locală",
-  "column.direct": "Mesaje directe",
+  "column.conversations": "Conversations",
   "column.directory": "Explorează profiluri",
   "column.domain_blocks": "Domenii blocate",
   "column.favourites": "Favorite",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Doar local",
   "community.column_settings.media_only": "Doar media",
   "community.column_settings.remote_only": "Doar la distanţă",
-  "compose_form.direct_message_warning": "Această postare va fi trimisă doar utilizatorilor menționați.",
   "compose_form.direct_message_warning_learn_more": "Află mai multe",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Această postare nu va fi listată sub niciun hashtag deoarece este nelistată. Doar postările publice pot fi căutate cu un hashtag.",
   "compose_form.lock_disclaimer": "Contul tău nu este {locked}. Oricine se poate abona la tine pentru a îți vedea postările numai pentru abonați.",
   "compose_form.lock_disclaimer.lock": "privat",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Momentan nu ai blocat niciun utilizator.",
   "empty_column.bookmarked_statuses": "Momentan nu ai nicio postare marcată. Când vei marca una, va apărea aici.",
   "empty_column.community": "Nu există nimic în cronologia locală. Postează ceva public pentru a sparge gheața!",
-  "empty_column.direct": "Momentan nu ai niciun mesaj direct. Când trimiți sau primești un mesaj, va apărea aici.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Momentan nu există domenii blocate.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Momentan nu ai nicio postare favorită. Când vei adăuga una, va apărea aici.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Distribuie postarea",
   "keyboard_shortcuts.column": "Focalizează pe coloană",
   "keyboard_shortcuts.compose": "Focalizează pe zona de text",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Descriere",
-  "keyboard_shortcuts.direct": "Deschide coloana de mesaje directe",
   "keyboard_shortcuts.down": "Coboară în listă",
   "keyboard_shortcuts.enter": "Deschide postarea",
   "keyboard_shortcuts.favourite": "Adaugă postarea la favorite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Marcaje",
   "navigation_bar.community_timeline": "Cronologie locală",
   "navigation_bar.compose": "Compune o nouă postare",
-  "navigation_bar.direct": "Mesaje directe",
   "navigation_bar.discover": "Descoperă",
   "navigation_bar.domain_blocks": "Domenii blocate",
   "navigation_bar.edit_profile": "Modifică profilul",
@@ -369,10 +368,10 @@
   "privacy.direct.long": "Vizibil doar pentru utilizatorii menționați",
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Vizibil doar pentru abonați",
-  "privacy.private.short": "Doar abonați",
-  "privacy.public.long": "Vizibil pentru toți, afișat în cronologiile publice",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Vizibil pentru toți, dar nu și în cronologiile publice",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Nelistat",
   "refresh": "Reîncarcă",
   "regeneration_indicator.label": "Se încarcă…",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 8b17bde6c..57ae4db85 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -70,7 +70,7 @@
   "column.blocks": "Заблокированные пользователи",
   "column.bookmarks": "Закладки",
   "column.community": "Локальная лента",
-  "column.direct": "Личные сообщения",
+  "column.conversations": "Диалоги",
   "column.directory": "Просмотр профилей",
   "column.domain_blocks": "Заблокированные домены",
   "column.favourites": "Избранное",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Только локальные",
   "community.column_settings.media_only": "Только с медиафайлами",
   "community.column_settings.remote_only": "Только удалённые",
-  "compose_form.direct_message_warning": "Адресованные посты отправляются и видны только упомянутым в них пользователям.",
   "compose_form.direct_message_warning_learn_more": "Подробнее",
+  "compose_form.encryption_warning": "Посты в Mastodon не защищены сквозным шифрованием. Не делитесь потенциально опасной информацией.",
   "compose_form.hashtag_warning": "Так как этот пост не публичный, он не отобразится в поиске по хэштегам.",
   "compose_form.lock_disclaimer": "Ваша учётная запись {locked}. Любой пользователь сможет подписаться на вас и просматривать посты для подписчиков.",
   "compose_form.lock_disclaimer.lock": "не закрыта",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Вы ещё никого не заблокировали.",
   "empty_column.bookmarked_statuses": "У вас пока нет постов в закладках. Как добавите один, он отобразится здесь.",
   "empty_column.community": "Локальная лента пуста. Напишите что-нибудь, чтобы разогреть народ!",
-  "empty_column.direct": "У вас пока нет личных сообщений. Как только вы отправите или получите одно, оно появится здесь.",
+  "empty_column.conversations": "Здесь отображаются адресованные посты. Как только вы отправите или получите один, он отобразится здесь.",
   "empty_column.domain_blocks": "Скрытых доменов пока нет.",
   "empty_column.explore_statuses": "Нет актуального. Проверьте позже!",
   "empty_column.favourited_statuses": "Вы не добавили ни один пост в «Избранное». Как только вы это сделаете, он появится здесь.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "продвинуть пост",
   "keyboard_shortcuts.column": "фокус на одном из столбцов",
   "keyboard_shortcuts.compose": "фокус на поле ввода",
+  "keyboard_shortcuts.conversations": "открыть колонку диалогов",
   "keyboard_shortcuts.description": "Описание",
-  "keyboard_shortcuts.direct": "чтобы показать колонку личных сообщений",
   "keyboard_shortcuts.down": "вниз по списку",
   "keyboard_shortcuts.enter": "открыть пост",
   "keyboard_shortcuts.favourite": "в избранное",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Закладки",
   "navigation_bar.community_timeline": "Локальная лента",
   "navigation_bar.compose": "Создать новый пост",
-  "navigation_bar.direct": "Личные сообщения",
   "navigation_bar.discover": "Изучайте",
   "navigation_bar.domain_blocks": "Скрытые домены",
   "navigation_bar.edit_profile": "Изменить профиль",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Удалить опрос",
   "privacy.change": "Изменить видимость поста",
   "privacy.direct.long": "Показать только упомянутым",
-  "privacy.direct.short": "Адресованный",
+  "privacy.direct.short": "Для упомянутых",
   "privacy.private.long": "Показать только подписчикам",
-  "privacy.private.short": "Приватный",
-  "privacy.public.long": "Показать в публичных лентах",
+  "privacy.private.short": "Для подписчиков",
+  "privacy.public.long": "Виден всем",
   "privacy.public.short": "Публичный",
-  "privacy.unlisted.long": "Не показывать в публичных лентах",
+  "privacy.unlisted.long": "Виден всем, но не через функции обзора",
   "privacy.unlisted.short": "Скрытый",
   "refresh": "Обновить",
   "regeneration_indicator.label": "Загрузка…",
diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json
index ef06ba0b1..ed5dc9ebd 100644
--- a/app/javascript/mastodon/locales/sa.json
+++ b/app/javascript/mastodon/locales/sa.json
@@ -70,7 +70,7 @@
   "column.blocks": "निषिद्धभोक्तारः",
   "column.bookmarks": "पुटचिह्नानि",
   "column.community": "स्थानीयसमयतालिका",
-  "column.direct": "प्रत्यक्षसन्देशाः",
+  "column.conversations": "Conversations",
   "column.directory": "व्यक्तित्वानि दृश्यन्ताम्",
   "column.domain_blocks": "निषिद्धप्रदेशाः",
   "column.favourites": "प्रियाः",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "केवलं स्थानीयम्",
   "community.column_settings.media_only": "सामग्री केवलम्",
   "community.column_settings.remote_only": "दर्गमः केवलम्",
-  "compose_form.direct_message_warning": "दौत्यमेतत्केवलमुल्लेखितजनानां कृते वर्तते",
   "compose_form.direct_message_warning_learn_more": "अधिकं ज्ञायताम्",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "न कस्मिन्नपि प्रचलितवस्तुषु सूचितमिदं दौत्यम् । केवलं सार्वजनिकदौत्यानि प्रचलितवस्तुचिह्नेन अन्वेषयितुं शक्यते ।",
   "compose_form.lock_disclaimer": "तव लेखा न प्रवेष्टुमशक्या {locked} । कोऽप्यनुसर्ता ते केवलमनुसर्तृृणां कृते स्थितानि दौत्यानि द्रष्टुं शक्नोति ।",
   "compose_form.lock_disclaimer.lock": "अवरुद्धः",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "नैकोऽप्युपभोक्ता निषिद्धो वर्तते",
   "empty_column.bookmarked_statuses": "नैकमपि पुटचिह्नयुक्तदौत्यानि सन्ति । यदा भविष्यति तदत्र दृश्यते ।",
   "empty_column.community": "स्थानीयसमयतालिका रिक्ता । सार्वजनिकत्वेनाऽत्र किमपि लिख्यताम् ।",
-  "empty_column.direct": "नैकोऽपि प्रत्यक्षसन्देशो वर्तते । यदा प्रेष्यते वा प्राप्यतेऽत्र दृश्यते",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "न निषिद्धप्रदेशाः सन्ति ।",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "न प्रियदौत्यानि सन्ति । यदा प्रीतिरित्यङ्क्यतेऽत्र दृश्यते ।",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Visible for followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json
index 1375f2fb6..fe6dd22cf 100644
--- a/app/javascript/mastodon/locales/sc.json
+++ b/app/javascript/mastodon/locales/sc.json
@@ -70,7 +70,7 @@
   "column.blocks": "Persones blocadas",
   "column.bookmarks": "Sinnalibros",
   "column.community": "Lìnia de tempus locale",
-  "column.direct": "Messàgios diretos",
+  "column.conversations": "Conversations",
   "column.directory": "Nàviga in is profilos",
   "column.domain_blocks": "Domìnios blocados",
   "column.favourites": "Preferidos",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Isceti locale",
   "community.column_settings.media_only": "Isceti multimediale",
   "community.column_settings.remote_only": "Isceti remotu",
-  "compose_form.direct_message_warning": "Custa publicatzione at a èssere imbiada isceti a is persones mentovadas.",
   "compose_form.direct_message_warning_learn_more": "Àteras informatziones",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Custa publicatzione no at a èssere ammustrada in peruna eticheta, dae chi no est listada. Isceti is publicatziones pùblicas podent èssere chircadas cun etichetas.",
   "compose_form.lock_disclaimer": "Su contu tuo no est {locked}. Cale si siat persone ti podet sighire pro bìdere is messàgios tuos chi imbies a sa gente chi ti sighit.",
   "compose_form.lock_disclaimer.lock": "blocadu",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "No as blocadu ancora nemos.",
   "empty_column.bookmarked_statuses": "Non tenes ancora peruna publicatzione in is marcadores. Cando nd'as a agiùnghere una, at a èssere ammustrada inoghe.",
   "empty_column.community": "Sa lìnia de tempus locale est bòida. Iscrie inoghe pro cumintzare sa festa!",
-  "empty_column.direct": "Non tenes ancora perunu messàgiu deretu. Cando nd'as a imbiare o nd'as a retzire unu, at a èssere ammustradu inoghe.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Non tenes ancora perunu domìniu blocadu.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Non tenes ancora peruna publicatzione in is preferidos. Cando nd'as a agiùnghere una, at a èssere ammustrada inoghe.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "pro cumpartzire",
   "keyboard_shortcuts.column": "pro atzentrare una publicatzione in una de is colunnas",
   "keyboard_shortcuts.compose": "pro atzentrare in s'àrea de cumpositzione de testu",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Descritzione",
-  "keyboard_shortcuts.direct": "pro abèrrere sa colunna de messàgios diretos",
   "keyboard_shortcuts.down": "pro mòere in bàsciu in sa lista",
   "keyboard_shortcuts.enter": "pro abèrrere una publicatzione",
   "keyboard_shortcuts.favourite": "pro marcare comente a preferidu",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Sinnalibros",
   "navigation_bar.community_timeline": "Lìnia de tempus locale",
   "navigation_bar.compose": "Cumpone una publicatzione noa",
-  "navigation_bar.direct": "Messàgios diretos",
   "navigation_bar.discover": "Iscoberi",
   "navigation_bar.domain_blocks": "Domìnios blocados",
   "navigation_bar.edit_profile": "Modìfica profilu",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Cantzella su sondàgiu",
   "privacy.change": "Modìfica s'istadu de riservadesa",
   "privacy.direct.long": "Visìbile isceti pro is persones mentovadas",
-  "privacy.direct.short": "Deretu",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Visìbile isceti pro chie ti sighit",
-  "privacy.private.short": "Isceti pro chie ti sighit",
-  "privacy.public.long": "Visìbile pro chie si siat, ammustra in lìnias de tempus pùblicas",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Pùblicu",
-  "privacy.unlisted.long": "Visìbile pro chie si siat, però no ammustres in lìnias de tempus pùblicas",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Esclùidu de sa lista",
   "refresh": "Atualiza",
   "regeneration_indicator.label": "Carrighende…",
diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json
index 26c98ea35..1190bbe00 100644
--- a/app/javascript/mastodon/locales/si.json
+++ b/app/javascript/mastodon/locales/si.json
@@ -70,7 +70,7 @@
   "column.blocks": "අවහිර කළ පරිශීලකයින්",
   "column.bookmarks": "පොත් යොමු",
   "column.community": "Local timeline",
-  "column.direct": "සෘජු පණිවිඩ",
+  "column.conversations": "Conversations",
   "column.directory": "පැතිකඩයන් පිරික්සන්න",
   "column.domain_blocks": "අවහිර කළ වසම්",
   "column.favourites": "ප්‍රියතමයන්",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "ස්ථානීයව පමණයි",
   "community.column_settings.media_only": "මාධ්‍ය පමණයි",
   "community.column_settings.remote_only": "දුරස්ථව පමණයි",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "තව දැනගන්න",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "අගුළු දමා ඇත",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "ඔබ තවමත් කිසිදු පරිශීලකයෙකු අවහිර කර නැත.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "අවහිර කළ වසම් නොමැත.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "සවිස්තරය",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "පොත් යොමු",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "සෘජු පණිවිඩ",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "පැතිකඩ සංස්කරණය",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Remove poll",
   "privacy.change": "Adjust status privacy",
   "privacy.direct.long": "Visible for mentioned users only",
-  "privacy.direct.short": "සෘජු",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Visible for followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "ප්‍රසිද්ධ",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "නැවුම් කරන්න",
   "regeneration_indicator.label": "පූරණය වෙමින්…",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 7848064c8..aee720837 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blokovaní užívatelia",
   "column.bookmarks": "Záložky",
   "column.community": "Miestna časová os",
-  "column.direct": "Priame správy",
+  "column.conversations": "Conversations",
   "column.directory": "Prehľadávaj profily",
   "column.domain_blocks": "Skryté domény",
   "column.favourites": "Obľúbené",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Iba miestna",
   "community.column_settings.media_only": "Iba médiá",
   "community.column_settings.remote_only": "Iba odľahlé",
-  "compose_form.direct_message_warning": "Tento príspevok bude boslaný iba spomenutým užívateľom.",
   "compose_form.direct_message_warning_learn_more": "Zisti viac",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Tento toot nebude zobrazený pod žiadným haštagom lebo nieje listovaný. Iba verejné tooty môžu byť nájdené podľa haštagu.",
   "compose_form.lock_disclaimer": "Tvoj účet nie je {locked}. Ktokoľvek ťa môže nasledovať a vidieť tvoje správy pre sledujúcich.",
   "compose_form.lock_disclaimer.lock": "zamknutý",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ešte si nikoho nezablokoval/a.",
   "empty_column.bookmarked_statuses": "Ešte nemáš žiadné záložky. Keď si pridáš príspevok k záložkám, zobrazí sa tu.",
   "empty_column.community": "Lokálna časová os je prázdna. Napíšte niečo, aby sa to tu začalo hýbať!",
-  "empty_column.direct": "Ešte nemáš žiadne priame správy. Keď nejakú pošleš, alebo dostaneš, ukáže sa tu.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Žiadne domény ešte niesú skryté.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Nemáš obľúbené ešte žiadne príspevky. Keď si nejaký obľúbiš, bude zobrazený práve tu.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "Vyzdvihni príspevok",
   "keyboard_shortcuts.column": "zameraj sa na príspevok v jednom zo stĺpcov",
   "keyboard_shortcuts.compose": "zameraj sa na písaciu plochu",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Popis",
-  "keyboard_shortcuts.direct": "pre otvorenie panelu priamých správ",
   "keyboard_shortcuts.down": "posunúť sa dole v zozname",
   "keyboard_shortcuts.enter": "Otvor príspevok",
   "keyboard_shortcuts.favourite": "pridaj do obľúbených",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Záložky",
   "navigation_bar.community_timeline": "Miestna časová os",
   "navigation_bar.compose": "Napíš nový príspevok",
-  "navigation_bar.direct": "Priame správy",
   "navigation_bar.discover": "Objavuj",
   "navigation_bar.domain_blocks": "Skryté domény",
   "navigation_bar.edit_profile": "Uprav profil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Odstráň anketu",
   "privacy.change": "Uprav súkromie príspevku",
   "privacy.direct.long": "Pošli iba spomenutým užívateľom",
-  "privacy.direct.short": "Súkromne",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Pošli iba následovateľom",
-  "privacy.private.short": "Iba pre sledujúcich",
-  "privacy.public.long": "Pošli všetkým verejne",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Verejné",
-  "privacy.unlisted.long": "Neposielaj do verejných časových osí",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Verejne, ale nezobraziť v osi",
   "refresh": "Obnoviť",
   "regeneration_indicator.label": "Načítava sa…",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index f8bd9058b..23061d152 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blokirani uporabniki",
   "column.bookmarks": "Zaznamki",
   "column.community": "Lokalna časovnica",
-  "column.direct": "Neposredna sporočila",
+  "column.conversations": "Conversations",
   "column.directory": "Prebrskaj profile",
   "column.domain_blocks": "Skrite domene",
   "column.favourites": "Priljubljene",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Samo krajevno",
   "community.column_settings.media_only": "Samo mediji",
   "community.column_settings.remote_only": "Samo oddaljeno",
-  "compose_form.direct_message_warning": "Ta tut bo viden le vsem omenjenim uporabnikom.",
   "compose_form.direct_message_warning_learn_more": "Nauči se več",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Ta tut ne bo naveden pod nobenim ključnikom, ker ni javen. Samo javne tute lahko iščete s ključniki.",
   "compose_form.lock_disclaimer": "Vaš račun ni {locked}. Vsakdo vam lahko sledi in si ogleda objave, ki so namenjene samo sledilcem.",
   "compose_form.lock_disclaimer.lock": "zaklenjen",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Niste še blokirali nobenega uporabnika.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "Lokalna časovnica je prazna. Napišite nekaj javnega, da se bo žoga zakotalila!",
-  "empty_column.direct": "Nimate še nobenih neposrednih sporočil. Ko ga boste poslali ali prejeli, se bo prikazal tukaj.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Še vedno ni skritih domen.",
   "empty_column.explore_statuses": "Trenutno ni nič v trendu. Preverite znova kasneje!",
   "empty_column.favourited_statuses": "Nimate priljubljenih tutov. Ko boste vzljubili kakšnega, se bo prikazal tukaj.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "spodbudi",
   "keyboard_shortcuts.column": "fokusiraj na status v enemu od stolpcev",
   "keyboard_shortcuts.compose": "fokusiraj na območje za sestavljanje besedila",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Opis",
-  "keyboard_shortcuts.direct": "odpri stolpec za neposredna sporočila",
   "keyboard_shortcuts.down": "premakni se navzdol po seznamu",
   "keyboard_shortcuts.enter": "odpri status",
   "keyboard_shortcuts.favourite": "vzljubi",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Zaznamki",
   "navigation_bar.community_timeline": "Lokalna časovnica",
   "navigation_bar.compose": "Sestavi nov tut",
-  "navigation_bar.direct": "Neposredna sporočila",
   "navigation_bar.discover": "Odkrijte",
   "navigation_bar.domain_blocks": "Skrite domene",
   "navigation_bar.edit_profile": "Uredi profil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Odstrani anketo",
   "privacy.change": "Prilagodi zasebnost statusa",
   "privacy.direct.long": "Objavi samo omenjenim uporabnikom",
-  "privacy.direct.short": "Neposredno",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Objavi samo sledilcem",
-  "privacy.private.short": "Samo sledilci",
-  "privacy.public.long": "Objavi na javne časovnice",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Javno",
-  "privacy.unlisted.long": "Ne objavi na javne časovnice",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Ni prikazano",
   "refresh": "Osveži",
   "regeneration_indicator.label": "Nalaganje…",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index d0472db29..3535d4ea2 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -70,7 +70,7 @@
   "column.blocks": "Përdorues të bllokuar",
   "column.bookmarks": "Faqerojtës",
   "column.community": "Rrjedhë kohore vendore",
-  "column.direct": "Mesazhe të drejtpërdrejtë",
+  "column.conversations": "Biseda",
   "column.directory": "Shfletoni profile",
   "column.domain_blocks": "Përkatësi të bllokuara",
   "column.favourites": "Të parapëlqyer",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Vetëm vendore",
   "community.column_settings.media_only": "Vetëm Media",
   "community.column_settings.remote_only": "Vetëm të largëta",
-  "compose_form.direct_message_warning": "Ky mesazh do t’u dërgohet përdoruesve të përmendur.",
   "compose_form.direct_message_warning_learn_more": "Mësoni më tepër",
+  "compose_form.encryption_warning": "Postimet në Mastodon nuk fshehtëzohen skaj-më-skaj. Mos ndani me të tjerë gjëra me spec në Mastodon.",
   "compose_form.hashtag_warning": "Ky mesazh s’do të paraqitet nën ndonjë hashtag, ngaqë s’i është caktuar ndonjë. Vetëm mesazhet publike mund të kërkohen sipas hashtagësh.",
   "compose_form.lock_disclaimer": "Llogaria juaj s’është {locked}. Mund ta ndjekë cilido, për të parë postimet tuaja vetëm për ndjekësit.",
   "compose_form.lock_disclaimer.lock": "e kyçur",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "S’keni bllokuar ende ndonjë përdorues.",
   "empty_column.bookmarked_statuses": "S’keni faqeruajtur ende ndonjë mesazh. Kur faqeruani një të tillë, ai do të shfaqet këtu.",
   "empty_column.community": "Rrjedha kohore vendore është e zbrazët. Shkruani diçka publikisht që t’i hyhet valles!",
-  "empty_column.direct": "S’keni ende ndonjë mesazh të drejtpërdrejt. Kur dërgoni ose merrni një të tillë, ai do të shfaqet këtu.",
+  "empty_column.conversations": "Pasi të dërgoni ose merrni një postim që është i dukshëm vetëm për personat e përmendur në të, do të shfaqet këtu.",
   "empty_column.domain_blocks": "Ende s’ka përkatësi të fshehura.",
   "empty_column.explore_statuses": "Asgjë në modë tani. Kontrolloni më vonë!",
   "empty_column.favourited_statuses": "S’keni ende ndonjë mesazh të parapëlqyer. Kur parapëlqeni një të tillë, ai do të shfaqet këtu.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "për përforcim",
   "keyboard_shortcuts.column": "për kalim fokusi mbi një gjendje te një nga shtyllat",
   "keyboard_shortcuts.compose": "për kalim fokusi te fusha e hartimit të mesazheve",
+  "keyboard_shortcuts.conversations": "për të hapur shtyllë bisedash",
   "keyboard_shortcuts.description": "Përshkrim",
-  "keyboard_shortcuts.direct": "për hapje shtylle mesazhesh të drejtpërdrejtë",
   "keyboard_shortcuts.down": "për zbritje poshtë nëpër listë",
   "keyboard_shortcuts.enter": "për hapje gjendjeje",
   "keyboard_shortcuts.favourite": "për t’i vënë shenjë si të parapëlqyer",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Faqerojtës",
   "navigation_bar.community_timeline": "Rrjedhë kohore vendore",
   "navigation_bar.compose": "Hartoni mesazh të ri",
-  "navigation_bar.direct": "Mesazhe të drejtpërdrejtë",
   "navigation_bar.discover": "Zbuloni",
   "navigation_bar.domain_blocks": "Përkatësi të bllokuara",
   "navigation_bar.edit_profile": "Përpunoni profilin",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Hiqe pyetësorin",
   "privacy.change": "Rregulloni privatësi mesazhesh",
   "privacy.direct.long": "I dukshëm vetëm për përdorues të përmendur",
-  "privacy.direct.short": "I drejtpërdrejtë",
+  "privacy.direct.short": "Vetëm persona që përmend",
   "privacy.private.long": "I dukshëm vetëm për ndjekës",
-  "privacy.private.short": "Vetëm ndjekësve",
-  "privacy.public.long": "I dukshëm për të tërë, shfaqur në rrjedha kohore publike",
+  "privacy.private.short": "Vetëm ndjekës",
+  "privacy.public.long": "I dukshëm për të tërë",
   "privacy.public.short": "Publik",
-  "privacy.unlisted.long": "I dukshëm për të tërë, por jo në rrjedha kohore publike",
+  "privacy.unlisted.long": "I dukshëm për të tërë, por lënë jashtë nga veçoritë e zbulimit",
   "privacy.unlisted.short": "Jo në lista",
   "refresh": "Rifreskoje",
   "regeneration_indicator.label": "Po ngarkohet…",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index 7a0efa255..e732873c4 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blokirani korisnici",
   "column.bookmarks": "Bookmarks",
   "column.community": "Lokalna lajna",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Hidden domains",
   "column.favourites": "Omiljeni",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Vaš nalog nije {locked}. Svako može da Vas zaprati i da vidi objave namenjene samo Vašim pratiocima.",
   "compose_form.lock_disclaimer.lock": "zaključan",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "Lokalna lajna je prazna. Napišite nešto javno da lajna produva!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no hidden domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "da podržite",
   "keyboard_shortcuts.column": "da se prebacite na status u jednoj od kolona",
   "keyboard_shortcuts.compose": "da se prebacite na pisanje novog tuta",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Opis",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "da se pomerite na dole u listi",
   "keyboard_shortcuts.enter": "da otvorite status",
   "keyboard_shortcuts.favourite": "da označite kao omiljeno",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Lokalna lajna",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Izmeni profil",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Remove poll",
   "privacy.change": "Podesi status privatnosti",
   "privacy.direct.long": "Objavi samo korisnicima koji su pomenuti",
-  "privacy.direct.short": "Direktno",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Objavi samo pratiocima",
-  "privacy.private.short": "Samo za pratioce",
-  "privacy.public.long": "Objavi na javnoj lajni",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Javno",
-  "privacy.unlisted.long": "Ne objavljuj na javnim lajnama",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Neizlistano",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index ea6dbb5ab..15f8640c6 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -70,7 +70,7 @@
   "column.blocks": "Блокирани корисници",
   "column.bookmarks": "Обележивачи",
   "column.community": "Локална временска линија",
-  "column.direct": "Директне поруке",
+  "column.conversations": "Conversations",
   "column.directory": "Претражи налоге",
   "column.domain_blocks": "Скривени домени",
   "column.favourites": "Омиљене",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Само локално",
   "community.column_settings.media_only": "Само Медији",
   "community.column_settings.remote_only": "Само удаљено",
-  "compose_form.direct_message_warning": "Ова труба ће бити послата споменутим корисницима.",
   "compose_form.direct_message_warning_learn_more": "Сазнајте више",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Ова труба неће бити излистана под било којом тарабом јер је сакривена. Само јавне трубе могу бити претражене тарабом.",
   "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да Вас запрати и да види објаве намењене само Вашим пратиоцима.",
   "compose_form.lock_disclaimer.lock": "закључан",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Још увек немате блокираних корисника.",
   "empty_column.bookmarked_statuses": "Још увек немате обележене трубе. Када их обележите, појавиће се овде.",
   "empty_column.community": "Локална временска линија је празна. Напишите нешто јавно да започнете!",
-  "empty_column.direct": "Још увек немате директних порука. Када пошаљете или примите једну, појавиће се овде.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Још увек нема сакривених домена.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "Још увек немате труба које су вам се свиделе. Када вам се једна свиди, појавиће се овде.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "да подржите",
   "keyboard_shortcuts.column": "да се пребаците на статус у једној од колона",
   "keyboard_shortcuts.compose": "да се пребаците на писање новог тута",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Опис",
-  "keyboard_shortcuts.direct": "да отворите колону за директне поруке",
   "keyboard_shortcuts.down": "да се померите на доле у листи",
   "keyboard_shortcuts.enter": "да отворите статус",
   "keyboard_shortcuts.favourite": "да означите као омиљено",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Маркери",
   "navigation_bar.community_timeline": "Локална временска линија",
   "navigation_bar.compose": "Саставите нову трубу",
-  "navigation_bar.direct": "Директне поруке",
   "navigation_bar.discover": "Откриј",
   "navigation_bar.domain_blocks": "Сакривени домени",
   "navigation_bar.edit_profile": "Измени налог",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Уклони анкету",
   "privacy.change": "Подеси статус приватности",
   "privacy.direct.long": "Објави само корисницима који су поменути",
-  "privacy.direct.short": "Директно",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Објави само пратиоцима",
-  "privacy.private.short": "Само за пратиоце",
-  "privacy.public.long": "Објави на јавној лајни",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Јавно",
-  "privacy.unlisted.long": "Не објављуј на јавним временским линијама",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Неизлистано",
   "refresh": "Освежи",
   "regeneration_indicator.label": "Учитавање…",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index d92379fcd..1fd9d2fd2 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -32,8 +32,8 @@
   "account.mute": "Tysta @{name}",
   "account.mute_notifications": "Stäng av notifieringar från @{name}",
   "account.muted": "Tystad",
-  "account.posts": "Tutningar",
-  "account.posts_with_replies": "Tutningar och svar",
+  "account.posts": "Inlägg",
+  "account.posts_with_replies": "Inlägg och svar",
   "account.report": "Rapportera @{name}",
   "account.requested": "Inväntar godkännande. Klicka för att avbryta följarförfrågan",
   "account.share": "Dela @{name}s profil",
@@ -70,7 +70,7 @@
   "column.blocks": "Blockerade användare",
   "column.bookmarks": "Bokmärken",
   "column.community": "Lokal tidslinje",
-  "column.direct": "Direktmeddelanden",
+  "column.conversations": "Konversationer",
   "column.directory": "Bläddra bland profiler",
   "column.domain_blocks": "Dolda domäner",
   "column.favourites": "Favoriter",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Endast lokalt",
   "community.column_settings.media_only": "Endast media",
   "community.column_settings.remote_only": "Endast fjärr",
-  "compose_form.direct_message_warning": "Denna tutning kommer endast skickas till de nämnda användarna.",
   "compose_form.direct_message_warning_learn_more": "Lär dig mer",
+  "compose_form.encryption_warning": "Inlägg på Mastodon är inte end-to-end-krypterade. Dela inte någon känslig information över Mastodon.",
   "compose_form.hashtag_warning": "Denna toot kommer inte att visas under någon hashtag eftersom den är onoterad. Endast offentliga toots kan sökas med hashtag.",
   "compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vem som helst kan följa dig för att se dina inlägg som endast är för följare.",
   "compose_form.lock_disclaimer.lock": "låst",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Du har ännu ej blockerat några användare.",
   "empty_column.bookmarked_statuses": "Du har inte bokmärkt några tutar än. När du gör ett bokmärke kommer det synas här.",
   "empty_column.community": "Den lokala tidslinjen är tom. Skriv något offentligt för att sätta bollen i rullning!",
-  "empty_column.direct": "Du har inga direktmeddelanden än. När du skickar eller tar emot ett kommer det att visas här.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Det finns ännu inga dolda domäner.",
   "empty_column.explore_statuses": "Ingenting är trendigt just nu. Kom tillbaka senare!",
   "empty_column.favourited_statuses": "Du har inga favoritmarkerade toots än. När du favoritmarkerar en kommer den visas här.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "för att knuffa",
   "keyboard_shortcuts.column": "för att fokusera en status i en av kolumnerna",
   "keyboard_shortcuts.compose": "för att fokusera skrivfältet",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Beskrivning",
-  "keyboard_shortcuts.direct": "för att öppna Direktmeddelanden",
   "keyboard_shortcuts.down": "för att flytta nedåt i listan",
   "keyboard_shortcuts.enter": "för att öppna en status",
   "keyboard_shortcuts.favourite": "för att sätta som favorit",
@@ -247,7 +247,7 @@
   "keyboard_shortcuts.my_profile": "för att öppna din profil",
   "keyboard_shortcuts.notifications": "för att öppna Meddelanden",
   "keyboard_shortcuts.open_media": "öppna media",
-  "keyboard_shortcuts.pinned": "för att öppna Nålade toots",
+  "keyboard_shortcuts.pinned": "för att öppna nålade inlägg",
   "keyboard_shortcuts.profile": "för att öppna skaparens profil",
   "keyboard_shortcuts.reply": "för att svara",
   "keyboard_shortcuts.requests": "för att öppna Följförfrågningar",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bokmärken",
   "navigation_bar.community_timeline": "Lokal tidslinje",
   "navigation_bar.compose": "Författa ny toot",
-  "navigation_bar.direct": "Direktmeddelanden",
   "navigation_bar.discover": "Upptäck",
   "navigation_bar.domain_blocks": "Dolda domäner",
   "navigation_bar.edit_profile": "Redigera profil",
@@ -335,7 +334,7 @@
   "notifications.column_settings.reblog": "Knuffar:",
   "notifications.column_settings.show": "Visa i kolumnen",
   "notifications.column_settings.sound": "Spela upp ljud",
-  "notifications.column_settings.status": "Nya tutor:",
+  "notifications.column_settings.status": "Nya inlägg:",
   "notifications.column_settings.unread_notifications.category": "O-lästa aviseringar",
   "notifications.column_settings.unread_notifications.highlight": "Markera o-lästa aviseringar",
   "notifications.column_settings.update": "Redigeringar:",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Ta bort omröstning",
   "privacy.change": "Justera sekretess",
   "privacy.direct.long": "Skicka endast till nämnda användare",
-  "privacy.direct.short": "Direkt",
+  "privacy.direct.short": "Bara personer jag nämner",
   "privacy.private.long": "Endast synligt för följare",
   "privacy.private.short": "Endast följare",
-  "privacy.public.long": "Skicka till publik tidslinje",
+  "privacy.public.long": "Synlig för alla",
   "privacy.public.short": "Publik",
-  "privacy.unlisted.long": "Skicka inte till publik tidslinje",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Olistad",
   "refresh": "Läs om",
   "regeneration_indicator.label": "Laddar…",
@@ -423,7 +422,7 @@
   "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
   "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
   "report.thanks.title": "Vill du inte se det här?",
-  "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
+  "report.thanks.title_actionable": "Tack för att du rapporterar, vi kommer att titta på detta.",
   "report.unfollow": "Sluta följ @{username}",
   "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
   "search.placeholder": "Sök",
@@ -436,8 +435,8 @@
   "search_results.accounts": "Människor",
   "search_results.all": "Alla",
   "search_results.hashtags": "Hashtaggar",
-  "search_results.nothing_found": "Could not find anything for these search terms",
-  "search_results.statuses": "Tutor",
+  "search_results.nothing_found": "Kunde inte hitta något för dessa sökord",
+  "search_results.statuses": "Inlägg",
   "search_results.statuses_fts_disabled": "Att söka toots med deras innehåll är inte möjligt på denna Mastodon-server.",
   "search_results.total": "{count, number} {count, plural, ett {result} andra {results}}",
   "status.admin_account": "Öppet modereringsgränssnitt för @{name}",
@@ -451,13 +450,13 @@
   "status.detailed_status": "Detaljerad samtalsvy",
   "status.direct": "Direktmeddela @{name}",
   "status.edit": "Redigera",
-  "status.edited": "Edited {date}",
+  "status.edited": "Ändrad {date}",
   "status.edited_x_times": "Redigerad {count, plural, one {{count} gång} other {{count} gånger}}",
   "status.embed": "Bädda in",
   "status.favourite": "Favorit",
   "status.filtered": "Filtrerat",
-  "status.history.created": "{name} created {date}",
-  "status.history.edited": "{name} edited {date}",
+  "status.history.created": "{name} skapade {date}",
+  "status.history.edited": "{name} redigerade {date}",
   "status.load_more": "Ladda fler",
   "status.media_hidden": "Media dold",
   "status.mention": "Omnämn @{name}",
diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json
index 4373287dd..09d473ef4 100644
--- a/app/javascript/mastodon/locales/szl.json
+++ b/app/javascript/mastodon/locales/szl.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blocked users",
   "column.bookmarks": "Bookmarks",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Blocked domains",
   "column.favourites": "Favourites",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no blocked domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Visible for followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index f79454e0b..e8c9757ad 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -70,7 +70,7 @@
   "column.blocks": "தடுக்கப்பட்ட பயனர்கள்",
   "column.bookmarks": "அடையாளக்குறிகள்",
   "column.community": "சுய நிகழ்வு காலவரிசை",
-  "column.direct": "நேர் சேதிகள்",
+  "column.conversations": "Conversations",
   "column.directory": "சுயவிவரங்களை உலாவு",
   "column.domain_blocks": "மறைந்திருக்கும் திரளங்கள்",
   "column.favourites": "பிடித்தவைகள்",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "அருகிலிருந்து மட்டுமே",
   "community.column_settings.media_only": "படங்கள் மட்டுமே",
   "community.column_settings.remote_only": "தொலைவிலிருந்து மட்டுமே",
-  "compose_form.direct_message_warning": "இந்த டூட் இதில் குறிப்பிடப்பட்டுள்ள பயனர்களுக்கு மட்டுமே அனுப்பப்படும்.",
   "compose_form.direct_message_warning_learn_more": "மேலும் அறிய",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "இது ஒரு பட்டியலிடப்படாத டூட் என்பதால் எந்த ஹேஷ்டேகின் கீழும் வராது. ஹேஷ்டேகின் மூலம் பொதுவில் உள்ள டூட்டுகளை மட்டுமே தேட முடியும்.",
   "compose_form.lock_disclaimer": "உங்கள் கணக்கு {locked} செய்யப்படவில்லை. உங்கள் பதிவுகளை யார் வேண்டுமானாலும் பின்தொடர்ந்து காணலாம்.",
   "compose_form.lock_disclaimer.lock": "பூட்டப்பட்டது",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "நீங்கள் இதுவரை எந்தப் பயனர்களையும் முடக்கியிருக்கவில்லை.",
   "empty_column.bookmarked_statuses": "உங்களிடம் அடையாளக்குறியிட்ட டூட்டுகள் எவையும் இல்லை. அடையாளக்குறியிட்ட பிறகு அவை இங்கே காட்டப்படும்.",
   "empty_column.community": "உங்கள் மாஸ்டடான் முச்சந்தியில் யாரும் இல்லை. எதையேனும் எழுதி ஆட்டத்தைத் துவக்குங்கள்!",
-  "empty_column.direct": "உங்கள் தனிப்பெட்டியில் செய்திகள் ஏதும் இல்லை. செய்தியை நீங்கள் அனுப்பும்போதோ அல்லது பெறும்போதோ, அது இங்கே காண்பிக்கப்படும்.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "தடுக்கப்பட்டக் களங்கள் இதுவரை இல்லை.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "உங்களுக்குப் பிடித்த டூட்டுகள் இதுவரை இல்லை. ஒரு டூட்டில் நீங்கள் விருப்பக்குறி இட்டால், அது இங்கே காண்பிக்கப்படும்.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "பகிர",
   "keyboard_shortcuts.column": "ஏதேனும் ஒரு நெடுவரிசையில் உள்ள டூட்டுல் கவனம் செலுத்த",
   "keyboard_shortcuts.compose": "பதிவு எழுதும் பெட்டியில் கவனம் செலுத்த",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "விவரம்",
-  "keyboard_shortcuts.direct": "தனிப்பெட்டியைத் திறக்க",
   "keyboard_shortcuts.down": "பட்டியலின் கீழே செல்ல",
   "keyboard_shortcuts.enter": "டூட்டைத் திறக்க",
   "keyboard_shortcuts.favourite": "விருப்பக்குறி இட",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "அடையாளக்குறிகள்",
   "navigation_bar.community_timeline": "உள்ளூர் காலக்கெடு",
   "navigation_bar.compose": "புதியவற்றை எழுதுக toot",
-  "navigation_bar.direct": "நேரடி செய்திகள்",
   "navigation_bar.discover": "கண்டு பிடி",
   "navigation_bar.domain_blocks": "மறைந்த களங்கள்",
   "navigation_bar.edit_profile": "சுயவிவரத்தைத் திருத்தவும்",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "வாக்கெடுப்பை அகற்று",
   "privacy.change": "நிலை தனியுரிமை",
   "privacy.direct.long": "குறிப்பிடப்பட்ட பயனர்களுக்கு மட்டுமே இடுகையிடவும்",
-  "privacy.direct.short": "நடத்து",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "பின்தொடர்பவர்களுக்கு மட்டுமே இடுகை",
-  "privacy.private.short": "பின்பற்றுபவர்கள் மட்டும்",
-  "privacy.public.long": "பொது நேரங்களுக்கான இடுகை",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "பொது",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "பட்டியலிடப்படாத",
   "refresh": "புதுப்பி",
   "regeneration_indicator.label": "சுமையேற்றம்…",
diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json
index 888902b3f..d76b9a451 100644
--- a/app/javascript/mastodon/locales/tai.json
+++ b/app/javascript/mastodon/locales/tai.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blocked users",
   "column.bookmarks": "Bookmarks",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Blocked domains",
   "column.favourites": "Favourites",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no blocked domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Visible for followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index ce2fe0fda..8eb92f7ad 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -70,7 +70,7 @@
   "column.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు",
   "column.bookmarks": "Bookmarks",
   "column.community": "స్థానిక కాలక్రమం",
-  "column.direct": "ప్రత్యక్ష సందేశాలు",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "దాచిన డొమైన్లు",
   "column.favourites": "ఇష్టపడినవి",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "మీడియా మాత్రమే",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "ఈ టూట్ పేర్కొన్న వినియోగదారులకు మాత్రమే పంపబడుతుంది.",
   "compose_form.direct_message_warning_learn_more": "మరింత తెలుసుకోండి",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "ఈ టూట్ అన్లిస్టెడ్ కాబట్టి ఏ హాష్ ట్యాగ్ క్రిందకూ రాదు. పబ్లిక్ టూట్ లను మాత్రమే హాష్ ట్యాగ్ ద్వారా శోధించవచ్చు.",
   "compose_form.lock_disclaimer": "మీ ఖాతా {locked} చేయబడలేదు. ఎవరైనా మిమ్మల్ని అనుసరించి మీ అనుచరులకు-మాత్రమే పోస్ట్లను వీక్షించవచ్చు.",
   "compose_form.lock_disclaimer.lock": "బిగించబడినది",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "మీరు ఇంకా ఏ వినియోగదారులనూ బ్లాక్ చేయలేదు.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "స్థానిక కాలక్రమం ఖాళీగా ఉంది. మొదలుపెట్టడానికి బహిరంగంగా ఏదో ఒకటి వ్రాయండి!",
-  "empty_column.direct": "మీకు ఇంకా ఏ ప్రత్యక్ష సందేశాలు లేవు. మీరు ఒకదాన్ని పంపినప్పుడు లేదా స్వీకరించినప్పుడు, అది ఇక్కడ చూపబడుతుంది.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "దాచబడిన డొమైన్లు ఇంకా ఏమీ లేవు.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "మీకు ఇష్టపడిన టూట్లు ఇంకా ఎమీ లేవు. మీరు ఒకదానిని ఇష్టపడినప్పుడు, అది ఇక్కడ కనిపిస్తుంది.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "బూస్ట్ చేయడానికి",
   "keyboard_shortcuts.column": "నిలువు వరుసలలో ఒకదానిపై దృష్టి పెట్టడానికి",
   "keyboard_shortcuts.compose": "కంపోజ్ టెక్స్ట్ఏరియా పై దృష్టి పెట్టడానికి",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "నేరుగా పంపిన సందేశాల నిలువు వరుసను తెరువడానికి",
   "keyboard_shortcuts.down": "జాబితాలో క్రిందికి వెళ్ళడానికి",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "ఇష్టపడడానికి",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "స్థానిక కాలక్రమం",
   "navigation_bar.compose": "కొత్త టూట్ను రాయండి",
-  "navigation_bar.direct": "ప్రత్యక్ష సందేశాలు",
   "navigation_bar.discover": "కనుగొను",
   "navigation_bar.domain_blocks": "దాచిన డొమైన్లు",
   "navigation_bar.edit_profile": "ప్రొఫైల్ని సవరించండి",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "ఎన్నికను తొలగించు",
   "privacy.change": "స్టేటస్ గోప్యతను సర్దుబాటు చేయండి",
   "privacy.direct.long": "పేర్కొన్న వినియోగదారులకు మాత్రమే పోస్ట్ చేయి",
-  "privacy.direct.short": "ప్రత్యక్ష",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "అనుచరులకు మాత్రమే పోస్ట్ చేయి",
-  "privacy.private.short": "అనుచరులకు మాత్రమే",
-  "privacy.public.long": "ప్రజా కాలక్రమాలకు పోస్ట్ చేయండి",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "ప్రజా",
-  "privacy.unlisted.long": "ప్రజా కాలక్రమాలలో చూపించవద్దు",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "జాబితా చేయబడనిది",
   "refresh": "Refresh",
   "regeneration_indicator.label": "లోడ్ అవుతోంది…",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 56cff648e..423d3efd4 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -70,7 +70,7 @@
   "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
   "column.bookmarks": "ที่คั่นหน้า",
   "column.community": "เส้นเวลาในเซิร์ฟเวอร์",
-  "column.direct": "ข้อความโดยตรง",
+  "column.conversations": "การสนทนา",
   "column.directory": "เรียกดูโปรไฟล์",
   "column.domain_blocks": "โดเมนที่ปิดกั้นอยู่",
   "column.favourites": "รายการโปรด",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "ในเซิร์ฟเวอร์เท่านั้น",
   "community.column_settings.media_only": "สื่อเท่านั้น",
   "community.column_settings.remote_only": "ระยะไกลเท่านั้น",
-  "compose_form.direct_message_warning": "จะส่งโพสต์นี้ไปยังผู้ใช้ที่กล่าวถึงเท่านั้น",
   "compose_form.direct_message_warning_learn_more": "เรียนรู้เพิ่มเติม",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "จะไม่แสดงรายการโพสต์นี้ภายใต้แฮชแท็กใด ๆ เนื่องจากไม่อยู่ในรายการ เฉพาะโพสต์สาธารณะเท่านั้นที่สามารถค้นหาได้โดยแฮชแท็ก",
   "compose_form.lock_disclaimer": "บัญชีของคุณไม่ได้ {locked} ใครก็ตามสามารถติดตามคุณเพื่อดูโพสต์สำหรับผู้ติดตามเท่านั้นของคุณ",
   "compose_form.lock_disclaimer.lock": "ล็อคอยู่",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "คุณยังไม่ได้ปิดกั้นผู้ใช้ใด ๆ",
   "empty_column.bookmarked_statuses": "คุณยังไม่มีโพสต์ที่เพิ่มที่คั่นหน้าไว้ใด ๆ เมื่อคุณเพิ่มที่คั่นหน้าโพสต์ โพสต์จะปรากฏที่นี่",
   "empty_column.community": "เส้นเวลาในเซิร์ฟเวอร์ว่างเปล่า เขียนบางอย่างเป็นสาธารณะเพื่อเริ่มต้น!",
-  "empty_column.direct": "คุณยังไม่มีข้อความโดยตรงใด ๆ เมื่อคุณส่งหรือรับข้อความ ข้อความจะปรากฏที่นี่",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "ยังไม่มีโดเมนที่ปิดกั้นอยู่",
   "empty_column.explore_statuses": "ไม่มีสิ่งใดที่กำลังนิยมในตอนนี้ กลับมาตรวจสอบในภายหลัง!",
   "empty_column.favourited_statuses": "คุณยังไม่มีโพสต์ที่ชื่นชอบใด ๆ เมื่อคุณชื่นชอบโพสต์ โพสต์จะปรากฏที่นี่",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "ดันโพสต์",
   "keyboard_shortcuts.column": "โฟกัสคอลัมน์",
   "keyboard_shortcuts.compose": "โฟกัสพื้นที่เขียนข้อความ",
+  "keyboard_shortcuts.conversations": "เพื่อเปิดคอลัมน์การสนทนา",
   "keyboard_shortcuts.description": "คำอธิบาย",
-  "keyboard_shortcuts.direct": "เปิดคอลัมน์ข้อความโดยตรง",
   "keyboard_shortcuts.down": "ย้ายลงในรายการ",
   "keyboard_shortcuts.enter": "เปิดโพสต์",
   "keyboard_shortcuts.favourite": "ชื่นชอบโพสต์",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "ที่คั่นหน้า",
   "navigation_bar.community_timeline": "เส้นเวลาในเซิร์ฟเวอร์",
   "navigation_bar.compose": "เขียนโพสต์ใหม่",
-  "navigation_bar.direct": "ข้อความโดยตรง",
   "navigation_bar.discover": "ค้นพบ",
   "navigation_bar.domain_blocks": "โดเมนที่ปิดกั้นอยู่",
   "navigation_bar.edit_profile": "แก้ไขโปรไฟล์",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "เอาการสำรวจความคิดเห็นออก",
   "privacy.change": "เปลี่ยนความเป็นส่วนตัวของโพสต์",
   "privacy.direct.long": "ปรากฏแก่ผู้ใช้ที่กล่าวถึงเท่านั้น",
-  "privacy.direct.short": "โดยตรง",
+  "privacy.direct.short": "เฉพาะผู้คนที่ฉันกล่าวถึงเท่านั้น",
   "privacy.private.long": "ปรากฏแก่ผู้ติดตามเท่านั้น",
   "privacy.private.short": "ผู้ติดตามเท่านั้น",
-  "privacy.public.long": "ปรากฏแก่ทุกคน แสดงในเส้นเวลาสาธารณะ",
+  "privacy.public.long": "ปรากฏแก่ทั้งหมด",
   "privacy.public.short": "สาธารณะ",
-  "privacy.unlisted.long": "ปรากฏแก่ทุกคน แต่ไม่อยู่ในเส้นเวลาสาธารณะ",
+  "privacy.unlisted.long": "ปรากฏแก่ทั้งหมด แต่เลือกไม่รับคุณลักษณะการค้นพบ",
   "privacy.unlisted.short": "ไม่อยู่ในรายการ",
   "refresh": "รีเฟรช",
   "regeneration_indicator.label": "กำลังโหลด…",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 9104bd8f7..bc0e8f721 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -25,7 +25,7 @@
   "account.hide_reblogs": "@{name} kişisinin boostlarını gizle",
   "account.joined": "{date} tarihinde katıldı",
   "account.link_verified_on": "Bu bağlantının sahipliği {date} tarihinde kontrol edildi",
-  "account.locked_info": "Bu hesabın gizlilik durumu kilitli olarak ayarlanmış. Sahibi, onu kimin takip edebileceğini elle inceliyor.",
+  "account.locked_info": "Bu hesabın gizlilik durumu gizli olarak ayarlanmış. Sahibi, onu kimin takip edebileceğini manuel olarak onaylıyor.",
   "account.media": "Medya",
   "account.mention": "@{name} kişisinden bahset",
   "account.moved_to": "{name} şuraya taşındı:",
@@ -70,7 +70,7 @@
   "column.blocks": "Engellenen kullanıcılar",
   "column.bookmarks": "Yer İmleri",
   "column.community": "Yerel zaman tüneli",
-  "column.direct": "Direkt Mesajlar",
+  "column.conversations": "Sohbetler",
   "column.directory": "Profillere göz at",
   "column.domain_blocks": "Engellenen alan adları",
   "column.favourites": "Favoriler",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Sadece yerel",
   "community.column_settings.media_only": "Sadece medya",
   "community.column_settings.remote_only": "Sadece uzak",
-  "compose_form.direct_message_warning": "Bu gönderi sadece belirtilen kullanıcılara gönderilecektir.",
   "compose_form.direct_message_warning_learn_more": "Daha fazla bilgi edinin",
+  "compose_form.encryption_warning": "Mastodondaki gönderiler uçtan uca şifrelemeli değildir. Mastodon üzerinden hassas olabilecek bir bilginizi paylaşmayın.",
   "compose_form.hashtag_warning": "Bu gönderi liste dışı olduğu için hiç bir etikette yer almayacak. Sadece herkese açık gönderiler etiketlerde bulunabilir.",
   "compose_form.lock_disclaimer": "Hesabın {locked} değil. Yalnızca takipçilere özel gönderilerini görüntülemek için herkes seni takip edebilir.",
   "compose_form.lock_disclaimer.lock": "kilitli",
@@ -166,17 +166,17 @@
   "empty_column.blocks": "Henüz herhangi bir kullanıcıyı engellemedin.",
   "empty_column.bookmarked_statuses": "Henüz yer imine eklediğin toot yok. Bir tanesi yer imine eklendiğinde burada görünür.",
   "empty_column.community": "Yerel zaman çizelgesi boş. Daha fazla eğlence için herkese açık bir gönderi paylaşın!",
-  "empty_column.direct": "Henüz direkt mesajın yok. Bir tane gönderdiğinde veya aldığında burada görünür.",
-  "empty_column.domain_blocks": "Henüz hiçbir gizli alan adı yok.",
+  "empty_column.conversations": "Sadece bahsedilen kişilere özel gönderi paylaştığında veya bu gizlilik seçeneğinde bir gönderi aldığında bu sayfada gözükecek.",
+  "empty_column.domain_blocks": "Henüz engellenmiş bir alan adı yok.",
   "empty_column.explore_statuses": "Şu an öne çıkan birşey yok. Daha sonra tekrar bakın!",
   "empty_column.favourited_statuses": "Favori tootun yok. Favori tootun olduğunda burada görünür.",
   "empty_column.favourites": "Kimse bu gönderiyi favorilerine eklememiş. Biri eklediğinde burada görünecek.",
   "empty_column.follow_recommendations": "Öyle görünüyor ki sizin için hiçbir öneri oluşturulamıyor. Tanıdığınız kişileri aramak için aramayı kullanabilir veya öne çıkanlara bakabilirsiniz.",
   "empty_column.follow_requests": "Hiç takip isteğiniz yok. Bir tane aldığınızda burada görünecek.",
-  "empty_column.hashtag": "Henüz bu hashtag’e sahip hiçbir gönderi yok.",
+  "empty_column.hashtag": "Henüz bu etikete sahip hiçbir gönderi yok.",
   "empty_column.home": "Ana zaman tünelin boş! Akışını doldurmak için daha fazla kişiyi takip et. {suggestions}",
   "empty_column.home.suggestions": "Bazı önerileri görün",
-  "empty_column.list": "Bu listede henüz hiçbir şey yok.",
+  "empty_column.list": "Henüz bu listede bir şey yok. Bu listenin üyeleri bir şey paylaşığında burada gözükecek.",
   "empty_column.lists": "Henüz listen yok. Liste oluşturduğunda burada görünür.",
   "empty_column.mutes": "Henüz bir kullanıcıyı sessize almadınız.",
   "empty_column.notifications": "Henüz bildiriminiz yok. Sohbete başlamak için başkalarıyla etkileşim kurun.",
@@ -227,21 +227,21 @@
   "intervals.full.minutes": "{number, plural, one {# dakika} other {# dakika}}",
   "keyboard_shortcuts.back": "geriye gitmek için",
   "keyboard_shortcuts.blocked": "engellenen kullanıcılar listesini açmak için",
-  "keyboard_shortcuts.boost": "Gönderiyi teşvik et",
+  "keyboard_shortcuts.boost": "gönderiyi boostla",
   "keyboard_shortcuts.column": "sütunlardan birindeki duruma odaklanmak için",
   "keyboard_shortcuts.compose": "yazma alanına odaklanmak için",
+  "keyboard_shortcuts.conversations": "sohbetler sütununu açmak için",
   "keyboard_shortcuts.description": "Açıklama",
-  "keyboard_shortcuts.direct": "direkt mesajlar sütununu açmak için",
   "keyboard_shortcuts.down": "listede aşağıya inmek için",
-  "keyboard_shortcuts.enter": "Gönderiyi aç",
-  "keyboard_shortcuts.favourite": "Gönderiyi beğen",
+  "keyboard_shortcuts.enter": "gönderiyi aç",
+  "keyboard_shortcuts.favourite": "gönderiyi favorilerine ekle",
   "keyboard_shortcuts.favourites": "favoriler listesini açmak için",
-  "keyboard_shortcuts.federated": "federe edilmiş zaman tünelini açmak için",
+  "keyboard_shortcuts.federated": "federe akışı aç",
   "keyboard_shortcuts.heading": "Klavye kısayolları",
-  "keyboard_shortcuts.home": "anasayfa zaman çizelgesini açmak için",
+  "keyboard_shortcuts.home": "ana akışı aç",
   "keyboard_shortcuts.hotkey": "Kısayol tuşu",
   "keyboard_shortcuts.legend": "bu efsaneyi görüntülemek için",
-  "keyboard_shortcuts.local": "yerel zaman tünelini açmak için",
+  "keyboard_shortcuts.local": "yerel akışı aç",
   "keyboard_shortcuts.mention": "yazardan bahsetmek için",
   "keyboard_shortcuts.muted": "sessize alınmış kullanıcı listesini açmak için",
   "keyboard_shortcuts.my_profile": "profilinizi açmak için",
@@ -249,7 +249,7 @@
   "keyboard_shortcuts.open_media": "medyayı açmak için",
   "keyboard_shortcuts.pinned": "Sabitlenmiş gönderilerin listesini aç",
   "keyboard_shortcuts.profile": "yazarın profilini açmak için",
-  "keyboard_shortcuts.reply": "Gönderiyi yanıtla",
+  "keyboard_shortcuts.reply": "gönderiyi yanıtla",
   "keyboard_shortcuts.requests": "takip istekleri listesini açmak için",
   "keyboard_shortcuts.search": "aramaya odaklanmak için",
   "keyboard_shortcuts.spoilers": "CW alanını göstermek/gizlemek için",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Yer İmleri",
   "navigation_bar.community_timeline": "Yerel Zaman Tüneli",
   "navigation_bar.compose": "Yeni gönderi yaz",
-  "navigation_bar.direct": "Direkt Mesajlar",
   "navigation_bar.discover": "Keşfet",
   "navigation_bar.domain_blocks": "Engellenen alan adları",
   "navigation_bar.edit_profile": "Profili düzenle",
@@ -310,7 +309,7 @@
   "navigation_bar.public_timeline": "Federe zaman tüneli",
   "navigation_bar.security": "Güvenlik",
   "notification.admin.sign_up": "{name} kaydoldu",
-  "notification.favourite": "{name} gönderini beğendi",
+  "notification.favourite": "{name} gönderini favorilerine ekledi",
   "notification.follow": "{name} seni takip etti",
   "notification.follow_request": "{name} size takip isteği gönderdi",
   "notification.mention": "{name} senden bahsetti",
@@ -323,7 +322,7 @@
   "notifications.clear_confirmation": "Tüm bildirimlerinizi kalıcı olarak temizlemek ister misiniz?",
   "notifications.column_settings.admin.sign_up": "Yeni kayıtlar:",
   "notifications.column_settings.alert": "Masaüstü bildirimleri",
-  "notifications.column_settings.favourite": "Beğeniler:",
+  "notifications.column_settings.favourite": "Favoriler:",
   "notifications.column_settings.filter_bar.advanced": "Tüm kategorileri görüntüle",
   "notifications.column_settings.filter_bar.category": "Hızlı filtre çubuğu",
   "notifications.column_settings.filter_bar.show_bar": "Süzme çubuğunu göster",
@@ -341,7 +340,7 @@
   "notifications.column_settings.update": "Düzenlemeler:",
   "notifications.filter.all": "Tümü",
   "notifications.filter.boosts": "Boostlar",
-  "notifications.filter.favourites": "Beğeniler",
+  "notifications.filter.favourites": "Favoriler",
   "notifications.filter.follows": "Takip edilenler",
   "notifications.filter.mentions": "Bahsetmeler",
   "notifications.filter.polls": "Anket sonuçları",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Anketi kaldır",
   "privacy.change": "Gönderi gizliliğini değiştir",
   "privacy.direct.long": "Sadece bahsedilen kullanıcılar için görünür",
-  "privacy.direct.short": "Direkt",
+  "privacy.direct.short": "Sadece bahsettiğim kişiler",
   "privacy.private.long": "Sadece takipçiler için görünür",
   "privacy.private.short": "Sadece takipçiler",
-  "privacy.public.long": "Herkese görünür, herkese açık zaman çizelgelerinde gösterilir",
+  "privacy.public.long": "Herkese açık",
   "privacy.public.short": "Herkese açık",
-  "privacy.unlisted.long": "Herkese görünür, ancak genel zaman çizelgelerinde gösterilmez",
+  "privacy.unlisted.long": "Keşfet harici herkese açık",
   "privacy.unlisted.short": "Listelenmemiş",
   "refresh": "Yenile",
   "regeneration_indicator.label": "Yükleniyor…",
@@ -454,7 +453,7 @@
   "status.edited": "{date} tarihinde düzenlenmiş",
   "status.edited_x_times": "{count, plural, one {{count} kez} other {{count} kez}} düzenlendi",
   "status.embed": "Gömülü",
-  "status.favourite": "Beğen",
+  "status.favourite": "Favorilerine ekle",
   "status.filtered": "Filtrelenmiş",
   "status.history.created": "{name} oluşturdu {date}",
   "status.history.edited": "{name} düzenledi {date}",
diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json
index e44106844..bd20b1efe 100644
--- a/app/javascript/mastodon/locales/tt.json
+++ b/app/javascript/mastodon/locales/tt.json
@@ -4,30 +4,30 @@
   "account.badges.bot": "Бот",
   "account.badges.group": "Төркем",
   "account.block": "@{name} блоклау",
-  "account.block_domain": "Block domain {domain}",
+  "account.block_domain": "{domain} доменын блоклау",
   "account.blocked": "Блокланган",
   "account.browse_more_on_origin_server": "Тулырак оригинал профилендә карап була",
   "account.cancel_follow_request": "Cancel follow request",
-  "account.direct": "Direct message @{name}",
+  "account.direct": "@{name} өчен яңа хат",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
   "account.domain_blocked": "Domain blocked",
   "account.edit_profile": "Профильны үзгәртү",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "@{name} язулары өчен белдерүләр яндыру",
   "account.endorse": "Feature on profile",
   "account.follow": "Языл",
-  "account.followers": "Followers",
-  "account.followers.empty": "No one follows this user yet.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following": "Following",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
-  "account.follows.empty": "This user doesn't follow anyone yet.",
+  "account.followers": "Язылучылар",
+  "account.followers.empty": "Әле беркем дә язылмаган.",
+  "account.followers_counter": "{count, plural,one {{counter} Язылучы} other {{counter} Язылучы}}",
+  "account.following": "Язылган",
+  "account.following_counter": "{count, plural, one {{counter} Язылган} other {{counter} Язылган}}",
+  "account.follows.empty": "Беркемгә дә язылмаган әле.",
   "account.follows_you": "Сезгә язылган",
   "account.hide_reblogs": "Hide boosts from @{name}",
   "account.joined": "Joined {date}",
   "account.link_verified_on": "Ownership of this link was checked on {date}",
   "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
   "account.media": "Медиа",
-  "account.mention": "Mention @{name}",
+  "account.mention": "@{name} искәртү",
   "account.moved_to": "{name} has moved to:",
   "account.mute": "Mute @{name}",
   "account.mute_notifications": "Mute notifications from @{name}",
@@ -70,7 +70,7 @@
   "column.blocks": "Blocked users",
   "column.bookmarks": "Кыстыргычлар",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Blocked domains",
   "column.favourites": "Favourites",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no blocked domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Тасвирлама",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Кыстыргычлар",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Профильны үзгәртү",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Visible for followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Яңарту",
   "regeneration_indicator.label": "Йөкләү...",
diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json
index 4373287dd..09d473ef4 100644
--- a/app/javascript/mastodon/locales/ug.json
+++ b/app/javascript/mastodon/locales/ug.json
@@ -70,7 +70,7 @@
   "column.blocks": "Blocked users",
   "column.bookmarks": "Bookmarks",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Blocked domains",
   "column.favourites": "Favourites",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Local only",
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no blocked domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Visible for followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 3aeb40209..16d4e0b3b 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -70,7 +70,7 @@
   "column.blocks": "Заблоковані користувачі",
   "column.bookmarks": "Закладки",
   "column.community": "Локальна стрічка",
-  "column.direct": "Прямі повідомлення",
+  "column.conversations": "Бесіди",
   "column.directory": "Переглянути профілі",
   "column.domain_blocks": "Приховані домени",
   "column.favourites": "Вподобане",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Тільки локальні",
   "community.column_settings.media_only": "Тільки медіа",
   "community.column_settings.remote_only": "Тільки видалені",
-  "compose_form.direct_message_warning": "Цей дмух буде видимий тільки згаданим користувачам.",
   "compose_form.direct_message_warning_learn_more": "Дізнатися більше",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "Цей дмух не буде відображений у жодній стрічці хештеґу, оскільки він прихований. Тільки публічні дмухи можуть бути знайдені за хештеґом.",
   "compose_form.lock_disclaimer": "Ваш акаунт не {locked}. Будь-який користувач може підписатися на вас та переглядати ваші приватні пости.",
   "compose_form.lock_disclaimer.lock": "приватний",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ви ще не заблокували жодного користувача.",
   "empty_column.bookmarked_statuses": "У вас ще немає дмухів у закладках. Коли ви щось додасте до заклкдок, воно з'явиться тут.",
   "empty_column.community": "Локальна стрічка пуста. Напишіть щось, щоб розігріти народ!",
-  "empty_column.direct": "У вас ще немає прямих повідомлень. Коли ви відправите чи отримаєте якесь, воно з'явиться тут.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "Тут поки немає прихованих доменів.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "У вас ще немає вподобаних дмухів. Коли ви щось вподобаєте, воно з'явиться тут.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "передмухувати",
   "keyboard_shortcuts.column": "фокусуватися на одній з колонок",
   "keyboard_shortcuts.compose": "фокусуватися на полі введення",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Опис",
-  "keyboard_shortcuts.direct": "відкрити колонку прямих повідомлень",
   "keyboard_shortcuts.down": "рухатися вниз стрічкою",
   "keyboard_shortcuts.enter": "відкрити статус",
   "keyboard_shortcuts.favourite": "вподобати",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Закладки",
   "navigation_bar.community_timeline": "Локальна стрічка",
   "navigation_bar.compose": "Написати новий дмух",
-  "navigation_bar.direct": "Прямі повідомлення",
   "navigation_bar.discover": "Знайти",
   "navigation_bar.domain_blocks": "Приховані домени",
   "navigation_bar.edit_profile": "Редагувати профіль",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Видалити опитування",
   "privacy.change": "Змінити видимість допису",
   "privacy.direct.long": "Показати тільки згаданим користувачам",
-  "privacy.direct.short": "Особисто",
+  "privacy.direct.short": "Лише люди, яких я згадую",
   "privacy.private.long": "Показати тільки підписникам",
   "privacy.private.short": "Тільки для підписників",
-  "privacy.public.long": "Показувати у публічних стрічках",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Публічно",
-  "privacy.unlisted.long": "Не показувати у публічних стрічках",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Прихований",
   "refresh": "Оновити",
   "regeneration_indicator.label": "Завантаження…",
@@ -394,7 +393,7 @@
   "report.categories.other": "Інше",
   "report.categories.spam": "Спам",
   "report.categories.violation": "Контент порушує одне або кілька правил сервера",
-  "report.category.subtitle": "Choose the best match",
+  "report.category.subtitle": "Оберіть найкращий збіг",
   "report.category.title": "Tell us what's going on with this {type}",
   "report.category.title_account": "профіль",
   "report.category.title_status": "допис",
diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json
index 47e06c3b2..42728af0f 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -70,7 +70,7 @@
   "column.blocks": "مسدود صارفین",
   "column.bookmarks": "بُک مارکس",
   "column.community": "مقامی زمانی جدول",
-  "column.direct": "راست پیغام",
+  "column.conversations": "Conversations",
   "column.directory": "مشخصات کا مطالعہ کریں",
   "column.domain_blocks": "پوشیدہ ڈومین",
   "column.favourites": "پسندیدہ",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "صرف مقامی",
   "community.column_settings.media_only": "وسائل فقط",
   "community.column_settings.remote_only": "صرف خارجی",
-  "compose_form.direct_message_warning": "یہ ٹوٹ صرف مذکورہ صارفین کو بھیجا جائے گا.",
   "compose_form.direct_message_warning_learn_more": "مزید جانیں",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "چونکہ یہ ٹوٹ غیر مندرجہ ہے لہذا یہ کسی بھی ہیش ٹیگ کے تحت درج نہیں کیا جائے گا. ہیش ٹیگ کے تحت صرف \nعمومی ٹوٹ تلاش کئے جا سکتے ہیں.",
   "compose_form.lock_disclaimer": "آپ کا اکاؤنٹ {locked} نہیں ہے. کوئی بھی آپ کے مخصوص برائے پیروکار ٹوٹ دیکھنے کی خاطر آپ کی پیروی کر سکتا ہے.",
   "compose_form.lock_disclaimer.lock": "مقفل",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "آپ نے ابھی کسی صارف کو مسدود نہیں کیا ہے.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "مقامی جدول خالی ہے. کچھ تحریر کریں تاکہ بات آگے بڑھے!",
-  "empty_column.direct": "آپ کیلئے کوئی راست پیغام نہیں ہے. جب آپ بھیجیں گے یا وصول کریں گے، یہاں نظر آئےگا.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "ابھی تک کوئی چھپا ہوا ڈومین نہیں ہے.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "آپ کا کوئی پسندیدہ ٹوٹ نہیں ہے. جب آپ پسند کریں گے، یہاں نظر آئےگا.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "بُک مارکس",
   "navigation_bar.community_timeline": "مقامی ٹائم لائن",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "براہ راست پیغامات",
   "navigation_bar.discover": "دریافت کریں",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "پروفائل میں ترمیم کریں",
@@ -370,9 +369,9 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Post to followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Post to public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 03752d34f..6692d2b21 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -57,7 +57,7 @@
   "alert.rate_limited.title": "Vượt giới hạn",
   "alert.unexpected.message": "Đã xảy ra lỗi không mong muốn.",
   "alert.unexpected.title": "Ốiii!",
-  "announcement.announcement": "Thông báo chung",
+  "announcement.announcement": "Có gì mới?",
   "attachments_list.unprocessed": "(chưa xử lí)",
   "autosuggest_hashtag.per_week": "{count} mỗi tuần",
   "boost_modal.combo": "Nhấn {combo} để bỏ qua bước này",
@@ -70,7 +70,7 @@
   "column.blocks": "Người đã chặn",
   "column.bookmarks": "Đã lưu",
   "column.community": "Máy chủ của bạn",
-  "column.direct": "Tin nhắn",
+  "column.conversations": "Thảo luận",
   "column.directory": "Tìm người cùng sở thích",
   "column.domain_blocks": "Máy chủ đã chặn",
   "column.favourites": "Thích",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "Chỉ máy chủ của bạn",
   "community.column_settings.media_only": "Chỉ xem media",
   "community.column_settings.remote_only": "Chỉ người dùng ở máy chủ khác",
-  "compose_form.direct_message_warning": "Tút này sẽ chỉ gửi cho người được nhắc đến.",
   "compose_form.direct_message_warning_learn_more": "Tìm hiểu thêm",
+  "compose_form.encryption_warning": "Các tút trên Mastodon không được mã hóa đầu cuối. Không chia sẻ bất kỳ thông tin nhạy cảm nào qua Mastodon.",
   "compose_form.hashtag_warning": "Tút này sẽ không xuất hiện công khai. Chỉ những tút công khai mới có thể được tìm kiếm thông qua hashtag.",
   "compose_form.lock_disclaimer": "Tài khoản của bạn không {locked}. Bất cứ ai cũng có thể theo dõi và xem tút riêng tư của bạn.",
   "compose_form.lock_disclaimer.lock": "khóa",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Bạn chưa chặn bất cứ ai.",
   "empty_column.bookmarked_statuses": "Bạn chưa lưu tút nào. Nếu có, nó sẽ hiển thị ở đây.",
   "empty_column.community": "Máy chủ của bạn chưa có tút nào công khai. Bạn hãy thử viết gì đó đi!",
-  "empty_column.direct": "Bạn chưa có tin nhắn nào. Khi bạn gửi hoặc nhận tin nhắn, nó sẽ hiển thị ở đây.",
+  "empty_column.conversations": "Khi bạn gửi hoặc nhận một tút chỉ hiển thị với những người được nhắc đến trong đó, tút đó sẽ hiển thị ở đây.",
   "empty_column.domain_blocks": "Chưa ẩn bất kỳ máy chủ nào.",
   "empty_column.explore_statuses": "Chưa có xu hướng nào. Kiểm tra lại sau!",
   "empty_column.favourited_statuses": "Bạn chưa thích tút nào. Hãy thử đi, nó sẽ xuất hiện ở đây.",
@@ -220,8 +220,8 @@
   "home.column_settings.basic": "Tùy chỉnh",
   "home.column_settings.show_reblogs": "Hiện những lượt đăng lại",
   "home.column_settings.show_replies": "Hiện những tút dạng trả lời",
-  "home.hide_announcements": "Ẩn thông báo",
-  "home.show_announcements": "Hiện thông báo",
+  "home.hide_announcements": "Ẩn thông báo máy chủ",
+  "home.show_announcements": "Hiện thông báo máy chủ",
   "intervals.full.days": "{number, plural, other {# ngày}}",
   "intervals.full.hours": "{number, plural, other {# giờ}}",
   "intervals.full.minutes": "{number, plural, other {# phút}}",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "đăng lại",
   "keyboard_shortcuts.column": "mở các mục",
   "keyboard_shortcuts.compose": "mở khung soạn tút",
+  "keyboard_shortcuts.conversations": "mở mục thảo luận",
   "keyboard_shortcuts.description": "Mô tả",
-  "keyboard_shortcuts.direct": "mở mục tin nhắn",
   "keyboard_shortcuts.down": "di chuyển xuống dưới danh sách",
   "keyboard_shortcuts.enter": "viết tút mới",
   "keyboard_shortcuts.favourite": "thích",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Đã lưu",
   "navigation_bar.community_timeline": "Cộng đồng",
   "navigation_bar.compose": "Viết tút mới",
-  "navigation_bar.direct": "Tin nhắn",
   "navigation_bar.discover": "Khám phá",
   "navigation_bar.domain_blocks": "Máy chủ đã ẩn",
   "navigation_bar.edit_profile": "Sửa hồ sơ",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "Hủy cuộc bình chọn",
   "privacy.change": "Thay đổi quyền riêng tư",
   "privacy.direct.long": "Chỉ người được nhắc đến mới thấy",
-  "privacy.direct.short": "Nhắn riêng",
+  "privacy.direct.short": "Chỉ người tôi nhắc đến",
   "privacy.private.long": "Dành riêng cho người theo dõi",
-  "privacy.private.short": "Riêng tư",
-  "privacy.public.long": "Hiện trên bảng tin máy chủ",
+  "privacy.private.short": "Chỉ người theo dõi",
+  "privacy.public.long": "Hiển thị với mọi người",
   "privacy.public.short": "Công khai",
-  "privacy.unlisted.long": "Không hiện trên bảng tin máy chủ",
+  "privacy.unlisted.long": "Hiển thị với mọi người, nhưng không hiện trong tính năng khám phá",
   "privacy.unlisted.short": "Hạn chế",
   "refresh": "Làm mới",
   "regeneration_indicator.label": "Đang tải…",
diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json
index 6e6b1cd86..a6ddaab09 100644
--- a/app/javascript/mastodon/locales/zgh.json
+++ b/app/javascript/mastodon/locales/zgh.json
@@ -70,7 +70,7 @@
   "column.blocks": "ⵉⵏⵙⵙⵎⵔⵙⵏ ⵜⵜⵓⴳⴷⵍⵏⵉⵏ",
   "column.bookmarks": "Bookmarks",
   "column.community": "Local timeline",
-  "column.direct": "Direct messages",
+  "column.conversations": "Conversations",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Blocked domains",
   "column.favourites": "ⵜⵓⴼⵓⵜⵉⵏ",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "ⵖⴰⵙ ⴰⴷⵖⴰⵔⴰⵏ",
   "community.column_settings.media_only": "ⵖⴰⵙ ⵉⵙⵏⵖⵎⵉⵙⵏ",
   "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "ⵙⵙⵏ ⵓⴳⴳⴰⵔ",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "ⵉⵜⵜⵓⵔⴳⵍ",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "There are no blocked domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
   "keyboard_shortcuts.favourite": "to favourite",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "Bookmarks",
   "navigation_bar.community_timeline": "Local timeline",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "ⵜⵓⵣⵉⵏⵉⵏ ⵜⵓⵙⵔⵉⴷⵉⵏ",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "ⵙⵏⴼⵍ ⵉⴼⵔⵙ",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "ⵙⵙⵉⵜⵢ ⵉⴷⵣ",
   "privacy.change": "Adjust status privacy",
   "privacy.direct.long": "Visible for mentioned users only",
-  "privacy.direct.short": "ⵜⵓⵔⴷⵉⵜ",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "Visible for followers only",
   "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "ⵜⴰⴳⴷⵓⴷⴰⵏⵜ",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "ⴰⵣⴷⴰⵎ…",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index e479c63c6..0195dee2e 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -1,6 +1,6 @@
 {
   "account.account_note_header": "备注",
-  "account.add_or_remove_from_list": "从列表中添加或删除",
+  "account.add_or_remove_from_list": "从列表中添加或移除",
   "account.badges.bot": "机器人",
   "account.badges.group": "群组",
   "account.block": "屏蔽 @{name}",
@@ -22,26 +22,26 @@
   "account.following_counter": "正在关注 {counter} 人",
   "account.follows.empty": "此用户目前尚未关注任何人。",
   "account.follows_you": "关注了你",
-  "account.hide_reblogs": "隐藏来自 @{name} 的转嘟",
+  "account.hide_reblogs": "隐藏来自 @{name} 的转贴",
   "account.joined": "加入于 {date}",
-  "account.link_verified_on": "此链接的所有权已在 {date} 检查",
-  "account.locked_info": "此账户已锁嘟。账户的主人会手动审核关注者。",
+  "account.link_verified_on": "此链接的所有权已在 {date} 被检查",
+  "account.locked_info": "此账户已锁嘟。账户所有者会手动审核关注申请。",
   "account.media": "媒体",
   "account.mention": "提及 @{name}",
   "account.moved_to": "{name} 已经迁移到:",
   "account.mute": "隐藏 @{name}",
   "account.mute_notifications": "隐藏来自 @{name} 的通知",
   "account.muted": "已隐藏",
-  "account.posts": "嘟文",
-  "account.posts_with_replies": "嘟文和回复",
+  "account.posts": "帖子",
+  "account.posts_with_replies": "帖子和回复",
   "account.report": "举报 @{name}",
-  "account.requested": "正在等待对方同意。点击以取消发送关注请求",
-  "account.share": "分享 @{name} 的个人资料",
+  "account.requested": "正在等待对方通过关注申请。点击以取消发送关注申请",
+  "account.share": "分享 @{name} 的用户简介",
   "account.show_reblogs": "显示来自 @{name} 的转嘟",
   "account.statuses_counter": "{counter} 条嘟文",
-  "account.unblock": "解除屏蔽 @{name}",
+  "account.unblock": "取消屏蔽 @{name}",
   "account.unblock_domain": "不再屏蔽 {domain} 实例",
-  "account.unblock_short": "解除屏蔽",
+  "account.unblock_short": "取消屏蔽",
   "account.unendorse": "不在个人资料中推荐此用户",
   "account.unfollow": "取消关注",
   "account.unmute": "不再隐藏 @{name}",
@@ -51,7 +51,7 @@
   "admin.dashboard.daily_retention": "注册后用户留存率(按日计算)",
   "admin.dashboard.monthly_retention": "注册后用户留存率(按月计算)",
   "admin.dashboard.retention.average": "平均",
-  "admin.dashboard.retention.cohort": "注册月",
+  "admin.dashboard.retention.cohort": "注册月份",
   "admin.dashboard.retention.cohort_size": "新用户",
   "alert.rate_limited.message": "请在{retry_time, time, medium}后重试。",
   "alert.rate_limited.title": "频率受限",
@@ -68,19 +68,19 @@
   "bundle_modal_error.message": "载入这个组件时发生了错误。",
   "bundle_modal_error.retry": "重试",
   "column.blocks": "已屏蔽的用户",
-  "column.bookmarks": "书签",
+  "column.bookmarks": "收藏夹",
   "column.community": "本站时间轴",
-  "column.direct": "私信",
+  "column.conversations": "会话",
   "column.directory": "浏览用户资料",
-  "column.domain_blocks": "已屏蔽的网站",
+  "column.domain_blocks": "已屏蔽的域名",
   "column.favourites": "喜欢",
-  "column.follow_requests": "关注请求",
+  "column.follow_requests": "关注申请",
   "column.home": "主页",
   "column.lists": "列表",
   "column.mutes": "已隐藏的用户",
   "column.notifications": "通知",
-  "column.pins": "置顶嘟文",
-  "column.public": "跨站公共时间轴",
+  "column.pins": "置顶帖子",
+  "column.public": "跨站时间轴",
   "column_back_button.label": "返回",
   "column_header.hide_settings": "隐藏设置",
   "column_header.moveLeft_settings": "将此栏左移",
@@ -89,51 +89,51 @@
   "column_header.show_settings": "显示设置",
   "column_header.unpin": "取消置顶",
   "column_subheading.settings": "设置",
-  "community.column_settings.local_only": "只显示本站",
-  "community.column_settings.media_only": "仅媒体",
-  "community.column_settings.remote_only": "只显示外站",
-  "compose_form.direct_message_warning": "这条嘟文仅对所有被提及的用户可见。",
-  "compose_form.direct_message_warning_learn_more": "了解详情",
-  "compose_form.hashtag_warning": "这条嘟文被设置为“不公开”,因此它不会出现在任何话题标签的列表下。只有公开的嘟文才能通过话题标签进行搜索。",
-  "compose_form.lock_disclaimer": "你的帐户没有{locked}。任何人都可以在关注你后立即查看仅关注者可见的嘟文。",
-  "compose_form.lock_disclaimer.lock": "开启保护",
-  "compose_form.placeholder": "在想啥?",
-  "compose_form.poll.add_option": "添加选项",
+  "community.column_settings.local_only": "仅在本站显示",
+  "community.column_settings.media_only": "仅限媒体",
+  "community.column_settings.remote_only": "仅限外部",
+  "compose_form.direct_message_warning_learn_more": "了解更多",
+  "compose_form.encryption_warning": "Mastodon 上的嘟文并未端到端加密。请不要在 Mastodon 上分享敏感信息。",
+  "compose_form.hashtag_warning": "此帖子被设置为“不公开”,因此它不会出现在任何话题标签的列表下。只有公开帖子才能通过话题标签进行搜索。",
+  "compose_form.lock_disclaimer": "你的账号没有{locked}。任何人在关注你后都能立即查看仅关注者可见的帖子。",
+  "compose_form.lock_disclaimer.lock": "锁嘟",
+  "compose_form.placeholder": "在想些什么?",
+  "compose_form.poll.add_option": "添加一个选项",
   "compose_form.poll.duration": "投票持续时间",
   "compose_form.poll.option_placeholder": "选项 {number}",
-  "compose_form.poll.remove_option": "移除这个选项",
+  "compose_form.poll.remove_option": "移除此选项",
   "compose_form.poll.switch_to_multiple": "将投票改为多选",
   "compose_form.poll.switch_to_single": "将投票改为单选",
   "compose_form.publish": "嘟嘟",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.save_changes": "保存更改",
-  "compose_form.sensitive.hide": "标记媒体为敏感内容",
+  "compose_form.sensitive.hide": "将媒体标记为敏感内容",
   "compose_form.sensitive.marked": "媒体已被标记为敏感内容",
   "compose_form.sensitive.unmarked": "媒体未被标记为敏感内容",
-  "compose_form.spoiler.marked": "正文已被折叠在警告信息之后",
-  "compose_form.spoiler.unmarked": "正文未被折叠",
-  "compose_form.spoiler_placeholder": "折叠部分的警告消息",
+  "compose_form.spoiler.marked": "移除内容警告",
+  "compose_form.spoiler.unmarked": "添加内容警告",
+  "compose_form.spoiler_placeholder": "在此处写下内容警告",
   "confirmation_modal.cancel": "取消",
   "confirmations.block.block_and_report": "屏蔽与举报",
   "confirmations.block.confirm": "屏蔽",
   "confirmations.block.message": "你确定要屏蔽 {name} 吗?",
   "confirmations.delete.confirm": "删除",
-  "confirmations.delete.message": "你确定要删除这条嘟文吗?",
+  "confirmations.delete.message": "你确定要删除这个帖子吗?",
   "confirmations.delete_list.confirm": "删除",
-  "confirmations.delete_list.message": "你确定要永久删除这个列表吗?",
+  "confirmations.delete_list.message": "你确定要永久删除此列表吗?",
   "confirmations.discard_edit_media.confirm": "丢弃",
-  "confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍然丢弃它们吗?",
-  "confirmations.domain_block.confirm": "隐藏整个网站的内容",
-  "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,屏蔽或隐藏几个特定的用户就已经足够了。来自该网站的内容将不再出现在你的任何公共时间轴或通知列表里。来自该网站的关注者将会被移除。",
+  "confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍然要丢弃它们吗?",
+  "confirmations.domain_block.confirm": "隐藏所有来自此域名的内容",
+  "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,屏蔽或隐藏几个特定的用户就已经足够了。来自该域名的内容将不再出现在你的公共时间轴或通知列表里。来自该域名的关注者将会被移除。",
   "confirmations.logout.confirm": "登出",
   "confirmations.logout.message": "你确定要登出吗?",
   "confirmations.mute.confirm": "隐藏",
   "confirmations.mute.explanation": "这将隐藏他们的嘟文以及提到他们的嘟文,但他们仍可以看到你的嘟文并关注你。",
   "confirmations.mute.message": "你确定要隐藏 {name} 吗?",
   "confirmations.redraft.confirm": "删除并重新编辑",
-  "confirmations.redraft.message": "你确定要删除这条嘟文并重新编辑它吗?所有相关的转嘟和喜欢都会被清除,回复将会失去关联。",
+  "confirmations.redraft.message": "你确定要删除这条嘟文并重新编辑它吗?所有相关的转嘟和喜欢都会被清除,回复将失去与这条嘟文的关联。",
   "confirmations.reply.confirm": "回复",
-  "confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?",
+  "confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。仍要继续吗?",
   "confirmations.unfollow.confirm": "取消关注",
   "confirmations.unfollow.message": "你确定要取消关注 {name} 吗?",
   "conversation.delete": "删除对话",
@@ -142,7 +142,7 @@
   "conversation.with": "与 {names}",
   "directory.federated": "来自联邦宇宙的已知部分",
   "directory.local": "仅来自 {domain}",
-  "directory.new_arrivals": "新来者",
+  "directory.new_arrivals": "新用户",
   "directory.recently_active": "最近活跃",
   "embed.instructions": "要在你的网站上嵌入此嘟文,请复制以下代码。",
   "embed.preview": "它会像这样显示出来:",
@@ -150,37 +150,37 @@
   "emoji_button.custom": "自定义",
   "emoji_button.flags": "旗帜",
   "emoji_button.food": "食物和饮料",
-  "emoji_button.label": "加入表情符号",
+  "emoji_button.label": "插入表情符号",
   "emoji_button.nature": "自然",
-  "emoji_button.not_found": "木有这个表情符号!(╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "没有找到匹配的表情符号",
   "emoji_button.objects": "物体",
   "emoji_button.people": "人物",
   "emoji_button.recent": "常用",
-  "emoji_button.search": "搜索…",
+  "emoji_button.search": "搜索……",
   "emoji_button.search_results": "搜索结果",
   "emoji_button.symbols": "符号",
   "emoji_button.travel": "旅行和地点",
   "empty_column.account_suspended": "账户已停用",
-  "empty_column.account_timeline": "这里没有嘟文!",
-  "empty_column.account_unavailable": "个人资料不可用",
-  "empty_column.blocks": "你目前没有屏蔽任何用户。",
-  "empty_column.bookmarked_statuses": "你还没有给任何嘟文添加过书签。在你添加书签后,嘟文就会显示在这里。",
+  "empty_column.account_timeline": "这里没有帖子!",
+  "empty_column.account_unavailable": "用户资料不可用",
+  "empty_column.blocks": "你还未屏蔽任何用户。",
+  "empty_column.bookmarked_statuses": "你还未将任何帖子加入收藏夹。在你加入收藏夹后,帖子将显示在此。",
   "empty_column.community": "本站时间轴暂时没有内容,快写点什么让它动起来吧!",
-  "empty_column.direct": "你还没有使用过私信。当你发出或者收到私信时,它会在这里显示。",
+  "empty_column.conversations": "发送或收到仅对提及对象可见的嘟文后,就会显示在这里。",
   "empty_column.domain_blocks": "目前没有被隐藏的站点。",
   "empty_column.explore_statuses": "目前没有热门话题,稍后再来看看吧!",
-  "empty_column.favourited_statuses": "你还没有喜欢过任何嘟文。喜欢过的嘟文会显示在这里。",
+  "empty_column.favourited_statuses": "你还未喜欢过任何帖子。当你喜欢帖子时,它将显示在此。",
   "empty_column.favourites": "没有人喜欢过这条嘟文。如果有人喜欢了,就会显示在这里。",
   "empty_column.follow_recommendations": "似乎无法为你生成任何建议。你可以尝试使用搜索寻找你可能知道的人或探索热门标签。",
-  "empty_column.follow_requests": "你没有收到新的关注请求。收到了之后就会显示在这里。",
+  "empty_column.follow_requests": "你没有收到新的关注申请。收到后将显示在此。",
   "empty_column.hashtag": "这个话题标签下暂时没有内容。",
   "empty_column.home": "你的主页时间线是空的!快去关注更多人吧。 {suggestions}",
   "empty_column.home.suggestions": "查看一些建议",
-  "empty_column.list": "此列表中暂时没有内容。列表中用户所发送的的新嘟文将会在这里显示。",
-  "empty_column.lists": "你还没有创建过列表。你创建的列表会在这里显示。",
+  "empty_column.list": "此列表中暂时没有内容。列表中用户所发送的的新嘟文将会显示在这里。",
+  "empty_column.lists": "你还没有创建过列表。你创建的列表会显示在这里。",
   "empty_column.mutes": "你没有隐藏任何用户。",
   "empty_column.notifications": "你还没有收到过任何通知,快和其他用户互动吧。",
-  "empty_column.public": "这里什么都没有!写一些公开的嘟文,或者关注其他服务器的用户后,这里就会有嘟文出现了",
+  "empty_column.public": "这里什么都没有!写一些公开帖子,或者关注来自其他服务器的用户后,这里就会有嘟文出现了",
   "error.unexpected_crash.explanation": "此页面无法正确显示,这可能是因为我们的代码中有错误,也可能是因为浏览器兼容问题。",
   "error.unexpected_crash.explanation_addons": "此页面无法正确显示,这个错误很可能是由浏览器附加组件或自动翻译工具造成的。",
   "error.unexpected_crash.next_steps": "刷新一下页面试试。如果没用,你可以换个浏览器或者用本地应用。",
@@ -188,17 +188,17 @@
   "errors.unexpected_crash.copy_stacktrace": "把堆栈跟踪信息复制到剪贴板",
   "errors.unexpected_crash.report_issue": "报告问题",
   "explore.search_results": "搜索结果",
-  "explore.suggested_follows": "为您推荐",
+  "explore.suggested_follows": "为你推荐",
   "explore.title": "探索",
-  "explore.trending_links": "最新消息",
-  "explore.trending_statuses": "嘟文",
+  "explore.trending_links": "新闻",
+  "explore.trending_statuses": "帖子",
   "explore.trending_tags": "话题标签",
   "follow_recommendations.done": "完成",
   "follow_recommendations.heading": "关注你感兴趣的用户!这里有一些推荐。",
-  "follow_recommendations.lead": "你关注的人的嘟文将按时间顺序在你的主页上显示。 别担心,你可以随时取消关注!",
-  "follow_request.authorize": "同意",
+  "follow_recommendations.lead": "你关注的人的帖子将按时间顺序显示在你的主页。 别担心,你可以随时取消关注!",
+  "follow_request.authorize": "授权",
   "follow_request.reject": "拒绝",
-  "follow_requests.unlocked_explanation": "虽说你没有锁嘟,但是 {domain} 的工作人员觉得你可能想手工审核这些账号的关注请求。",
+  "follow_requests.unlocked_explanation": "虽然你没有锁嘟,但是 {domain} 的管理人员觉得你可能想人工审核这些账号的关注申请。",
   "generic.saved": "已保存",
   "getting_started.developers": "开发",
   "getting_started.directory": "用户目录",
@@ -206,16 +206,16 @@
   "getting_started.heading": "开始使用",
   "getting_started.invite": "邀请用户",
   "getting_started.open_source_notice": "Mastodon 是开源软件。欢迎前往 GitHub({github})贡献代码或反馈问题。",
-  "getting_started.security": "账户安全设置",
+  "getting_started.security": "账号设置",
   "getting_started.terms": "使用条款",
   "hashtag.column_header.tag_mode.all": "以及 {additional}",
   "hashtag.column_header.tag_mode.any": "或是 {additional}",
   "hashtag.column_header.tag_mode.none": "而不用 {additional}",
   "hashtag.column_settings.select.no_options_message": "没有找到建议",
-  "hashtag.column_settings.select.placeholder": "输入话题标签…",
+  "hashtag.column_settings.select.placeholder": "输入话题标签……",
   "hashtag.column_settings.tag_mode.all": "全部",
   "hashtag.column_settings.tag_mode.any": "任一",
-  "hashtag.column_settings.tag_mode.none": "全都不要",
+  "hashtag.column_settings.tag_mode.none": "无一",
   "hashtag.column_settings.tag_toggle": "在此栏加入额外的标签",
   "home.column_settings.basic": "基本设置",
   "home.column_settings.show_reblogs": "显示转嘟",
@@ -226,38 +226,38 @@
   "intervals.full.hours": "{number} 小时",
   "intervals.full.minutes": "{number} 分钟",
   "keyboard_shortcuts.back": "返回上一页",
-  "keyboard_shortcuts.blocked": "打开被屏蔽用户列表",
+  "keyboard_shortcuts.blocked": "打开已屏蔽用户列表",
   "keyboard_shortcuts.boost": "转嘟",
-  "keyboard_shortcuts.column": "选择某一栏中的嘟文",
-  "keyboard_shortcuts.compose": "选择嘟文撰写框",
+  "keyboard_shortcuts.column": "选择某栏",
+  "keyboard_shortcuts.compose": "选择输入框",
+  "keyboard_shortcuts.conversations": "打开对话栏",
   "keyboard_shortcuts.description": "说明",
-  "keyboard_shortcuts.direct": "打开私信栏",
   "keyboard_shortcuts.down": "在列表中让光标下移",
-  "keyboard_shortcuts.enter": "展开嘟文",
-  "keyboard_shortcuts.favourite": "喜欢嘟文",
-  "keyboard_shortcuts.favourites": "打开喜欢的嘟文列表",
+  "keyboard_shortcuts.enter": "展开帖子",
+  "keyboard_shortcuts.favourite": "喜欢帖子",
+  "keyboard_shortcuts.favourites": "打开喜欢的帖子列表",
   "keyboard_shortcuts.federated": "打开跨站时间轴",
   "keyboard_shortcuts.heading": "快捷键列表",
   "keyboard_shortcuts.home": "打开主页时间轴",
   "keyboard_shortcuts.hotkey": "快捷键",
   "keyboard_shortcuts.legend": "显示此列表",
   "keyboard_shortcuts.local": "打开本站时间轴",
-  "keyboard_shortcuts.mention": "提及嘟文作者",
+  "keyboard_shortcuts.mention": "提及作者",
   "keyboard_shortcuts.muted": "打开已隐藏用户列表",
   "keyboard_shortcuts.my_profile": "打开你的个人资料",
   "keyboard_shortcuts.notifications": "打开通知栏",
   "keyboard_shortcuts.open_media": "打开媒体",
-  "keyboard_shortcuts.pinned": "打开置顶嘟文列表",
+  "keyboard_shortcuts.pinned": "打开置顶帖子列表",
   "keyboard_shortcuts.profile": "打开作者的个人资料",
-  "keyboard_shortcuts.reply": "回复嘟文",
-  "keyboard_shortcuts.requests": "打开关注请求列表",
+  "keyboard_shortcuts.reply": "回复帖子",
+  "keyboard_shortcuts.requests": "打开关注申请列表",
   "keyboard_shortcuts.search": "选择搜索框",
   "keyboard_shortcuts.spoilers": "显示或隐藏被折叠的正文",
   "keyboard_shortcuts.start": "打开“开始使用”栏",
   "keyboard_shortcuts.toggle_hidden": "显示或隐藏被折叠的正文",
   "keyboard_shortcuts.toggle_sensitivity": "显示/隐藏媒体",
-  "keyboard_shortcuts.toot": "发送新嘟文",
-  "keyboard_shortcuts.unfocus": "取消输入",
+  "keyboard_shortcuts.toot": "发布新帖子",
+  "keyboard_shortcuts.unfocus": "取消输入/搜索",
   "keyboard_shortcuts.up": "在列表中让光标上移",
   "lightbox.close": "关闭",
   "lightbox.compress": "返回图片全览",
@@ -279,68 +279,67 @@
   "lists.subheading": "你的列表",
   "load_pending": "{count} 项",
   "loading_indicator.label": "加载中……",
-  "media_gallery.toggle_visible": "隐藏 {number} 张图片",
+  "media_gallery.toggle_visible": "隐藏图片",
   "missing_indicator.label": "找不到内容",
   "missing_indicator.sublabel": "无法找到此资源",
-  "mute_modal.duration": "持续期间",
-  "mute_modal.hide_notifications": "同时隐藏来自这个用户的通知?",
+  "mute_modal.duration": "持续时长",
+  "mute_modal.hide_notifications": "是否同时隐藏来自这个用户的通知?",
   "mute_modal.indefinite": "无期限",
   "navigation_bar.apps": "移动应用",
   "navigation_bar.blocks": "已屏蔽的用户",
-  "navigation_bar.bookmarks": "书签",
+  "navigation_bar.bookmarks": "收藏夹",
   "navigation_bar.community_timeline": "本站时间轴",
-  "navigation_bar.compose": "撰写新嘟文",
-  "navigation_bar.direct": "私信",
+  "navigation_bar.compose": "撰写新帖子",
   "navigation_bar.discover": "发现",
-  "navigation_bar.domain_blocks": "已屏蔽的网站",
+  "navigation_bar.domain_blocks": "已屏蔽的域名",
   "navigation_bar.edit_profile": "修改个人资料",
   "navigation_bar.explore": "探索",
   "navigation_bar.favourites": "喜欢",
   "navigation_bar.filters": "隐藏关键词",
-  "navigation_bar.follow_requests": "关注请求",
+  "navigation_bar.follow_requests": "关注申请",
   "navigation_bar.follows_and_followers": "关注管理",
-  "navigation_bar.info": "关于本站",
+  "navigation_bar.info": "关于此服务",
   "navigation_bar.keyboard_shortcuts": "快捷键列表",
   "navigation_bar.lists": "列表",
   "navigation_bar.logout": "登出",
   "navigation_bar.mutes": "已隐藏的用户",
   "navigation_bar.personal": "个人",
-  "navigation_bar.pins": "置顶嘟文",
-  "navigation_bar.preferences": "首选项",
-  "navigation_bar.public_timeline": "跨站公共时间轴",
-  "navigation_bar.security": "安全性",
-  "notification.admin.sign_up": "{name} 注册了",
-  "notification.favourite": "{name} 喜欢了你的嘟文",
+  "navigation_bar.pins": "置顶帖子",
+  "navigation_bar.preferences": "偏好",
+  "navigation_bar.public_timeline": "跨站时间轴",
+  "navigation_bar.security": "安全",
+  "notification.admin.sign_up": "{name} 已被注册",
+  "notification.favourite": "{name} 喜欢了你的帖子",
   "notification.follow": "{name} 开始关注你",
   "notification.follow_request": "{name} 向你发送了关注请求",
   "notification.mention": "{name} 提及了你",
   "notification.own_poll": "你的投票已经结束",
   "notification.poll": "你参与的一个投票已经结束",
-  "notification.reblog": "{name} 转嘟了你的嘟文",
-  "notification.status": "{name} 刚刚发嘟",
-  "notification.update": "{name} 编辑了嘟文",
+  "notification.reblog": "{name} 转发了你的帖子",
+  "notification.status": "{name} 刚刚发帖",
+  "notification.update": "{name} 编辑了帖子",
   "notifications.clear": "清空通知列表",
   "notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
   "notifications.column_settings.admin.sign_up": "新注册:",
   "notifications.column_settings.alert": "桌面通知",
-  "notifications.column_settings.favourite": "当你的嘟文被喜欢时:",
+  "notifications.column_settings.favourite": "喜欢:",
   "notifications.column_settings.filter_bar.advanced": "显示所有类别",
   "notifications.column_settings.filter_bar.category": "快速过滤栏",
   "notifications.column_settings.filter_bar.show_bar": "显示过滤栏",
-  "notifications.column_settings.follow": "当有人关注你时:",
-  "notifications.column_settings.follow_request": "新的关注请求:",
-  "notifications.column_settings.mention": "当有人在嘟文中提及你时:",
+  "notifications.column_settings.follow": "新关注者:",
+  "notifications.column_settings.follow_request": "新关注申请:",
+  "notifications.column_settings.mention": "提及:",
   "notifications.column_settings.poll": "投票结果:",
   "notifications.column_settings.push": "推送通知",
-  "notifications.column_settings.reblog": "当有人转嘟了你的嘟文时:",
+  "notifications.column_settings.reblog": "转发:",
   "notifications.column_settings.show": "在通知栏显示",
   "notifications.column_settings.sound": "播放音效",
-  "notifications.column_settings.status": "新嘟文:",
+  "notifications.column_settings.status": "新帖:",
   "notifications.column_settings.unread_notifications.category": "未读通知",
   "notifications.column_settings.unread_notifications.highlight": "高亮显示未读通知",
   "notifications.column_settings.update": "编辑:",
   "notifications.filter.all": "全部",
-  "notifications.filter.boosts": "转嘟",
+  "notifications.filter.boosts": "转发",
   "notifications.filter.favourites": "喜欢",
   "notifications.filter.follows": "关注",
   "notifications.filter.mentions": "提及",
@@ -349,61 +348,61 @@
   "notifications.grant_permission": "授予权限",
   "notifications.group": "{count} 条通知",
   "notifications.mark_as_read": "将所有通知标为已读",
-  "notifications.permission_denied": "由于权限被拒绝,无法启用桌面通知。",
+  "notifications.permission_denied": "由于权限不可用,无法启用桌面通知。",
   "notifications.permission_denied_alert": "由于在此之前浏览器权限请求就已被拒绝,所以启用桌面通知失败",
-  "notifications.permission_required": "所需权限未被授予,所以桌面通知不可用",
+  "notifications.permission_required": "未授予所需权限,所以桌面通知不可用",
   "notifications_permission_banner.enable": "启用桌面通知",
   "notifications_permission_banner.how_to_control": "启用桌面通知以在 Mastodon 未打开时接收通知。你可以通过交互通过上面的 {icon} 按钮来精细控制可以发送桌面通知的交互类型。",
   "notifications_permission_banner.title": "精彩不容错过",
   "picture_in_picture.restore": "恢复",
   "poll.closed": "已关闭",
   "poll.refresh": "刷新",
-  "poll.total_people": "{count}人",
+  "poll.total_people": "{count} 人",
   "poll.total_votes": "{count} 票",
   "poll.vote": "投票",
   "poll.voted": "你已经对这个答案投过票了",
   "poll.votes": "{votes, plural, one {# 票} other {# 票}}",
   "poll_button.add_poll": "发起投票",
   "poll_button.remove_poll": "移除投票",
-  "privacy.change": "设置嘟文的可见范围",
+  "privacy.change": "设置帖子的可见范围",
   "privacy.direct.long": "只有被提及的用户能看到",
-  "privacy.direct.short": "私信",
-  "privacy.private.long": "只有关注你的用户能看到",
-  "privacy.private.short": "仅关注者",
-  "privacy.public.long": "所有人可见,并会出现在公共时间轴上",
+  "privacy.direct.short": "仅对提及的人可见",
+  "privacy.private.long": "仅关注者可见",
+  "privacy.private.short": "仅对关注者可见",
+  "privacy.public.long": "所有人可见",
   "privacy.public.short": "公开",
-  "privacy.unlisted.long": "所有人可见,但不会出现在公共时间轴上",
-  "privacy.unlisted.short": "不公开",
+  "privacy.unlisted.long": "对所有人可见,但不加入探索功能",
+  "privacy.unlisted.short": "非公开",
   "refresh": "刷新",
   "regeneration_indicator.label": "加载中……",
   "regeneration_indicator.sublabel": "你的主页动态正在准备中!",
-  "relative_time.days": "{number}天",
+  "relative_time.days": "{number} 天",
   "relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前",
   "relative_time.full.hours": "{number, plural, one {# 小时} other {# 小时}}前",
   "relative_time.full.just_now": "刚刚",
   "relative_time.full.minutes": "{number, plural, one {# 分钟} other {# 分钟}}前",
   "relative_time.full.seconds": "{number, plural, one {# 秒} other {# 秒}}前",
-  "relative_time.hours": "{number}时",
+  "relative_time.hours": "{number} 时",
   "relative_time.just_now": "刚刚",
-  "relative_time.minutes": "{number}分",
-  "relative_time.seconds": "{number}秒",
+  "relative_time.minutes": "{number} 分",
+  "relative_time.seconds": "{number} 秒",
   "relative_time.today": "今天",
   "reply_indicator.cancel": "取消",
   "report.block": "屏蔽",
-  "report.block_explanation": "你不会看到他们的帖子。他们也将无法看到你的帖子或关注你。他们将能够判断他们被屏蔽了。",
+  "report.block_explanation": "你将看不到他们的帖子。他们也将无法看到你的帖子或关注你。他们将能够判断他们被屏蔽了。",
   "report.categories.other": "其他",
   "report.categories.spam": "垃圾信息",
   "report.categories.violation": "内容违反一条或多条服务器规则",
   "report.category.subtitle": "选择最佳匹配",
   "report.category.title": "告诉我们这个 {type} 的情况",
   "report.category.title_account": "个人资料",
-  "report.category.title_status": "嘟文",
+  "report.category.title_status": "帖子",
   "report.close": "完成",
   "report.comment.title": "还有什么你认为我们应该知道的吗?",
   "report.forward": "转发举报至 {target}",
   "report.forward_hint": "这名用户来自另一个服务器。是否要向那个服务器发送一条匿名的举报?",
   "report.mute": "静音",
-  "report.mute_explanation": "你将不会看到他们的嘟文。他们仍然可以关注你并看到你的嘟文,但他们不会知道他们被静音了。",
+  "report.mute_explanation": "你将不会看到他们的嘟文。他们仍然可以关注你并看到你的帖子,但他们不会知道他们被静音了。",
   "report.next": "下一步",
   "report.placeholder": "备注",
   "report.reasons.dislike": "我不喜欢它",
@@ -417,7 +416,7 @@
   "report.rules.subtitle": "选择所有适用选项",
   "report.rules.title": "哪些规则被违反了?",
   "report.statuses.subtitle": "选择所有适用选项",
-  "report.statuses.title": "是否有任何嘟文可以支持这一报告?",
+  "report.statuses.title": "有任何帖子可以支持此报告吗?",
   "report.submit": "提交",
   "report.target": "举报 {target}",
   "report.thanks.take_action": "以下是您控制您在 Mastodon 上能看到哪些内容的选项:",
@@ -425,31 +424,31 @@
   "report.thanks.title": "不想看到这个内容?",
   "report.thanks.title_actionable": "感谢提交举报,我们将会进行处理。",
   "report.unfollow": "取消关注 @{name}",
-  "report.unfollow_explanation": "你正在关注这个账户。如果要想在你的主页上不再看到他们的嘟文,请取消对他们的关注。",
+  "report.unfollow_explanation": "你正在关注此账户。如果要想在你的主页上不再看到他们的帖子,取消对他们的关注即可。",
   "search.placeholder": "搜索",
   "search_popout.search_format": "高级搜索格式",
-  "search_popout.tips.full_text": "输入关键词检索所有你发送、喜欢、转嘟过或提及到你的嘟文,以及其他用户公开的用户名、昵称和话题标签。",
+  "search_popout.tips.full_text": "输入关键词检索所有你发送、喜欢、转嘟过或提及到你的帖子,以及其他用户公开的用户名、昵称和话题标签。",
   "search_popout.tips.hashtag": "话题标签",
-  "search_popout.tips.status": "嘟文",
+  "search_popout.tips.status": "帖子",
   "search_popout.tips.text": "输入关键词检索昵称、用户名和话题标签",
   "search_popout.tips.user": "用户",
   "search_results.accounts": "用户",
   "search_results.all": "全部",
   "search_results.hashtags": "话题标签",
   "search_results.nothing_found": "无法找到符合这些搜索词的任何内容",
-  "search_results.statuses": "嘟文",
-  "search_results.statuses_fts_disabled": "此Mastodon服务器未启用嘟文内容搜索。",
+  "search_results.statuses": "帖子",
+  "search_results.statuses_fts_disabled": "此 Mastodon 服务器未启用帖子内容搜索。",
   "search_results.total": "共 {count, number} 个结果",
   "status.admin_account": "打开 @{name} 的管理界面",
-  "status.admin_status": "打开这条嘟文的管理界面",
+  "status.admin_status": "打开此帖的管理界面",
   "status.block": "屏蔽 @{name}",
   "status.bookmark": "添加到书签",
-  "status.cancel_reblog_private": "取消转嘟",
-  "status.cannot_reblog": "这条嘟文不允许被转嘟",
-  "status.copy": "复制嘟文链接",
+  "status.cancel_reblog_private": "取消转贴",
+  "status.cannot_reblog": "此贴不允许被转贴",
+  "status.copy": "复制帖子链接",
   "status.delete": "删除",
-  "status.detailed_status": "对话详情",
-  "status.direct": "发送私信给 @{name}",
+  "status.detailed_status": "详细的对话视图",
+  "status.direct": "私信 @{name}",
   "status.edit": "编辑",
   "status.edited": "编辑于 {date}",
   "status.edited_x_times": "共编辑 {count, plural, one {{count} 次} other {{count} 次}}",
@@ -464,14 +463,14 @@
   "status.more": "更多",
   "status.mute": "隐藏 @{name}",
   "status.mute_conversation": "将此对话静音",
-  "status.open": "展开嘟文",
+  "status.open": "展开此贴",
   "status.pin": "在个人资料页面置顶",
-  "status.pinned": "置顶嘟文",
-  "status.read_more": "阅读全文",
-  "status.reblog": "转嘟",
-  "status.reblog_private": "转嘟(可见者不变)",
-  "status.reblogged_by": "{name} 转嘟了",
-  "status.reblogs.empty": "没有人转嘟过此条嘟文。如果有人转嘟了,就会显示在这里。",
+  "status.pinned": "置顶帖子",
+  "status.read_more": "查看更多",
+  "status.reblog": "转贴",
+  "status.reblog_private": "转贴(可见者不变)",
+  "status.reblogged_by": "{name} 转贴了",
+  "status.reblogs.empty": "没有人转贴过此贴。如果有人转贴了将显示在此。",
   "status.redraft": "删除并重新编辑",
   "status.remove_bookmark": "移除书签",
   "status.reply": "回复",
@@ -480,9 +479,9 @@
   "status.sensitive_warning": "敏感内容",
   "status.share": "分享",
   "status.show_less": "隐藏内容",
-  "status.show_less_all": "隐藏所有内容",
+  "status.show_less_all": "隐藏全部内容",
   "status.show_more": "显示更多",
-  "status.show_more_all": "显示所有内容",
+  "status.show_more_all": "显示全部内容",
   "status.show_thread": "显示全部对话",
   "status.uncached_media_warning": "暂不可用",
   "status.unmute_conversation": "将此对话解除静音",
@@ -491,7 +490,7 @@
   "suggestions.header": "你可能会感兴趣…",
   "tabs_bar.federated_timeline": "跨站",
   "tabs_bar.home": "主页",
-  "tabs_bar.local_timeline": "本站",
+  "tabs_bar.local_timeline": "本地",
   "tabs_bar.notifications": "通知",
   "tabs_bar.search": "搜索",
   "time_remaining.days": "剩余 {number, plural, one {# 天} other {# 天}}",
@@ -502,13 +501,13 @@
   "timeline_hint.remote_resource_not_displayed": "不会显示来自其它服务器的 {resource}",
   "timeline_hint.resources.followers": "关注者",
   "timeline_hint.resources.follows": "关注",
-  "timeline_hint.resources.statuses": "更早的嘟文",
+  "timeline_hint.resources.statuses": "更早的帖子",
   "trends.counter_by_accounts": "{count, plural, one {{counter} 人} other {{counter} 人}}正在讨论",
   "trends.trending_now": "现在流行",
   "ui.beforeunload": "如果你现在离开 Mastodon,你的草稿内容将会丢失。",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.billion": "{count} B",
+  "units.short.million": "{count} M",
+  "units.short.thousand": "{count} K",
   "upload_area.title": "将文件拖放到此处开始上传",
   "upload_button.label": "上传图片、视频或音频",
   "upload_error.limit": "文件大小超过限制。",
@@ -524,13 +523,13 @@
   "upload_modal.apply": "应用",
   "upload_modal.applying": "正在应用…",
   "upload_modal.choose_image": "选择图像",
-  "upload_modal.description_placeholder": "天地玄黄 宇宙洪荒 日月盈仄 辰宿列张",
+  "upload_modal.description_placeholder": "快狐跨懒狗",
   "upload_modal.detect_text": "从图片中检测文本",
   "upload_modal.edit_media": "编辑媒体",
   "upload_modal.hint": "在预览图上点击或拖动圆圈,以选择缩略图的焦点。",
-  "upload_modal.preparing_ocr": "正在准备文字识别……",
+  "upload_modal.preparing_ocr": "正在准备文字识别…",
   "upload_modal.preview_label": "预览 ({ratio})",
-  "upload_progress.label": "上传中……",
+  "upload_progress.label": "上传中…",
   "video.close": "关闭视频",
   "video.download": "下载文件",
   "video.exit_fullscreen": "退出全屏",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 462c05447..45e030833 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -70,7 +70,7 @@
   "column.blocks": "封鎖名單",
   "column.bookmarks": "書籤",
   "column.community": "本站時間軸",
-  "column.direct": "個人訊息",
+  "column.conversations": "Conversations",
   "column.directory": "瀏覽個人資料",
   "column.domain_blocks": "封鎖的服務站",
   "column.favourites": "最愛的文章",
@@ -92,8 +92,8 @@
   "community.column_settings.local_only": "只顯示本站",
   "community.column_settings.media_only": "只顯示多媒體",
   "community.column_settings.remote_only": "只顯示外站",
-  "compose_form.direct_message_warning": "這文章只有被提及的使用者才可以看到。",
   "compose_form.direct_message_warning_learn_more": "了解更多",
+  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "這文章因為不是公開,所以不會被標籤搜索。只有公開的文章才會被標籤搜索。",
   "compose_form.lock_disclaimer": "你的用戶狀態沒有{locked},任何人都能立即關注你,然後看到「只有關注者能看」的文章。",
   "compose_form.lock_disclaimer.lock": "鎖定",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "你還沒有封鎖任何使用者。",
   "empty_column.bookmarked_statuses": "你還沒建立任何書籤。這裡將會顯示你建立的書籤。",
   "empty_column.community": "本站時間軸暫時未有內容,快寫一點東西來搶頭香啊!",
-  "empty_column.direct": "你沒有個人訊息。當你發出或接收個人訊息,就會在這裡出現。",
+  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
   "empty_column.domain_blocks": "尚未隱藏任何網域。",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "你還沒收藏任何文章。這裡將會顯示你收藏的嘟文。",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "轉推",
   "keyboard_shortcuts.column": "把標示移動到其中一列",
   "keyboard_shortcuts.compose": "把標示移動到文字輸入區",
+  "keyboard_shortcuts.conversations": "to open conversations column",
   "keyboard_shortcuts.description": "描述",
-  "keyboard_shortcuts.direct": "開啟私訊欄",
   "keyboard_shortcuts.down": "在列表往下移動",
   "keyboard_shortcuts.enter": "打開文章",
   "keyboard_shortcuts.favourite": "收藏文章",
@@ -290,7 +290,6 @@
   "navigation_bar.bookmarks": "書籤",
   "navigation_bar.community_timeline": "本站時間軸",
   "navigation_bar.compose": "撰寫新文章",
-  "navigation_bar.direct": "個人訊息",
   "navigation_bar.discover": "探索",
   "navigation_bar.domain_blocks": "封鎖的服務站",
   "navigation_bar.edit_profile": "修改個人資料",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "移除投票",
   "privacy.change": "調整私隱設定",
   "privacy.direct.long": "只有提及的使用者能看到",
-  "privacy.direct.short": "私人訊息",
+  "privacy.direct.short": "Direct",
   "privacy.private.long": "只有你的關注者能看到",
-  "privacy.private.short": "關注者",
-  "privacy.public.long": "在公共時間軸顯示",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "公共",
-  "privacy.unlisted.long": "公開,但不在公共時間軸顯示",
+  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "公開",
   "refresh": "重新整理",
   "regeneration_indicator.label": "載入中……",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index d08d49af5..811e998bb 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -11,9 +11,9 @@
   "account.direct": "傳私訊給 @{name}",
   "account.disable_notifications": "取消來自 @{name} 嘟文的通知",
   "account.domain_blocked": "已封鎖網域",
-  "account.edit_profile": "編輯個人資料",
+  "account.edit_profile": "編輯個人檔案",
   "account.enable_notifications": "當 @{name} 嘟文時通知我",
-  "account.endorse": "在個人資料推薦對方",
+  "account.endorse": "在個人檔案推薦對方",
   "account.follow": "跟隨",
   "account.followers": "跟隨者",
   "account.followers.empty": "尚未有人跟隨這位使用者。",
@@ -36,13 +36,13 @@
   "account.posts_with_replies": "嘟文與回覆",
   "account.report": "檢舉 @{name}",
   "account.requested": "正在等待核准。按一下以取消跟隨請求",
-  "account.share": "分享 @{name} 的個人資料",
+  "account.share": "分享 @{name} 的個人檔案",
   "account.show_reblogs": "顯示來自 @{name} 的嘟文",
   "account.statuses_counter": "{count, plural,one {{counter} 則}other {{counter} 則}}嘟文",
   "account.unblock": "取消封鎖 @{name}",
   "account.unblock_domain": "取消封鎖域名 {domain}",
   "account.unblock_short": "解除封鎖",
-  "account.unendorse": "不再於個人資料頁面推薦對方",
+  "account.unendorse": "不再於個人檔案頁面推薦對方",
   "account.unfollow": "取消跟隨",
   "account.unmute": "取消靜音 @{name}",
   "account.unmute_notifications": "重新接收來自 @{name} 的通知",
@@ -69,9 +69,9 @@
   "bundle_modal_error.retry": "重試",
   "column.blocks": "已封鎖的使用者",
   "column.bookmarks": "書籤",
-  "column.community": "本機時間軸",
-  "column.direct": "私訊",
-  "column.directory": "瀏覽個人資料",
+  "column.community": "本站時間軸",
+  "column.conversations": "對話",
+  "column.directory": "瀏覽個人檔案",
   "column.domain_blocks": "已封鎖的網域",
   "column.favourites": "最愛",
   "column.follow_requests": "跟隨請求",
@@ -89,11 +89,11 @@
   "column_header.show_settings": "顯示設定",
   "column_header.unpin": "取消釘選",
   "column_subheading.settings": "設定",
-  "community.column_settings.local_only": "只有本機",
+  "community.column_settings.local_only": "只有本站",
   "community.column_settings.media_only": "只有媒體",
   "community.column_settings.remote_only": "只有遠端",
-  "compose_form.direct_message_warning": "這條嘟文只有被提及的使用者才看得到。",
   "compose_form.direct_message_warning_learn_more": "了解更多",
+  "compose_form.encryption_warning": "Mastodon 上的嘟文並未端到端加密。請不要透過 Mastodon 分享任何敏感資訊。",
   "compose_form.hashtag_warning": "由於這則嘟文設定為「不公開」,它將不會被列於任何主題標籤下。只有公開的嘟文才能藉由主題標籤找到。",
   "compose_form.lock_disclaimer": "您的帳戶尚未 {locked}。任何人都能關注您並看到您設定成只有跟隨者能看的嘟文。",
   "compose_form.lock_disclaimer.lock": "上鎖",
@@ -162,11 +162,11 @@
   "emoji_button.travel": "旅遊與地點",
   "empty_column.account_suspended": "帳戶被暫停",
   "empty_column.account_timeline": "這裡還沒有嘟文!",
-  "empty_column.account_unavailable": "無法取得個人資料",
+  "empty_column.account_unavailable": "無法取得個人檔案",
   "empty_column.blocks": "您還沒有封鎖任何使用者。",
   "empty_column.bookmarked_statuses": "您還沒建立任何書籤。當您建立書簽時,它將於此顯示。",
-  "empty_column.community": "本機時間軸是空的。快公開嘟些文搶頭香啊!",
-  "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。",
+  "empty_column.community": "本站時間軸是空的。快公開嘟些文搶頭香啊!",
+  "empty_column.conversations": "一旦您傳送或收到僅對其中提到之人可見的嘟文,就會在這邊顯示。",
   "empty_column.domain_blocks": "尚未封鎖任何網域。",
   "empty_column.explore_statuses": "目前沒有熱門討論,請稍候再回來看看!",
   "empty_column.favourited_statuses": "您還沒加過任何嘟文至最愛。當您收藏嘟文時,它將於此顯示。",
@@ -201,7 +201,7 @@
   "follow_requests.unlocked_explanation": "即便您的帳戶未被鎖定,{domain} 的管理員認為您可能想要自己審核這些帳戶的跟隨請求。",
   "generic.saved": "已儲存",
   "getting_started.developers": "開發者",
-  "getting_started.directory": "個人資料目錄",
+  "getting_started.directory": "個人檔案目錄",
   "getting_started.documentation": "文件",
   "getting_started.heading": "開始使用",
   "getting_started.invite": "邀請使用者",
@@ -230,8 +230,8 @@
   "keyboard_shortcuts.boost": "轉嘟",
   "keyboard_shortcuts.column": "將焦點放在其中一欄的嘟文",
   "keyboard_shortcuts.compose": "將焦點移至撰寫文字區塊",
+  "keyboard_shortcuts.conversations": "開啟對話欄",
   "keyboard_shortcuts.description": "說明",
-  "keyboard_shortcuts.direct": "開啟私訊欄",
   "keyboard_shortcuts.down": "在列表中往下移動",
   "keyboard_shortcuts.enter": "檢視嘟文",
   "keyboard_shortcuts.favourite": "加到最愛",
@@ -241,14 +241,14 @@
   "keyboard_shortcuts.home": "開啟首頁時間軸",
   "keyboard_shortcuts.hotkey": "快速鍵",
   "keyboard_shortcuts.legend": "顯示此圖例",
-  "keyboard_shortcuts.local": "開啟本機時間軸",
+  "keyboard_shortcuts.local": "開啟本站時間軸",
   "keyboard_shortcuts.mention": "提及作者",
   "keyboard_shortcuts.muted": "開啟靜音使用者列表",
-  "keyboard_shortcuts.my_profile": "開啟個人資料頁面",
+  "keyboard_shortcuts.my_profile": "開啟個人檔案頁面",
   "keyboard_shortcuts.notifications": "開啟通知欄",
   "keyboard_shortcuts.open_media": "開啟媒體",
   "keyboard_shortcuts.pinned": "開啟釘選的嘟文列表",
-  "keyboard_shortcuts.profile": "開啟作者的個人資料頁面",
+  "keyboard_shortcuts.profile": "開啟作者的個人檔案頁面",
   "keyboard_shortcuts.reply": "回應嘟文",
   "keyboard_shortcuts.requests": "開啟跟隨請求列表",
   "keyboard_shortcuts.search": "將焦點移至搜尋框",
@@ -288,12 +288,11 @@
   "navigation_bar.apps": "行動應用程式",
   "navigation_bar.blocks": "封鎖使用者",
   "navigation_bar.bookmarks": "書籤",
-  "navigation_bar.community_timeline": "本機時間軸",
+  "navigation_bar.community_timeline": "本站時間軸",
   "navigation_bar.compose": "撰寫新嘟文",
-  "navigation_bar.direct": "私訊",
   "navigation_bar.discover": "探索",
   "navigation_bar.domain_blocks": "隱藏的網域",
-  "navigation_bar.edit_profile": "編輯個人資料",
+  "navigation_bar.edit_profile": "編輯個人檔案",
   "navigation_bar.explore": "探索",
   "navigation_bar.favourites": "最愛",
   "navigation_bar.filters": "靜音詞彙",
@@ -367,12 +366,12 @@
   "poll_button.remove_poll": "移除投票",
   "privacy.change": "調整嘟文隱私狀態",
   "privacy.direct.long": "只有被提及的使用者能看到",
-  "privacy.direct.short": "私訊",
+  "privacy.direct.short": "僅限於我提及的人",
   "privacy.private.long": "只有跟隨您的使用者能看到",
-  "privacy.private.short": "僅跟隨者",
-  "privacy.public.long": "公開,且顯示於公開時間軸",
+  "privacy.private.short": "僅限跟隨者",
+  "privacy.public.long": "對所有人可見",
   "privacy.public.short": "公開",
-  "privacy.unlisted.long": "公開,但不會顯示於公開時間軸",
+  "privacy.unlisted.long": "對所有人可見,但選擇退出探索功能",
   "privacy.unlisted.short": "不公開",
   "refresh": "重新整理",
   "regeneration_indicator.label": "載入中…",
@@ -390,7 +389,7 @@
   "relative_time.today": "今天",
   "reply_indicator.cancel": "取消",
   "report.block": "封鎖",
-  "report.block_explanation": "您將不再看到他們的嘟文。他們將無法看到您的嘟文或是跟隨您。他們會被告知他們已被封鎖。",
+  "report.block_explanation": "您將不再看到他們的嘟文。他們將無法看到您的嘟文或是跟隨您。他們會發現他們已被封鎖。",
   "report.categories.other": "其他",
   "report.categories.spam": "垃圾訊息",
   "report.categories.violation": "內容違反一項或多項伺服器條款",
@@ -465,7 +464,7 @@
   "status.mute": "靜音 @{name}",
   "status.mute_conversation": "靜音對話",
   "status.open": "展開此嘟文",
-  "status.pin": "釘選到個人資料頁",
+  "status.pin": "釘選到個人檔案頁面",
   "status.pinned": "釘選的嘟文",
   "status.read_more": "閱讀更多",
   "status.reblog": "轉嘟",
@@ -486,12 +485,12 @@
   "status.show_thread": "顯示討論串",
   "status.uncached_media_warning": "無法使用",
   "status.unmute_conversation": "解除此對話的靜音",
-  "status.unpin": "從個人頁面解除釘選",
+  "status.unpin": "從個人檔案頁面解除釘選",
   "suggestions.dismiss": "關閉建議",
   "suggestions.header": "您可能對這些東西有興趣…",
   "tabs_bar.federated_timeline": "聯邦宇宙",
   "tabs_bar.home": "首頁",
-  "tabs_bar.local_timeline": "本機",
+  "tabs_bar.local_timeline": "本站",
   "tabs_bar.notifications": "通知",
   "tabs_bar.search": "搜尋",
   "time_remaining.days": "剩餘 {number, plural, one {# 天} other {# 天}}",
@@ -504,7 +503,7 @@
   "timeline_hint.resources.follows": "正在跟隨",
   "timeline_hint.resources.statuses": "更早的嘟文",
   "trends.counter_by_accounts": "{count, plural,one {{counter} 人}other {{counter} 人}}正在討論",
-  "trends.trending_now": "目前趨勢",
+  "trends.trending_now": "現正熱門",
   "ui.beforeunload": "如果離開 Mastodon,您的草稿將會不見。",
   "units.short.billion": "{count}B",
   "units.short.million": "{count}M",
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 442ffd2c0..694f5e928 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -4053,7 +4053,7 @@ a.status-card.compact:hover {
   }
 
   & > span {
-    max-width: 400px;
+    max-width: 500px;
   }
 
   a {
@@ -5598,7 +5598,7 @@ a.status-card.compact:hover {
 .loading-bar {
   background-color: $highlight-text-color;
   height: 3px;
-  position: absolute;
+  position: fixed;
   top: 0;
   left: 0;
   z-index: 9999;
diff --git a/app/lib/redis_configuration.rb b/app/lib/redis_configuration.rb
index fc8cf2f80..e14d6c8b6 100644
--- a/app/lib/redis_configuration.rb
+++ b/app/lib/redis_configuration.rb
@@ -2,12 +2,17 @@
 
 class RedisConfiguration
   class << self
+    def establish_pool(new_pool_size)
+      @pool&.shutdown(&:close)
+      @pool = ConnectionPool.new(size: new_pool_size) { new.connection }
+    end
+
     def with
       pool.with { |redis| yield redis }
     end
 
     def pool
-      @pool ||= ConnectionPool.new(size: pool_size) { new.connection }
+      @pool ||= establish_pool(pool_size)
     end
 
     def pool_size
diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb
index 1ffb5b4bf..a681e0815 100644
--- a/app/lib/webfinger.rb
+++ b/app/lib/webfinger.rb
@@ -6,8 +6,13 @@ class Webfinger
   class RedirectError < StandardError; end
 
   class Response
-    def initialize(body)
+    attr_reader :uri
+
+    def initialize(uri, body)
+      @uri  = uri
       @json = Oj.load(body, mode: :strict)
+
+      validate_response!
     end
 
     def subject
@@ -23,6 +28,10 @@ class Webfinger
     def links
       @links ||= @json['links'].index_by { |link| link['rel'] }
     end
+
+    def validate_response!
+      raise Webfinger::Error, "Missing subject in response for #{@uri}" if subject.blank?
+    end
   end
 
   def initialize(uri)
@@ -34,7 +43,7 @@ class Webfinger
   end
 
   def perform
-    Response.new(body_from_webfinger)
+    Response.new(@uri, body_from_webfinger)
   rescue Oj::ParseError
     raise Webfinger::Error, "Invalid JSON in response for #{@uri}"
   rescue Addressable::URI::InvalidURIError
diff --git a/app/models/concerns/redisable.rb b/app/models/concerns/redisable.rb
index cce8efb86..8d76b6b82 100644
--- a/app/models/concerns/redisable.rb
+++ b/app/models/concerns/redisable.rb
@@ -6,6 +6,6 @@ module Redisable
   private
 
   def redis
-    Thread.current[:redis] ||= RedisConfiguration.new.connection
+    Thread.current[:redis] ||= RedisConfiguration.pool.checkout
   end
 end
diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb
index 36e7e62ab..0e1e663c1 100644
--- a/app/models/email_domain_block.rb
+++ b/app/models/email_domain_block.rb
@@ -3,16 +3,19 @@
 #
 # Table name: email_domain_blocks
 #
-#  id              :bigint(8)        not null, primary key
-#  domain          :string           default(""), not null
-#  created_at      :datetime         not null
-#  updated_at      :datetime         not null
-#  parent_id       :bigint(8)
-#  ips             :inet             is an Array
-#  last_refresh_at :datetime
+#  id         :bigint(8)        not null, primary key
+#  domain     :string           default(""), not null
+#  created_at :datetime         not null
+#  updated_at :datetime         not null
+#  parent_id  :bigint(8)
 #
 
 class EmailDomainBlock < ApplicationRecord
+  self.ignored_columns = %w(
+    ips
+    last_refresh_at
+  )
+
   include DomainNormalizable
 
   belongs_to :parent, class_name: 'EmailDomainBlock', optional: true
@@ -27,7 +30,7 @@ class EmailDomainBlock < ApplicationRecord
     @history ||= Trends::History.new('email_domain_blocks', id)
   end
 
-  def self.block?(domain_or_domains, ips: [], attempt_ip: nil)
+  def self.block?(domain_or_domains, attempt_ip: nil)
     domains = Array(domain_or_domains).map do |str|
       domain = begin
         if str.include?('@')
@@ -48,10 +51,7 @@ class EmailDomainBlock < ApplicationRecord
 
     blocked = domains.any?(&:nil?)
 
-    scope = where(domain: domains)
-    scope = scope.or(where('ips && ARRAY[?]::inet[]', ips)) if ips.any?
-
-    scope.find_each do |block|
+    where(domain: domains).find_each do |block|
       blocked = true
       block.history.add(attempt_ip) if attempt_ip.present?
     end
diff --git a/app/models/status.rb b/app/models/status.rb
index cc7ee568f..75b464a70 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -259,7 +259,7 @@ class Status < ApplicationRecord
       media_attachments
     else
       map = media_attachments.index_by(&:id)
-      ordered_media_attachment_ids.map { |media_attachment_id| map[media_attachment_id] }
+      ordered_media_attachment_ids.filter_map { |media_attachment_id| map[media_attachment_id] }
     end
   end
 
diff --git a/app/models/trends/base.rb b/app/models/trends/base.rb
index 200f8d635..047111248 100644
--- a/app/models/trends/base.rb
+++ b/app/models/trends/base.rb
@@ -64,33 +64,38 @@ class Trends::Base
     redis.expire(used_key(at_time), 1.day.seconds)
   end
 
-  def trim_older_items
-    redis.zremrangebyscore("#{key_prefix}:all", '-inf', '(0.3')
-    redis.zremrangebyscore("#{key_prefix}:allowed", '-inf', '(0.3')
-  end
-
   def score_at_rank(rank)
     redis.zrevrange("#{key_prefix}:allowed", 0, rank, with_scores: true).last&.last || 0
   end
 
-  # @param [Integer] id
-  # @param [Float] score
-  # @param [Hash<String, Boolean>] subsets
-  def add_to_and_remove_from_subsets(id, score, subsets = {})
-    subsets.each_key do |subset|
-      key = [key_prefix, subset].compact.join(':')
+  def replace_items(suffix, items)
+    tmp_prefix    = "#{key_prefix}:tmp:#{SecureRandom.alphanumeric(6)}#{suffix}"
+    allowed_items = filter_for_allowed_items(items)
+
+    redis.pipelined do |pipeline|
+      items.each { |item| pipeline.zadd("#{tmp_prefix}:all", item[:score], item[:item].id) }
+      allowed_items.each { |item| pipeline.zadd("#{tmp_prefix}:allowed", item[:score], item[:item].id) }
 
-      if score.positive? && subsets[subset]
-        redis.zadd(key, score, id)
-      else
-        redis.zrem(key, id)
-      end
+      rename_set(pipeline, "#{tmp_prefix}:all", "#{key_prefix}:all#{suffix}", items)
+      rename_set(pipeline, "#{tmp_prefix}:allowed", "#{key_prefix}:allowed#{suffix}", allowed_items)
     end
   end
 
+  def filter_for_allowed_items(items)
+    raise NotImplementedError
+  end
+
   private
 
   def used_key(at_time)
     "#{key_prefix}:used:#{at_time.beginning_of_day.to_i}"
   end
+
+  def rename_set(pipeline, from_key, to_key, set_items)
+    if set_items.empty?
+      pipeline.del(to_key)
+    else
+      pipeline.rename(from_key, to_key)
+    end
+  end
 end
diff --git a/app/models/trends/links.rb b/app/models/trends/links.rb
index 5f046643a..604894cd6 100644
--- a/app/models/trends/links.rb
+++ b/app/models/trends/links.rb
@@ -8,14 +8,15 @@ class Trends::Links < Trends::Base
     review_threshold: 3,
     max_score_cooldown: 2.days.freeze,
     max_score_halflife: 8.hours.freeze,
+    decay_threshold: 1,
   }
 
   def register(status, at_time = Time.now.utc)
-    original_status = status.reblog? ? status.reblog : status
+    original_status = status.proper
 
-    return unless original_status.public_visibility? && status.public_visibility? &&
-                  !original_status.account.silenced? && !status.account.silenced? &&
-                  !original_status.spoiler_text?
+    return unless (original_status.public_visibility? && status.public_visibility?) &&
+                  !(original_status.account.silenced? || status.account.silenced?) &&
+                  !(original_status.spoiler_text? || original_status.sensitive?)
 
     original_status.preview_cards.each do |preview_card|
       add(preview_card, status.account_id, at_time) if preview_card.appropriate_for_trends?
@@ -61,6 +62,9 @@ class Trends::Links < Trends::Base
   private
 
   def calculate_scores(preview_cards, at_time)
+    global_items = []
+    locale_items = Hash.new { |h, key| h[key] = [] }
+
     preview_cards.each do |preview_card|
       expected  = preview_card.history.get(at_time - 1.day).accounts.to_f
       expected  = 1.0 if expected.zero?
@@ -87,33 +91,23 @@ class Trends::Links < Trends::Base
 
       decaying_score = max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f))
 
-      add_to_and_remove_from_subsets(preview_card.id, decaying_score, {
-        all: true,
-        allowed: preview_card.trendable?,
-      })
-
-      next unless valid_locale?(preview_card.language)
+      next unless decaying_score >= options[:decay_threshold]
 
-      add_to_and_remove_from_subsets(preview_card.id, decaying_score, {
-        "all:#{preview_card.language}" => true,
-        "allowed:#{preview_card.language}" => preview_card.trendable?,
-      })
+      global_items << { score: decaying_score, item:  preview_card }
+      locale_items[preview_card.language] << { score: decaying_score, item: preview_card } if valid_locale?(preview_card.language)
     end
 
-    trim_older_items
-
-    # Clean up localized sets by calculating the intersection with the main
-    # set. We do this instead of just deleting the localized sets to avoid
-    # having moments where the API returns empty results
+    replace_items('', global_items)
 
-    redis.pipelined do
-      Trends.available_locales.each do |locale|
-        redis.zinterstore("#{key_prefix}:all:#{locale}", ["#{key_prefix}:all:#{locale}", "#{key_prefix}:all"], aggregate: 'max')
-        redis.zinterstore("#{key_prefix}:allowed:#{locale}", ["#{key_prefix}:allowed:#{locale}", "#{key_prefix}:allowed"], aggregate: 'max')
-      end
+    Trends.available_locales.each do |locale|
+      replace_items(":#{locale}", locale_items[locale])
     end
   end
 
+  def filter_for_allowed_items(items)
+    items.select { |item| item[:item].trendable? }
+  end
+
   def would_be_trending?(id)
     score(id) > score_at_rank(options[:review_threshold] - 1)
   end
diff --git a/app/models/trends/statuses.rb b/app/models/trends/statuses.rb
index 0ebda0fe1..1b9e9259a 100644
--- a/app/models/trends/statuses.rb
+++ b/app/models/trends/statuses.rb
@@ -6,7 +6,8 @@ class Trends::Statuses < Trends::Base
   self.default_options = {
     threshold: 5,
     review_threshold: 3,
-    score_halflife: 6.hours.freeze,
+    score_halflife: 2.hours.freeze,
+    decay_threshold: 0.3,
   }
 
   class Query < Trends::Query
@@ -31,7 +32,7 @@ class Trends::Statuses < Trends::Base
   end
 
   def register(status, at_time = Time.now.utc)
-    add(status.proper, status.account_id, at_time) if eligible?(status)
+    add(status.proper, status.account_id, at_time) if eligible?(status.proper)
   end
 
   def add(status, _account_id, at_time = Time.now.utc)
@@ -74,53 +75,45 @@ class Trends::Statuses < Trends::Base
   private
 
   def eligible?(status)
-    original_status = status.proper
-
-    original_status.public_visibility? &&
-      original_status.account.discoverable? && !original_status.account.silenced? &&
-      (original_status.spoiler_text.blank? || Setting.trending_status_cw) && !original_status.sensitive? && !original_status.reply?
+    status.public_visibility? && status.account.discoverable? && !status.account.silenced? && (status.spoiler_text.blank? || Setting.trending_status_cw) && !status.sensitive? && !status.reply?
   end
 
   def calculate_scores(statuses, at_time)
-    redis.pipelined do
-      statuses.each do |status|
-        expected  = 1.0
-        observed  = (status.reblogs_count + status.favourites_count).to_f
-
-        score = begin
-          if expected > observed || observed < options[:threshold]
-            0
-          else
-            ((observed - expected)**2) / expected
-          end
+    global_items = []
+    locale_items = Hash.new { |h, key| h[key] = [] }
+
+    statuses.each do |status|
+      expected  = 1.0
+      observed  = (status.reblogs_count + status.favourites_count).to_f
+
+      score = begin
+        if expected > observed || observed < options[:threshold]
+          0
+        else
+          ((observed - expected)**2) / expected
         end
+      end
 
-        decaying_score = score * (0.5**((at_time.to_f - status.created_at.to_f) / options[:score_halflife].to_f))
+      decaying_score = score * (0.5**((at_time.to_f - status.created_at.to_f) / options[:score_halflife].to_f))
 
-        add_to_and_remove_from_subsets(status.id, decaying_score, {
-          all: true,
-          allowed: status.trendable? && status.account.discoverable?,
-        })
+      next unless decaying_score >= options[:decay_threshold]
 
-        next unless valid_locale?(status.language)
+      global_items << { score: decaying_score, item: status }
+      locale_items[status.language] << { account_id: status.account_id, score: decaying_score, item: status } if valid_locale?(status.language)
+    end
 
-        add_to_and_remove_from_subsets(status.id, decaying_score, {
-          "all:#{status.language}" => true,
-          "allowed:#{status.language}" => status.trendable? && status.account.discoverable?,
-        })
-      end
+    replace_items('', global_items)
 
-      trim_older_items
+    Trends.available_locales.each do |locale|
+      replace_items(":#{locale}", locale_items[locale])
+    end
+  end
 
-      # Clean up localized sets by calculating the intersection with the main
-      # set. We do this instead of just deleting the localized sets to avoid
-      # having moments where the API returns empty results
+  def filter_for_allowed_items(items)
+    # Show only one status per account, pick the one with the highest score
+    # that's also eligible to trend
 
-      Trends.available_locales.each do |locale|
-        redis.zinterstore("#{key_prefix}:all:#{locale}", ["#{key_prefix}:all:#{locale}", "#{key_prefix}:all"], aggregate: 'max')
-        redis.zinterstore("#{key_prefix}:allowed:#{locale}", ["#{key_prefix}:allowed:#{locale}", "#{key_prefix}:allowed"], aggregate: 'max')
-      end
-    end
+    items.group_by { |item| item[:account_id] }.values.filter_map { |account_items| account_items.select { |item| item[:item].trendable? && item[:item].account.discoverable? }.max_by { |item| item[:score] } }
   end
 
   def would_be_trending?(id)
diff --git a/app/models/trends/tags.rb b/app/models/trends/tags.rb
index 3caa58815..19ade52ba 100644
--- a/app/models/trends/tags.rb
+++ b/app/models/trends/tags.rb
@@ -8,6 +8,7 @@ class Trends::Tags < Trends::Base
     review_threshold: 3,
     max_score_cooldown: 2.days.freeze,
     max_score_halflife: 4.hours.freeze,
+    decay_threshold: 1,
   }
 
   def register(status, at_time = Time.now.utc)
@@ -26,7 +27,6 @@ class Trends::Tags < Trends::Base
   def refresh(at_time = Time.now.utc)
     tags = Tag.where(id: (recently_used_ids(at_time) + currently_trending_ids(false, -1)).uniq)
     calculate_scores(tags, at_time)
-    trim_older_items
   end
 
   def request_review
@@ -53,6 +53,8 @@ class Trends::Tags < Trends::Base
   private
 
   def calculate_scores(tags, at_time)
+    items = []
+
     tags.each do |tag|
       expected  = tag.history.get(at_time - 1.day).accounts.to_f
       expected  = 1.0 if expected.zero?
@@ -79,11 +81,16 @@ class Trends::Tags < Trends::Base
 
       decaying_score = max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f))
 
-      add_to_and_remove_from_subsets(tag.id, decaying_score, {
-        all: true,
-        allowed: tag.trendable?,
-      })
+      next unless decaying_score >= options[:decay_threshold]
+
+      items << { score: decaying_score, item: tag }
     end
+
+    replace_items('', items)
+  end
+
+  def filter_for_allowed_items(items)
+    items.select { |item| item[:item].trendable? }
   end
 
   def would_be_trending?(id)
diff --git a/app/services/activitypub/fetch_featured_collection_service.rb b/app/services/activitypub/fetch_featured_collection_service.rb
index 07a9fe039..37d05e055 100644
--- a/app/services/activitypub/fetch_featured_collection_service.rb
+++ b/app/services/activitypub/fetch_featured_collection_service.rb
@@ -7,19 +7,33 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
     return if account.featured_collection_url.blank? || account.suspended? || account.local?
 
     @account = account
-    @json    = fetch_resource(@account.featured_collection_url, true)
+    @json    = fetch_resource(@account.featured_collection_url, true, local_follower)
 
-    return unless supported_context?
+    return unless supported_context?(@json)
 
-    case @json['type']
+    process_items(collection_items(@json))
+  end
+
+  private
+
+  def collection_items(collection)
+    collection = fetch_collection(collection['first']) if collection['first'].present?
+    return unless collection.is_a?(Hash)
+
+    case collection['type']
     when 'Collection', 'CollectionPage'
-      process_items @json['items']
+      collection['items']
     when 'OrderedCollection', 'OrderedCollectionPage'
-      process_items @json['orderedItems']
+      collection['orderedItems']
     end
   end
 
-  private
+  def fetch_collection(collection_or_uri)
+    return collection_or_uri if collection_or_uri.is_a?(Hash)
+    return if invalid_origin?(collection_or_uri)
+
+    fetch_resource_without_id_validation(collection_or_uri, local_follower, true)
+  end
 
   def process_items(items)
     status_ids = items.filter_map do |item|
@@ -53,11 +67,9 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
     end
   end
 
-  def supported_context?
-    super(@json)
-  end
-
   def local_follower
-    @local_follower ||= @account.followers.local.without_suspended.first
+    return @local_follower if defined?(@local_follower)
+
+    @local_follower = @account.followers.local.without_suspended.first
   end
 end
diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb
index 21332a03e..387e2e09b 100644
--- a/app/services/resolve_account_service.rb
+++ b/app/services/resolve_account_service.rb
@@ -66,7 +66,7 @@ class ResolveAccountService < BaseService
       @username = @account.username
       @domain   = @account.domain
     else
-      @username, @domain = uri.split('@')
+      @username, @domain = uri.strip.gsub(/\A@/, '').split('@')
     end
 
     @domain = begin
diff --git a/app/validators/email_mx_validator.rb b/app/validators/email_mx_validator.rb
index 237ca4c7b..20f2fd37c 100644
--- a/app/validators/email_mx_validator.rb
+++ b/app/validators/email_mx_validator.rb
@@ -15,7 +15,7 @@ class EmailMxValidator < ActiveModel::Validator
 
       if resolved_ips.empty?
         user.errors.add(:email, :unreachable)
-      elsif on_blacklist?(resolved_domains, resolved_ips, user.sign_up_ip)
+      elsif on_blacklist?(resolved_domains, user.sign_up_ip)
         user.errors.add(:email, :blocked)
       end
     end
@@ -57,7 +57,7 @@ class EmailMxValidator < ActiveModel::Validator
     [ips, records]
   end
 
-  def on_blacklist?(domains, resolved_ips, attempt_ip)
-    EmailDomainBlock.block?(domains, ips: resolved_ips, attempt_ip: attempt_ip)
+  def on_blacklist?(domains, attempt_ip)
+    EmailDomainBlock.block?(domains, attempt_ip: attempt_ip)
   end
 end
diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml
index f8273718d..ee1b3d0ce 100644
--- a/app/views/admin/instances/index.html.haml
+++ b/app/views/admin/instances/index.html.haml
@@ -3,9 +3,9 @@
 
 - content_for :heading_actions do
   - if whitelist_mode?
-    = link_to t('admin.domain_allows.add_new'), new_admin_domain_allow_path, class: 'button'
+    = link_to t('admin.domain_allows.add_new'), new_admin_domain_allow_path, class: 'button', id: 'add-instance-button'
   - else
-    = link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path, class: 'button'
+    = link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path, class: 'button', id: 'add-instance-button'
 
 .filters
   .filter-subset
diff --git a/app/views/admin/report_notes/_report_note.html.haml b/app/views/admin/report_notes/_report_note.html.haml
index f9d57c2ae..3bccd3b4b 100644
--- a/app/views/admin/report_notes/_report_note.html.haml
+++ b/app/views/admin/report_notes/_report_note.html.haml
@@ -15,4 +15,7 @@
 
   - if can?(:destroy, report_note)
     .report-notes__item__actions
-      = table_link_to 'trash', t('admin.reports.notes.delete'), admin_report_note_path(report_note), method: :delete
+      - if report_note.is_a?(AccountModerationNote)
+        = table_link_to 'trash', t('admin.reports.notes.delete'), admin_account_moderation_note_path(report_note), method: :delete
+      - else
+        = table_link_to 'trash', t('admin.reports.notes.delete'), admin_report_note_path(report_note), method: :delete
diff --git a/app/workers/scheduler/email_domain_block_refresh_scheduler.rb b/app/workers/scheduler/email_domain_block_refresh_scheduler.rb
deleted file mode 100644
index e0ad89866..000000000
--- a/app/workers/scheduler/email_domain_block_refresh_scheduler.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# frozen_string_literal: true
-
-class Scheduler::EmailDomainBlockRefreshScheduler
-  include Sidekiq::Worker
-  include Redisable
-
-  sidekiq_options retry: 0
-
-  def perform
-    Resolv::DNS.open do |dns|
-      dns.timeouts = 5
-
-      EmailDomainBlock.find_each do |email_domain_block|
-        ips = begin
-          if ip?(email_domain_block.domain)
-            [email_domain_block.domain]
-          else
-            resources = dns.getresources(email_domain_block.domain, Resolv::DNS::Resource::IN::A).to_a + dns.getresources(email_domain_block.domain, Resolv::DNS::Resource::IN::AAAA).to_a
-            resources.map { |resource| resource.address.to_s }
-          end
-        end
-
-        email_domain_block.update(ips: ips, last_refresh_at: Time.now.utc)
-      end
-    end
-  end
-
-  def ip?(str)
-    str =~ Regexp.union([Resolv::IPv4::Regex, Resolv::IPv6::Regex])
-  end
-end
diff --git a/config/initializers/stoplight.rb b/config/initializers/stoplight.rb
index d9ebca76c..8c3c5755a 100644
--- a/config/initializers/stoplight.rb
+++ b/config/initializers/stoplight.rb
@@ -1,4 +1,6 @@
 require 'stoplight'
 
-Stoplight::Light.default_data_store = Stoplight::DataStore::Redis.new(RedisConfiguration.new.connection)
-Stoplight::Light.default_notifiers  = [Stoplight::Notifier::Logger.new(Rails.logger)]
+Rails.application.reloader.to_prepare do
+  Stoplight::Light.default_data_store = Stoplight::DataStore::Redis.new(RedisConfiguration.new.connection)
+  Stoplight::Light.default_notifiers  = [Stoplight::Notifier::Logger.new(Rails.logger)]
+end
diff --git a/config/locales/activerecord.io.yml b/config/locales/activerecord.io.yml
index c63dc0e8d..38304ef93 100644
--- a/config/locales/activerecord.io.yml
+++ b/config/locales/activerecord.io.yml
@@ -1 +1,32 @@
+---
 io:
+  activerecord:
+    attributes:
+      poll:
+        expires_at: Fina dato
+        options: Selektaji
+      user:
+        agreement: Servokonkordo
+        email: Retpostoadreso
+        locale: Regiono
+        password: Pasvorto
+      user/account:
+        username: Uzantonomo
+      user/invite_request:
+        text: Rezono
+    errors:
+      models:
+        account:
+          attributes:
+            username:
+              invalid: mustas konsistar nur literi, nombri e sublinei
+              reserved: rezervitas
+        status:
+          attributes:
+            reblog:
+              taken: de postajo ja existas
+        user:
+          attributes:
+            email:
+              blocked: uzas nepermisata retpostodomeno
+              unreachable: semblas ne existar
diff --git a/config/locales/activerecord.ja.yml b/config/locales/activerecord.ja.yml
index ad4c1eccf..ab13dce6c 100644
--- a/config/locales/activerecord.ja.yml
+++ b/config/locales/activerecord.ja.yml
@@ -28,5 +28,5 @@ ja:
         user:
           attributes:
             email:
-              blocked: は禁止されているプロバイダメールを使用します
-              unreachable: 存在しないようです
+              blocked: は禁止されているメールプロバイダを使用しています
+              unreachable: は存在しないようです
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index e5cd29da7..aba42bb43 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -1136,6 +1136,9 @@ ar:
     carry_mutes_over_text: انتقل هذا المستخدم من %{acct}، الذي كتَمتَه أنت.
     copy_account_note_text: 'انتقل هذا المستخدم من %{acct}، إليك ملاحظاتك السابقة عنه:'
   notification_mailer:
+    admin:
+      sign_up:
+        subject: أنشأ %{name} حسابًا
     digest:
       action: معاينة كافة الإشعارات
       body: هذا هو مُلَخَّص الرسائل التي فاتتك وذلك منذ آخر زيارة لك في %{since}
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 779b43fe9..3e1c1c6b7 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -802,6 +802,7 @@ ca:
           other: Compartit per %{count} persones en la darrera setmana
         title: Enllaços en tendència
         usage_comparison: Compartit %{today} vegades avui, comparat amb %{yesterday} d'ahir
+      only_allowed: Només permesos
       pending_review: Revisió pendent
       preview_card_providers:
         allowed: Els enllaços d'aquest mitjà poden estar en tendència
@@ -843,6 +844,7 @@ ca:
           one: Emprat per una persona en la darrera setmana
           other: Emprat per %{count} persones en la darrera setmana
       title: Tendència
+      trending: Tendència
     warning_presets:
       add_new: Afegir-ne un de nou
       delete: Esborra
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 4c373d74c..717bb5614 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -832,6 +832,7 @@ cs:
           other: Sdílený %{count} lidmi za poslední týden
         title: Populární odkazy
         usage_comparison: Za dnešek %{today} sdílení, oproti %{yesterday} včera
+      only_allowed: Jen povolené
       pending_review: Čeká na posouzení
       preview_card_providers:
         allowed: Odkazy z tohoto vydavatele se smí objevovat mezi populárními
@@ -877,6 +878,7 @@ cs:
           one: Použit jedním člověkem za poslední týden
           other: Použit %{count} lidmi za poslední týden
       title: Trendy
+      trending: Populární
     warning_presets:
       add_new: Přidat nové
       delete: Smazat
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 812b97c77..1b788574e 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -527,6 +527,8 @@ cy:
       review: Adolygu statws
       updated_msg: Gosodiadau hashnodau wedi'i diweddaru'n llwyddiannus
     title: Gweinyddiaeth
+    trends:
+      only_allowed: Derbyniwyd yn unig
     warning_presets:
       add_new: Ychwanegu newydd
       delete: Dileu
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 037530459..28c009ef3 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -801,6 +801,7 @@ da:
           other: Delt af %{count} personer den seneste uge
         title: Populære links
         usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går
+      only_allowed: Kun tilladte
       pending_review: Afventer revision
       preview_card_providers:
         allowed: Links fra denne udgiver kan trende
@@ -842,6 +843,7 @@ da:
           one: Brugt af én person den seneste uge
           other: Brugt af %{count} personer den seneste uge
       title: Trends
+      trending: Populært
     warning_presets:
       add_new: Tilføj ny
       delete: Slet
@@ -853,6 +855,7 @@ da:
       actions:
         delete_statuses: for sletning af vedkommendes indlæg
         disable: for frysning af vedkommendes konto
+        mark_statuses_as_sensitive: for at markere deres indlæg som følsomme
         none: en advarsel
         sensitive: for markering af vedkommendes konto som sensitiv
         silence: for begrænsning af vedkommendes konto
@@ -1026,6 +1029,7 @@ da:
     strikes:
       action_taken: Handling foretaget
       appeal: Appel
+      appeal_approved: Kontoanmeldelsen er blevet appelleret og er ikke længere gyldig
       appeal_rejected: Appellen er afvist
       appeal_submitted_at: Appel indgivet
       appealed_msg: Din appel er indgivet. Godkendes den, underrettes du.
@@ -1041,7 +1045,9 @@ da:
       title_actions:
         delete_statuses: Indlægsfjernelse
         disable: Kontofrysning
+        mark_statuses_as_sensitive: Markering af indlæg som følsomme
         none: Advarsel
+        sensitive: Markering af konto som følsom
         silence: Kontobegrænsning
         suspend: Kontosuspendering
       your_appeal_approved: Din appel er godkendt
@@ -1550,7 +1556,9 @@ da:
       title: Arkiv download
     suspicious_sign_in:
       change_password: skift din adgangskode
+      details: 'Her er nogle detaljer om login-forsøget:'
       explanation: Indlogning på din konto fra en ny IP-adresse detekteret.
+      further_actions_html: Hvis dette ikke var dig, anbefaler vi, at du %{action} med det samme og aktiverer to-faktor godkendelse for at holde din konto sikker.
       subject: Din konto er blevet tilgået fra en ny IP-adresse
       title: Ny indlogning
     warning:
diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml
index 73e79be23..ca8ac0584 100644
--- a/config/locales/devise.ja.yml
+++ b/config/locales/devise.ja.yml
@@ -19,10 +19,10 @@ ja:
     mailer:
       confirmation_instructions:
         action: メールアドレスの確認
-        action_with_app: 確認し %{app} に戻る
+        action_with_app: 確認し%{app}に戻る
         explanation: このメールアドレスで%{host}にアカウントを作成しました。アカウントの有効化まであと一歩です。なお、もし心当たりがない場合は、申し訳ありませんがこのメールを無視してください。
-        explanation_when_pending: このメールアドレスで %{host} への登録を申請しました。あなたがメールアドレスを確認したら、サーバー管理者が申請を審査します。ログインして一部設定を変更したりアカウントを削除できますが、ほとんどの機能は申請が承認されるまで利用できません。申請が却下された場合、あなたのデータは削除されますので以降の操作は必要ありません。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
-        extra_html: あわせて、<a href="%{terms_path}">サーバーのルール</a> と <a href="%{policy_path}">利用規約</a> もお読みください。
+        explanation_when_pending: このメールアドレスで%{host}への登録を申請しました。あなたがメールアドレスを確認したら、サーバー管理者が申請を審査します。ログインして一部設定を変更したりアカウントを削除できますが、ほとんどの機能は申請が承認されるまで利用できません。申請が却下された場合、あなたのデータは削除されますので以降の操作は必要ありません。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
+        extra_html: あわせて、<a href="%{terms_path}">サーバーのルール</a>と<a href="%{policy_path}">利用規約</a>もお読みください。
         subject: 'Mastodon: メールアドレスの確認 %{instance}'
         title: メールアドレスの確認
       email_changed:
@@ -47,17 +47,17 @@ ja:
         subject: 'Mastodon: パスワード再発行'
         title: パスワード再発行
       two_factor_disabled:
-        explanation: あなたのアカウントの二段階認証が無効化されました。メールとパスワードのみでログインできます。
-        subject: 'Mastodon: 二段階認証が無効になりました'
-        title: 二段階認証が無効化されました
+        explanation: あなたのアカウントの二要素認証が無効化されました。メールとパスワードのみでログインできます。
+        subject: 'Mastodon: 二要素認証が無効になりました'
+        title: 二要素認証が無効化されました
       two_factor_enabled:
-        explanation: あなたのアカウントの二段階認証が有効化されました。ログインするには TOTP アプリで生成されたコードが必要です。
-        subject: 'Mastodon: 二段階認証が有効になりました'
-        title: 二段階認証が有効化されました
+        explanation: あなたのアカウントの二要素認証が有効化されました。ログインするには TOTP アプリで生成されたコードが必要です。
+        subject: 'Mastodon: 二要素認証が有効になりました'
+        title: 二要素認証が有効化されました
       two_factor_recovery_codes_changed:
         explanation: 以前のリカバリーコードが無効化され、新しいコードが生成されました。
-        subject: 'Mastodon: 二段階認証のリカバリーコードが再生成されました'
-        title: 二段階認証のリカバリーコードが変更されました
+        subject: 'Mastodon: 二要素認証のリカバリーコードが再生成されました'
+        title: 二要素認証のリカバリーコードが変更されました
       unlock_instructions:
         subject: 'Mastodon: アカウントのロックの解除'
       webauthn_credential:
diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml
index 072d4bc8d..dc87d8ddb 100644
--- a/config/locales/devise.zh-CN.yml
+++ b/config/locales/devise.zh-CN.yml
@@ -22,7 +22,7 @@ zh-CN:
         action_with_app: 确认并返回%{app}
         explanation: 你在 %{host} 上使用此电子邮箱地址创建了一个账号。点击下面的链接即可激活账号。如果你没有创建账号,请忽略此邮件。
         explanation_when_pending: 你用这个电子邮件申请了在 %{host} 注册。在确认电子邮件地址之后,我们会审核你的申请。在此之前,你不能登录。如果你的申请被驳回,你的数据会被移除,因此你无需再采取任何行动。如果申请人不是你,请忽略这封邮件。
-        extra_html: 请记得阅读<a href="%{terms_path}">本服务器的相关规定</a>和<a href="%{policy_path}">我们的使用条款</a>。
+        extra_html: 请记得阅读<a href="%{terms_path}">本实例的相关规定</a>和<a href="%{policy_path}">我们的使用条款</a>。
         subject: Mastodon:来自 %{instance} 的确认指引
         title: 验证电子邮件地址
       email_changed:
diff --git a/config/locales/doorkeeper.fa.yml b/config/locales/doorkeeper.fa.yml
index 9f455e64b..799f46945 100644
--- a/config/locales/doorkeeper.fa.yml
+++ b/config/locales/doorkeeper.fa.yml
@@ -60,6 +60,7 @@ fa:
       error:
         title: خطایی رخ داد
       new:
+        prompt_html: "%{client_name} خواهان اجازه دسترسی به حساب کاربری شماست. <strong>اگر به آن اعتماد ندارید، نباید تاییدش کنید.</strong>"
         review_permissions: بازبینی اجازه‌ها
         title: نیاز به اجازه دادن
       show:
@@ -70,7 +71,12 @@ fa:
       confirmations:
         revoke: آیا مطمئن هستید؟
       index:
+        authorized_at: تایید شده در %{date}
+        description_html: اینها نرم‌افزار هایی هستند که می‌توانند به حساب کاربری شما با استفاده از رابط نرم‌افزاری دسترسی پیدا کنند. اگر نرم‌افزار های در اینجا هستند که نمی‌شناسید، یا نرم‌افزاری که رفتار مشکوک دارد، می‌توانید دسترسی اش را باطل کنید.
+        last_used_at: آخرین استفاده در %{date}
+        never_used: هرگز استفاده نشده
         scopes: اجازه‌ها
+        superapp: داخلی
         title: برنامه‌های مجاز
     errors:
       messages:
@@ -113,6 +119,9 @@ fa:
         write: فقط دسترسی نوشتن
       title:
         accounts: حساب‌ها
+        admin/accounts: مدیریت حساب های کاربری
+        admin/all: تمامی عملکرد های مدیریتی
+        admin/reports: مدیریت بازخورد ها
         all: همه چیز
         blocks: مسدودها
         bookmarks: نشانک‌ها
@@ -120,6 +129,7 @@ fa:
         crypto: رمزگذاری سرتاسری
         favourites: پسندیده‌ها
         filters: پالایه‌ها
+        follow: ارتباطات
         follows: پی‌گرفتگان
         lists: سیاهه‌ها
         media: پیوست‌های رسانه‌ای
diff --git a/config/locales/doorkeeper.hy.yml b/config/locales/doorkeeper.hy.yml
index f9e1e22bd..94ef091f3 100644
--- a/config/locales/doorkeeper.hy.yml
+++ b/config/locales/doorkeeper.hy.yml
@@ -69,6 +69,9 @@ hy:
       confirmations:
         revoke: Վստա՞հ ես
       index:
+        never_used: Երբեք չի օգտագործուել
+        scopes: Թոյլտուութիւններ
+        superapp: Ներքին
         title: Քո նոյնականացրած ծրագրերը
     errors:
       messages:
@@ -104,6 +107,25 @@ hy:
       authorized_applications:
         destroy:
           notice: Յաւելուածը չեղարկուել է։
+    grouped_scopes:
+      access:
+        read: Միայն կարդալու հնարաւորութիւն
+        read/write: Կարդալու եւ գրելու հնարաւորութիւն
+        write: Միայն գրելու հնարաւորութիւն
+      title:
+        accounts: Հաշիւներ
+        all: Բոլորը
+        blocks: Արգելափակումներ
+        bookmarks: Էջանիշեր
+        conversations: Զրոյցներ
+        favourites: Հաւանածներ
+        filters: Զտիչներ
+        follow: Կապեր
+        lists: Ցանկեր
+        mutes: Լռեցուածներ
+        notifications: Ծանուցումներ
+        push: Հրելու ծանուցումներ
+        statuses: Գրառումներ
     layouts:
       admin:
         nav:
diff --git a/config/locales/doorkeeper.io.yml b/config/locales/doorkeeper.io.yml
index ff1fdf9c2..0e03ab79f 100644
--- a/config/locales/doorkeeper.io.yml
+++ b/config/locales/doorkeeper.io.yml
@@ -5,6 +5,8 @@ io:
       doorkeeper/application:
         name: Nomo
         redirect_uri: URI di plussendo
+        scopes: Skopi
+        website: Apliksito
     errors:
       models:
         doorkeeper/application:
@@ -31,15 +33,153 @@ io:
       help:
         native_redirect_uri: Uzez %{native_redirect_uri} por lokala probi
         redirect_uri: Uzez un lineo por singla URI
+        scopes: Separez skopi per spaci. Lasez quale vakua por uzar originala skopi.
       index:
+        application: Apliko
+        callback_url: Retrovokligilo
+        delete: Efacez
+        empty: Vu ne havas apliki.
+        name: Nomo
         new: New Application
+        scopes: Skopi
+        show: Montrez
+        title: Vua apliki
       new:
         title: New Application
       show:
+        actions: Agi
         application_id: Application Id
         callback_urls: Callback urls
+        scopes: Skopi
         secret: Secret
+        title: 'Apliko: %{name}'
+    authorizations:
+      buttons:
+        authorize: Permisez
+        deny: Despermisez
+      error:
+        title: Eroro eventis
+      new:
+        prompt_html: "%{client_name} volas permiso por acesar vua konti. Ol esas externa apliko. <strong>Se vu ne fidas, lore vu debas ne permisar.</strong>"
+        review_permissions: Kontrolez permisi
+        title: Permiso bezonesas
+      show:
+        title: Kopiez ca permisnumero e glutinez adsur la apliko.
+    authorized_applications:
+      buttons:
+        revoke: Deaprobez
+      confirmations:
+        revoke: Ka vu esas certa?
+      index:
+        authorized_at: Permisesis ye %{date}
+        description_html: Co esas apliki quo povas acesar vua konto per API. Se existas apliki quon vu ne rikonocas hike, o apliko misfuncionas, vu povas desaprobar ola aceso.
+        last_used_at: Antee uzesis ye %{date}
+        never_used: Nulaloke uzesas
+        scopes: Permisi
+        superapp: Interna
+        title: Vua permisita apliki
+    errors:
+      messages:
+        access_denied: Resursproprietanto o permisservilo refuzis la demando.
+        credential_flow_not_configured: Resursproprietantpasvortidentesesofluo faliis pro ke Doorkeeper.configure.resource_owner_from_credentials ne ajustesis.
+        invalid_client: Klientpermiso falias pro nesavita kliento, neinkluzita klientpermiso o nesuportita permismetodo.
+        invalid_grant: Provizita permiso esis nevalida, expiris, deaprobesis, ne parigas uzita ridirektoligilo dum permisdemando o facesis a altra kliento.
+        invalid_redirect_uri: La inkluzita ridirektoligilo esas nevalida.
+        invalid_request:
+          missing_param: 'Bezonita parametro: %{value}.'
+          request_not_authorized: Demando bezonas permisesar. Bezonita parametro por permisar demando ne existas o esas nevalida.
+          unknown: La demando ne havas bezonita parametro, inkluzas nesuportita parametro o malformesas.
+        invalid_resource_owner: Provizita resursproprietantidenteso esas nevalida o resursproprietanto ne existas
+        invalid_scope: La demandita skopo esas nevalida, nesavata o malformata.
+        invalid_token:
+          expired: La acesficho expiris
+          revoked: Acesficho deaprobesis
+          unknown: Acesficho esas nevalida
+        resource_owner_authenticator_not_configured: Resursproprietanto falias trovar pro ke Doorkeeper.configure.resource_owner_authenticator ne ajustesis.
+        server_error: Permisservilo trovas neanticipata situeso quo preventas ol finar la demando.
+        temporarily_unavailable: Permisservilo nu ne povas direktar la demando pro provizora eceso o servilmanteno.
+        unauthorized_client: La kliento ne permisesis agar ca demando per ca metodo.
+        unsupported_grant_type: Permisprovizontipo ne suportesas da permisservilo.
+        unsupported_response_type: La permisservilo ne suportas ca responsotipo.
+    flash:
+      applications:
+        create:
+          notice: Apliko kreesis.
+        destroy:
+          notice: Apliko efacesis.
+        update:
+          notice: Apliko novigesis.
+      authorized_applications:
+        destroy:
+          notice: Apliko aprobesis.
+    grouped_scopes:
+      access:
+        read: Lekto-nura aceso
+        read/write: Lekto e skrib-nura aceso
+        write: Skrib-nura aceso
+      title:
+        accounts: Konti
+        admin/accounts: Administrar di konti
+        admin/all: Omna administrofuncioni
+        admin/reports: Administro di raporti
+        all: Omno
+        blocks: Restriktita
+        bookmarks: Libromarki
+        conversations: Konversi
+        crypto: Intersequanta chifro
+        favourites: Favorati
+        filters: Filtrili
+        follow: Relataji
+        follows: Sequati
+        lists: Listi
+        media: Mediatachaji
+        mutes: Silencigati
+        notifications: Avizi
+        push: Pulsavizi
+        reports: Raportigi
+        search: Trovez
+        statuses: Posti
+    layouts:
+      admin:
+        nav:
+          applications: Apliki
+          oauth2_provider: Provizanto di OAuth2
+      application:
+        title: Permiso di OAuth bezonesas
     scopes:
+      admin:read: lektez omna informi di la servilo
+      admin:read:accounts: lektez privata informo di omna konti
+      admin:read:reports: lektez privata informo di omna raportigo e raportigita konti
+      admin:write: modifikez omna informi di la servilo
+      admin:write:accounts: jerez konti
+      admin:write:reports: jerez raportigi
+      crypto: uzas intersequanta chifro
       follow: follow, block, unblock and unfollow accounts
+      push: ganez vua pulsavizi
       read: read your account's data
+      read:accounts: videz kontinformo
+      read:blocks: videz restrikti
+      read:bookmarks: videz vua libromarki
+      read:favourites: videz vua favorati
+      read:filters: videz vua filtrili
+      read:follows: videz vua sequinti
+      read:lists: videz vua listi
+      read:mutes: videz vua silencigi
+      read:notifications: videz vua avizi
+      read:reports: videz vua rapotigi
+      read:search: trovez por vu
+      read:statuses: videz omna posti
       write: post on your behalf
+      write:accounts: modifikez vua porfilo
+      write:blocks: restriktez konti e domeni
+      write:bookmarks: libromarkez posti
+      write:conversations: silencigez e efacez konversi
+      write:favourites: favorata posti
+      write:filters: kreez filtrili
+      write:follows: sequez personi
+      write:lists: kreez listi
+      write:media: chargez medifaili
+      write:mutes: silencigez personi e konversi
+      write:notifications: efacez vua avizi
+      write:reports: raportigez altra omni
+      write:statuses: publikigez posti
diff --git a/config/locales/doorkeeper.ja.yml b/config/locales/doorkeeper.ja.yml
index 8f99abcb1..30c48f0dc 100644
--- a/config/locales/doorkeeper.ja.yml
+++ b/config/locales/doorkeeper.ja.yml
@@ -60,7 +60,7 @@ ja:
       error:
         title: エラーが発生しました
       new:
-        prompt_html: "%{client_name} があなたのアカウントにアクセスする許可を求めています。<strong>心当たりが無い場合はアクセス許可しないでください。</strong>"
+        prompt_html: "%{client_name}があなたのアカウントにアクセスする許可を求めています。<strong>心当たりが無い場合はアクセス許可しないでください。</strong>"
         review_permissions: アクセス許可を確認
         title: 認証が必要です
       show:
@@ -71,7 +71,7 @@ ja:
       confirmations:
         revoke: 本当に取り消しますか?
       index:
-        authorized_at: "%{date} に承認されました"
+        authorized_at: "%{date}に承認されました"
         description_html: これらは、APIを使用してアカウントにアクセスできるアプリケーションです。ここに見覚えのないアプリケーションがある場合、またはアプリケーションの動作がおかしい場合、そのアクセスを取り消すことができます。
         last_used_at: 最終使用日 %{date}
         never_used: 使用されていない
@@ -95,7 +95,7 @@ ja:
           expired: アクセストークンの有効期限が切れています
           revoked: アクセストークンは取り消されています
           unknown: アクセストークンが無効です
-        resource_owner_authenticator_not_configured: Doorkeeper.configure.resource_owner_authenticator が設定されていないため、リソース所有者の検索に失敗しました。
+        resource_owner_authenticator_not_configured: Doorkeeper.configure.resource_owner_authenticatorが設定されていないため、リソース所有者の検索に失敗しました。
         server_error: 認証サーバーに予期せぬ例外が発生したため、リクエストを実行できなくなりました。
         temporarily_unavailable: 現在、認証サーバーに一時的な過負荷が掛かっているか、またはメンテナンス中のため、リクエストを処理できません。
         unauthorized_client: クライアントはこのメゾットで要求を実行する権限がありません。
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 2d475c518..71b07a24d 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -608,6 +608,9 @@ el:
       review: Κατάσταση έγκρισης
       updated_msg: Οι ρυθμίσεις των ετικετών ενημερώθηκαν επιτυχώς
     title: Διαχείριση
+    trends:
+      only_allowed: Μόνο επιτρεπόμενα
+      trending: Δημοφιλή
     warning_presets:
       add_new: Πρόσθεση νέου
       delete: Διαγραφή
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
new file mode 100644
index 000000000..fc7fc9edf
--- /dev/null
+++ b/config/locales/en-GB.yml
@@ -0,0 +1,12 @@
+---
+en-GB:
+  errors:
+    '400': The request you submitted was invalid or malformed.
+    '403': You don't have permission to view this page.
+    '404': The page you are looking for isn't here.
+    '406': This page is not available in the requested format.
+    '410': The page you were looking for doesn't exist here anymore.
+    '422': 
+    '429': Too many requests
+    '500': 
+    '503': The page could not be served due to a temporary server failure.
diff --git a/config/locales/en.yml b/config/locales/en.yml
index a4310ad60..a90409a7c 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -802,6 +802,7 @@ en:
           other: Shared by %{count} people over the last week
         title: Trending links
         usage_comparison: Shared %{today} times today, compared to %{yesterday} yesterday
+      only_allowed: Only allowed
       pending_review: Pending review
       preview_card_providers:
         allowed: Links from this publisher can trend
@@ -843,6 +844,7 @@ en:
           one: Used by one person over the last week
           other: Used by %{count} people over the last week
       title: Trends
+      trending: Trending
     warning_presets:
       add_new: Add new
       delete: Delete
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index ef2c9b43d..32c2f702c 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -517,6 +517,7 @@ es-MX:
       delivery:
         all: Todos
         clear: Limpiar errores de entrega
+        failing: Fallando
         restart: Reiniciar entrega
         stop: Detener entrega
         unavailable: No disponible
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 3a369f38e..8988ddadc 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -802,6 +802,7 @@ es:
           other: Compartido por %{count} personas durante la última semana
         title: Enlaces en tendencia
         usage_comparison: Compartido %{today} veces hoy, comparado con %{yesterday} ayer
+      only_allowed: Sólo permitido
       pending_review: Revisión pendiente
       preview_card_providers:
         allowed: Los enlaces de este medio pueden ser tendencia
@@ -843,6 +844,7 @@ es:
           one: Usada por una persona durante la última semana
           other: Usada por %{count} personas durante la última semana
       title: Tendencias
+      trending: En tendencia
     warning_presets:
       add_new: Añadir nuevo
       delete: Borrar
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 8eb40265a..63fce2af6 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -4,7 +4,7 @@ fr:
     about_hashtag_html: Voici des messages publics tagués avec <strong>#%{hashtag}</strong>. Vous pouvez interagir avec si vous avez un compte n’importe où dans le fédiverse.
     about_mastodon_html: 'Le réseau social de l''avenir : pas de publicité, pas de surveillance institutionnelle, conception éthique et décentralisation ! Gardez le contrôle de vos données avec Mastodon !'
     about_this: À propos
-    active_count_after: actifs
+    active_count_after: actif·ve·s
     active_footnote: Nombre mensuel d'utilisateur·rice·s actif·ve·s (NMUA)
     administered_by: 'Administré par :'
     api: API
@@ -54,7 +54,7 @@ fr:
     user_count_after:
       one: utilisateur
       other: utilisateur·rice·s
-    user_count_before: Accueil de
+    user_count_before: Abrite
     what_is_mastodon: Qu’est-ce que Mastodon ?
   accounts:
     choices_html: "%{name} recommande :"
@@ -91,14 +91,14 @@ fr:
     unfollow: Ne plus suivre
   admin:
     account_actions:
-      action: Effectuer une action
+      action: Effectuer l'action
       title: Effectuer une action de modération sur %{acct}
     account_moderation_notes:
       create: Laisser une remarque
       created_msg: Note de modération créée avec succès !
       destroyed_msg: Note de modération supprimée avec succès !
     accounts:
-      add_email_domain_block: Mettre le domaine du courriel sur liste noire
+      add_email_domain_block: Bloquer ce domaine de courriel
       approve: Approuver
       approved_msg: La demande d’inscription de %{username} a été approuvée avec succès
       are_you_sure: Voulez-vous vraiment faire ça ?
@@ -802,6 +802,7 @@ fr:
           other: Partagé par %{count} personnes au cours de la dernière semaine
         title: Liens tendances
         usage_comparison: Partagé %{today} fois aujourd'hui, comparé à %{yesterday} hier
+      only_allowed: Seuls autorisés
       pending_review: En attente de révision
       preview_card_providers:
         allowed: Les liens de cet éditeur peuvent être tendance
@@ -843,6 +844,7 @@ fr:
           one: Utilisé par %{count} personne au cours de la dernière semaine
           other: Utilisé par %{count} personnes au cours de la dernière semaine
       title: Tendances
+      trending: Tendances
     warning_presets:
       add_new: Ajouter un nouveau
       delete: Supprimer
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index 074ca49ba..f46ba4f8f 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -17,7 +17,7 @@ gd:
     contact_missing: Cha deach a shuidheachadh
     contact_unavailable: Chan eil seo iomchaidh
     continue_to_web: Lean air adhart dhan aplacaid-lìn
-    discover_users: Lorg cleachdaichean
+    discover_users: Rùraich cleachdaichean
     documentation: Docamaideadh
     federation_hint_html: Le cunntas air %{instance}, ’s urrainn dhut leantainn air daoine air frithealaiche Mastodon sam bith is a bharrachd.
     get_apps: Feuch aplacaid mobile
@@ -40,7 +40,7 @@ gd:
       other: post
       two: phost
     status_count_before: A dh’fhoillsich
-    tagline: Lean air caraidean ’s lorg feadhainn ùra
+    tagline: Lean air caraidean ’s rùraich feadhainn ùra
     terms: Teirmichean na seirbheise
     unavailable_content: Frithealaichean fo mhaorsainneachd
     unavailable_content_description:
@@ -598,7 +598,7 @@ gd:
     relays:
       add_new: Cuir ath-sheachadan ùr ris
       delete: Sguab às
-      description_html: "’S e frithealaiche eadar-mheadhanach a th’ ann an <strong>ath-sheachadan co-nasgaidh</strong> a nì iomlaid air grunnan mòra de phostaichean poblach eadar na frithealaichean a dh’fho-sgrìobhas ’s a dh’fhoillsicheas dha. <strong>’S urrainn dha cuideachadh a thoirt do dh’fhrithealaichean beaga is meadhanach mòr ach an lorg iad susbaint sa cho-shaoghal</strong> agus às an aonais, bhiodh aig cleachdaichean ionadail leantainn air daoine eile air frithealaichean cèine a làimh."
+      description_html: "’S e frithealaiche eadar-mheadhanach a th’ ann an <strong>ath-sheachadan co-nasgaidh</strong> a nì iomlaid air grunnan mòra de phostaichean poblach eadar na frithealaichean a dh’fho-sgrìobhas ’s a dh’fhoillsicheas dha. <strong>’S urrainn dha cuideachadh a thoirt do dh’fhrithealaichean beaga is meadhanach mòr ach an rùraich iad susbaint sa cho-shaoghal</strong> agus às an aonais, bhiodh aig cleachdaichean ionadail leantainn air daoine eile air frithealaichean cèine a làimh."
       disable: Cuir à comas
       disabled: Chaidh a chur à comas
       enable: Cuir an comas
@@ -714,12 +714,12 @@ gd:
         title: Dealbh suaichnein
       peers_api_enabled:
         desc_html: Ainmean àrainne air an do thachair am frithealaiche seo sa cho-shaoghal
-        title: Foillsich liosta nam frithealaichean a chaidh a lorg san API
+        title: Foillsich liosta nam frithealaichean a chaidh a rùrachadh san API
       preview_sensitive_media:
         desc_html: Ro-sheallaidh ceanglaichean dealbhag fhiù ’s ma chaidh comharradh gu bheil am meadhan frionasach
         title: Seall meadhanan frionasach ann an ro-sheallaidhean OpenGraph
       profile_directory:
-        desc_html: Suidhich gun gabh cleachdaichean a lorg
+        desc_html: Suidhich gun gabh cleachdaichean a rùrachadh
         title: Cuir eòlaire nam pròifil an comas
       registrations:
         closed_message:
@@ -845,7 +845,7 @@ gd:
         description_html: Seo na postaichean air a bheil am frithealaiche agad eòlach ’s a tha ’gan co-roinneadh is ’nan annsachd gu tric aig an àm seo. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh ùr no a thill ach an lorg iad daoine airson leantainn orra. Cha dèid postaichean a shealltainn gu poblach gus an gabh thu ris an ùghdar agus gus an aontaich an t-ùghdar gun dèid an cunntas aca a mholadh do dhaoine eile. ’S urrainn dhut postaichean àraidh a cheadachadh no a dhiùltadh cuideachd.
         disallow: Na ceadaich am post
         disallow_account: Na ceadaich an t-ùghdar
-        not_discoverable: Cha do chuir an t-ùghdar roimhe gun gabh a lorg
+        not_discoverable: Cha do chuir an t-ùghdar roimhe gun gabh a rùrachadh
         shared_by:
           few: Chaidh a cho-roinneadh no ’na annsachd %{friendly_count} tursan
           one: Chaidh a cho-roinneadh no ’na annsachd %{friendly_count} turas
@@ -930,7 +930,7 @@ gd:
     advanced_web_interface_hint: 'Ma tha thu airson leud gu lèir na sgrìn agad a chleachdadh, leigidh an eadar-aghaidh-lìn adhartach leat gun rèitich thu mòran cholbhan eadar-dhealaichte ach am faic thu na thogras tu de dh’fhiosrachadh aig an aon àm: Dachaigh, brathan, loidhne-ama cho-naisgte, na thogras tu de liostaichean is tagaichean hais.'
     animations_and_accessibility: Beòthachaidhean agus so-ruigsinneachd
     confirmation_dialogs: Còmhraidhean dearbhaidh
-    discovery: Lorg
+    discovery: Rùrachadh
     localization:
       body: Tha Mastodon ’ga eadar-theangachadh le saor-thoilich.
       guide_link: https://crowdin.com/project/mastodon
@@ -1056,7 +1056,7 @@ gd:
       username_unavailable: Cha bhi an t-ainm-cleachdaiche agad ri fhaighinn fhathast
   directories:
     directory: Eòlaire nam pròifil
-    explanation: Lorg cleachdaichean stèidhichte air an ùidhean
+    explanation: Rùraich cleachdaichean stèidhichte air an ùidhean
     explore_mastodon: Rùraich %{title}
   disputes:
     strikes:
@@ -1627,7 +1627,7 @@ gd:
         disable: Chan urrainn dhut an cunntas agad a chleachdadh tuilleadh ach mairidh a’ phròifil ’s an dàta eile agad. Faodaidh tu lethbhreac-glèidhidh dhen dàta agad iarraidh, roghainnean a’ chunntais atharrachadh no an cunntas agad a sguabadh às.
         mark_statuses_as_sensitive: Chuir maoir %{instance} comharra na frionasachd ri cuid dhe na postaichean agad. Is ciall dha seo gum feumar gnogag a thoirt air na meadhanan sna postaichean mus faicear ro-shealladh. ’S urrainn dhut fhèin comharra a chur gu bheil meadhan frionasach nuair a sgrìobhas tu post san à ri teachd.
         sensitive: O seo a-mach, thèid comharra na frionasachd a chur ri faidhle meadhain sam bith a luchdaicheas tu suas agus thèid am falach air cùlaibh rabhaidh a ghabhas briogadh air.
-        silence: "’S urrainn dhut an cunntas agad a chleachdadh fhathast ach chan fhaic ach na daoine a tha a’ leantainn ort mu thràth na postaichean agad air an fhrithealaiche seo agus dh’fhaoidte gun dèid d’ às-dhùnadh o iomadh gleus luirg. Gidheadh, faodaidh càch leantainn ort a làimh fhathast."
+        silence: "’S urrainn dhut an cunntas agad a chleachdadh fhathast ach chan fhaic ach na daoine a tha a’ leantainn ort mu thràth na postaichean agad air an fhrithealaiche seo agus dh’fhaoidte gun dèid d’ às-dhùnadh o iomadh gleus rùrachaidh. Gidheadh, faodaidh càch leantainn ort a làimh fhathast."
         suspend: Chan urrainn dhut an cunntas agad a chleachdadh tuilleadh agus chan fhaigh thu grèim air a’ phròifil no air an dàta eile agad. ’S urrainn dhut clàradh a-steach fhathast airson lethbhreac-glèidhidh dhen dàta agad iarraidh mur dèid an dàta a thoirt air falbh an ceann 30 latha gu slàn ach cumaidh sinn cuid dhen dàta bhunasach ach nach seachain thu an cur à rèim.
       reason: 'Adhbhar:'
       statuses: 'Iomradh air postaichean:'
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 8f28434ff..a183c6436 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -802,6 +802,7 @@ gl:
           other: Compartido por %{count} persoas na última semana
         title: Ligazóns en voga
         usage_comparison: Compartido %{today} veces hoxe, comparado con %{yesterday} onte
+      only_allowed: Só as permitidas
       pending_review: Revisión pendente
       preview_card_providers:
         allowed: As ligazóns desta orixe poden estar en voga
@@ -843,6 +844,7 @@ gl:
           one: Utilizado por unha persoa na última semana
           other: Utilizado por %{count} persoas na última semana
       title: Tendencias
+      trending: Tendencias
     warning_presets:
       add_new: Engadir novo
       delete: Eliminar
@@ -868,7 +870,7 @@ gl:
     new_report:
       body: "%{reporter} informou sobre %{target}"
       body_remote: Alguén desde %{domain} informou sobre %{target}
-      subject: Novo informe sobre %{instance} (#%{id})
+      subject: Nova denuncia sobre %{instance} (#%{id})
     new_trends:
       body: 'Os seguintes elementos precisan revisión antes de ser mostrados públicamente:'
       new_trending_links:
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 73a63b3de..0a1fd439c 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -804,6 +804,7 @@ hu:
           other: "%{count} ember osztotta meg a múlt héten"
         title: Felkapott hivatkozások
         usage_comparison: "%{today} alkalommal lett ma megosztva, a tegnapi %{yesterday} alkalomhoz képest"
+      only_allowed: Csak engedélyezett
       pending_review: Áttekintésre vár
       preview_card_providers:
         allowed: A közzétevő hivatkozásai felkapottak lehetnek
@@ -845,6 +846,7 @@ hu:
           one: Egy ember használta a múlt héten
           other: "%{count} ember használta a múlt héten"
       title: Trendek
+      trending: Felkapott
     warning_presets:
       add_new: Új hozzáadása
       delete: Törlés
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index 4c10773cb..b12349596 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -8,7 +8,7 @@ hy:
     active_footnote: Ամսեկան ակտիւ օգտատէրեր (MAU)
     administered_by: Ադմինիստրատոր՝
     api: API
-    apps: Բջջային հավելվածներ
+    apps: Բջջային յաւելուածներ
     apps_platforms: Մաստադոնը հասանելի է iOS, Android եւ այլ տարբեր հենքերում
     browse_directory: Պրպտիր օգտատէրերի շտեմարանը եւ գտիր հետաքրքիր մարդկանց
     browse_local_posts: Տես այս հանգոյցի հանրային գրառումների հոսքը
@@ -18,8 +18,8 @@ hy:
     contact_unavailable: Ոչինչ չկա
     discover_users: Գտնել օգտատերներ
     documentation: Փաստաթղթեր
-    federation_hint_html: "«%{instance}»-ում հաշիւ բացելով դուք կը կարողանաք հետեւել մարդկանց Մաստադոնի ցանկացած հանգոյցից և ոչ միայն։"
-    get_apps: Փորձեք բջջային հավելվածը
+    federation_hint_html: "«%{instance}»-ում հաշիւ բացելով դու կը կարողանաս հետեւել մարդկանց Մաստոդոնի ցանկացած հանգոյցից և ոչ միայն։"
+    get_apps: Փորձէք բջջային յաւելուածը
     hosted_on: Մաստոդոնը տեղակայուած է %{domain}ում
     instance_actor_flash: "Այս հաշիւ վիրտուալ դերասան է, օգտագործուում է սպասարկիչը, այլ ոչ անհատ օգտատիրոջը ներկայացնելու, համար։ Օգտագործուում է ֆեդերացիայի նպատակով, ու չպէտք է արգելափակուի, եթէ չէք ցանկանում արգելափակել ողջ հանգոյցը, որի դէպքում պէտք է օգտագործէք տիրոյթի արգելափակումը։ \n"
     learn_more: Իմանալ ավելին
@@ -30,9 +30,9 @@ hy:
     server_stats: Սերվերի վիճակը․
     source_code: Ելատեքստ
     status_count_after:
-      one: ստատուս
+      one: գրառում
       other: ստատուս
-    status_count_before: Ովքեր գրել են՝
+    status_count_before: Որոնք արել են՝
     tagline: Հետեւիր ընկերներիդ եւ գտիր նորերին
     terms: Ծառայութեան պայմանները
     unavailable_content: Մոդերացուող սպասարկիչներ
@@ -47,7 +47,7 @@ hy:
       suspended_title: Կասեցուած սպասարկիչներ
     unavailable_content_html: Մաստոդոնն ընդհանրապէս թոյլատրում է տեսնել բովանդակութիւնը եւ շփուել այլ դաշնեզերքի այլ հանգոյցների հետ։ Սրանք բացառութիւններն են, որոնք կիրառուել են հէնց այս հանգոյցի համար։
     user_count_after:
-      one: օգտատեր
+      one: օգտատէր
       other: օգտատերեր
     user_count_before: Այստեղ են
     what_is_mastodon: Ի՞նչ է Մաստոդոնը
@@ -57,9 +57,9 @@ hy:
     featured_tags_hint: Դու կարող ես ցուցադրել յատուկ պիտակներ, որոնք կը ցուցադրուեն այստեղ։
     follow: Հետևել
     followers:
-      one: Հետևորդ
+      one: Հետեւորդ
       other: Հետևորդներ
-    following: Հետևում եք
+    following: Հետեւած
     instance_actor_flash: Այս հաշիւը վիրտուալ դերասան է, որը ներկայացնում է հանգոյցը, եւ ոչ որեւէ անհատ օգտատիրոջ։ Այն օգտագործուում է ֆեդերացիայի նպատակներով եւ չպէտք է կասեցուի։
     joined: Միացել են %{date}
     last_active: վերջին այցը
@@ -310,9 +310,12 @@ hy:
       updated_msg: Էմոջին թարմացուեց
       upload: Վերբեռնել
     dashboard:
+      active_users: ակտիւ օգտատէրեր
+      new_users: նոր օգտուողներ
       software: Ծրագրային ապահովում
       space: Տարածքի օգտագործում
       title: Գործիքների վահանակ
+      website: Կայք
     domain_allows:
       add_new: Թոյլատրել ֆեդերացիա տիրոյթի հետ
       created_msg: Տիրոյթը յաջողութեամբ թոյլատրուեց ֆեդերացուելու
@@ -348,6 +351,7 @@ hy:
     follow_recommendations:
       language: Լեզուի համար
       status: Կարգավիճակ
+      title: Խորհուրդ ենք տալիս հետեւել
     instances:
       back_to_all: Բոլորը
       back_to_limited: Սահամանփակ
@@ -403,6 +407,8 @@ hy:
       save_and_enable: Պահպանել եւ միացնել
       status: Կարգավիճակ
       title: Վերահեռարձակիչներ
+    report_notes:
+      today_at: Այսօր ժամը %{time}-ին
     reports:
       account:
         notes:
@@ -415,8 +421,10 @@ hy:
       comment:
         none: Ոչ մի
       created_at: Բողոքարկուած
+      delete_and_resolve: Ջնջեք գրառումը
       mark_as_resolved: Նշել որպէս լուծուած
       mark_as_unresolved: Նշել որպէս չլուծուած
+      no_one_assigned: Ոչ ոք
       notes:
         create: Ավելացնել նշում
         delete: Ջնջել
@@ -430,6 +438,7 @@ hy:
       unassign: Չնշանակել
       unresolved: Չլուծուած
       updated_at: Թարմացուած
+      view_profile: Նայել անձնական էջը
     rules:
       add_new: Աւելացնել կանոն
       delete: Ջնջել
@@ -488,6 +497,8 @@ hy:
       destroyed_msg: Կայքի վերբեռնումը բարեյաջող ջնջուեց
     statuses:
       back_to_account: Վերադառնալ անձնական էջ
+      batch:
+        report: Բողոքել
       deleted: Ջնջված է
       media:
         title: Մեդիա
@@ -496,12 +507,33 @@ hy:
     tags:
       review: Վերանայել գրառումը
     title: Ադմինիստարցիա
+    trends:
+      allow: Թոյլատրել
+      approved: Հաստատուած
+      disallow: Արգելուած
+      preview_card_providers:
+        title: Հրապարակողներ
+      rejected: Մերժուած
+      statuses:
+        disallow: Արգելել գրառումը
+        disallow_account: Արգելել հեղինակին
+        title: Թրենդային գրառումներ
+      tags:
+        listable: Կարող է առաջարկուել
+        not_listable: Չի կարող առաջարկուել
+        not_usable: Չի կարող օգտագործուել
+        title: Թրենդային պիտակներ
+        usable: Կարող է օգտագործուել
+      title: Թրենդներ
     warning_presets:
       add_new: Ավելացնել նորը
       delete: Ջնջել
   admin_mailer:
     new_report:
       subject: Նոր բողոք %{instance}ի համար(#%{id})
+    new_trends:
+      new_trending_statuses:
+        title: Թրենդային գրառումներ
   appearance:
     advanced_web_interface: Սյունակավոր ինտերֆեյս
     advanced_web_interface_hint: Եթէ ցանկանում ես օգտագործել էկրանիդ ամբողջ լայնքը, ապա ընդլայնուած վեբ ինտերֆեյսով հնարաւոր է էկրանը բաժանել սիւնակների՝ զուգահեռ տեսնելու տարբեր տիպի ինֆորմացիա՝ տեղական հոսքը, ծանուցումները, ֆեդերացված հոսքը, և ցանկացած թվի ցուցակ ու հեշթեգ։
@@ -548,6 +580,7 @@ hy:
       account_status: Հաշուի կարգավիճակ
       pending: Դիմումը պէտք է քննուի մեր անձնակազմի կողմից, ինչը կարող է մի փոքր ժամանակ խլել։ Դիմումի հաստատուելու դէպքում, կտեղեկացնենք նամակով։
     trouble_logging_in: Մուտք գործելու խնդիրնե՞ր կան։
+    use_security_key: Օգտագործել անվտանգութեան բանալի
   authorize_follow:
     already_following: Դու արդէն հետեւում ես այս հաշուին
     already_requested: Դու արդէն ուղարկել ես հետեւմանն յայտ այս հաշուին
@@ -652,8 +685,10 @@ hy:
     changes_saved_msg: Փոփոխութիւնները յաջող պահուած են
     copy: Պատճենել
     delete: Ջնջել
+    none: Ոչ մի
     order_by: Դասաւորել ըստ
     save_changes: Պահպանել փոփոխութիւնները
+    today: այսօր
   imports:
     errors:
       over_rows_processing_limit: տողերի քանակը աւելին է քան %{count}-ը
@@ -704,6 +739,7 @@ hy:
     past_migrations: Նախոդ միգրացիաները
     proceed_with_move: Տեղափոխել հետեւորդներին
     redirecting_to: Քո հաշիւը վերահասցեաորում է %{acct}-ին
+    set_redirect: Կարգաւորել վերահասցէաւորումը
     warning:
       followers: Այս քայլով քո բոլոր հետեւորդներին այս հաշուից կը տեղափոխես դէպի նորը
       only_redirect_html: Որպէս այլընտրանք, կարող ես ուղղակի <a href="%{path}">վերահասցէաւորել քո հաշիւը</a>
@@ -711,8 +747,12 @@ hy:
   moderation:
     title: Մոդերացիա
   notification_mailer:
+    admin:
+      sign_up:
+        subject: "%{name}-ը գրանցուած է"
     digest:
       action: Դիտել բոլոր ծանուցումները
+      mention: "%{name} նշել է քեզ՝"
       title: Երբ բացակայ էիր...
     favourite:
       body: Քո գրառումը հաւանել է %{name}-ը։
@@ -737,6 +777,8 @@ hy:
       title: Նոր տարածում
     status:
       subject: "%{name}-ը հենց նոր գրառում արեց"
+    update:
+      subject: "%{name}-ը փոխել է գրառումը"
   notifications:
     email_events_hint: Ընտրիր իրադարձութիւնները, որոնց վերաբերեալ ցանկանում ես ստանալ ծանուցումներ․
     other_settings: Ծանուցումների այլ կարգաւորումներ
@@ -868,6 +910,7 @@ hy:
         one: "%{count} վիդեո"
         other: "%{count} վիդեո"
     content_warning: Նախազգուշացում։ %{warning}
+    edited_at_html: Խմբագրուած՝ %{date}
     open_in_web: Բացել վէբում
     over_character_limit: "%{max} նիշի սահմանը գերազանցուած է"
     poll:
@@ -900,7 +943,7 @@ hy:
       '2629746': 1 ամիս
       '31556952': 1 տարի
       '5259492': 2 ամիս
-      '604800': 1 week
+      '604800': 1 շաբաթ
       '63113904': 2 տարի
       '7889238': 3 ամիս
   stream_entries:
@@ -1000,6 +1043,7 @@ hy:
     formats:
       default: "%b %d, %Y, %H:%M"
       month: "%b %Y"
+      time: "%H:%M"
   two_factor_authentication:
     add: Ավելացնել
     disable: Անջատել
@@ -1010,16 +1054,22 @@ hy:
     generate_recovery_codes: Ստեղծել վերականգնման կոդեր
     lost_recovery_codes: Վերականգնման կոդերը հնարաւորութիւն են տալիս մուտք գործել հաշիւ՝ հեռախօսի կորստի դէպքում։ Եթէ կորցրել ես վերականգնման կոդերը, այստեղ կարող ես ստեղծել նորերը։ Նախկին վերականգման կոդերը կչեղարկվեն։
     methods: Երկքայլ նոյնականացում տարբերակներ
-    otp: Նոյնականացման հավելված
+    otp: Նոյնականացման յաւելուած
     recovery_codes: Վերականգնման կոդեր
     recovery_codes_regenerated: Վերականգման կոդերը հաջողութեամբ ստեղծուել են
     webauthn: Անվտանգութեան բանալիներ
   user_mailer:
+    suspicious_sign_in:
+      title: Նոր մուտք
     warning:
+      categories:
+        spam: Սպամ
+      reason: Պատճառ՝
       subject:
         disable: Քո %{acct} հաշիւը սառեցուել է
         none: Նախազգուշացուեմ %{acct}-ին
       title:
+        delete_statuses: Գրառումները ջնջուած են
         disable: Հաշիւը սառեցուած է
         none: Զգուշացում
         silence: Հաշիւը սահմանափակուած է
@@ -1030,9 +1080,9 @@ hy:
       final_step: 'Սկսիր գրել։ Անգամ առանց հետեւորդների քո հանրային գրառումներ կարող են երևալ ուրիշների մօտ, օրինակ՝ տեղական հոսում կամ հեշթեգերում։ Թէ ցանկանաս, կարող ես յայտնել քո մասին օգտագործելով #եսնորեկեմ հեշթեգը։'
       review_preferences_action: Փոփոխել կարգաւորումները
       subject: Բարի գալուստ Մաստոդոն
-      tip_federated_timeline: Դաշնային հոսքում երևում է ամբողջ Մաստոդոնի ցանցը։ Բայց այն ներառում է միայն այն օգտատերերին որոնց բաժանորդագրուած են ձեր հարևաններ, այդ պատճառով այն կարող է լինել ոչ ամբողջական։
+      tip_federated_timeline: Դաշնային հոսքում երևում է ամբողջ Մաստոդոնի ցանցը։ Բայց այն ներառում է միայն այն օգտատէրերին որոնց բաժանորդագրուած են ձեր հարևաններ, այդ պատճառով այն կարող է լինել ոչ ամբողջական։
       tip_following: Դու հետեւում էս քո հանգոյցի ադմին(ներ)ին լռելայն։ Այլ հետաքրքիր անձանց գտնելու համար՝ թերթիր տեղական և դաշնային հոսքերը։
-      tip_local_timeline: Տեղական հոսքում երևում են %{instance} հանգոյցի օգտատերի գրառումները։ Նրանք քո հանգոյցի հարևաններն են։
+      tip_local_timeline: Տեղական հոսքում երևում են %{instance} հանգոյցի մարդկանց գրառումները։ Նրանք քո հանգոյցի հարևաններն են։
       tips: Հուշումներ
       title: Բարի գալուստ նաւամատոյց, %{name}
   users:
diff --git a/config/locales/id.yml b/config/locales/id.yml
index b63807705..d6d00581e 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -785,6 +785,7 @@ id:
           other: Dibagikan oleh %{count} orang selama seminggu terakhir
         title: Tautan sedang tren
         usage_comparison: Dibagikan %{today} kali hari ini, dibandingkan %{yesterday} kemarin
+      only_allowed: Yang diizinkan saja
       pending_review: Tinjauan tertunda
       preview_card_providers:
         allowed: Tautan dari penerbit ini dapat menjadi tren
@@ -824,6 +825,7 @@ id:
         used_by_over_week:
           other: Digunakan oleh %{count} orang selama seminggu terakhir
       title: Tren
+      trending: Sedang tren
     warning_presets:
       add_new: Tambah baru
       delete: Hapus
diff --git a/config/locales/io.yml b/config/locales/io.yml
index f2fa8ce07..b6f7937c3 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -45,6 +45,9 @@ io:
         title: Extended site description
       site_title: Site title
       title: Site Settings
+    trends:
+      only_allowed: Nur permisato
+      trending: Tendenco
   application_mailer:
     settings: 'Chanjar la retpost-mesajala preferi: %{link}'
     view: 'Vidar:'
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 052d652bf..3e3ca0ed5 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -802,6 +802,7 @@ is:
           other: Deilt af %{count} aðilum síðustu vikuna
         title: Vinsælir tenglar
         usage_comparison: Deilt %{today} sinnum í dag, samanborið við %{yesterday} í gær
+      only_allowed: Aðeins leyfð
       pending_review: Bíður eftir yfirlestri
       preview_card_providers:
         allowed: Tenglar frá þessum útgefanda geta verið með í vinsældum
@@ -843,6 +844,7 @@ is:
           one: Notað af einum aðila síðustu vikuna
           other: Notað af %{count} aðilum síðustu vikuna
       title: Tilhneiging
+      trending: Vinsælt
     warning_presets:
       add_new: Bæta við nýju
       delete: Eyða
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 3ab203c39..c0e802f84 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -27,7 +27,7 @@ it:
       È utilizzato per scopi di federazione e non dovrebbe essere bloccato a meno che non si voglia bloccare l'intera istanza: in questo caso si dovrebbe utilizzare un blocco di dominio.
     learn_more: Scopri altro
     logged_in_as_html: Sei correntemente connesso come %{username}.
-    logout_before_registering: Hai giù acceduto.
+    logout_before_registering: Hai già effettuato l'accesso.
     privacy_policy: Politica della privacy
     rules: Regole del server
     rules_html: 'Di seguito è riportato un riassunto delle regole che devi seguire se vuoi avere un account su questo server di Mastodon:'
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 4a1e9f7d3..13b1b149f 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -2,7 +2,7 @@
 ja:
   about:
     about_hashtag_html: ハッシュタグ <strong>#%{hashtag}</strong> の公開投稿です。どこか連合に参加しているSNS上にアカウントを作れば、会話に参加することができます。
-    about_mastodon_html: Mastodon は、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。
+    about_mastodon_html: Mastodonは、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。
     about_this: 詳細情報
     active_count_after: 人がアクティブ
     active_footnote: 月間アクティブユーザー数 (MAU)
@@ -19,12 +19,12 @@ ja:
     continue_to_web: アプリで続ける
     discover_users: ユーザーを見つける
     documentation: ドキュメント
-    federation_hint_html: "%{instance} のアカウントひとつでどんなMastodon互換サーバーのユーザーでもフォローできるでしょう。"
+    federation_hint_html: "%{instance}のアカウントひとつでどんなMastodon互換サーバーのユーザーでもフォローできるでしょう。"
     get_apps: モバイルアプリを試す
     hosted_on: Mastodon hosted on %{domain}
     instance_actor_flash: "このアカウントはサーバーそのものを示す仮想的なもので、特定のユーザーを示すものではありません。これはサーバーの連合のために使用されます。サーバー全体をブロックするときは、このアカウントをブロックせずに、ドメインブロックを使用してください。 \n"
     learn_more: もっと詳しく
-    logged_in_as_html: "%{username} としてログインしています。"
+    logged_in_as_html: "%{username}としてログインしています。"
     logout_before_registering: 既にログインしています。
     privacy_policy: プライバシーポリシー
     rules: サーバーのルール
@@ -47,13 +47,13 @@ ja:
       silenced_title: サイレンス済みのサーバー
       suspended: 'これらのサーバーからのデータは処理されず、保存や変換もされません。該当するユーザーとの交流もできません:'
       suspended_title: 停止済みのサーバー
-    unavailable_content_html: 通常 Mastodon では連合先のどんなサーバーのユーザーとでもやりとりできます。ただし次のサーバーには例外が設定されています。
+    unavailable_content_html: 通常Mastodonでは連合先のどんなサーバーのユーザーとでもやりとりできます。ただし次のサーバーには例外が設定されています。
     user_count_after:
       other: 人
     user_count_before: ユーザー数
-    what_is_mastodon: Mastodon とは?
+    what_is_mastodon: Mastodonとは?
   accounts:
-    choices_html: "%{name} によるおすすめ:"
+    choices_html: "%{name}によるおすすめ:"
     endorsements_hint: あなたがフォローしている中でおすすめしたい人をここで紹介できます。
     featured_tags_hint: 特定のハッシュタグをここに表示できます。
     follow: フォロー
@@ -61,15 +61,15 @@ ja:
       other: フォロワー
     following: フォロー中
     instance_actor_flash: このアカウントは、個々のユーザーではなく、サーバー自体を表すために使用される仮想のユーザーです。 連合のために使用されるため、停止しないで下さい。
-    joined: "%{date} に登録"
+    joined: "%{date}に登録"
     last_active: 最後の活動
-    link_verified_on: このリンクの所有権は %{date} に確認されました
+    link_verified_on: このリンクの所有権は%{date}に確認されました
     media: メディア
-    moved_html: "%{name} さんは引っ越しました %{new_profile_link}:"
+    moved_html: "%{name}さんは%{new_profile_link}に引っ越しました:"
     network_hidden: この情報は利用できません
     nothing_here: 何もありません!
-    people_followed_by: "%{name} さんがフォロー中のアカウント"
-    people_who_follow: "%{name} さんをフォロー中のアカウント"
+    people_followed_by: "%{name}さんがフォロー中のアカウント"
+    people_who_follow: "%{name}さんをフォロー中のアカウント"
     pin_errors:
       following: おすすめしたい人はあなたが既にフォローしている必要があります
     posts:
@@ -94,7 +94,7 @@ ja:
     accounts:
       add_email_domain_block: メールドメインブロックに追加
       approve: 承認
-      approved_msg: "%{username} の登録申請を承認しました"
+      approved_msg: "%{username}さんの登録申請を承認しました"
       are_you_sure: 本当に実行しますか?
       avatar: アイコン
       by_domain: ドメイン
@@ -104,7 +104,7 @@ ja:
         label: メールアドレスを変更
         new_email: 新しいメールアドレス
         submit: メールアドレスの変更
-        title: "%{username} さんのメールアドレスを変更"
+        title: "%{username}さんのメールアドレスを変更"
       confirm: 確認
       confirmed: 確認済み
       confirming: 確認中
@@ -112,10 +112,10 @@ ja:
       delete: データを削除する
       deleted: 削除済み
       demote: 降格
-      destroyed_msg: "%{username} のデータは完全に削除されるよう登録されました"
+      destroyed_msg: "%{username}さんのデータは完全に削除されるよう登録されました"
       disable: 無効化
       disable_sign_in_token_auth: メールトークン認証を無効にする
-      disable_two_factor_authentication: 二段階認証を無効にする
+      disable_two_factor_authentication: 二要素認証を無効にする
       disabled: 無効
       display_name: 表示名
       domain: ドメイン
@@ -125,7 +125,7 @@ ja:
       enable: 有効化
       enable_sign_in_token_auth: メールトークン認証を有効にする
       enabled: 有効
-      enabled_msg: "%{username} の無効化を解除しました"
+      enabled_msg: "%{username}の無効化を解除しました"
       followers: フォロワー数
       follows: フォロー数
       header: ヘッダー
@@ -166,13 +166,13 @@ ja:
       public: パブリック
       push_subscription_expires: PuSH購読期限
       redownload: プロフィールを更新
-      redownloaded_msg: "%{username} のプロフィールを正常に更新しました"
+      redownloaded_msg: "%{username}のプロフィールを正常に更新しました"
       reject: 却下
-      rejected_msg: "%{username} の登録申請を却下しました"
+      rejected_msg: "%{username}さんの登録申請を却下しました"
       remove_avatar: アイコンを削除
       remove_header: ヘッダーを削除
-      removed_avatar_msg: "%{username} のアバター画像を削除しました"
-      removed_header_msg: "%{username} のヘッダー画像を削除しました"
+      removed_avatar_msg: "%{username}さんのアバター画像を削除しました"
+      removed_header_msg: "%{username}さんのヘッダー画像を削除しました"
       resend_confirmation:
         already_confirmed: メールアドレスは確認済みです
         send: 確認メールを再送
@@ -188,10 +188,10 @@ ja:
         user: ユーザー
       search: 検索
       search_same_email_domain: 同じドメインのメールアドレスを使用しているユーザー
-      search_same_ip: 同じ IP のユーザーを検索
+      search_same_ip: 同じIPのユーザーを検索
       security_measures:
         only_password: パスワードのみ
-        password_and_2fa: パスワードと 2FA
+        password_and_2fa: パスワードと二要素認証
       sensitive: 閲覧注意
       sensitized: 閲覧注意としてマーク済み
       shared_inbox_url: Shared inbox URL
@@ -206,17 +206,17 @@ ja:
       suspend: サスペンド
       suspended: 停止済み
       suspension_irreversible: このアカウントのデータは削除され元に戻せなくなります。後日アカウントの凍結を解除することはできますがデータは元に戻せません。
-      suspension_reversible_hint_html: アカウントは停止されており、データは %{date} に完全に削除されます。それまではアカウントを元に戻すことができます。今すぐ完全に削除したい場合は以下から行うことができます。
+      suspension_reversible_hint_html: アカウントは停止されており、データは%{date}に完全に削除されます。それまではアカウントを元に戻すことができます。今すぐ完全に削除したい場合は以下から行うことができます。
       title: アカウント
       unblock_email: メールアドレスのブロックを解除
-      unblocked_email_msg: "%{username} のメールアドレスのブロックを解除しました"
+      unblocked_email_msg: "%{username}さんのメールアドレスのブロックを解除しました"
       unconfirmed_email: 確認待ちのメールアドレス
       undo_sensitized: 閲覧注意から戻す
       undo_silenced: サイレンスから戻す
       undo_suspension: 停止から戻す
-      unsilenced_msg: "%{username} のサイレンス解除に成功しました"
+      unsilenced_msg: "%{username}さんのサイレンス解除に成功しました"
       unsubscribe: 購読の解除
-      unsuspended_msg: "%{username} の無効化を解除しました"
+      unsuspended_msg: "%{username}さんの無効化を解除しました"
       username: ユーザー名
       view_domain: ドメインの概要を表示
       warn: 警告
@@ -247,12 +247,12 @@ ja:
         destroy_ip_block: IPルールを削除
         destroy_status: 投稿を削除
         destroy_unavailable_domain: 配送できないドメインを削除
-        disable_2fa_user: 二段階認証を無効化
+        disable_2fa_user: 二要素認証を無効化
         disable_custom_emoji: カスタム絵文字を無効化
-        disable_sign_in_token_auth_user: ユーザーのE-mail トークン認証を無効にする
+        disable_sign_in_token_auth_user: ユーザーのメールトークン認証を無効にする
         disable_user: ユーザーを無効化
         enable_custom_emoji: カスタム絵文字を有効化
-        enable_sign_in_token_auth_user: E-mail トークンのユーザー認証を有効にする
+        enable_sign_in_token_auth_user: メールトークンのユーザー認証を有効にする
         enable_user: ユーザーを有効化
         memorialize_account: 追悼アカウント化
         promote_user: ユーザーを昇格
@@ -275,56 +275,56 @@ ja:
         update_domain_block: ドメインブロックを更新
         update_status: 投稿を更新
       actions:
-        approve_appeal_html: "%{name} さんが %{target} からの抗議を承認しました"
-        approve_user_html: "%{target} から登録された %{name} さんを承認しました"
-        assigned_to_self_report_html: "%{name} さんが通報 %{target} を自身の担当に割り当てました"
-        change_email_user_html: "%{name} さんが %{target} さんのメールアドレスを変更しました"
-        confirm_user_html: "%{name} さんが %{target} さんのメールアドレスを確認済みにしました"
-        create_account_warning_html: "%{name} さんが %{target} さんに警告メールを送信しました"
-        create_announcement_html: "%{name} さんが新しいお知らせ %{target} を作成しました"
-        create_custom_emoji_html: "%{name} さんがカスタム絵文字 %{target} を追加しました"
-        create_domain_allow_html: "%{name} さんが %{target} の連合を許可しました"
-        create_domain_block_html: "%{name} さんがドメイン %{target} をブロックしました"
-        create_email_domain_block_html: "%{name} さんが %{target} をメールドメインブロックに追加しました"
-        create_ip_block_html: "%{name} さんが IP %{target} のルールを作成しました"
-        create_unavailable_domain_html: "%{name} がドメイン %{target} への配送を停止しました"
-        demote_user_html: "%{name} さんが %{target} さんを降格しました"
-        destroy_announcement_html: "%{name} さんがお知らせ %{target} を削除しました"
-        destroy_custom_emoji_html: "%{name} さんがカスタム絵文字 %{target} を削除しました"
-        destroy_domain_allow_html: "%{name} さんが %{target} の連合許可を外しました"
-        destroy_domain_block_html: "%{name} さんがドメイン %{target} のブロックを外しました"
-        destroy_email_domain_block_html: "%{name} さんが %{target} をメールドメインブロックから外しました"
-        destroy_instance_html: "%{name} さんが %{target} をドメインブロックしました"
-        destroy_ip_block_html: "%{name} さんが IP %{target} のルールを削除しました"
-        destroy_status_html: "%{name} さんが %{target} さんの投稿を削除しました"
-        destroy_unavailable_domain_html: "%{name} がドメイン %{target} への配送を再開しました"
-        disable_2fa_user_html: "%{name} さんが %{target} さんの二段階認証を無効化しました"
-        disable_custom_emoji_html: "%{name} さんがカスタム絵文字 %{target} を無効化しました"
-        disable_sign_in_token_auth_user_html: "%{name} が %{target} のメールトークン認証を無効にしました"
-        disable_user_html: "%{name} さんが %{target} さんのログインを無効化しました"
-        enable_custom_emoji_html: "%{name} さんがカスタム絵文字 %{target} を有効化しました"
-        enable_sign_in_token_auth_user_html: "%{name} が %{target} のメールトークン認証を有効にしました"
-        enable_user_html: "%{name} さんが %{target} さんのログインを有効化しました"
-        memorialize_account_html: "%{name} さんが %{target} さんを追悼アカウントページに登録しました"
-        promote_user_html: "%{name} さんが %{target} さんを昇格しました"
-        reject_appeal_html: "%{name} さんが %{target} からの抗議を却下しました"
-        reject_user_html: "%{target} から登録された %{name} さんを拒否しました"
-        remove_avatar_user_html: "%{name} さんが %{target} さんのアイコンを削除しました"
-        reopen_report_html: "%{name} さんが通報 %{target} を未解決に戻しました"
-        reset_password_user_html: "%{name} さんが %{target} さんのパスワードをリセットしました"
-        resolve_report_html: "%{name} さんが通報 %{target} を解決済みにしました"
-        sensitive_account_html: "%{name} さんが %{target} さんのメディアを閲覧注意にマークしました"
-        silence_account_html: "%{name} さんが %{target} さんをサイレンスにしました"
-        suspend_account_html: "%{name} さんが %{target} さんを停止しました"
-        unassigned_report_html: "%{name} さんが通報 %{target} の担当を外しました"
-        unblock_email_account_html: "%{name} さんが %{target} のドメインブロックを解除しました"
-        unsensitive_account_html: "%{name} さんが %{target} さんのメディアの閲覧注意を解除しました"
-        unsilence_account_html: "%{name} さんが %{target} さんのサイレンスを解除しました"
-        unsuspend_account_html: "%{name} さんが %{target} さんの停止を解除しました"
-        update_announcement_html: "%{name} さんがお知らせ %{target} を更新しました"
-        update_custom_emoji_html: "%{name} さんがカスタム絵文字 %{target} を更新しました"
-        update_domain_block_html: "%{name} が %{target} のドメインブロックを更新しました"
-        update_status_html: "%{name} さんが %{target} さんの投稿を更新しました"
+        approve_appeal_html: "%{name}さんが%{target}さんからの抗議を承認しました"
+        approve_user_html: "%{target}から登録された%{name}さんを承認しました"
+        assigned_to_self_report_html: "%{name}さんが通報 %{target}を自身の担当に割り当てました"
+        change_email_user_html: "%{name}さんが%{target}さんのメールアドレスを変更しました"
+        confirm_user_html: "%{name}さんが%{target}さんのメールアドレスを確認済みにしました"
+        create_account_warning_html: "%{name}さんが%{target}さんに警告メールを送信しました"
+        create_announcement_html: "%{name}さんが新しいお知らせ %{target}を作成しました"
+        create_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を追加しました"
+        create_domain_allow_html: "%{name}さんが%{target}の連合を許可しました"
+        create_domain_block_html: "%{name}さんがドメイン %{target}をブロックしました"
+        create_email_domain_block_html: "%{name}さんが%{target}をメールドメインブロックに追加しました"
+        create_ip_block_html: "%{name}さんがIP %{target}のルールを作成しました"
+        create_unavailable_domain_html: "%{name}がドメイン %{target}への配送を停止しました"
+        demote_user_html: "%{name}さんが%{target}さんを降格しました"
+        destroy_announcement_html: "%{name}さんがお知らせ %{target}を削除しました"
+        destroy_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を削除しました"
+        destroy_domain_allow_html: "%{name}さんが%{target}の連合許可を外しました"
+        destroy_domain_block_html: "%{name}さんがドメイン %{target}のブロックを外しました"
+        destroy_email_domain_block_html: "%{name}さんが%{target}をメールドメインブロックから外しました"
+        destroy_instance_html: "%{name}さんがドメイン %{target}をブロックしました"
+        destroy_ip_block_html: "%{name}さんが IP %{target}のルールを削除しました"
+        destroy_status_html: "%{name}さんが%{target}さんの投稿を削除しました"
+        destroy_unavailable_domain_html: "%{name}がドメイン %{target}への配送を再開しました"
+        disable_2fa_user_html: "%{name}さんが%{target}さんの二要素認証を無効化しました"
+        disable_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を無効化しました"
+        disable_sign_in_token_auth_user_html: "%{name}さんが%{target}さんのメールトークン認証を無効にしました"
+        disable_user_html: "%{name}さんが%{target}さんのログインを無効化しました"
+        enable_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を有効化しました"
+        enable_sign_in_token_auth_user_html: "%{name}さんが%{target}さんのメールトークン認証を有効にしました"
+        enable_user_html: "%{name}さんが%{target}さんのログインを有効化しました"
+        memorialize_account_html: "%{name}さんが%{target}さんを追悼アカウントページに登録しました"
+        promote_user_html: "%{name}さんが%{target}さんを昇格しました"
+        reject_appeal_html: "%{name}さんが%{target}からの抗議を却下しました"
+        reject_user_html: "%{target}から登録された%{name}さんを拒否しました"
+        remove_avatar_user_html: "%{name}さんが%{target}さんのアイコンを削除しました"
+        reopen_report_html: "%{name}さんが通報 %{target}を未解決に戻しました"
+        reset_password_user_html: "%{name}さんが%{target}さんのパスワードをリセットしました"
+        resolve_report_html: "%{name}さんが通報 %{target}を解決済みにしました"
+        sensitive_account_html: "%{name}さんが%{target}さんのメディアを閲覧注意にマークしました"
+        silence_account_html: "%{name}さんが%{target}さんをサイレンスにしました"
+        suspend_account_html: "%{name}さんが%{target}さんを停止しました"
+        unassigned_report_html: "%{name}さんが通報 %{target}の担当を外しました"
+        unblock_email_account_html: "%{name}さんがドメイン %{target}のブロックを解除しました"
+        unsensitive_account_html: "%{name}さんが%{target}さんのメディアの閲覧注意を解除しました"
+        unsilence_account_html: "%{name}さんが%{target}さんのサイレンスを解除しました"
+        unsuspend_account_html: "%{name}さんが%{target}さんの停止を解除しました"
+        update_announcement_html: "%{name}さんがお知らせ %{target}を更新しました"
+        update_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を更新しました"
+        update_domain_block_html: "%{name}さんが%{target}のドメインブロックを更新しました"
+        update_status_html: "%{name}さんが%{target}さんの投稿を更新しました"
       deleted_status: "(削除済)"
       empty: ログが見つかりませんでした
       filter_by_action: アクションでフィルター
@@ -341,7 +341,7 @@ ja:
         title: お知らせを追加
       publish: 公開する
       published_msg: お知らせを掲載しました
-      scheduled_for: "%{time} に予約"
+      scheduled_for: "%{time}に予約"
       scheduled_msg: お知らせの掲載を予約しました
       title: お知らせ
       unpublish: 非公開にする
@@ -387,13 +387,13 @@ ja:
       new_users: 新規ユーザー
       opened_reports: 新規通報
       pending_appeals_html:
-        other: 保留中の抗議 <strong>%{count}</strong> 件
+        other: 保留中の抗議 <strong>%{count}</strong>件
       pending_reports_html:
-        other: 保留中の通報 <strong>%{count}</strong> 件
+        other: 保留中の通報 <strong>%{count}</strong>件
       pending_tags_html:
-        other: 保留中のハッシュタグ <strong>%{count}</strong> 件
+        other: 保留中のハッシュタグ <strong>%{count}</strong>件
       pending_users_html:
-        other: 保留中のユーザー <strong>%{count}</strong> 件
+        other: 保留中のユーザー <strong>%{count}</strong>件
       resolved_reports: 解決済みの通報
       software: ソフトウェア
       sources: サインアップソース
@@ -455,7 +455,7 @@ ja:
         title: 新規メールドメインブロック
       no_email_domain_block_selected: 何も選択されていないためメールドメインブロックを変更しませんでした
       resolved_dns_records_hint_html: ドメイン名はDNSでMXドメインに名前解決され、最終的にメールを受け付ける役割を担います。目に見えるドメイン名が異なっていても、同じMXドメインを使用するメールアドレスからのアカウント登録がブロックされます。<strong>主要なメールプロバイダーをブロックしないように注意して下さい。</strong>
-      resolved_through_html: "%{domain} を通して解決しました"
+      resolved_through_html: "%{domain}を通して解決しました"
       title: メールドメインブロック
     follow_recommendations:
       description_html: "<strong>おすすめフォローは、新規ユーザーが興味のあるコンテンツをすばやく見つけるのに役立ちます。</strong>ユーザーが他のユーザーとの交流を十分にしていない場合、パーソナライズされたおすすめフォローを生成する代わりに、これらのアカウントが表示されます。最近のエンゲージメントが最も高いアカウントと、特定の言語のローカルフォロワー数が最も多いアカウントを組み合わせて、毎日再計算されます。"
@@ -467,7 +467,7 @@ ja:
       unsuppress: おすすめフォローを復元
     instances:
       availability:
-        failure_threshold_reached: "%{date} に失敗のしきい値に達しました。"
+        failure_threshold_reached: "%{date}に失敗のしきい値に達しました。"
         failures_recorded:
           other: "%{count}日間試行に失敗しました。"
         no_failures_recorded: 失敗は記録されていません。
@@ -505,8 +505,8 @@ ja:
         unavailable: 配送不可
       delivery_available: 配送可能
       delivery_error_days: 配送エラー発生日
-      delivery_error_hint: "%{count} 日間配送ができない場合は、自動的に配送不可としてマークされます。"
-      destroyed_msg: "%{domain} からのデータは、すぐに削除されるように、キューに追加されました。"
+      delivery_error_hint: "%{count}日間配送ができない場合は、自動的に配送不可としてマークされます。"
+      destroyed_msg: "%{domain}からのデータは、すぐに削除されるように、キューに追加されました。"
       empty: ドメインが見つかりませんでした。
       known_accounts:
         other: 既知のアカウント数 %{count}
@@ -538,7 +538,7 @@ ja:
       delete: 削除
       expires_in:
         '1209600': 2週間
-        '15778476': 6ヶ月
+        '15778476': 半年
         '2629746': 1ヶ月
         '31556952': 1年
         '86400': 1日
@@ -572,7 +572,7 @@ ja:
     reports:
       account:
         notes:
-          other: "%{count} 件のメモ"
+          other: "%{count}件のメモ"
       action_log: 監査ログ
       action_taken_by: 通報処理者
       actions:
@@ -582,7 +582,7 @@ ja:
         resolve_description_html: 報告されたアカウントに対していかなる措置も取られず、ストライクも記録されず、報告は終了します。
         silence_description_html: 既にフォローしている人、または自分で参照した人にのみ表示されるため、プロフィールが届く範囲が大きく制限されます。いつでも元に戻すことができます。
         suspend_description_html: プロフィールとすべてのコンテンツは、最終的に削除されるまでアクセスできなくなります。アカウントとのやり取りは不可能です。30日以内に取り消し可能です。
-      actions_description_html: このレポートを解決するために取るアクションを決定します。 報告されたアカウントに対して懲罰的な措置を取った場合、メール通知が送信されます <strong>スパム</strong> カテゴリが選択されている場合を除きます。
+      actions_description_html: このレポートを解決するために取るアクションを決定します。 報告されたアカウントに対して懲罰的な措置を取った場合、メール通知が送信されますが<strong>スパム</strong>カテゴリが選択されている場合を除きます。
       add_to_report: 通報にさらに追加
       are_you_sure: 本当に実行しますか?
       assign_to_self: 担当になる
@@ -592,11 +592,11 @@ ja:
       category_description_html: 選択した理由は通報されたアカウントへの連絡時に引用されます
       comment:
         none: なし
-      comment_description_html: "%{name} からの詳細情報:"
+      comment_description_html: "%{name}からの詳細情報:"
       created_at: 通報日時
       delete_and_resolve: 投稿を削除
       forwarded: 転送済み
-      forwarded_to: "%{domain} に転送されました"
+      forwarded_to: "%{domain}に転送されました"
       mark_as_resolved: 解決済みとしてマーク
       mark_as_sensitive: 閲覧注意にする
       mark_as_unresolved: 未解決に戻す
@@ -609,9 +609,9 @@ ja:
         placeholder: どのような措置が取られたか、または関連する更新を記述してください…
         title: メモ
       notes_description_html: 他のモデレーターと将来の自分にメモを残してください
-      remote_user_placeholder: "%{instance} からのリモートユーザー"
+      remote_user_placeholder: "%{instance}からのリモートユーザー"
       reopen: 未解決に戻す
-      report: 通報#%{id}
+      report: '通報 #%{id}'
       reported_account: 報告対象アカウント
       reported_by: 報告者
       resolved: 解決済み
@@ -703,7 +703,7 @@ ja:
         desc_html: あなたのサーバーにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます
         title: カスタム詳細説明
       site_short_description:
-        desc_html: サイドバーと meta タグに表示されます。Mastodon とは何か、そしてこのサーバーの特別な何かを1段落で記述してください。空欄の場合、サーバーの説明が使用されます。
+        desc_html: サイドバーとmetaタグに表示されます。Mastodonとは何か、そしてこのサーバーの特別な何かを1段落で記述してください。空欄の場合、サーバーの説明が使用されます。
         title: 短いサーバーの説明
       site_terms:
         desc_html: 独自のプライバシーポリシーや利用規約、その他の法的根拠を記述できます。HTMLタグが使えます
@@ -713,7 +713,7 @@ ja:
         desc_html: OpenGraphとAPIによるプレビューに使用されます。サイズは1200×630px推奨です
         title: サーバーのサムネイル
       timeline_preview:
-        desc_html: ランディングページに公開タイムラインへのリンクを表示し、認証なしでの公開タイムラインへの API アクセスを許可します
+        desc_html: ランディングページに公開タイムラインへのリンクを表示し、認証なしでの公開タイムラインへのAPIアクセスを許可します
         title: 公開タイムラインへの未認証のアクセスを許可する
       title: サイト設定
       trendable_by_default:
@@ -739,13 +739,13 @@ ja:
       with_media: メディアあり
     strikes:
       actions:
-        delete_statuses: "%{name} さんが %{target} さんの投稿を削除しました"
+        delete_statuses: "%{name}さんが%{target}さんの投稿を削除しました"
         disable: "%{name}さんが%{target}さんを凍結しました"
-        mark_statuses_as_sensitive: "%{name} さんが %{target} さんの投稿を閲覧注意としてマークしました"
-        none: "%{name} が %{target} に警告を送信しました"
-        sensitive: "%{name} さんが %{target} さんのアカウントを閲覧注意としてマークしました"
+        mark_statuses_as_sensitive: "%{name}さんが%{target}さんの投稿を閲覧注意としてマークしました"
+        none: "%{name}さんが%{target}さんに警告を送信しました"
+        sensitive: "%{name}さんが%{target}さんのアカウントを閲覧注意としてマークしました"
         silence: "%{name}さんが%{target}さんを制限しました"
-        suspend: "%{name} さんが %{target} さんのアカウントを停止しました"
+        suspend: "%{name}さんが%{target}さんのアカウントを停止しました"
       appeal_approved: 抗議済み
       appeal_pending: 保留中の抗議
     system_checks:
@@ -755,12 +755,12 @@ ja:
         message_html: Elasticsearchに接続できませんでした。Elasticsearchが実行されていることを確認するか、全文検索を無効にしてください。
       elasticsearch_version_check:
         message_html: '互換性のない Elasticsearch バージョン: %{value}'
-        version_comparison: Elasticsearch %{running_version} が実行されていますが、 %{required_version} が必要です
+        version_comparison: Elasticsearch %{running_version}が実行されていますが、%{required_version}が必要です
       rules_check:
         action: サーバーのルールを管理
         message_html: サーバーのルールを定義していません。
       sidekiq_process_check:
-        message_html: "%{value} キューに対応するSidekiq プロセスがありません。Sidekiq の設定を確認してください。"
+        message_html: "%{value}キューに対応するSidekiqプロセスがありません。Sidekiqの設定を確認してください。"
     tags:
       review: 審査状況
       updated_msg: ハッシュタグ設定が更新されました
@@ -776,9 +776,10 @@ ja:
         disallow: リンクの拒否
         disallow_provider: 発行者の拒否
         shared_by_over_week:
-          other: 先週%{count}人に共有されました
+          other: 週間%{count}人に共有されました
         title: トレンドリンク
-        usage_comparison: 今日は %{today} 回、昨日は %{yesterday} 回共有されました
+        usage_comparison: 今日は%{today}回、昨日は%{yesterday}回共有されました
+      only_allowed: 許可済み
       pending_review: 保留中
       preview_card_providers:
         allowed: この発行者からのリンクを許可
@@ -805,15 +806,16 @@ ja:
         not_listable: おすすめに表示しない
         not_trendable: トレンドに表示しない
         not_usable: 使用を禁止
-        peaked_on_and_decaying: "%{date} 以降、しばらく使われていません"
+        peaked_on_and_decaying: "%{date}以降、しばらく使われていません"
         title: トレンドタグ
         trendable: トレンドに表示する
-        trending_rank: '人気: %{rank} 位'
+        trending_rank: '人気: %{rank}位'
         usable: 使用を許可
-        usage_comparison: 今日は %{today} 回、昨日は %{yesterday} 回使用されました。
+        usage_comparison: 今日は%{today}回、昨日は%{yesterday}回使用されました。
         used_by_over_week:
-          other: 先週%{count}人に使用されました
+          other: 週間%{count}人に使用されました
       title: トレンド
+      trending: トレンド
     warning_presets:
       add_new: 追加
       delete: 削除
@@ -831,14 +833,14 @@ ja:
         silence: アカウントを制限する
         suspend: アカウントを停止する
       next_steps: モデレーションの決定を取り消すために申し立てを承認するか、無視することができます。
-      subject: "%{instance} で %{username} からモデレーションへの申し立てが届きました。"
+      subject: "%{instance}で%{username}さんからモデレーションへの申し立てが届きました。"
     new_pending_account:
       body: 新しいアカウントの詳細は以下の通りです。この申請を承認または却下することができます。
-      subject: "%{instance} で新しいアカウント (%{username}) が承認待ちです"
+      subject: "%{instance}で新しいアカウント (%{username}) が承認待ちです"
     new_report:
-      body: "%{reporter} が %{target} を通報しました"
-      body_remote: "%{domain} の誰かが %{target} を通報しました"
-      subject: "%{instance} の新しい通報 (#%{id})"
+      body: "%{reporter}さんが%{target}さんを通報しました"
+      body_remote: "%{domain}の誰かが%{target}さんを通報しました"
+      subject: "%{instance}の新しい通報 (#%{id})"
     new_trends:
       body: 以下の項目は、公開する前に審査が必要です。
       new_trending_links:
@@ -850,7 +852,7 @@ ja:
       new_trending_tags:
         no_approved_tags: 承認されたトレンドハッシュタグはありません。
         title: トレンドハッシュタグ
-      subject: "%{instance} で新しいトレンド が審査待ちです"
+      subject: "%{instance}で新しいトレンドが審査待ちです"
   aliases:
     add_new: エイリアスを作成
     created_msg: エイリアスを作成しました。これで以前のアカウントから引っ越しを開始できます。
@@ -859,7 +861,7 @@ ja:
     hint_html: 他のアカウントからこのアカウントにフォロワーを引き継いで引っ越したい場合、ここでエイリアスを作成しておく必要があります。エイリアス自体は<strong>無害で、取り消す</strong>ことができます。<strong>引っ越しは以前のアカウント側から開始する必要があります</strong>。
     remove: エイリアスを削除
   appearance:
-    advanced_web_interface: 上級者向け UI
+    advanced_web_interface: 上級者向けUI
     advanced_web_interface_hint: ディスプレイを幅いっぱいまで活用したい場合、上級者向け UI をおすすめします。ホーム、通知、連合タイムライン、更にはリストやハッシュタグなど、様々な異なるカラムから望む限りの情報を一度に受け取れるような設定が可能になります。
     animations_and_accessibility: アニメーションとアクセシビリティー
     confirmation_dialogs: 確認ダイアログ
@@ -872,7 +874,7 @@ ja:
     toot_layout: 投稿のレイアウト
   application_mailer:
     notification_preferences: メール設定の変更
-    salutation: "%{name} さん"
+    salutation: "%{name}さん"
     settings: 'メール設定の変更: %{link}'
     view: 'リンク:'
     view_profile: プロフィールを表示
@@ -888,19 +890,19 @@ ja:
   auth:
     apply_for_account: 登録を申請する
     change_password: パスワード
-    checkbox_agreement_html: <a href="%{rules_path}" target="_blank">サーバーのルール</a> と <a href="%{terms_path}" target="_blank">プライバシーポリシー</a> に同意します
-    checkbox_agreement_without_rules_html: <a href="%{terms_path}" target="_blank">利用規約</a> に同意します
+    checkbox_agreement_html: <a href="%{rules_path}" target="_blank">サーバーのルール</a>と<a href="%{terms_path}" target="_blank">プライバシーポリシー</a>に同意します
+    checkbox_agreement_without_rules_html: <a href="%{terms_path}" target="_blank">利用規約</a>に同意します
     delete_account: アカウントの削除
-    delete_account_html: アカウントを削除したい場合、<a href="%{path}">こちら</a> から手続きが行えます。削除する前に、確認画面があります。
+    delete_account_html: アカウントを削除したい場合、<a href="%{path}">こちら</a>から手続きが行えます。削除する前に、確認画面があります。
     description:
-      prefix_invited_by_user: "@%{name} があなたをこの Mastodon サーバーに招待しました"
-      prefix_sign_up: 今すぐ Mastodon を始めよう!
-      suffix: アカウントがあれば、どんな Mastodon 互換サーバーのユーザーでもフォローしたりメッセージをやり取りできるようになります!
+      prefix_invited_by_user: "@%{name}さんがあなたをこのMastodonサーバーに招待しました"
+      prefix_sign_up: 今すぐMastodonを始めよう!
+      suffix: アカウントがあれば、どんなMastodon互換サーバーのユーザーでもフォローしたりメッセージをやり取りできるようになります!
     didnt_get_confirmation: 確認メールを受信できませんか?
     dont_have_your_security_key: セキュリティキーを持っていませんか?
     forgot_password: パスワードをお忘れですか?
     invalid_reset_password_token: パスワードリセットトークンが正しくないか期限切れです。もう一度リクエストしてください。
-    link_to_otp: 携帯電話から二段階認証コードを入力するか、リカバリーコードを入力してください
+    link_to_otp: 携帯電話から二要素認証コードを入力するか、リカバリーコードを入力してください
     link_to_webauth: セキュリティキーを使用する
     log_in_with: 次の方法でログイン
     login: ログイン
@@ -912,21 +914,21 @@ ja:
       cas: CAS
       saml: SAML
     register: 登録する
-    registration_closed: "%{instance} は現在、新規登録停止中です"
+    registration_closed: "%{instance}は現在、新規登録停止中です"
     resend_confirmation: 確認メールを再送する
     reset_password: パスワードを再発行
     security: セキュリティ
     set_new_password: 新しいパスワード
     setup:
       email_below_hint_html: 下記のメールアドレスが間違っている場合、ここで変更することで新たに確認メールを受信できます。
-      email_settings_hint_html: 確認用のメールを %{email} に送信しました。メールアドレスが正しくない場合、以下より変更することができます。
+      email_settings_hint_html: 確認用のメールを%{email}に送信しました。メールアドレスが正しくない場合、以下より変更することができます。
       title: セットアップ
     status:
       account_status: アカウントの状態
       confirming: メールアドレスの確認が完了するのを待っています。
       functional: アカウントは完全に機能しています。
       pending: あなたの申請は現在サーバー管理者による審査待ちです。これにはしばらくかかります。申請が承認されるとメールが届きます。
-      redirecting_to: アカウントは %{acct} に引っ越し設定されているため非アクティブになっています。
+      redirecting_to: アカウントは%{acct}に引っ越し設定されているため非アクティブになっています。
       view_strikes: 過去のストライクを表示
     too_fast: フォームの送信が速すぎます。もう一度やり直してください。
     trouble_logging_in: ログインできませんか?
@@ -941,17 +943,17 @@ ja:
     post_follow:
       close: またはこのウィンドウを閉じます。
       return: ユーザーのプロフィールを見る
-      web: Web を開く
-    title: "%{acct} をフォロー"
+      web: Webを開く
+    title: "%{acct}さんをフォロー"
   challenge:
     confirm: 続ける
-    hint_html: 以後 1 時間はパスワードの再入力を求めません
+    hint_html: 以後1時間はパスワードの再入力を求めません
     invalid_password: パスワードが間違っています
     prompt: 続行するにはパスワードを入力してください
   crypto:
     errors:
-      invalid_key: 有効な Ed25519 または Curve25519 キーではありません
-      invalid_signature: 有効な Ed25519 署名ではありません
+      invalid_key: 有効なEd25519またはCurve25519キーではありません
+      invalid_signature: 有効なEd25519署名ではありません
   date:
     formats:
       default: "%Y年%m月%d日"
@@ -981,7 +983,7 @@ ja:
       caches: 他のサーバーにコンテンツのキャッシュがずっと残る場合があります
       data_removal: あなたの投稿やその他のデータはこのサーバーから完全に削除されます
       email_change_html: アカウントを削除しなくても<a href="%{path}">メールアドレスを変更</a>できます
-      email_contact_html: それでも届かない場合、<a href="mailto:%{email}">%{email}</a> までメールで問い合わせてください
+      email_contact_html: それでも届かない場合、<a href="mailto:%{email}">%{email}</a>までメールで問い合わせてください
       email_reconfirmation_html: 確認のメールが届かない場合、<a href="%{path}">もう一度申請</a>できます。
       irreversible: 削除操作の撤回やアカウントの復活はできません
       more_details_html: 詳しくは<a href="%{terms_path}">プライバシーポリシー</a>をご覧ください。
@@ -1003,7 +1005,7 @@ ja:
         submit: 抗議を送信
       associated_report: 関連する通報
       created_at: 日時
-      description_html: これらは、%{instance} のスタッフがあなたのアカウントに対して行った措置や、あなたに送られた警告です。
+      description_html: これらは、%{instance}のスタッフがあなたのアカウントに対して行った措置や、あなたに送られた警告です。
       recipient: 送信元
       status: '投稿 #%{id}'
       status_removed: 既に削除されています
@@ -1038,7 +1040,7 @@ ja:
     noscript_html: Mastodonのウェブアプリケーションを利用する場合はJavaScriptを有効にしてください。またはあなたのプラットフォーム向けの<a href="%{apps_path}">Mastodonネイティブアプリ</a>を探すことができます。
   existing_username_validator:
     not_found: そのようなユーザー名はローカルに見つかりませんでした
-    not_found_multiple: "%{usernames} は見つかりませんでした"
+    not_found_multiple: "%{usernames}さんは見つかりませんでした"
   exports:
     archive_takeout:
       date: 日時
@@ -1058,7 +1060,7 @@ ja:
     add_new: 追加
     errors:
       limit: 注目のハッシュタグの上限に達しました
-    hint_html: "<strong>注目のハッシュタグとは?</strong>プロフィールページに目立つ形で表示され、そのハッシュタグのついたあなたの公開投稿だけを抽出して閲覧できるようにします。クリエイティブな仕事や長期的なプロジェクトを追うのに優れた機能です。"
+    hint_html: "<strong>注目のハッシュタグとは?</strong> プロフィールページに目立つ形で表示され、そのハッシュタグのついたあなたの公開投稿だけを抽出して閲覧できるようにします。クリエイティブな仕事や長期的なプロジェクトを追うのに優れた機能です。"
   filters:
     contexts:
       account: プロフィール
@@ -1092,12 +1094,12 @@ ja:
     save_changes: 変更を保存
     today: 今日
     validation_errors:
-      other: エラーが発生しました! 以下の%{count}個のエラーを確認してください
+      other: エラーが発生しました! 以下の%{count}件のエラーを確認してください
   html_validator:
     invalid_markup: '無効なHTMLマークアップが含まれています: %{error}'
   imports:
     errors:
-      over_rows_processing_limit: "%{count} 行以上"
+      over_rows_processing_limit: "%{count}行以上"
     modes:
       merge: 統合
       merge_long: 現在のレコードを保持したまま新しいものを追加します
@@ -1117,12 +1119,12 @@ ja:
     delete: 無効化
     expired: 期限切れ
     expires_in:
-      '1800': 30 分
-      '21600': 6 時間
-      '3600': 1 時間
-      '43200': 12 時間
-      '604800': 1 週間
-      '86400': 1 日
+      '1800': 30分
+      '21600': 6時間
+      '3600': 1時間
+      '43200': 12時間
+      '604800': 1週間
+      '86400': 1日
     expires_in_prompt: 無期限
     generate: 招待リンクを作成
     invited_by: '次の人に招待されました:'
@@ -1139,14 +1141,14 @@ ja:
       limit: リストの上限に達しました
   login_activities:
     authentication_methods:
-      otp: 2要素認証
+      otp: 二要素認証アプリ
       password: パスワード
-      sign_in_token: 電子メールセキュリティコード
+      sign_in_token: メールセキュリティコード
       webauthn: セキュリティキー
-    description_html: 認識できないアクティビティが表示された場合は、パスワードの変更と2要素認証の有効化を検討してください。
+    description_html: 認識できないアクティビティが表示された場合は、パスワードの変更と二要素認証の有効化を検討してください。
     empty: 利用可能な認証履歴がありません
-    failed_sign_in_html: "%{ip} (%{browser}) からの %{method} を利用したサインインに失敗しました。"
-    successful_sign_in_html: "%{ip} (%{browser}) からの %{method} を利用したサインインに成功しました"
+    failed_sign_in_html: "%{ip} (%{browser}) から%{method}を利用したサインインに失敗しました。"
+    successful_sign_in_html: "%{ip} (%{browser}) から%{method}を利用したサインインに成功しました"
     title: 認証履歴
   media_attachments:
     validations:
@@ -1167,13 +1169,13 @@ ja:
     followers_count: 引き継がれるフォロワー
     incoming_migrations: 別のアカウントから引っ越す
     incoming_migrations_html: 別のアカウントからこのアカウントに引っ越すには、まず<a href="%{path}">アカウントエイリアスを作成</a>する必要があります。
-    moved_msg: アカウントは %{acct} に引っ越し設定されており、フォロワーは引っ越し先に引き継がれています。
+    moved_msg: アカウントは%{acct}に引っ越し設定されており、フォロワーは引っ越し先に引き継がれています。
     not_redirecting: アカウントは現在引っ越し設定されていません。
-    on_cooldown: あなたは最近アカウントを引っ越しました。この機能は %{count} 日後に再度利用できるようになります。
+    on_cooldown: あなたは最近アカウントを引っ越しました。この機能は%{count}日後に再度利用できるようになります。
     past_migrations: 過去の引っ越し
     proceed_with_move: フォロワーを引き継ぐ
-    redirected_msg: あなたのアカウントは現在 %{acct} にリダイレクトされています。
-    redirecting_to: アカウントは %{acct} に引っ越し設定されています。
+    redirected_msg: あなたのアカウントは現在%{acct}にリダイレクトされています。
+    redirecting_to: アカウントは%{acct}に引っ越し設定されています。
     set_redirect: 引っ越しを設定
     warning:
       backreference_required: まずは引っ越し先のアカウントでこのアカウントに対しエイリアスを作成する必要があります
@@ -1187,50 +1189,50 @@ ja:
   moderation:
     title: モデレーション
   move_handler:
-    carry_blocks_over_text: このユーザーは、あなたがブロックしていた %{acct} から引っ越しました。
-    carry_mutes_over_text: このユーザーは、あなたがミュートしていた %{acct} から引っ越しました。
-    copy_account_note_text: このユーザーは %{acct} から引っ越しました。これは以前のメモです。
+    carry_blocks_over_text: このユーザーは、あなたがブロックしていた%{acct}から引っ越しました。
+    carry_mutes_over_text: このユーザーは、あなたがミュートしていた%{acct}から引っ越しました。
+    copy_account_note_text: このユーザーは%{acct}から引っ越しました。これは以前のメモです。
   notification_mailer:
     admin:
       sign_up:
-        subject: "%{name} がサインアップしました"
+        subject: "%{name}さんがサインアップしました"
     digest:
       action: 全ての通知を表示
       body: '最後のログイン(%{since})からの出来事:'
-      mention: "%{name} さんがあなたに返信しました:"
+      mention: "%{name}さんがあなたに返信しました:"
       new_followers_summary:
-        other: また、離れている間に%{count} 人の新たなフォロワーを獲得しました!
+        other: また、離れている間に%{count}人の新たなフォロワーを獲得しました!
       subject:
-        other: "前回の訪問から%{count} 件の新しい通知 🐘"
+        other: "前回の訪問から%{count}件の新しい通知 🐘"
       title: 不在の間に…
     favourite:
-      body: "%{name} さんにお気に入り登録された、あなたの投稿があります:"
-      subject: "%{name} さんにお気に入りに登録されました"
+      body: "%{name}さんにお気に入り登録された、あなたの投稿があります:"
+      subject: "%{name}さんにお気に入りに登録されました"
       title: 新たなお気に入り登録
     follow:
-      body: "%{name} さんにフォローされています!"
-      subject: "%{name} さんにフォローされています"
+      body: "%{name}さんにフォローされています!"
+      subject: "%{name}さんにフォローされています"
       title: 新たなフォロワー
     follow_request:
       action: フォローリクエストの管理
-      body: "%{name} さんがあなたにフォローをリクエストしました"
-      subject: "%{name} さんからのフォローリクエスト"
+      body: "%{name}さんがあなたにフォローをリクエストしました"
+      subject: "%{name}さんからのフォローリクエスト"
       title: 新たなフォローリクエスト
     mention:
       action: 返信
-      body: "%{name} さんから返信がありました:"
-      subject: "%{name} さんに返信されました"
+      body: "%{name}さんから返信がありました:"
+      subject: "%{name}さんに返信されました"
       title: 新たな返信
     poll:
-      subject: "%{name}  さんの投票が終了しました"
+      subject: "%{name} さんの投票が終了しました"
     reblog:
-      body: "%{name} さんにブーストされた、あなたの投稿があります:"
-      subject: "%{name} さんにブーストされました"
+      body: "%{name}さんにブーストされた、あなたの投稿があります:"
+      subject: "%{name}さんにブーストされました"
       title: 新たなブースト
     status:
-      subject: "%{name} さんが投稿しました"
+      subject: "%{name}さんが投稿しました"
     update:
-      subject: "%{name} さんが投稿を更新しました"
+      subject: "%{name}さんが投稿を更新しました"
   notifications:
     email_events: メールによる通知
     email_events_hint: '受信する通知を選択:'
@@ -1301,7 +1303,7 @@ ja:
     no_account_html: アカウントをお持ちではないですか?<a href='%{sign_up_path}' target='_blank'>こちら</a>からサインアップできます
     proceed: フォローする
     prompt: 'フォローしようとしています:'
-    reason_html: "<strong>なぜこの手順が必要でしょうか?</strong><code>%{instance}</code>はあなたが登録されているサーバーではないかもしれないので、まずあなたのサーバーに転送する必要があります。"
+    reason_html: "<strong>なぜこの手順が必要でしょうか?</strong> <code>%{instance}</code>はあなたが登録されているサーバーではないかもしれないので、まずあなたのサーバーに転送する必要があります。"
   remote_interaction:
     favourite:
       proceed: お気に入り登録する
@@ -1316,8 +1318,8 @@ ja:
     errors:
       invalid_rules: 有効なルールを参照していません
   scheduled_statuses:
-    over_daily_limit: その日予約できる投稿数 %{limit} を超えています
-    over_total_limit: 予約できる投稿数 %{limit} を超えています
+    over_daily_limit: その日予約できる投稿数 %{limit}を超えています
+    over_total_limit: 予約できる投稿数 %{limit}を超えています
     too_soon: より先の時間を指定してください
   sessions:
     activity: 最後のアクティビティ
@@ -1341,7 +1343,7 @@ ja:
       uc_browser: UCBrowser
       weibo: Weibo
     current_session: 現在のセッション
-    description: "%{platform} 上の %{browser}"
+    description: "%{platform}上の%{browser}"
     explanation: あなたのMastodonアカウントに現在ログインしているウェブブラウザの一覧です。
     ip: IP
     platforms:
@@ -1367,7 +1369,7 @@ ja:
     aliases: アカウントエイリアス
     appearance: 外観
     authorized_apps: 認証済みアプリ
-    back: Mastodon に戻る
+    back: Mastodonに戻る
     delete: アカウントの削除
     development: 開発
     edit_profile: プロフィールを編集
@@ -1382,18 +1384,18 @@ ja:
     relationships: フォロー・フォロワー
     statuses_cleanup: 投稿の自動削除
     strikes: モデレーションストライク
-    two_factor_authentication: 二段階認証
+    two_factor_authentication: 二要素認証
     webauthn_authentication: セキュリティキー
   statuses:
     attached:
       audio:
-        other: "%{count} 本のオーディオ"
+        other: "%{count}本のオーディオ"
       description: '添付: %{attached}'
       image:
-        other: "%{count} 枚の画像"
+        other: "%{count}枚の画像"
       video:
-        other: "%{count} 本の動画"
-    boosted_from_html: "%{acct_link} からブースト"
+        other: "%{count}本の動画"
+    boosted_from_html: "%{acct_link}からブースト"
     content_warning: '閲覧注意: %{warning}'
     default_language: UIの表示言語
     disallowed_hashtags:
@@ -1402,7 +1404,7 @@ ja:
     errors:
       in_reply_not_found: あなたが返信しようとしている投稿は存在しないようです。
     open_in_web: Webで開く
-    over_character_limit: 上限は %{max}文字までです
+    over_character_limit: 上限は%{max}文字です
     pin_errors:
       direct: 返信したユーザーのみに表示される投稿はピン留めできません
       limit: 固定できる投稿数の上限に達しました
@@ -1410,7 +1412,7 @@ ja:
       reblog: ブーストを固定することはできません
     poll:
       total_people:
-        other: "%{count} 人"
+        other: "%{count}人"
       total_votes:
         other: "%{count}票"
       vote: 投票
@@ -1451,11 +1453,11 @@ ja:
     keep_self_fav_hint: 自分自身でお気に入りに登録した投稿を削除せずに残します
     min_age:
       '1209600': 2週間
-      '15778476': 6ヶ月
+      '15778476': 半年
       '2629746': 1ヶ月
       '31556952': 1年
       '5259492': 2ヶ月
-      '604800': 1 週間
+      '604800': 1週間
       '63113904': 2年
       '7889238': 3ヶ月
     min_age_label: 投稿を保持する期間
@@ -1497,7 +1499,7 @@ ja:
 
       <h3 id="protect">情報をどのように保護しますか?</h3>
 
-      <p>私たちはあなたが入力・送信する際や自身の情報にアクセスする際に個人情報を安全に保つため、さまざまなセキュリティ上の対策を実施します。特にブラウザーセッションだけでなくアプリケーションとAPI間の通信もSSLによって保護されます。またパスワードは強力な不可逆アルゴリズムでハッシュ化されます。二段階認証を有効にし、アカウントへのアクセスをさらに安全にすることができます。</p>
+      <p>私たちはあなたが入力・送信する際や自身の情報にアクセスする際に個人情報を安全に保つため、さまざまなセキュリティ上の対策を実施します。特にブラウザーセッションだけでなくアプリケーションとAPI間の通信もSSLによって保護されます。またパスワードは強力な不可逆アルゴリズムでハッシュ化されます。二要素認証を有効にし、アカウントへのアクセスをさらに安全にすることができます。</p>
 
       <hr class="spacer" />
 
@@ -1564,10 +1566,10 @@ ja:
   two_factor_authentication:
     add: 追加
     disable: 無効化
-    disabled_success: 二段階認証が無効になりました
+    disabled_success: 二要素認証が無効になりました
     edit: 編集
-    enabled: 二段階認証は有効になっています
-    enabled_success: 二段階認証が有効になりました
+    enabled: 二要素認証は有効になっています
+    enabled_success: 二要素認証が有効になりました
     generate_recovery_codes: リカバリーコードを生成
     lost_recovery_codes: リカバリーコードを使用すると携帯電話を紛失した場合でもアカウントにアクセスできるようになります。 リカバリーコードを紛失した場合もここで再生成することができますが、古いリカバリーコードは無効になります。
     methods: 方式
@@ -1579,12 +1581,12 @@ ja:
   user_mailer:
     appeal_approved:
       action: アカウントへ
-      explanation: "%{strike_date} のストライクに対して、あなたが %{appeal_date} に行った申し立ては承認されました。アカウントは正常な状態に戻りました。"
-      subject: "%{date} の申し立てが承認されました"
+      explanation: "%{strike_date}のストライクに対して、あなたが%{appeal_date}に行った申し立ては承認されました。アカウントは正常な状態に戻りました。"
+      subject: "%{date}の申し立てが承認されました"
       title: 申し立てが承認されました。
     appeal_rejected:
-      explanation: "%{strike_date} のストライクに対して、あなたが %{appeal_date} に行った申し立ては却下されました。"
-      subject: "%{date} の申し立てが拒否されました"
+      explanation: "%{strike_date}のストライクに対して、あなたが%{appeal_date}に行った申し立ては却下されました。"
+      subject: "%{date}の申し立てが拒否されました"
       title: 却下された抗議
     backup_ready:
       explanation: Mastodonアカウントのアーカイブを受け付けました。今すぐダウンロードできます!
@@ -1594,32 +1596,32 @@ ja:
       change_password: パスワードを変更する
       details: 'ログインの詳細は以下のとおりです:'
       explanation: 新しいIPアドレスからあなたのアカウントへのサインインが検出されました。
-      further_actions_html: あなたがログインしていない場合は、すぐに %{action} し、アカウントを安全に保つために二段階認証を有効にすることをお勧めします。
+      further_actions_html: あなたがログインしていない場合は、すぐに%{action}し、アカウントを安全に保つために二要素認証を有効にすることをお勧めします。
       subject: 新しいIPアドレスからのアクセスがありました
       title: 新しいサインイン
     warning:
       appeal: 抗議を送信
-      appeal_description: これが間違いだと思われる場合は、 %{instance} のスタッフに申し立てすることができます。
+      appeal_description: これが間違いだと思われる場合は、%{instance}のスタッフに申し立てすることができます。
       categories:
         spam: スパム
         violation: コンテンツは以下のコミュニティガイドラインに違反しています
       explanation:
-        delete_statuses: あなたの投稿のいくつかは、1つ以上のコミュニティガイドラインに違反していることが判明し、%{instance} のモデレータによって削除されました。
+        delete_statuses: あなたの投稿のいくつかは、1つ以上のコミュニティガイドラインに違反していることが判明し、%{instance}のモデレータによって削除されました。
         disable: アカウントは使用できませんが、プロフィールやその他のデータはそのまま残ります。 データのバックアップをリクエストしたり、アカウント設定を変更したり、アカウントを削除したりできます。
-        mark_statuses_as_sensitive: あなたのいくつかの投稿は、 %{instance} のモデレータによって閲覧注意としてマークされています。これは、プレビューが表示される前にユーザが投稿内のメディアをタップする必要があることを意味します。あなたは将来投稿する際に自分自身でメディアを閲覧注意としてマークすることができます。
+        mark_statuses_as_sensitive: あなたのいくつかの投稿は、%{instance}のモデレータによって閲覧注意としてマークされています。これは、プレビューが表示される前にユーザが投稿内のメディアをタップする必要があることを意味します。あなたは将来投稿する際に自分自身でメディアを閲覧注意としてマークすることができます。
         sensitive: 今後、アップロードされたすべてのメディアファイルは閲覧注意としてマークされ、クリック解除式の警告で覆われるようになります。
         silence: アカウントが制限されています。このサーバーでは既にフォローしている人だけがあなたの投稿を見ることができます。 様々な発見機能から除外されるかもしれません。他の人があなたを手動でフォローすることは可能です。
         suspend: アカウントは使用できなくなり、プロフィールなどのデータにもアクセスできなくなります。約30日後にデータが完全に削除されるまでは、ログインしてデータのバックアップを要求することができますが、アカウントの停止回避を防ぐために一部の基本データを保持します。
       reason: '理由:'
       statuses: '投稿:'
       subject:
-        delete_statuses: "%{acct} の投稿が削除されました"
-        disable: あなたのアカウント %{acct} は凍結されました
-        mark_statuses_as_sensitive: あなたの %{acct} の投稿は閲覧注意としてマークされました
-        none: "%{acct} に対する警告"
-        sensitive: あなたの %{acct} の投稿はこれから閲覧注意としてマークされます
-        silence: あなたのアカウント %{acct} はサイレンスにされました
-        suspend: あなたのアカウント %{acct} は停止されました
+        delete_statuses: "%{acct}さんの投稿が削除されました"
+        disable: あなたのアカウント %{acct}は凍結されました
+        mark_statuses_as_sensitive: あなたの%{acct}の投稿は閲覧注意としてマークされました
+        none: "%{acct}に対する警告"
+        sensitive: あなたの%{acct}の投稿はこれから閲覧注意としてマークされます
+        silence: あなたのアカウント %{acct}はサイレンスにされました
+        suspend: あなたのアカウント %{acct}は停止されました
       title:
         delete_statuses: 投稿が削除されました
         disable: アカウントが凍結されました
@@ -1637,18 +1639,18 @@ ja:
       full_handle: あなたの正式なユーザーID
       full_handle_hint: 別のサーバーの友達とフォローやメッセージをやり取りする際には、これを伝えることになります。
       review_preferences_action: 設定の変更
-      review_preferences_step: 受け取りたいメールの種類や投稿のデフォルト公開範囲など、ユーザー設定を必ず済ませておきましょう。目が回らない自信があるなら、アニメーション GIF を自動再生する設定もご検討ください。
-      subject: Mastodon へようこそ
-      tip_federated_timeline: 連合タイムラインは Mastodon ネットワークの流れを見られるものです。ただしあなたと同じサーバーの人がフォローしている人だけが含まれるので、それが全てではありません。
+      review_preferences_step: 受け取りたいメールの種類や投稿のデフォルト公開範囲など、ユーザー設定を必ず済ませておきましょう。目が回らない自信があるなら、アニメーションGIFを自動再生する設定もご検討ください。
+      subject: Mastodonへようこそ
+      tip_federated_timeline: 連合タイムラインはMastodonネットワークの流れを見られるものです。ただしあなたと同じサーバーの人がフォローしている人だけが含まれるので、それが全てではありません。
       tip_following: 最初は、サーバーの管理者をフォローした状態になっています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してみましょう。
-      tip_local_timeline: ローカルタイムラインは %{instance} にいる人々の流れを見られるものです。彼らはあなたと同じサーバーにいる隣人のようなものです!
-      tip_mobile_webapp: お使いのモバイル端末で、ブラウザから Mastodon をホーム画面に追加できますか? もし追加できる場合、プッシュ通知の受け取りなど、まるで「普通の」アプリのような機能が楽しめます!
+      tip_local_timeline: ローカルタイムラインは%{instance}にいる人々の流れを見られるものです。彼らはあなたと同じサーバーにいる隣人のようなものです!
+      tip_mobile_webapp: お使いのモバイル端末で、ブラウザからMastodonをホーム画面に追加できますか? もし追加できる場合、プッシュ通知の受け取りなど、まるで「普通の」アプリのような機能が楽しめます!
       tips: 豆知識
-      title: ようこそ、%{name}!
+      title: ようこそ、%{name}さん!
   users:
-    follow_limit_reached: あなたは現在 %{limit} 人以上フォローできません
-    invalid_otp_token: 二段階認証コードが間違っています
-    otp_lost_help_html: どちらも使用できない場合、%{email} に連絡を取ると解決できるかもしれません
+    follow_limit_reached: あなたは現在 %{limit}人以上フォローできません
+    invalid_otp_token: 二要素認証コードが間違っています
+    otp_lost_help_html: どちらも使用できない場合、%{email}に連絡を取ると解決できるかもしれません
     seamless_external_login: あなたは外部サービスを介してログインしているため、パスワードとメールアドレスの設定は利用できません。
     signed_in_as: '下記でログイン中:'
   verification:
@@ -1669,5 +1671,5 @@ ja:
     nickname_hint: セキュリティキーの名前を入力してください
     not_enabled: まだセキュリティキーを有効にしていません
     not_supported: このブラウザはセキュリティキーに対応していないようです
-    otp_required: セキュリティキーを使用するには、まず二段階認証を有効にしてください。
-    registered_on: "%{date} に登録"
+    otp_required: セキュリティキーを使用するには、まず二要素認証を有効にしてください。
+    registered_on: "%{date}に登録"
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index c24e40261..0c1576776 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -789,6 +789,7 @@ ko:
           other: 지난 주 동안 %{count} 명의 사람들이 공유했습니다
         title: 유행하는 링크
         usage_comparison: 오늘은 %{today}회 공유되었고, 어제는 %{yesterday}회 공유되었습니다
+      only_allowed: 허용된 것만
       pending_review: 심사 대기
       preview_card_providers:
         allowed: 이 출처의 링크는 유행 목록에 실릴 수 있습니다
@@ -828,6 +829,7 @@ ko:
         used_by_over_week:
           other: 지난 주 동안 %{count} 명의 사람들이 사용했습니다
       title: 유행
+      trending: 유행중
     warning_presets:
       add_new: 새로 추가
       delete: 삭제
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 3a2798f32..7a322a730 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -801,6 +801,7 @@ pl:
         disallow_provider: Nie zezwalaj na wydawcę
         title: Popularne linki
         usage_comparison: Udostępnione %{today} razy dzisiaj, w porównaniu z %{yesterday} wczoraj
+      only_allowed: Tylko dozwolone
       pending_review: Oczekuje na przegląd
       preview_card_providers:
         allowed: Linki od tego wydawcy mogą podlegać trendom
@@ -835,7 +836,13 @@ pl:
         trending_rank: 'Popularne #%{rank}'
         usable: Może być użyty
         usage_comparison: Używane %{today} razy dzisiaj, w porównaniu z %{yesterday} wczoraj
+        used_by_over_week:
+          few: Użyte przez %{count} osoby w ciągu ostatniego tygodnia
+          many: Użyte przez %{count} osób w ciągu ostatniego tygodnia
+          one: Użyte przez jedną osobę w ciągu ostatniego tygodnia
+          other: Użyte przez %{count} osób w ciągu ostatniego tygodnia
       title: Na czasie
+      trending: Popularne
     warning_presets:
       add_new: Dodaj nowy
       delete: Usuń
@@ -1235,6 +1242,11 @@ pl:
         many: "(%{count}) nowych osób Cię śledzi! Wspaniale!"
         one: Dodatkowo, w czasie nieobecności zaczęła śledzić Cię jedna osoba Gratulacje!
         other: Dodatkowo, zaczęło Cię śledzić %{count} nowych osób! Wspaniale!
+      subject:
+        few: "%{count} nowe powiadomienia od Twojej ostatniej wizyty 🐘"
+        many: "%{count} nowych powiadomień od Twojej ostatniej wizyty 🐘"
+        one: "1 nowe powiadomienie od Twojej ostatniej wizyty 🐘"
+        other: "%{count} nowych powiadomień od Twojej ostatniej wizyty 🐘"
       title: W trakcie Twojej nieobecności…
     favourite:
       body: 'Twój wpis został polubiony przez %{name}:'
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index 7bded6f28..f196d525f 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -1672,15 +1672,15 @@ pt-PT:
         silence: Conta limitada
         suspend: Conta suspensa
     welcome:
-      edit_profile_action: Configura o perfil
-      edit_profile_step: Podes personalizar o teu perfil carregando uma imagem de perfil e de cabeçalho ou alterando o nome a exibir, entre outras opções. Se preferires rever os novos seguidores antes deles te poderem seguir, podes tornar a tua conta privada.
-      explanation: Aqui estão algumas dicas para começares
-      final_action: Começa a publicar
-      final_step: 'Começa a publicar! Mesmo sem seguidores, as tuas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Tu podes querer apresentar-te na hashtag #introductions.'
-      full_handle: O teu nome completo
-      full_handle_hint: Isto é o que você diria aos seus amigos para que eles lhe possam enviar mensagens ou seguir a partir de outra instância.
+      edit_profile_action: Configurar o perfil
+      edit_profile_step: Pode personalizar o seu perfil carregando uma imagem de perfil e de cabeçalho ou alterando o nome a exibir, entre outras opções. Se preferir rever os novos seguidores antes de estes o poderem seguir, pode tornar a sua conta privada.
+      explanation: Aqui estão algumas dicas para começar
+      final_action: Começar a publicar
+      final_step: 'Começa a publicar! Mesmo sem seguidores, as suas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Pode querer apresentar-se utilizando a hashtag #introduções ou #introductions.'
+      full_handle: O seu nome completo
+      full_handle_hint: Isto é o que tem de facultar aos seus amigos para que eles lhe possam enviar mensagens ou seguir a partir de outra instância.
       review_preferences_action: Alterar preferências
-      review_preferences_step: Certifique-se de configurar as suas preferências, tais como os e-mails que gostaria de receber ou o nível de privacidade que deseja que as suas publicações tenham por defeito. Se não sofres de enjoo, podes ativar a opção de auto-iniciar GIFs.
+      review_preferences_step: Certifique-se de configurar as suas preferências, tais como os e-mails que gostaria de receber ou o nível de privacidade que deseja que as suas publicações tenham por defeito. Se não sofre de enjoo de movimento, pode ativar a opção de auto-iniciar GIFs.
       subject: Bem-vindo ao Mastodon
       tip_federated_timeline: A cronologia federativa é uma visão global da rede Mastodon. Mas só inclui pessoas que os teus vizinhos subscrevem, por isso não é uma visão completa.
       tip_following: Segues o(s) administrador(es) do teu servidor por defeito. Para encontrar mais pessoas interessantes, procura nas cronologias local e federada.
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index fd82bcf36..2187ae409 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -780,6 +780,7 @@ ru:
           other: Поделился %{count} человек за последнюю неделю
         title: Актуальные ссылки
         usage_comparison: Поделились %{today} раз сегодня, по сравнению с %{yesterday} вчера
+      only_allowed: Только разрешенное
       pending_review: Ожидает рассмотрения
       preview_card_providers:
         allowed: Ссылки этого издания могут отображаться в «актуальном»
@@ -810,6 +811,7 @@ ru:
           one: За последнюю неделю использовал один человек
           other: За последнюю неделю использовал %{count} человек
       title: Популярное
+      trending: Популярное
     warning_presets:
       add_new: Добавить
       delete: Удалить
@@ -849,7 +851,7 @@ ru:
     discovery: Обзор
     localization:
       body: Mastodon переводится добровольцами.
-      guide_link: https://sasha-sorokin.gitlab.io/mastodon-ru/
+      guide_link: https://ru.crowdin.com/project/mastodon
       guide_link_text: Каждый может внести свой вклад.
     sensitive_content: Содержимое деликатного характера
     toot_layout: Структура постов
diff --git a/config/locales/simple_form.ckb.yml b/config/locales/simple_form.ckb.yml
index 82187aae5..32fda85a4 100644
--- a/config/locales/simple_form.ckb.yml
+++ b/config/locales/simple_form.ckb.yml
@@ -3,17 +3,19 @@ ckb:
   simple_form:
     hints:
       account_alias:
-        acct: دیاریکردنی username@domain ئەو هەژمارە کە دەتەوێت بیگوازیەوە لە
+        acct: username@domainـی ئەو هەژمارە دیاری بکە کە لێیەوە دێیت
       account_migration:
-        acct: دیاریکردنی username@domain ئەو هەژمارە کە دەتەوێت بیگوازیەوە لە
+        acct: username@domainـی ئەو هەژمارە دیاری بکە کە بۆی بچیت
       account_warning_preset:
-        text: دەتوانی ڕستەسازی ی توت بەکاربێنیت، وەک لینک، هاشتاگ و باسەکان
+        text: دەتوانیت لە پۆستەکانتدا بەستەر و هاشتاگ دابنێیت یان ئاماژە بەکارهێنەرانی دیکە بکەیت
         title: ئارەزوومەندانە. دیار نیە بۆ وەرگر
       admin_account_action:
-        include_statuses: بەکارهێنەرەکە دەبینێت کام توتی هۆکاری کرداری بەڕێوەبەر یان ئاگادارکردنەوە
-        send_email_notification: بەکارهێنەر ڕوننکردەوەیەک دەبینێت کە تێدا دەزانێت چی بە سەر هەژمارەکەی هاتووە
+        include_statuses: بەکارهێنەرەکە دەزانێت کام پۆستانە بوونەتە هۆی ئاگادارکردنەوە یان گرتنەبەری ڕێکار
+        send_email_notification: بەکارهێنەرەکە دەزانێت چی لە هەژمارەکەی هاتووە
         text_html: ئارزوومەندانە. دەتوانن وەک توتی ئاسایی بینووسن. دەتوانن بۆ کەمکردنەوەی کات <a href="%{path}">ئاگادارییەکان لە پێشەوە زیادبکەن</a>
-        type_html: گەرکتە لەگەڵ هەژمارەی <strong>%{acct}</strong> چی بکەیت
+        type_html: بڕیار بدە چی لە <strong>%{acct}</strong> دەکەیت
+        types:
+          disable: ڕێ لە بەکارهێنەرەکە بگرە هەژمارەکەی بەکار بهێنێت، بەڵام ناوەڕۆکەکانیان مەسڕەوە و مەشارەوە.
         warning_preset_id: ئارەزوومەندانەیە. هێشتا دەتوانیت لە کۆتایی دەق شتێک زیاد بکەی
       announcement:
         all_day: کاتێک چاودێریکرا، تەنها بەروارەکانی مەودای کات پیشان دەدرێت
@@ -35,16 +37,16 @@ ckb:
         inbox_url: نیشانەی پەڕەی سەرەکی ئەو رێڵە کە هەرەکتە بەکاریببەیت ڕوونووس دەکات
         irreversible: توتە فلتەرکراوەکە بە شێوەیەکی نەگەڕاو فرەدەدرێن، تەنانەت ئەگەر فلتەردواتر لاببرێت
         locale: زمانی ڕووکاری بەکارهێنەر، ئیمەیلەکان و ئاگانامەکان
-        locked: بە دەستی شوێنکەوتوانی خۆت پەسەند بکە
-        password: بەلایەنی کەمەوە ٨ نووسە بەکاربهێنە
+        locked: خۆت بڕیار بدە کێ دەتوانێت شوێنت بکەوێت بە وەرگتنی داوای شوێنکەوتن
+        password: لایەنی کەم 8 نووسە بەکار بهێنە
         phrase: سەربەخۆ لە بچکۆلی و گەورەیی پیتەکان، لەگەڵ دەقی ئەسڵی یان ئاگانامەکانی ناوەرۆکی توتەکان هاوئاهەنگ دەکرێت
         scopes: APIـیەکانی بەرنامەنووسی کە ئەم ماڵپەڕە دەستپێگەیشتنی لەگەڵیان هیە. ئەگەر بەرزترین ئاست هەڵبژێرن ئیتر نیاز بە بژاردەی ئاستی نزم نییە.
         setting_aggregate_reblogs: بۆ ئەو دووبارە توتانە کە بە نوێیی پێتان نیشان دراوە،دووبارە توتەکانی پێشتر زیاد مەکە(تەنها کاریگەری لەسەر توتەکانی ئەم دواییە هەیە)
         setting_default_sensitive: میدیای هەستیار لە بنەڕەت شاراوەیە و دەتوانرێت بە کلیکیک ئاشکرا بکرێت
-        setting_display_media_default: شاردنەوەی ئەو میدیایانەی وەک هەستیار نیشانکراون
+        setting_display_media_default: ئەو میدیایانە بشارەوە کە هەستیارن
         setting_display_media_hide_all: هەمیشە میدیا بشارەوە
         setting_display_media_show_all: هەمیشە میدیا نیشان بدە
-        setting_hide_network: کێ دوای دەکەویت و کێ دوای تۆ دەکەوێت لە پرۆفایلەکەت پیشان نادرێت
+        setting_hide_network: شوێنکەوتوو و شوێنکەوتنەکانت لە پرۆفایلەکەت نیشان نادرێن
         setting_noindex: کاردەکاتە سەر پرۆفایل و لاپەڕە گشتیەکانت
         setting_show_application: بەرنامەیەک کە بە یارمەتیت توت دەکەیت، لە دیمەنی وردی توتەکان پیشان دەدرێت
         setting_use_blurhash: سێبەرەکان لە سەر بنەمای ڕەنگەکانی بەکارهاتوو لە وێنە داشاراوەکان دروست دەبن بەڵام وردەزانیاری وێنە تێیدا ڕوون نییە
@@ -89,7 +91,7 @@ ckb:
         acct: چارەسەرکردنی هەژمارە نوێکە
       account_warning_preset:
         text: دەقی پێشوەختی ڕێکخستن
-        title: سەردێڕ
+        title: ناونیشان
       admin_account_action:
         include_statuses: لەخۆگرتنی توتەکانی گوزارشت لە ئیمەیل
         send_email_notification: بەکارهێنەر ئاگادار بکەوە بۆ هەر ئیمەیڵێک
@@ -199,6 +201,7 @@ ckb:
     'no': نە
     recommended: پێشنیارکراوە
     required:
+      mark: "*"
       text: پێویستە
     title:
       sessions:
diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml
index 614a6b819..63199e2cd 100644
--- a/config/locales/simple_form.gd.yml
+++ b/config/locales/simple_form.gd.yml
@@ -37,7 +37,7 @@ gd:
         current_password: A chùm tèarainteachd, cuir a-steach facal-faire a’ chunntais làithrich
         current_username: Airson seo a dhearbhadh, cuir a-steach ainm-cleachdaiche a’ chunntais làithrich
         digest: Cha dèid seo a chur ach nuair a bhios tu air ùine mhòr gun ghnìomh a ghabhail agus ma fhuair thu teachdaireachd phearsanta fhad ’s a bha thu air falbh
-        discoverable: Ceadaich gun lorg coigrich an cunntas agad le taic o mholaidhean, treandaichean is gleusan eile
+        discoverable: Ceadaich gun rùraich coigrich an cunntas agad le taic o mholaidhean, treandaichean is gleusan eile
         email: Thèid post-d dearbhaidh a chur thugad
         fields: Faodaidh tu suas ri 4 nithean a shealltainn mar chlàr air a’ phròifil agad
         header: PNG, GIF or JPG. %{size} air a char as motha. Thèid a sgèileadh sìos gu %{dimensions}px
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index 212e608e0..998df1c0c 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -60,7 +60,7 @@ is:
         setting_use_blurhash: Litstiglarnir byggja á litunum í földu myndunum, en gera öll smáatriði óskýr
         setting_use_pending_items: Fela uppfærslur tímalínu þar til smellt er, í stað þess að hún skruni streyminu sjálfvirkt
         username: Notandanafnið þitt verður einstakt á %{domain}
-        whole_word: Þegar stikkorð eða frasi er einungis tölur og bókstafir, verður það aðeins notað ef það samsvarar heilu orði
+        whole_word: Þegar stikkorð eða setning er einungis tölur og bókstafir, verður það aðeins notað ef það samsvarar heilu orði
       domain_allow:
         domain: Þetta lén mun geta sótt gögn af þessum vefþjóni og tekið verður á móti innsendum gögnum frá léninu til vinnslu og geymslu
       email_domain_block:
@@ -126,7 +126,7 @@ is:
       defaults:
         autofollow: Bjóða að fylgjast með aðgangnum þínum
         avatar: Auðkennismynd
-        bot: Þetta er aðgangur fyrir róbót
+        bot: Þetta er aðgangur fyrir vélmenni
         chosen_languages: Sía tungumál
         confirm_new_password: Staðfestu nýja lykilorðið
         confirm_password: Staðfestu lykilorðið
@@ -149,7 +149,7 @@ is:
         note: Æviágrip
         otp_attempt: Teggja-þátta kóði
         password: Lykilorð
-        phrase: Stikkorð eða frasi
+        phrase: Stikkorð eða setning
         setting_advanced_layout: Virkja ítarlegt vefviðmót
         setting_aggregate_reblogs: Hópa endurbirtingar í tímalínum
         setting_always_send_emails: Alltaf senda tilkynningar í tölvupósti
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index 9d2440c44..dd88ea05a 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -59,7 +59,7 @@ ja:
         setting_show_application: 投稿するのに使用したアプリが投稿の詳細ビューに表示されるようになります
         setting_use_blurhash: ぼかしはメディアの色を元に生成されますが、細部は見えにくくなっています
         setting_use_pending_items: 新着があってもタイムラインを自動的にスクロールしないようにします
-        username: あなたのユーザー名は %{domain} の中で重複していない必要があります
+        username: あなたのユーザー名は%{domain}の中で重複していない必要があります
         whole_word: キーワードまたはフレーズが英数字のみの場合、単語全体と一致する場合のみ適用されるようになります
       domain_allow:
         domain: 登録するとこのサーバーからデータを受信したり、このドメインから受信するデータを処理して保存できるようになります
@@ -71,7 +71,7 @@ ja:
       form_challenge:
         current_password: セキュリティ上重要なエリアにアクセスしています
       imports:
-        data: 他の Mastodon サーバーからエクスポートしたCSVファイルを選択して下さい
+        data: 他のMastodonサーバーからエクスポートしたCSVファイルを選択して下さい
       invite_request:
         text: このサーバーは現在承認制です。申請を承認する際に役立つメッセージを添えてください
       ip_block:
@@ -85,7 +85,7 @@ ja:
       rule:
         text: ユーザーのためのルールや要件を記述してください。短くシンプルにしてください。
       sessions:
-        otp: '携帯電話のアプリで生成された二段階認証コードを入力するか、リカバリーコードを使用してください:'
+        otp: '携帯電話のアプリで生成された二要素認証コードを入力するか、リカバリーコードを使用してください:'
         webauthn: USBキーの場合は、必ず挿入し、必要に応じてタップしてください。
       tag:
         name: 視認性向上などのためにアルファベット大文字小文字の変更のみ行うことができます
@@ -99,7 +99,7 @@ ja:
       account_alias:
         acct: 引っ越し元のユーザー ID
       account_migration:
-        acct: 引っ越し先のユーザー ID
+        acct: 引っ越し先のユーザーID
       account_warning_preset:
         text: プリセット警告文
         title: タイトル
@@ -126,7 +126,7 @@ ja:
       defaults:
         autofollow: 招待から参加後、あなたをフォロー
         avatar: アイコン
-        bot: これは BOT アカウントです
+        bot: これはBOTアカウントです
         chosen_languages: 表示する言語
         confirm_new_password: 新しいパスワード(確認用)
         confirm_password: パスワード(確認用)
@@ -147,10 +147,10 @@ ja:
         max_uses: 使用できる回数
         new_password: 新しいパスワード
         note: プロフィール
-        otp_attempt: 二段階認証コード
+        otp_attempt: 二要素認証コード
         password: パスワード
         phrase: キーワードまたはフレーズ
-        setting_advanced_layout: 上級者向け UI を有効にする
+        setting_advanced_layout: 上級者向けUIを有効にする
         setting_aggregate_reblogs: ブーストをまとめる
         setting_always_send_emails: 常にメール通知を送信する
         setting_auto_play_gif: アニメーションGIFを自動再生する
diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml
index 9dbb334b8..865c8fe87 100644
--- a/config/locales/simple_form.sq.yml
+++ b/config/locales/simple_form.sq.yml
@@ -49,6 +49,7 @@ sq:
         phrase: Do të kërkohet përputhje pavarësish se teksti ose sinjalizimi mbi lëndën e një mesazhi është shkruar me të mëdha apo me të vogla
         scopes: Cilat API do të lejohen të përdorin aplikacioni. Nëse përzgjidhni një shkallë të epërme, nuk ju duhet të përzgjidhni individualet një nga një.
         setting_aggregate_reblogs: Mos shfaq përforcime të reja për mesazhe që janë përforcuar tani së fundi (prek vetëm përforcime të marra rishtas)
+        setting_always_send_emails: Normalisht s’do të dërgohen njoftime, kur përdorni aktivisht Mastodon-in
         setting_default_sensitive: Media rezervat fshihet, si parazgjedhje, dhe mund të shfaqet me një klikim
         setting_display_media_default: Fshih media me shenjën rezervat
         setting_display_media_hide_all: Fshih përherë mediat
@@ -151,6 +152,7 @@ sq:
         phrase: Fjalëkyç ose frazë
         setting_advanced_layout: Aktivizo ndërfaqe web të thelluar
         setting_aggregate_reblogs: Grupoji përforcimet në rrjedha kohore
+        setting_always_send_emails: Dërgo përherë njoftime me email
         setting_auto_play_gif: Vetëluaji GIF-et e animuar
         setting_boost_modal: Shfaq dialog ripohimi përpara përforcimi
         setting_crop_images: Në mesazhe jo të zgjerueshëm, qethi figurat në 16x9
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index 8e3bf730f..b21767738 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -48,7 +48,7 @@ sq:
       rejecting_media_title: Media e filtruar
       silenced: 'Postimet prej këtyre shërbyesve do të jenë të fshehura në rrjedha kohore dhe biseda publike, dhe prej ndërveprimeve të përdoruesve të tyre s’do të prodhohen njoftime, veç në i ndjekshi:'
       silenced_title: Shërbyes të heshtuar
-      suspended: 'S’do të përpunohen, depozitohen apo shkëmbehen të dhëna prej këtyre shërbyesve, duke e bërë të pamundur çfarëdo ndërveprimi apo komunikimi me përdorues prej këtyre shërbyesve:'
+      suspended: 'Prej këtyre shërbyesve s’do të përpunohen, depozitohen apo shkëmbehen të dhëna, duke e bërë të pamundur çfarëdo ndërveprimi apo komunikimi me përdorues prej këtyre shërbyesve:'
       suspended_title: Shërbyes të pezulluar
     unavailable_content_html: Mastodon-i përgjithësisht ju lejon të shihni lëndë nga përdorues dhe të ndërveproni me të tillë prej cilitdo shërbyes në fedivers. Këto janë përjashtimet që janë bërë në këtë shërbyes.
     user_count_after:
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 1db82f0f6..b7f8c6747 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -160,6 +160,9 @@ sv:
       pending: Inväntar granskning
       perform_full_suspension: Utför full avstängning
       previous_strikes: Tidigare varningar
+      previous_strikes_description_html:
+        one: Detta konto har <strong>en</strong> varning.
+        other: Detta konto har <strong>%{count}</strong> varningar.
       promote: Befordra
       protocol: Protokoll
       public: Offentlig
@@ -263,6 +266,8 @@ sv:
         create_announcement_html: "%{name} skapade tillkännagivande %{target}"
         create_custom_emoji_html: "%{name} laddade upp ny emoji %{target}"
         create_domain_block_html: "%{name} blockerade domänen %{target}"
+        create_email_domain_block_html: "%{name} svartlistade e-postdomän %{target}"
+        create_ip_block_html: "%{name} skapade regel för IP %{target}"
         destroy_custom_emoji_html: "%{name} förstörde emoji %{target}"
         destroy_domain_block_html: "%{name} avblockerade domänen %{target}"
         destroy_email_domain_block_html: "%{name} avblockerade e-postdomän %{target}"
@@ -325,6 +330,7 @@ sv:
       enable: Aktivera
       enabled: Aktiverad
       enabled_msg: Aktiverade den emoji utan problem
+      image_hint: PNG eller GIF upp till %{size}
       list: Lista
       listed: Noterade
       new:
@@ -405,6 +411,12 @@ sv:
       back_to_limited: Begränsat
       back_to_warning: Varning
       by_domain: Domän
+      content_policies:
+        policies:
+          silence: Gräns
+        policy: Policy
+        reason: Offentlig orsak
+        title: Riktlinjer för innehåll
       delivery:
         all: Alla
         clear: Rensa leverans-fel
@@ -419,6 +431,7 @@ sv:
         title: Moderering
       private_comment: Privat kommentar
       public_comment: Offentlig kommentar
+      purge: Rensa
       title: Kända instanser
       total_blocked_by_us: Blockerad av oss
       total_followed_by_them: Följs av dem
@@ -465,6 +478,7 @@ sv:
     report_notes:
       created_msg: Anmälningsanteckning har skapats!
       destroyed_msg: Anmälningsanteckning har raderats!
+      today_at: Idag kl. %{time}
     reports:
       account:
         notes:
@@ -595,6 +609,8 @@ sv:
       delete: Radera uppladdad fil
     statuses:
       back_to_account: Tillbaka till kontosidan
+      batch:
+        report: Rapportera
       deleted: Raderad
       media:
         title: Media
@@ -605,19 +621,26 @@ sv:
         delete_statuses: "%{name} raderade %{target}s inlägg"
         disable: "%{name} frös %{target}s konto"
         silence: "%{name} begränsade %{target}s konto"
+      appeal_approved: Överklagad
     system_checks:
       rules_check:
         action: Hantera serverregler
         message_html: Du har inte definierat några serverregler.
     title: Administration
     trends:
+      allow: Tillåt
+      approved: Godkänd
       statuses:
         allow: Godkänn inlägg
         allow_account: Godkänn författare
+      title: Trender
     warning_presets:
       add_new: Lägg till ny
       delete: Radera
   admin_mailer:
+    new_appeal:
+      actions:
+        none: en varning
     new_report:
       body: "%{reporter} har rapporterat %{target}"
       body_remote: Någon från %{domain} har rapporterat %{target}
@@ -747,6 +770,8 @@ sv:
     strikes:
       created_at: Daterad
       status: 'Inlägg #%{id}'
+      title_actions:
+        none: Varning
   domain_validator:
     invalid_domain: är inte ett giltigt domännamn
   errors:
@@ -810,6 +835,7 @@ sv:
     delete: Radera
     order_by: Sortera efter
     save_changes: Spara ändringar
+    today: idag
     validation_errors:
       one: Något är inte riktigt rätt ännu! Kontrollera felet nedan
       other: Något är inte riktigt rätt ännu! Kontrollera dom %{count} felen nedan
@@ -898,6 +924,9 @@ sv:
     carry_mutes_over_text: Den här användaren flyttade från %{acct} som du hade tystat.
     copy_account_note_text: 'Den här användaren flyttade från %{acct}, här var dina föregående anteckningar om dem:'
   notification_mailer:
+    admin:
+      sign_up:
+        subject: "%{name} registrerade sig"
     digest:
       action: Visa alla aviseringar
       body: Här är en kort sammanfattning av de meddelanden du missade sedan ditt senaste besök på %{since}
@@ -932,6 +961,8 @@ sv:
       title: Ny knuff
     status:
       subject: "%{name} publicerade nyss"
+    update:
+      subject: "%{name} redigerade ett inlägg"
   notifications:
     email_events: Händelser för e-postaviseringar
     email_events_hint: 'Välj händelser som du vill ta emot aviseringar för:'
@@ -1261,14 +1292,17 @@ sv:
       title: Arkivuttagning
     suspicious_sign_in:
       change_password: Ändra ditt lösenord
+      title: En ny inloggning
     warning:
       reason: 'Anledning:'
+      statuses: 'Inlägg citerades:'
       subject:
         disable: Ditt konto %{acct} har blivit fruset
         none: Varning för %{acct}
         silence: Ditt konto %{acct} har blivit begränsat
         suspend: Ditt konto %{acct} har stängts av
       title:
+        delete_statuses: Inlägg borttagna
         disable: Kontot fruset
         none: Varning
         silence: Kontot begränsat
@@ -1304,4 +1338,6 @@ sv:
     delete_confirmation: Är du säker på att du vill ta bort denna säkerhetsnyckel?
     destroy:
       success: Din säkerhetsnyckel har raderats.
+    invalid_credential: Ogiltig säkerhetsnyckel
     not_enabled: Du har inte aktiverat WebAuthn än
+    registered_on: Registrerad den %{date}
diff --git a/config/locales/th.yml b/config/locales/th.yml
index c3601aa2a..5fb25d2db 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -68,7 +68,7 @@ th:
     people_followed_by: ผู้คนที่ %{name} ติดตาม
     people_who_follow: ผู้คนที่ติดตาม %{name}
     pin_errors:
-      following: คุณต้องกำลังติดตามคนที่คุณต้องการแนะนำอยู่แล้ว
+      following: คุณต้องกำลังติดตามบุคคลที่คุณต้องการแนะนำอยู่แล้ว
     posts:
       other: โพสต์
     posts_tab_heading: โพสต์
@@ -553,6 +553,7 @@ th:
       action_log: รายการบันทึกการตรวจสอบ
       action_taken_by: ใช้การกระทำโดย
       actions:
+        other_description_html: ดูตัวเลือกเพิ่มเติมสำหรับการควบคุมพฤติกรรมของบัญชีและปรับแต่งการสื่อสารไปยังบัญชีที่รายงาน
         resolve_description_html: จะไม่ใช้การกระทำกับบัญชีที่รายงาน ไม่มีการบันทึกการดำเนินการ และจะปิดรายงาน
       actions_description_html: ตัดสินใจว่าการกระทำใดที่จะใช้เพื่อแก้ปัญหารายงานนี้ หากคุณใช้การกระทำที่เป็นการลงโทษกับบัญชีที่รายงาน จะส่งการแจ้งเตือนอีเมลถึงเขา ยกเว้นเมื่อมีการเลือกหมวดหมู่ <strong>สแปม</strong>
       are_you_sure: คุณแน่ใจหรือไม่?
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 2099a066c..922f4fd82 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -802,6 +802,7 @@ tr:
           other: Geçen hafta %{count} kişi paylaştı
         title: Öne çıkan bağlantılar
         usage_comparison: Bugün %{today} kere paylaşıldı, dün %{yesterday} kere paylaşılmıştı
+      only_allowed: Sadece izin verilenler
       pending_review: İnceleme bekliyor
       preview_card_providers:
         allowed: Bu yayıncının bağlantıları öne çıkabilir
@@ -843,6 +844,7 @@ tr:
           one: Geçen hafta bir kişi tarafından kullanıldı
           other: Geçen hafta %{count} kişi tarafından kullanıldı
       title: Öne çıkanlar
+      trending: Öne çıkanlar
     warning_presets:
       add_new: Yeni ekle
       delete: Sil
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index bb4d3fd0d..cb2b7c720 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -392,6 +392,21 @@ uk:
       media_storage: Медіасховище
       new_users: нові користувачі
       opened_reports: звітів відкрито
+      pending_reports_html:
+        few: "<strong>%{count}</strong> звіти у черзі"
+        many: "<strong>%{count}</strong> звітів у черзі"
+        one: "<strong>%{count}</strong> звіт у черзі"
+        other: "<strong>%{count}</strong> звіти у черзі"
+      pending_tags_html:
+        few: "<strong>%{count}</strong> хештеґи у черзі"
+        many: "<strong>%{count}</strong> хештеґів у черзі"
+        one: "<strong>%{count}</strong> хештеґ у черзі"
+        other: "<strong>%{count}</strong> хештеґа у черзі"
+      pending_users_html:
+        few: "<strong>%{count}</strong> користувачі у черзі"
+        many: "<strong>%{count}</strong> користувачів у черзі"
+        one: "<strong>%{count}</strong> користувач у черзі"
+        other: "<strong>%{count}</strong> користувача у черзі"
       resolved_reports: розв'язані звіти
       software: Програмне забезпечення
       sources: Джерела реєстрації
@@ -439,6 +454,11 @@ uk:
       view: Переглянути заблоковані домени
     email_domain_blocks:
       add_new: Додати
+      attempts_over_week:
+        few: "%{count} спроби входу за останній тиждень"
+        many: "%{count} спроб входу за останній тиждень"
+        one: "%{count} спроба за останній тиждень"
+        other: "%{count} спроби входу за останній тиждень"
       created_msg: Успішно додано поштовий домен до чорного списку
       delete: Видалити
       dns:
@@ -1514,6 +1534,11 @@ uk:
       subject: Ваш архів готовий до завантаження
       title: Винесення архіву
     suspicious_sign_in:
+      change_password: змінити свій пароль
+      details: 'Відомості про вхід:'
+      explanation: Ми виявили вхід до вашого облікового запису з нової IP-адреси.
+      further_actions_html: Якщо це були не ви. Радимо вам негайно %{action} й увімкнути двоетапну перевірку, щоб уберегти свій обліковий запис.
+      subject: До вашого облікового запису отримано доступ з нової IP-адреси
       title: Новий вхід
     warning:
       appeal: Подати апеляцію
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 8dffdabe3..a685c73ec 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -785,6 +785,7 @@ vi:
           other: "%{count} người chia sẻ tuần rồi"
         title: Liên kết xu hướng
         usage_comparison: Chia sẻ %{today} lần hôm nay, so với %{yesterday} lần hôm qua
+      only_allowed: Chỉ cho phép
       pending_review: Đang chờ
       preview_card_providers:
         allowed: Liên kết từ nguồn đăng này có thể thành xu hướng
@@ -824,6 +825,7 @@ vi:
         used_by_over_week:
           other: "%{count} người dùng tuần rồi"
       title: Xu hướng
+      trending: Xu hướng
     warning_presets:
       add_new: Thêm mới
       delete: Xóa bỏ
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 047d34b5f..9515ffad8 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -21,7 +21,7 @@ zh-CN:
     documentation: 文档
     federation_hint_html: 在 %{instance} 上拥有账号后,你可以关注任何兼容Mastodon的服务器上的人。
     get_apps: 尝试移动应用
-    hosted_on: 运行在 %{domain} 上的 Mastodon 实例
+    hosted_on: 运行在 %{domain} 上的 Mastodon 站点
     instance_actor_flash: '这个账号是个虚拟账号,不代表任何用户,只用来代表服务器本身。它用于和其它服务器互通,所以不应该被封禁,除非你想封禁整个实例。但是想封禁整个实例的时候,你应该用域名封禁。
 
       '
@@ -29,7 +29,7 @@ zh-CN:
     logged_in_as_html: 您当前以 %{username} 登录。
     logout_before_registering: 您已登录。
     privacy_policy: 隐私政策
-    rules: 服务器规则
+    rules: 实例规则
     rules_html: 如果你想要在此Mastodon服务器上拥有一个账户,你必须遵守相应的规则,摘要如下:
     see_whats_happening: 看看有什么新鲜事
     server_stats: 服务器统计数据:
@@ -81,7 +81,7 @@ zh-CN:
     roles:
       admin: 管理员
       bot: 机器人
-      group: 组
+      group: 群组
       moderator: 监察员
     unavailable: 个人资料不可用
     unfollow: 取消关注
@@ -787,6 +787,7 @@ zh-CN:
           other: 过去一周内被 %{count} 个人分享过
         title: 热门链接
         usage_comparison: 今日被分享 %{today} 次,前一日为 %{yesterday} 次
+      only_allowed: 仅显示已允许的内容
       pending_review: 待审核
       preview_card_providers:
         allowed: 来自此发布者的链接可进入流行列表
@@ -826,6 +827,7 @@ zh-CN:
         used_by_over_week:
           other: 过去一周内被 %{count} 个人使用过
       title: 流行趋势
+      trending: 当前热门
     warning_presets:
       add_new: 添加新条目
       delete: 删除
@@ -904,7 +906,7 @@ zh-CN:
   auth:
     apply_for_account: 请求邀请
     change_password: 密码
-    checkbox_agreement_html: 我同意 <a href="%{rules_path}" target="_blank">服务器规则</a> 和 <a href="%{terms_path}" target="_blank">服务条款</a>
+    checkbox_agreement_html: 我同意 <a href="%{rules_path}" target="_blank">实例规则</a> 和 <a href="%{terms_path}" target="_blank">服务条款</a>
     checkbox_agreement_without_rules_html: 我同意 <a href="%{terms_path}" target="_blank">服务条款</a>
     delete_account: 删除帐户
     delete_account_html: 如果你想删除你的帐户,请<a href="%{path}">点击这里继续</a>。你需要确认你的操作。
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 8948932bb..0d1716790 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -787,6 +787,7 @@ zh-TW:
           other: 上週被 %{count} 名使用者分享
         title: 熱門連結
         usage_comparison: 於今日被 %{today} 人分享,相較於昨日 %{yesterday} 人
+      only_allowed: 僅允許
       pending_review: 等待審核中
       preview_card_providers:
         allowed: 此發行者之連結能登上熱門
@@ -826,6 +827,7 @@ zh-TW:
         used_by_over_week:
           other: 上週被 %{count} 個人使用
       title: 熱門榜
+      trending: 熱門
     warning_presets:
       add_new: 新增
       delete: 刪除
diff --git a/config/sidekiq.yml b/config/sidekiq.yml
index f2ae9279b..26be26326 100644
--- a/config/sidekiq.yml
+++ b/config/sidekiq.yml
@@ -17,10 +17,6 @@
     every: '5m'
     class: Scheduler::Trends::RefreshScheduler
     queue: scheduler
-  email_domain_block_refresh_scheduler:
-    every: '1h'
-    class: Scheduler::EmailDomainBlockRefreshScheduler
-    queue: scheduler
   trends_review_notifications_scheduler:
     every: '6h'
     class: Scheduler::Trends::ReviewNotificationsScheduler
diff --git a/db/migrate/20180615122121_add_autofollow_to_invites.rb b/db/migrate/20180615122121_add_autofollow_to_invites.rb
index 850b1d693..8c5fb7410 100644
--- a/db/migrate/20180615122121_add_autofollow_to_invites.rb
+++ b/db/migrate/20180615122121_add_autofollow_to_invites.rb
@@ -5,7 +5,7 @@ class AddAutofollowToInvites < ActiveRecord::Migration[5.2]
 
   disable_ddl_transaction!
 
-  def change
+  def up
     safety_assured do
       add_column_with_default :invites, :autofollow, :bool, default: false, allow_null: false
     end
diff --git a/db/post_migrate/20220429101025_remove_ips_from_email_domain_blocks.rb b/db/post_migrate/20220429101025_remove_ips_from_email_domain_blocks.rb
new file mode 100644
index 000000000..fbb74d99e
--- /dev/null
+++ b/db/post_migrate/20220429101025_remove_ips_from_email_domain_blocks.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+class RemoveIpsFromEmailDomainBlocks < ActiveRecord::Migration[5.2]
+  disable_ddl_transaction!
+
+  def change
+    safety_assured do
+      remove_column :email_domain_blocks, :ips, :inet, array: true
+      remove_column :email_domain_blocks, :last_refresh_at, :datetime
+    end
+  end
+end
diff --git a/db/post_migrate/20220429101850_clear_email_domain_blocks.rb b/db/post_migrate/20220429101850_clear_email_domain_blocks.rb
new file mode 100644
index 000000000..ff525b650
--- /dev/null
+++ b/db/post_migrate/20220429101850_clear_email_domain_blocks.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class ClearEmailDomainBlocks < ActiveRecord::Migration[5.2]
+  disable_ddl_transaction!
+
+  class EmailDomainBlock < ApplicationRecord
+  end
+
+  def up
+    EmailDomainBlock.where.not(parent_id: nil).in_batches.delete_all
+  end
+
+  def down; end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 55c5ea74c..4552828d6 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 2022_04_28_114902) do
+ActiveRecord::Schema.define(version: 2022_04_29_101850) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -389,8 +389,6 @@ ActiveRecord::Schema.define(version: 2022_04_28_114902) do
     t.datetime "created_at", null: false
     t.datetime "updated_at", null: false
     t.bigint "parent_id"
-    t.inet "ips", array: true
-    t.datetime "last_refresh_at"
     t.index ["domain"], name: "index_email_domain_blocks_on_domain", unique: true
   end
 
diff --git a/lib/mastodon/cli_helper.rb b/lib/mastodon/cli_helper.rb
index aaee1fa91..a78a28e27 100644
--- a/lib/mastodon/cli_helper.rb
+++ b/lib/mastodon/cli_helper.rb
@@ -19,15 +19,18 @@ module Mastodon
       ProgressBar.create(total: total, format: '%c/%u |%b%i| %e')
     end
 
+    def reset_connection_pools!
+      ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[Rails.env].dup.tap { |config| config['pool'] = options[:concurrency] + 1 })
+      RedisConfiguration.establish_pool(options[:concurrency])
+    end
+
     def parallelize_with_progress(scope)
       if options[:concurrency] < 1
         say('Cannot run with this concurrency setting, must be at least 1', :red)
         exit(1)
       end
 
-      db_config = ActiveRecord::Base.configurations[Rails.env].dup
-      db_config['pool'] = options[:concurrency] + 1
-      ActiveRecord::Base.establish_connection(db_config)
+      reset_connection_pools!
 
       progress  = create_progress_bar(scope.count)
       pool      = Concurrent::FixedThreadPool.new(options[:concurrency])
@@ -52,6 +55,9 @@ module Mastodon
 
               result = ActiveRecord::Base.connection_pool.with_connection do
                 yield(item)
+              ensure
+                RedisConfiguration.pool.checkin if Thread.current[:redis]
+                Thread.current[:redis] = nil
               end
 
               aggregate.increment(result) if result.is_a?(Integer)
diff --git a/lib/mastodon/rack_middleware.rb b/lib/mastodon/rack_middleware.rb
index 619a2c36d..8aa7911fe 100644
--- a/lib/mastodon/rack_middleware.rb
+++ b/lib/mastodon/rack_middleware.rb
@@ -19,7 +19,7 @@ class Mastodon::RackMiddleware
   end
 
   def clean_up_redis_socket!
-    Thread.current[:redis]&.close
+    RedisConfiguration.pool.checkin if Thread.current[:redis]
     Thread.current[:redis] = nil
   end
 
diff --git a/lib/mastodon/search_cli.rb b/lib/mastodon/search_cli.rb
index 6ad9d7b6a..74f980ba1 100644
--- a/lib/mastodon/search_cli.rb
+++ b/lib/mastodon/search_cli.rb
@@ -59,9 +59,7 @@ module Mastodon
         index.specification.lock!
       end
 
-      db_config = ActiveRecord::Base.configurations[Rails.env].dup
-      db_config['pool'] = options[:concurrency] + 1
-      ActiveRecord::Base.establish_connection(db_config)
+      reset_connection_pools!
 
       pool    = Concurrent::FixedThreadPool.new(options[:concurrency])
       added   = Concurrent::AtomicFixnum.new(0)
@@ -139,6 +137,9 @@ module Mastodon
                 sleep 1
               rescue => e
                 progress.log pastel.red("Error importing #{index}: #{e}")
+              ensure
+                RedisConfiguration.pool.checkin if Thread.current[:redis]
+                Thread.current[:redis] = nil
               end
             end
           end
diff --git a/lib/mastodon/settings_cli.rb b/lib/mastodon/settings_cli.rb
index 061650a80..488c655de 100644
--- a/lib/mastodon/settings_cli.rb
+++ b/lib/mastodon/settings_cli.rb
@@ -16,6 +16,20 @@ module Mastodon
       say('OK', :green)
     end
 
+    desc 'approved', 'Open approval-based registrations'
+    option :require_reason, type: :boolean, aliases: [:require_invite_text]
+    long_desc <<~LONG_DESC
+      Set registrations to require review from staff.
+
+      With --require-reason, require users to enter a reason when registering,
+      otherwise this field is optional.
+    LONG_DESC
+    def approved
+      Setting.registrations_mode = 'approved'
+      Setting.require_invite_text = options[:require_reason] unless options[:require_reason].nil?
+      say('OK', :green)
+    end
+
     desc 'close', 'Close registrations'
     def close
       Setting.registrations_mode = 'none'
diff --git a/lib/mastodon/sidekiq_middleware.rb b/lib/mastodon/sidekiq_middleware.rb
index 7ec4097df..c75e8401f 100644
--- a/lib/mastodon/sidekiq_middleware.rb
+++ b/lib/mastodon/sidekiq_middleware.rb
@@ -26,7 +26,7 @@ class Mastodon::SidekiqMiddleware
   end
 
   def clean_up_redis_socket!
-    Thread.current[:redis]&.close
+    RedisConfiguration.pool.checkin if Thread.current[:redis]
     Thread.current[:redis] = nil
   end
 
diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake
index 8faa48a95..d9db79940 100644
--- a/lib/tasks/emojis.rake
+++ b/lib/tasks/emojis.rake
@@ -1,6 +1,6 @@
 # frozen_string_literal: true
 
-def gen_border(codepoint)
+def gen_border(codepoint, color)
   input = Rails.root.join('public', 'emoji', "#{codepoint}.svg")
   dest = Rails.root.join('public', 'emoji', "#{codepoint}_border.svg")
   doc = File.open(input) { |f| Nokogiri::XML(f) }
@@ -19,7 +19,7 @@ def gen_border(codepoint)
 
     border_elem.delete('fill')
 
-    border_elem['stroke'] = 'white'
+    border_elem['stroke'] = color
     border_elem['stroke-linejoin'] = 'round'
     border_elem['stroke-width'] = '4px'
 
@@ -91,12 +91,16 @@ namespace :emojis do
   desc 'Generate emoji variants with white borders'
   task :generate_borders do
     src = Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_map.json')
-    emojis = '🎱🐜⚫🖤⬛◼️◾◼️✒️▪️💣🎳📷📸♣️🕶️✴️🔌💂‍♀️📽️🍳🦍💂🔪🕳️🕹️🕋🖊️🖋️💂‍♂️🎤🎓🎥🎼♠️🎩🦃📼📹🎮🐃🏴🐞🕺📱📲🚲👽⚾🐔☁️💨🕊️👀🍥👻🐐❕❔⛸️🌩️🔊🔇📃🌧️🐏🍚🍙🐓🐑💀☠️🌨️🔉🔈💬💭🏐🏳️⚪⬜◽◻️▫️'
+    emojis_light = '👽⚾🐔☁️💨🕊️👀🍥👻🐐❕❔⛸️🌩️🔊🔇📃🌧️🐏🍚🍙🐓🐑💀☠️🌨️🔉🔈💬💭🏐🏳️⚪⬜◽◻️▫️'
+    emojis_dark = '🎱🐜⚫🖤⬛◼️◾◼️✒️▪️💣🎳📷📸♣️🕶️✴️🔌💂‍♀️📽️🍳🦍💂🔪🕳️🕹️🕋🖊️🖋️💂‍♂️🎤🎓🎥🎼♠️🎩🦃📼📹🎮🐃🏴🐞🕺📱📲🚲'
 
     map = Oj.load(File.read(src))
 
-    emojis.each_grapheme_cluster do |emoji|
-      gen_border map[emoji]
+    emojis_light.each_grapheme_cluster do |emoji|
+      gen_border map[emoji], 'black'
+    end
+    emojis_dark.each_grapheme_cluster do |emoji|
+      gen_border map[emoji], 'white'
     end
   end
 end
diff --git a/package.json b/package.json
index 2d80ea6d8..5b32884b3 100644
--- a/package.json
+++ b/package.json
@@ -63,11 +63,11 @@
   },
   "private": true,
   "dependencies": {
-    "@babel/core": "^7.17.9",
+    "@babel/core": "^7.17.10",
     "@babel/plugin-proposal-decorators": "^7.17.9",
     "@babel/plugin-transform-react-inline-elements": "^7.16.7",
-    "@babel/plugin-transform-runtime": "^7.17.0",
-    "@babel/preset-env": "^7.16.11",
+    "@babel/plugin-transform-runtime": "^7.17.10",
+    "@babel/preset-env": "^7.17.10",
     "@babel/preset-react": "^7.16.7",
     "@babel/runtime": "^7.17.9",
     "@gamestdio/websocket": "^0.3.2",
@@ -78,7 +78,7 @@
     "atrament": "0.2.4",
     "autoprefixer": "^9.8.8",
     "axios": "^0.26.1",
-    "babel-loader": "^8.2.4",
+    "babel-loader": "^8.2.5",
     "babel-plugin-lodash": "^3.3.4",
     "babel-plugin-preval": "^5.1.0",
     "babel-plugin-react-intl": "^6.2.0",
@@ -97,7 +97,7 @@
     "es6-symbol": "^3.1.3",
     "escape-html": "^1.0.3",
     "exif-js": "^2.3.0",
-    "express": "^4.18.0",
+    "express": "^4.18.1",
     "favico.js": "^0.3.10",
     "file-loader": "^6.2.0",
     "font-awesome": "^4.7.0",
@@ -143,7 +143,7 @@
     "react-redux-loading-bar": "^4.0.8",
     "react-router-dom": "^4.1.1",
     "react-router-scroll-4": "^1.0.0-beta.1",
-    "react-select": "^5.3.0",
+    "react-select": "^5.3.1",
     "react-sparklines": "^1.7.0",
     "react-swipeable-views": "^0.14.0",
     "react-textarea-autosize": "^8.3.3",
@@ -157,7 +157,7 @@
     "requestidlecallback": "^0.3.0",
     "reselect": "^4.1.5",
     "rimraf": "^3.0.2",
-    "sass": "^1.50.1",
+    "sass": "^1.51.0",
     "sass-loader": "^10.2.0",
     "stacktrace-js": "^2.0.2",
     "stringz": "^2.1.0",
diff --git a/public/emoji/1f327_border.svg b/public/emoji/1f327_border.svg
index 3298c8f87..76776b04a 100644
--- a/public/emoji/1f327_border.svg
+++ b/public/emoji/1f327_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M28 4c-.825 0-1.62.125-2.369.357C24.744 1.822 22.338 0 19.5 0c-3.044 0-5.592 2.096-6.299 4.921C12.447 4.351 11.519 4 10.5 4 8.015 4 6 6.015 6 8.5c0 .604.123 1.178.339 1.704C5.91 10.085 5.467 10 5 10c-2.762 0-5 2.238-5 5s2.238 5 5 5h23c4.418 0 8-3.581 8-8 0-4.418-3.582-8-8-8z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M11.999 24.961l-.113-3.421-2.87 1.708c-.638.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.98-.937 1.943-2.039zm-1.979 7.46L9.907 29l-2.87 1.708c-.638.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.11-.023 1.98-.937 1.943-2.039zm-5-4.46l-.113-3.421-2.87 1.708c-.638.345-1.062 1.024-1.036 1.799.037 1.102.966 1.975 2.076 1.953 1.11-.023 1.98-.937 1.943-2.039zm18-3l-.113-3.421-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.979-.937 1.942-2.039zm-6.021 4l-.113-3.421-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.979-.937 1.942-2.039zm5.021 4.46L21.906 30l-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.11-.023 1.98-.937 1.943-2.039zm6.979-5.46l-.113-3.421-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.979-.937 1.942-2.039z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M28 4c-.825 0-1.62.125-2.369.357C24.744 1.822 22.338 0 19.5 0c-3.044 0-5.592 2.096-6.299 4.921C12.447 4.351 11.519 4 10.5 4 8.015 4 6 6.015 6 8.5c0 .604.123 1.178.339 1.704C5.91 10.085 5.467 10 5 10c-2.762 0-5 2.238-5 5s2.238 5 5 5h23c4.418 0 8-3.581 8-8 0-4.418-3.582-8-8-8z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M11.999 24.961l-.113-3.421-2.87 1.708c-.638.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.98-.937 1.943-2.039zm-1.979 7.46L9.907 29l-2.87 1.708c-.638.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.11-.023 1.98-.937 1.943-2.039zm-5-4.46l-.113-3.421-2.87 1.708c-.638.345-1.062 1.024-1.036 1.799.037 1.102.966 1.975 2.076 1.953 1.11-.023 1.98-.937 1.943-2.039zm18-3l-.113-3.421-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.979-.937 1.942-2.039zm-6.021 4l-.113-3.421-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.979-.937 1.942-2.039zm5.021 4.46L21.906 30l-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.11-.023 1.98-.937 1.943-2.039zm6.979-5.46l-.113-3.421-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.979-.937 1.942-2.039z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#E1E8ED" d="M28 4c-.825 0-1.62.125-2.369.357C24.744 1.822 22.338 0 19.5 0c-3.044 0-5.592 2.096-6.299 4.921C12.447 4.351 11.519 4 10.5 4 8.015 4 6 6.015 6 8.5c0 .604.123 1.178.339 1.704C5.91 10.085 5.467 10 5 10c-2.762 0-5 2.238-5 5s2.238 5 5 5h23c4.418 0 8-3.581 8-8 0-4.418-3.582-8-8-8z"/>
   <path fill="#5DADEC" d="M11.999 24.961l-.113-3.421-2.87 1.708c-.638.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.98-.937 1.943-2.039zm-1.979 7.46L9.907 29l-2.87 1.708c-.638.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.11-.023 1.98-.937 1.943-2.039zm-5-4.46l-.113-3.421-2.87 1.708c-.638.345-1.062 1.024-1.036 1.799.037 1.102.966 1.975 2.076 1.953 1.11-.023 1.98-.937 1.943-2.039zm18-3l-.113-3.421-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.979-.937 1.942-2.039zm-6.021 4l-.113-3.421-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.979-.937 1.942-2.039zm5.021 4.46L21.906 30l-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.11-.023 1.98-.937 1.943-2.039zm6.979-5.46l-.113-3.421-2.869 1.708c-.639.345-1.062 1.024-1.036 1.799.037 1.103.966 1.976 2.076 1.953 1.109-.023 1.979-.937 1.942-2.039z"/>
diff --git a/public/emoji/1f328_border.svg b/public/emoji/1f328_border.svg
index 254dc90de..1ec2748de 100644
--- a/public/emoji/1f328_border.svg
+++ b/public/emoji/1f328_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M28 4c-.825 0-1.62.125-2.369.357C24.744 1.822 22.338 0 19.5 0c-3.044 0-5.592 2.096-6.299 4.921C12.447 4.351 11.519 4 10.5 4 8.015 4 6 6.015 6 8.5c0 .604.123 1.178.339 1.704C5.91 10.085 5.467 10 5 10c-2.762 0-5 2.238-5 5s2.238 5 5 5h23c4.418 0 8-3.581 8-8 0-4.418-3.582-8-8-8z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M6.53 26.75c-.138-.239-.443-.32-.683-.183L4 27.634V25.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684L2.499 28.5.651 29.567c-.239.138-.32.443-.183.683.138.24.443.321.683.184L3 29.366V31.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L4.5 28.5l1.848-1.067c.239-.138.321-.443.182-.683zm10 4c-.138-.239-.443-.32-.683-.183L14 31.634V29.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L13 33.366V35.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L14.5 32.5l1.848-1.067c.239-.138.321-.443.182-.683zM11 27.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L12.5 24.5l1.848-1.067c.239-.139.321-.443.183-.684-.138-.239-.443-.32-.683-.183L12 23.634V21.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L11 25.366V27.5zm12.848-.066c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L22.5 25.5l1.848-1.067c.239-.139.321-.443.183-.684-.138-.239-.443-.32-.683-.183L22 24.634V22.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L21 26.366V28.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067zm10.5-1.867L32.5 24.5l1.848-1.067c.239-.139.321-.443.183-.684-.138-.239-.443-.32-.683-.183L32 23.634V21.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L31 25.366V27.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.137-.239.056-.545-.183-.683zM29.53 30.75c-.138-.239-.443-.32-.683-.183L27 31.634V29.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L26 33.366V35.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L27.5 32.5l1.848-1.067c.239-.138.321-.443.182-.683z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M28 4c-.825 0-1.62.125-2.369.357C24.744 1.822 22.338 0 19.5 0c-3.044 0-5.592 2.096-6.299 4.921C12.447 4.351 11.519 4 10.5 4 8.015 4 6 6.015 6 8.5c0 .604.123 1.178.339 1.704C5.91 10.085 5.467 10 5 10c-2.762 0-5 2.238-5 5s2.238 5 5 5h23c4.418 0 8-3.581 8-8 0-4.418-3.582-8-8-8z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M6.53 26.75c-.138-.239-.443-.32-.683-.183L4 27.634V25.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684L2.499 28.5.651 29.567c-.239.138-.32.443-.183.683.138.24.443.321.683.184L3 29.366V31.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L4.5 28.5l1.848-1.067c.239-.138.321-.443.182-.683zm10 4c-.138-.239-.443-.32-.683-.183L14 31.634V29.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L13 33.366V35.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L14.5 32.5l1.848-1.067c.239-.138.321-.443.182-.683zM11 27.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L12.5 24.5l1.848-1.067c.239-.139.321-.443.183-.684-.138-.239-.443-.32-.683-.183L12 23.634V21.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L11 25.366V27.5zm12.848-.066c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L22.5 25.5l1.848-1.067c.239-.139.321-.443.183-.684-.138-.239-.443-.32-.683-.183L22 24.634V22.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L21 26.366V28.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067zm10.5-1.867L32.5 24.5l1.848-1.067c.239-.139.321-.443.183-.684-.138-.239-.443-.32-.683-.183L32 23.634V21.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L31 25.366V27.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.137-.239.056-.545-.183-.683zM29.53 30.75c-.138-.239-.443-.32-.683-.183L27 31.634V29.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L26 33.366V35.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L27.5 32.5l1.848-1.067c.239-.138.321-.443.182-.683z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#E1E8ED" d="M28 4c-.825 0-1.62.125-2.369.357C24.744 1.822 22.338 0 19.5 0c-3.044 0-5.592 2.096-6.299 4.921C12.447 4.351 11.519 4 10.5 4 8.015 4 6 6.015 6 8.5c0 .604.123 1.178.339 1.704C5.91 10.085 5.467 10 5 10c-2.762 0-5 2.238-5 5s2.238 5 5 5h23c4.418 0 8-3.581 8-8 0-4.418-3.582-8-8-8z"/>
   <path d="M6.53 26.75c-.138-.239-.443-.32-.683-.183L4 27.634V25.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684L2.499 28.5.651 29.567c-.239.138-.32.443-.183.683.138.24.443.321.683.184L3 29.366V31.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L4.5 28.5l1.848-1.067c.239-.138.321-.443.182-.683zm10 4c-.138-.239-.443-.32-.683-.183L14 31.634V29.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L13 33.366V35.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L14.5 32.5l1.848-1.067c.239-.138.321-.443.182-.683zM11 27.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L12.5 24.5l1.848-1.067c.239-.139.321-.443.183-.684-.138-.239-.443-.32-.683-.183L12 23.634V21.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L11 25.366V27.5zm12.848-.066c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L22.5 25.5l1.848-1.067c.239-.139.321-.443.183-.684-.138-.239-.443-.32-.683-.183L22 24.634V22.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L21 26.366V28.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067zm10.5-1.867L32.5 24.5l1.848-1.067c.239-.139.321-.443.183-.684-.138-.239-.443-.32-.683-.183L32 23.634V21.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L31 25.366V27.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.137-.239.056-.545-.183-.683zM29.53 30.75c-.138-.239-.443-.32-.683-.183L27 31.634V29.5c0-.276-.224-.5-.5-.5s-.5.224-.5.5v2.135l-1.849-1.067c-.239-.138-.545-.057-.683.183-.139.24-.057.545.183.684l1.848 1.067-1.848 1.067c-.239.138-.32.443-.183.683.138.24.443.321.683.184L26 33.366V35.5c0 .276.224.5.5.5s.5-.224.5-.5v-2.133l1.848 1.067c.239.138.545.057.683-.184.138-.239.057-.545-.183-.683L27.5 32.5l1.848-1.067c.239-.138.321-.443.182-.683z" fill="#5DADEC"/>
diff --git a/public/emoji/1f329_border.svg b/public/emoji/1f329_border.svg
index 05c662ac4..ad0cef998 100644
--- a/public/emoji/1f329_border.svg
+++ b/public/emoji/1f329_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M13.917 36c-.091 0-.182-.029-.258-.089-.157-.124-.204-.341-.113-.518L17 29h-5.078c-.174 0-.438-.031-.562-.297-.114-.243-.057-.474.047-.703L15 19c.078-.067 6.902.393 7 .393.09 0 .182.029.257.089.157.124.204.341.112.519l-3.817 6h5.032c.174 0 .329.108.391.271.06.163.013.347-.119.461l-9.666 9.166c-.079.067-.176.101-.273.101z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M28 4c-.825 0-1.62.125-2.369.357C24.744 1.822 22.338 0 19.5 0c-3.044 0-5.592 2.096-6.299 4.921C12.447 4.351 11.519 4 10.5 4 8.015 4 6 6.015 6 8.5c0 .604.123 1.178.339 1.704C5.91 10.085 5.467 10 5 10c-2.762 0-5 2.238-5 5s2.238 5 5 5h23c4.418 0 8-3.581 8-8 0-4.418-3.582-8-8-8z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M13.917 36c-.091 0-.182-.029-.258-.089-.157-.124-.204-.341-.113-.518L17 29h-5.078c-.174 0-.438-.031-.562-.297-.114-.243-.057-.474.047-.703L15 19c.078-.067 6.902.393 7 .393.09 0 .182.029.257.089.157.124.204.341.112.519l-3.817 6h5.032c.174 0 .329.108.391.271.06.163.013.347-.119.461l-9.666 9.166c-.079.067-.176.101-.273.101z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M28 4c-.825 0-1.62.125-2.369.357C24.744 1.822 22.338 0 19.5 0c-3.044 0-5.592 2.096-6.299 4.921C12.447 4.351 11.519 4 10.5 4 8.015 4 6 6.015 6 8.5c0 .604.123 1.178.339 1.704C5.91 10.085 5.467 10 5 10c-2.762 0-5 2.238-5 5s2.238 5 5 5h23c4.418 0 8-3.581 8-8 0-4.418-3.582-8-8-8z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#F4900C" d="M13.917 36c-.091 0-.182-.029-.258-.089-.157-.124-.204-.341-.113-.518L17 29h-5.078c-.174 0-.438-.031-.562-.297-.114-.243-.057-.474.047-.703L15 19c.078-.067 6.902.393 7 .393.09 0 .182.029.257.089.157.124.204.341.112.519l-3.817 6h5.032c.174 0 .329.108.391.271.06.163.013.347-.119.461l-9.666 9.166c-.079.067-.176.101-.273.101z"/>
   <path fill="#E1E8ED" d="M28 4c-.825 0-1.62.125-2.369.357C24.744 1.822 22.338 0 19.5 0c-3.044 0-5.592 2.096-6.299 4.921C12.447 4.351 11.519 4 10.5 4 8.015 4 6 6.015 6 8.5c0 .604.123 1.178.339 1.704C5.91 10.085 5.467 10 5 10c-2.762 0-5 2.238-5 5s2.238 5 5 5h23c4.418 0 8-3.581 8-8 0-4.418-3.582-8-8-8z"/>
diff --git a/public/emoji/1f359_border.svg b/public/emoji/1f359_border.svg
index 6541681d8..d915010a6 100644
--- a/public/emoji/1f359_border.svg
+++ b/public/emoji/1f359_border.svg
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M35 26c0 9.389-7.609 9-17 9s-17 .389-17-9C1 18 9 7 14 3c2.75-2 5.129-2.051 8 0 7 5 13 18 13 23z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M27.258 29.642c-.461.316-1.091.199-1.406-.263-.316-.46-.198-1.091.262-1.406l1.67-1.144c.46-.315 1.089-.198 1.405.263.315.46.198 1.091-.263 1.405l-1.668 1.145zm2.438-7.095c-.512-.207-.758-.792-.549-1.303.209-.512.793-.758 1.304-.549l1.852.755c.511.208.757.791.549 1.303-.208.512-.792.758-1.304.549l-1.852-.755zm-4.494-5.256c-.519-.21-.767-.801-.555-1.318.209-.517.801-.766 1.316-.556l1.875.764c.516.211.765.801.554 1.318-.211.517-.8.766-1.318.555l-1.872-.763zm-21.001 7c-.517-.21-.766-.801-.554-1.318.21-.517.801-.766 1.317-.556l1.873.764c.518.211.766.801.556 1.318-.211.518-.802.767-1.318.556l-1.874-.764zm3.557-6.149c-.461.316-1.091.199-1.406-.264-.315-.46-.198-1.09.262-1.405l1.67-1.144c.46-.315 1.089-.198 1.405.263.315.46.198 1.091-.263 1.406l-1.668 1.144zm9.028 3.739c-.767-.312-1.137-1.188-.824-1.956.314-.766 1.189-1.135 1.956-.823l2.778 1.134c.767.312 1.136 1.186.824 1.953-.312.768-1.188 1.137-1.956.824l-2.778-1.132zm-6.184 6.052c.522-.199 1.106.062 1.306.586.197.519-.066 1.105-.588 1.303l-1.892.721c-.519.199-1.104-.063-1.302-.586-.2-.524.062-1.107.585-1.307l1.891-.717z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M24 21H12c-1.104 0-2 .896-2 2v11.812c2.384.224 5.107.188 8 .188s5.616.036 8-.188V23c0-1.104-.896-2-2-2z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M35 26c0 9.389-7.609 9-17 9s-17 .389-17-9C1 18 9 7 14 3c2.75-2 5.129-2.051 8 0 7 5 13 18 13 23z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M27.258 29.642c-.461.316-1.091.199-1.406-.263-.316-.46-.198-1.091.262-1.406l1.67-1.144c.46-.315 1.089-.198 1.405.263.315.46.198 1.091-.263 1.405l-1.668 1.145zm2.438-7.095c-.512-.207-.758-.792-.549-1.303.209-.512.793-.758 1.304-.549l1.852.755c.511.208.757.791.549 1.303-.208.512-.792.758-1.304.549l-1.852-.755zm-4.494-5.256c-.519-.21-.767-.801-.555-1.318.209-.517.801-.766 1.316-.556l1.875.764c.516.211.765.801.554 1.318-.211.517-.8.766-1.318.555l-1.872-.763zm-21.001 7c-.517-.21-.766-.801-.554-1.318.21-.517.801-.766 1.317-.556l1.873.764c.518.211.766.801.556 1.318-.211.518-.802.767-1.318.556l-1.874-.764zm3.557-6.149c-.461.316-1.091.199-1.406-.264-.315-.46-.198-1.09.262-1.405l1.67-1.144c.46-.315 1.089-.198 1.405.263.315.46.198 1.091-.263 1.406l-1.668 1.144zm9.028 3.739c-.767-.312-1.137-1.188-.824-1.956.314-.766 1.189-1.135 1.956-.823l2.778 1.134c.767.312 1.136 1.186.824 1.953-.312.768-1.188 1.137-1.956.824l-2.778-1.132zm-6.184 6.052c.522-.199 1.106.062 1.306.586.197.519-.066 1.105-.588 1.303l-1.892.721c-.519.199-1.104-.063-1.302-.586-.2-.524.062-1.107.585-1.307l1.891-.717z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M24 21H12c-1.104 0-2 .896-2 2v11.812c2.384.224 5.107.188 8 .188s5.616.036 8-.188V23c0-1.104-.896-2-2-2z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#EEE" d="M35 26c0 9.389-7.609 9-17 9s-17 .389-17-9C1 18 9 7 14 3c2.75-2 5.129-2.051 8 0 7 5 13 18 13 23z"/>
   <path fill="#CCD6DD" d="M27.258 29.642c-.461.316-1.091.199-1.406-.263-.316-.46-.198-1.091.262-1.406l1.67-1.144c.46-.315 1.089-.198 1.405.263.315.46.198 1.091-.263 1.405l-1.668 1.145zm2.438-7.095c-.512-.207-.758-.792-.549-1.303.209-.512.793-.758 1.304-.549l1.852.755c.511.208.757.791.549 1.303-.208.512-.792.758-1.304.549l-1.852-.755zm-4.494-5.256c-.519-.21-.767-.801-.555-1.318.209-.517.801-.766 1.316-.556l1.875.764c.516.211.765.801.554 1.318-.211.517-.8.766-1.318.555l-1.872-.763zm-21.001 7c-.517-.21-.766-.801-.554-1.318.21-.517.801-.766 1.317-.556l1.873.764c.518.211.766.801.556 1.318-.211.518-.802.767-1.318.556l-1.874-.764zm3.557-6.149c-.461.316-1.091.199-1.406-.264-.315-.46-.198-1.09.262-1.405l1.67-1.144c.46-.315 1.089-.198 1.405.263.315.46.198 1.091-.263 1.406l-1.668 1.144zm9.028 3.739c-.767-.312-1.137-1.188-.824-1.956.314-.766 1.189-1.135 1.956-.823l2.778 1.134c.767.312 1.136 1.186.824 1.953-.312.768-1.188 1.137-1.956.824l-2.778-1.132zm-6.184 6.052c.522-.199 1.106.062 1.306.586.197.519-.066 1.105-.588 1.303l-1.892.721c-.519.199-1.104-.063-1.302-.586-.2-.524.062-1.107.585-1.307l1.891-.717z"/>
diff --git a/public/emoji/1f35a_border.svg b/public/emoji/1f35a_border.svg
index d6621c590..90e4e652f 100644
--- a/public/emoji/1f35a_border.svg
+++ b/public/emoji/1f35a_border.svg
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M18 36C3.042 36 1 21 1 17h34c0 2-1.958 19-17 19z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <ellipse cx="18" cy="17.056" rx="17" ry="9.444" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M18 25c-6 0-16-3-16-8C2 11 8.125 4 18 4s16 8 16 13-9 8-16 8z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M15.41 19.892c.419.359.468.991.108 1.41-.359.419-.991.468-1.41.108l-1.519-1.302c-.419-.359-.468-.991-.108-1.41.359-.419.991-.468 1.41-.108l1.519 1.302zm-8.127-1.507c-.304.46-.925.587-1.386.283-.46-.305-.587-.925-.283-1.386l1.103-1.669c.305-.461.925-.587 1.386-.283.46.305.587.925.283 1.386l-1.103 1.669zm23 0c-.305.46-.926.587-1.387.283-.46-.305-.587-.925-.282-1.386l1.103-1.669c.305-.461.926-.587 1.386-.283.46.305.587.925.283 1.386l-1.103 1.669zm-6.103-3.606c.11.541-.239 1.069-.78 1.18-.541.11-1.069-.239-1.18-.78l-.399-1.96c-.11-.541.238-1.069.78-1.179.541-.111 1.069.239 1.179.78l.4 1.959zm-7.54-3.958c-.345-.14-.511-.534-.37-.879.14-.344.534-.51.878-.37l1.249.509c.345.14.51.533.37.878-.141.345-.534.511-.879.37l-1.248-.508zm-9.296 1.567c-.307.211-.727.133-.938-.175-.21-.307-.132-.727.175-.937l1.113-.762c.307-.21.726-.132.937.175.21.307.132.727-.175.938l-1.112.761zm13.593 8.545c-.551-.036-.969-.513-.933-1.064.037-.55.513-.968 1.062-.933l1.997.131c.55.035.969.512.933 1.062-.035.551-.511.97-1.062.933l-1.997-.129zm-9.241-6.386c-.512-.208-.758-.793-.549-1.304.209-.511.793-.757 1.304-.549l1.853.755c.511.208.757.791.549 1.303-.208.512-.792.758-1.304.549l-1.853-.754zm15.945-2.726c-.346-.14-.512-.534-.37-.879.14-.344.534-.51.878-.37l1.25.509c.344.14.51.533.369.878-.141.345-.533.511-.879.37l-1.248-.508z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M18 36C3.042 36 1 21 1 17h34c0 2-1.958 19-17 19z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <ellipse cx="18" cy="17.056" rx="17" ry="9.444" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M18 25c-6 0-16-3-16-8C2 11 8.125 4 18 4s16 8 16 13-9 8-16 8z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M15.41 19.892c.419.359.468.991.108 1.41-.359.419-.991.468-1.41.108l-1.519-1.302c-.419-.359-.468-.991-.108-1.41.359-.419.991-.468 1.41-.108l1.519 1.302zm-8.127-1.507c-.304.46-.925.587-1.386.283-.46-.305-.587-.925-.283-1.386l1.103-1.669c.305-.461.925-.587 1.386-.283.46.305.587.925.283 1.386l-1.103 1.669zm23 0c-.305.46-.926.587-1.387.283-.46-.305-.587-.925-.282-1.386l1.103-1.669c.305-.461.926-.587 1.386-.283.46.305.587.925.283 1.386l-1.103 1.669zm-6.103-3.606c.11.541-.239 1.069-.78 1.18-.541.11-1.069-.239-1.18-.78l-.399-1.96c-.11-.541.238-1.069.78-1.179.541-.111 1.069.239 1.179.78l.4 1.959zm-7.54-3.958c-.345-.14-.511-.534-.37-.879.14-.344.534-.51.878-.37l1.249.509c.345.14.51.533.37.878-.141.345-.534.511-.879.37l-1.248-.508zm-9.296 1.567c-.307.211-.727.133-.938-.175-.21-.307-.132-.727.175-.937l1.113-.762c.307-.21.726-.132.937.175.21.307.132.727-.175.938l-1.112.761zm13.593 8.545c-.551-.036-.969-.513-.933-1.064.037-.55.513-.968 1.062-.933l1.997.131c.55.035.969.512.933 1.062-.035.551-.511.97-1.062.933l-1.997-.129zm-9.241-6.386c-.512-.208-.758-.793-.549-1.304.209-.511.793-.757 1.304-.549l1.853.755c.511.208.757.791.549 1.303-.208.512-.792.758-1.304.549l-1.853-.754zm15.945-2.726c-.346-.14-.512-.534-.37-.879.14-.344.534-.51.878-.37l1.25.509c.344.14.51.533.369.878-.141.345-.533.511-.879.37l-1.248-.508z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#DD2E44" d="M18 36C3.042 36 1 21 1 17h34c0 2-1.958 19-17 19z"/>
   <ellipse fill="#A0041E" cx="18" cy="17.056" rx="17" ry="9.444"/>
diff --git a/public/emoji/1f365_border.svg b/public/emoji/1f365_border.svg
index 278cebd43..5e25f2ff9 100644
--- a/public/emoji/1f365_border.svg
+++ b/public/emoji/1f365_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M22.235 35.662c-.418 0-.83-.123-1.182-.361l-2.96-2.007-2.959 2.007c-.354.238-.766.361-1.184.361-.183 0-.365-.023-.546-.072-.589-.156-1.084-.562-1.351-1.113l-1.721-2.393-3.405-.568c-.05.003-.101.005-.151.005-.558 0-1.096-.222-1.491-.617-.433-.435-.657-1.032-.614-1.642l.256-3.567-3.215-1.56c-.551-.266-.958-.762-1.116-1.353-.159-.591-.053-1.221.291-1.729l1.152-2.928-1.152-2.991c-.343-.507-.45-1.137-.291-1.729.159-.589.565-1.084 1.116-1.351l3.215-1.561-.254-3.564c-.043-.612.181-1.212.614-1.642.395-.397.933-.618 1.491-.618.05 0 .101 0 .151.004l3.28-.506 1.846-2.452c.267-.551.761-.958 1.351-1.116.181-.048.363-.073.546-.073.418 0 .83.125 1.184.363l2.959 2.005 2.96-2.005c.352-.239.764-.363 1.182-.363.183 0 .369.025.545.073.592.159 1.088.565 1.354 1.116L26 4.042l3.262.631c.048-.004.1-.004.149-.004.558 0 1.094.221 1.493.618.431.43.656 1.03.612 1.642l-.26 3.565 3.221 1.561c.551.267.957.761 1.113 1.351.158.592.055 1.223-.289 1.729l-.926 2.908.926 3.011c.344.508.447 1.138.289 1.729-.156.591-.562 1.087-1.113 1.353l-3.221 1.56.26 3.567c.044.609-.182 1.206-.612 1.642-.399.396-.935.617-1.493.617-.049 0-.101-.002-.149-.005l-3.22.526-1.908 2.435c-.266.551-.762.957-1.354 1.113-.176.049-.362.071-.545.071z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M18.5 28.709c-3.708.041-8.167-2.875-7.792-8.37.133-1.959.903-3.779 2.341-5.116 2.543-2.365 6.538-2.219 8.903.324.986 1.061 1.5 2.443 1.447 3.891-.052 1.447-.665 2.788-1.727 3.774-.918.853-2.104 1.302-3.365 1.253-1.253-.046-2.413-.577-3.266-1.495-.785-.844-1.059-2.045-.733-3.214.331-1.188 1.219-2.095 2.375-2.425.532-.151 1.123-.236 1.275.294.152.531-.38.757-1.083 1.25-.833.584-1.292 1.667-.368 2.733.471.544 1.155.831 1.874.857.716.024 1.405-.228 1.931-.719.669-.622 1.057-1.469 1.09-2.383.033-.914-.292-1.786-.914-2.456-1.615-1.736-4.34-1.836-6.077-.221-1.046.973-1.652 2.295-1.704 3.724-.052 1.429.455 2.791 1.428 3.838 1.202 1.293 2.835 2.04 4.6 2.104 1.764.07 3.447-.562 4.74-1.765 1.588-1.476 2.506-3.483 2.585-5.649.079-2.167-.691-4.234-2.167-5.822-3.725-4.008-8.601-4.952-13.643-1.91-.763.463-1.401 1.139-1.833.794-.208-.167-.314-.481.09-.857 4.815-4.478 12.376-4.201 16.851.614 1.84 1.979 2.919 4.562 2.7 7.257-.683 8.403-6.558 9.861-9.558 9.695z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M22.235 35.662c-.418 0-.83-.123-1.182-.361l-2.96-2.007-2.959 2.007c-.354.238-.766.361-1.184.361-.183 0-.365-.023-.546-.072-.589-.156-1.084-.562-1.351-1.113l-1.721-2.393-3.405-.568c-.05.003-.101.005-.151.005-.558 0-1.096-.222-1.491-.617-.433-.435-.657-1.032-.614-1.642l.256-3.567-3.215-1.56c-.551-.266-.958-.762-1.116-1.353-.159-.591-.053-1.221.291-1.729l1.152-2.928-1.152-2.991c-.343-.507-.45-1.137-.291-1.729.159-.589.565-1.084 1.116-1.351l3.215-1.561-.254-3.564c-.043-.612.181-1.212.614-1.642.395-.397.933-.618 1.491-.618.05 0 .101 0 .151.004l3.28-.506 1.846-2.452c.267-.551.761-.958 1.351-1.116.181-.048.363-.073.546-.073.418 0 .83.125 1.184.363l2.959 2.005 2.96-2.005c.352-.239.764-.363 1.182-.363.183 0 .369.025.545.073.592.159 1.088.565 1.354 1.116L26 4.042l3.262.631c.048-.004.1-.004.149-.004.558 0 1.094.221 1.493.618.431.43.656 1.03.612 1.642l-.26 3.565 3.221 1.561c.551.267.957.761 1.113 1.351.158.592.055 1.223-.289 1.729l-.926 2.908.926 3.011c.344.508.447 1.138.289 1.729-.156.591-.562 1.087-1.113 1.353l-3.221 1.56.26 3.567c.044.609-.182 1.206-.612 1.642-.399.396-.935.617-1.493.617-.049 0-.101-.002-.149-.005l-3.22.526-1.908 2.435c-.266.551-.762.957-1.354 1.113-.176.049-.362.071-.545.071z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M18.5 28.709c-3.708.041-8.167-2.875-7.792-8.37.133-1.959.903-3.779 2.341-5.116 2.543-2.365 6.538-2.219 8.903.324.986 1.061 1.5 2.443 1.447 3.891-.052 1.447-.665 2.788-1.727 3.774-.918.853-2.104 1.302-3.365 1.253-1.253-.046-2.413-.577-3.266-1.495-.785-.844-1.059-2.045-.733-3.214.331-1.188 1.219-2.095 2.375-2.425.532-.151 1.123-.236 1.275.294.152.531-.38.757-1.083 1.25-.833.584-1.292 1.667-.368 2.733.471.544 1.155.831 1.874.857.716.024 1.405-.228 1.931-.719.669-.622 1.057-1.469 1.09-2.383.033-.914-.292-1.786-.914-2.456-1.615-1.736-4.34-1.836-6.077-.221-1.046.973-1.652 2.295-1.704 3.724-.052 1.429.455 2.791 1.428 3.838 1.202 1.293 2.835 2.04 4.6 2.104 1.764.07 3.447-.562 4.74-1.765 1.588-1.476 2.506-3.483 2.585-5.649.079-2.167-.691-4.234-2.167-5.822-3.725-4.008-8.601-4.952-13.643-1.91-.763.463-1.401 1.139-1.833.794-.208-.167-.314-.481.09-.857 4.815-4.478 12.376-4.201 16.851.614 1.84 1.979 2.919 4.562 2.7 7.257-.683 8.403-6.558 9.861-9.558 9.695z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#E1E8ED" d="M22.235 35.662c-.418 0-.83-.123-1.182-.361l-2.96-2.007-2.959 2.007c-.354.238-.766.361-1.184.361-.183 0-.365-.023-.546-.072-.589-.156-1.084-.562-1.351-1.113l-1.721-2.393-3.405-.568c-.05.003-.101.005-.151.005-.558 0-1.096-.222-1.491-.617-.433-.435-.657-1.032-.614-1.642l.256-3.567-3.215-1.56c-.551-.266-.958-.762-1.116-1.353-.159-.591-.053-1.221.291-1.729l1.152-2.928-1.152-2.991c-.343-.507-.45-1.137-.291-1.729.159-.589.565-1.084 1.116-1.351l3.215-1.561-.254-3.564c-.043-.612.181-1.212.614-1.642.395-.397.933-.618 1.491-.618.05 0 .101 0 .151.004l3.28-.506 1.846-2.452c.267-.551.761-.958 1.351-1.116.181-.048.363-.073.546-.073.418 0 .83.125 1.184.363l2.959 2.005 2.96-2.005c.352-.239.764-.363 1.182-.363.183 0 .369.025.545.073.592.159 1.088.565 1.354 1.116L26 4.042l3.262.631c.048-.004.1-.004.149-.004.558 0 1.094.221 1.493.618.431.43.656 1.03.612 1.642l-.26 3.565 3.221 1.561c.551.267.957.761 1.113 1.351.158.592.055 1.223-.289 1.729l-.926 2.908.926 3.011c.344.508.447 1.138.289 1.729-.156.591-.562 1.087-1.113 1.353l-3.221 1.56.26 3.567c.044.609-.182 1.206-.612 1.642-.399.396-.935.617-1.493.617-.049 0-.101-.002-.149-.005l-3.22.526-1.908 2.435c-.266.551-.762.957-1.354 1.113-.176.049-.362.071-.545.071z"/>
   <path fill="#D372B8" d="M18.5 28.709c-3.708.041-8.167-2.875-7.792-8.37.133-1.959.903-3.779 2.341-5.116 2.543-2.365 6.538-2.219 8.903.324.986 1.061 1.5 2.443 1.447 3.891-.052 1.447-.665 2.788-1.727 3.774-.918.853-2.104 1.302-3.365 1.253-1.253-.046-2.413-.577-3.266-1.495-.785-.844-1.059-2.045-.733-3.214.331-1.188 1.219-2.095 2.375-2.425.532-.151 1.123-.236 1.275.294.152.531-.38.757-1.083 1.25-.833.584-1.292 1.667-.368 2.733.471.544 1.155.831 1.874.857.716.024 1.405-.228 1.931-.719.669-.622 1.057-1.469 1.09-2.383.033-.914-.292-1.786-.914-2.456-1.615-1.736-4.34-1.836-6.077-.221-1.046.973-1.652 2.295-1.704 3.724-.052 1.429.455 2.791 1.428 3.838 1.202 1.293 2.835 2.04 4.6 2.104 1.764.07 3.447-.562 4.74-1.765 1.588-1.476 2.506-3.483 2.585-5.649.079-2.167-.691-4.234-2.167-5.822-3.725-4.008-8.601-4.952-13.643-1.91-.763.463-1.401 1.139-1.833.794-.208-.167-.314-.481.09-.857 4.815-4.478 12.376-4.201 16.851.614 1.84 1.979 2.919 4.562 2.7 7.257-.683 8.403-6.558 9.861-9.558 9.695z"/>
diff --git a/public/emoji/1f3d0_border.svg b/public/emoji/1f3d0_border.svg
index c1804f2cb..f0127342a 100644
--- a/public/emoji/1f3d0_border.svg
+++ b/public/emoji/1f3d0_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <circle cx="18" cy="18" r="18" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M32.809 7.779c-2.156-.087-5.324.186-8.21 1.966-.009.005-.019.004-.028.009-.02.011-.031.03-.05.042-2.148 1.348-4.131 3.539-5.411 7.054-2.395-.049-4.569-.286-6.488-.715C16.789 4.13 25.77 3.83 29.699 4.337c-.91-.78-1.894-1.473-2.948-2.061-5.071.24-12.398 2.611-16.065 13.335-1.797-.578-3.319-1.35-4.534-2.312.051-.075.098-.155.128-.246C9.604 2.972 18.478.735 21.108.286 20.097.11 19.062 0 18 0c-1.037 0-2.046.107-3.035.275C11.227 2.109 6.884 5.52 4.609 11.794 3.499 10.42 3.071 9.078 2.91 8.206c-.501.771-.943 1.583-1.323 2.43.425.984 1.077 2.074 2.096 3.137 3.168 3.307 8.495 5.01 15.807 5.088.641 2.235.969 4.287 1.064 6.152-11.714.419-17.645-4.414-20.49-8.277C.035 17.155 0 17.573 0 18c0 .589.033 1.171.088 1.746 3.422 3.627 9.303 7.297 19.114 7.297.445 0 .907-.016 1.368-.032-.07 1.93-.382 3.629-.817 5.094-9.528-.256-14.941-3.361-17.932-6.255.931 1.915 2.182 3.641 3.698 5.102 3.275 1.666 7.681 2.906 13.566 3.029-.316.757-.654 1.429-.99 2.014.8-.004 1.583-.076 2.356-.181 1.828-3.749 3.305-9.756.842-17.938l-.197-.613c.91-2.363 2.181-4.011 3.592-5.144 4.465 9.084 2.105 17.699-.101 22.62.94-.37 1.837-.82 2.692-1.336 2.027-5.501 3.435-13.744-.906-22.383 1.404-.729 2.848-1.075 4.144-1.213.008.014.008.031.017.045 4.295 6.693 2.406 15.067-.073 21.119 1.599-1.536 2.906-3.364 3.853-5.399 1.399-6.064.893-11.461-1.516-15.822.486.027.91.073 1.248.122-.369-.726-.777-1.428-1.237-2.093z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="18" cy="18" r="18" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M32.809 7.779c-2.156-.087-5.324.186-8.21 1.966-.009.005-.019.004-.028.009-.02.011-.031.03-.05.042-2.148 1.348-4.131 3.539-5.411 7.054-2.395-.049-4.569-.286-6.488-.715C16.789 4.13 25.77 3.83 29.699 4.337c-.91-.78-1.894-1.473-2.948-2.061-5.071.24-12.398 2.611-16.065 13.335-1.797-.578-3.319-1.35-4.534-2.312.051-.075.098-.155.128-.246C9.604 2.972 18.478.735 21.108.286 20.097.11 19.062 0 18 0c-1.037 0-2.046.107-3.035.275C11.227 2.109 6.884 5.52 4.609 11.794 3.499 10.42 3.071 9.078 2.91 8.206c-.501.771-.943 1.583-1.323 2.43.425.984 1.077 2.074 2.096 3.137 3.168 3.307 8.495 5.01 15.807 5.088.641 2.235.969 4.287 1.064 6.152-11.714.419-17.645-4.414-20.49-8.277C.035 17.155 0 17.573 0 18c0 .589.033 1.171.088 1.746 3.422 3.627 9.303 7.297 19.114 7.297.445 0 .907-.016 1.368-.032-.07 1.93-.382 3.629-.817 5.094-9.528-.256-14.941-3.361-17.932-6.255.931 1.915 2.182 3.641 3.698 5.102 3.275 1.666 7.681 2.906 13.566 3.029-.316.757-.654 1.429-.99 2.014.8-.004 1.583-.076 2.356-.181 1.828-3.749 3.305-9.756.842-17.938l-.197-.613c.91-2.363 2.181-4.011 3.592-5.144 4.465 9.084 2.105 17.699-.101 22.62.94-.37 1.837-.82 2.692-1.336 2.027-5.501 3.435-13.744-.906-22.383 1.404-.729 2.848-1.075 4.144-1.213.008.014.008.031.017.045 4.295 6.693 2.406 15.067-.073 21.119 1.599-1.536 2.906-3.364 3.853-5.399 1.399-6.064.893-11.461-1.516-15.822.486.027.91.073 1.248.122-.369-.726-.777-1.428-1.237-2.093z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <circle fill="#E6E7E8" cx="18" cy="18" r="18"/>
   <path fill="#99AAB5" d="M32.809 7.779c-2.156-.087-5.324.186-8.21 1.966-.009.005-.019.004-.028.009-.02.011-.031.03-.05.042-2.148 1.348-4.131 3.539-5.411 7.054-2.395-.049-4.569-.286-6.488-.715C16.789 4.13 25.77 3.83 29.699 4.337c-.91-.78-1.894-1.473-2.948-2.061-5.071.24-12.398 2.611-16.065 13.335-1.797-.578-3.319-1.35-4.534-2.312.051-.075.098-.155.128-.246C9.604 2.972 18.478.735 21.108.286 20.097.11 19.062 0 18 0c-1.037 0-2.046.107-3.035.275C11.227 2.109 6.884 5.52 4.609 11.794 3.499 10.42 3.071 9.078 2.91 8.206c-.501.771-.943 1.583-1.323 2.43.425.984 1.077 2.074 2.096 3.137 3.168 3.307 8.495 5.01 15.807 5.088.641 2.235.969 4.287 1.064 6.152-11.714.419-17.645-4.414-20.49-8.277C.035 17.155 0 17.573 0 18c0 .589.033 1.171.088 1.746 3.422 3.627 9.303 7.297 19.114 7.297.445 0 .907-.016 1.368-.032-.07 1.93-.382 3.629-.817 5.094-9.528-.256-14.941-3.361-17.932-6.255.931 1.915 2.182 3.641 3.698 5.102 3.275 1.666 7.681 2.906 13.566 3.029-.316.757-.654 1.429-.99 2.014.8-.004 1.583-.076 2.356-.181 1.828-3.749 3.305-9.756.842-17.938l-.197-.613c.91-2.363 2.181-4.011 3.592-5.144 4.465 9.084 2.105 17.699-.101 22.62.94-.37 1.837-.82 2.692-1.336 2.027-5.501 3.435-13.744-.906-22.383 1.404-.729 2.848-1.075 4.144-1.213.008.014.008.031.017.045 4.295 6.693 2.406 15.067-.073 21.119 1.599-1.536 2.906-3.364 3.853-5.399 1.399-6.064.893-11.461-1.516-15.822.486.027.91.073 1.248.122-.369-.726-.777-1.428-1.237-2.093z"/>
diff --git a/public/emoji/1f3f3_border.svg b/public/emoji/1f3f3_border.svg
index e7d03583b..e059cd378 100644
--- a/public/emoji/1f3f3_border.svg
+++ b/public/emoji/1f3f3_border.svg
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M5 36c-1.104 0-2-.896-2-2V3c0-1.104.896-2 2-2s2 .896 2 2v31c0 1.104-.896 2-2 2z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M5 1c-1.105 0-2 .895-2 2v31c0 .276.224.5.5.5s.5-.224.5-.5V4.414C4 3.633 4.633 3 5.414 3H7c0-1.105-.895-2-2-2z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M5 36c-1.104 0-2-.896-2-2V3c0-1.104.896-2 2-2s2 .896 2 2v31c0 1.104-.896 2-2 2z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M5 1c-1.105 0-2 .895-2 2v31c0 .276.224.5.5.5s.5-.224.5-.5V4.414C4 3.633 4.633 3 5.414 3H7c0-1.105-.895-2-2-2z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M32.415 3.09c-1.752-.799-3.615-1.187-5.698-1.187-2.518 0-5.02.57-7.438 1.122-2.418.551-4.702 1.072-6.995 1.072-1.79 0-3.382-.329-4.868-1.006-.309-.142-.67-.115-.956.068C6.173 3.343 6 3.66 6 4v19c0 .392.229.747.585.91 1.752.799 3.616 1.187 5.698 1.187 2.518 0 5.02-.57 7.438-1.122 2.418-.551 4.702-1.071 6.995-1.071 1.79 0 3.383.329 4.868 1.007.311.14.67.115.956-.069.287-.185.46-.502.46-.842V4c0-.392-.229-.748-.585-.91z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M5 36c-1.104 0-2-.896-2-2V3c0-1.104.896-2 2-2s2 .896 2 2v31c0 1.104-.896 2-2 2z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M5 1c-1.105 0-2 .895-2 2v31c0 .276.224.5.5.5s.5-.224.5-.5V4.414C4 3.633 4.633 3 5.414 3H7c0-1.105-.895-2-2-2z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M5 36c-1.104 0-2-.896-2-2V3c0-1.104.896-2 2-2s2 .896 2 2v31c0 1.104-.896 2-2 2z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M5 1c-1.105 0-2 .895-2 2v31c0 .276.224.5.5.5s.5-.224.5-.5V4.414C4 3.633 4.633 3 5.414 3H7c0-1.105-.895-2-2-2z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M32.415 3.09c-1.752-.799-3.615-1.187-5.698-1.187-2.518 0-5.02.57-7.438 1.122-2.418.551-4.702 1.072-6.995 1.072-1.79 0-3.382-.329-4.868-1.006-.309-.142-.67-.115-.956.068C6.173 3.343 6 3.66 6 4v19c0 .392.229.747.585.91 1.752.799 3.616 1.187 5.698 1.187 2.518 0 5.02-.57 7.438-1.122 2.418-.551 4.702-1.071 6.995-1.071 1.79 0 3.383.329 4.868 1.007.311.14.67.115.956-.069.287-.185.46-.502.46-.842V4c0-.392-.229-.748-.585-.91z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#8899A6" d="M5 36c-1.104 0-2-.896-2-2V3c0-1.104.896-2 2-2s2 .896 2 2v31c0 1.104-.896 2-2 2z"/>
   <path fill="#AAB8C2" d="M5 1c-1.105 0-2 .895-2 2v31c0 .276.224.5.5.5s.5-.224.5-.5V4.414C4 3.633 4.633 3 5.414 3H7c0-1.105-.895-2-2-2z"/>
diff --git a/public/emoji/1f40f_border.svg b/public/emoji/1f40f_border.svg
index fb4bbcfb3..72526503f 100644
--- a/public/emoji/1f40f_border.svg
+++ b/public/emoji/1f40f_border.svg
@@ -1,15 +1,15 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M25 35c-2.75 0-2-6-2-6 0-1.104 2.646-2 3.75-2S30 26.896 30 28c0 0-2.25 7-5 7z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M28 36c-2.75 0-2-6-2-6 0-1.104 2.646-2 3.75-2S33 27.896 33 29c0 0-2.25 7-5 7z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M14 35c-2.75 0-4-6-4-6 0-1.104 2.646-2 3.75-2S17 26.896 17 28c0 0-.25 7-3 7z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M17 36c-2.75 0-4-6-4-6 0-1.104 2.646-2 3.75-2S20 27.896 20 29c0 0-.25 7-3 7z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M35.75 21.384c0 7.782-4.495 11.408-14.519 11.408-10.023 0-13.481-3.626-13.481-11.408 0-7.783 3.458-11.407 13.481-11.407 10.024 0 14.519 3.624 14.519 11.407z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M17 17.667C17 27 12.345 29 8.042 29 3.738 29 1 22.36 1 17.667 1 12.973 3.738 12 8.042 12c4.303 0 8.958.973 8.958 5.667z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="4.5" cy="20.5" r="1.5" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M15.75 12.75C14 16 13.622 15.356 8.622 17.356 5.545 18.587 0 18.25 0 13.5 0 11.567 3.687 11 7 11c3.314 0 10.409-1.332 8.75 1.75z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M16 13.696c3.353 2.427 5.43 6.139 3.724 11.089-1.367 3.967-6.816 3.115-9.616 1.127-2.799-1.988-2.643-4.792-1.733-6.291.909-1.497 4.158-1.229 6.024.097.934.663.287 1.559-.721 1.068-2.292-1.118-3.037 1.443-1.246 2.882 1.266 1.016 3.275 1.049 3.655-1.01.671-3.63-3.505-6.274-7.465-5.302C11 16 13.161 11.641 16 13.696z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M25 35c-2.75 0-2-6-2-6 0-1.104 2.646-2 3.75-2S30 26.896 30 28c0 0-2.25 7-5 7z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M28 36c-2.75 0-2-6-2-6 0-1.104 2.646-2 3.75-2S33 27.896 33 29c0 0-2.25 7-5 7z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M14 35c-2.75 0-4-6-4-6 0-1.104 2.646-2 3.75-2S17 26.896 17 28c0 0-.25 7-3 7z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M17 36c-2.75 0-4-6-4-6 0-1.104 2.646-2 3.75-2S20 27.896 20 29c0 0-.25 7-3 7z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M35.75 21.384c0 7.782-4.495 11.408-14.519 11.408-10.023 0-13.481-3.626-13.481-11.408 0-7.783 3.458-11.407 13.481-11.407 10.024 0 14.519 3.624 14.519 11.407z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M17 17.667C17 27 12.345 29 8.042 29 3.738 29 1 22.36 1 17.667 1 12.973 3.738 12 8.042 12c4.303 0 8.958.973 8.958 5.667z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="4.5" cy="20.5" r="1.5" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M15.75 12.75C14 16 13.622 15.356 8.622 17.356 5.545 18.587 0 18.25 0 13.5 0 11.567 3.687 11 7 11c3.314 0 10.409-1.332 8.75 1.75z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M16 13.696c3.353 2.427 5.43 6.139 3.724 11.089-1.367 3.967-6.816 3.115-9.616 1.127-2.799-1.988-2.643-4.792-1.733-6.291.909-1.497 4.158-1.229 6.024.097.934.663.287 1.559-.721 1.068-2.292-1.118-3.037 1.443-1.246 2.882 1.266 1.016 3.275 1.049 3.655-1.01.671-3.63-3.505-6.274-7.465-5.302C11 16 13.161 11.641 16 13.696z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#292F33" d="M25 35c-2.75 0-2-6-2-6 0-1.104 2.646-2 3.75-2S30 26.896 30 28c0 0-2.25 7-5 7z"/>
   <path fill="#66757F" d="M28 36c-2.75 0-2-6-2-6 0-1.104 2.646-2 3.75-2S33 27.896 33 29c0 0-2.25 7-5 7z"/>
diff --git a/public/emoji/1f410_border.svg b/public/emoji/1f410_border.svg
index 7a36382b5..d1463386c 100644
--- a/public/emoji/1f410_border.svg
+++ b/public/emoji/1f410_border.svg
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M7.44 7.503c-1-4 3.687-6 8-4 .907.421.948 1.316 0 1-3-1-6 1-4 4 1.109 1.664-3.233 2.068-4-1z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M6.136 5.785c-1-4 3.687-6 8-4 .907.421.949 1.316 0 1-3-1-6 1-4 4 1.11 1.664-3.233 2.067-4-1z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M5 14.785c0 4-2 4.827-2 4 0-2-1 0-1-1v-3c0-1.657.671-3 1.5-3s1.5 1.343 1.5 3z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M35.159 10.49c-.68-1.643-2.313-2.705-4.159-2.705-.553 0-1 .448-1 1s.447 1 1 1c1.034 0 1.941.577 2.312 1.471.341.824.168 1.758-.455 2.647-.984-1.506-2.602-2.618-4.856-2.618-2.391 0-7.279.714-10.828 1.289-.052-.094-.105-.188-.172-.289-2-3-4-8.157-7-8.157-4 0-10 4.986-10 9.157 0 2.544 5.738 2.929 7.486 2.988.697 1.43 1.414 2.934 2.232 4.33.066.205.155.429.282.683 3 6 3.119 14.5 4.5 14.5s2.5-4.857 2.5-9c0-.151-.004-.299-.007-.447 3.126.649 6.607.322 9.677-.61 1.448 5.045 1.77 10.058 2.83 10.058 1.342 0 2.433-8.818 2.494-13.12C33.316 21.226 34 19.51 34 17.785c0-.605-.086-1.23-.248-1.843 1.614-1.644 2.143-3.676 1.407-5.452z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="7" cy="9.285" r="1" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M7.44 7.503c-1-4 3.687-6 8-4 .907.421.948 1.316 0 1-3-1-6 1-4 4 1.109 1.664-3.233 2.068-4-1z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M6.136 5.785c-1-4 3.687-6 8-4 .907.421.949 1.316 0 1-3-1-6 1-4 4 1.11 1.664-3.233 2.067-4-1z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M5 14.785c0 4-2 4.827-2 4 0-2-1 0-1-1v-3c0-1.657.671-3 1.5-3s1.5 1.343 1.5 3z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M35.159 10.49c-.68-1.643-2.313-2.705-4.159-2.705-.553 0-1 .448-1 1s.447 1 1 1c1.034 0 1.941.577 2.312 1.471.341.824.168 1.758-.455 2.647-.984-1.506-2.602-2.618-4.856-2.618-2.391 0-7.279.714-10.828 1.289-.052-.094-.105-.188-.172-.289-2-3-4-8.157-7-8.157-4 0-10 4.986-10 9.157 0 2.544 5.738 2.929 7.486 2.988.697 1.43 1.414 2.934 2.232 4.33.066.205.155.429.282.683 3 6 3.119 14.5 4.5 14.5s2.5-4.857 2.5-9c0-.151-.004-.299-.007-.447 3.126.649 6.607.322 9.677-.61 1.448 5.045 1.77 10.058 2.83 10.058 1.342 0 2.433-8.818 2.494-13.12C33.316 21.226 34 19.51 34 17.785c0-.605-.086-1.23-.248-1.843 1.614-1.644 2.143-3.676 1.407-5.452z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="7" cy="9.285" r="1" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#FFAC33" d="M7.44 7.503c-1-4 3.687-6 8-4 .907.421.948 1.316 0 1-3-1-6 1-4 4 1.109 1.664-3.233 2.068-4-1z"/>
   <path fill="#FFCC4D" d="M6.136 5.785c-1-4 3.687-6 8-4 .907.421.949 1.316 0 1-3-1-6 1-4 4 1.11 1.664-3.233 2.067-4-1z"/>
diff --git a/public/emoji/1f411_border.svg b/public/emoji/1f411_border.svg
index dc4ddeb08..8455c601e 100644
--- a/public/emoji/1f411_border.svg
+++ b/public/emoji/1f411_border.svg
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M11.983 3.562c4.543-.262 7.824 1.597 8.089 6.826.215 4.19-5.184 6.79-8.046 6.879-2.462.077-1.353-1.852.61-2.334 1.576-.387 4.124-2.413 3.602-4.44-.597-2.32-4.315-2.684-6.351.292-.798 1.167-3.554.873-4.096-.434-.958-2.309 1.211-6.502 6.192-6.789z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M35.75 21.384c0-7.783-4.495-11.407-14.519-11.407-1.087 0-2.083.051-3.018.137-1.36-2.423-4.845-2.828-8.213-2.828-4.304 0-10 6.145-10 10.839 0 4.608 3.606 4.866 7.811 4.874.233 3.245 1.226 5.647 3.249 7.26C11.337 31.409 12.594 36 15 36c1.353 0 2.099-1.695 2.51-3.417 1.128.136 2.359.209 3.722.209 1.733 0 3.288-.116 4.695-.335C26.017 34.114 26.458 36 28 36c2.317 0 4.273-4.956 4.834-6.521 1.969-1.87 2.916-4.545 2.916-8.095z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="4.5" cy="15.786" r="1.5" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M17.562 4.339c4.312 1.455 5.74 4.148 4.034 9.099-1.367 3.967-7.345 4.361-10.034 3.375C9.25 15.964 11 14.589 13 14.875c1.606.23 4.727-.698 5-2.773C18.312 9.727 15 8 12 10c-1.177.785-5.774.43-5.5-.958.638-3.226 6.335-6.298 11.062-4.703z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M11.983 3.562c4.543-.262 7.824 1.597 8.089 6.826.215 4.19-5.184 6.79-8.046 6.879-2.462.077-1.353-1.852.61-2.334 1.576-.387 4.124-2.413 3.602-4.44-.597-2.32-4.315-2.684-6.351.292-.798 1.167-3.554.873-4.096-.434-.958-2.309 1.211-6.502 6.192-6.789z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M35.75 21.384c0-7.783-4.495-11.407-14.519-11.407-1.087 0-2.083.051-3.018.137-1.36-2.423-4.845-2.828-8.213-2.828-4.304 0-10 6.145-10 10.839 0 4.608 3.606 4.866 7.811 4.874.233 3.245 1.226 5.647 3.249 7.26C11.337 31.409 12.594 36 15 36c1.353 0 2.099-1.695 2.51-3.417 1.128.136 2.359.209 3.722.209 1.733 0 3.288-.116 4.695-.335C26.017 34.114 26.458 36 28 36c2.317 0 4.273-4.956 4.834-6.521 1.969-1.87 2.916-4.545 2.916-8.095z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="4.5" cy="15.786" r="1.5" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M17.562 4.339c4.312 1.455 5.74 4.148 4.034 9.099-1.367 3.967-7.345 4.361-10.034 3.375C9.25 15.964 11 14.589 13 14.875c1.606.23 4.727-.698 5-2.773C18.312 9.727 15 8 12 10c-1.177.785-5.774.43-5.5-.958.638-3.226 6.335-6.298 11.062-4.703z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#FFAC33" d="M11.983 3.562c4.543-.262 7.824 1.597 8.089 6.826.215 4.19-5.184 6.79-8.046 6.879-2.462.077-1.353-1.852.61-2.334 1.576-.387 4.124-2.413 3.602-4.44-.597-2.32-4.315-2.684-6.351.292-.798 1.167-3.554.873-4.096-.434-.958-2.309 1.211-6.502 6.192-6.789z"/>
   <path fill="#E1E8ED" d="M35.75 21.384c0-7.783-4.495-11.407-14.519-11.407-1.087 0-2.083.051-3.018.137-1.36-2.423-4.845-2.828-8.213-2.828-4.304 0-10 6.145-10 10.839 0 4.608 3.606 4.866 7.811 4.874.233 3.245 1.226 5.647 3.249 7.26C11.337 31.409 12.594 36 15 36c1.353 0 2.099-1.695 2.51-3.417 1.128.136 2.359.209 3.722.209 1.733 0 3.288-.116 4.695-.335C26.017 34.114 26.458 36 28 36c2.317 0 4.273-4.956 4.834-6.521 1.969-1.87 2.916-4.545 2.916-8.095z"/>
diff --git a/public/emoji/1f413_border.svg b/public/emoji/1f413_border.svg
index 3391490df..bc9c69bba 100644
--- a/public/emoji/1f413_border.svg
+++ b/public/emoji/1f413_border.svg
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M24.88 33.097c-.098-.18-.25-.302-.418-.391C22.865 31 24 28.999 24 28.999c0-.553 1-2 0-2l-1 1c-1 1-1 4-1 4h-2c-.553 0-1 .447-1 1 0 .553.447 1 1 1h1.107l-.222.12c-.486.263-.667.869-.404 1.355s.869.667 1.356.404l2.639-1.427c.486-.262.667-.868.404-1.354zm-7 0c-.097-.18-.25-.302-.417-.391C15.866 31 17 28.999 17 28.999c0-.553 1-2 0-2l-1 1c-1 1-1 4-1 4h-2c-.553 0-1 .447-1 1 0 .553.447 1 1 1h1.108l-.222.12c-.486.263-.667.869-.404 1.355s.869.667 1.356.404l2.639-1.427c.485-.262.666-.868.403-1.354zM7.516 10c0 1.104-1.119 2-2.5 2s-3.5-1-3.5-2 2.119-2 3.5-2c1.38 0 2.5.896 2.5 2z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M13.516 2c-2-1-3 1-3 1s0-3-3-3-3 3-3 3-3-.938-3 2c0 1.482 1.101 2.411 2.484 2.387V12c0 1 .263 3-.737 4s-2.484 4 .516 4 3-4 3-7c1 1 4 1 4-4 0-.867-.213-1.512-.55-2h1.287c4 0 4-4 2-5z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M32.516 9c4 10 0 22-13 22-7.732 0-13-6-14-11-1.177-5.883-1-8-1-12 0-2.738 2.118-4.824 5-4 7 2 5 10 12 10 10 0 8.23-11.923 11-5z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="7.516" cy="8" r="1" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M24.88 33.097c-.098-.18-.25-.302-.418-.391C22.865 31 24 28.999 24 28.999c0-.553 1-2 0-2l-1 1c-1 1-1 4-1 4h-2c-.553 0-1 .447-1 1 0 .553.447 1 1 1h1.107l-.222.12c-.486.263-.667.869-.404 1.355s.869.667 1.356.404l2.639-1.427c.486-.262.667-.868.404-1.354zm-7 0c-.097-.18-.25-.302-.417-.391C15.866 31 17 28.999 17 28.999c0-.553 1-2 0-2l-1 1c-1 1-1 4-1 4h-2c-.553 0-1 .447-1 1 0 .553.447 1 1 1h1.108l-.222.12c-.486.263-.667.869-.404 1.355s.869.667 1.356.404l2.639-1.427c.485-.262.666-.868.403-1.354zM7.516 10c0 1.104-1.119 2-2.5 2s-3.5-1-3.5-2 2.119-2 3.5-2c1.38 0 2.5.896 2.5 2z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M13.516 2c-2-1-3 1-3 1s0-3-3-3-3 3-3 3-3-.938-3 2c0 1.482 1.101 2.411 2.484 2.387V12c0 1 .263 3-.737 4s-2.484 4 .516 4 3-4 3-7c1 1 4 1 4-4 0-.867-.213-1.512-.55-2h1.287c4 0 4-4 2-5z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M32.516 9c4 10 0 22-13 22-7.732 0-13-6-14-11-1.177-5.883-1-8-1-12 0-2.738 2.118-4.824 5-4 7 2 5 10 12 10 10 0 8.23-11.923 11-5z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="7.516" cy="8" r="1" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#FFAC33" d="M24.88 33.097c-.098-.18-.25-.302-.418-.391C22.865 31 24 28.999 24 28.999c0-.553 1-2 0-2l-1 1c-1 1-1 4-1 4h-2c-.553 0-1 .447-1 1 0 .553.447 1 1 1h1.107l-.222.12c-.486.263-.667.869-.404 1.355s.869.667 1.356.404l2.639-1.427c.486-.262.667-.868.404-1.354zm-7 0c-.097-.18-.25-.302-.417-.391C15.866 31 17 28.999 17 28.999c0-.553 1-2 0-2l-1 1c-1 1-1 4-1 4h-2c-.553 0-1 .447-1 1 0 .553.447 1 1 1h1.108l-.222.12c-.486.263-.667.869-.404 1.355s.869.667 1.356.404l2.639-1.427c.485-.262.666-.868.403-1.354zM7.516 10c0 1.104-1.119 2-2.5 2s-3.5-1-3.5-2 2.119-2 3.5-2c1.38 0 2.5.896 2.5 2z"/>
   <path fill="#DD2E44" d="M13.516 2c-2-1-3 1-3 1s0-3-3-3-3 3-3 3-3-.938-3 2c0 1.482 1.101 2.411 2.484 2.387V12c0 1 .263 3-.737 4s-2.484 4 .516 4 3-4 3-7c1 1 4 1 4-4 0-.867-.213-1.512-.55-2h1.287c4 0 4-4 2-5z"/>
diff --git a/public/emoji/1f414_border.svg b/public/emoji/1f414_border.svg
index ad54bd1b8..92d271691 100644
--- a/public/emoji/1f414_border.svg
+++ b/public/emoji/1f414_border.svg
@@ -1,13 +1,13 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M20.143 32.215c0 1.183-.959 2.143-2.143 2.143s-2.143-.96-2.143-2.143c0-1.184.96-2.144 2.143-2.144s2.143.96 2.143 2.144z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M27.643 15.643C27.643 10.317 23.324 6 18 6c-5.326 0-9.643 4.317-9.643 9.643 0 5.357-1.071 16.572-1.071 16.572 0 1.183.959 2.143 2.143 2.143 1.183 0 2.143-.96 2.143-2.143 0 1.183.96 2.143 2.143 2.143 1.183 0 2.142-.96 2.142-2.143h4.286c0 1.183.96 2.143 2.144 2.143 1.183 0 2.143-.96 2.143-2.143 0 1.183.959 2.143 2.143 2.143 1.184 0 2.143-.96 2.143-2.143-.002 0-1.073-11.215-1.073-16.572z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M20 3c0 2.209-1.447 6-2 6-.552 0-2-3.791-2-6s1.448-3 2-3c.553 0 2 .791 2 3zm-4.365 30c0-2.612 1.711-8 2.365-8 .653 0 2.365 5.388 2.365 8S18.652 36 18 36c-.654 0-2.365-.388-2.365-3z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <ellipse cx="18" cy="22.5" rx="7" ry="4.5" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M25 22.5c0 1.5-14 1.5-14 0s4.791-4.5 7-4.5 7 3 7 4.5z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="11.5" cy="18.5" r="1.5" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="24.5" cy="18.5" r="1.5" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M20.143 32.215c0 1.183-.959 2.143-2.143 2.143s-2.143-.96-2.143-2.143c0-1.184.96-2.144 2.143-2.144s2.143.96 2.143 2.144z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M27.643 15.643C27.643 10.317 23.324 6 18 6c-5.326 0-9.643 4.317-9.643 9.643 0 5.357-1.071 16.572-1.071 16.572 0 1.183.959 2.143 2.143 2.143 1.183 0 2.143-.96 2.143-2.143 0 1.183.96 2.143 2.143 2.143 1.183 0 2.142-.96 2.142-2.143h4.286c0 1.183.96 2.143 2.144 2.143 1.183 0 2.143-.96 2.143-2.143 0 1.183.959 2.143 2.143 2.143 1.184 0 2.143-.96 2.143-2.143-.002 0-1.073-11.215-1.073-16.572z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M20 3c0 2.209-1.447 6-2 6-.552 0-2-3.791-2-6s1.448-3 2-3c.553 0 2 .791 2 3zm-4.365 30c0-2.612 1.711-8 2.365-8 .653 0 2.365 5.388 2.365 8S18.652 36 18 36c-.654 0-2.365-.388-2.365-3z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <ellipse cx="18" cy="22.5" rx="7" ry="4.5" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M25 22.5c0 1.5-14 1.5-14 0s4.791-4.5 7-4.5 7 3 7 4.5z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="11.5" cy="18.5" r="1.5" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="24.5" cy="18.5" r="1.5" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#E1E8ED" d="M20.143 32.215c0 1.183-.959 2.143-2.143 2.143s-2.143-.96-2.143-2.143c0-1.184.96-2.144 2.143-2.144s2.143.96 2.143 2.144z"/>
   <path fill="#E1E8ED" d="M27.643 15.643C27.643 10.317 23.324 6 18 6c-5.326 0-9.643 4.317-9.643 9.643 0 5.357-1.071 16.572-1.071 16.572 0 1.183.959 2.143 2.143 2.143 1.183 0 2.143-.96 2.143-2.143 0 1.183.96 2.143 2.143 2.143 1.183 0 2.142-.96 2.142-2.143h4.286c0 1.183.96 2.143 2.144 2.143 1.183 0 2.143-.96 2.143-2.143 0 1.183.959 2.143 2.143 2.143 1.184 0 2.143-.96 2.143-2.143-.002 0-1.073-11.215-1.073-16.572z"/>
diff --git a/public/emoji/1f440_border.svg b/public/emoji/1f440_border.svg
index f25c3ca40..2166dce75 100644
--- a/public/emoji/1f440_border.svg
+++ b/public/emoji/1f440_border.svg
@@ -1,16 +1,16 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <ellipse cx="8.828" cy="18" rx="7.953" ry="13.281" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M8.828 32.031C3.948 32.031.125 25.868.125 18S3.948 3.969 8.828 3.969 17.531 10.132 17.531 18s-3.823 14.031-8.703 14.031zm0-26.562C4.856 5.469 1.625 11.09 1.625 18s3.231 12.531 7.203 12.531S16.031 24.91 16.031 18 12.8 5.469 8.828 5.469z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="6.594" cy="18" r="4.96" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="6.594" cy="18" r="3.565" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="7.911" cy="15.443" r="1.426" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <ellipse cx="27.234" cy="18" rx="7.953" ry="13.281" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M27.234 32.031c-4.88 0-8.703-6.163-8.703-14.031s3.823-14.031 8.703-14.031S35.938 10.132 35.938 18s-3.824 14.031-8.704 14.031zm0-26.562c-3.972 0-7.203 5.622-7.203 12.531 0 6.91 3.231 12.531 7.203 12.531S34.438 24.91 34.438 18 31.206 5.469 27.234 5.469z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="25" cy="18" r="4.96" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="25" cy="18" r="3.565" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="26.317" cy="15.443" r="1.426" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <ellipse cx="8.828" cy="18" rx="7.953" ry="13.281" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M8.828 32.031C3.948 32.031.125 25.868.125 18S3.948 3.969 8.828 3.969 17.531 10.132 17.531 18s-3.823 14.031-8.703 14.031zm0-26.562C4.856 5.469 1.625 11.09 1.625 18s3.231 12.531 7.203 12.531S16.031 24.91 16.031 18 12.8 5.469 8.828 5.469z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="6.594" cy="18" r="4.96" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="6.594" cy="18" r="3.565" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="7.911" cy="15.443" r="1.426" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <ellipse cx="27.234" cy="18" rx="7.953" ry="13.281" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M27.234 32.031c-4.88 0-8.703-6.163-8.703-14.031s3.823-14.031 8.703-14.031S35.938 10.132 35.938 18s-3.824 14.031-8.704 14.031zm0-26.562c-3.972 0-7.203 5.622-7.203 12.531 0 6.91 3.231 12.531 7.203 12.531S34.438 24.91 34.438 18 31.206 5.469 27.234 5.469z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="25" cy="18" r="4.96" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="25" cy="18" r="3.565" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="26.317" cy="15.443" r="1.426" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <ellipse fill="#F5F8FA" cx="8.828" cy="18" rx="7.953" ry="13.281"/>
   <path fill="#E1E8ED" d="M8.828 32.031C3.948 32.031.125 25.868.125 18S3.948 3.969 8.828 3.969 17.531 10.132 17.531 18s-3.823 14.031-8.703 14.031zm0-26.562C4.856 5.469 1.625 11.09 1.625 18s3.231 12.531 7.203 12.531S16.031 24.91 16.031 18 12.8 5.469 8.828 5.469z"/>
diff --git a/public/emoji/1f47b_border.svg b/public/emoji/1f47b_border.svg
index 80ac01215..e317fd9f6 100644
--- a/public/emoji/1f47b_border.svg
+++ b/public/emoji/1f47b_border.svg
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M36 11c0-1.104-.896-2-2-2s-2 .896-2 2c0 0-.011 3.285-3 3.894V12c0-6.075-4.925-11-11-11S7 5.925 7 12v3.237C1.778 16.806 0 23.231 0 27c0 1.104.896 2 2 2s2-.896 2-2c0 0 .002-3.54 3.336-3.958C7.838 27.883 8.954 33 11 33h1c4 0 3 2 7 2s3-2 6-2 2.395 2 6 2c1.657 0 3-1.343 3-3 0-.675-2.274-4.994-3.755-9.268C35.981 21.348 36 14.58 36 11z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="13" cy="12" r="2" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="23" cy="12" r="4" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="23" cy="13" r="2" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M22.192 19.491c2.65 1.987 3.591 5.211 2.1 7.199-1.491 1.988-4.849 1.988-7.5 0-2.65-1.987-3.591-5.211-2.1-7.199 1.492-1.989 4.849-1.988 7.5 0z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M36 11c0-1.104-.896-2-2-2s-2 .896-2 2c0 0-.011 3.285-3 3.894V12c0-6.075-4.925-11-11-11S7 5.925 7 12v3.237C1.778 16.806 0 23.231 0 27c0 1.104.896 2 2 2s2-.896 2-2c0 0 .002-3.54 3.336-3.958C7.838 27.883 8.954 33 11 33h1c4 0 3 2 7 2s3-2 6-2 2.395 2 6 2c1.657 0 3-1.343 3-3 0-.675-2.274-4.994-3.755-9.268C35.981 21.348 36 14.58 36 11z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="13" cy="12" r="2" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="23" cy="12" r="4" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="23" cy="13" r="2" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M22.192 19.491c2.65 1.987 3.591 5.211 2.1 7.199-1.491 1.988-4.849 1.988-7.5 0-2.65-1.987-3.591-5.211-2.1-7.199 1.492-1.989 4.849-1.988 7.5 0z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#E1E8ED" d="M36 11c0-1.104-.896-2-2-2s-2 .896-2 2c0 0-.011 3.285-3 3.894V12c0-6.075-4.925-11-11-11S7 5.925 7 12v3.237C1.778 16.806 0 23.231 0 27c0 1.104.896 2 2 2s2-.896 2-2c0 0 .002-3.54 3.336-3.958C7.838 27.883 8.954 33 11 33h1c4 0 3 2 7 2s3-2 6-2 2.395 2 6 2c1.657 0 3-1.343 3-3 0-.675-2.274-4.994-3.755-9.268C35.981 21.348 36 14.58 36 11z"/>
   <circle fill="#292F33" cx="13" cy="12" r="2"/>
diff --git a/public/emoji/1f47d_border.svg b/public/emoji/1f47d_border.svg
index e1d4a54d7..4f346ea69 100644
--- a/public/emoji/1f47d_border.svg
+++ b/public/emoji/1f47d_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M35 17c0 9.389-13.223 19-17 19-3.778 0-17-9.611-17-19S8.611 0 18 0s17 7.611 17 17z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M13.503 14.845c3.124 3.124 4.39 6.923 2.828 8.485-1.562 1.562-5.361.297-8.485-2.828-3.125-3.124-4.391-6.923-2.828-8.485s5.361-.296 8.485 2.828zm8.994 0c-3.124 3.124-4.39 6.923-2.828 8.485 1.562 1.562 5.361.297 8.485-2.828 3.125-3.125 4.391-6.923 2.828-8.485-1.562-1.562-5.361-.297-8.485 2.828zM18 31c-2.347 0-3.575-1.16-3.707-1.293-.391-.391-.391-1.023 0-1.414.387-.387 1.013-.391 1.404-.01.051.047.806.717 2.303.717 1.519 0 2.273-.689 2.305-.719.398-.374 1.027-.363 1.408.029.379.393.38 1.011-.006 1.396C21.575 29.84 20.347 31 18 31z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M35 17c0 9.389-13.223 19-17 19-3.778 0-17-9.611-17-19S8.611 0 18 0s17 7.611 17 17z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M13.503 14.845c3.124 3.124 4.39 6.923 2.828 8.485-1.562 1.562-5.361.297-8.485-2.828-3.125-3.124-4.391-6.923-2.828-8.485s5.361-.296 8.485 2.828zm8.994 0c-3.124 3.124-4.39 6.923-2.828 8.485 1.562 1.562 5.361.297 8.485-2.828 3.125-3.125 4.391-6.923 2.828-8.485-1.562-1.562-5.361-.297-8.485 2.828zM18 31c-2.347 0-3.575-1.16-3.707-1.293-.391-.391-.391-1.023 0-1.414.387-.387 1.013-.391 1.404-.01.051.047.806.717 2.303.717 1.519 0 2.273-.689 2.305-.719.398-.374 1.027-.363 1.408.029.379.393.38 1.011-.006 1.396C21.575 29.84 20.347 31 18 31z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#CCD6DD" d="M35 17c0 9.389-13.223 19-17 19-3.778 0-17-9.611-17-19S8.611 0 18 0s17 7.611 17 17z"/>
   <path fill="#292F33" d="M13.503 14.845c3.124 3.124 4.39 6.923 2.828 8.485-1.562 1.562-5.361.297-8.485-2.828-3.125-3.124-4.391-6.923-2.828-8.485s5.361-.296 8.485 2.828zm8.994 0c-3.124 3.124-4.39 6.923-2.828 8.485 1.562 1.562 5.361.297 8.485-2.828 3.125-3.125 4.391-6.923 2.828-8.485-1.562-1.562-5.361-.297-8.485 2.828zM18 31c-2.347 0-3.575-1.16-3.707-1.293-.391-.391-.391-1.023 0-1.414.387-.387 1.013-.391 1.404-.01.051.047.806.717 2.303.717 1.519 0 2.273-.689 2.305-.719.398-.374 1.027-.363 1.408.029.379.393.38 1.011-.006 1.396C21.575 29.84 20.347 31 18 31z"/>
diff --git a/public/emoji/1f480_border.svg b/public/emoji/1f480_border.svg
index 8546f7b00..6fa209458 100644
--- a/public/emoji/1f480_border.svg
+++ b/public/emoji/1f480_border.svg
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M34 16C34 6 26.837 0 18 0 9.164 0 2 6 2 16c0 5.574.002 10.388 6 12.64V33c0 1.657 1.343 3 3 3s3-1.343 3-3v-3.155c.324.027.659.05 1 .07V33c0 1.657 1.343 3 3 3s3-1.343 3-3v-3.085c.342-.021.676-.043 1-.07V33c0 1.657 1.344 3 3 3 1.657 0 3-1.343 3-3v-4.36c5.998-2.252 6-7.066 6-12.64z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="11" cy="14" r="5" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="25" cy="14" r="5" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M19.903 23.062C19.651 22.449 18.9 22 18 22s-1.652.449-1.903 1.062c-.632.176-1.097.75-1.097 1.438 0 .828.671 1.5 1.5 1.5.655 0 1.206-.422 1.41-1.007.03.001.059.007.09.007s.06-.006.09-.007c.205.585.756 1.007 1.41 1.007.828 0 1.5-.672 1.5-1.5 0-.688-.466-1.261-1.097-1.438z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M34 16C34 6 26.837 0 18 0 9.164 0 2 6 2 16c0 5.574.002 10.388 6 12.64V33c0 1.657 1.343 3 3 3s3-1.343 3-3v-3.155c.324.027.659.05 1 .07V33c0 1.657 1.343 3 3 3s3-1.343 3-3v-3.085c.342-.021.676-.043 1-.07V33c0 1.657 1.344 3 3 3 1.657 0 3-1.343 3-3v-4.36c5.998-2.252 6-7.066 6-12.64z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="11" cy="14" r="5" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="25" cy="14" r="5" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M19.903 23.062C19.651 22.449 18.9 22 18 22s-1.652.449-1.903 1.062c-.632.176-1.097.75-1.097 1.438 0 .828.671 1.5 1.5 1.5.655 0 1.206-.422 1.41-1.007.03.001.059.007.09.007s.06-.006.09-.007c.205.585.756 1.007 1.41 1.007.828 0 1.5-.672 1.5-1.5 0-.688-.466-1.261-1.097-1.438z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#CCD6DD" d="M34 16C34 6 26.837 0 18 0 9.164 0 2 6 2 16c0 5.574.002 10.388 6 12.64V33c0 1.657 1.343 3 3 3s3-1.343 3-3v-3.155c.324.027.659.05 1 .07V33c0 1.657 1.343 3 3 3s3-1.343 3-3v-3.085c.342-.021.676-.043 1-.07V33c0 1.657 1.344 3 3 3 1.657 0 3-1.343 3-3v-4.36c5.998-2.252 6-7.066 6-12.64z"/>
   <circle fill="#292F33" cx="11" cy="14" r="5"/>
diff --git a/public/emoji/1f4a8_border.svg b/public/emoji/1f4a8_border.svg
index c20a5cb3b..412c2f8a7 100644
--- a/public/emoji/1f4a8_border.svg
+++ b/public/emoji/1f4a8_border.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M36 15c0-4.155-3.169-7.568-7.221-7.96C27.884 3.013 24.297 0 20 0c-4.971 0-9 3.56-9 8.531 0 1.156.25 2.906 1.121 3.785C8.859 12.5 4.094 12.6 0 12.015c0 0 4.816 3.831 15.357 3.985-.151.313-.254 1.43-.306 1.786-.249.003-.595.009-1.051.009C6 17.795 0 17 0 17s3 3.234 15.406 4.106C15 21.234 15 23 15 23c-8 0-15-1-15-1 3.362 2.802 6.724 4.033 9.03 4.574-.011.142-.03.281-.03.426 0 3.313 2.686 5 6 5 .487 0 .958-.064 1.412-.174C18.009 34.333 20.807 36 24 36c4.971 0 9-4.029 9-9 0-1.788-.527-3.449-1.427-4.851C34.195 20.837 36 18.132 36 15z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M36 15c0-4.155-3.169-7.568-7.221-7.96C27.884 3.013 24.297 0 20 0c-4.971 0-9 3.56-9 8.531 0 1.156.25 2.906 1.121 3.785C8.859 12.5 4.094 12.6 0 12.015c0 0 4.816 3.831 15.357 3.985-.151.313-.254 1.43-.306 1.786-.249.003-.595.009-1.051.009C6 17.795 0 17 0 17s3 3.234 15.406 4.106C15 21.234 15 23 15 23c-8 0-15-1-15-1 3.362 2.802 6.724 4.033 9.03 4.574-.011.142-.03.281-.03.426 0 3.313 2.686 5 6 5 .487 0 .958-.064 1.412-.174C18.009 34.333 20.807 36 24 36c4.971 0 9-4.029 9-9 0-1.788-.527-3.449-1.427-4.851C34.195 20.837 36 18.132 36 15z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#BDDDF4" d="M36 15c0-4.155-3.169-7.568-7.221-7.96C27.884 3.013 24.297 0 20 0c-4.971 0-9 3.56-9 8.531 0 1.156.25 2.906 1.121 3.785C8.859 12.5 4.094 12.6 0 12.015c0 0 4.816 3.831 15.357 3.985-.151.313-.254 1.43-.306 1.786-.249.003-.595.009-1.051.009C6 17.795 0 17 0 17s3 3.234 15.406 4.106C15 21.234 15 23 15 23c-8 0-15-1-15-1 3.362 2.802 6.724 4.033 9.03 4.574-.011.142-.03.281-.03.426 0 3.313 2.686 5 6 5 .487 0 .958-.064 1.412-.174C18.009 34.333 20.807 36 24 36c4.971 0 9-4.029 9-9 0-1.788-.527-3.449-1.427-4.851C34.195 20.837 36 18.132 36 15z"/>
 </svg>
diff --git a/public/emoji/1f4ac_border.svg b/public/emoji/1f4ac_border.svg
index 3d71232f9..76f6c0b26 100644
--- a/public/emoji/1f4ac_border.svg
+++ b/public/emoji/1f4ac_border.svg
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M18 1C8.059 1 0 7.268 0 15c0 4.368 2.574 8.268 6.604 10.835C6.08 28.144 4.859 31.569 2 35c5.758-.96 9.439-3.761 11.716-6.416 1.376.262 2.805.416 4.284.416 9.941 0 18-6.268 18-14S27.941 1 18 1z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="18" cy="15" r="2" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="26" cy="15" r="2" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="10" cy="15" r="2" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M18 1C8.059 1 0 7.268 0 15c0 4.368 2.574 8.268 6.604 10.835C6.08 28.144 4.859 31.569 2 35c5.758-.96 9.439-3.761 11.716-6.416 1.376.262 2.805.416 4.284.416 9.941 0 18-6.268 18-14S27.941 1 18 1z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="18" cy="15" r="2" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="26" cy="15" r="2" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="10" cy="15" r="2" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#BDDDF4" d="M18 1C8.059 1 0 7.268 0 15c0 4.368 2.574 8.268 6.604 10.835C6.08 28.144 4.859 31.569 2 35c5.758-.96 9.439-3.761 11.716-6.416 1.376.262 2.805.416 4.284.416 9.941 0 18-6.268 18-14S27.941 1 18 1z"/>
   <circle fill="#2A6797" cx="18" cy="15" r="2"/>
diff --git a/public/emoji/1f4ad_border.svg b/public/emoji/1f4ad_border.svg
index c887a7126..6ef337056 100644
--- a/public/emoji/1f4ad_border.svg
+++ b/public/emoji/1f4ad_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M35 12c0-3.866-3.134-7-7-7-1.167 0-2.265.29-3.232.794-2.082-2.827-5.425-4.669-9.205-4.669-5.132 0-9.475 3.38-10.923 8.036C1.982 9.778 0 12.155 0 15c0 2.979 2.174 5.445 5.021 5.913C5.237 24.862 8.498 28 12.5 28c2.176 0 4.13-.933 5.5-2.413C19.37 27.067 21.323 28 23.5 28c4.143 0 7.5-3.357 7.5-7.5 0-.71-.105-1.394-.289-2.045C33.23 17.396 35 14.905 35 12z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="4" cy="31" r="3" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M35 12c0-3.866-3.134-7-7-7-1.167 0-2.265.29-3.232.794-2.082-2.827-5.425-4.669-9.205-4.669-5.132 0-9.475 3.38-10.923 8.036C1.982 9.778 0 12.155 0 15c0 2.979 2.174 5.445 5.021 5.913C5.237 24.862 8.498 28 12.5 28c2.176 0 4.13-.933 5.5-2.413C19.37 27.067 21.323 28 23.5 28c4.143 0 7.5-3.357 7.5-7.5 0-.71-.105-1.394-.289-2.045C33.23 17.396 35 14.905 35 12z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="4" cy="31" r="3" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#BDDDF4" d="M35 12c0-3.866-3.134-7-7-7-1.167 0-2.265.29-3.232.794-2.082-2.827-5.425-4.669-9.205-4.669-5.132 0-9.475 3.38-10.923 8.036C1.982 9.778 0 12.155 0 15c0 2.979 2.174 5.445 5.021 5.913C5.237 24.862 8.498 28 12.5 28c2.176 0 4.13-.933 5.5-2.413C19.37 27.067 21.323 28 23.5 28c4.143 0 7.5-3.357 7.5-7.5 0-.71-.105-1.394-.289-2.045C33.23 17.396 35 14.905 35 12z"/>
   <circle fill="#BDDDF4" cx="4" cy="31" r="3"/>
diff --git a/public/emoji/1f4c3_border.svg b/public/emoji/1f4c3_border.svg
index 9e7b56241..07225c89b 100644
--- a/public/emoji/1f4c3_border.svg
+++ b/public/emoji/1f4c3_border.svg
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M28 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.875-4-8V4c0-2.209 1.791-4 4-4h20c2.209 0 4 1.791 4 4v28z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M31 36H4c4 0 4-8 4-8 0-2.209 1.791-4 4-4h20c2.209 0 4 2 4 4 0 0 .25 8-5 8z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M24 7c0 .552-.447 1-1 1H5c-.552 0-1-.448-1-1s.448-1 1-1h18c.553 0 1 .448 1 1zm0 4c0 .552-.447 1-1 1H5c-.552 0-1-.448-1-1s.448-1 1-1h18c.553 0 1 .448 1 1zm0 4c0 .552-.447 1-1 1H5c-.552 0-1-.448-1-1s.448-1 1-1h18c.553 0 1 .448 1 1zm0 4c0 .553-.447 1-1 1H5c-.552 0-1-.447-1-1 0-.553.448-1 1-1h18c.553 0 1 .447 1 1z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M28 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.875-4-8V4c0-2.209 1.791-4 4-4h20c2.209 0 4 1.791 4 4v28z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M31 36H4c4 0 4-8 4-8 0-2.209 1.791-4 4-4h20c2.209 0 4 2 4 4 0 0 .25 8-5 8z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M24 7c0 .552-.447 1-1 1H5c-.552 0-1-.448-1-1s.448-1 1-1h18c.553 0 1 .448 1 1zm0 4c0 .552-.447 1-1 1H5c-.552 0-1-.448-1-1s.448-1 1-1h18c.553 0 1 .448 1 1zm0 4c0 .552-.447 1-1 1H5c-.552 0-1-.448-1-1s.448-1 1-1h18c.553 0 1 .448 1 1zm0 4c0 .553-.447 1-1 1H5c-.552 0-1-.447-1-1 0-.553.448-1 1-1h18c.553 0 1 .447 1 1z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#CCD6DD" d="M28 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.875-4-8V4c0-2.209 1.791-4 4-4h20c2.209 0 4 1.791 4 4v28z"/>
   <path fill="#E1E8ED" d="M31 36H4c4 0 4-8 4-8 0-2.209 1.791-4 4-4h20c2.209 0 4 2 4 4 0 0 .25 8-5 8z"/>
diff --git a/public/emoji/1f507_border.svg b/public/emoji/1f507_border.svg
index cd02481bd..ba1e4148f 100644
--- a/public/emoji/1f507_border.svg
+++ b/public/emoji/1f507_border.svg
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M9 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H9z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M15 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M31.003 33.003L3.997 5.997c-.551-.551-.551-1.443 0-1.994l.006-.006c.551-.551 1.443-.551 1.994 0l27.006 27.006c.551.551.551 1.443 0 1.994l-.006.006c-.551.551-1.443.551-1.994 0z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M9 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H9z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M15 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M31.003 33.003L3.997 5.997c-.551-.551-.551-1.443 0-1.994l.006-.006c.551-.551 1.443-.551 1.994 0l27.006 27.006c.551.551.551 1.443 0 1.994l-.006.006c-.551.551-1.443.551-1.994 0z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#8899A6" d="M9 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H9z"/>
   <path fill="#CCD6DD" d="M15 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z"/>
diff --git a/public/emoji/1f508_border.svg b/public/emoji/1f508_border.svg
index c920d89dc..38ebc8785 100644
--- a/public/emoji/1f508_border.svg
+++ b/public/emoji/1f508_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M9 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H9z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M15 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M9 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H9z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M15 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#8899A6" d="M9 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H9z"/>
   <path fill="#CCD6DD" d="M15 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z"/>
diff --git a/public/emoji/1f509_border.svg b/public/emoji/1f509_border.svg
index 6881edb30..7fc2e9a8c 100644
--- a/public/emoji/1f509_border.svg
+++ b/public/emoji/1f509_border.svg
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M7 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H7z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M13 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M28.709 25.959c-.289 0-.576-.124-.774-.365-.351-.427-.289-1.057.138-1.407C29.934 22.658 31 20.403 31 18c0-2.435-1.089-4.708-2.988-6.236-.431-.346-.498-.976-.152-1.406.348-.429.976-.499 1.406-.152C31.639 12.116 33 14.957 33 18c0 3.004-1.333 5.822-3.657 7.731-.186.154-.411.228-.634.228z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M7 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H7z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M13 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M28.709 25.959c-.289 0-.576-.124-.774-.365-.351-.427-.289-1.057.138-1.407C29.934 22.658 31 20.403 31 18c0-2.435-1.089-4.708-2.988-6.236-.431-.346-.498-.976-.152-1.406.348-.429.976-.499 1.406-.152C31.639 12.116 33 14.957 33 18c0 3.004-1.333 5.822-3.657 7.731-.186.154-.411.228-.634.228z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#8899A6" d="M7 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H7z"/>
   <path fill="#CCD6DD" d="M13 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z"/>
diff --git a/public/emoji/1f50a_border.svg b/public/emoji/1f50a_border.svg
index 549811b69..0605c4b2f 100644
--- a/public/emoji/1f50a_border.svg
+++ b/public/emoji/1f50a_border.svg
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M2 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H2z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M8 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M29 32.019c-.267 0-.533-.113-.72-.332-.339-.398-.292-.995.105-1.334 3.603-3.071 5.668-7.551 5.668-12.29s-2.066-9.219-5.669-12.29c-.397-.339-.444-.937-.105-1.334.339-.399.935-.444 1.334-.106 4.024 3.431 6.333 8.436 6.333 13.73 0 5.294-2.309 10.299-6.332 13.729-.179.152-.396.227-.614.227z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M26.27 28.959c-.269 0-.533-.115-.717-.338-.327-.396-.271-.98.125-1.307 2.792-2.304 4.394-5.699 4.394-9.315 0-3.573-1.571-6.943-4.311-9.245-.392-.33-.443-.916-.113-1.308.33-.394.915-.443 1.309-.114 3.16 2.656 4.973 6.543 4.973 10.667 0 4.172-1.848 8.089-5.069 10.746-.174.145-.383.214-.591.214z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M23.709 25.959c-.289 0-.576-.124-.774-.365-.351-.427-.289-1.057.138-1.407C24.934 22.658 26 20.403 26 18c0-2.435-1.089-4.708-2.988-6.236-.431-.346-.498-.976-.152-1.406.348-.429.976-.499 1.406-.152C26.639 12.116 28 14.957 28 18c0 3.004-1.333 5.822-3.657 7.731-.186.154-.411.228-.634.228z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M2 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H2z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M8 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M29 32.019c-.267 0-.533-.113-.72-.332-.339-.398-.292-.995.105-1.334 3.603-3.071 5.668-7.551 5.668-12.29s-2.066-9.219-5.669-12.29c-.397-.339-.444-.937-.105-1.334.339-.399.935-.444 1.334-.106 4.024 3.431 6.333 8.436 6.333 13.73 0 5.294-2.309 10.299-6.332 13.729-.179.152-.396.227-.614.227z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M26.27 28.959c-.269 0-.533-.115-.717-.338-.327-.396-.271-.98.125-1.307 2.792-2.304 4.394-5.699 4.394-9.315 0-3.573-1.571-6.943-4.311-9.245-.392-.33-.443-.916-.113-1.308.33-.394.915-.443 1.309-.114 3.16 2.656 4.973 6.543 4.973 10.667 0 4.172-1.848 8.089-5.069 10.746-.174.145-.383.214-.591.214z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M23.709 25.959c-.289 0-.576-.124-.774-.365-.351-.427-.289-1.057.138-1.407C24.934 22.658 26 20.403 26 18c0-2.435-1.089-4.708-2.988-6.236-.431-.346-.498-.976-.152-1.406.348-.429.976-.499 1.406-.152C26.639 12.116 28 14.957 28 18c0 3.004-1.333 5.822-3.657 7.731-.186.154-.411.228-.634.228z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#8899A6" d="M2 10s-2 0-2 2v12c0 2 2 2 2 2h6l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8H2z"/>
   <path fill="#CCD6DD" d="M8 26l8 8s1 1 2 1h1s1 0 1-1V2s0-1-1-1h-1c-1 0-2 1-2 1l-8 8v16z"/>
diff --git a/public/emoji/1f54a_border.svg b/public/emoji/1f54a_border.svg
index 895872f3e..ac27cedbd 100644
--- a/public/emoji/1f54a_border.svg
+++ b/public/emoji/1f54a_border.svg
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M.794 16.112c1 0 5.875 1.344 6.5 2.312L6.013 18.3s-3.906-1.25-4.906-1.25c-1.001 0-.313-.938-.313-.938z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M11 2c1 1 3 7 3 10s-2 6 2 8 5.001-1 5.001-5S20 7 19 5s-2 0-2 0-1-4-2-4-1 2-1 2-2-2-3-2 0 1 0 1z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M10 15c3 0 4 4 6 4s1-3 3-3 10-5 10-11 3-3 3-1c1 0 2 1.586 2 3 0 1 0 2-1 3 1 0 2 2 1 3 1 3-1 6-3 7 0 1-2 3-4 2 0 0-1 3-3 2 0 0 3.052 1.684 4 2 3 1 7 1 7 1s0 1-2 2c0 0 1 1 0 2s-2 1-2 1 1 2-2 1-6-4-6-4-5 1-9-1-6-6-6-8-3-1-4-1 2-2 3-2c0 0 0-2 3-2z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M6.95 18.019s5.438 2.625 7.938 6.656c1.9 3.064 2.782 8.656 2.782 8.656s.043.564-.907-2.281c-1-3-2.217-6.288-4.312-8.188-3.344-3.031-4.75-3.5-6.062-4.25-.332-.189.217-.687.561-.593z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M16.198 28.54s2.038.103 3.107 2.139c1.068 2.036-.053 4.914-.053 4.914s-2.75-1.268-3.462-2.947c-.712-1.68.408-4.106.408-4.106zm-2.133-4.778s1.274 1.437 3.558 1.705c2.284.269 4.121-1.379 4.121-1.379s-2.144-1.97-3.968-2.033c-1.823-.065-3.711 1.707-3.711 1.707zm-4.047-3.148s-2.015.329-2.85 2.472.425 4.01.425 4.01 2.534-.848 3.055-2.597c.521-1.747-.63-3.885-.63-3.885z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M.794 16.112c1 0 5.875 1.344 6.5 2.312L6.013 18.3s-3.906-1.25-4.906-1.25c-1.001 0-.313-.938-.313-.938z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M11 2c1 1 3 7 3 10s-2 6 2 8 5.001-1 5.001-5S20 7 19 5s-2 0-2 0-1-4-2-4-1 2-1 2-2-2-3-2 0 1 0 1z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M10 15c3 0 4 4 6 4s1-3 3-3 10-5 10-11 3-3 3-1c1 0 2 1.586 2 3 0 1 0 2-1 3 1 0 2 2 1 3 1 3-1 6-3 7 0 1-2 3-4 2 0 0-1 3-3 2 0 0 3.052 1.684 4 2 3 1 7 1 7 1s0 1-2 2c0 0 1 1 0 2s-2 1-2 1 1 2-2 1-6-4-6-4-5 1-9-1-6-6-6-8-3-1-4-1 2-2 3-2c0 0 0-2 3-2z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M6.95 18.019s5.438 2.625 7.938 6.656c1.9 3.064 2.782 8.656 2.782 8.656s.043.564-.907-2.281c-1-3-2.217-6.288-4.312-8.188-3.344-3.031-4.75-3.5-6.062-4.25-.332-.189.217-.687.561-.593z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M16.198 28.54s2.038.103 3.107 2.139c1.068 2.036-.053 4.914-.053 4.914s-2.75-1.268-3.462-2.947c-.712-1.68.408-4.106.408-4.106zm-2.133-4.778s1.274 1.437 3.558 1.705c2.284.269 4.121-1.379 4.121-1.379s-2.144-1.97-3.968-2.033c-1.823-.065-3.711 1.707-3.711 1.707zm-4.047-3.148s-2.015.329-2.85 2.472.425 4.01.425 4.01 2.534-.848 3.055-2.597c.521-1.747-.63-3.885-.63-3.885z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#5C913B" d="M.794 16.112c1 0 5.875 1.344 6.5 2.312L6.013 18.3s-3.906-1.25-4.906-1.25c-1.001 0-.313-.938-.313-.938z"/>
   <path fill="#99AAB5" d="M11 2c1 1 3 7 3 10s-2 6 2 8 5.001-1 5.001-5S20 7 19 5s-2 0-2 0-1-4-2-4-1 2-1 2-2-2-3-2 0 1 0 1z"/>
diff --git a/public/emoji/25ab_border.svg b/public/emoji/25ab_border.svg
index b51e1a9cc..5ca5b6b60 100644
--- a/public/emoji/25ab_border.svg
+++ b/public/emoji/25ab_border.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M25 24c0 .553-.447 1-1 1H12c-.552 0-1-.447-1-1V12c0-.552.448-1 1-1h12c.553 0 1 .448 1 1v12z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M25 24c0 .553-.447 1-1 1H12c-.552 0-1-.447-1-1V12c0-.552.448-1 1-1h12c.553 0 1 .448 1 1v12z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#E6E7E8" d="M25 24c0 .553-.447 1-1 1H12c-.552 0-1-.447-1-1V12c0-.552.448-1 1-1h12c.553 0 1 .448 1 1v12z"/>
 </svg>
diff --git a/public/emoji/25fb_border.svg b/public/emoji/25fb_border.svg
index 24c48e17a..f9210fea8 100644
--- a/public/emoji/25fb_border.svg
+++ b/public/emoji/25fb_border.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M33 30c0 1.657-1.343 3-3 3H6c-1.657 0-3-1.343-3-3V6c0-1.657 1.343-3 3-3h24c1.657 0 3 1.343 3 3v24z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M33 30c0 1.657-1.343 3-3 3H6c-1.657 0-3-1.343-3-3V6c0-1.657 1.343-3 3-3h24c1.657 0 3 1.343 3 3v24z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#E6E7E8" d="M33 30c0 1.657-1.343 3-3 3H6c-1.657 0-3-1.343-3-3V6c0-1.657 1.343-3 3-3h24c1.657 0 3 1.343 3 3v24z"/>
 </svg>
diff --git a/public/emoji/25fd_border.svg b/public/emoji/25fd_border.svg
index ec7278674..419076b94 100644
--- a/public/emoji/25fd_border.svg
+++ b/public/emoji/25fd_border.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M29 27c0 1.104-.896 2-2 2H9c-1.104 0-2-.896-2-2V9c0-1.104.896-2 2-2h18c1.104 0 2 .896 2 2v18z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M29 27c0 1.104-.896 2-2 2H9c-1.104 0-2-.896-2-2V9c0-1.104.896-2 2-2h18c1.104 0 2 .896 2 2v18z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#E6E7E8" d="M29 27c0 1.104-.896 2-2 2H9c-1.104 0-2-.896-2-2V9c0-1.104.896-2 2-2h18c1.104 0 2 .896 2 2v18z"/>
 </svg>
diff --git a/public/emoji/2601_border.svg b/public/emoji/2601_border.svg
index 6ab20d737..2c4857a0e 100644
--- a/public/emoji/2601_border.svg
+++ b/public/emoji/2601_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M27 8c-.701 0-1.377.106-2.015.298.005-.1.015-.197.015-.298 0-3.313-2.687-6-6-6-2.769 0-5.093 1.878-5.785 4.427C12.529 6.154 11.783 6 11 6c-3.314 0-6 2.686-6 6 0 3.312 2.686 6 6 6 2.769 0 5.093-1.878 5.785-4.428.686.273 1.432.428 2.215.428.375 0 .74-.039 1.096-.104-.058.36-.096.727-.096 1.104 0 3.865 3.135 7 7 7s7-3.135 7-7c0-3.866-3.135-7-7-7z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M31 22c-.467 0-.91.085-1.339.204.216-.526.339-1.1.339-1.704 0-2.485-2.015-4.5-4.5-4.5-1.019 0-1.947.351-2.701.921C22.093 14.096 19.544 12 16.5 12c-2.838 0-5.245 1.822-6.131 4.357C9.621 16.125 8.825 16 8 16c-4.418 0-8 3.582-8 8 0 4.419 3.582 8 8 8h23c2.762 0 5-2.238 5-5s-2.238-5-5-5z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M27 8c-.701 0-1.377.106-2.015.298.005-.1.015-.197.015-.298 0-3.313-2.687-6-6-6-2.769 0-5.093 1.878-5.785 4.427C12.529 6.154 11.783 6 11 6c-3.314 0-6 2.686-6 6 0 3.312 2.686 6 6 6 2.769 0 5.093-1.878 5.785-4.428.686.273 1.432.428 2.215.428.375 0 .74-.039 1.096-.104-.058.36-.096.727-.096 1.104 0 3.865 3.135 7 7 7s7-3.135 7-7c0-3.866-3.135-7-7-7z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M31 22c-.467 0-.91.085-1.339.204.216-.526.339-1.1.339-1.704 0-2.485-2.015-4.5-4.5-4.5-1.019 0-1.947.351-2.701.921C22.093 14.096 19.544 12 16.5 12c-2.838 0-5.245 1.822-6.131 4.357C9.621 16.125 8.825 16 8 16c-4.418 0-8 3.582-8 8 0 4.419 3.582 8 8 8h23c2.762 0 5-2.238 5-5s-2.238-5-5-5z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#CCD6DD" d="M27 8c-.701 0-1.377.106-2.015.298.005-.1.015-.197.015-.298 0-3.313-2.687-6-6-6-2.769 0-5.093 1.878-5.785 4.427C12.529 6.154 11.783 6 11 6c-3.314 0-6 2.686-6 6 0 3.312 2.686 6 6 6 2.769 0 5.093-1.878 5.785-4.428.686.273 1.432.428 2.215.428.375 0 .74-.039 1.096-.104-.058.36-.096.727-.096 1.104 0 3.865 3.135 7 7 7s7-3.135 7-7c0-3.866-3.135-7-7-7z"/>
   <path fill="#E1E8ED" d="M31 22c-.467 0-.91.085-1.339.204.216-.526.339-1.1.339-1.704 0-2.485-2.015-4.5-4.5-4.5-1.019 0-1.947.351-2.701.921C22.093 14.096 19.544 12 16.5 12c-2.838 0-5.245 1.822-6.131 4.357C9.621 16.125 8.825 16 8 16c-4.418 0-8 3.582-8 8 0 4.419 3.582 8 8 8h23c2.762 0 5-2.238 5-5s-2.238-5-5-5z"/>
diff --git a/public/emoji/2620_border.svg b/public/emoji/2620_border.svg
index 8878828be..d2b94874e 100644
--- a/public/emoji/2620_border.svg
+++ b/public/emoji/2620_border.svg
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M27.865 16.751c0-6.242-4.411-9.988-9.927-9.988s-9.835 3.746-9.835 9.988c0 3.48-.103 6.485 3.897 7.89v2.722c0 1.034.966 1.872 2 1.872 1.035 0 2-.838 2-1.872v-1.97 1.97c0 1.034.965 1.872 2 1.872 1.036 0 2-.838 2-1.872v-1.97 1.97c0 1.034.966 1.872 2 1.872s2-.838 2-1.872v-2.722c4-1.405 3.865-4.41 3.865-7.89z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="13.629" cy="15.503" r="3.121" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M25.488 15.503c0 1.724 0 3.121-3.121 3.121-3.12 0-3.12-1.397-3.12-3.121s1.396-3.121 3.12-3.121c1.725 0 3.121 1.397 3.121 3.121zm-6.301 5.656c-.157-.382-.626-.662-1.189-.662-.561 0-1.031.28-1.188.662-.394.11-.685.469-.685.898 0 .517.419.936.937.936.409 0 .753-.263.88-.628.019 0 .037.004.056.004.019 0 .037-.004.057-.004.128.365.472.628.88.628.517 0 .936-.419.936-.936 0-.429-.291-.786-.684-.898z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M11 27c0-.367.075-.713.195-1.038-.984-.447-1.831-1.082-2.503-1.97-1.107.969-2.163 1.876-3.127 2.695C4.985 26.26 4.275 26 3.5 26 1.567 26 0 27.566 0 29.5c0 1.778 1.33 3.229 3.046 3.454C3.271 34.671 4.722 36 6.5 36c1.933 0 3.5-1.566 3.5-3.5 0-.775-.26-1.485-.686-2.065.6-.706 1.246-1.46 1.931-2.25C11.088 27.821 11 27.421 11 27zm16.872-15.482c.884-.769 1.729-1.495 2.515-2.163.569.403 1.262.645 2.013.645 1.934 0 3.5-1.567 3.5-3.5 0-1.743-1.277-3.177-2.945-3.444C32.735 1.335 31.281 0 29.5 0 27.566 0 26 1.567 26 3.5c0 .775.26 1.485.687 2.065-.594.7-1.233 1.445-1.911 2.227 1.3.871 2.361 2.095 3.096 3.726zM3.5 10c.775 0 1.485-.26 2.065-.687.799.679 1.661 1.419 2.564 2.204.735-1.631 1.795-2.855 3.096-3.726-.679-.781-1.317-1.527-1.912-2.226.427-.58.687-1.29.687-2.065C10 1.567 8.433 0 6.5 0 4.722 0 3.271 1.33 3.046 3.046 1.33 3.271 0 4.722 0 6.5 0 8.433 1.567 10 3.5 10zm28.9 16c-.752 0-1.444.242-2.014.645-.952-.809-1.99-1.701-3.079-2.653-.672.889-1.519 1.523-2.503 1.971.121.324.196.67.196 1.037 0 .421-.088.821-.245 1.185.685.79 1.331 1.544 1.931 2.25-.426.58-.686 1.29-.686 2.065 0 1.934 1.566 3.5 3.5 3.5 1.781 0 3.235-1.334 3.455-3.056 1.668-.267 2.945-1.701 2.945-3.444 0-1.934-1.566-3.5-3.5-3.5z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M27.865 16.751c0-6.242-4.411-9.988-9.927-9.988s-9.835 3.746-9.835 9.988c0 3.48-.103 6.485 3.897 7.89v2.722c0 1.034.966 1.872 2 1.872 1.035 0 2-.838 2-1.872v-1.97 1.97c0 1.034.965 1.872 2 1.872 1.036 0 2-.838 2-1.872v-1.97 1.97c0 1.034.966 1.872 2 1.872s2-.838 2-1.872v-2.722c4-1.405 3.865-4.41 3.865-7.89z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="13.629" cy="15.503" r="3.121" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M25.488 15.503c0 1.724 0 3.121-3.121 3.121-3.12 0-3.12-1.397-3.12-3.121s1.396-3.121 3.12-3.121c1.725 0 3.121 1.397 3.121 3.121zm-6.301 5.656c-.157-.382-.626-.662-1.189-.662-.561 0-1.031.28-1.188.662-.394.11-.685.469-.685.898 0 .517.419.936.937.936.409 0 .753-.263.88-.628.019 0 .037.004.056.004.019 0 .037-.004.057-.004.128.365.472.628.88.628.517 0 .936-.419.936-.936 0-.429-.291-.786-.684-.898z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M11 27c0-.367.075-.713.195-1.038-.984-.447-1.831-1.082-2.503-1.97-1.107.969-2.163 1.876-3.127 2.695C4.985 26.26 4.275 26 3.5 26 1.567 26 0 27.566 0 29.5c0 1.778 1.33 3.229 3.046 3.454C3.271 34.671 4.722 36 6.5 36c1.933 0 3.5-1.566 3.5-3.5 0-.775-.26-1.485-.686-2.065.6-.706 1.246-1.46 1.931-2.25C11.088 27.821 11 27.421 11 27zm16.872-15.482c.884-.769 1.729-1.495 2.515-2.163.569.403 1.262.645 2.013.645 1.934 0 3.5-1.567 3.5-3.5 0-1.743-1.277-3.177-2.945-3.444C32.735 1.335 31.281 0 29.5 0 27.566 0 26 1.567 26 3.5c0 .775.26 1.485.687 2.065-.594.7-1.233 1.445-1.911 2.227 1.3.871 2.361 2.095 3.096 3.726zM3.5 10c.775 0 1.485-.26 2.065-.687.799.679 1.661 1.419 2.564 2.204.735-1.631 1.795-2.855 3.096-3.726-.679-.781-1.317-1.527-1.912-2.226.427-.58.687-1.29.687-2.065C10 1.567 8.433 0 6.5 0 4.722 0 3.271 1.33 3.046 3.046 1.33 3.271 0 4.722 0 6.5 0 8.433 1.567 10 3.5 10zm28.9 16c-.752 0-1.444.242-2.014.645-.952-.809-1.99-1.701-3.079-2.653-.672.889-1.519 1.523-2.503 1.971.121.324.196.67.196 1.037 0 .421-.088.821-.245 1.185.685.79 1.331 1.544 1.931 2.25-.426.58-.686 1.29-.686 2.065 0 1.934 1.566 3.5 3.5 3.5 1.781 0 3.235-1.334 3.455-3.056 1.668-.267 2.945-1.701 2.945-3.444 0-1.934-1.566-3.5-3.5-3.5z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#CCD6DD" d="M27.865 16.751c0-6.242-4.411-9.988-9.927-9.988s-9.835 3.746-9.835 9.988c0 3.48-.103 6.485 3.897 7.89v2.722c0 1.034.966 1.872 2 1.872 1.035 0 2-.838 2-1.872v-1.97 1.97c0 1.034.965 1.872 2 1.872 1.036 0 2-.838 2-1.872v-1.97 1.97c0 1.034.966 1.872 2 1.872s2-.838 2-1.872v-2.722c4-1.405 3.865-4.41 3.865-7.89z"/>
   <circle fill="#292F33" cx="13.629" cy="15.503" r="3.121"/>
diff --git a/public/emoji/26aa_border.svg b/public/emoji/26aa_border.svg
index d2cac5cad..38126cc6a 100644
--- a/public/emoji/26aa_border.svg
+++ b/public/emoji/26aa_border.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <circle cx="18" cy="18" r="18" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="18" cy="18" r="18" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <circle fill="#E6E7E8" cx="18" cy="18" r="18"/>
 </svg>
diff --git a/public/emoji/26be_border.svg b/public/emoji/26be_border.svg
index 25954deac..96894b081 100644
--- a/public/emoji/26be_border.svg
+++ b/public/emoji/26be_border.svg
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <circle cx="18" cy="18" r="18" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M31.802 29.546C28.792 28.221 27 24.048 27 18c0-6.048 1.792-10.221 4.802-11.546-.445-.531-.926-1.028-1.428-1.504C27.406 6.605 25 10.578 25 18c0 7.421 2.406 11.395 5.374 13.05.502-.477.984-.973 1.428-1.504zM11 18c0-7.421-2.406-11.395-5.374-13.049-.502.476-.984.972-1.428 1.503C7.208 7.78 9 11.952 9 18c0 6.048-1.792 10.22-4.802 11.546.445.531.926 1.027 1.428 1.504C8.593 29.395 11 25.421 11 18z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M5.092 10.164c-.237 0-.457-.02-.651-.056-.543-.102-.9-.624-.799-1.167.102-.543.625-.902 1.167-.799.43.077 2.691.006 3.148-2.276.108-.541.632-.892 1.177-.784.542.108.893.635.784 1.177-.583 2.912-3.139 3.905-4.826 3.905zm1.7 3.961c-.53 0-.952-.323-.978-.859-.026-.551.4-.911.952-.937 0 0 2.564-.035 3.869-2.294.275-.478.886-.63 1.365-.352.478.276.642.894.365 1.373-1.851 3.206-5.557 3.069-5.573 3.069zM9 19.282c-.734 0-1.414-.135-1.928-.378-.499-.236-.712-.833-.476-1.332.237-.5.834-.711 1.332-.476.83.393 2.926.239 3.73-1.012.299-.465.917-.6 1.382-.301.465.299.599.918.301 1.382-.964 1.501-2.776 2.117-4.341 2.117zm1.161 5.525c-1.554 0-2.995-.699-3.926-1.476-.424-.354-.481-.984-.128-1.409.354-.425.984-.48 1.408-.128.194.163 1.952 1.566 3.782.785.507-.215 1.095.021 1.311.53.216.509-.021 1.096-.53 1.312-.639.271-1.288.386-1.917.386zM9.75 30h-.028c-2.504 0-4.679-1.57-5.534-3.108-.269-.482-.094-1.044.388-1.312.483-.269 1.092-.07 1.36.412.484.871 1.996 2.134 3.841 2.185.552.016.987.388.972.939-.015.542-.459.884-.999.884zm17.438.188c-.066 0-.131-.006-.197-.02-.541-.108-.893-.635-.784-1.177.664-3.322 3.894-4.15 5.478-3.849.543.102.9.624.798 1.167-.101.542-.617.903-1.167.798-.425-.08-2.69-.007-3.147 2.276-.096.476-.514.805-.981.805zm-2.564-4.5c-.17 0-.342-.043-.499-.134-.479-.276-.643-.889-.366-1.366 1.852-3.206 3.984-3.304 5.394-3.369l.111-.005c.539-.033 1.021.399 1.047.951.026.552-.399 1.021-.951 1.047l-.115.005c-1.204.056-2.449.112-3.754 2.371-.185.321-.521.5-.867.5zm-1-6.063c-.186 0-.372-.051-.54-.159-.464-.298-.599-.917-.3-1.381 1.415-2.203 4.656-2.501 6.268-1.738.499.236.713.833.476 1.332-.235.5-.834.712-1.331.476-.829-.393-2.926-.239-3.732 1.012-.19.296-.512.458-.841.458zm5.625-5.937c-.226 0-.452-.076-.64-.232-.194-.162-1.952-1.559-3.781-.785-.509.215-1.095-.021-1.312-.53-.216-.508.021-1.096.53-1.311 2.219-.942 4.535-.001 5.844 1.09.424.353.482.984.128 1.408-.198.237-.482.36-.769.36zm1.814-3.938c-.352 0-.692-.186-.875-.514-.484-.872-1.996-2.123-3.841-2.174-.553-.015-.987-.506-.973-1.059.017-.542.461-1.003 1-1.003h.028c2.505 0 4.68 1.694 5.534 3.232.269.483.095 1.108-.389 1.376-.152.086-.319.142-.484.142z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="18" cy="18" r="18" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M31.802 29.546C28.792 28.221 27 24.048 27 18c0-6.048 1.792-10.221 4.802-11.546-.445-.531-.926-1.028-1.428-1.504C27.406 6.605 25 10.578 25 18c0 7.421 2.406 11.395 5.374 13.05.502-.477.984-.973 1.428-1.504zM11 18c0-7.421-2.406-11.395-5.374-13.049-.502.476-.984.972-1.428 1.503C7.208 7.78 9 11.952 9 18c0 6.048-1.792 10.22-4.802 11.546.445.531.926 1.027 1.428 1.504C8.593 29.395 11 25.421 11 18z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M5.092 10.164c-.237 0-.457-.02-.651-.056-.543-.102-.9-.624-.799-1.167.102-.543.625-.902 1.167-.799.43.077 2.691.006 3.148-2.276.108-.541.632-.892 1.177-.784.542.108.893.635.784 1.177-.583 2.912-3.139 3.905-4.826 3.905zm1.7 3.961c-.53 0-.952-.323-.978-.859-.026-.551.4-.911.952-.937 0 0 2.564-.035 3.869-2.294.275-.478.886-.63 1.365-.352.478.276.642.894.365 1.373-1.851 3.206-5.557 3.069-5.573 3.069zM9 19.282c-.734 0-1.414-.135-1.928-.378-.499-.236-.712-.833-.476-1.332.237-.5.834-.711 1.332-.476.83.393 2.926.239 3.73-1.012.299-.465.917-.6 1.382-.301.465.299.599.918.301 1.382-.964 1.501-2.776 2.117-4.341 2.117zm1.161 5.525c-1.554 0-2.995-.699-3.926-1.476-.424-.354-.481-.984-.128-1.409.354-.425.984-.48 1.408-.128.194.163 1.952 1.566 3.782.785.507-.215 1.095.021 1.311.53.216.509-.021 1.096-.53 1.312-.639.271-1.288.386-1.917.386zM9.75 30h-.028c-2.504 0-4.679-1.57-5.534-3.108-.269-.482-.094-1.044.388-1.312.483-.269 1.092-.07 1.36.412.484.871 1.996 2.134 3.841 2.185.552.016.987.388.972.939-.015.542-.459.884-.999.884zm17.438.188c-.066 0-.131-.006-.197-.02-.541-.108-.893-.635-.784-1.177.664-3.322 3.894-4.15 5.478-3.849.543.102.9.624.798 1.167-.101.542-.617.903-1.167.798-.425-.08-2.69-.007-3.147 2.276-.096.476-.514.805-.981.805zm-2.564-4.5c-.17 0-.342-.043-.499-.134-.479-.276-.643-.889-.366-1.366 1.852-3.206 3.984-3.304 5.394-3.369l.111-.005c.539-.033 1.021.399 1.047.951.026.552-.399 1.021-.951 1.047l-.115.005c-1.204.056-2.449.112-3.754 2.371-.185.321-.521.5-.867.5zm-1-6.063c-.186 0-.372-.051-.54-.159-.464-.298-.599-.917-.3-1.381 1.415-2.203 4.656-2.501 6.268-1.738.499.236.713.833.476 1.332-.235.5-.834.712-1.331.476-.829-.393-2.926-.239-3.732 1.012-.19.296-.512.458-.841.458zm5.625-5.937c-.226 0-.452-.076-.64-.232-.194-.162-1.952-1.559-3.781-.785-.509.215-1.095-.021-1.312-.53-.216-.508.021-1.096.53-1.311 2.219-.942 4.535-.001 5.844 1.09.424.353.482.984.128 1.408-.198.237-.482.36-.769.36zm1.814-3.938c-.352 0-.692-.186-.875-.514-.484-.872-1.996-2.123-3.841-2.174-.553-.015-.987-.506-.973-1.059.017-.542.461-1.003 1-1.003h.028c2.505 0 4.68 1.694 5.534 3.232.269.483.095 1.108-.389 1.376-.152.086-.319.142-.484.142z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <circle fill="#E1E8ED" cx="18" cy="18" r="18"/>
   <path fill="#B3BEC4" d="M31.802 29.546C28.792 28.221 27 24.048 27 18c0-6.048 1.792-10.221 4.802-11.546-.445-.531-.926-1.028-1.428-1.504C27.406 6.605 25 10.578 25 18c0 7.421 2.406 11.395 5.374 13.05.502-.477.984-.973 1.428-1.504zM11 18c0-7.421-2.406-11.395-5.374-13.049-.502.476-.984.972-1.428 1.503C7.208 7.78 9 11.952 9 18c0 6.048-1.792 10.22-4.802 11.546.445.531.926 1.027 1.428 1.504C8.593 29.395 11 25.421 11 18z"/>
diff --git a/public/emoji/26f8_border.svg b/public/emoji/26f8_border.svg
index 0df7ff2ff..3579451ce 100644
--- a/public/emoji/26f8_border.svg
+++ b/public/emoji/26f8_border.svg
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M26 33c2 2-11 2-9 0 3 0 3-3 3-3h3s0 3 3 3zm-14 0c2 2-11 2-9 0 3 0 3-3 3-3h3s0 3 3 3z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M30 36H2c-1.104 0-2.104-3-1-3h28c3 0 3-3 4-4 5 3 2 7-3 7z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M1 28c0-9 2-14 2-21 0-2.279 13-2 13 0s-1.5 10 5 13c6.268 2.893 15 2 15 8H1z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M36 28c-24 0-19.001-1-25-1H1v1c0 1.104.896 2 2 2h8c2.333 0 .398-2.041 3-1 5 2 20 1 20 1 1.104 0 2-.896 2-2z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M16.312 20.75c-.25 0-.5-.093-.694-.28-.398-.383-.409-1.017-.025-1.414l1.688-1.75c.384-.396 1.017-.408 1.414-.025.398.383.409 1.016.025 1.414l-1.688 1.75c-.196.202-.458.305-.72.305zM19.999 23c-.15 0-.303-.034-.446-.105-.494-.247-.694-.848-.447-1.342l1-2c.248-.494.848-.692 1.342-.447.494.247.694.848.447 1.342l-1 2c-.176.35-.529.552-.896.552zm4.002 1c-.047 0-.095-.003-.143-.01-.547-.079-.927-.585-.849-1.132l.209-1.458c.079-.547.587-.923 1.132-.849.547.079.927.585.849 1.132l-.209 1.458c-.072.5-.5.859-.989.859z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M26 33c2 2-11 2-9 0 3 0 3-3 3-3h3s0 3 3 3zm-14 0c2 2-11 2-9 0 3 0 3-3 3-3h3s0 3 3 3z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M30 36H2c-1.104 0-2.104-3-1-3h28c3 0 3-3 4-4 5 3 2 7-3 7z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M1 28c0-9 2-14 2-21 0-2.279 13-2 13 0s-1.5 10 5 13c6.268 2.893 15 2 15 8H1z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M36 28c-24 0-19.001-1-25-1H1v1c0 1.104.896 2 2 2h8c2.333 0 .398-2.041 3-1 5 2 20 1 20 1 1.104 0 2-.896 2-2z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M16.312 20.75c-.25 0-.5-.093-.694-.28-.398-.383-.409-1.017-.025-1.414l1.688-1.75c.384-.396 1.017-.408 1.414-.025.398.383.409 1.016.025 1.414l-1.688 1.75c-.196.202-.458.305-.72.305zM19.999 23c-.15 0-.303-.034-.446-.105-.494-.247-.694-.848-.447-1.342l1-2c.248-.494.848-.692 1.342-.447.494.247.694.848.447 1.342l-1 2c-.176.35-.529.552-.896.552zm4.002 1c-.047 0-.095-.003-.143-.01-.547-.079-.927-.585-.849-1.132l.209-1.458c.079-.547.587-.923 1.132-.849.547.079.927.585.849 1.132l-.209 1.458c-.072.5-.5.859-.989.859z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#99AAB5" d="M26 33c2 2-11 2-9 0 3 0 3-3 3-3h3s0 3 3 3zm-14 0c2 2-11 2-9 0 3 0 3-3 3-3h3s0 3 3 3z"/>
   <path fill="#99AAB5" d="M30 36H2c-1.104 0-2.104-3-1-3h28c3 0 3-3 4-4 5 3 2 7-3 7z"/>
diff --git a/public/emoji/2754_border.svg b/public/emoji/2754_border.svg
index 1d6c4ecda..c86ae128a 100644
--- a/public/emoji/2754_border.svg
+++ b/public/emoji/2754_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M17 27c-1.657 0-3-1.343-3-3v-4c0-1.657 1.343-3 3-3 .603-.006 6-1 6-5 0-2-2-4-5-4-2.441 0-4 2-4 3 0 1.657-1.343 3-3 3s-3-1.343-3-3c0-4.878 4.58-9 10-9 8 0 11 5.982 11 11 0 4.145-2.277 7.313-6.413 8.92-.9.351-1.79.587-2.587.747V24c0 1.657-1.343 3-3 3z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <circle cx="17" cy="32" r="3" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M17 27c-1.657 0-3-1.343-3-3v-4c0-1.657 1.343-3 3-3 .603-.006 6-1 6-5 0-2-2-4-5-4-2.441 0-4 2-4 3 0 1.657-1.343 3-3 3s-3-1.343-3-3c0-4.878 4.58-9 10-9 8 0 11 5.982 11 11 0 4.145-2.277 7.313-6.413 8.92-.9.351-1.79.587-2.587.747V24c0 1.657-1.343 3-3 3z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="17" cy="32" r="3" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#CCD6DD" d="M17 27c-1.657 0-3-1.343-3-3v-4c0-1.657 1.343-3 3-3 .603-.006 6-1 6-5 0-2-2-4-5-4-2.441 0-4 2-4 3 0 1.657-1.343 3-3 3s-3-1.343-3-3c0-4.878 4.58-9 10-9 8 0 11 5.982 11 11 0 4.145-2.277 7.313-6.413 8.92-.9.351-1.79.587-2.587.747V24c0 1.657-1.343 3-3 3z"/>
   <circle fill="#CCD6DD" cx="17" cy="32" r="3"/>
diff --git a/public/emoji/2755_border.svg b/public/emoji/2755_border.svg
index 65ec57082..139c459ae 100644
--- a/public/emoji/2755_border.svg
+++ b/public/emoji/2755_border.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <circle cx="18" cy="32" r="3" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
-    <path d="M21 24c0 1.657-1.343 3-3 3s-3-1.343-3-3V5c0-1.657 1.343-3 3-3s3 1.343 3 3v19z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <circle cx="18" cy="32" r="3" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M21 24c0 1.657-1.343 3-3 3s-3-1.343-3-3V5c0-1.657 1.343-3 3-3s3 1.343 3 3v19z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <circle fill="#CCD6DD" cx="18" cy="32" r="3"/>
   <path fill="#CCD6DD" d="M21 24c0 1.657-1.343 3-3 3s-3-1.343-3-3V5c0-1.657 1.343-3 3-3s3 1.343 3 3v19z"/>
diff --git a/public/emoji/2b1c_border.svg b/public/emoji/2b1c_border.svg
index c633cc3de..a8ad76188 100644
--- a/public/emoji/2b1c_border.svg
+++ b/public/emoji/2b1c_border.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 40 40">
   <g>
-    <path d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z" stroke="white" stroke-linejoin="round" stroke-width="4px"/>
+    <path d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z" stroke="black" stroke-linejoin="round" stroke-width="4px"/>
   </g>
   <path fill="#E6E7E8" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/>
 </svg>
diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
new file mode 100644
index 000000000..f552b9dc0
--- /dev/null
+++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
@@ -0,0 +1,123 @@
+require 'rails_helper'
+
+RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
+  let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/account', featured_collection_url: 'https://example.com/account/pinned') }
+
+  let!(:known_status) { Fabricate(:status, account: actor, uri: 'https://example.com/account/pinned/1') }
+
+  let(:status_json_1) do
+    {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      type: 'Note',
+      id: 'https://example.com/account/pinned/1',
+      content: 'foo',
+      attributedTo: actor.uri,
+      to: 'https://www.w3.org/ns/activitystreams#Public',
+    }
+  end
+
+  let(:status_json_2) do
+    {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      type: 'Note',
+      id: 'https://example.com/account/pinned/2',
+      content: 'foo',
+      attributedTo: actor.uri,
+      to: 'https://www.w3.org/ns/activitystreams#Public',
+    }
+  end
+
+  let(:status_json_4) do
+    {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      type: 'Note',
+      id: 'https://example.com/account/pinned/4',
+      content: 'foo',
+      attributedTo: actor.uri,
+      to: 'https://www.w3.org/ns/activitystreams#Public',
+    }
+  end
+
+  let(:items) do
+    [
+      'https://example.com/account/pinned/1', # known
+      status_json_2, # unknown inlined
+      'https://example.com/account/pinned/3', # unknown unreachable
+      'https://example.com/account/pinned/4', # unknown reachable
+    ]
+  end
+
+  let(:payload) do
+    {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      type: 'Collection',
+      id: actor.featured_collection_url,
+      items: items,
+    }.with_indifferent_access
+  end
+
+  subject { described_class.new }
+
+  shared_examples 'sets pinned posts' do
+    before do
+      stub_request(:get, 'https://example.com/account/pinned/1').to_return(status: 200, body: Oj.dump(status_json_1))
+      stub_request(:get, 'https://example.com/account/pinned/2').to_return(status: 200, body: Oj.dump(status_json_2))
+      stub_request(:get, 'https://example.com/account/pinned/3').to_return(status: 404)
+      stub_request(:get, 'https://example.com/account/pinned/4').to_return(status: 200, body: Oj.dump(status_json_4))
+
+      subject.call(actor)
+    end
+
+    it 'sets expected posts as pinned posts' do
+      expect(actor.pinned_statuses.pluck(:uri)).to match_array ['https://example.com/account/pinned/1', 'https://example.com/account/pinned/2', 'https://example.com/account/pinned/4']
+    end
+  end
+
+  describe '#call' do
+    context 'when the endpoint is a Collection' do
+      before do
+        stub_request(:get, actor.featured_collection_url).to_return(status: 200, body: Oj.dump(payload))
+      end
+
+      it_behaves_like 'sets pinned posts'
+    end
+
+    context 'when the endpoint is an OrderedCollection' do
+      let(:payload) do
+        {
+          '@context': 'https://www.w3.org/ns/activitystreams',
+          type: 'OrderedCollection',
+          id: actor.featured_collection_url,
+          orderedItems: items,
+        }.with_indifferent_access
+      end
+
+      before do
+        stub_request(:get, actor.featured_collection_url).to_return(status: 200, body: Oj.dump(payload))
+      end
+
+      it_behaves_like 'sets pinned posts'
+    end
+
+    context 'when the endpoint is a paginated Collection' do
+      let(:payload) do
+        {
+          '@context': 'https://www.w3.org/ns/activitystreams',
+          type: 'Collection',
+          id: actor.featured_collection_url,
+          first: {
+            type: 'CollectionPage',
+            partOf: actor.featured_collection_url,
+            items: items,
+          }
+        }.with_indifferent_access
+      end
+
+      before do
+        stub_request(:get, actor.featured_collection_url).to_return(status: 200, body: Oj.dump(payload))
+      end
+
+      it_behaves_like 'sets pinned posts'
+    end
+  end
+end
diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb
index 7b1e8885c..8c302e1d8 100644
--- a/spec/services/resolve_account_service_spec.rb
+++ b/spec/services/resolve_account_service_spec.rb
@@ -220,6 +220,8 @@ RSpec.describe ResolveAccountService, type: :service do
           return_values << described_class.new.call('foo@ap.example.com')
         rescue ActiveRecord::RecordNotUnique
           fail_occurred = true
+        ensure
+          RedisConfiguration.pool.checkin if Thread.current[:redis]
         end
       end
     end
diff --git a/spec/validators/email_mx_validator_spec.rb b/spec/validators/email_mx_validator_spec.rb
index af0eb98f5..4feedd0c7 100644
--- a/spec/validators/email_mx_validator_spec.rb
+++ b/spec/validators/email_mx_validator_spec.rb
@@ -56,66 +56,6 @@ describe EmailMxValidator do
       expect(user.errors).to have_received(:add)
     end
 
-    it 'adds an error if the A record is blacklisted' do
-      EmailDomainBlock.create!(domain: 'alternate-example.com', ips: ['1.2.3.4'])
-      resolver = double
-
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::MX).and_return([])
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::A).and_return([double(address: '1.2.3.4')])
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::AAAA).and_return([])
-      allow(resolver).to receive(:timeouts=).and_return(nil)
-      allow(Resolv::DNS).to receive(:open).and_yield(resolver)
-
-      subject.validate(user)
-      expect(user.errors).to have_received(:add)
-    end
-
-    it 'adds an error if the AAAA record is blacklisted' do
-      EmailDomainBlock.create!(domain: 'alternate-example.com', ips: ['fd00::1'])
-      resolver = double
-
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::MX).and_return([])
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::A).and_return([])
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::AAAA).and_return([double(address: 'fd00::1')])
-      allow(resolver).to receive(:timeouts=).and_return(nil)
-      allow(Resolv::DNS).to receive(:open).and_yield(resolver)
-
-      subject.validate(user)
-      expect(user.errors).to have_received(:add)
-    end
-
-    it 'adds an error if the A record of the MX record is blacklisted' do
-      EmailDomainBlock.create!(domain: 'mail.other-domain.com', ips: ['2.3.4.5'])
-      resolver = double
-
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::MX).and_return([double(exchange: 'mail.example.com')])
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::A).and_return([])
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::AAAA).and_return([])
-      allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::A).and_return([double(address: '2.3.4.5')])
-      allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::AAAA).and_return([])
-      allow(resolver).to receive(:timeouts=).and_return(nil)
-      allow(Resolv::DNS).to receive(:open).and_yield(resolver)
-
-      subject.validate(user)
-      expect(user.errors).to have_received(:add)
-    end
-
-    it 'adds an error if the AAAA record of the MX record is blacklisted' do
-      EmailDomainBlock.create!(domain: 'mail.other-domain.com', ips: ['fd00::2'])
-      resolver = double
-
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::MX).and_return([double(exchange: 'mail.example.com')])
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::A).and_return([])
-      allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::AAAA).and_return([])
-      allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::A).and_return([])
-      allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::AAAA).and_return([double(address: 'fd00::2')])
-      allow(resolver).to receive(:timeouts=).and_return(nil)
-      allow(Resolv::DNS).to receive(:open).and_yield(resolver)
-
-      subject.validate(user)
-      expect(user.errors).to have_received(:add)
-    end
-
     it 'adds an error if the MX record is blacklisted' do
       EmailDomainBlock.create!(domain: 'mail.example.com')
       resolver = double
diff --git a/yarn.lock b/yarn.lock
index 08b95b9a4..b5bee3540 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -23,45 +23,40 @@
   dependencies:
     "@babel/highlight" "^7.16.7"
 
-"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8":
-  version "7.16.8"
-  resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz"
-  integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==
-
-"@babel/compat-data@^7.17.7":
-  version "7.17.7"
-  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2"
-  integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.10":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab"
+  integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==
 
-"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.17.9", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
-  version "7.17.9"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe"
-  integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==
+"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.17.10", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05"
+  integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==
   dependencies:
     "@ampproject/remapping" "^2.1.0"
     "@babel/code-frame" "^7.16.7"
-    "@babel/generator" "^7.17.9"
-    "@babel/helper-compilation-targets" "^7.17.7"
+    "@babel/generator" "^7.17.10"
+    "@babel/helper-compilation-targets" "^7.17.10"
     "@babel/helper-module-transforms" "^7.17.7"
     "@babel/helpers" "^7.17.9"
-    "@babel/parser" "^7.17.9"
+    "@babel/parser" "^7.17.10"
     "@babel/template" "^7.16.7"
-    "@babel/traverse" "^7.17.9"
-    "@babel/types" "^7.17.0"
+    "@babel/traverse" "^7.17.10"
+    "@babel/types" "^7.17.10"
     convert-source-map "^1.7.0"
     debug "^4.1.0"
     gensync "^1.0.0-beta.2"
     json5 "^2.2.1"
     semver "^6.3.0"
 
-"@babel/generator@^7.17.9", "@babel/generator@^7.7.2":
-  version "7.17.9"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc"
-  integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==
+"@babel/generator@^7.17.10", "@babel/generator@^7.7.2":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189"
+  integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==
   dependencies:
-    "@babel/types" "^7.17.0"
+    "@babel/types" "^7.17.10"
+    "@jridgewell/gen-mapping" "^0.1.0"
     jsesc "^2.5.1"
-    source-map "^0.5.0"
 
 "@babel/helper-annotate-as-pure@^7.16.7":
   version "7.16.7"
@@ -86,17 +81,17 @@
     "@babel/helper-annotate-as-pure" "^7.16.7"
     "@babel/types" "^7.16.7"
 
-"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7":
-  version "7.17.7"
-  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46"
-  integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe"
+  integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==
   dependencies:
-    "@babel/compat-data" "^7.17.7"
+    "@babel/compat-data" "^7.17.10"
     "@babel/helper-validator-option" "^7.16.7"
-    browserslist "^4.17.5"
+    browserslist "^4.20.2"
     semver "^6.3.0"
 
-"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.9":
+"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6", "@babel/helper-create-class-features-plugin@^7.17.9":
   version "7.17.9"
   resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d"
   integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==
@@ -117,7 +112,29 @@
     "@babel/helper-annotate-as-pure" "^7.16.7"
     regexpu-core "^4.7.1"
 
-"@babel/helper-define-polyfill-provider@^0.3.0", "@babel/helper-define-polyfill-provider@^0.3.1":
+"@babel/helper-create-regexp-features-plugin@^7.17.0":
+  version "7.17.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1"
+  integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    regexpu-core "^5.0.1"
+
+"@babel/helper-define-polyfill-provider@^0.3.0":
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971"
+  integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==
+  dependencies:
+    "@babel/helper-compilation-targets" "^7.13.0"
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/traverse" "^7.13.0"
+    debug "^4.1.1"
+    lodash.debounce "^4.0.8"
+    resolve "^1.14.2"
+    semver "^6.1.2"
+
+"@babel/helper-define-polyfill-provider@^0.3.1":
   version "0.3.1"
   resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz"
   integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==
@@ -243,13 +260,6 @@
     "@babel/traverse" "^7.16.7"
     "@babel/types" "^7.16.7"
 
-"@babel/helper-simple-access@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz"
-  integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==
-  dependencies:
-    "@babel/types" "^7.16.7"
-
 "@babel/helper-simple-access@^7.17.7":
   version "7.17.7"
   resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367"
@@ -309,10 +319,10 @@
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9", "@babel/parser@^7.7.0":
-  version "7.17.9"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef"
-  integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.10", "@babel/parser@^7.7.0":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78"
+  integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==
 
 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
   version "7.16.7"
@@ -347,12 +357,12 @@
     "@babel/helper-create-class-features-plugin" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/plugin-proposal-class-static-block@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz"
-  integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==
+"@babel/plugin-proposal-class-static-block@^7.17.6":
+  version "7.17.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c"
+  integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==
   dependencies:
-    "@babel/helper-create-class-features-plugin" "^7.16.7"
+    "@babel/helper-create-class-features-plugin" "^7.17.6"
     "@babel/helper-plugin-utils" "^7.16.7"
     "@babel/plugin-syntax-class-static-block" "^7.14.5"
 
@@ -416,12 +426,12 @@
     "@babel/helper-plugin-utils" "^7.16.7"
     "@babel/plugin-syntax-numeric-separator" "^7.10.4"
 
-"@babel/plugin-proposal-object-rest-spread@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz"
-  integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==
+"@babel/plugin-proposal-object-rest-spread@^7.17.3":
+  version "7.17.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390"
+  integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==
   dependencies:
-    "@babel/compat-data" "^7.16.4"
+    "@babel/compat-data" "^7.17.0"
     "@babel/helper-compilation-targets" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
     "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
@@ -533,7 +543,7 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-jsx@^7.16.7":
+"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.16.7":
   version "7.16.7"
   resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz"
   integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
@@ -654,10 +664,10 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/plugin-transform-destructuring@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz"
-  integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==
+"@babel/plugin-transform-destructuring@^7.17.7":
+  version "7.17.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1"
+  integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==
   dependencies:
     "@babel/helper-plugin-utils" "^7.16.7"
 
@@ -723,23 +733,23 @@
     "@babel/helper-plugin-utils" "^7.16.7"
     babel-plugin-dynamic-import-node "^2.3.3"
 
-"@babel/plugin-transform-modules-commonjs@^7.16.8":
-  version "7.16.8"
-  resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz"
-  integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==
+"@babel/plugin-transform-modules-commonjs@^7.17.9":
+  version "7.17.9"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6"
+  integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==
   dependencies:
-    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helper-module-transforms" "^7.17.7"
     "@babel/helper-plugin-utils" "^7.16.7"
-    "@babel/helper-simple-access" "^7.16.7"
+    "@babel/helper-simple-access" "^7.17.7"
     babel-plugin-dynamic-import-node "^2.3.3"
 
-"@babel/plugin-transform-modules-systemjs@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz"
-  integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==
+"@babel/plugin-transform-modules-systemjs@^7.17.8":
+  version "7.17.8"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859"
+  integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==
   dependencies:
     "@babel/helper-hoist-variables" "^7.16.7"
-    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helper-module-transforms" "^7.17.7"
     "@babel/helper-plugin-utils" "^7.16.7"
     "@babel/helper-validator-identifier" "^7.16.7"
     babel-plugin-dynamic-import-node "^2.3.3"
@@ -752,12 +762,12 @@
     "@babel/helper-module-transforms" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8":
-  version "7.16.8"
-  resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz"
-  integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.17.10":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz#715dbcfafdb54ce8bccd3d12e8917296a4ba66a4"
+  integrity sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA==
   dependencies:
-    "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+    "@babel/helper-create-regexp-features-plugin" "^7.17.0"
 
 "@babel/plugin-transform-new-target@^7.16.7":
   version "7.16.7"
@@ -829,12 +839,12 @@
     "@babel/helper-annotate-as-pure" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/plugin-transform-regenerator@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz"
-  integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==
+"@babel/plugin-transform-regenerator@^7.17.9":
+  version "7.17.9"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c"
+  integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==
   dependencies:
-    regenerator-transform "^0.14.2"
+    regenerator-transform "^0.15.0"
 
 "@babel/plugin-transform-reserved-words@^7.16.7":
   version "7.16.7"
@@ -843,10 +853,10 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/plugin-transform-runtime@^7.17.0":
-  version "7.17.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70"
-  integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==
+"@babel/plugin-transform-runtime@^7.17.10":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz#b89d821c55d61b5e3d3c3d1d636d8d5a81040ae1"
+  integrity sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig==
   dependencies:
     "@babel/helper-module-imports" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
@@ -906,27 +916,27 @@
     "@babel/helper-create-regexp-features-plugin" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/preset-env@^7.16.11":
-  version "7.16.11"
-  resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz"
-  integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==
+"@babel/preset-env@^7.17.10":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.17.10.tgz#a81b093669e3eb6541bb81a23173c5963c5de69c"
+  integrity sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g==
   dependencies:
-    "@babel/compat-data" "^7.16.8"
-    "@babel/helper-compilation-targets" "^7.16.7"
+    "@babel/compat-data" "^7.17.10"
+    "@babel/helper-compilation-targets" "^7.17.10"
     "@babel/helper-plugin-utils" "^7.16.7"
     "@babel/helper-validator-option" "^7.16.7"
     "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7"
     "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7"
     "@babel/plugin-proposal-async-generator-functions" "^7.16.8"
     "@babel/plugin-proposal-class-properties" "^7.16.7"
-    "@babel/plugin-proposal-class-static-block" "^7.16.7"
+    "@babel/plugin-proposal-class-static-block" "^7.17.6"
     "@babel/plugin-proposal-dynamic-import" "^7.16.7"
     "@babel/plugin-proposal-export-namespace-from" "^7.16.7"
     "@babel/plugin-proposal-json-strings" "^7.16.7"
     "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7"
     "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7"
     "@babel/plugin-proposal-numeric-separator" "^7.16.7"
-    "@babel/plugin-proposal-object-rest-spread" "^7.16.7"
+    "@babel/plugin-proposal-object-rest-spread" "^7.17.3"
     "@babel/plugin-proposal-optional-catch-binding" "^7.16.7"
     "@babel/plugin-proposal-optional-chaining" "^7.16.7"
     "@babel/plugin-proposal-private-methods" "^7.16.11"
@@ -952,7 +962,7 @@
     "@babel/plugin-transform-block-scoping" "^7.16.7"
     "@babel/plugin-transform-classes" "^7.16.7"
     "@babel/plugin-transform-computed-properties" "^7.16.7"
-    "@babel/plugin-transform-destructuring" "^7.16.7"
+    "@babel/plugin-transform-destructuring" "^7.17.7"
     "@babel/plugin-transform-dotall-regex" "^7.16.7"
     "@babel/plugin-transform-duplicate-keys" "^7.16.7"
     "@babel/plugin-transform-exponentiation-operator" "^7.16.7"
@@ -961,15 +971,15 @@
     "@babel/plugin-transform-literals" "^7.16.7"
     "@babel/plugin-transform-member-expression-literals" "^7.16.7"
     "@babel/plugin-transform-modules-amd" "^7.16.7"
-    "@babel/plugin-transform-modules-commonjs" "^7.16.8"
-    "@babel/plugin-transform-modules-systemjs" "^7.16.7"
+    "@babel/plugin-transform-modules-commonjs" "^7.17.9"
+    "@babel/plugin-transform-modules-systemjs" "^7.17.8"
     "@babel/plugin-transform-modules-umd" "^7.16.7"
-    "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8"
+    "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.10"
     "@babel/plugin-transform-new-target" "^7.16.7"
     "@babel/plugin-transform-object-super" "^7.16.7"
     "@babel/plugin-transform-parameters" "^7.16.7"
     "@babel/plugin-transform-property-literals" "^7.16.7"
-    "@babel/plugin-transform-regenerator" "^7.16.7"
+    "@babel/plugin-transform-regenerator" "^7.17.9"
     "@babel/plugin-transform-reserved-words" "^7.16.7"
     "@babel/plugin-transform-shorthand-properties" "^7.16.7"
     "@babel/plugin-transform-spread" "^7.16.7"
@@ -979,11 +989,11 @@
     "@babel/plugin-transform-unicode-escapes" "^7.16.7"
     "@babel/plugin-transform-unicode-regex" "^7.16.7"
     "@babel/preset-modules" "^0.1.5"
-    "@babel/types" "^7.16.8"
+    "@babel/types" "^7.17.10"
     babel-plugin-polyfill-corejs2 "^0.3.0"
     babel-plugin-polyfill-corejs3 "^0.5.0"
     babel-plugin-polyfill-regenerator "^0.3.0"
-    core-js-compat "^3.20.2"
+    core-js-compat "^3.22.1"
     semver "^6.3.0"
 
 "@babel/preset-modules@^0.1.5":
@@ -1024,7 +1034,7 @@
   dependencies:
     regenerator-runtime "^0.12.0"
 
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
   version "7.17.9"
   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72"
   integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==
@@ -1047,26 +1057,26 @@
     "@babel/parser" "^7.16.7"
     "@babel/types" "^7.16.7"
 
-"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
-  version "7.17.9"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d"
-  integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==
+"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5"
+  integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==
   dependencies:
     "@babel/code-frame" "^7.16.7"
-    "@babel/generator" "^7.17.9"
+    "@babel/generator" "^7.17.10"
     "@babel/helper-environment-visitor" "^7.16.7"
     "@babel/helper-function-name" "^7.17.9"
     "@babel/helper-hoist-variables" "^7.16.7"
     "@babel/helper-split-export-declaration" "^7.16.7"
-    "@babel/parser" "^7.17.9"
-    "@babel/types" "^7.17.0"
+    "@babel/parser" "^7.17.10"
+    "@babel/types" "^7.17.10"
     debug "^4.1.0"
     globals "^11.1.0"
 
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
-  version "7.17.0"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b"
-  integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4"
+  integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==
   dependencies:
     "@babel/helper-validator-identifier" "^7.16.7"
     to-fast-properties "^2.0.0"
@@ -1076,44 +1086,62 @@
   resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz"
   integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
 
-"@emotion/cache@^11.1.3", "@emotion/cache@^11.4.0":
-  version "11.4.0"
-  resolved "https://registry.npmjs.org/@emotion/cache/-/cache-11.4.0.tgz"
-  integrity sha512-Zx70bjE7LErRO9OaZrhf22Qye1y4F7iDl+ITjet0J+i+B88PrAOBkKvaAWhxsZf72tDLajwCgfCjJ2dvH77C3g==
+"@emotion/babel-plugin@^11.7.1":
+  version "11.9.2"
+  resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz#723b6d394c89fb2ef782229d92ba95a740576e95"
+  integrity sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==
+  dependencies:
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/plugin-syntax-jsx" "^7.12.13"
+    "@babel/runtime" "^7.13.10"
+    "@emotion/hash" "^0.8.0"
+    "@emotion/memoize" "^0.7.5"
+    "@emotion/serialize" "^1.0.2"
+    babel-plugin-macros "^2.6.1"
+    convert-source-map "^1.5.0"
+    escape-string-regexp "^4.0.0"
+    find-root "^1.1.0"
+    source-map "^0.5.7"
+    stylis "4.0.13"
+
+"@emotion/cache@^11.4.0", "@emotion/cache@^11.7.1":
+  version "11.7.1"
+  resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.7.1.tgz#08d080e396a42e0037848214e8aa7bf879065539"
+  integrity sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==
   dependencies:
     "@emotion/memoize" "^0.7.4"
-    "@emotion/sheet" "^1.0.0"
+    "@emotion/sheet" "^1.1.0"
     "@emotion/utils" "^1.0.0"
     "@emotion/weak-memoize" "^0.2.5"
-    stylis "^4.0.3"
+    stylis "4.0.13"
 
 "@emotion/hash@^0.8.0":
   version "0.8.0"
   resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz"
   integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
 
-"@emotion/memoize@^0.7.4":
+"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5":
   version "0.7.5"
   resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz"
   integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==
 
-"@emotion/react@^11.1.1":
-  version "11.1.4"
-  resolved "https://registry.npmjs.org/@emotion/react/-/react-11.1.4.tgz"
-  integrity sha512-9gkhrW8UjV4IGRnEe4/aGPkUxoGS23aD9Vu6JCGfEDyBYL+nGkkRBoMFGAzCT9qFdyUvQp4UUtErbKWxq/JS4A==
+"@emotion/react@^11.8.1":
+  version "11.9.0"
+  resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.9.0.tgz#b6d42b1db3bd7511e7a7c4151dc8bc82e14593b8"
+  integrity sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ==
   dependencies:
-    "@babel/runtime" "^7.7.2"
-    "@emotion/cache" "^11.1.3"
-    "@emotion/serialize" "^1.0.0"
-    "@emotion/sheet" "^1.0.1"
-    "@emotion/utils" "^1.0.0"
+    "@babel/runtime" "^7.13.10"
+    "@emotion/babel-plugin" "^11.7.1"
+    "@emotion/cache" "^11.7.1"
+    "@emotion/serialize" "^1.0.3"
+    "@emotion/utils" "^1.1.0"
     "@emotion/weak-memoize" "^0.2.5"
     hoist-non-react-statics "^3.3.1"
 
-"@emotion/serialize@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.0.tgz"
-  integrity sha512-zt1gm4rhdo5Sry8QpCOpopIUIKU+mUSpV9WNmFILUraatm5dttNEaYzUWWSboSMUE6PtN2j1cAsuvcugfdI3mw==
+"@emotion/serialize@^1.0.2", "@emotion/serialize@^1.0.3":
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.3.tgz#99e2060c26c6292469fb30db41f4690e1c8fea63"
+  integrity sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA==
   dependencies:
     "@emotion/hash" "^0.8.0"
     "@emotion/memoize" "^0.7.4"
@@ -1121,10 +1149,10 @@
     "@emotion/utils" "^1.0.0"
     csstype "^3.0.2"
 
-"@emotion/sheet@^1.0.0", "@emotion/sheet@^1.0.1":
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.0.1.tgz"
-  integrity sha512-GbIvVMe4U+Zc+929N1V7nW6YYJtidj31lidSmdYcWozwoBIObXBnaJkKNDjZrLm9Nc0BR+ZyHNaRZxqNZbof5g==
+"@emotion/sheet@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2"
+  integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==
 
 "@emotion/unitless@^0.7.5":
   version "0.7.5"
@@ -1136,6 +1164,11 @@
   resolved "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz"
   integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==
 
+"@emotion/utils@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf"
+  integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==
+
 "@emotion/weak-memoize@^0.2.5":
   version "0.2.5"
   resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz"
@@ -1387,11 +1420,24 @@
     "@types/yargs" "^16.0.0"
     chalk "^4.0.0"
 
+"@jridgewell/gen-mapping@^0.1.0":
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
+  integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
+  dependencies:
+    "@jridgewell/set-array" "^1.0.0"
+    "@jridgewell/sourcemap-codec" "^1.4.10"
+
 "@jridgewell/resolve-uri@^3.0.3":
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72"
   integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==
 
+"@jridgewell/set-array@^1.0.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01"
+  integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==
+
 "@jridgewell/sourcemap-codec@^1.4.10":
   version "1.4.10"
   resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186"
@@ -2358,10 +2404,10 @@ babel-jest@^27.5.1:
     graceful-fs "^4.2.9"
     slash "^3.0.0"
 
-babel-loader@^8.2.4:
-  version "8.2.4"
-  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b"
-  integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==
+babel-loader@^8.2.5:
+  version "8.2.5"
+  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e"
+  integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==
   dependencies:
     find-cache-dir "^3.3.1"
     loader-utils "^2.0.0"
@@ -2407,6 +2453,15 @@ babel-plugin-lodash@^3.3.4:
     lodash "^4.17.10"
     require-package-name "^2.0.1"
 
+babel-plugin-macros@^2.6.1:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
+  integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
+  dependencies:
+    "@babel/runtime" "^7.7.2"
+    cosmiconfig "^6.0.0"
+    resolve "^1.12.0"
+
 babel-plugin-macros@^3.0.1:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1"
@@ -2731,15 +2786,26 @@ browserify-zlib@^0.2.0:
   dependencies:
     pako "~1.0.5"
 
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.19.1:
-  version "4.19.1"
-  resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz"
-  integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
+browserslist@^4.0.0, browserslist@^4.12.0:
+  version "4.16.6"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
+  integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
   dependencies:
-    caniuse-lite "^1.0.30001286"
-    electron-to-chromium "^1.4.17"
+    caniuse-lite "^1.0.30001219"
+    colorette "^1.2.2"
+    electron-to-chromium "^1.3.723"
     escalade "^3.1.1"
-    node-releases "^2.0.1"
+    node-releases "^1.1.71"
+
+browserslist@^4.20.2, browserslist@^4.20.3:
+  version "4.20.3"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf"
+  integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==
+  dependencies:
+    caniuse-lite "^1.0.30001332"
+    electron-to-chromium "^1.4.118"
+    escalade "^3.1.1"
+    node-releases "^2.0.3"
     picocolors "^1.0.0"
 
 bser@2.1.1:
@@ -2923,11 +2989,16 @@ caniuse-api@^3.0.0:
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001286:
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
   version "1.0.30001310"
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001310.tgz#da02cd07432c9eece6992689d1b84ca18139eea8"
   integrity sha512-cb9xTV8k9HTIUA3GnPUJCk0meUnrHL5gy5QePfDjxHyNBcnzPzrHFv5GqfP7ue5b1ZyzZL0RJboD6hQlPXjhjg==
 
+caniuse-lite@^1.0.30001332:
+  version "1.0.30001335"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz#899254a0b70579e5a957c32dced79f0727c61f2a"
+  integrity sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==
+
 chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
   version "1.1.3"
   resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
@@ -3192,6 +3263,11 @@ color@^3.0.0:
     color-convert "^1.9.3"
     color-string "^1.6.0"
 
+colorette@^1.2.2:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
+  integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
+
 colors@^1.4.0:
   version "1.4.0"
   resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz"
@@ -3302,7 +3378,7 @@ content-type@~1.0.4:
   resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
   integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
 
-convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
   version "1.8.0"
   resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz"
   integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
@@ -3336,12 +3412,12 @@ copy-descriptor@^0.1.0:
   resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"
   integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
 
-core-js-compat@^3.20.0, core-js-compat@^3.20.2:
-  version "3.20.3"
-  resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.3.tgz"
-  integrity sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw==
+core-js-compat@^3.20.0, core-js-compat@^3.22.1:
+  version "3.22.4"
+  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.4.tgz#d700f451e50f1d7672dcad0ac85d910e6691e579"
+  integrity sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA==
   dependencies:
-    browserslist "^4.19.1"
+    browserslist "^4.20.3"
     semver "7.0.0"
 
 core-js-pure@^3.0.0:
@@ -3369,6 +3445,17 @@ cosmiconfig@^5.0.0:
     js-yaml "^3.13.1"
     parse-json "^4.0.0"
 
+cosmiconfig@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
+  integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
+  dependencies:
+    "@types/parse-json" "^4.0.0"
+    import-fresh "^3.1.0"
+    parse-json "^5.0.0"
+    path-type "^4.0.0"
+    yaml "^1.7.2"
+
 cosmiconfig@^7.0.0:
   version "7.0.1"
   resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d"
@@ -4034,10 +4121,15 @@ ejs@^2.3.4:
   resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz"
   integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
 
-electron-to-chromium@^1.4.17:
-  version "1.4.57"
-  resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.57.tgz"
-  integrity sha512-FNC+P5K1n6pF+M0zIK+gFCoXcJhhzDViL3DRIGy2Fv5PohuSES1JHR7T+GlwxSxlzx4yYbsuzCZvHxcBSRCIOw==
+electron-to-chromium@^1.3.723:
+  version "1.3.736"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.736.tgz#f632d900a1f788dab22fec9c62ec5c9c8f0c4052"
+  integrity sha512-DY8dA7gR51MSo66DqitEQoUMQ0Z+A2DSXFi7tK304bdTVqczCAfUuyQw6Wdg8hIoo5zIxkU1L24RQtUce1Ioig==
+
+electron-to-chromium@^1.4.118:
+  version "1.4.129"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz#c675793885721beefff99da50f57c6525c2cd238"
+  integrity sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ==
 
 elliptic@^6.5.3:
   version "6.5.4"
@@ -4652,10 +4744,10 @@ expect@^27.5.1:
     jest-matcher-utils "^27.5.1"
     jest-message-util "^27.5.1"
 
-express@^4.17.1, express@^4.18.0:
-  version "4.18.0"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.18.0.tgz#7a426773325d0dd5406395220614c0db10b6e8e2"
-  integrity sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg==
+express@^4.17.1, express@^4.18.1:
+  version "4.18.1"
+  resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf"
+  integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==
   dependencies:
     accepts "~1.3.8"
     array-flatten "1.1.1"
@@ -4853,6 +4945,11 @@ find-cache-dir@^3.3.1:
     make-dir "^3.0.2"
     pkg-dir "^4.1.0"
 
+find-root@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+  integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+
 find-up@^2.1.0:
   version "2.1.0"
   resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"
@@ -5581,6 +5678,14 @@ import-fresh@^3.0.0, import-fresh@^3.2.1:
     parent-module "^1.0.0"
     resolve-from "^4.0.0"
 
+import-fresh@^3.1.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+  dependencies:
+    parent-module "^1.0.0"
+    resolve-from "^4.0.0"
+
 import-from@^2.1.0:
   version "2.1.0"
   resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz"
@@ -7485,10 +7590,15 @@ node-libs-browser@^2.2.1:
     util "^0.11.0"
     vm-browserify "^1.0.1"
 
-node-releases@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz"
-  integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
+node-releases@^1.1.71:
+  version "1.1.72"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
+  integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==
+
+node-releases@^2.0.3:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476"
+  integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==
 
 normalize-path@^2.1.1:
   version "2.1.1"
@@ -8947,14 +9057,14 @@ react-router@^4.3.1:
     prop-types "^15.6.1"
     warning "^4.0.1"
 
-react-select@^5.3.0:
-  version "5.3.0"
-  resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.3.0.tgz#dc77c1f95e1037ec4cb01c5e5d6272d80be8d3f6"
-  integrity sha512-GM6Fbv1+X+kb3e5Fc4oNeyOJkCIesY/D4NBiReKlGY4RxoeztFYm3J0KREgwMaIKQqwTiuLqTlpUBY3SYw5goQ==
+react-select@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.3.1.tgz#2cb651b71493e494c56f6b4ce40011669b34bd95"
+  integrity sha512-Y195MmhDoDAj/8gTDyYZU1Raf7tmZd81wxM6RkFko4pqJ4Xv0/ilqUMtSn+GYkwmSlTWeMlzh+e+t7PJgtuXPw==
   dependencies:
     "@babel/runtime" "^7.12.0"
     "@emotion/cache" "^11.4.0"
-    "@emotion/react" "^11.1.1"
+    "@emotion/react" "^11.8.1"
     "@types/react-transition-group" "^4.4.0"
     memoize-one "^5.0.0"
     prop-types "^15.6.0"
@@ -9149,6 +9259,13 @@ redux@^4.0.0, redux@^4.1.2:
   dependencies:
     "@babel/runtime" "^7.9.2"
 
+regenerate-unicode-properties@^10.0.1:
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56"
+  integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==
+  dependencies:
+    regenerate "^1.4.2"
+
 regenerate-unicode-properties@^9.0.0:
   version "9.0.0"
   resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz"
@@ -9158,7 +9275,7 @@ regenerate-unicode-properties@^9.0.0:
 
 regenerate@^1.4.2:
   version "1.4.2"
-  resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz"
+  resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
   integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
 
 regenerator-runtime@^0.11.0:
@@ -9176,10 +9293,10 @@ regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0
   resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz"
   integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
 
-regenerator-transform@^0.14.2:
-  version "0.14.5"
-  resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz"
-  integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
+regenerator-transform@^0.15.0:
+  version "0.15.0"
+  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537"
+  integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==
   dependencies:
     "@babel/runtime" "^7.8.4"
 
@@ -9216,11 +9333,28 @@ regexpu-core@^4.7.1:
     unicode-match-property-ecmascript "^2.0.0"
     unicode-match-property-value-ecmascript "^2.0.0"
 
+regexpu-core@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3"
+  integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==
+  dependencies:
+    regenerate "^1.4.2"
+    regenerate-unicode-properties "^10.0.1"
+    regjsgen "^0.6.0"
+    regjsparser "^0.8.2"
+    unicode-match-property-ecmascript "^2.0.0"
+    unicode-match-property-value-ecmascript "^2.0.0"
+
 regjsgen@^0.5.2:
   version "0.5.2"
   resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz"
   integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
 
+regjsgen@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d"
+  integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==
+
 regjsparser@^0.7.0:
   version "0.7.0"
   resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz"
@@ -9228,6 +9362,13 @@ regjsparser@^0.7.0:
   dependencies:
     jsesc "~0.5.0"
 
+regjsparser@^0.8.2:
+  version "0.8.4"
+  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f"
+  integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==
+  dependencies:
+    jsesc "~0.5.0"
+
 rellax@^1.12.1:
   version "1.12.1"
   resolved "https://registry.npmjs.org/rellax/-/rellax-1.12.1.tgz"
@@ -9494,10 +9635,10 @@ sass-loader@^10.2.0:
     schema-utils "^3.0.0"
     semver "^7.3.2"
 
-sass@^1.50.1:
-  version "1.50.1"
-  resolved "https://registry.yarnpkg.com/sass/-/sass-1.50.1.tgz#e9b078a1748863013c4712d2466ce8ca4e4ed292"
-  integrity sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==
+sass@^1.51.0:
+  version "1.51.0"
+  resolved "https://registry.yarnpkg.com/sass/-/sass-1.51.0.tgz#25ea36cf819581fe1fe8329e8c3a4eaaf70d2845"
+  integrity sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==
   dependencies:
     chokidar ">=3.0.0 <4.0.0"
     immutable "^4.0.0"
@@ -9889,7 +10030,7 @@ source-map@0.5.6:
   resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
   integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
 
-source-map@^0.5.0, source-map@^0.5.6:
+source-map@^0.5.6, source-map@^0.5.7:
   version "0.5.7"
   resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
   integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -10222,9 +10363,9 @@ stylehacks@^4.0.0:
     postcss "^7.0.0"
     postcss-selector-parser "^3.0.0"
 
-stylis@^4.0.3:
+stylis@4.0.13:
   version "4.0.13"
-  resolved "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz"
+  resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91"
   integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==
 
 substring-trie@^1.0.2:
@@ -10684,12 +10825,12 @@ unbox-primitive@^1.0.1:
 
 unicode-canonical-property-names-ecmascript@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz"
+  resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
   integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
 
 unicode-match-property-ecmascript@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz"
+  resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
   integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
   dependencies:
     unicode-canonical-property-names-ecmascript "^2.0.0"
@@ -10697,12 +10838,12 @@ unicode-match-property-ecmascript@^2.0.0:
 
 unicode-match-property-value-ecmascript@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz"
+  resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
   integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
 
 unicode-property-aliases-ecmascript@^2.0.0:
   version "2.0.0"
-  resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz"
+  resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8"
   integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==
 
 union-value@^1.0.0:
@@ -11343,7 +11484,7 @@ yallist@^3.0.2:
   resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
   integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
 
-yaml@^1.10.0:
+yaml@^1.10.0, yaml@^1.7.2:
   version "1.10.2"
   resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
   integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==