about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.circleci/config.yml6
-rw-r--r--.github/CODEOWNERS32
-rw-r--r--.github/FUNDING.yml2
-rw-r--r--.github/ISSUE_TEMPLATE/2.feature_request.yml1
-rw-r--r--.github/ISSUE_TEMPLATE/3.support.md10
-rw-r--r--.github/ISSUE_TEMPLATE/config.yml7
-rw-r--r--.github/workflows/build-image.yml2
-rw-r--r--AUTHORS.md639
-rw-r--r--CHANGELOG.md198
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock120
-rw-r--r--SECURITY.md18
-rw-r--r--app/controllers/api/v1/notifications_controller.rb19
-rw-r--r--app/javascript/mastodon/locales/af.json1
-rw-r--r--app/javascript/mastodon/locales/ar.json1
-rw-r--r--app/javascript/mastodon/locales/ast.json3
-rw-r--r--app/javascript/mastodon/locales/bg.json1
-rw-r--r--app/javascript/mastodon/locales/bn.json1
-rw-r--r--app/javascript/mastodon/locales/br.json1
-rw-r--r--app/javascript/mastodon/locales/ca.json1
-rw-r--r--app/javascript/mastodon/locales/co.json1
-rw-r--r--app/javascript/mastodon/locales/cs.json1
-rw-r--r--app/javascript/mastodon/locales/cy.json1
-rw-r--r--app/javascript/mastodon/locales/da.json11
-rw-r--r--app/javascript/mastodon/locales/de.json1
-rw-r--r--app/javascript/mastodon/locales/el.json1
-rw-r--r--app/javascript/mastodon/locales/eo.json1
-rw-r--r--app/javascript/mastodon/locales/es-AR.json1
-rw-r--r--app/javascript/mastodon/locales/es-MX.json1
-rw-r--r--app/javascript/mastodon/locales/es.json1
-rw-r--r--app/javascript/mastodon/locales/et.json1
-rw-r--r--app/javascript/mastodon/locales/eu.json1
-rw-r--r--app/javascript/mastodon/locales/fa.json1
-rw-r--r--app/javascript/mastodon/locales/fi.json1
-rw-r--r--app/javascript/mastodon/locales/fr.json3
-rw-r--r--app/javascript/mastodon/locales/ga.json1
-rw-r--r--app/javascript/mastodon/locales/gd.json1
-rw-r--r--app/javascript/mastodon/locales/gl.json1
-rw-r--r--app/javascript/mastodon/locales/he.json1
-rw-r--r--app/javascript/mastodon/locales/hi.json1
-rw-r--r--app/javascript/mastodon/locales/hr.json1
-rw-r--r--app/javascript/mastodon/locales/hu.json1
-rw-r--r--app/javascript/mastodon/locales/hy.json1
-rw-r--r--app/javascript/mastodon/locales/id.json1
-rw-r--r--app/javascript/mastodon/locales/io.json1
-rw-r--r--app/javascript/mastodon/locales/is.json1
-rw-r--r--app/javascript/mastodon/locales/it.json1
-rw-r--r--app/javascript/mastodon/locales/ja.json27
-rw-r--r--app/javascript/mastodon/locales/ka.json1
-rw-r--r--app/javascript/mastodon/locales/kab.json1
-rw-r--r--app/javascript/mastodon/locales/kk.json1
-rw-r--r--app/javascript/mastodon/locales/kmr.json7
-rw-r--r--app/javascript/mastodon/locales/kn.json1
-rw-r--r--app/javascript/mastodon/locales/ko.json1
-rw-r--r--app/javascript/mastodon/locales/ku.json1
-rw-r--r--app/javascript/mastodon/locales/kw.json1
-rw-r--r--app/javascript/mastodon/locales/lt.json1
-rw-r--r--app/javascript/mastodon/locales/lv.json1
-rw-r--r--app/javascript/mastodon/locales/mk.json1
-rw-r--r--app/javascript/mastodon/locales/ml.json1
-rw-r--r--app/javascript/mastodon/locales/mr.json1
-rw-r--r--app/javascript/mastodon/locales/ms.json1
-rw-r--r--app/javascript/mastodon/locales/nl.json1
-rw-r--r--app/javascript/mastodon/locales/nn.json1
-rw-r--r--app/javascript/mastodon/locales/no.json1
-rw-r--r--app/javascript/mastodon/locales/oc.json1
-rw-r--r--app/javascript/mastodon/locales/pa.json1
-rw-r--r--app/javascript/mastodon/locales/pl.json1
-rw-r--r--app/javascript/mastodon/locales/pt-BR.json1
-rw-r--r--app/javascript/mastodon/locales/pt-PT.json1
-rw-r--r--app/javascript/mastodon/locales/ro.json1
-rw-r--r--app/javascript/mastodon/locales/ru.json25
-rw-r--r--app/javascript/mastodon/locales/sa.json1
-rw-r--r--app/javascript/mastodon/locales/sc.json1
-rw-r--r--app/javascript/mastodon/locales/si.json1
-rw-r--r--app/javascript/mastodon/locales/sk.json1
-rw-r--r--app/javascript/mastodon/locales/sl.json1
-rw-r--r--app/javascript/mastodon/locales/sq.json1
-rw-r--r--app/javascript/mastodon/locales/sr-Latn.json1
-rw-r--r--app/javascript/mastodon/locales/sr.json1
-rw-r--r--app/javascript/mastodon/locales/sv.json1
-rw-r--r--app/javascript/mastodon/locales/szl.json1
-rw-r--r--app/javascript/mastodon/locales/ta.json1
-rw-r--r--app/javascript/mastodon/locales/tai.json1
-rw-r--r--app/javascript/mastodon/locales/te.json1
-rw-r--r--app/javascript/mastodon/locales/th.json59
-rw-r--r--app/javascript/mastodon/locales/tr.json1
-rw-r--r--app/javascript/mastodon/locales/tt.json7
-rw-r--r--app/javascript/mastodon/locales/ug.json1
-rw-r--r--app/javascript/mastodon/locales/uk.json1
-rw-r--r--app/javascript/mastodon/locales/ur.json1
-rw-r--r--app/javascript/mastodon/locales/vi.json33
-rw-r--r--app/javascript/mastodon/locales/zgh.json1
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json7
-rw-r--r--app/javascript/mastodon/locales/zh-HK.json1
-rw-r--r--app/javascript/mastodon/locales/zh-TW.json1
-rw-r--r--app/models/admin/account_action.rb14
-rw-r--r--app/models/notification.rb24
-rw-r--r--app/models/preview_card.rb4
-rw-r--r--app/models/status.rb4
-rw-r--r--app/views/admin/reports/_status.html.haml2
-rw-r--r--app/views/admin/trends/links/_preview_card.html.haml4
-rw-r--r--app/views/admin/trends/statuses/_status.html.haml4
-rw-r--r--app/views/statuses/_detailed_status.html.haml2
-rw-r--r--app/views/statuses/_simple_status.html.haml2
-rw-r--r--config/initializers/content_security_policy.rb16
-rw-r--r--config/initializers/pghero.rb1
-rw-r--r--config/locales/activerecord.tt.yml2
-rw-r--r--config/locales/ast.yml13
-rw-r--r--config/locales/ca.yml1
-rw-r--r--config/locales/da.yml316
-rw-r--r--config/locales/doorkeeper.da.yml2
-rw-r--r--config/locales/doorkeeper.ja.yml5
-rw-r--r--config/locales/doorkeeper.ru.yml1
-rw-r--r--config/locales/doorkeeper.sl.yml6
-rw-r--r--config/locales/el.yml1
-rw-r--r--config/locales/en.yml2
-rw-r--r--config/locales/eo.yml2
-rw-r--r--config/locales/es-AR.yml33
-rw-r--r--config/locales/es.yml1
-rw-r--r--config/locales/fr.yml2
-rw-r--r--config/locales/hu.yml1
-rw-r--r--config/locales/id.yml10
-rw-r--r--config/locales/is.yml1
-rw-r--r--config/locales/it.yml1
-rw-r--r--config/locales/ja.yml3
-rw-r--r--config/locales/kmr.yml4
-rw-r--r--config/locales/lv.yml1
-rw-r--r--config/locales/ru.yml1
-rw-r--r--config/locales/simple_form.da.yml2
-rw-r--r--config/locales/simple_form.eo.yml2
-rw-r--r--config/locales/simple_form.sl.yml3
-rw-r--r--config/locales/simple_form.th.yml3
-rw-r--r--config/locales/simple_form.tt.yml2
-rw-r--r--config/locales/simple_form.vi.yml8
-rw-r--r--config/locales/sl.yml6
-rw-r--r--config/locales/th.yml32
-rw-r--r--config/locales/tr.yml1
-rw-r--r--config/locales/tt.yml32
-rw-r--r--config/locales/vi.yml26
-rw-r--r--config/locales/zh-CN.yml3
-rw-r--r--config/locales/zh-TW.yml1
-rw-r--r--lib/mastodon/version.rb6
-rw-r--r--package.json12
-rw-r--r--spec/controllers/api/v1/notifications_controller_spec.rb79
-rw-r--r--yarn.lock122
146 files changed, 1337 insertions, 800 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 6d89e670a..4fcc8c618 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,8 +1,8 @@
 version: 2.1
 
 orbs:
-  ruby: circleci/ruby@1.2.0
-  node: circleci/node@4.7.0
+  ruby: circleci/ruby@1.4.0
+  node: circleci/node@5.0.1
 
 executors:
   default:
@@ -23,7 +23,7 @@ executors:
         environment:
           POSTGRES_USER: root
           POSTGRES_HOST_AUTH_METHOD: trust
-      - image: circleci/redis:6-alpine
+      - image: cimg/redis:6.2
 
 commands:
   install-system-dependencies:
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index fd6f74689..000000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1,32 +0,0 @@
-# CODEOWNERS for mastodon/mastodon
-
-# Translators
-# To add translator, copy these lines, replace `fr` with appropriate language code and replace `@żelipapą` with user's GitHub nickname preceded by `@` sign or e-mail address.
-# /app/javascript/mastodon/locales/fr.json @żelipapą
-# /app/views/user_mailer/*.fr.html.erb @żelipapą
-# /app/views/user_mailer/*.fr.text.erb @żelipapą
-# /config/locales/*.fr.yml @żelipapą
-# /config/locales/fr.yml @żelipapą
-
-# Polish
-/app/javascript/mastodon/locales/pl.json @m4sk1n
-/app/views/user_mailer/*.pl.html.erb @m4sk1n
-/app/views/user_mailer/*.pl.text.erb @m4sk1n
-/config/locales/*.pl.yml @m4sk1n
-/config/locales/pl.yml @m4sk1n
-
-# French
-/app/javascript/mastodon/locales/fr.json @aldarone
-/app/javascript/mastodon/locales/whitelist_fr.json @aldarone
-/app/views/user_mailer/*.fr.html.erb @aldarone
-/app/views/user_mailer/*.fr.text.erb @aldarone
-/config/locales/*.fr.yml @aldarone
-/config/locales/fr.yml @aldarone
-
-# Dutch
-/app/javascript/mastodon/locales/nl.json @jeroenpraat
-/app/javascript/mastodon/locales/whitelist_nl.json @jeroenpraat
-/app/views/user_mailer/*.nl.html.erb @jeroenpraat
-/app/views/user_mailer/*.nl.text.erb @jeroenpraat
-/config/locales/*.nl.yml @jeroenpraat
-/config/locales/nl.yml @jeroenpraat
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 9526e17db..be750a5e4 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,3 +1,3 @@
 patreon: mastodon
 open_collective: mastodon
-github: [Gargron]
+custom: https://sponsor.joinmastodon.org
diff --git a/.github/ISSUE_TEMPLATE/2.feature_request.yml b/.github/ISSUE_TEMPLATE/2.feature_request.yml
index 00aad1341..6626c2876 100644
--- a/.github/ISSUE_TEMPLATE/2.feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/2.feature_request.yml
@@ -1,5 +1,6 @@
 name: Feature Request
 description: I have a suggestion
+labels: suggestion
 body:
   - type: markdown
     attributes:
diff --git a/.github/ISSUE_TEMPLATE/3.support.md b/.github/ISSUE_TEMPLATE/3.support.md
deleted file mode 100644
index e2217da8b..000000000
--- a/.github/ISSUE_TEMPLATE/3.support.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-name: Support
-about: Ask for help with your deployment
-title: DO NOT CREATE THIS ISSUE
----
-
-We primarily use GitHub as a bug and feature tracker. For usage questions, troubleshooting of deployments and other individual technical assistance, please use one of the resources below:
-
-- https://discourse.joinmastodon.org
-- #mastodon on irc.freenode.net
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 768868516..7c0dbaf67 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,5 +1,8 @@
 blank_issues_enabled: false
 contact_links:
-  - name: Mastodon Meta Discussion Board
-    url: https://discourse.joinmastodon.org/
+  - name: GitHub Discussions
+    url: https://github.com/mastodon/mastodon/discussions
     about: Please ask and answer questions here.
+  - name: Bug Bounty Program
+    url: https://app.intigriti.com/programs/mastodon/mastodonio/detail
+    about: Please report security vulnerabilities here.
diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml
index 281fa33b7..eccef8700 100644
--- a/.github/workflows/build-image.yml
+++ b/.github/workflows/build-image.yml
@@ -31,7 +31,7 @@ jobs:
             latest=true
           tags: |
             type=edge,branch=main
-            type=semver,pattern={{ raw }}
+            type=match,pattern=v(.*),group=0
             type=ref,event=pr
       - uses: docker/build-push-action@v2
         with:
diff --git a/AUTHORS.md b/AUTHORS.md
index 596451737..9fc5f44f1 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -12,31 +12,32 @@ and provided thanks to the work of the following contributors:
 * [akihikodaki](https://github.com/akihikodaki)
 * [mjankowski](https://github.com/mjankowski)
 * [unarist](https://github.com/unarist)
+* [noellabo](https://github.com/noellabo)
 * [abcang](https://github.com/abcang)
 * [yiskah](https://github.com/yiskah)
-* [noellabo](https://github.com/noellabo)
-* [nolanlawson](https://github.com/nolanlawson)
 * [mayaeh](https://github.com/mayaeh)
+* [nolanlawson](https://github.com/nolanlawson)
 * [ysksn](https://github.com/ysksn)
+* [tribela](https://github.com/tribela)
 * [sorin-davidoi](https://github.com/sorin-davidoi)
 * [lynlynlynx](https://github.com/lynlynlynx)
 * [m4sk1n](mailto:me@m4sk.in)
 * [Marcin Mikołajczak](mailto:me@m4sk.in)
-* [tribela](https://github.com/tribela)
 * [renatolond](https://github.com/renatolond)
+* [shleeable](https://github.com/shleeable)
 * [alpaca-tc](https://github.com/alpaca-tc)
 * [zunda](https://github.com/zunda)
 * [nclm](https://github.com/nclm)
 * [ineffyble](https://github.com/ineffyble)
-* [shleeable](https://github.com/shleeable)
+* [ariasuni](https://github.com/ariasuni)
 * [Masoud Abkenar](mailto:ampbox@gmail.com)
 * [blackle](https://github.com/blackle)
 * [Quent-in](https://github.com/Quent-in)
 * [JantsoP](https://github.com/JantsoP)
-* [ariasuni](https://github.com/ariasuni)
+* [Brawaru](https://github.com/Brawaru)
 * [nullkal](https://github.com/nullkal)
 * [yookoala](https://github.com/yookoala)
-* [Brawaru](https://github.com/Brawaru)
+* [dunn](https://github.com/dunn)
 * [Aditoo17](https://github.com/Aditoo17)
 * [Quenty31](https://github.com/Quenty31)
 * [marek-lach](https://github.com/marek-lach)
@@ -46,10 +47,9 @@ and provided thanks to the work of the following contributors:
 * [eramdam](https://github.com/eramdam)
 * [Jeroen](mailto:jeroenpraat@users.noreply.github.com)
 * [takayamaki](https://github.com/takayamaki)
-* [dunn](https://github.com/dunn)
 * [masarakki](https://github.com/masarakki)
-* [ticky](https://github.com/ticky)
 * [trwnh](https://github.com/trwnh)
+* [ticky](https://github.com/ticky)
 * [ThisIsMissEm](https://github.com/ThisIsMissEm)
 * [hinaloe](https://github.com/hinaloe)
 * [hcmiya](https://github.com/hcmiya)
@@ -73,13 +73,13 @@ and provided thanks to the work of the following contributors:
 * [MaciekBaron](https://github.com/MaciekBaron)
 * [SerCom_KC](mailto:sercom-kc@users.noreply.github.com)
 * [Sylvhem](https://github.com/Sylvhem)
+* [koyuawsmbrtn](https://github.com/koyuawsmbrtn)
 * [MitarashiDango](https://github.com/MitarashiDango)
 * [rinsuki](https://github.com/rinsuki)
 * [angristan](https://github.com/angristan)
 * [JeanGauthier](https://github.com/JeanGauthier)
 * [kschaper](https://github.com/kschaper)
 * [beatrix-bitrot](https://github.com/beatrix-bitrot)
-* [koyuawsmbrtn](https://github.com/koyuawsmbrtn)
 * [BenLubar](https://github.com/BenLubar)
 * [mkljczk](https://github.com/mkljczk)
 * [adbelle](https://github.com/adbelle)
@@ -89,11 +89,12 @@ and provided thanks to the work of the following contributors:
 * [yhirano55](https://github.com/yhirano55)
 * [devkral](https://github.com/devkral)
 * [camponez](https://github.com/camponez)
-* [hugogameiro](https://github.com/hugogameiro)
+* [Hugo Gameiro](mailto:hmgameiro@gmail.com)
 * [SerCom_KC](mailto:szescxz@gmail.com)
 * [aschmitz](https://github.com/aschmitz)
 * [mfmfuyu](https://github.com/mfmfuyu)
 * [kedamaDQ](https://github.com/kedamaDQ)
+* [mashirozx](https://github.com/mashirozx)
 * [fpiesche](https://github.com/fpiesche)
 * [gandaro](https://github.com/gandaro)
 * [johnsudaar](https://github.com/johnsudaar)
@@ -115,41 +116,41 @@ and provided thanks to the work of the following contributors:
 * [pfm-eyesightjp](https://github.com/pfm-eyesightjp)
 * [fakenine](https://github.com/fakenine)
 * [tsuwatch](https://github.com/tsuwatch)
+* [progval](https://github.com/progval)
 * [victorhck](https://github.com/victorhck)
-* [manuelviens](https://github.com/manuelviens)
+* [manuelviens](mailto:manuelviens@users.noreply.github.com)
 * [tateisu](https://github.com/tateisu)
 * [fvh-P](https://github.com/fvh-P)
+* [lfuelling](https://github.com/lfuelling)
 * [rtucker](https://github.com/rtucker)
 * [Anna e só](mailto:contraexemplos@gmail.com)
 * [dariusk](https://github.com/dariusk)
 * [kazu9su](https://github.com/kazu9su)
-* [Komic](https://github.com/Komic)
+* [komic](https://github.com/komic)
 * [lmorchard](https://github.com/lmorchard)
 * [diomed](https://github.com/diomed)
 * [Neetshin](mailto:neetshin@neetsh.in)
 * [rainyday](https://github.com/rainyday)
 * [tcitworld](https://github.com/tcitworld)
-* [ProgVal](https://github.com/ProgVal)
 * [valentin2105](https://github.com/valentin2105)
 * [yuntan](https://github.com/yuntan)
 * [goofy-bz](mailto:goofy@babelzilla.org)
 * [kadiix](https://github.com/kadiix)
 * [kodacs](https://github.com/kodacs)
 * [marcin mikołajczak](mailto:me@m4sk.in)
+* [berkes](https://github.com/berkes)
 * [KScl](https://github.com/KScl)
 * [sterdev](https://github.com/sterdev)
-* [mashirozx](https://github.com/mashirozx)
 * [TheKinrar](https://github.com/TheKinrar)
-* [007lva](https://github.com/007lva)
 * [AA4ch1](https://github.com/AA4ch1)
 * [alexgleason](https://github.com/alexgleason)
-* [Bèr Kessels](mailto:ber@berk.es)
 * [cpytel](https://github.com/cpytel)
 * [northerner](https://github.com/northerner)
+* [weex](https://github.com/weex)
 * [fhemberger](https://github.com/fhemberger)
 * [Gomasy](https://github.com/Gomasy)
 * [greysteil](https://github.com/greysteil)
-* [hendotcat](https://github.com/hendotcat)
+* [henrycatalinismith](https://github.com/henrycatalinismith)
 * [d6rkaiz](https://github.com/d6rkaiz)
 * [ladyisatis](https://github.com/ladyisatis)
 * [JMendyk](https://github.com/JMendyk)
@@ -160,6 +161,8 @@ and provided thanks to the work of the following contributors:
 * [pawelngei](https://github.com/pawelngei)
 * [reneklacan](https://github.com/reneklacan)
 * [ekiru](https://github.com/ekiru)
+* [Izorkin](https://github.com/Izorkin)
+* [unasuke](https://github.com/unasuke)
 * [geta6](https://github.com/geta6)
 * [happycoloredbanana](https://github.com/happycoloredbanana)
 * [joenepraat](https://github.com/joenepraat)
@@ -168,11 +171,11 @@ and provided thanks to the work of the following contributors:
 * [spla](mailto:sp@mastodont.cat)
 * [tomfhowe](https://github.com/tomfhowe)
 * [noraworld](https://github.com/noraworld)
-* [lfuelling](https://github.com/lfuelling)
 * [aji-su](https://github.com/aji-su)
+* [ikuradon](https://github.com/ikuradon)
 * [nzws](https://github.com/nzws)
 * [duxovni](https://github.com/duxovni)
-* [smorimoto](https://github.com/smorimoto)
+* [SuperSandro2000](https://github.com/SuperSandro2000)
 * [178inaba](https://github.com/178inaba)
 * [acid-chicken](https://github.com/acid-chicken)
 * [xgess](https://github.com/xgess)
@@ -194,37 +197,37 @@ and provided thanks to the work of the following contributors:
 * [Dar13](https://github.com/Dar13)
 * [nevillepark](https://github.com/nevillepark)
 * [ornithocoder](https://github.com/ornithocoder)
-* [pwoolcoc](https://github.com/pwoolcoc)
+* [Paul Woolcock](mailto:paul@woolcock.us)
 * [pierreozoux](https://github.com/pierreozoux)
 * [qguv](https://github.com/qguv)
 * [Ram Lmn](mailto:ramlmn@users.noreply.github.com)
+* [rgroothuijsen](https://github.com/rgroothuijsen)
 * [Sascha](mailto:sascha@serenitylabs.cloud)
 * [harukasan](https://github.com/harukasan)
 * [stamak](https://github.com/stamak)
 * [Technowix](https://github.com/Technowix)
 * [Zoeille](https://github.com/Zoeille)
-* [Thor Harald Johansen](mailto:thj@thj.no)
+* [Thorwegian](https://github.com/Thorwegian)
 * [0x70b1a5](https://github.com/0x70b1a5)
 * [gled-rs](https://github.com/gled-rs)
 * [Valentin_NC](mailto:valentin.ouvrard@nautile.sarl)
 * [R0ckweb](https://github.com/R0ckweb)
-* [Izorkin](https://github.com/Izorkin)
-* [unasuke](https://github.com/unasuke)
 * [caasi](https://github.com/caasi)
+* [chandrn7](https://github.com/chandrn7)
 * [chr-1x](https://github.com/chr-1x)
 * [esetomo](https://github.com/esetomo)
 * [foxiehkins](https://github.com/foxiehkins)
 * [highemerly](https://github.com/highemerly)
 * [hoodie](mailto:hoodiekitten@outlook.com)
 * [kaiyou](https://github.com/kaiyou)
+* [007lva](https://github.com/007lva)
 * [luzi82](https://github.com/luzi82)
 * [slice](https://github.com/slice)
 * [tmm576](https://github.com/tmm576)
 * [unsmell](mailto:unsmell@users.noreply.github.com)
 * [valerauko](https://github.com/valerauko)
+* [Grawl](https://github.com/Grawl)
 * [chriswmartin](https://github.com/chriswmartin)
-* [SuperSandro2000](https://github.com/SuperSandro2000)
-* [ikuradon](https://github.com/ikuradon)
 * [AndreLewin](https://github.com/AndreLewin)
 * [0xflotus](https://github.com/0xflotus)
 * [redtachyons](https://github.com/redtachyons)
@@ -234,18 +237,21 @@ and provided thanks to the work of the following contributors:
 * [Andrew](mailto:andrewlchronister@gmail.com)
 * [arielrodrigues](https://github.com/arielrodrigues)
 * [aurelien-reeves](https://github.com/aurelien-reeves)
+* [BSKY](mailto:git@bsky.moe)
 * [elegaanz](https://github.com/elegaanz)
 * [estuans](https://github.com/estuans)
 * [dissolve](https://github.com/dissolve)
 * [PurpleBooth](https://github.com/PurpleBooth)
 * [bradurani](https://github.com/bradurani)
 * [wavebeem](https://github.com/wavebeem)
-* [bruwalfas](https://github.com/bruwalfas)
+* [thermosflasche](https://github.com/thermosflasche)
 * [LottieVixen](https://github.com/LottieVixen)
 * [wchristian](https://github.com/wchristian)
 * [muffinista](https://github.com/muffinista)
 * [cdutson](https://github.com/cdutson)
 * [farlistener](https://github.com/farlistener)
+* [baby-gnu](https://github.com/baby-gnu)
+* [danieljakots](https://github.com/danieljakots)
 * [divergentdave](https://github.com/divergentdave)
 * [DavidLibeau](https://github.com/DavidLibeau)
 * [dmerejkowsky](https://github.com/dmerejkowsky)
@@ -256,8 +262,10 @@ and provided thanks to the work of the following contributors:
 * [unstabler](https://github.com/unstabler)
 * [potato4d](https://github.com/potato4d)
 * [h-izumi](https://github.com/h-izumi)
+* [HolgerHuo](https://github.com/HolgerHuo)
 * [ErikXXon](https://github.com/ErikXXon)
 * [ian-kelling](https://github.com/ian-kelling)
+* [eltociear](https://github.com/eltociear)
 * [immae](https://github.com/immae)
 * [J0WI](https://github.com/J0WI)
 * [vahnj](https://github.com/vahnj)
@@ -283,10 +291,12 @@ and provided thanks to the work of the following contributors:
 * [Nathaniel Suchy](mailto:me@lunorian.is)
 * [ndarville](https://github.com/ndarville)
 * [NimaBoscarino](https://github.com/NimaBoscarino)
+* [aquarla](https://github.com/aquarla)
 * [Abzol](https://github.com/Abzol)
 * [PatOnTheBack](https://github.com/PatOnTheBack)
 * [xPaw](https://github.com/xPaw)
 * [petzah](https://github.com/petzah)
+* [PeterDaveHello](https://github.com/PeterDaveHello)
 * [ignisf](https://github.com/ignisf)
 * [lumenwrites](https://github.com/lumenwrites)
 * [remram44](https://github.com/remram44)
@@ -310,25 +320,30 @@ and provided thanks to the work of the following contributors:
 * [yannicka](https://github.com/yannicka)
 * [ikasoumen](https://github.com/ikasoumen)
 * [zacanger](https://github.com/zacanger)
+* [l2dy](https://github.com/l2dy)
 * [amazedkoumei](https://github.com/amazedkoumei)
 * [anon5r](https://github.com/anon5r)
 * [aus-social](https://github.com/aus-social)
+* [bsky](mailto:git@bsky.moe)
 * [bsky](mailto:me@imbsky.net)
-* [chandrn7](https://github.com/chandrn7)
 * [codl](https://github.com/codl)
 * [cpsdqs](https://github.com/cpsdqs)
 * [barzamin](https://github.com/barzamin)
 * [gol-cha](https://github.com/gol-cha)
+* [gunchleoc](https://github.com/gunchleoc)
 * [fhalna](https://github.com/fhalna)
 * [haoyayoi](https://github.com/haoyayoi)
 * [ik11235](https://github.com/ik11235)
 * [kawax](https://github.com/kawax)
 * [shrft](https://github.com/shrft)
+* [luigi](mailto:lvargas@rankia.com)
+* [luzpaz](https://github.com/luzpaz)
 * [mbajur](https://github.com/mbajur)
 * [matsurai25](https://github.com/matsurai25)
 * [mecab](https://github.com/mecab)
 * [nicobz25](https://github.com/nicobz25)
 * [niwatori24](https://github.com/niwatori24)
+* [noiob](https://github.com/noiob)
 * [oliverkeeble](https://github.com/oliverkeeble)
 * [partev](https://github.com/partev)
 * [pinfort](https://github.com/pinfort)
@@ -341,7 +356,6 @@ and provided thanks to the work of the following contributors:
 * [vidarlee](https://github.com/vidarlee)
 * [vjackson725](https://github.com/vjackson725)
 * [wxcafe](https://github.com/wxcafe)
-* [Grawl](https://github.com/Grawl)
 * [新都心(Neet Shin)](mailto:nucx@dio-vox.com)
 * [clarfonthey](https://github.com/clarfonthey)
 * [cygnan](https://github.com/cygnan)
@@ -390,7 +404,6 @@ and provided thanks to the work of the following contributors:
 * [Brad Janke](mailto:brad.janke@gmail.com)
 * [bclindner](https://github.com/bclindner)
 * [brycied00d](https://github.com/brycied00d)
-* [berkes](https://github.com/berkes)
 * [carlosjs23](https://github.com/carlosjs23)
 * [cgxxx](https://github.com/cgxxx)
 * [kibitan](https://github.com/kibitan)
@@ -411,7 +424,6 @@ and provided thanks to the work of the following contributors:
 * [dalehenries](https://github.com/dalehenries)
 * [daprice](https://github.com/daprice)
 * [da2x](https://github.com/da2x)
-* [danieljakots](https://github.com/danieljakots)
 * [codesections](https://github.com/codesections)
 * [dar5hak](https://github.com/dar5hak)
 * [kant](https://github.com/kant)
@@ -420,7 +432,7 @@ and provided thanks to the work of the following contributors:
 * [caldwell](https://github.com/caldwell)
 * [davidcelis](https://github.com/davidcelis)
 * [davefp](https://github.com/davefp)
-* [yipdw](https://github.com/yipdw)
+* [hannahwhy](https://github.com/hannahwhy)
 * [debanshuk](https://github.com/debanshuk)
 * [mascali33](https://github.com/mascali33)
 * [DerekNonGeneric](https://github.com/DerekNonGeneric)
@@ -445,20 +457,20 @@ and provided thanks to the work of the following contributors:
 * [GenbuHase](https://github.com/GenbuHase)
 * [nilsding](https://github.com/nilsding)
 * [hattori6789](https://github.com/hattori6789)
-* [algernon](https://github.com/algernon)
-* [Fastbyte01](https://github.com/Fastbyte01)
-* [unrelentingtech](https://github.com/unrelentingtech)
-* [gfaivre](https://github.com/gfaivre)
-* [Fiaxhs](https://github.com/Fiaxhs)
-* [rasjonell](https://github.com/rasjonell)
-* [reedcourty](https://github.com/reedcourty)
-* [anneau](https://github.com/anneau)
-* [lanodan](https://github.com/lanodan)
-* [Harmon758](https://github.com/Harmon758)
-* [HellPie](https://github.com/HellPie)
-* [Habu-Kagumba](https://github.com/Habu-Kagumba)
-* [suzukaze](https://github.com/suzukaze)
-* [Hiromi-Kai](https://github.com/Hiromi-Kai)
+* [Gergely Nagy](mailto:algernon@users.noreply.github.com)
+* [Giuseppe Pignataro](mailto:rogepix@gmail.com)
+* [Greg V](mailto:greg@unrelenting.technology)
+* [Guewen FAIVRE](mailto:guewen.faivre@elao.com)
+* [Guillaume Lo Re](mailto:lowreg@gmail.com)
+* [Gurgen Hayrapetyan](mailto:info.gurgen@gmail.com)
+* [György Nádudvari](mailto:reedcourty@users.noreply.github.com)
+* [HIKARU KOBORI](mailto:hk.uec.univ@gmail.com)
+* [Haelwenn Monnier](mailto:lanodan@users.noreply.github.com)
+* [Harmon](mailto:harmon758@gmail.com)
+* [HellPie](mailto:hellpie@users.noreply.github.com)
+* [Herbert Kagumba](mailto:habukagumba@gmail.com)
+* [Hiroe Jun](mailto:jun.hiroe@gmail.com)
+* [Hiromi Kai](mailto:pie05041008@gmail.com)
 * [Hisham Muhammad](mailto:hisham@gobolinux.org)
 * [Hugo "Slaynash" Flores](mailto:hugoflores@hotmail.fr)
 * [INAGAKI Hiroshi](mailto:musashino205@users.noreply.github.com)
@@ -466,7 +478,6 @@ and provided thanks to the work of the following contributors:
 * [Ian McCowan](mailto:imccowan@gmail.com)
 * [Ian McDowell](mailto:me@ianmcdowell.net)
 * [Iijima Yasushi](mailto:kurage.cc@gmail.com)
-* [Ikko Ashimine](mailto:eltociear@gmail.com)
 * [Ingo Blechschmidt](mailto:iblech@web.de)
 * [J Yeary](mailto:usbsnowcrash@users.noreply.github.com)
 * [Jack Michaud](mailto:jack-michaud@users.noreply.github.com)
@@ -486,6 +497,7 @@ and provided thanks to the work of the following contributors:
 * [Jordan Guerder](mailto:jguerder@fr.pulseheberg.net)
 * [Joseph Mingrone](mailto:jehops@users.noreply.github.com)
 * [Josh Leeb-du Toit](mailto:mail@joshleeb.com)
+* [Josh Soref](mailto:2119212+jsoref@users.noreply.github.com)
 * [Joshua Wood](mailto:josh@joshuawood.net)
 * [Julien](mailto:tiwy57@users.noreply.github.com)
 * [Julien Deswaef](mailto:juego@requiem4tv.com)
@@ -502,6 +514,7 @@ and provided thanks to the work of the following contributors:
 * [Leo Wzukw](mailto:leowzukw@users.noreply.github.com)
 * [Leonie](mailto:62470640+bubblineyuri@users.noreply.github.com)
 * [Lex Alexander](mailto:l.alexander10@gmail.com)
+* [LinAGKar](mailto:linus.kardell@gmail.com)
 * [Lorenz Diener](mailto:lorenzd@gmail.com)
 * [Luc Didry](mailto:ldidry@users.noreply.github.com)
 * [Lukas Burk](mailto:jemus42@users.noreply.github.com)
@@ -534,6 +547,7 @@ and provided thanks to the work of the following contributors:
 * [Milton Mazzarri](mailto:milmazz@gmail.com)
 * [Minku Lee](mailto:premist@me.com)
 * [Minori Hiraoka](mailto:mnkai@users.noreply.github.com)
+* [MitarashiDango](mailto:mitarashi_dango@mail.matcha-soft.com)
 * [Mitchell Hentges](mailto:mitch9654@gmail.com)
 * [Mostafa Ahangarha](mailto:ahangarha@users.noreply.github.com)
 * [Mouse Reeve](mailto:mousereeve@riseup.net)
@@ -553,7 +567,6 @@ and provided thanks to the work of the following contributors:
 * [Norayr Chilingarian](mailto:norayr@arnet.am)
 * [Noëlle Anthony](mailto:noelle.d.anthony@gmail.com)
 * [N氏](mailto:uenok.htc@gmail.com)
-* [OSAMU SATO](mailto:satosamu@gmail.com)
 * [Olivier Nicole](mailto:olivierthnicole@gmail.com)
 * [Oskari Noppa](mailto:noppa@users.noreply.github.com)
 * [Otakan](mailto:otakan951@gmail.com)
@@ -566,6 +579,7 @@ and provided thanks to the work of the following contributors:
 * [Ratmir Karabut](mailto:rkarabut@sfmodern.ru)
 * [Reto Kromer](mailto:retokromer@users.noreply.github.com)
 * [Rob Watson](mailto:rfwatson@users.noreply.github.com)
+* [Rohan Sharma](mailto:i.am.lone.survivor@protonmail.com)
 * [Ryan Freebern](mailto:ryan@freebern.org)
 * [Ryan Wade](mailto:ryan.wade@protonmail.com)
 * [Ryo Kajiwara](mailto:kfe-fecn6.prussian@s01.info)
@@ -595,6 +609,8 @@ and provided thanks to the work of the following contributors:
 * [StefOfficiel](mailto:pichard.stephane@free.fr)
 * [Steven Tappert](mailto:admin@dark-it.net)
 * [Stéphane Guillou](mailto:stephane.guillou@member.fsf.org)
+* [Su Yang](mailto:soulteary@users.noreply.github.com)
+* [Sumak](mailto:44816995+kawsay@users.noreply.github.com)
 * [Svetlozar Todorov](mailto:svetlik@users.noreply.github.com)
 * [Sébastien Santoro](mailto:dereckson@espace-win.org)
 * [Tad Thorley](mailto:phaedryx@users.noreply.github.com)
@@ -611,6 +627,7 @@ and provided thanks to the work of the following contributors:
 * [Tomonori Murakami](mailto:crosslife777@gmail.com)
 * [TomoyaShibata](mailto:wind.of.hometown@gmail.com)
 * [Treyssat-Vincent Nino](mailto:treyssatvincent@users.noreply.github.com)
+* [Truong Nguyen](mailto:truongnmt.dev@gmail.com)
 * [Udo Kramer](mailto:optik@fluffel.io)
 * [Una](mailto:una@unascribed.com)
 * [Ushitora Anqou](mailto:ushitora@anqou.net)
@@ -621,6 +638,7 @@ and provided thanks to the work of the following contributors:
 * [Wenceslao Páez Chávez](mailto:wcpaez@gmail.com)
 * [Wesley Ellis](mailto:tahnok@gmail.com)
 * [Wiktor](mailto:wiktor@metacode.biz)
+* [Wonderfall](mailto:wonderfall@protonmail.com)
 * [Wonderfall](mailto:wonderfall@schrodinger.io)
 * [Y.Yamashiro](mailto:shukukei@mojizuri.jp)
 * [YDrogen](mailto:ydrogen45@gmail.com)
@@ -634,11 +652,13 @@ and provided thanks to the work of the following contributors:
 * [Yeechan Lu](mailto:wz.bluesnow@gmail.com)
 * [Your Name](mailto:lorenzd@gmail.com)
 * [Yusuke Abe](mailto:moonset20@gmail.com)
+* [Zach Neill](mailto:neillz@berea.edu)
 * [Zachary Spector](mailto:logicaldash@gmail.com)
 * [ZiiX](mailto:ziix@users.noreply.github.com)
 * [asria-jp](mailto:is@alicematic.com)
 * [ava](mailto:vladooku@users.noreply.github.com)
 * [benklop](mailto:benklop@gmail.com)
+* [bobbyd0g](mailto:93697464+bobbyd0g@users.noreply.github.com)
 * [bsky](mailto:git@imbsky.net)
 * [caesarologia](mailto:lopesgemelli.1@gmail.com)
 * [cbayerlein](mailto:c.bayerlein@gmail.com)
@@ -646,6 +666,7 @@ and provided thanks to the work of the following contributors:
 * [chrolis](mailto:chrolis@users.noreply.github.com)
 * [cormo](mailto:cormorant2+github@gmail.com)
 * [d0p1](mailto:dopi-sama@hush.com)
+* [dogelover911](mailto:84288771+dogelover911@users.noreply.github.com)
 * [dxwc](mailto:dxwc@users.noreply.github.com)
 * [evilny0](mailto:evilny0@moomoocamp.net)
 * [febrezo](mailto:felixbrezo@gmail.com)
@@ -656,6 +677,8 @@ and provided thanks to the work of the following contributors:
 * [guigeekz](mailto:pattusg@gmail.com)
 * [hakoai](mailto:hk--76@qa2.so-net.ne.jp)
 * [haosbvnker](mailto:github@chaosbunker.com)
+* [heguro](mailto:65112898+heguro@users.noreply.github.com)
+* [helloworldstack](mailto:66512512+helloworldstack@users.noreply.github.com)
 * [ichi_i](mailto:51489410+ichi-i@users.noreply.github.com)
 * [isati](mailto:phil@juchnowi.cz)
 * [jacob](mailto:jacobherringtondeveloper@gmail.com)
@@ -671,7 +694,7 @@ and provided thanks to the work of the following contributors:
 * [kedama](mailto:32974885+kedamadq@users.noreply.github.com)
 * [kuro5hin](mailto:rusty@kuro5hin.org)
 * [leo60228](mailto:leo@60228.dev)
-* [luzpaz](mailto:luzpaz@users.noreply.github.com)
+* [matildepark](mailto:matilde.park@pm.me)
 * [maxypy](mailto:maxime@mpigou.fr)
 * [mhe](mailto:mail@marcus-herrmann.com)
 * [mike castleman](mailto:m@mlcastle.net)
@@ -681,14 +704,15 @@ and provided thanks to the work of the following contributors:
 * [muan](mailto:muan@github.com)
 * [namelessGonbai](mailto:43787036+namelessgonbai@users.noreply.github.com)
 * [neetshin](mailto:neetshin@neetsh.in)
-* [noiob](mailto:8197071+noiob@users.noreply.github.com)
 * [notozeki](mailto:notozeki@users.noreply.github.com)
 * [ntl-purism](mailto:57806346+ntl-purism@users.noreply.github.com)
 * [nzws](mailto:git-yuzu@svk.jp)
+* [potpro](mailto:pptppctt@gmail.com)
 * [proxy](mailto:51172302+3n-k1@users.noreply.github.com)
 * [rch850](mailto:rich850@gmail.com)
 * [roikale](mailto:roikale@users.noreply.github.com)
 * [rysiekpl](mailto:rysiek@hackerspace.pl)
+* [sasanquaneuf](mailto:sasanquaneuf@gmail.com)
 * [saturday06](mailto:dyob@lunaport.net)
 * [scd31](mailto:57571338+scd31@users.noreply.github.com)
 * [scriptjunkie](mailto:scriptjunkie@scriptjunkie.us)
@@ -698,6 +722,7 @@ and provided thanks to the work of the following contributors:
 * [syui](mailto:syui@users.noreply.github.com)
 * [tackeyy](mailto:mailto.takita.yusuke@gmail.com)
 * [taicv](mailto:chuvantai@gmail.com)
+* [tkr](mailto:account@kgtkr.net)
 * [tmyt](mailto:shigure@refy.net)
 * [trevDev()](mailto:trev@trevdev.ca)
 * [tsia](mailto:github@tsia.de)
@@ -707,6 +732,7 @@ and provided thanks to the work of the following contributors:
 * [y-temp4](mailto:y.temp4@gmail.com)
 * [ymmtmdk](mailto:ymmtmdk@gmail.com)
 * [yoshipc](mailto:yoooo@yoshipc.net)
+* [zunda](mailto:zundan@gmail.com)
 * [Özcan Zafer AYAN](mailto:ozcanzaferayan@gmail.com)
 * [ばん](mailto:detteiu0321@gmail.com)
 * [ふるふる](mailto:frfs@users.noreply.github.com)
@@ -726,107 +752,126 @@ This document is provided for informational purposes only. Since it is only upda
 Following people have contributed to translation of Mastodon:
 
 - GunChleoc (*Scottish Gaelic*)
-- ᛤᚤᛠᛥⴲ 👽 (KNTRO) (*Spanish, Argentina*)
-- adrmzz (*Sardinian*)
-- Hồ Nhất Duy (kantcer) (*Vietnamese*)
-- Zoltán Gera (gerazo) (*Hungarian*)
+- ケインツロ 👾 (KNTRO) (*Spanish, Argentina*)
 - Sveinn í Felli (sveinki) (*Icelandic*)
-- qezwan (*Persian, Sorani (Kurdish)*)
-- NCAA (*Danish*)
-- Ramdziana F Y (rafeyu) (*Indonesian*)
-- taicv (*Vietnamese*)
-- ButterflyOfFire (BoFFire) (*French, Arabic, Kabyle*)
+- Hồ Nhất Duy (honhatduy) (*Vietnamese*)
+- Zoltán Gera (gerazo) (*Hungarian*)
+- Kristaps_M (*Latvian*)
+- NCAA (*French, Danish*)
+- adrmzz (*Sardinian*)
 - Xosé M. (XoseM) (*Spanish, Galician*)
-- Evert Prants (IcyDiamond) (*Estonian*)
-- Besnik_b (*Albanian*)
+- Ramdziana F Y (rafeyu) (*Indonesian*)
+- Jeong Arm (Kjwon15) (*Spanish, Japanese, Korean, Esperanto*)
 - Emanuel Pina (emanuelpina) (*Portuguese*)
-- Jeong Arm (Kjwon15) (*Japanese, Korean, Esperanto*)
-- Alix Rossi (palindromordnilap) (*French, Esperanto, Corsican*)
+- qezwan (*Persian, Sorani (Kurdish)*)
+- Besnik_b (*Albanian*)
+- ButterflyOfFire (BoFFire) (*French, Arabic, Kabyle*)
 - Thai Localization (thl10n) (*Thai*)
+- Cyax (Cyaxares) (*Kurmanji (Kurdish)*)
+- taicv (*Vietnamese*)
 - Daniele Lira Mereb (danilmereb) (*Portuguese, Brazilian*)
+- spla (*Spanish, Catalan*)
+- Evert Prants (IcyDiamond) (*Estonian*)
+- koyu (*German*)
+- Alix Rossi (palindromordnilap) (*French, Esperanto, Corsican*)
 - Joene (joenepraat) (*Dutch*)
-- Kristijan Tkalec (lapor) (*Slovenian*)
 - stan ionut (stanionut12) (*Romanian*)
-- spla (*Spanish, Catalan*)
+- Mastodon 中文译者 (mastodon-linguist) (*Chinese Simplified*)
+- Kristijan Tkalec (lapor) (*Slovenian*)
+- Danial Behzadi (danialbehzadi) (*Persian*)
+- Asier Iturralde Sarasola (aldatsa) (*Basque*)
+- ManeraKai (*Arabic*)
 - мачко (ma4ko) (*Bulgarian*)
-- 奈卜拉 (nebula_moe) (*Chinese Simplified*)
+- Roboron (*Spanish*)
+- Alessandro Levati (Oct326) (*Italian*)
+- xatier (*Chinese Traditional, Chinese Traditional, Hong Kong*)
+- Ondřej Pokorný (unextro) (*Czech*)
+- Alexander Sorokin (Brawaru) (*French, Catalan, Danish, German, Greek, Hungarian, Armenian, Korean, Portuguese, Russian, Albanian, Swedish, Ukrainian, Vietnamese, Galician*)
 - kamee (*Armenian*)
-- AJ-عجائب البرمجة (Esmail_Hazem) (*Arabic*)
 - Michal Stanke (mstanke) (*Czech*)
-- Danial Behzadi (danialbehzadi) (*Persian*)
 - borys_sh (*Ukrainian*)
-- Asier Iturralde Sarasola (aldatsa) (*Basque*)
 - Imre Kristoffer Eilertsen (DandelionSprout) (*Norwegian*)
-- koyu (*German*)
 - yeft (*Chinese Traditional, Chinese Traditional, Hong Kong*)
 - Miguel Mayol (mitcoes) (*Spanish, Catalan*)
-- Sasha Sorokin (Brawaru) (*French, Catalan, Danish, German, Greek, Hungarian, Armenian, Korean, Russian, Albanian, Swedish, Ukrainian, Vietnamese, Galician*)
-- Roboron (*Spanish*)
+- Marek Ľach (mareklach) (*Polish, Slovak*)
+- Manuel Viens (manuelviens) (*French*)
+- Kimmo Kujansuu (mrkujansuu) (*Finnish*)
 - Koala Yeung (yookoala) (*Chinese Traditional, Hong Kong*)
-- Ondřej Pokorný (unextro) (*Czech*)
+- enolp (*Asturian*)
 - Osoitz (*Basque*)
 - Peterandre (*Norwegian, Norwegian Nynorsk*)
 - tzium (*Sardinian*)
-- Mélanie Chauvel (ariasuni) (*French, Arabic, Czech, German, Greek, Hungarian, Slovenian, Ukrainian, Chinese Simplified, Portuguese, Brazilian, Persian, Norwegian Nynorsk, Esperanto, Breton, Corsican, Sardinian, Kabyle*)
-- Iváns (Ivans_translator) (*Galician*)
 - Maya Minatsuki (mayaeh) (*Japanese*)
-- Manuel Viens (manuelviens) (*French*)
-- Alessandro Levati (Oct326) (*Italian*)
+- Mélanie Chauvel (ariasuni) (*French, Arabic, Czech, German, Greek, Hungarian, Slovenian, Ukrainian, Chinese Simplified, Portuguese, Brazilian, Persian, Norwegian Nynorsk, Esperanto, Breton, Corsican, Sardinian, Kabyle*)
+- T. E. Kalaycı (tekrei) (*Turkish*)
+- Takeçi (polygoat) (*French, Italian*)
+- Galician Translator (Galician_translator) (*Galician*)
 - lamnatos (*Greek*)
 - Sean Young (assanges) (*Chinese Traditional*)
 - tolstoevsky (*Russian*)
-- enolp (*Asturian*)
+- Ihor Hordiichuk (ihor_ck) (*Ukrainian*)
+- Ali Demirtaş (alidemirtas) (*Turkish*)
 - Jasmine Cam Andrever (gourmas) (*Cornish*)
+- coxde (*Chinese Simplified*)
 - gagik_ (*Armenian*)
 - Masoud Abkenar (mabkenar) (*Persian*)
 - arshat (*Kazakh*)
 - Marcin Mikołajczak (mkljczkk) (*Czech, Polish, Russian*)
-- Marek Ľach (mareklach) (*Polish, Slovak*)
-- Ali Demirtaş (alidemirtas) (*Turkish*)
+- Jeff Huang (s8321414) (*Chinese Traditional*)
 - Blak Ouille (BlakOuille16) (*French*)
+- e (diveedd) (*Kurmanji (Kurdish)*)
 - Em St Cenydd (cancennau) (*Welsh*)
 - Diluns (*Occitan*)
-- Muha Aliss (muhaaliss) (*Turkish*)
+- Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48.moe) (mnh48) (*Malay*)
+- Tagomago (tagomago) (*French, Spanish*)
 - Jurica (ahjk) (*Croatian*)
 - Aditoo17 (*Czech*)
+- Tigran (tigransimonyan) (*Armenian*)
 - vishnuvaratharajan (*Tamil*)
 - pulmonarycosignerkindness (*Swedish*)
+- calypsoopenmail (*French*)
 - cybergene (cyber-gene) (*Japanese*)
-- Takeçi (polygoat) (*French, Italian*)
-- xatier (*Chinese Traditional*)
-- Ihor Hordiichuk (ihor_ck) (*Ukrainian*)
+- Bran_Ruz (*Breton*)
+- Gearguy (*Finnish*)
+- GiorgioHerbie (*Italian*)
+- Balázs Meskó (mesko.balazs) (*Czech, Hungarian*)
+- Martin (miles) (*Slovenian*)
 - regulartranslator (*Portuguese, Brazilian*)
+- Saederup92 (*Danish*)
 - ozzii (*French, Serbian (Cyrillic)*)
 - Irfan (Irfan_Radz) (*Malay*)
-- Saederup92 (*Danish*)
-- Akarshan Biswas (biswasab) (*Bengali, Sanskrit*)
 - Yi-Jyun Pan (pan93412) (*Chinese Traditional*)
+- ClearlyClaire (*French, Icelandic*)
+- Akarshan Biswas (biswasab) (*Bengali, Sanskrit*)
+- Kristoffer Grundström (Umeaboy) (*Swedish*)
 - Rafael H L Moretti (Moretti) (*Portuguese, Brazilian*)
 - d5Ziif3K (*Ukrainian*)
-- GiorgioHerbie (*Italian*)
+- හෙළබස (HelaBasa) (*Sinhala*)
+- xpil (*Polish*)
+- Rojdayek (*Kurmanji (Kurdish)*)
 - christalleras (*Norwegian Nynorsk*)
+- Allen Zhong (AstroProfundis) (*Chinese Simplified*)
 - Taloran (*Norwegian Nynorsk*)
-- ThibG (*French, Icelandic*)
+- Sokratis Alichanidis (alichani) (*Greek*)
+- Catalina (catalina.st) (*Romanian*)
 - otrapersona (*Spanish, Spanish, Mexico*)
-- Store (HelaBasa) (*Sinhala*)
+- Ryo (DrRyo) (*Korean*)
 - Mauzi (*German, Swedish*)
 - atarashiako (*Chinese Simplified*)
-- 101010 (101010pl) (*Polish*)
 - erictapen (*German*)
-- Tagomago (tagomago) (*French, Spanish*)
+- 101010 (101010pl) (*Polish*)
 - Jaz-Michael King (jazmichaelking) (*Welsh*)
-- coxde (*Chinese Simplified*)
-- T. E. Kalaycı (tekrei) (*Turkish*)
+- axi (*Finnish*)
 - silkevicious (*Italian*)
 - Floxu (fredrikdim1) (*Norwegian Nynorsk*)
-- Ryo (DrRyo) (*Korean*)
+- NadieAishi (*Spanish, Spanish, Mexico*)
 - Bertil Hedkvist (Berrahed) (*Swedish*)
 - William(ѕ)ⁿ (wmlgr) (*Spanish*)
+- Eshagh (eshagh79) (*Persian*)
+- LNDDYL (*Chinese Traditional*)
 - norayr (*Armenian*)
 - Satnam S Virdi (pika10singh) (*Punjabi*)
 - Tiago Epifânio (tfve) (*Portuguese*)
-- Balázs Meskó (mesko.balazs) (*Hungarian*)
-- Sokratis Alichanidis (alichani) (*Greek*)
 - Mentor Gashi (mentorgashi.com) (*Albanian*)
 - carolinagiorno (*Portuguese, Brazilian*)
 - Hayk Khachatryan (brutusromanus123) (*Armenian*)
@@ -834,394 +879,472 @@ Following people have contributed to translation of Mastodon:
 - Bharat Kumar (Marwari) (*Hindi*)
 - Austra Muizniece (aus_m) (*Latvian*)
 - ThonyVezbe (*Breton*)
+- Just Spanish (7_7) (*Spanish, Mexico*)
 - v4vachan (*Malayalam*)
+- bilfri (*Danish*)
 - dkdarshan760 (*Sanskrit*)
-- tykayn (*French*)
-- axi (*Finnish*)
-- Selyan Slimane AMIRI (SelyanKab) (*Kabyle*)
 - Timur Seber (seber) (*Tatar*)
+- Slimane Selyan AMIRI (SelyanKab) (*Kabyle*)
+- VaiTon (*Italian*)
+- Vik (ViktorOn) (*Danish, Russian*)
+- tykayn (*French*)
+- GCardo (*Portuguese, Brazilian*)
 - taoxvx (*Danish*)
 - Hrach Mkrtchyan (mhrach87) (*Armenian*)
 - sabri (thetomatoisavegetable) (*Spanish, Spanish, Argentina*)
 - Dewi (Unkorneg) (*French, Breton*)
 - CoelacanthusHex (*Chinese Simplified*)
-- syncopams (*Chinese Simplified, Chinese Traditional, Chinese Traditional, Hong Kong*)
 - Rhys Harrison (rhedders) (*Esperanto*)
-- Hakim Oubouali (zenata1) (*Standard Moroccan Tamazight*)
+- syncopams (*Chinese Simplified, Chinese Traditional, Chinese Traditional, Hong Kong*)
 - SteinarK (*Norwegian Nynorsk*)
+- Maxine B. Vågnes (vagnes) (*Norwegian, Norwegian Nynorsk*)
+- Hakim Oubouali (zenata1) (*Standard Moroccan Tamazight*)
+- ahangarha (*Persian*)
 - Lalo Tafolla (lalotafo) (*Spanish, Spanish, Mexico*)
-- Mathias B. Vagnes (vagnes) (*Norwegian*)
 - dashersyed (*Urdu (Pakistan)*)
-- Acolyte (666noob404) (*Ukrainian*)
 - Conight Wang (xfddwhh) (*Chinese Simplified*)
 - liffon (*Swedish*)
 - Damjan Dimitrioski (gnud) (*Macedonian*)
+- Rikard Linde (rikardlinde) (*Swedish*)
+- rondnunes (*Portuguese, Brazilian*)
+- strubbl (*German*)
 - PPNplus (*Thai*)
+- Frontier Translation Ltd. (frontier-translation) (*Chinese Simplified*)
 - shioko (*Chinese Simplified*)
+- Kahina Mess (K_hina) (*Kabyle*)
 - ZiriSut (*Kabyle*)
-- Evgeny Petrov (kondra007) (*Russian*)
+- Groosha (groosha) (*Russian*)
+- Hexandcube (hexandcube) (*Polish*)
 - Gwenn (Belvar) (*Breton*)
+- 游荡 (MamaShip) (*Chinese Simplified*)
 - StanleyFrew (*French*)
+- mynameismonkey (*Welsh*)
+- Edward Navarro (EdwardNavarro) (*Spanish*)
 - Nikita Epifanov (Nikets) (*Russian*)
 - jaranta (*Finnish*)
 - Slobodan Simić (Слободан Симић) (slsimic) (*Serbian (Cyrillic)*)
+- retiolus (*Catalan*)
+- iVampireSP (*Chinese Simplified, Chinese Traditional*)
 - Felicia Jongleur (midsommar) (*Swedish*)
 - Denys (dector) (*Ukrainian*)
-- iVampireSP (*Chinese Simplified, Chinese Traditional*)
-- Pukima (pukimaaa) (*German*)
-- 游荡 (MamaShip) (*Chinese Simplified*)
+- Mo_der Steven (SakuraPuare) (*Chinese Simplified*)
 - Vanege (*Esperanto*)
-- Rikard Linde (rikardlinde) (*Swedish*)
 - Jess Rafn (therealyez) (*Danish*)
-- strubbl (*German*)
 - Stasiek Michalski (hellcp) (*Polish*)
 - dxwc (*Bengali*)
-- jmontane (*Catalan*)
+- Filbert Salim (gamesbert6) (*Indonesian*)
 - Liboide (*Spanish*)
-- Hexandcube (hexandcube) (*Polish*)
+- jmontane (*Catalan*)
 - Chris Kay (chriskarasoulis) (*Greek*)
 - Johan Schiff (schyffel) (*Swedish*)
+- Rex_sa (rex07) (*Arabic*)
 - Arunmozhi (tecoholic) (*Tamil*)
 - zer0-x (ZER0-X) (*Arabic*)
 - kat (katktv) (*Russian, Ukrainian*)
 - Lauren Liberda (selfisekai) (*Polish*)
-- mynameismonkey (*Welsh*)
 - oti4500 (*Hungarian, Ukrainian*)
+- Delta (Delta-Time) (*Japanese*)
+- Michael Zeevi (maze88) (*Hebrew*)
+- SarfarazAhmed (*Urdu (Pakistan)*)
 - Mats Gunnar Ahlqvist (goqbi) (*Swedish*)
 - diazepan (*Spanish, Spanish, Argentina*)
 - marzuquccen (*Kabyle*)
+- atriix (*Swedish*)
 - VictorCorreia (victorcorreia1984) (*Afrikaans*)
-- Tigran (tigransimonyan) (*Armenian*)
+- Remito (remitocat) (*Japanese*)
+- AlexKoala (alexkoala) (*Korean*)
 - Juan José Salvador Piedra (JuanjoSalvador) (*Spanish*)
 - BurekzFinezt (*Serbian (Cyrillic)*)
+- 森の子リスのミーコの大冒険 (Phroneris) (*Japanese*)
+- asnomgtu (*Hungarian*)
 - SHeija (*Finnish*)
-- Gearguy (*Finnish*)
-- atriix (*Swedish*)
+- Врабац (Slovorad) (*Serbian (Cyrillic)*)
+- Dženan (Dzenan) (*Swedish*)
 - Jack R (isaac.97_WT) (*Spanish*)
 - antonyho (*Chinese Traditional, Hong Kong*)
-- asnomgtu (*Hungarian*)
-- ahangarha (*Persian*)
+- FreddyG (*Esperanto*)
 - andruhov (*Russian, Ukrainian*)
 - phena109 (*Chinese Traditional, Hong Kong*)
 - Aryamik Sharma (Aryamik) (*Swedish, Hindi*)
 - Unmual (*Spanish*)
-- 森の子リスのミーコの大冒険 (Phroneris) (*Japanese*)
+- Adrián Graña (alaris83) (*Spanish*)
+- cruz2020 (*Portuguese*)
+- vpei (*Chinese Simplified*)
 - るいーね (ruine) (*Japanese*)
 - Sam Tux (imahbub) (*Bengali*)
-- Kristoffer Grundström (Umeaboy) (*Swedish*)
 - igordrozniak (*Polish*)
+- Michał Sidor (michcioperz) (*Polish*)
 - Isaac Huang (caasih) (*Chinese Traditional*)
 - AW Unad (awcodify) (*Indonesian*)
-- Allen Zhong (AstroProfundis) (*Chinese Simplified*)
+- 1Alino (*Slovak*)
 - Cutls (cutls) (*Japanese*)
+- Goudarz Jafari (Goudarz) (*Persian*)
+- Parodper (*Galician*)
+- 1 (Ipsumry) (*Spanish*)
 - Falling Snowdin (tghgg) (*Vietnamese*)
-- Ray (Ipsumry) (*Spanish*)
-- Gianfranco Fronteddu (gianfro.gianfro) (*Sardinian*)
 - Rasmus Lindroth (RasmusLindroth) (*Swedish*)
+- Gianfranco Fronteddu (gianfro.gianfro) (*Sardinian*)
 - Andrea Lo Iacono (niels0n) (*Italian*)
-- Parodper (*Galician*)
 - fucsia (*Italian*)
-- NadieAishi (*Spanish, Spanish, Mexico*)
+- Vedran Serbu (SerenoXGen) (*Croatian*)
 - Kinshuk Sunil (kinshuksunil) (*Hindi*)
 - Ullas Joseph (ullasjoseph) (*Malayalam*)
-- Goudarz Jafari (Goudarz) (*Persian*)
+- al_._ (*German, Russian*)
+- Matthías Páll Gissurarson (icetritlo) (*Icelandic*)
+- Percy (kecrily) (*Chinese Simplified*)
 - Yu-Pai Liu (tedliou) (*Chinese Traditional*)
+- KcKcZi (*Chinese Simplified*)
 - Amarin Cemthong (acitmaster) (*Thai*)
 - Johannes Nilsson (nlssn) (*Swedish*)
 - juanda097 (juanda-097) (*Spanish*)
+- xsml (*Chinese Simplified*)
 - Anunnakey (*Macedonian*)
 - erikkemp (*Dutch*)
 - erikstl (*Esperanto*)
-- bobchao (*Chinese Traditional*)
 - twpenguin (*Chinese Traditional*)
-- MadeInSteak (*Finnish*)
+- Po-chiang Chao (bobchao) (*Chinese Traditional*)
+- Marcus Myge (mygg-priv) (*Norwegian*)
 - Esther (esthermations) (*Portuguese*)
+- MadeInSteak (*Finnish*)
 - t_aus_m (*German*)
+- serapolis (*Japanese, Chinese Simplified, Chinese Traditional, Chinese Traditional, Hong Kong*)
 - Heimen Stoffels (Vistaus) (*Dutch*)
 - Rajarshi Guha (rajarshiguha) (*Bengali*)
-- Mo_der Steven (SakuraPuare) (*Chinese Simplified*)
 - Gopal Sharma (gopalvirat) (*Hindi*)
-- arethsu (*Swedish*)
-- Carlos Solís (csolisr) (*Esperanto*)
+- Linnéa (lesbian_subnet) (*Swedish*)
+- 北䑓如法 (Nyoho) (*Japanese*)
+- abidin toumi (Zet24) (*Arabic*)
 - Tofiq Abdula (Xwla) (*Sorani (Kurdish)*)
+- Carlos Solís (csolisr) (*Esperanto*)
+- Yamagishi Kazutoshi (ykzts) (*Japanese, Vietnamese, Icelandic, Sorani (Kurdish)*)
 - Parthan S Ramanujam (parthan) (*Tamil*)
 - Kasper Nymand (KasperNymand) (*Danish*)
-- Jeff Huang (s8321414) (*Chinese Traditional*)
-- TS (morte) (*Finnish*)
 - subram (*Turkish*)
+- TS (morte) (*Finnish*)
 - SensDeViata (*Ukrainian*)
 - Ptrcmd (ptrcmd) (*Chinese Traditional*)
+- megaleo (*Portuguese, Brazilian*)
 - SergioFMiranda (*Portuguese, Brazilian*)
-- Percy (scvoet) (*Chinese Simplified*)
-- Vivek K J (Vivekkj) (*Malayalam*)
 - hiroTS (*Chinese Traditional*)
+- Vivek K J (Vivekkj) (*Malayalam*)
+- arielcostas3 (*Galician*)
 - johne32rus23 (*Russian*)
 - AzureNya (*Chinese Simplified*)
 - OctolinGamer (octolingamer) (*Portuguese, Brazilian*)
+- filippodb (*Italian*)
 - Ram varma (ram4varma) (*Tamil*)
-- 北䑓如法 (Nyoho) (*Japanese*)
+- sanser (*Russian*)
+- Y.Yamashiro (uist1idrju3i) (*Japanese*)
 - Pukima (Pukimaa) (*German*)
 - diorama (*Italian*)
-- Daniel Dimitrov (daniel.dimitrov) (*Bulgarian*)
 - frumble (*German*)
+- Daniel Dimitrov (daniel.dimitrov) (*Bulgarian*)
 - kekkepikkuni (*Tamil*)
+- MODcraft (*Chinese Simplified*)
 - oorsutri (*Tamil*)
 - Neo_Chen (NeoChen1024) (*Chinese Traditional*)
 - Nithin V (Nithin896) (*Tamil*)
-- Marcus Myge (mygg-priv) (*Norwegian*)
 - Miro Rauhala (mirorauhala) (*Finnish*)
-- AlexKoala (alexkoala) (*Korean*)
+- Oymate (*Bengali*)
 - ಚಿರಾಗ್ ನಟರಾಜ್ (chiraag-nataraj) (*Kannada*)
-- Aswin C (officialcjunior) (*Malayalam*)
 - Guillaume Turchini (orion78fr) (*French*)
+- Aswin C (officialcjunior) (*Malayalam*)
 - Ganesh D (auntgd) (*Marathi*)
+- Yuval Nehemia (yuvalne) (*Hebrew*)
 - mawoka-myblock (mawoka) (*German*)
 - dragnucs2 (*Arabic*)
 - Ryan Ho (koungho) (*Chinese Traditional*)
-- Pedro Henrique (exploronauta) (*Portuguese, Brazilian*)
 - Tejas Harad (h_tejas) (*Marathi*)
+- Pedro Henrique (exploronauta) (*Portuguese, Brazilian*)
+- Amir Reza (ElAmir) (*Persian*)
+- Tatsuto "Laminne" Yamamoto (laminne) (*Japanese*)
 - Vasanthan (vasanthan) (*Tamil*)
 - 硫酸鶏 (acid_chicken) (*Japanese*)
-- clarmin b8 (clarminb8) (*Sorani (Kurdish)*)
 - programizer (*German*)
+- clarmin b8 (clarminb8) (*Sorani (Kurdish)*)
 - manukp (*Malayalam*)
-- earth dweller (sanethoughtyt) (*Marathi*)
 - psymyn (*Hebrew*)
+- earth dweller (sanethoughtyt) (*Marathi*)
+- Marek Ľach (marek-lach) (*Slovak*)
 - meijerivoi (toilet) (*Finnish*)
 - essaar (*Tamil*)
+- Nemuj (Dentrado) (*Japanese, Esperanto*)
 - serubeena (*Swedish*)
 - Rintan (*Japanese*)
 - Karol Kosek (krkkPL) (*Polish*)
-- Khó͘ Tiat-lêng (khotiatleng) (*Chinese Traditional, Taigi*)
-- Hernik (hernik27) (*Czech*)
+- Khó͘ Tiatlêng (khotiatleng) (*Chinese Traditional, Taigi*)
 - valarivan (*Tamil*)
-- kuchengrab (*German*)
+- Hernik (hernik27) (*Czech*)
+- revarioba (*Spanish*)
 - friedbeans (*Croatian*)
+- kuchengrab (*German*)
 - Abi Turi (abi123) (*Georgian*)
 - Hinaloe (hinaloe) (*Japanese*)
 - Sebastián Andil (Selrond) (*Slovak*)
-- KEINOS (*Japanese*)
-- filippodb (*Italian*)
+- Ifnuth (*German*)
 - Asbjørn Olling (a2) (*Danish*)
+- KEINOS (*Japanese*)
 - Balázs Meskó (meskobalazs) (*Hungarian*)
+- Artem Mikhalitsin (artemmikhalitsin) (*Russian*)
+- Algustionesa Yoshi (algustionesa) (*Indonesian*)
 - Bottle (suryasalem2010) (*Tamil*)
 - Wrya ali (John12) (*Sorani (Kurdish)*)
 - JzshAC (*Chinese Simplified*)
+- siamano (*Thai, Esperanto*)
+- gnu-ewm (*Polish*)
 - Antillion (antillion99) (*Spanish*)
 - Steven Tappert (sammy8806) (*German*)
 - Reg3xp (*Persian*)
 - Wassim EL BOUHAMIDI (elbouhamidiw) (*Arabic*)
+- Maciej Błędkowski (mble) (*Polish*)
 - gowthamanb (*Tamil*)
 - hiphipvargas (*Portuguese*)
-- Ch. (sftblw) (*Korean*)
+- tunisiano187 (*French*)
 - Arttu Ylhävuori (arttu.ylhavuori) (*Finnish*)
-- tctovsli (*Norwegian Nynorsk*)
-- Timo Tijhof (Krinkle) (*Dutch*)
+- Ch. (sftblw) (*Korean*)
+- eorn (*Breton*)
+- Jona (88wcJoWl) (*Spanish*)
 - Mikkel B. Goldschmidt (mikkelbjoern) (*Danish*)
+- Timo Tijhof (Krinkle) (*Dutch*)
+- Ka2n (kaanmetu) (*Turkish*)
+- tctovsli (*Norwegian Nynorsk*)
 - mecqor labi (mecqorlabi) (*Persian*)
 - Odyssey346 (alexader612) (*Norwegian*)
-- Yamagishi Kazutoshi (ykzts) (*Japanese, Icelandic, Sorani (Kurdish)*)
-- Eban (ebanDev) (*French, Esperanto*)
 - vjasiegd (*Polish*)
+- Eban (ebanDev) (*French, Esperanto*)
 - SamitiMed (samiti3d) (*Thai*)
 - Nícolas Lavinicki (nclavinicki) (*Portuguese, Brazilian*)
-- snatcher (*Portuguese, Brazilian*)
 - Rekan Adl (rekan-adl1) (*Sorani (Kurdish)*)
+- Antara2Cinta (Se7enTime) (*Indonesian*)
+- Yassine Aït-El-Mouden (yaitelmouden) (*Standard Moroccan Tamazight*)
 - VSx86 (*Russian*)
 - umelard (*Hebrew*)
-- Antara2Cinta (Se7enTime) (*Indonesian*)
 - parnikkapore (*Thai*)
+- Lagash (lagash) (*Esperanto*)
 - Sherwan Othman (sherwanothman11) (*Sorani (Kurdish)*)
-- Yassine Aït-El-Mouden (yaitelmouden) (*Standard Moroccan Tamazight*)
 - SKELET (*Danish*)
+- Exbu (*Dutch*)
+- Chine Sebastien (chine.sebastien) (*French*)
 - Fei Yang (Fei1Yang) (*Chinese Traditional*)
+- A A (sebastien.chine) (*French*)
 - Ğani (freegnu) (*Tatar*)
-- Renato "Lond" Cerqueira (renatolond) (*Portuguese, Brazilian*)
 - enipra (*Armenian*)
-- ALEM FARID (faridatcemlulaqbayli) (*Kabyle*)
+- Renato "Lond" Cerqueira (renatolond) (*Portuguese, Brazilian*)
 - musix (*Persian*)
 - ギャラ (gyara) (*Japanese, Chinese Simplified*)
+- ALEM FARID (faridatcemlulaqbayli) (*Kabyle*)
 - Hougo (hougo) (*French*)
-- ybardapurkar (*Marathi*)
-- 亜緯丹穂 (ayiniho) (*Japanese*)
-- Adrián Lattes (haztecaso) (*Spanish*)
 - Mordi Sacks (MordiSacks) (*Hebrew*)
 - Trinsec (*Dutch*)
+- Adrián Lattes (haztecaso) (*Spanish*)
 - Tigran's Tips (tigrank08) (*Armenian*)
-- TracyJacks (*Chinese Simplified*)
+- 亜緯丹穂 (ayiniho) (*Japanese*)
+- ybardapurkar (*Marathi*)
 - Szabolcs Gál (galszabolcs810624) (*Hungarian*)
 - Vladislav Săcrieriu (vladislavs14) (*Romanian*)
-- danreznik (*Hebrew*)
+- TracyJacks (*Chinese Simplified*)
 - rasheedgm (*Kannada*)
-- omquylzu (*Latvian*)
-- c6ristian (*German*)
-- Belkacem Mohammed (belkacem77) (*Kabyle*)
+- danreznik (*Hebrew*)
+- Cirelli (cirelli94) (*Italian*)
+- Siddharastro Doraku (sidharastro) (*Spanish, Mexico*)
 - lexxai (*Ukrainian*)
+- omquylzu (*Latvian*)
 - Navjot Singh (nspeaks) (*Hindi*)
+- mkljczk (*Polish*)
+- Belkacem Mohammed (belkacem77) (*Kabyle*)
+- c6ristian (*German*)
+- damascene (*Arabic*)
 - Ozai (*German*)
 - Sahak Petrosyan (petrosyan) (*Armenian*)
-- Oymate (*Bengali*)
 - Viorel-Cătălin Răpițeanu (rapiteanu) (*Romanian*)
-- siamano (*Thai, Esperanto*)
 - Siddhartha Sarathi Basu (quinoa_biryani) (*Bengali*)
 - Pachara Chantawong (pachara2202) (*Thai*)
-- Zijian Zhao (jobs2512821228) (*Chinese Simplified*)
 - Skew (noan.perrot) (*French*)
-- mkljczk (*Polish*)
+- Zijian Zhao (jobs2512821228) (*Chinese Simplified*)
+- Overflow Cat (OverflowCat) (*Chinese Simplified, Chinese Traditional*)
+- dbeaver (*German*)
+- zordsdavini (*Lithuanian*)
 - Guru Prasath Anandapadmanaban (guruprasath) (*Tamil*)
 - turtle836 (*German*)
 - Marcepanek_ (thekingmarcepan) (*Polish*)
-- Lamin (laminne) (*Japanese*)
-- Yann Aguettaz (yann-a) (*French*)
 - Feruz Oripov (FeruzOripov) (*Russian*)
-- serapolis (*Chinese Simplified, Chinese Traditional*)
+- Yann Aguettaz (yann-a) (*French*)
 - Mick Onio (xgc.redes) (*Asturian*)
 - Malik Mann (dermalikmann) (*German*)
+- padulafacundo (*Spanish*)
 - dadosch (*German*)
-- r3dsp1 (*Chinese Traditional, Hong Kong*)
 - hg6 (*Hindi*)
 - Tianqi Zhang (tina.zhang040609) (*Chinese Simplified*)
-- padulafacundo (*Spanish*)
+- r3dsp1 (*Chinese Traditional, Hong Kong*)
 - johannes hove-henriksen (J0hsHH) (*Norwegian*)
 - Orlando Murcio (Atos20) (*Spanish, Mexico*)
-- Padraic Calpin (padraic-padraic) (*Slovenian*)
 - cenegd (*Chinese Simplified*)
-- piupiupiudiu (*Chinese Simplified*)
+- Youngeon Lee (YoungeonLee) (*Korean*)
 - shdy (*German*)
+- Umi (mtrumi) (*Chinese Simplified, Chinese Traditional, Hong Kong*)
+- Padraic Calpin (padraic-padraic) (*Slovenian*)
 - Ильзира Рахматуллина (rahmatullinailzira53) (*Tatar*)
-- Hugh Liu (youloveonlymeh) (*Chinese Simplified*)
+- piupiupiudiu (*Chinese Simplified*)
 - Pixelcode (realpixelcode) (*German*)
+- Dennis Reimund (reimunddennis7) (*German*)
 - Yogesh K S (yogi) (*Kannada*)
 - Adithya K (adithyak04) (*Malayalam*)
-- Dennis Reimund (reimunddennis7) (*German*)
+- DAI JIE (daijie) (*Chinese Simplified*)
+- Hugh Liu (youloveonlymeh) (*Chinese Simplified*)
 - Rakino (rakino) (*Chinese Simplified*)
-- Michał Sidor (michcioperz) (*Polish*)
-- AmazighNM (*Kabyle*)
-- Miquel Sabaté Solà (mssola) (*Catalan*)
+- ZQYD (*Chinese Simplified*)
+- X.M (kimonoki) (*Chinese Simplified*)
+- boni777 (*Chinese Simplified*)
 - Jothipazhani Nagarajan (jothipazhani.n) (*Tamil*)
-- hallomaurits (*Dutch*)
+- Miquel Sabaté Solà (mssola) (*Catalan*)
+- Stanisław Jelnicki (JelNiSlaw) (*Polish*)
+- AmazighNM (*Kabyle*)
 - alnd hezh (alndhezh) (*Sorani (Kurdish)*)
+- CloudSet (*Chinese Simplified*)
 - Clash Clans (KURD12345) (*Sorani (Kurdish)*)
-- Solid Rhino (SolidRhino) (*Dutch*)
 - Metehan Özyürek (MetehanOzyurek) (*Turkish*)
+- Paula SIMON (EncoreEutIlFalluQueJeLeSusse) (*French*)
+- Solid Rhino (SolidRhino) (*Dutch*)
+- nua_kr (*Korean*)
+- hallomaurits (*Dutch*)
 - 林水溶 (shuiRong) (*Chinese Simplified*)
-- Sébastien Feugère (smonff) (*French*)
-- Y.Yamashiro (uist1idrju3i) (*Japanese*)
+- rikrise (*Swedish*)
 - Takeshi Umeda (noellabo) (*Japanese*)
 - k_taka (peaceroad) (*Japanese*)
-- hussama (*Portuguese, Brazilian*)
+- Sébastien Feugère (smonff) (*French*)
 - Hallo Abdullah (hallo_hamza12) (*Sorani (Kurdish)*)
-- Ashok314 (ashok314) (*Hindi*)
-- PifyZ (*French*)
-- OminousCry (*Russian*)
+- hussama (*Portuguese, Brazilian*)
+- EzigboOmenana (*Cornish*)
 - Robert Yano (throwcalmbobaway) (*Spanish, Mexico*)
-- Tom_ (*Czech*)
-- Tagada (Tagadda) (*French*)
-- shafouz (*Portuguese, Brazilian*)
 - Yasin İsa YILDIRIM (redsfyre) (*Turkish*)
+- PifyZ (*French*)
+- Tagada (Tagadda) (*French*)
 - eichkat3r (*German*)
+- Ashok314 (ashok314) (*Hindi*)
+- Zlr- (cZeler) (*French*)
 - SnDer (*Dutch*)
-- Kahina Mess (K_hina) (*Kabyle*)
-- Swati Sani (swatisani) (*Urdu (Pakistan)*)
+- OminousCry (*Russian*)
+- Adam Sapiński (Adamos9898) (*Polish*)
+- Tom_ (*Czech*)
+- shafouz (*Portuguese, Brazilian*)
+- Shrinivasan T (tshrinivasan) (*Tamil*)
 - Kk (kishorkumara3) (*Kannada*)
+- Swati Sani (swatisani) (*Urdu (Pakistan)*)
+- papayaisnotafood (*Chinese Traditional*)
+- さっかりんにーさん (saccharin23) (*Japanese*)
 - Daniel M. (daniconil) (*Catalan*)
-- Shrinivasan T (tshrinivasan) (*Tamil*)
-- 夜楓Yoka (Yoka2627) (*Chinese Simplified*)
+- César Daniel Cavanzo Quintero (LeinadCQ) (*Esperanto*)
 - Nathaël Noguès (NatNgs) (*French*)
-- さっかりんにーさん (saccharin23) (*Japanese*)
-- Rex_sa (rex07) (*Arabic*)
+- 夜楓Yoka (Yoka2627) (*Chinese Simplified*)
+- Mt Front (mtfront) (*Chinese Simplified*)
+- Artem (Artem4ik) (*Russian*)
 - Robin van der Vliet (RobinvanderVliet) (*Esperanto*)
-- Vikatakavi (*Kannada*)
 - Tradjincal (tradjincal) (*French*)
-- pullopen (*Chinese Simplified*)
 - SusVersiva (*Catalan*)
-- Marvin (magicmarvman) (*German*)
 - Zinkokooo (*Basque*)
-- Livingston Samuel (livingston) (*Tamil*)
-- CyberAmoeba (pseudoobscura) (*Chinese Simplified*)
-- tsundoker (*Malayalam*)
-- eorn (*Breton*)
+- Marvin (magicmarvman) (*German*)
+- Vikatakavi (*Kannada*)
+- pullopen (*Chinese Simplified*)
+- sergioaraujo1 (*Portuguese, Brazilian*)
 - prabhjot (*Hindi*)
+- CyberAmoeba (pseudoobscura) (*Chinese Simplified*)
 - mmokhi (*Persian*)
-- sergioaraujo1 (*Portuguese, Brazilian*)
 - Entelekheia-ousia (*Chinese Simplified*)
-- Pierre Morvan (Iriep) (*Breton*)
-- oscfd (*Spanish*)
+- Livingston Samuel (livingston) (*Tamil*)
+- tsundoker (*Malayalam*)
 - skaaarrr (*German*)
-- mkljczk (mykylyjczyk) (*Polish*)
-- fedot (*Russian*)
+- Pierre Morvan (Iriep) (*Breton*)
 - Paz Galindo (paz.almendra.g) (*Spanish*)
+- fedot (*Russian*)
+- mkljczk (mykylyjczyk) (*Polish*)
 - Ricardo Colin (rysard) (*Spanish*)
 - Philipp Fischbeck (PFischbeck) (*German*)
+- oscfd (*Spanish*)
 - Zoé Bőle (zoe1337) (*German*)
-- EzigboOmenana (*Cornish*)
 - GaggiX (*Italian*)
-- Lukas Fülling (lfuelling) (*German*)
 - JackXu (Merman-Jack) (*Chinese Simplified*)
+- Lukas Fülling (lfuelling) (*German*)
 - ralozkolya (*Georgian*)
-- Apple (blackteaovo) (*Chinese Simplified*)
+- Jason Gibson (barberpike606) (*Slovenian, Chinese Simplified*)
+- Dremski (*Bulgarian*)
+- Kaede (kaedech) (*Japanese*)
+- Aymeric (AymBroussier) (*French*)
+- mashirozx (*Chinese Simplified*)
+- María José Vera (mjverap) (*Spanish*)
 - asala4544 (*Basque*)
-- Xurxo Guerra (xguerrap) (*Galician*)
+- ronee (*Kurmanji (Kurdish)*)
 - qwerty287 (*German*)
-- Anoop (anoopp) (*Malayalam*)
 - pezcurrel (*Italian*)
-- Samir Tighzert (samir_t7) (*Kabyle*)
-- Dremski (*Bulgarian*)
-- Dennis Reimund (reimund_dennis) (*German*)
+- Anoop (anoopp) (*Malayalam*)
+- Apple (blackteaovo) (*Chinese Simplified*)
+- Lilian Nabati (Lilounab49) (*French*)
 - ru_mactunnag (*Scottish Gaelic*)
 - Nocta (*French*)
-- Aymeric (AymBroussier) (*French*)
-- mashirozx (*Chinese Simplified*)
+- Tangcuyu (*Chinese Simplified*)
+- Dennis Reimund (reimund_dennis) (*German*)
 - Albatroz Jeremias (albjeremias) (*Portuguese*)
+- Xurxo Guerra (xguerrap) (*Galician*)
+- Samir Tighzert (samir_t7) (*Kabyle*)
+- lokalisoija (*Finnish*)
+- codl (*French*)
+- thisdudeisvegan (braydofficial) (*German*)
+- tamaina (*Japanese*)
 - Matias Lavik (matiaslavik) (*Norwegian Nynorsk*)
+- Aman Alam (aalam) (*Punjabi*)
+- Holger Huo (holgerhuo) (*Chinese Simplified*)
 - Amith Raj Shetty (amithraj1989) (*Kannada*)
-- abidin toumi (Zet24) (*Arabic*)
-- mikel (mikelalas) (*Spanish*)
-- OpenAlgeria (*Arabic*)
-- random_person (*Spanish*)
-- Sais Lakshmanan (Saislakshmanan) (*Tamil*)
-- Trond Boksasp (boksasp) (*Norwegian*)
-- xpac1985 (xpac) (*German*)
-- Zlr- (cZeler) (*French*)
-- Mohammad Adnan Mahmood (adnanmig) (*Arabic*)
 - mimikun (*Japanese*)
-- smedvedev (*Russian*)
-- asretro (*Chinese Traditional, Hong Kong*)
-- tamaina (*Japanese*)
-- Aman Alam (aalam) (*Punjabi*)
+- Ragnars Eggerts (rmegg1933) (*Latvian*)
 - ÀŘǾŚ PÀŚĦÀÍ (arospashai) (*Sorani (Kurdish)*)
-- Kaede (kaedech) (*Japanese*)
+- smedvedev (*Russian*)
+- Sais Lakshmanan (Saislakshmanan) (*Tamil*)
+- Mohammad Adnan Mahmood (adnanmig) (*Arabic*)
+- OpenAlgeria (*Arabic*)
+- Trond Boksasp (boksasp) (*Norwegian*)
 - Doug (douglasalvespe) (*Portuguese, Brazilian*)
+- Mohd Bilal (mdb571) (*Malayalam*)
 - Fleva (*Sardinian*)
-- Abijeet Patro (Abijeet) (*Basque*)
-- SamOak (*Portuguese, Brazilian*)
-- Aries (orlea) (*Japanese*)
+- xpac1985 (xpac) (*German*)
+- mikel (mikelalas) (*Spanish*)
+- random_person (*Spanish*)
+- asretro (*Chinese Traditional, Hong Kong*)
+- Arĝentakato (argxentakato) (*Japanese*)
+- Nithya Mary (nithyamary25) (*Tamil*)
+- Azad ahmad (dashty) (*Sorani (Kurdish)*)
 - Bartek Fijałkowski (brateq) (*Polish*)
-- NeverMine17 (*Russian*)
-- Brodi (brodi1) (*Dutch*)
-- Ács Zoltán (zoli111) (*Hungarian*)
-- capiscuas (*Spanish*)
-- Benjamin Cobb (benjamincobb) (*German*)
-- djoerd (*Dutch*)
-- waweic (*German*)
-- Amir Kurdo (kuraking202) (*Sorani (Kurdish)*)
+- ebrezhoneg (*Breton*)
+- maksutheam (*Finnish*)
+- majorblazr (*Danish*)
+- Jill H. (kokakiwi) (*French*)
+- Patrice Boivin (patriceboivin58) (*French*)
+- centumix (*Japanese*)
+- 江尚寒 (jiangshanghan) (*Chinese Simplified*)
+- hud5634j (*Spanish*)
+- おさ (osapon) (*Japanese*)
+- Jiniux (*Italian*)
+- Hannah (Aniqueper1) (*Chinese Simplified*)
+- Ni Futchi (futchitwo) (*Japanese*)
 - dobrado (*Portuguese, Brazilian*)
-- Baban Abdulrahman (baban.abdulrehman) (*Sorani (Kurdish)*)
 - dcapillae (*Spanish*)
-- Azad ahmad (dashty) (*Sorani (Kurdish)*)
-- Salh_haji6 (*Sorani (Kurdish)*)
 - Ranj A Abdulqadir (RanjAhmed) (*Sorani (Kurdish)*)
-- tateisu (*Japanese*)
+- Kurdish Translator (Kurdish.boy) (*Sorani (Kurdish)*)
+- Amir Kurdo (kuraking202) (*Sorani (Kurdish)*)
+- umonaca (*Chinese Simplified*)
+- Jari Ronkainen (ronchaine) (*Finnish*)
+- djoerd (*Dutch*)
 - Savarín Electrográfico Marmota Intergalactica (herrero.maty) (*Spanish*)
-- ebrezhoneg (*Breton*)
 - 于晚霞 (xissshawww) (*Chinese Simplified*)
-- silverscat_3 (SilversCat) (*Japanese*)
-- centumix (*Japanese*)
-- umonaca (*Chinese Simplified*)
-- Ni Futchi (futchitwo) (*Japanese*)
-- おさ (osapon) (*Japanese*)
+- tateisu (*Japanese*)
+- NeverMine17 (*Russian*)
+- soheilkhanalipur (*Persian*)
+- SamOak (*Portuguese, Brazilian*)
 - kavitha129 (*Tamil*)
-- Hannah (Aniqueper1) (*Chinese Simplified*)
-- Jiniux (*Italian*)
-- Jari Ronkainen (ronchaine) (*Finnish*)
-- Nithya Mary (nithyamary25) (*Tamil*)
+- Salh_haji6 (*Sorani (Kurdish)*)
+- Brodi (brodi1) (*Dutch*)
+- capiscuas (*Spanish*)
+- HSD Channel (kvdbve34) (*Russian*)
+- Abijeet Patro (Abijeet) (*Basque*)
+- Ács Zoltán (zoli111) (*Hungarian*)
+- Benjamin Cobb (benjamincobb) (*German*)
+- waweic (*German*)
+- Aries (orlea) (*Japanese*)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d8fde27fe..519c561a6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,194 @@ Changelog
 
 All notable changes to this project will be documented in this file.
 
+## Unreleased
+### Added
+
+- **Add support for post editing** ([Gargron](https://github.com/mastodon/mastodon/pull/16697), [Gargron](https://github.com/mastodon/mastodon/pull/17727), [Gargron](https://github.com/mastodon/mastodon/pull/17728), [Gargron](https://github.com/mastodon/mastodon/pull/17320), [Gargron](https://github.com/mastodon/mastodon/pull/17404), [Gargron](https://github.com/mastodon/mastodon/pull/17390), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17335), [Gargron](https://github.com/mastodon/mastodon/pull/17696), [Gargron](https://github.com/mastodon/mastodon/pull/17745), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17740), [Gargron](https://github.com/mastodon/mastodon/pull/17697), [Gargron](https://github.com/mastodon/mastodon/pull/17648), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17531), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17499), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17498), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17380), [Gargron](https://github.com/mastodon/mastodon/pull/17373), [Gargron](https://github.com/mastodon/mastodon/pull/17334), [Gargron](https://github.com/mastodon/mastodon/pull/17333), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17699), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17748))
+  - Previous versions remain available for perusal and comparison
+  - People who reblogged a post are notified when it's edited
+  - New REST APIs:
+    - `PUT /api/v1/statuses/:id`
+    - `GET /api/v1/statuses/:id/history`
+    - `GET /api/v1/statuses/:id/source`
+  - New streaming API event:
+    - `update`
+- **Add appeals for moderator decisions** ([Gargron](https://github.com/mastodon/mastodon/pull/17364), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17725), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17566), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17652), [Gargron](https://github.com/mastodon/mastodon/pull/17616), [Gargron](https://github.com/mastodon/mastodon/pull/17615), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17554), [Gargron](https://github.com/mastodon/mastodon/pull/17523))
+  - All default moderator decisions now notify the affected user by e-mail
+  - They now link to an appeal page instead of suggesting replying to the e-mail
+  - They can now be found in account settings and not just e-mail
+  - Users can submit one appeal within 20 days of the decision
+  - Moderators can approve or reject the appeal
+- **Add notifications for posts deleted by moderators** ([Gargron](https://github.com/mastodon/mastodon/pull/17204), [Gargron](https://github.com/mastodon/mastodon/pull/17668), [Gargron](https://github.com/mastodon/mastodon/pull/17746), [Gargron](https://github.com/mastodon/mastodon/pull/17679), [Gargron](https://github.com/mastodon/mastodon/pull/17487))
+  - New, redesigned report view in admin UI
+  - Common report actions now only take one click to complete
+  - Deleting posts or marking as sensitive from report now notifies user
+  - Reports can be categorized by reason and specific rules violated
+  - The reasons are automatically cited in the notifications, except for spam
+  - Marking posts as sensitive now federates using post editing
+- **Add explore page with trending posts and links** ([Gargron](https://github.com/mastodon/mastodon/pull/17123), [Gargron](https://github.com/mastodon/mastodon/pull/17431), [Gargron](https://github.com/mastodon/mastodon/pull/16917), [Gargron](https://github.com/mastodon/mastodon/pull/17677), [Gargron](https://github.com/mastodon/mastodon/pull/16938), [Gargron](https://github.com/mastodon/mastodon/pull/17044), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16978), [Gargron](https://github.com/mastodon/mastodon/pull/16979), [tribela](https://github.com/mastodon/mastodon/pull/17066), [Gargron](https://github.com/mastodon/mastodon/pull/17072), [Gargron](https://github.com/mastodon/mastodon/pull/17403), [noiob](https://github.com/mastodon/mastodon/pull/17624), [mayaeh](https://github.com/mastodon/mastodon/pull/17755), [mayaeh](https://github.com/mastodon/mastodon/pull/17757), [Gargron](https://github.com/mastodon/mastodon/pull/17760), [mayaeh](https://github.com/mastodon/mastodon/pull/17762))
+  - Hashtag trends algorithm is extended to work for posts and links
+  - Links are only considered if they have an adequate preview card
+  - Preview card generation has been improved to support structured data
+  - Links can only trend if the publisher (domain) has been approved
+  - Posts can only trend if the author has been approved
+  - Individual approval and rejection for posts and links is also available
+  - Moderators are notified about pending trends at most once every 2 hours
+  - Posts and link trends are language-specific
+  - Search page is redesigned into explore page in web UI
+  - Discovery tab is coming soon in official iOS and Android apps
+  - New REST APIs:
+    - `GET /api/v1/trends/links`
+    - `GET /api/v1/trends/statuses`
+    - `GET /api/v1/trends/tags` (alias of `GET /api/v1/trends`)
+    - `GET /api/v1/admin/trends/links`
+    - `GET /api/v1/admin/trends/statuses`
+    - `GET /api/v1/admin/trends/tags`
+- **Add graphs and retention metrics to admin dashboard** ([Gargron](https://github.com/mastodon/mastodon/pull/16829), [Gargron](https://github.com/mastodon/mastodon/pull/17617), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17570), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16910), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16909), [mashirozx](https://github.com/mastodon/mastodon/pull/16884), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16854))
+  - Dashboard shows more numbers with development over time
+  - Other data such as most used interface languages and sign-up sources
+  - User retention graph shows how many new users stick around
+  - New REST APIs:
+    - `POST /api/v1/admin/measures`
+    - `POST /api/v1/admin/dimensions`
+    - `POST /api/v1/admin/retention`
+- Add `GET /api/v1/accounts/familiar_followers` to REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17700))
+- Add `POST /api/v1/accounts/:id/remove_from_followers` to REST API ([noellabo](https://github.com/mastodon/mastodon/pull/16864))
+- Add `category` and `rule_ids` params to `POST /api/v1/reports` IN REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17492), [Gargron](https://github.com/mastodon/mastodon/pull/17682), [Gargron](https://github.com/mastodon/mastodon/pull/17713))
+  - `category` can be one of: `spam`, `violation`, `other` (default)
+  - `rule_ids` must reference `rules` returned in `GET /api/v1/instance`
+- Add global `lang` param to REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17464), [Gargron](https://github.com/mastodon/mastodon/pull/17592))
+- Add `types` param to `GET /api/v1/notifications` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17767))
+- **Add notifications for moderators about new sign-ups** ([Gargron](https://github.com/mastodon/mastodon/pull/16953), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17629))
+  - When a new user confirms e-mail, moderators receive a notification
+  - New streaming API event:
+    - `admin.sign_up`
+- Add authentication history ([Gargron](https://github.com/mastodon/mastodon/pull/16408), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16428), [baby-gnu](https://github.com/mastodon/mastodon/pull/16654))
+- Add ability to automatically delete old posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16529), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17691), [tribela](https://github.com/mastodon/mastodon/pull/16653))
+- Add ability to pin private posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16954), [tribela](https://github.com/mastodon/mastodon/pull/17326), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17304), [MitarashiDango](https://github.com/mastodon/mastodon/pull/17647))
+- Add ability to filter search results by author using `from:` syntax ([tribela](https://github.com/mastodon/mastodon/pull/16526))
+- Add ability to delete canonical email blocks in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16644))
+- Add ability to purge undeliverable domains in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16686), [tribela](https://github.com/mastodon/mastodon/pull/17210), [tribela](https://github.com/mastodon/mastodon/pull/17741), [tribela](https://github.com/mastodon/mastodon/pull/17209))
+- Add ability to disable e-mail token authentication for specific users in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/16427))
+- **Add ability to suspend accounts in batches in admin UI** ([Gargron](https://github.com/mastodon/mastodon/pull/17009), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17301), [Gargron](https://github.com/mastodon/mastodon/pull/17444))
+  - New, redesigned accounts list in admin UI
+  - Batch suspensions are meant to help clean up spam and bot accounts
+  - They do not generate notifications
+- Add ability to filter reports by origin of target account in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/16487))
+- Add support for login through OpenID Connect ([chandrn7](https://github.com/mastodon/mastodon/pull/16221))
+- Add lazy loading for emoji picker in web UI ([mashirozx](https://github.com/mastodon/mastodon/pull/16907), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17011))
+- Add single option votes tooltip in polls in web UI ([Brawaru](https://github.com/mastodon/mastodon/pull/16849))
+- Add confirmation modal when closing media edit modal with unsaved changes in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16518))
+- Add support for fetching Create and Announce activities by URI in ActivityPub ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16383))
+- Add `S3_FORCE_SINGLE_REQUEST` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16866))
+- Add `OMNIAUTH_ONLY` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17288), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17345))
+- Add `ES_USER` and `ES_PASS` environment variables for Elasticsearch authentication ([tribela](https://github.com/mastodon/mastodon/pull/16890))
+- Add `CAS_SECURITY_ASSUME_EMAIL_IS_VERIFIED` environment variable ([baby-gnu](https://github.com/mastodon/mastodon/pull/16655))
+- Add ability to pass specific domains to `tootctl accounts cull` ([tribela](https://github.com/mastodon/mastodon/pull/16511))
+- Add `--by-uri` option to `tootctl domains purge` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16434))
+- Add `--batch-size` option to `tootctl search deploy` ([aquarla](https://github.com/mastodon/mastodon/pull/17049))
+- Add `--remove-orphans` option to `tootctl statuses remove` ([noellabo](https://github.com/mastodon/mastodon/pull/17067))
+
+### Changed
+
+- Change design of federation pages in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/17704), [noellabo](https://github.com/mastodon/mastodon/pull/17735), [Gargron](https://github.com/mastodon/mastodon/pull/17765))
+- Change design of account cards in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17689))
+- Change `follow` scope to be covered by `read` and `write` scopes in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17678))
+- Change design of authorized applications page ([Gargron](https://github.com/mastodon/mastodon/pull/17656), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17686))
+- Change e-mail domain blocks to block IPs dynamically ([Gargron](https://github.com/mastodon/mastodon/pull/17635), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17650), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17649))
+- Change report modal to include category selection in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17565), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17734), [Gargron](https://github.com/mastodon/mastodon/pull/17654), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17632))
+- Change reblogs to not count towards hashtag trends anymore ([Gargron](https://github.com/mastodon/mastodon/pull/17501))
+- Change languages to be listed under standard instead of native name in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/17485))
+- Change routing paths to use usernames in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/16171), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16772), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16773), [mashirozx](https://github.com/mastodon/mastodon/pull/16793), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17060))
+- Change list title input design in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17092))
+- Change "Opt-in to profile directory" preference to be general discoverability preference ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16637))
+- Change API rate limits to use /64 masking on IPv6 addresses ([tribela](https://github.com/mastodon/mastodon/pull/17588), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17600), [zunda](https://github.com/mastodon/mastodon/pull/17590))
+- Change allowed formats for locally uploaded custom emojis to include GIF ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17706), [Gargron](https://github.com/mastodon/mastodon/pull/17759))
+- Change error message when chosen password is too long ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17082))
+- Change minimum required Elasticsearch version from 6 to 7 ([noellabo](https://github.com/mastodon/mastodon/pull/16915))
+
+### Removed
+
+- Remove profile directory link from main navigation panel in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17688))
+- **Remove language detection through cld3** ([Gargron](https://github.com/mastodon/mastodon/pull/17478), [ykzts](https://github.com/mastodon/mastodon/pull/17539), [Gargron](https://github.com/mastodon/mastodon/pull/17496), [Gargron](https://github.com/mastodon/mastodon/pull/17722))
+  - cld3 is very inaccurate on short-form content even with unique alphabets
+  - Post language can be overriden individually using `language` param
+  - Otherwise, it defaults to the user's interface language
+- Remove support for `OAUTH_REDIRECT_AT_SIGN_IN` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17287))
+  - Use `OMNIAUTH_ONLY` instead
+- Remove Keybase integration ([Gargron](https://github.com/mastodon/mastodon/pull/17045))
+- Remove old columns and indexes ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17245), [Gargron](https://github.com/mastodon/mastodon/pull/16409), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17191))
+- Remove shortcodes from newly-created media attachments ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16730), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16763))
+
+### Deprecated
+
+- `GET /api/v1/trends` → `GET /api/v1/trends/tags`
+- OAuth `follow` scope → `read` and/or `write`
+- `text` attribute on `DELETE /api/v1/statuses/:id` → `GET /api/v1/statuses/:id/source`
+
+### Fixed
+
+- Fix web manifest not permitting PWA usage from alternate domains ([HolgerHuo](https://github.com/mastodon/mastodon/pull/16714))
+- Fix not being able to edit media attachments for scheduled posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17690))
+- Fix subscribed relay activities being recorded as boosts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17571))
+- Fix streaming API server error messages when JSON parsing fails not specifying the source ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17559))
+- Fix browsers autofilling new password field with old password ([mashirozx](https://github.com/mastodon/mastodon/pull/17702))
+- Fix text being invisible before fonts load in web UI ([tribela](https://github.com/mastodon/mastodon/pull/16330))
+- Fix public profile pages of unconfirmed users being accessible ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17385), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17457))
+- Fix nil error when trying to fetch key for signature verification ([Gargron](https://github.com/mastodon/mastodon/pull/17747))
+- Fix null values being included in some indexes ([Gargron](https://github.com/mastodon/mastodon/pull/17711))
+- Fix `POST /api/v1/emails/confirmations` not being available after sign-up ([Gargron](https://github.com/mastodon/mastodon/pull/17743))
+- Fix rare race condition when reblogged post is deleted ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17693), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17730))
+- Fix being able to add more than 4 hashtags to hashtag column in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17729))
+- Fix data integrity of featured tags ([Gargron](https://github.com/mastodon/mastodon/pull/17712))
+- Fix performance of account timelines ([Gargron](https://github.com/mastodon/mastodon/pull/17709))
+- Fix returning empty `<p>` tag for blank account `note` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17687))
+- Fix leak of existence of otherwise inaccessible posts in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17684))
+- Fix not showing loading indicator when searching in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17655))
+- Fix media modal footer's “external link” not being a link ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17561))
+- Fix reply button on media modal not giving focus to compose form ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17626))
+- Fix some media attachments being converted with too high framerates ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17619))
+- Fix sign in token and warning emails failing to send when contact e-mail address is malformed ([helloworldstack](https://github.com/mastodon/mastodon/pull/17589))
+- Fix opening the emoji picker scrolling the single-column view to the top ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17579))
+- Fix edge case where settings/admin page sidebar would be incorrectly hidden ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17580))
+- Fix performance of server-side filtering ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17575))
+- Fix privacy policy link not being visible on small screens ([Gargron](https://github.com/mastodon/mastodon/pull/17533))
+- Fix duplicate accounts when searching by IP range in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/17524), [tribela](https://github.com/mastodon/mastodon/pull/17150))
+- Fix error when performing a batch action on posts in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17532))
+- Fix deletes not being signed in authorized fetch mode ([Gargron](https://github.com/mastodon/mastodon/pull/17484))
+- Fix Undo Announce sometimes inlining the originally Announced status ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17516))
+- Fix localization of cold-start follow recommendations ([Gargron](https://github.com/mastodon/mastodon/pull/17479), [Gargron](https://github.com/mastodon/mastodon/pull/17486))
+- Fix replies collection incorrectly looping ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17462))
+- Fix errors when multiple Delete are received for a given actor ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17460))
+- Fixed prototype pollution bug and only allow trusted origin ([r0hanSH](https://github.com/mastodon/mastodon/pull/17420))
+- Fix text being incorrectly pre-selected in composer textarea on /share ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17339))
+- Fix SMTP_ENABLE_STARTTLS_AUTO/SMTP_TLS/SMTP_SSL environment variables don't work ([kgtkr](https://github.com/mastodon/mastodon/pull/17216))
+- Fix media upload specific rate limits only being applied to v1 endpoint in REST API ([tribela](https://github.com/mastodon/mastodon/pull/17272))
+- Fix media descriptions not being used for client-side filtering ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17206))
+- Fix cold-start follow recommendation favouring older accounts due to wrong sorting ([noellabo](https://github.com/mastodon/mastodon/pull/17126))
+- Fix not redirect to the right page after authenticating with WebAuthn ([heguro](https://github.com/mastodon/mastodon/pull/17098))
+- Fix searching for additional hashtags in hashtag column ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17054))
+- Fix color of hashtag column settings inputs ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17058))
+- Fix performance of `tootctl statuses remove` ([noellabo](https://github.com/mastodon/mastodon/pull/17052))
+- Fix `tootctl accounts cull` not excluding domains on timeouts and certificate issues ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16433))
+- Fix 404 error when filtering admin action logs by non-existent target account ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16643))
+- Fix error when accessing streaming API without any OAuth scopes ([Brawaru](https://github.com/mastodon/mastodon/pull/16823))
+- Fix follow request count not updating when new follow requests arrive over streaming API in web UI ([matildepark](https://github.com/mastodon/mastodon/pull/16652))
+- Fix error when unsuspending a local account ([HolgerHuo](https://github.com/mastodon/mastodon/pull/16605))
+- Fix crash when a notification contains a not yet processed media attachment in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16573))
+- Fix wrong color of download button in audio player in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16572))
+- Fix notes for others accounts not being deleted when an account is deleted ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16579))
+- Fix error when logging occurrence of unsupported video file ([noellabo](https://github.com/mastodon/mastodon/pull/16581))
+- Fix wrong elements in trends widget being hidden on smaller screens in web UI ([tribela](https://github.com/mastodon/mastodon/pull/16570))
+- Fix link to about page being displayed in limited federation mode ([weex](https://github.com/mastodon/mastodon/pull/16432))
+- Fix styling of boost button in media modal not reflecting ability to boost ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16387))
+- Fix OCR failure when erroneous lang data is in cache ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16386))
+- Fix downloading media from blocked domains in `tootctl media refresh` ([tribela](https://github.com/mastodon/mastodon/pull/16914))
+- Fix login form being displayed on landing page when already logged in ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17348))
+- Fix polling for media processing status too frequently in web UI ([tribela](https://github.com/mastodon/mastodon/pull/17271))
+- Fix hashtag autocomplete overriding user-typed case ([weex](https://github.com/mastodon/mastodon/pull/16460))
+- Fix WebAuthn authentication setup to not prompt for PIN ([truongnmt](https://github.com/mastodon/mastodon/pull/16545))
+
 ## [3.4.6] - 2022-02-03
 ### Fixed
 
@@ -572,7 +760,7 @@ All notable changes to this project will be documented in this file.
     - `EMAIL_DOMAIN_WHITELIST` → `EMAIL_DOMAIN_ALLOWLIST`
   - CLI option changed:
     - `tootctl domains purge --whitelist-mode` → `tootctl domains purge --limited-federation-mode`
-- Remove some unnecessary database indices ([lfuelling](https://github.com/mastodon/mastodon/pull/13695), [noellabo](https://github.com/mastodon/mastodon/pull/14259))
+- Remove some unnecessary database indexes ([lfuelling](https://github.com/mastodon/mastodon/pull/13695), [noellabo](https://github.com/mastodon/mastodon/pull/14259))
 - Remove unnecessary Node.js version upper bound ([ykzts](https://github.com/mastodon/mastodon/pull/14139))
 
 ### Fixed
@@ -591,7 +779,7 @@ All notable changes to this project will be documented in this file.
 - Fix new posts pushing down origin of opened dropdown in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14271), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/14348))
 - Fix timeline markers not being saved sometimes ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13887), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/13889), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/14155))
 - Fix CSV uploads being rejected ([noellabo](https://github.com/mastodon/mastodon/pull/13835))
-- Fix incompatibility with ElasticSearch 7.x ([noellabo](https://github.com/mastodon/mastodon/pull/13828))
+- Fix incompatibility with Elasticsearch 7.x ([noellabo](https://github.com/mastodon/mastodon/pull/13828))
 - Fix being able to search posts where you're in the target audience but not actively mentioned ([noellabo](https://github.com/mastodon/mastodon/pull/13829))
 - Fix non-local posts appearing on local-only hashtag timelines in web UI ([noellabo](https://github.com/mastodon/mastodon/pull/13827))
 - Fix `tootctl media remove-orphans` choking on unknown files in storage ([Gargron](https://github.com/mastodon/mastodon/pull/13765))
@@ -1195,7 +1383,7 @@ All notable changes to this project will be documented in this file.
 - Fix URLs appearing twice in errors of ActivityPub::DeliveryWorker ([Gargron](https://github.com/mastodon/mastodon/pull/11231))
 - Fix support for HTTP proxies ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/11245))
 - Fix HTTP requests to IPv6 hosts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/11240))
-- Fix error in ElasticSearch index import ([mayaeh](https://github.com/mastodon/mastodon/pull/11192))
+- Fix error in Elasticsearch index import ([mayaeh](https://github.com/mastodon/mastodon/pull/11192))
 - Fix duplicate account error when seeding development database ([ysksn](https://github.com/mastodon/mastodon/pull/11366))
 - Fix performance of session clean-up scheduler ([abcang](https://github.com/mastodon/mastodon/pull/11871))
 - Fix older migrations not running ([zunda](https://github.com/mastodon/mastodon/pull/11377))
@@ -1205,8 +1393,8 @@ All notable changes to this project will be documented in this file.
 - Fix muted text color not applying to all text ([trwnh](https://github.com/mastodon/mastodon/pull/11996))
 - Fix follower/following lists resetting on back-navigation in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/11986))
 - Fix n+1 query when approving multiple follow requests ([abcang](https://github.com/mastodon/mastodon/pull/12004))
-- Fix records not being indexed into ElasticSearch sometimes ([Gargron](https://github.com/mastodon/mastodon/pull/12024))
-- Fix needlessly indexing unsearchable statuses into ElasticSearch ([Gargron](https://github.com/mastodon/mastodon/pull/12041))
+- Fix records not being indexed into Elasticsearch sometimes ([Gargron](https://github.com/mastodon/mastodon/pull/12024))
+- Fix needlessly indexing unsearchable statuses into Elasticsearch ([Gargron](https://github.com/mastodon/mastodon/pull/12041))
 - Fix new user bootstrapping crashing when to-be-followed accounts are invalid ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/12037))
 - Fix featured hashtag URL being interpreted as media or replies tab ([Gargron](https://github.com/mastodon/mastodon/pull/12048))
 - Fix account counters being overwritten by parallel writes ([Gargron](https://github.com/mastodon/mastodon/pull/12045))
diff --git a/Gemfile b/Gemfile
index 234aa464e..2621b77a5 100644
--- a/Gemfile
+++ b/Gemfile
@@ -7,7 +7,7 @@ gem 'pkg-config', '~> 1.4'
 gem 'rexml', '~> 3.2'
 
 gem 'puma', '~> 5.6'
-gem 'rails', '~> 6.1.4'
+gem 'rails', '~> 6.1.5'
 gem 'sprockets', '~> 3.7.2'
 gem 'thor', '~> 1.2'
 gem 'rack', '~> 2.2.3'
diff --git a/Gemfile.lock b/Gemfile.lock
index a88e56f36..2275d9453 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,40 +1,40 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    actioncable (6.1.4.6)
-      actionpack (= 6.1.4.6)
-      activesupport (= 6.1.4.6)
+    actioncable (6.1.5)
+      actionpack (= 6.1.5)
+      activesupport (= 6.1.5)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (6.1.4.6)
-      actionpack (= 6.1.4.6)
-      activejob (= 6.1.4.6)
-      activerecord (= 6.1.4.6)
-      activestorage (= 6.1.4.6)
-      activesupport (= 6.1.4.6)
+    actionmailbox (6.1.5)
+      actionpack (= 6.1.5)
+      activejob (= 6.1.5)
+      activerecord (= 6.1.5)
+      activestorage (= 6.1.5)
+      activesupport (= 6.1.5)
       mail (>= 2.7.1)
-    actionmailer (6.1.4.6)
-      actionpack (= 6.1.4.6)
-      actionview (= 6.1.4.6)
-      activejob (= 6.1.4.6)
-      activesupport (= 6.1.4.6)
+    actionmailer (6.1.5)
+      actionpack (= 6.1.5)
+      actionview (= 6.1.5)
+      activejob (= 6.1.5)
+      activesupport (= 6.1.5)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.1.4.6)
-      actionview (= 6.1.4.6)
-      activesupport (= 6.1.4.6)
+    actionpack (6.1.5)
+      actionview (= 6.1.5)
+      activesupport (= 6.1.5)
       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.4.6)
-      actionpack (= 6.1.4.6)
-      activerecord (= 6.1.4.6)
-      activestorage (= 6.1.4.6)
-      activesupport (= 6.1.4.6)
+    actiontext (6.1.5)
+      actionpack (= 6.1.5)
+      activerecord (= 6.1.5)
+      activestorage (= 6.1.5)
+      activesupport (= 6.1.5)
       nokogiri (>= 1.8.5)
-    actionview (6.1.4.6)
-      activesupport (= 6.1.4.6)
+    actionview (6.1.5)
+      activesupport (= 6.1.5)
       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.4.6)
-      activesupport (= 6.1.4.6)
+    activejob (6.1.5)
+      activesupport (= 6.1.5)
       globalid (>= 0.3.6)
-    activemodel (6.1.4.6)
-      activesupport (= 6.1.4.6)
-    activerecord (6.1.4.6)
-      activemodel (= 6.1.4.6)
-      activesupport (= 6.1.4.6)
-    activestorage (6.1.4.6)
-      actionpack (= 6.1.4.6)
-      activejob (= 6.1.4.6)
-      activerecord (= 6.1.4.6)
-      activesupport (= 6.1.4.6)
-      marcel (~> 1.0.0)
+    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)
+      marcel (~> 1.0)
       mini_mime (>= 1.1.0)
-    activesupport (6.1.4.6)
+    activesupport (6.1.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -367,7 +367,7 @@ GEM
       activesupport (>= 4)
       railties (>= 4)
       request_store (~> 1.0)
-    loofah (2.14.0)
+    loofah (2.15.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mail (2.7.1)
@@ -432,14 +432,14 @@ GEM
     openssl (2.2.0)
     openssl-signature_algorithm (0.4.0)
     orm_adapter (0.5.0)
-    ox (2.14.9)
+    ox (2.14.10)
     parallel (1.21.0)
     parser (3.1.0.0)
       ast (~> 2.4.1)
     parslet (2.0.0)
     pastel (0.8.0)
       tty-color (~> 0.5)
-    pg (1.3.3)
+    pg (1.3.4)
     pghero (2.8.2)
       activerecord (>= 5)
     pkg-config (1.4.7)
@@ -482,20 +482,20 @@ GEM
       rack
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
-    rails (6.1.4.6)
-      actioncable (= 6.1.4.6)
-      actionmailbox (= 6.1.4.6)
-      actionmailer (= 6.1.4.6)
-      actionpack (= 6.1.4.6)
-      actiontext (= 6.1.4.6)
-      actionview (= 6.1.4.6)
-      activejob (= 6.1.4.6)
-      activemodel (= 6.1.4.6)
-      activerecord (= 6.1.4.6)
-      activestorage (= 6.1.4.6)
-      activesupport (= 6.1.4.6)
+    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)
       bundler (>= 1.15.0)
-      railties (= 6.1.4.6)
+      railties (= 6.1.5)
       sprockets-rails (>= 2.0.0)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
@@ -511,11 +511,11 @@ GEM
       railties (>= 6.0.0, < 7)
     rails-settings-cached (0.6.6)
       rails (>= 4.2.0)
-    railties (6.1.4.6)
-      actionpack (= 6.1.4.6)
-      activesupport (= 6.1.4.6)
+    railties (6.1.5)
+      actionpack (= 6.1.5)
+      activesupport (= 6.1.5)
       method_source
-      rake (>= 0.13)
+      rake (>= 12.2)
       thor (~> 1.0)
     rainbow (3.1.1)
     rake (13.0.6)
@@ -548,7 +548,7 @@ GEM
     rspec-mocks (3.11.0)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.11.0)
-    rspec-rails (5.1.0)
+    rspec-rails (5.1.1)
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       railties (>= 5.2)
@@ -806,7 +806,7 @@ DEPENDENCIES
   rack (~> 2.2.3)
   rack-attack (~> 6.6)
   rack-cors (~> 1.1)
-  rails (~> 6.1.4)
+  rails (~> 6.1.5)
   rails-controller-testing (~> 1.0)
   rails-i18n (~> 6.0)
   rails-settings-cached (~> 0.6)
diff --git a/SECURITY.md b/SECURITY.md
index 9d351fce6..5531a306e 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -1,13 +1,19 @@
 # Security Policy
 
+If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you should submit the report through our [Bug Bounty Program][bug-bounty]. Alternatively, you can reach us at <hello@joinmastodon.org>.
+
+You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
+
+## Scope
+
+A "vulnerability in Mastodon" is a vulnerability in the code distributed through our main source code repository on GitHub. Vulnerabilities that are specific to a given installation (e.g. misconfiguration) should be reported to the owner of that installation and not us.
+
 ## Supported Versions
 
 | Version | Supported          |
 | ------- | ------------------ |
-| 3.4.x   | :white_check_mark: |
-| 3.3.x   | :white_check_mark: |
-| < 3.3   | :x:                |
-
-## Reporting a Vulnerability
+| 3.4.x   | Yes                |
+| 3.3.x   | Yes                |
+| < 3.3   | No                 |
 
-hello@joinmastodon.org
+[bug-bounty]: https://app.intigriti.com/programs/mastodon/mastodonio/detail
diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb
index eefd28d45..c47d6ccfd 100644
--- a/app/controllers/api/v1/notifications_controller.rb
+++ b/app/controllers/api/v1/notifications_controller.rb
@@ -44,13 +44,18 @@ class Api::V1::NotificationsController < Api::BaseController
       limit_param(DEFAULT_NOTIFICATIONS_LIMIT),
       params_slice(:max_id, :since_id, :min_id)
     )
+
     Notification.preload_cache_collection_target_statuses(notifications) do |target_statuses|
       cache_collection(target_statuses, Status)
     end
   end
 
   def browserable_account_notifications
-    current_account.notifications.without_suspended.browserable(exclude_types, from_account)
+    current_account.notifications.without_suspended.browserable(
+      types: Array(browserable_params[:types]),
+      exclude_types: Array(browserable_params[:exclude_types]),
+      from_account_id: browserable_params[:account_id]
+    )
   end
 
   def target_statuses_from_notifications
@@ -81,17 +86,11 @@ class Api::V1::NotificationsController < Api::BaseController
     @notifications.first.id
   end
 
-  def exclude_types
-    val = params.permit(exclude_types: [])[:exclude_types] || []
-    val = [val] unless val.is_a?(Enumerable)
-    val
-  end
-
-  def from_account
-    params[:account_id]
+  def browserable_params
+    params.permit(:account_id, types: [], exclude_types: [])
   end
 
   def pagination_params(core_params)
-    params.slice(:limit, :exclude_types).permit(:limit, exclude_types: []).merge(core_params)
+    params.slice(:limit, :account_id, :types, :exclude_types).permit(:limit, :account_id, types: [], exclude_types: []).merge(core_params)
   end
 end
diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json
index 3b450f89a..088b5ff36 100644
--- a/app/javascript/mastodon/locales/af.json
+++ b/app/javascript/mastodon/locales/af.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 017bfe61c..6580f5d44 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "اكتشف",
   "navigation_bar.domain_blocks": "النطاقات المخفية",
   "navigation_bar.edit_profile": "عدّل الملف التعريفي",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "المفضلة",
   "navigation_bar.filters": "الكلمات المكتومة",
   "navigation_bar.follow_requests": "طلبات المتابعة",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index c573a86ef..14e46e458 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Dominios anubríos",
   "navigation_bar.edit_profile": "Editar el perfil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favoritos",
   "navigation_bar.filters": "Pallabres silenciaes",
   "navigation_bar.follow_requests": "Solicitúes de siguimientu",
@@ -361,7 +362,7 @@
   "poll.total_votes": "{count, plural, one {# votu} other {# votos}}",
   "poll.vote": "Vote",
   "poll.voted": "You voted for this answer",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, one {# votu} other {# votos}}",
   "poll_button.add_poll": "Amestar una encuesta",
   "poll_button.remove_poll": "Quitar la encuesta",
   "privacy.change": "Adjust status privacy",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 1024c4659..e65681394 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Откриване",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Редактирай профил",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Любими",
   "navigation_bar.filters": "Заглушени думи",
   "navigation_bar.follow_requests": "Заявки за последване",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index 8aae9aa49..3542c4e46 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "ঘুরে দেখুন",
   "navigation_bar.domain_blocks": "লুকানো ডোমেনগুলি",
   "navigation_bar.edit_profile": "নিজের পাতা সম্পাদনা করতে",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "পছন্দের",
   "navigation_bar.filters": "বন্ধ করা শব্দ",
   "navigation_bar.follow_requests": "অনুসরণের অনুরোধগুলি",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index 5ef2eb8d8..51b78f777 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Dizoleiñ",
   "navigation_bar.domain_blocks": "Domanioù kuzhet",
   "navigation_bar.edit_profile": "Aozañ ar profil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Ar re vuiañ-karet",
   "navigation_bar.filters": "Gerioù kuzhet",
   "navigation_bar.follow_requests": "Pedadoù heuliañ",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 356fbe989..0437d0b41 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Descobrir",
   "navigation_bar.domain_blocks": "Dominis ocults",
   "navigation_bar.edit_profile": "Editar perfil",
+  "navigation_bar.explore": "Explora",
   "navigation_bar.favourites": "Preferits",
   "navigation_bar.filters": "Paraules silenciades",
   "navigation_bar.follow_requests": "Sol·licituds de seguiment",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index e541d8c1c..21240bc3b 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Scopre",
   "navigation_bar.domain_blocks": "Duminii piattati",
   "navigation_bar.edit_profile": "Mudificà u prufile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favuriti",
   "navigation_bar.filters": "Parolle silenzate",
   "navigation_bar.follow_requests": "Dumande d'abbunamentu",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index 95cdcdc92..d48780042 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Objevujte",
   "navigation_bar.domain_blocks": "Blokované domény",
   "navigation_bar.edit_profile": "Upravit profil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Oblíbené",
   "navigation_bar.filters": "Skrytá slova",
   "navigation_bar.follow_requests": "Žádosti o sledování",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 9956640df..d3ac8d806 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Darganfod",
   "navigation_bar.domain_blocks": "Parthau cuddiedig",
   "navigation_bar.edit_profile": "Golygu proffil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Ffefrynnau",
   "navigation_bar.filters": "Geiriau a dawelwyd",
   "navigation_bar.follow_requests": "Ceisiadau dilyn",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index c8d6b78bc..12023bfb0 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -169,8 +169,8 @@
   "empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager én, vil den dukke op hér.",
   "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 favoriserer ét, vil det dukke op hér.",
-  "empty_column.favourites": "Ingen har endnu favoriseret dette indlæg. Når nogen gør dét, vil det dukke op hér.",
+  "empty_column.favourited_statuses": "Du har endnu ingen favoritindlæg. Når du favoritmarkerer ét, vil det dukke op hér.",
+  "empty_column.favourites": "Ingen har endnu gjort dette indlæg til favorit. Når nogen gør dét, vil det dukke op hér.",
   "empty_column.follow_recommendations": "Ser ud til, at der ikke kunne genereres forslag til dig. Du kan prøve med Søg for at lede efter personer, du måske kender, eller udforske hashtags.",
   "empty_column.follow_requests": "Du har endnu ingen følgeanmodninger. Når du modtager én, vil den dukke op hér.",
   "empty_column.hashtag": "Der er intet med dette hashtag endnu.",
@@ -234,7 +234,7 @@
   "keyboard_shortcuts.direct": "Åbn Direkte beskeder-kolonnen",
   "keyboard_shortcuts.down": "Flyt nedad på listen",
   "keyboard_shortcuts.enter": "Åbn indlæg",
-  "keyboard_shortcuts.favourite": "Favorisér indlæg",
+  "keyboard_shortcuts.favourite": "Favoritmarkér indlæg",
   "keyboard_shortcuts.favourites": "Åbn favoritlisten",
   "keyboard_shortcuts.federated": "Åbn fælles tidslinje",
   "keyboard_shortcuts.heading": "Tastaturgenveje",
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Opdag",
   "navigation_bar.domain_blocks": "Blokerede domæner",
   "navigation_bar.edit_profile": "Redigér profil",
+  "navigation_bar.explore": "Udforsk",
   "navigation_bar.favourites": "Favoritter",
   "navigation_bar.filters": "Tavsgjorte ord",
   "navigation_bar.follow_requests": "Følgeanmodninger",
@@ -309,7 +310,7 @@
   "navigation_bar.public_timeline": "Fælles tidslinje",
   "navigation_bar.security": "Sikkerhed",
   "notification.admin.sign_up": "{name} tilmeldte sig",
-  "notification.favourite": "{name} favoriserede dit indlæg",
+  "notification.favourite": "{name} favoritmarkerede dit indlæg",
   "notification.follow": "{name} begyndte at følge dig",
   "notification.follow_request": "{name} har anmodet om at følge dig",
   "notification.mention": "{name} nævnte dig",
@@ -427,7 +428,7 @@
   "report.unfollow_explanation": "Denne konto følges. For at ophøre med at se vedkommendes indlæg på hjemmetidslinjen, vælg Følg ikke længere.",
   "search.placeholder": "Søg",
   "search_popout.search_format": "Avanceret søgeformat",
-  "search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, favoriseret, boostet eller som er nævnt i/matcher bruger- og profilnavne samt hashtags.",
+  "search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, favoritmarkeret, boostet eller som er nævnt i/matcher bruger- og profilnavne samt hashtags.",
   "search_popout.tips.hashtag": "hashtag",
   "search_popout.tips.status": "indlæg",
   "search_popout.tips.text": "Simpel tekst returnerer matchende visnings- og brugernavne samt hashtags",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index c78be6a75..72c723e2e 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Entdecken",
   "navigation_bar.domain_blocks": "Versteckte Domains",
   "navigation_bar.edit_profile": "Profil bearbeiten",
+  "navigation_bar.explore": "Entdecken",
   "navigation_bar.favourites": "Favoriten",
   "navigation_bar.filters": "Stummgeschaltene Wörter",
   "navigation_bar.follow_requests": "Folgeanfragen",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 97ab833df..3c797d47d 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Ανακάλυψη",
   "navigation_bar.domain_blocks": "Κρυμμένοι τομείς",
   "navigation_bar.edit_profile": "Επεξεργασία προφίλ",
+  "navigation_bar.explore": "Εξερεύνηση",
   "navigation_bar.favourites": "Αγαπημένα",
   "navigation_bar.filters": "Αποσιωπημένες λέξεις",
   "navigation_bar.follow_requests": "Αιτήματα ακολούθησης",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index fa2bd59de..7f999c34f 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Esplori",
   "navigation_bar.domain_blocks": "Blokitaj domajnoj",
   "navigation_bar.edit_profile": "Redakti profilon",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Stelumoj",
   "navigation_bar.filters": "Silentigitaj vortoj",
   "navigation_bar.follow_requests": "Petoj de sekvado",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index a27091ec6..b239c69e6 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Descubrir",
   "navigation_bar.domain_blocks": "Dominios bloqueados",
   "navigation_bar.edit_profile": "Editar perfil",
+  "navigation_bar.explore": "Explorá",
   "navigation_bar.favourites": "Favoritos",
   "navigation_bar.filters": "Palabras silenciadas",
   "navigation_bar.follow_requests": "Solicitudes de seguimiento",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index a8c57cbad..273fd5515 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Descubrir",
   "navigation_bar.domain_blocks": "Dominios ocultos",
   "navigation_bar.edit_profile": "Editar perfil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favoritos",
   "navigation_bar.filters": "Palabras silenciadas",
   "navigation_bar.follow_requests": "Solicitudes para seguirte",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index dcf3cf9f7..ba33d8a6c 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Descubrir",
   "navigation_bar.domain_blocks": "Dominios ocultos",
   "navigation_bar.edit_profile": "Editar perfil",
+  "navigation_bar.explore": "Explorar",
   "navigation_bar.favourites": "Favoritos",
   "navigation_bar.filters": "Palabras silenciadas",
   "navigation_bar.follow_requests": "Solicitudes para seguirte",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index 5642d68c1..e3bcdb521 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Avasta",
   "navigation_bar.domain_blocks": "Peidetud domeenid",
   "navigation_bar.edit_profile": "Muuda profiili",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Lemmikud",
   "navigation_bar.filters": "Vaigistatud sõnad",
   "navigation_bar.follow_requests": "Jälgimistaotlused",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index db57505c6..3fbed32d9 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Aurkitu",
   "navigation_bar.domain_blocks": "Ezkutatutako domeinuak",
   "navigation_bar.edit_profile": "Aldatu profila",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Gogokoak",
   "navigation_bar.filters": "Mutututako hitzak",
   "navigation_bar.follow_requests": "Jarraitzeko eskariak",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index f38138ec7..659336393 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "گشت و گذار",
   "navigation_bar.domain_blocks": "دامنه‌های مسدود شده",
   "navigation_bar.edit_profile": "ویرایش نمایه",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "پسندیده‌ها",
   "navigation_bar.filters": "واژه‌های خموش",
   "navigation_bar.follow_requests": "درخواست‌های پی‌گیری",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index e6407b79e..39df81770 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Löydä uutta",
   "navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
   "navigation_bar.edit_profile": "Muokkaa profiilia",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Suosikit",
   "navigation_bar.filters": "Mykistetyt sanat",
   "navigation_bar.follow_requests": "Seuraamispyynnöt",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 35eb36f16..65d3c6ea1 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -18,7 +18,7 @@
   "account.followers": "Abonnés",
   "account.followers.empty": "Personne ne suit cet·te utilisateur·rice pour l’instant.",
   "account.followers_counter": "{count, plural, one {{counter} Abonné·e} other {{counter} Abonné·e·s}}",
-  "account.following": "Following",
+  "account.following": "Abonnements",
   "account.following_counter": "{count, plural, other {{counter} Abonnements}}",
   "account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.",
   "account.follows_you": "Vous suit",
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Découvrir",
   "navigation_bar.domain_blocks": "Domaines bloqués",
   "navigation_bar.edit_profile": "Modifier le profil",
+  "navigation_bar.explore": "Explorer",
   "navigation_bar.favourites": "Favoris",
   "navigation_bar.filters": "Mots masqués",
   "navigation_bar.follow_requests": "Demandes d’abonnement",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index aeb152e56..5bf1681a8 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index d71705c5c..aae73a23e 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Fidir",
   "navigation_bar.domain_blocks": "Àrainnean bacte",
   "navigation_bar.edit_profile": "Deasaich a’ phròifil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Na h-annsachdan",
   "navigation_bar.filters": "Faclan mùchte",
   "navigation_bar.follow_requests": "Iarrtasan leantainn",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index e34cdeb4c..a80875c79 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Descubrir",
   "navigation_bar.domain_blocks": "Dominios agochados",
   "navigation_bar.edit_profile": "Editar perfil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favoritos",
   "navigation_bar.filters": "Palabras silenciadas",
   "navigation_bar.follow_requests": "Peticións de seguimento",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 672566692..db25a33fd 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "עריכת פרופיל",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "חיבובים",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "בקשות מעקב",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index 3071cc3eb..8a464f7ec 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "खोजें",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "प्रोफ़ाइल संपादित करें",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "अनुसरण करने के अनुरोध",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index f9eecf218..bbe62cf38 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Istraživanje",
   "navigation_bar.domain_blocks": "Blokirane domene",
   "navigation_bar.edit_profile": "Uredi profil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favoriti",
   "navigation_bar.filters": "Utišane riječi",
   "navigation_bar.follow_requests": "Zahtjevi za praćenje",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 75e094056..d121d6573 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Felfedezés",
   "navigation_bar.domain_blocks": "Rejtett domainek",
   "navigation_bar.edit_profile": "Profil szerkesztése",
+  "navigation_bar.explore": "Felfedezés",
   "navigation_bar.favourites": "Kedvencek",
   "navigation_bar.filters": "Némított szavak",
   "navigation_bar.follow_requests": "Követési kérelmek",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index cd9312333..2b7cdf5ac 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Բացայայտել",
   "navigation_bar.domain_blocks": "Թաքցուած տիրոյթներ",
   "navigation_bar.edit_profile": "Խմբագրել անձնական էջը",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Հաւանածներ",
   "navigation_bar.filters": "Լռեցուած բառեր",
   "navigation_bar.follow_requests": "Հետեւելու հայցեր",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index 1b5cf6582..ee7810379 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Temukan",
   "navigation_bar.domain_blocks": "Domain tersembunyi",
   "navigation_bar.edit_profile": "Ubah profil",
+  "navigation_bar.explore": "Jelajahi",
   "navigation_bar.favourites": "Favorit",
   "navigation_bar.filters": "Kata yang dibisukan",
   "navigation_bar.follow_requests": "Permintaan mengikuti",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index b15bde61e..77c6871a4 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Modifikar profilo",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favorati",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Demandi di sequado",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 411bf18cf..bf1b892e6 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Uppgötva",
   "navigation_bar.domain_blocks": "Útilokuð lén",
   "navigation_bar.edit_profile": "Breyta notandasniði",
+  "navigation_bar.explore": "Kanna",
   "navigation_bar.favourites": "Eftirlæti",
   "navigation_bar.filters": "Þögguð orð",
   "navigation_bar.follow_requests": "Beiðnir um að fylgjast með",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 0f7d2f71b..1985450a5 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Scopri",
   "navigation_bar.domain_blocks": "Domini nascosti",
   "navigation_bar.edit_profile": "Modifica profilo",
+  "navigation_bar.explore": "Esplora",
   "navigation_bar.favourites": "Apprezzati",
   "navigation_bar.filters": "Parole silenziate",
   "navigation_bar.follow_requests": "Richieste di seguirti",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index f66cf49f3..c0f902bab 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -172,7 +172,7 @@
   "empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!",
   "empty_column.direct": "ダイレクトメッセージはまだありません。ダイレクトメッセージをやりとりすると、ここに表示されます。",
   "empty_column.domain_blocks": "ブロックしているドメインはありません。",
-  "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
+  "empty_column.explore_statuses": "まだ何もありません。後で確認してください。",
   "empty_column.favourited_statuses": "まだ何もお気に入り登録していません。お気に入り登録するとここに表示されます。",
   "empty_column.favourites": "まだ誰もお気に入り登録していません。お気に入り登録されるとここに表示されます。",
   "empty_column.follow_recommendations": "おすすめを生成できませんでした。検索を使って知り合いを探したり、トレンドハッシュタグを見てみましょう。",
@@ -298,6 +298,7 @@
   "navigation_bar.discover": "見つける",
   "navigation_bar.domain_blocks": "ブロックしたドメイン",
   "navigation_bar.edit_profile": "プロフィールを編集",
+  "navigation_bar.explore": "エクスプローラー",
   "navigation_bar.favourites": "お気に入り",
   "navigation_bar.filters": "フィルター設定",
   "navigation_bar.follow_requests": "フォローリクエスト",
@@ -398,8 +399,8 @@
   "report.categories.other": "その他",
   "report.categories.spam": "スパム",
   "report.categories.violation": "サーバーのルールに違反",
-  "report.category.subtitle": "Choose the best match",
-  "report.category.title": "Tell us what's going on with this {type}",
+  "report.category.subtitle": "近いものを選択してください",
+  "report.category.title": "この{type}について教えてください",
   "report.category.title_account": "プロフィール",
   "report.category.title_status": "投稿",
   "report.close": "完了",
@@ -410,23 +411,23 @@
   "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": "次へ",
   "report.placeholder": "追加コメント",
-  "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.dislike": "興味がありません",
+  "report.reasons.dislike_description": "見たくない内容の場合",
+  "report.reasons.other": "その他",
+  "report.reasons.other_description": "当てはまる選択肢がない場合",
+  "report.reasons.spam": "これはスパムです",
+  "report.reasons.spam_description": "悪意のあるリンクや虚偽の情報、執拗な返信など",
   "report.reasons.violation": "サーバーのルールに違反しています",
-  "report.reasons.violation_description": "You are aware that it breaks specific rules",
+  "report.reasons.violation_description": "ルールに違反しているのを見つけた場合",
   "report.rules.subtitle": "当てはまるものをすべて選んでください:",
   "report.rules.title": "どのルールに違反していますか?",
   "report.statuses.subtitle": "当てはまるものをすべて選んでください:",
-  "report.statuses.title": "Are there any posts that back up this report?",
+  "report.statuses.title": "この通報を裏付けるような投稿はありますか?",
   "report.submit": "通報する",
   "report.target": "{target}さんを通報する",
-  "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
+  "report.thanks.take_action": "次のような方法はいかがでしょうか?",
   "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": "見えないようにしたいですか?",
   "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
   "report.unfollow": "@{name}のフォローを解除",
   "report.unfollow_explanation": "このアカウントをフォローしています。ホームフィードに彼らの投稿を表示しないようにするには、彼らのフォローを外してください。",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 84ea5e85d..f6f3f1e10 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "აღმოაჩინე",
   "navigation_bar.domain_blocks": "დამალული დომენები",
   "navigation_bar.edit_profile": "შეცვალე პროფილი",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "ფავორიტები",
   "navigation_bar.filters": "გაჩუმებული სიტყვები",
   "navigation_bar.follow_requests": "დადევნების მოთხოვნები",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index cc255d1b3..d6fcc2c7b 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Ẓer",
   "navigation_bar.domain_blocks": "Tiɣula yeffren",
   "navigation_bar.edit_profile": "Ẓreg amaɣnu",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Ismenyifen",
   "navigation_bar.filters": "Awalen i yettwasgugmen",
   "navigation_bar.follow_requests": "Isuturen n teḍfeṛt",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index 3e4ac2be6..28156f956 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "шарлау",
   "navigation_bar.domain_blocks": "Жабық домендер",
   "navigation_bar.edit_profile": "Профиль түзету",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Таңдаулылар",
   "navigation_bar.filters": "Үнсіз сөздер",
   "navigation_bar.follow_requests": "Жазылуға сұранғандар",
diff --git a/app/javascript/mastodon/locales/kmr.json b/app/javascript/mastodon/locales/kmr.json
index f6fe83799..0298c51ec 100644
--- a/app/javascript/mastodon/locales/kmr.json
+++ b/app/javascript/mastodon/locales/kmr.json
@@ -131,7 +131,7 @@
   "confirmations.mute.explanation": "Ev ê şandinên ji wan tê û şandinên ku behsa wan dike veşêre, lê hê jî maf dide ku ew şandinên te bibînin û te bişopînin.",
   "confirmations.mute.message": "Bi rastî tu dixwazî {name} bêdeng bikî?",
   "confirmations.redraft.confirm": "Jê bibe & ji nû ve serrast bike",
-  "confirmations.redraft.message": "Bi rastî tu dixwazî şandî ye jê bibî û nûve reşnivîsek çê bikî? Bijare û şandî wê wenda bibin û bersivên ji bo şandiyê resen wê sêwî bimînin.",
+  "confirmations.redraft.message": "Bi rastî tu dixwazî şandî ye jê bibî û nûve reşnivîsek çê bikî? Bijarte û şandî wê wenda bibin û bersivên ji bo şandiyê resen wê sêwî bimînin.",
   "confirmations.reply.confirm": "Bersivê bide",
   "confirmations.reply.message": "Bersiva niha li ser peyama ku tu niha berhev dikî dê binivsîne. Ma pê bawer î ku tu dixwazî bidomînî?",
   "confirmations.unfollow.confirm": "Neşopîne",
@@ -294,10 +294,11 @@
   "navigation_bar.discover": "Vekolê",
   "navigation_bar.domain_blocks": "Navparên astengkirî",
   "navigation_bar.edit_profile": "Profîl serrast bike",
+  "navigation_bar.explore": "Vekole",
   "navigation_bar.favourites": "Bijarte",
   "navigation_bar.filters": "Peyvên bêdengkirî",
   "navigation_bar.follow_requests": "Daxwazên şopandinê",
-  "navigation_bar.follows_and_followers": "Yên tê şopandin û şopîner",
+  "navigation_bar.follows_and_followers": "Şopandin û şopîner",
   "navigation_bar.info": "Derbarê vî rajekarî",
   "navigation_bar.keyboard_shortcuts": "Bişkoka kurterê",
   "navigation_bar.lists": "Rêzok",
@@ -381,7 +382,7 @@
   "relative_time.full.hours": "{number, plural, one {# demjimêr} other {# demjimêr}} berê",
   "relative_time.full.just_now": "hema niha",
   "relative_time.full.minutes": "{number, plural, one {# xulek} other {# xulek}} berê",
-  "relative_time.full.seconds": "{number, plural, one {# çirke} other {# çirke}} xulek",
+  "relative_time.full.seconds": "{number, plural, one {# çirke} other {# çirke}} berê",
   "relative_time.hours": "{number}d",
   "relative_time.just_now": "niha",
   "relative_time.minutes": "{number}x",
diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json
index f64cc3d3f..450944dca 100644
--- a/app/javascript/mastodon/locales/kn.json
+++ b/app/javascript/mastodon/locales/kn.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index dade7bc17..31db6acc3 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "발견하기",
   "navigation_bar.domain_blocks": "차단한 도메인",
   "navigation_bar.edit_profile": "프로필 편집",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "즐겨찾기",
   "navigation_bar.filters": "뮤트한 단어",
   "navigation_bar.follow_requests": "팔로우 요청",
diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json
index 0cde9e388..7209633ad 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "دۆزینەوە",
   "navigation_bar.domain_blocks": "دۆمەینە بلۆک کراوەکان",
   "navigation_bar.edit_profile": "دەستکاری پرۆفایل بکە",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "دڵخوازەکان",
   "navigation_bar.filters": "وشە کپەکان",
   "navigation_bar.follow_requests": "بەدواداچوی داواکاریەکان بکە",
diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json
index 47eda8b82..ca6eed5c1 100644
--- a/app/javascript/mastodon/locales/kw.json
+++ b/app/javascript/mastodon/locales/kw.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Diskudha",
   "navigation_bar.domain_blocks": "Gorfarthow lettys",
   "navigation_bar.edit_profile": "Golegi profil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Re drudh",
   "navigation_bar.filters": "Geryow tawhes",
   "navigation_bar.follow_requests": "Govynnow holya",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index 44ee9a6f9..bb432a8af 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index 39f1c24ac..f16df5423 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Atklāt",
   "navigation_bar.domain_blocks": "Bloķētie domēni",
   "navigation_bar.edit_profile": "Rediģēt profilu",
+  "navigation_bar.explore": "Pārlūkot",
   "navigation_bar.favourites": "Izlases",
   "navigation_bar.filters": "Klusināti vārdi",
   "navigation_bar.follow_requests": "Sekošanas pieprasījumi",
diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json
index e4eb048b4..c6f097134 100644
--- a/app/javascript/mastodon/locales/mk.json
+++ b/app/javascript/mastodon/locales/mk.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Уреди профил",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Омилени",
   "navigation_bar.filters": "Замолќени зборови",
   "navigation_bar.follow_requests": "Следи покани",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index baea4c267..1a0f4ac38 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "കണ്ടെത്തുക",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "പ്രൊഫൈൽ തിരുത്തുക",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "പ്രിയപ്പെട്ടവ",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "പിന്തുടരാനുള്ള അഭ്യർത്ഥനകൾ",
diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json
index d1a3cac6a..a731ff87b 100644
--- a/app/javascript/mastodon/locales/mr.json
+++ b/app/javascript/mastodon/locales/mr.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 40e816af6..96d300492 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Teroka",
   "navigation_bar.domain_blocks": "Domain disekat",
   "navigation_bar.edit_profile": "Sunting profil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Kegemaran",
   "navigation_bar.filters": "Perkataan yang dibisukan",
   "navigation_bar.follow_requests": "Permintaan ikutan",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 620d18230..f30755286 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Ontdekken",
   "navigation_bar.domain_blocks": "Geblokkeerde domeinen",
   "navigation_bar.edit_profile": "Profiel bewerken",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favorieten",
   "navigation_bar.filters": "Filters",
   "navigation_bar.follow_requests": "Volgverzoeken",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index a634228ef..40a961c5e 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Oppdag",
   "navigation_bar.domain_blocks": "Skjulte domene",
   "navigation_bar.edit_profile": "Rediger profil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favorittar",
   "navigation_bar.filters": "Målbundne ord",
   "navigation_bar.follow_requests": "Fylgjeførespurnader",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 233cd6834..e4474f6d9 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Oppdag",
   "navigation_bar.domain_blocks": "Skjulte domener",
   "navigation_bar.edit_profile": "Rediger profil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favoritter",
   "navigation_bar.filters": "Stilnede ord",
   "navigation_bar.follow_requests": "Følgeforespørsler",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index ffdb8ece0..ff819e0fd 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Trobar",
   "navigation_bar.domain_blocks": "Domenis resconduts",
   "navigation_bar.edit_profile": "Modificar lo perfil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favorits",
   "navigation_bar.filters": "Mots ignorats",
   "navigation_bar.follow_requests": "Demandas d’abonament",
diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json
index 3b450f89a..088b5ff36 100644
--- a/app/javascript/mastodon/locales/pa.json
+++ b/app/javascript/mastodon/locales/pa.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 05d4d2ac6..445f919db 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -298,6 +298,7 @@
   "navigation_bar.discover": "Odkrywaj",
   "navigation_bar.domain_blocks": "Ukryte domeny",
   "navigation_bar.edit_profile": "Edytuj profil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Ulubione",
   "navigation_bar.filters": "Wyciszone słowa",
   "navigation_bar.follow_requests": "Prośby o śledzenie",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index 368c5dc7b..c597aa20d 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Descobrir",
   "navigation_bar.domain_blocks": "Domínios bloqueados",
   "navigation_bar.edit_profile": "Editar perfil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favoritos",
   "navigation_bar.filters": "Palavras filtradas",
   "navigation_bar.follow_requests": "Seguidores pendentes",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index b83f57a14..4e06401ec 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Descobrir",
   "navigation_bar.domain_blocks": "Domínios escondidos",
   "navigation_bar.edit_profile": "Editar perfil",
+  "navigation_bar.explore": "Explorar",
   "navigation_bar.favourites": "Favoritos",
   "navigation_bar.filters": "Palavras silenciadas",
   "navigation_bar.follow_requests": "Seguidores pendentes",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 6e8296317..bd91f19b9 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Descoperă",
   "navigation_bar.domain_blocks": "Domenii blocate",
   "navigation_bar.edit_profile": "Modifică profilul",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favorite",
   "navigation_bar.filters": "Cuvinte ignorate",
   "navigation_bar.follow_requests": "Cereri de abonare",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 20386a66f..1bbc2918c 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -44,7 +44,7 @@
   "account.unblock_short": "Разблокировать",
   "account.unendorse": "Не рекомендовать в профиле",
   "account.unfollow": "Отписаться",
-  "account.unmute": "Убрать {name} из игнорируемых",
+  "account.unmute": "Не игнорировать @{name}",
   "account.unmute_notifications": "Показывать уведомления от @{name}",
   "account.unmute_short": "Не игнорировать",
   "account_note.placeholder": "Текст заметки",
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Изучайте",
   "navigation_bar.domain_blocks": "Скрытые домены",
   "navigation_bar.edit_profile": "Изменить профиль",
+  "navigation_bar.explore": "Обзор",
   "navigation_bar.favourites": "Избранное",
   "navigation_bar.filters": "Игнорируемые слова",
   "navigation_bar.follow_requests": "Запросы на подписку",
@@ -393,7 +394,7 @@
   "report.categories.other": "Другое",
   "report.categories.spam": "Спам",
   "report.categories.violation": "Содержимое нарушает одно или несколько правил узла",
-  "report.category.subtitle": "Choose the best match",
+  "report.category.subtitle": "Выберите наиболее подходящее",
   "report.category.title": "Расскажите нам, что происходит с {type}",
   "report.category.title_account": "профиль",
   "report.category.title_status": "пост",
@@ -402,21 +403,21 @@
   "report.forward": "Переслать в {target}",
   "report.forward_hint": "Эта учётная запись расположена на другом узле. Отправить туда анонимную копию вашей жалобы?",
   "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.mute_explanation": "Вы не будете видеть их посты. Они по-прежнему могут подписываться на вас и видеть ваши посты, но не будут знать, что они в списке игнорируемых.",
   "report.next": "Далее",
   "report.placeholder": "Комментарий",
   "report.reasons.dislike": "Мне не нравится",
-  "report.reasons.dislike_description": "It is not something you want to see",
-  "report.reasons.other": "It's something else",
+  "report.reasons.dislike_description": "Не хотел(а) бы видеть такой контент",
+  "report.reasons.other": "Другое",
   "report.reasons.other_description": "Проблема не подпадает под другие категории",
   "report.reasons.spam": "Это спам",
   "report.reasons.spam_description": "Вредоносные ссылки, поддельные действия или повторяющиеся ответы",
-  "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.violation": "Нарушаются правила сервера",
+  "report.reasons.violation_description": "Вы знаете, что подобное нарушает определенные правила",
+  "report.rules.subtitle": "Выберите все подходящие варианты",
+  "report.rules.title": "Какие правила нарушены?",
+  "report.statuses.subtitle": "Выберите все подходящие варианты",
+  "report.statuses.title": "Есть ли сообщения, подтверждающие основания этой жалобы?",
   "report.submit": "Отправить",
   "report.target": "Жалоба на {target}",
   "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
@@ -437,7 +438,7 @@
   "search_results.hashtags": "Хэштеги",
   "search_results.nothing_found": "Could not find anything for these search terms",
   "search_results.statuses": "Посты",
-  "search_results.statuses_fts_disabled": "Поиск постов по их содержанию не поддерживается данным узлом Mastodon.",
+  "search_results.statuses_fts_disabled": "Поиск постов по их содержанию не поддерживается данным сервером Mastodon.",
   "search_results.total": "{count, number} {count, plural, one {результат} few {результата} many {результатов} other {результатов}}",
   "status.admin_account": "Открыть интерфейс модератора для @{name}",
   "status.admin_status": "Открыть этот пост в интерфейсе модератора",
diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json
index 30a4596b2..e1910d283 100644
--- a/app/javascript/mastodon/locales/sa.json
+++ b/app/javascript/mastodon/locales/sa.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json
index 2923eb27c..1c29dfb79 100644
--- a/app/javascript/mastodon/locales/sc.json
+++ b/app/javascript/mastodon/locales/sc.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Iscoberi",
   "navigation_bar.domain_blocks": "Domìnios blocados",
   "navigation_bar.edit_profile": "Modìfica profilu",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Preferidos",
   "navigation_bar.filters": "Faeddos a sa muda",
   "navigation_bar.follow_requests": "Rechestas de sighidura",
diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json
index 1b1b63eed..a74105406 100644
--- a/app/javascript/mastodon/locales/si.json
+++ b/app/javascript/mastodon/locales/si.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "පැතිකඩ සංස්කරණය",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "ප්‍රියතමයන්",
   "navigation_bar.filters": "නිහඬ කළ වචන",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 398b0b180..60b513aa1 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Objavuj",
   "navigation_bar.domain_blocks": "Skryté domény",
   "navigation_bar.edit_profile": "Uprav profil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Obľúbené",
   "navigation_bar.filters": "Filtrované slová",
   "navigation_bar.follow_requests": "Žiadosti o sledovanie",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index d50a703b7..92a3ffcc9 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Odkrijte",
   "navigation_bar.domain_blocks": "Skrite domene",
   "navigation_bar.edit_profile": "Uredi profil",
+  "navigation_bar.explore": "Razišči",
   "navigation_bar.favourites": "Priljubljeni",
   "navigation_bar.filters": "Utišane besede",
   "navigation_bar.follow_requests": "Prošnje za sledenje",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index 2ce035323..d1047f5da 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Zbuloni",
   "navigation_bar.domain_blocks": "Përkatësi të bllokuara",
   "navigation_bar.edit_profile": "Përpunoni profilin",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Të parapëlqyer",
   "navigation_bar.filters": "Fjalë të heshtuara",
   "navigation_bar.follow_requests": "Kërkesa për ndjekje",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index f201e3351..332352cc1 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Izmeni profil",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Omiljeni",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Zahtevi za praćenje",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index c1eb53032..e7f1e54cc 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Откриј",
   "navigation_bar.domain_blocks": "Сакривени домени",
   "navigation_bar.edit_profile": "Измени налог",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Омиљене",
   "navigation_bar.filters": "Пригушене речи",
   "navigation_bar.follow_requests": "Захтеви за праћење",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index c33079fd2..65e547183 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Upptäck",
   "navigation_bar.domain_blocks": "Dolda domäner",
   "navigation_bar.edit_profile": "Redigera profil",
+  "navigation_bar.explore": "Utforska",
   "navigation_bar.favourites": "Favoriter",
   "navigation_bar.filters": "Tystade ord",
   "navigation_bar.follow_requests": "Följförfrågningar",
diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json
index 3b450f89a..088b5ff36 100644
--- a/app/javascript/mastodon/locales/szl.json
+++ b/app/javascript/mastodon/locales/szl.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index 6e2247bfd..3c4bcb234 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "கண்டு பிடி",
   "navigation_bar.domain_blocks": "மறைந்த களங்கள்",
   "navigation_bar.edit_profile": "சுயவிவரத்தைத் திருத்தவும்",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "விருப்பத்துக்குகந்த",
   "navigation_bar.filters": "முடக்கப்பட்ட வார்த்தைகள்",
   "navigation_bar.follow_requests": "கோரிக்கைகளை பின்பற்றவும்",
diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json
index acd286e31..2f8936a9c 100644
--- a/app/javascript/mastodon/locales/tai.json
+++ b/app/javascript/mastodon/locales/tai.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index 941315547..05af59c6a 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "కనుగొను",
   "navigation_bar.domain_blocks": "దాచిన డొమైన్లు",
   "navigation_bar.edit_profile": "ప్రొఫైల్ని సవరించండి",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "ఇష్టపడినవి",
   "navigation_bar.filters": "మ్యూట్ చేయబడిన పదాలు",
   "navigation_bar.follow_requests": "అనుసరించడానికి అభ్యర్ధనలు",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 86ca9c1e9..22ecf7dfe 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -18,7 +18,7 @@
   "account.followers": "ผู้ติดตาม",
   "account.followers.empty": "ยังไม่มีใครติดตามผู้ใช้นี้",
   "account.followers_counter": "{count, plural, other {{counter} ผู้ติดตาม}}",
-  "account.following": "Following",
+  "account.following": "กำลังติดตาม",
   "account.following_counter": "{count, plural, other {{counter} กำลังติดตาม}}",
   "account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร",
   "account.follows_you": "ติดตามคุณ",
@@ -41,15 +41,15 @@
   "account.statuses_counter": "{count, plural, 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": "คลิกเพื่อเพิ่มหมายเหตุ",
-  "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": "อัตราการรักษาผู้ใช้ตามวันหลังจากลงทะเบียน",
+  "admin.dashboard.monthly_retention": "อัตราการรักษาผู้ใช้ตามเดือนหลังจากลงทะเบียน",
   "admin.dashboard.retention.average": "ค่าเฉลี่ย",
   "admin.dashboard.retention.cohort": "เดือนที่ลงทะเบียน",
   "admin.dashboard.retention.cohort_size": "ผู้ใช้ใหม่",
@@ -133,7 +133,7 @@
   "confirmations.redraft.confirm": "ลบแล้วร่างใหม่",
   "confirmations.redraft.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้แล้วร่างโพสต์ใหม่? รายการโปรดและการดันจะหายไป และการตอบกลับโพสต์ดั้งเดิมจะไม่มีความเกี่ยวพัน",
   "confirmations.reply.confirm": "ตอบกลับ",
-  "confirmations.reply.message": "การตอบกลับในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
+  "confirmations.reply.message": "การตอบกลับในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
   "confirmations.unfollow.confirm": "เลิกติดตาม",
   "confirmations.unfollow.message": "คุณแน่ใจหรือไม่ว่าต้องการเลิกติดตาม {name}?",
   "conversation.delete": "ลบการสนทนา",
@@ -168,7 +168,7 @@
   "empty_column.community": "เส้นเวลาในเซิร์ฟเวอร์ว่างเปล่า เขียนบางอย่างเป็นสาธารณะเพื่อเริ่มต้น!",
   "empty_column.direct": "คุณยังไม่มีข้อความโดยตรงใด ๆ เมื่อคุณส่งหรือรับข้อความ ข้อความจะปรากฏที่นี่",
   "empty_column.domain_blocks": "ยังไม่มีโดเมนที่ปิดกั้นอยู่",
-  "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
+  "empty_column.explore_statuses": "ไม่มีสิ่งใดที่กำลังนิยมในตอนนี้ กลับมาตรวจสอบในภายหลัง!",
   "empty_column.favourited_statuses": "คุณยังไม่มีโพสต์ที่ชื่นชอบใด ๆ เมื่อคุณชื่นชอบโพสต์ โพสต์จะปรากฏที่นี่",
   "empty_column.favourites": "ยังไม่มีใครชื่นชอบโพสต์นี้ เมื่อใครสักคนชื่นชอบ เขาจะปรากฏที่นี่",
   "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.",
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "ค้นพบ",
   "navigation_bar.domain_blocks": "โดเมนที่ปิดกั้นอยู่",
   "navigation_bar.edit_profile": "แก้ไขโปรไฟล์",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "รายการโปรด",
   "navigation_bar.filters": "คำที่ซ่อนอยู่",
   "navigation_bar.follow_requests": "คำขอติดตาม",
@@ -389,42 +390,42 @@
   "relative_time.today": "วันนี้",
   "reply_indicator.cancel": "ยกเลิก",
   "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.block_explanation": "คุณจะไม่เห็นโพสต์ของเขา เขาจะไม่สามารถเห็นโพสต์ของคุณหรือติดตามคุณ เขาจะสามารถบอกได้ว่ามีการปิดกั้นเขา",
   "report.categories.other": "อื่น ๆ",
   "report.categories.spam": "สแปม",
   "report.categories.violation": "เนื้อหาละเมิดหนึ่งกฎของเซิร์ฟเวอร์หรือมากกว่า",
-  "report.category.subtitle": "Choose the best match",
-  "report.category.title": "Tell us what's going on with this {type}",
+  "report.category.subtitle": "เลือกที่ตรงกันที่สุด",
+  "report.category.title": "บอกเราว่าเกิดอะไรขึ้นกับ {type} นี้",
   "report.category.title_account": "โปรไฟล์",
   "report.category.title_status": "โพสต์",
   "report.close": "เสร็จสิ้น",
-  "report.comment.title": "Is there anything else you think we should know?",
+  "report.comment.title": "มีสิ่งอื่นใดที่คุณคิดว่าเราควรทราบหรือไม่?",
   "report.forward": "ส่งต่อไปยัง {target}",
   "report.forward_hint": "บัญชีมาจากเซิร์ฟเวอร์อื่น ส่งสำเนาของรายงานที่ไม่ระบุตัวตนไปที่นั่นด้วย?",
   "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.mute_explanation": "คุณจะไม่เห็นโพสต์ของเขา เขายังสามารถติดตามคุณและเห็นโพสต์ของคุณและจะไม่ทราบว่ามีการซ่อนเขา",
   "report.next": "ถัดไป",
   "report.placeholder": "ความคิดเห็นเพิ่มเติม",
-  "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": "ฉันไม่ชอบโพสต์",
+  "report.reasons.dislike_description": "โพสต์ไม่ใช่บางอย่างที่คุณต้องการเห็น",
+  "report.reasons.other": "โพสต์เป็นอย่างอื่น",
+  "report.reasons.other_description": "ปัญหาไม่เข้าหมวดหมู่อื่น ๆ",
+  "report.reasons.spam": "โพสต์เป็นสแปม",
+  "report.reasons.spam_description": "ลิงก์ที่เป็นอันตราย, การมีส่วนร่วมปลอม หรือการตอบกลับซ้ำ ๆ",
+  "report.reasons.violation": "โพสต์ละเมิดกฎของเซิร์ฟเวอร์",
+  "report.reasons.violation_description": "คุณทราบว่าโพสต์แหกกฎเฉพาะ",
+  "report.rules.subtitle": "เลือกทั้งหมดที่นำไปใช้",
+  "report.rules.title": "กำลังละเมิดกฎใด?",
+  "report.statuses.subtitle": "เลือกทั้งหมดที่นำไปใช้",
+  "report.statuses.title": "มีโพสต์ใด ๆ ที่สนับสนุนรายงานนี้หรือไม่?",
   "report.submit": "ส่ง",
   "report.target": "กำลังรายงาน {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.take_action": "นี่คือตัวเลือกของคุณสำหรับการควบคุมสิ่งที่คุณเห็นใน Mastodon:",
+  "report.thanks.take_action_actionable": "ขณะที่เราตรวจทานสิ่งนี้ คุณสามารถดำเนินการกับ @{name}:",
+  "report.thanks.title": "ไม่ต้องการเห็นสิ่งนี้?",
   "report.thanks.title_actionable": "ขอบคุณสำหรับการรายงาน เราจะตรวจสอบสิ่งนี้",
   "report.unfollow": "เลิกติดตาม @{name}",
-  "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
+  "report.unfollow_explanation": "คุณกำลังติดตามบัญชีนี้ เพื่อไม่ให้เห็นโพสต์ของเขาในฟีดหน้าแรกของคุณอีกต่อไป เลิกติดตามเขา",
   "search.placeholder": "ค้นหา",
   "search_popout.search_format": "รูปแบบการค้นหาขั้นสูง",
   "search_popout.tips.full_text": "ข้อความแบบง่ายส่งคืนโพสต์ที่คุณได้เขียน ชื่นชอบ ดัน หรือได้รับการกล่าวถึง ตลอดจนชื่อผู้ใช้, ชื่อที่แสดง และแฮชแท็กที่ตรงกัน",
@@ -435,7 +436,7 @@
   "search_results.accounts": "ผู้คน",
   "search_results.all": "ทั้งหมด",
   "search_results.hashtags": "แฮชแท็ก",
-  "search_results.nothing_found": "Could not find anything for these search terms",
+  "search_results.nothing_found": "ไม่พบสิ่งใดสำหรับคำค้นหาเหล่านี้",
   "search_results.statuses": "โพสต์",
   "search_results.statuses_fts_disabled": "ไม่มีการเปิดใช้งานการค้นหาโพสต์โดยเนื้อหาของโพสต์ในเซิร์ฟเวอร์ Mastodon นี้",
   "search_results.total": "{count, number} {count, plural, other {ผลลัพธ์}}",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index f67b237f9..96d6f83c3 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Keşfet",
   "navigation_bar.domain_blocks": "Engellenen alan adları",
   "navigation_bar.edit_profile": "Profili düzenle",
+  "navigation_bar.explore": "Keşfet",
   "navigation_bar.favourites": "Favoriler",
   "navigation_bar.filters": "Sessize alınmış kelimeler",
   "navigation_bar.follow_requests": "Takip istekleri",
diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json
index 52a59713f..06936f110 100644
--- a/app/javascript/mastodon/locales/tt.json
+++ b/app/javascript/mastodon/locales/tt.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Профильны үзгәртү",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
@@ -395,7 +396,7 @@
   "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_account": "профиль",
   "report.category.title_status": "post",
   "report.close": "Done",
   "report.comment.title": "Is there anything else you think we should know?",
@@ -478,9 +479,9 @@
   "status.report": "Report @{name}",
   "status.sensitive_warning": "Sensitive content",
   "status.share": "Уртаклашу",
-  "status.show_less": "Show less",
+  "status.show_less": "Әзрәк күрсәтү",
   "status.show_less_all": "Show less for all",
-  "status.show_more": "Show more",
+  "status.show_more": "Күбрәк күрсәтү",
   "status.show_more_all": "Show more for all",
   "status.show_thread": "Show thread",
   "status.uncached_media_warning": "Not available",
diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json
index 3b450f89a..088b5ff36 100644
--- a/app/javascript/mastodon/locales/ug.json
+++ b/app/javascript/mastodon/locales/ug.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index f6fac3669..41f44fd12 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Знайти",
   "navigation_bar.domain_blocks": "Приховані домени",
   "navigation_bar.edit_profile": "Редагувати профіль",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Вподобане",
   "navigation_bar.filters": "Приховані слова",
   "navigation_bar.follow_requests": "Запити на підписку",
diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json
index a5676209f..e5aad2355 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "دریافت کریں",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "پروفائل میں ترمیم کریں",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "پسندیدہ",
   "navigation_bar.filters": "خاموش کردہ الفاظ",
   "navigation_bar.follow_requests": "پیروی کی درخواستیں",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index aa0199b3e..b6db3c14b 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -22,7 +22,7 @@
   "account.following_counter": "{count, plural, one {{counter} Theo dõi} other {{counter} Theo dõi}}",
   "account.follows.empty": "Người này chưa theo dõi ai.",
   "account.follows_you": "Đang theo dõi bạn",
-  "account.hide_reblogs": "Ẩn chia sẻ từ @{name}",
+  "account.hide_reblogs": "Ẩn tút do @{name} đăng lại",
   "account.joined": "Đã tham gia {date}",
   "account.link_verified_on": "Liên kết này đã được xác thực vào {date}",
   "account.locked_info": "Đây là tài khoản riêng tư. Họ sẽ tự mình xét duyệt các yêu cầu theo dõi.",
@@ -37,7 +37,7 @@
   "account.report": "Báo cáo @{name}",
   "account.requested": "Đang chờ chấp thuận. Nhấp vào đây để hủy yêu cầu theo dõi",
   "account.share": "Chia sẻ trang @{name}",
-  "account.show_reblogs": "Hiện chia sẻ từ @{name}",
+  "account.show_reblogs": "Hiện tút do @{name} đăng lại",
   "account.statuses_counter": "{count, plural, one {{counter} Tút} other {{counter} Tút}}",
   "account.unblock": "Bỏ chặn @{name}",
   "account.unblock_domain": "Bỏ ẩn {domain}",
@@ -60,7 +60,7 @@
   "announcement.announcement": "Thông báo chung",
   "attachments_list.unprocessed": "(chưa xử lí)",
   "autosuggest_hashtag.per_week": "{count} mỗi tuần",
-  "boost_modal.combo": "Nhấn {combo} để chia sẻ nhanh hơn",
+  "boost_modal.combo": "Nhấn {combo} để bỏ qua bước này",
   "bundle_column_error.body": "Đã có lỗi xảy ra trong khi tải nội dung này.",
   "bundle_column_error.retry": "Thử lại",
   "bundle_column_error.title": "Không có kết nối internet",
@@ -131,7 +131,7 @@
   "confirmations.mute.explanation": "Điều này sẽ khiến tút của họ và những tút có nhắc đến họ bị ẩn, tuy nhiên họ vẫn có thể xem tút của bạn và theo dõi bạn.",
   "confirmations.mute.message": "Bạn thật sự muốn ẩn {name}?",
   "confirmations.redraft.confirm": "Xóa & viết lại",
-  "confirmations.redraft.message": "Bạn thật sự muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt thích và chia sẻ của tút, cũng như những trả lời sẽ không còn nội dung gốc.",
+  "confirmations.redraft.message": "Bạn thật sự muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt thích và đăng lại của tút, cũng như những trả lời sẽ không còn nội dung gốc.",
   "confirmations.reply.confirm": "Trả lời",
   "confirmations.reply.message": "Nội dung bạn đang soạn thảo sẽ bị ghi đè, bạn có tiếp tục?",
   "confirmations.unfollow.confirm": "Ngưng theo dõi",
@@ -218,7 +218,7 @@
   "hashtag.column_settings.tag_mode.none": "Không chọn",
   "hashtag.column_settings.tag_toggle": "Bao gồm thêm hashtag cho cột này",
   "home.column_settings.basic": "Tùy chỉnh",
-  "home.column_settings.show_reblogs": "Hiện những lượt chia sẻ",
+  "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",
@@ -227,7 +227,7 @@
   "intervals.full.minutes": "{number, plural, other {# phút}}",
   "keyboard_shortcuts.back": "trở lại",
   "keyboard_shortcuts.blocked": "mở danh sách người đã chặn",
-  "keyboard_shortcuts.boost": "chia sẻ",
+  "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.description": "Mô tả",
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Khám phá",
   "navigation_bar.domain_blocks": "Máy chủ đã ẩn",
   "navigation_bar.edit_profile": "Trang cá nhân",
+  "navigation_bar.explore": "Khám phá",
   "navigation_bar.favourites": "Thích",
   "navigation_bar.filters": "Bộ lọc từ ngữ",
   "navigation_bar.follow_requests": "Yêu cầu theo dõi",
@@ -315,7 +316,7 @@
   "notification.mention": "{name} nhắc đến bạn",
   "notification.own_poll": "Cuộc bình chọn của bạn đã kết thúc",
   "notification.poll": "Cuộc bình chọn đã kết thúc",
-  "notification.reblog": "{name} chia sẻ tút của bạn",
+  "notification.reblog": "{name} đăng lại tút của bạn",
   "notification.status": "{name} vừa đăng",
   "notification.update": "{name} đã viết lại một tút",
   "notifications.clear": "Xóa hết thông báo",
@@ -331,7 +332,7 @@
   "notifications.column_settings.mention": "Lượt nhắc đến:",
   "notifications.column_settings.poll": "Kết quả bình chọn:",
   "notifications.column_settings.push": "Thông báo đẩy",
-  "notifications.column_settings.reblog": "Lượt chia sẻ mới:",
+  "notifications.column_settings.reblog": "Lượt đăng lại mới:",
   "notifications.column_settings.show": "Thông báo trên thanh menu",
   "notifications.column_settings.sound": "Kèm theo tiếng \"bíp\"",
   "notifications.column_settings.status": "Tút mới:",
@@ -339,7 +340,7 @@
   "notifications.column_settings.unread_notifications.highlight": "Nổi bật thông báo chưa đọc",
   "notifications.column_settings.update": "Lượt sửa:",
   "notifications.filter.all": "Toàn bộ",
-  "notifications.filter.boosts": "Chia sẻ",
+  "notifications.filter.boosts": "Đăng lại",
   "notifications.filter.favourites": "Thích",
   "notifications.filter.follows": "Đang theo dõi",
   "notifications.filter.mentions": "Lượt nhắc đến",
@@ -427,7 +428,7 @@
   "report.unfollow_explanation": "Bạn đang theo dõi người này. Để không thấy tút của họ trong bảng tin nữa, hãy ngưng theo dõi.",
   "search.placeholder": "Tìm kiếm",
   "search_popout.search_format": "Gợi ý",
-  "search_popout.tips.full_text": "Nội dung trả về bao gồm những tút mà bạn đã viết, thích, chia sẻ hoặc những tút có nhắc đến bạn. Bạn cũng có thể tìm địa chỉ người dùng, tên hiển thị và hashtag.",
+  "search_popout.tips.full_text": "Nội dung trả về bao gồm những tút mà bạn đã viết, thích, đăng lại hoặc những tút có nhắc đến bạn. Bạn cũng có thể tìm địa chỉ người dùng, tên hiển thị và hashtag.",
   "search_popout.tips.hashtag": "hashtag",
   "search_popout.tips.status": "tút",
   "search_popout.tips.text": "Nội dung trả về là tên người dùng, tên hiển thị và hashtag",
@@ -443,8 +444,8 @@
   "status.admin_status": "Mở tút này trong giao diện quản trị",
   "status.block": "Chặn @{name}",
   "status.bookmark": "Lưu",
-  "status.cancel_reblog_private": "Hủy chia sẻ",
-  "status.cannot_reblog": "Không thể chia sẻ tút này",
+  "status.cancel_reblog_private": "Hủy đăng lại",
+  "status.cannot_reblog": "Không thể đăng lại tút này",
   "status.copy": "Sao chép URL",
   "status.delete": "Xóa",
   "status.detailed_status": "Xem chi tiết thêm",
@@ -467,10 +468,10 @@
   "status.pin": "Ghim lên trang cá nhân",
   "status.pinned": "Tút đã ghim",
   "status.read_more": "Đọc tiếp",
-  "status.reblog": "Chia sẻ",
-  "status.reblog_private": "Chia sẻ (Riêng tư)",
-  "status.reblogged_by": "{name} chia sẻ",
-  "status.reblogs.empty": "Tút này chưa có ai chia sẻ. Nếu có, nó sẽ hiển thị ở đây.",
+  "status.reblog": "Đăng lại",
+  "status.reblog_private": "Đăng lại (Riêng tư)",
+  "status.reblogged_by": "{name} đăng lại",
+  "status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.",
   "status.redraft": "Xóa và viết lại",
   "status.remove_bookmark": "Bỏ lưu",
   "status.reply": "Trả lời",
diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json
index 855986def..b321d1525 100644
--- a/app/javascript/mastodon/locales/zgh.json
+++ b/app/javascript/mastodon/locales/zgh.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "ⵙⵏⴼⵍ ⵉⴼⵔⵙ",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "ⵜⵓⵜⵔⴰⵡⵉⵏ ⵏ ⵓⴹⴼⴰⵕ",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index f0051b5ba..ae0c5e3d4 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -18,7 +18,7 @@
   "account.followers": "关注者",
   "account.followers.empty": "目前无人关注此用户。",
   "account.followers_counter": "被 {counter} 人关注",
-  "account.following": "Following",
+  "account.following": "正在关注",
   "account.following_counter": "正在关注 {counter} 人",
   "account.follows.empty": "此用户目前尚未关注任何人。",
   "account.follows_you": "关注了你",
@@ -41,12 +41,12 @@
   "account.statuses_counter": "{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": "点击添加备注",
   "admin.dashboard.daily_retention": "注册后用户留存率(按日计算)",
   "admin.dashboard.monthly_retention": "注册后用户留存率(按月计算)",
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "发现",
   "navigation_bar.domain_blocks": "已屏蔽的网站",
   "navigation_bar.edit_profile": "修改个人资料",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "喜欢",
   "navigation_bar.filters": "隐藏关键词",
   "navigation_bar.follow_requests": "关注请求",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 5aa531407..b60560cd1 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "探索",
   "navigation_bar.domain_blocks": "封鎖的服務站",
   "navigation_bar.edit_profile": "修改個人資料",
+  "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "最愛的內容",
   "navigation_bar.filters": "靜音詞彙",
   "navigation_bar.follow_requests": "關注請求",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 63691ca93..f9366fe17 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -294,6 +294,7 @@
   "navigation_bar.discover": "探索",
   "navigation_bar.domain_blocks": "隱藏的網域",
   "navigation_bar.edit_profile": "編輯個人資料",
+  "navigation_bar.explore": "探索",
   "navigation_bar.favourites": "最愛",
   "navigation_bar.filters": "靜音詞彙",
   "navigation_bar.follow_requests": "跟隨請求",
diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb
index d3be4be3f..850ea6d82 100644
--- a/app/models/admin/account_action.rb
+++ b/app/models/admin/account_action.rb
@@ -22,6 +22,16 @@ class Admin::AccountAction
 
   attr_reader :warning, :send_email_notification, :include_statuses
 
+  alias send_email_notification? send_email_notification
+  alias include_statuses? include_statuses
+
+  def initialize(attributes = {})
+    @send_email_notification = true
+    @include_statuses        = true
+
+    super
+  end
+
   def send_email_notification=(value)
     @send_email_notification = ActiveModel::Type::Boolean.new.cast(value)
   end
@@ -141,11 +151,11 @@ class Admin::AccountAction
   end
 
   def warnable?
-    send_email_notification && target_account.local?
+    send_email_notification? && target_account.local?
   end
 
   def status_ids
-    report.status_ids if with_report? && include_statuses
+    report.status_ids if with_report? && include_statuses?
   end
 
   def reports
diff --git a/app/models/notification.rb b/app/models/notification.rb
index 9bf296386..ba94b54d1 100644
--- a/app/models/notification.rb
+++ b/app/models/notification.rb
@@ -63,13 +63,6 @@ class Notification < ApplicationRecord
 
   scope :without_suspended, -> { joins(:from_account).merge(Account.without_suspended) }
 
-  scope :browserable, ->(exclude_types = [], account_id = nil) {
-    scope = all
-    scope = where(from_account_id: account_id) if account_id.present?
-    scope = scope.where(type: TYPES - exclude_types.map(&:to_sym)) unless exclude_types.empty?
-    scope
-  }
-
   def type
     @type ||= (super || LEGACY_TYPE_CLASS_MAP[activity_type]).to_sym
   end
@@ -90,6 +83,23 @@ class Notification < ApplicationRecord
   end
 
   class << self
+    def browserable(types: [], exclude_types: [], from_account_id: nil)
+      requested_types = begin
+        if types.empty?
+          TYPES
+        else
+          types.map(&:to_sym) & TYPES
+        end
+      end
+
+      requested_types -= exclude_types.map(&:to_sym)
+
+      all.tap do |scope|
+        scope.merge!(where(from_account_id: from_account_id)) if from_account_id.present?
+        scope.merge!(where(type: requested_types)) unless requested_types.size == TYPES.size
+      end
+    end
+
     def preload_cache_collection_target_statuses(notifications, &_block)
       notifications.group_by(&:type).each do |type, grouped_notifications|
         associations = TARGET_STATUS_INCLUDES_BY_TYPE[type]
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index 0f9e23fa1..0d2c32c35 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -80,6 +80,10 @@ class PreviewCard < ApplicationRecord
     end
   end
 
+  def requires_review?
+    attributes['trendable'].nil? && (provider.nil? || provider.requires_review?)
+  end
+
   def requires_review_notification?
     attributes['trendable'].nil? && (provider.nil? || provider.requires_review_notification?)
   end
diff --git a/app/models/status.rb b/app/models/status.rb
index ba9d7f0aa..b979252b3 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -300,6 +300,10 @@ class Status < ApplicationRecord
     end
   end
 
+  def requires_review?
+    attributes['trendable'].nil? && account.requires_review?
+  end
+
   def requires_review_notification?
     attributes['trendable'].nil? && account.requires_review_notification?
   end
diff --git a/app/views/admin/reports/_status.html.haml b/app/views/admin/reports/_status.html.haml
index 1c033c4c3..7538cfd54 100644
--- a/app/views/admin/reports/_status.html.haml
+++ b/app/views/admin/reports/_status.html.haml
@@ -29,7 +29,7 @@
         %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
       - if status.edited?
         ·
-        = t('statuses.edited_at', date: l(status.edited_at))
+        = t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted'))
       - if status.discarded?
         ·
         %span.negative-hint= t('admin.statuses.deleted')
diff --git a/app/views/admin/trends/links/_preview_card.html.haml b/app/views/admin/trends/links/_preview_card.html.haml
index d88e06bfd..2e6a0c62f 100644
--- a/app/views/admin/trends/links/_preview_card.html.haml
+++ b/app/views/admin/trends/links/_preview_card.html.haml
@@ -1,4 +1,4 @@
-.batch-table__row{ class: [preview_card.provider&.requires_review? && 'batch-table__row--attention', !preview_card.provider&.requires_review? && !preview_card.trendable? && 'batch-table__row--muted'] }
+.batch-table__row{ class: [preview_card.requires_review? && 'batch-table__row--attention', !preview_card.requires_review? && !preview_card.trendable? && 'batch-table__row--muted'] }
   %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox
     = f.check_box :preview_card_ids, { multiple: true, include_hidden: false }, preview_card.id
 
@@ -25,6 +25,6 @@
         - if preview_card.decaying?

           = t('admin.trends.tags.peaked_on_and_decaying', date: l(preview_card.max_score_at.to_date, format: :short))
-      - elsif preview_card.provider&.requires_review?
+      - elsif preview_card.requires_review?

         = t('admin.trends.pending_review')
diff --git a/app/views/admin/trends/statuses/_status.html.haml b/app/views/admin/trends/statuses/_status.html.haml
index 50a855349..0c463c6b1 100644
--- a/app/views/admin/trends/statuses/_status.html.haml
+++ b/app/views/admin/trends/statuses/_status.html.haml
@@ -1,4 +1,4 @@
-.batch-table__row{ class: [status.account.requires_review? && 'batch-table__row--attention', !status.account.requires_review? && !status.trendable? && 'batch-table__row--muted'] }
+.batch-table__row{ class: [status.requires_review? && 'batch-table__row--attention', !status.requires_review? && !status.trendable? && 'batch-table__row--muted'] }
   %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox
     = f.check_box :status_ids, { multiple: true, include_hidden: false }, status.id
 
@@ -28,6 +28,6 @@
     - if status.trendable? && (rank = Trends.statuses.rank(status.id))

       %abbr{ title: t('admin.trends.tags.current_score', score: Trends.statuses.score(status.id)) }= t('admin.trends.tags.trending_rank', rank: rank + 1)
-    - elsif status.account.requires_review?
+    - elsif status.requires_review?

       = t('admin.trends.pending_review')
diff --git a/app/views/statuses/_detailed_status.html.haml b/app/views/statuses/_detailed_status.html.haml
index 6ccf3725a..fd7e034b1 100644
--- a/app/views/statuses/_detailed_status.html.haml
+++ b/app/views/statuses/_detailed_status.html.haml
@@ -44,7 +44,7 @@
       %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
     ·
     - if status.edited?
-      = t('statuses.edited_at', date: l(status.edited_at))
+      = t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted'))
       ·
     %span.detailed-status__visibility-icon
       = visibility_icon status
diff --git a/app/views/statuses/_simple_status.html.haml b/app/views/statuses/_simple_status.html.haml
index 67c6dfc7d..a41656323 100644
--- a/app/views/statuses/_simple_status.html.haml
+++ b/app/views/statuses/_simple_status.html.haml
@@ -8,7 +8,7 @@
         = visibility_icon status
       %time.time-ago{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
       - if status.edited?
-        %abbr{ title: t('statuses.edited_at', date: l(status.edited_at.to_date)) }
+        %abbr{ title: t('statuses.edited_at_html', date: l(status.edited_at.to_date)) }
           *
     %data.dt-published{ value: status.created_at.to_time.iso8601 }
 
diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb
index 549ac3568..21f782b9c 100644
--- a/config/initializers/content_security_policy.rb
+++ b/config/initializers/content_security_policy.rb
@@ -62,4 +62,20 @@ Rails.application.reloader.to_prepare do
   PgHero::HomeController.after_action do
     request.content_security_policy_nonce_generator = nil
   end
+
+  if Rails.env.development?
+    LetterOpenerWeb::LettersController.content_security_policy do |p|
+      p.child_src       :self
+      p.connect_src     :none
+      p.frame_ancestors :self
+      p.frame_src       :self
+      p.script_src      :unsafe_inline
+      p.style_src       :unsafe_inline
+      p.worker_src      :none
+    end
+
+    LetterOpenerWeb::LettersController.after_action do |p|
+      request.content_security_policy_nonce_directives = %w(script-src)
+    end
+  end
 end
diff --git a/config/initializers/pghero.rb b/config/initializers/pghero.rb
new file mode 100644
index 000000000..0c77d6d0f
--- /dev/null
+++ b/config/initializers/pghero.rb
@@ -0,0 +1 @@
+PgHero.show_migrations = Rails.env.development?
diff --git a/config/locales/activerecord.tt.yml b/config/locales/activerecord.tt.yml
index a689958c4..5f28508d6 100644
--- a/config/locales/activerecord.tt.yml
+++ b/config/locales/activerecord.tt.yml
@@ -8,3 +8,5 @@ tt:
         password: Парол
       user/account:
         username: Кулланучы исеме
+      user/invite_request:
+        text: Сәбаб
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index 7b2321510..bed51bd94 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -21,8 +21,8 @@ ast:
     server_stats: 'Estadístiques del sirvidor:'
     source_code: Códigu fonte
     status_count_after:
-      one: estáu
-      other: estaos
+      one: artículu
+      other: artículos
     status_count_before: Que crearon
     tagline: Sigui a persones y conoz a más xente
     terms: Términos del serviciu
@@ -46,9 +46,9 @@ ast:
     people_followed_by: Persones a les que sigue %{name}
     people_who_follow: Persones que siguen a %{name}
     posts:
-      one: Barritu
-      other: Barritos
-    posts_tab_heading: Barritos
+      one: Artículu
+      other: Artículos
+    posts_tab_heading: Artículos
     posts_with_replies: Barritos y rempuestes
     roles:
       bot: Robó
@@ -64,6 +64,8 @@ ast:
       location:
         local: Llocal
         title: Allugamientu
+      most_recent_activity: L'actividá más recién
+      most_recent_ip: La IP más recién
       protocol: Protocolu
       reject: Refugar
       resend_confirmation:
@@ -93,6 +95,7 @@ ast:
     dashboard:
       media_storage: Almacenamientu multimedia
       software: Software
+      top_languages: Les llingües más actives
       website: Sitiu web
     domain_blocks:
       domain: Dominiu
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index d870ed632..69d2ae635 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -373,6 +373,7 @@ ca:
       enable: Habilita
       enabled: Activat
       enabled_msg: S'ha habilitat amb èxit emoji
+      image_hint: PNG or GIF fins a %{size}
       list: Llista
       listed: Enumerat
       new:
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 5c790993c..ff45ee811 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -393,7 +393,7 @@ da:
       interactions: interaktioner
       media_storage: Medielagerplads
       new_users: nye brugere
-      opened_reports: anmeldelser åbnet
+      opened_reports: indberettede anmeldelser
       pending_appeals_html:
         one: "<strong>%{count}</strong> verserende anke"
         other: "<strong>%{count}</strong> verserende anker"
@@ -406,7 +406,7 @@ da:
       pending_users_html:
         one: "<strong>%{count}</strong> afventende bruger"
         other: "<strong>%{count}</strong> afventende brugere"
-      resolved_reports: anmeldelser løst
+      resolved_reports: løste anmeldelser
       software: Software
       sources: Tilmeldingskilder
       space: Lagerpladsforbrug
@@ -536,8 +536,8 @@ da:
       private_comment: Privat kommentar
       public_comment: Offentlig kommentar
       purge: Udrens
-      purge_description_html: Mener man, at dette domæne er offline permanent, kan alle kontooptegnelser og tilknyttede data fra dette domæne slettes fra ens lagerplads. Dette kan tage et stykke tid.
-      title: Federation
+      purge_description_html: Antages dette domæne at være offline permanent, kan alle kontooptegnelser og tilknyttede data herfra slettes fra ens lagerplads. Dette kan tage et stykke tid.
+      title: Federering
       total_blocked_by_us: Blokeret af os
       total_followed_by_them: Følges af dem
       total_followed_by_us: Følges af os
@@ -565,14 +565,14 @@ da:
         '94670856': 3 år
       new:
         title: Opret ny IP-regel
-      no_ip_block_selected: Ingen IP-regler blev ændret, da ingen blev valgt
+      no_ip_block_selected: Ingen IP-regler blev ændret (ingen var valgt)
       title: IP-regler
     relationships:
       title: "%{acct}-relationer"
     relays:
       add_new: Tilføj ny videreformidler
       delete: Slet
-      description_html: En <strong>federationsvidereformidler</strong> er en mellemliggende server, der udveksler store mængder af offentlige trut imellem servere, som abonnerer på og publicerer til den. <strong>Det kan hjælpe små og mellemstore servere opdage indhold fra fediverset</strong>, hvilket ellers ville kræve at lokale brugere manuelt følger andre personer på fjernservere.
+      description_html: En <strong>federationsvidereformidler</strong> er en mellemliggende server, der udveksler store mængder offentlige indlæg mellem servere, som abonnerer på og publicerer til den. <strong>Det kan hjælpe små og mellemstore servere med at opdage indhold fra fediverset</strong>, der ellers ville kræve at lokale brugere manuelt følger andre personer på fjernservere.
       disable: Deaktivér
       disabled: Deaktiveret
       enable: Aktivér
@@ -582,30 +582,33 @@ da:
       pending: Afventer videreformidlers godkendelse
       save_and_enable: Gem og aktivér
       setup: Opsæt en videreformidlerforbindelse
-      signatures_not_enabled: Videreformidlere fungerer ikke korrekt, mens sikker tilstand eller begrænset føderationstilstand er aktiveret
+      signatures_not_enabled: Videreformidlere fungerer ikke korrekt, mens sikker tilstand eller begrænset federeringstilstand er aktiveret
       status: Status
       title: Videreformidlere
     report_notes:
       created_msg: Anmeldelsesnotat er oprettet!
       destroyed_msg: Anmeldelsesnotat er slettet!
-      today_at: I dag kl. %{time}
+      today_at: I dag %{time}
     reports:
       account:
         notes:
           one: "%{count} notat"
           other: "%{count} notater"
       action_log: Revisionslog
-      action_taken_by: Handling udført af
+      action_taken_by: Handling foretaget af
       actions:
-        other_description_html: Se flere muligheder for kontoadfærdsstyring og kommunikationstilpasning til den anmeldte konto.
-        silence_description_html: Profilen vil kun være synlig for dem, som allerede følger den eller manuelt slå den op, hvilket markant begrænse dens rækkevidde. Kan altid omgøres.
-        suspend_description_html: Profilen inkl. alt indhold gøres utilgængelig, indtil den til sidst slettes. Interaktion med kontoen vil være umulig. Reversible inden for 30 dage.
+        delete_description_html: De anmeldte indlæg slettes, og en advarsel (strike) registreres mhp. eskalering ved evt. fremtidige overtrædelser fra samme konto.
+        mark_as_sensitive_description_html: Medierne i det anmeldte indlæg markeres som sensitive, og en advarsel (strike) registreres mhp. eskalering ved evt. fremtidige overtrædelser fra samme konto.
+        other_description_html: Se flere muligheder relateret til at adfærdshåndtering for, samt tilpasning af kommunikation til, den anmeldte konto.
+        resolve_description_html: Ingen foranstaltninger træffes mod den anmeldte konto, ingen advarsel (strike) registreres og anmeldelsen lukkes.
+        silence_description_html: Profilen vil kun være synlig for dem, som allerede følger den eller manuelt slå den op, hvilket markant begrænser dens rækkevidde. Kan altid omgøres.
+        suspend_description_html: Profilen (inkl. alt indhold) gøres utilgængelig, indtil den til sidst slettes. Interaktion med kontoen vil være umulig. Kan fortrydes inden for 30 dage.
       actions_description_html: Afgør, hvilke foranstaltning, der skal træffes for at løse denne anmeldelse. Træffes en straffende foranstaltning mod den anmeldte konto, fremsendes en e-mailnotifikation, undtagen når kategorien <strong>Spam</strong> er valgt.
       add_to_report: Føj mere til anmeldelse
       are_you_sure: Sikker?
       assign_to_self: Tildel til mig
       assigned: Tildelt moderator
-      by_target_domain: Domæne for anmeldt konto
+      by_target_domain: Anmeldte kontos domæne
       category: Kategori
       category_description_html: Årsagen til anmeldelsen af denne konto og/eller indhold refereres i kommunikationen med den anmeldte konto
       comment:
@@ -616,14 +619,15 @@ da:
       forwarded: Videresendt
       forwarded_to: Videresendt til %{domain}
       mark_as_resolved: Markér som løst
-      mark_as_unresolved: Markér som ikke-løst
+      mark_as_sensitive: Markér som sensitiv
+      mark_as_unresolved: Markér som uløst
       no_one_assigned: Ingen
       notes:
         create: Tilføj notat
         create_and_resolve: Løs med notat
         create_and_unresolve: Genåbn med notat
         delete: Slet
-        placeholder: Beskriv de udførte handlinger eller andre relevante opdateringer...
+        placeholder: Beskriv udførte foranstaltninger eller andre relevante opdateringer...
         title: Notater
       notes_description_html: Se og skriv notater til andre moderatorer og dit fremtid selv
       quick_actions_description_html: 'Træf en hurtig foranstaltning eller rul ned for at se anmeldt indhold:'
@@ -633,31 +637,31 @@ da:
       reported_account: Anmeldt konto
       reported_by: Anmeldt af
       resolved: Løst
-      resolved_msg: Anmeldelse er nu løst!
-      skip_to_actions: Overspring til handlinger
+      resolved_msg: Anmeldelse løst!
+      skip_to_actions: Overspring til foranstaltninger
       status: Status
       statuses: Anmeld indhold
-      statuses_description_html: Krænkende indhold refereres i kommunikationen med den anmeldte konto
+      statuses_description_html: Krænkende indhold citeres i kommunikationen med den anmeldte konto
       target_origin: Anmeldte kontos oprindelse
       title: Anmeldelser
-      unassign: Utildel
-      unresolved: Ikke-løst
+      unassign: Fjern tildeling
+      unresolved: Uløst
       updated_at: Opdateret
       view_profile: Vis profil
     rules:
       add_new: Tilføj regel
       delete: Slet
-      description_html: Mens de fleste hævder at have læst og accepteret tjenestevilkårene, så læser folk normalt ikke disse, før et problem er opstået. <strong>Gør det lettere med ét blik at se din servers regler ved at opliste disse på en punktsliste.</strong> Prøv at holde individuelle regler korte og enkle, men undgå også at opdele dem i mange separate underpunkter.
+      description_html: Mens de fleste hævder at have læst og accepteret tjenestevilkårene, så læser folk normalt ikke disse, før et problem er opstået. <strong>Gør det lettere med ét blik at se din servers regler ved at opliste disse på en punktliste.</strong> Forsøg at holde individuelle regler korte og enkle, men undgå også at opdele dem i mange separate underpunkter.
       edit: Redigér regel
       empty: Ingen serverregler defineret endnu.
       title: Serverregler
     settings:
       activity_api_enabled:
-        desc_html: Antal af lokalt opslåede statusser, aktive brugere, og nye registreringer i ugentlige opdelinger
+        desc_html: Antal lokalt opslåede indlæg, aktive brugere samt nye tilmeldinger i ugentlige opdelinger
         title: Offentliggør samlede statistikker vedr. brugeraktivitet i API'en
       bootstrap_timeline_accounts:
-        desc_html: Adskil flere brugernavne med kommaer. Kun lokale og ulåste konti vil fungere. Standard, hvis tom, er alle lokale admins.
-        title: Standard følger for nye brugere
+        desc_html: Adskil flere brugernavne med kommaer. Disse konti vil være garanteret visning i følg-anbefalinger
+        title: Anbefal disse konti til nye brugere
       contact_information:
         email: Forretningse-mail
         username: Kontaktbrugernavn
@@ -666,7 +670,7 @@ da:
         title: Tilpasset CSS
       default_noindex:
         desc_html: Påvirker alle brugere, som ikke selv har ændret denne indstilling
-        title: Fravælge som standard søgemaskineindekseringer for brugere
+        title: Fravælg som standard søgemaskineindekseringer for brugere
       domain_blocks:
         all: Til alle
         disabled: Til ingen
@@ -675,24 +679,24 @@ da:
       domain_blocks_rationale:
         title: Vis begrundelse
       hero:
-        desc_html: Vist på forsiden. Mindst 600x100px anbefales. Hvis ikke sat, benyttes serverminiaturebillede
+        desc_html: Vises på forsiden. Mindst 600x100px anbefales. Hvis ikke opsat, benyttes serverminiaturebillede
         title: Heltebillede
       mascot:
-        desc_html: Vist på forsiden. Mindst 293x205px anbefales. Hvis ikke sat, benyttes standardmaskot
+        desc_html: Vises på flere sider. Mindst 293x205px anbefales. Hvis ikke opsat, benyttes standardmaskot
         title: Maskotbillede
       peers_api_enabled:
         desc_html: Domænenavne, denne server er stødt på i fediverset
-        title: Udgiv liste over opdagede server i API'en
+        title: Udgiv liste over fundne server i API'en
       preview_sensitive_media:
         desc_html: Linkforhåndsvisninger på andre websteder vil vise et miniaturebillede, selv hvis mediet er markeret som sensitivt
-        title: Vis følsomme medier i OpenGraph-forhåndsvisninger
+        title: Vis sensitive medier i OpenGraph-forhåndsvisninger
       profile_directory:
-        desc_html: Tillad at brugere kan findes
+        desc_html: Tillad brugere at blive fundet
         title: Aktivér profilmappe
       registrations:
         closed_message:
-          desc_html: Vist på forside, når tilmeldingsmuligheder er lukket. HTML-tags kan bruges
-          title: Lukket tilmelding-meddelelse
+          desc_html: Vises på forside, når tilmeldingsmuligheder er lukket. HTML-tags kan bruges
+          title: Lukket tilmelding-besked
         deletion:
           desc_html: Tillad enhver at slette sin konto
           title: Åbn kontosletning
@@ -700,32 +704,32 @@ da:
           disabled: Ingen
           title: Tillad invitationer fra
         require_invite_text:
-          desc_html: Når tilmeldnger kræver manuel godkendelse, så gør “Hvorfor ønsker du at deltage?” tekstinput obligatorisk i stedet for valgfri
-          title: Nye brugere afkræves deltagelsesbegrundelse
+          desc_html: Når tilmelding kræver manuel godkendelse, så gør “Hvorfor ønsker du at deltage?” tekstinput obligatorisk i stedet for valgfrit
+          title: Nye brugere afkræves tilmeldingsbegrundelse
       registrations_mode:
         modes:
-          approved: Godkendelse kræves for tilmelding
+          approved: Tilmeldingsgodkendelse kræves
           none: Ingen kan tilmelde sig
-          open: Enhver kan tilmelde sig
+          open: Alle kan tilmelde sig
         title: Tilmeldingstilstand
       show_known_fediverse_at_about_page:
-        desc_html: Når deaktiveret, begrænses den offentlige tidslinje linket fra indgangssiden til kun at vise lokalt indhold
+        desc_html: Når deaktiveret, begrænses den fra indgangssiden linkede offentlige tidslinje til kun at vise lokalt indhold
         title: Medtag federeret indhold på ikke-godkendt, offentlig tidslinjeside
       show_staff_badge:
-        desc_html: Vis et personaleemblem på en brugerside
-        title: Vis personaleemblem
+        desc_html: Vis et personale-badge på en brugerside
+        title: Vis personale-badge
       site_description:
-        desc_html: Introduktionsafsnit på API'en. Beskriv, hvad der gør denne Mastodonserver speciel samt alt andet vigtigt. HTML tags kan bruges, især <code>&lt;a&gt;</code> og <code>&lt;em&gt;</code>.
+        desc_html: Introduktionsafsnit på API'en. Beskriv, hvad der gør denne Mastodonserver speciel samt alt andet vigtigt. HTML-tags kan bruges, især <code>&lt;a&gt;</code> og <code>&lt;em&gt;</code>.
         title: Serverbeskrivelse
       site_description_extended:
-        desc_html: Et god placering til dit adfærdskodes, regler, retningslinjer mv., som gør din server unik. HTML-tags kan bruges
+        desc_html: Et god placering til adfærdskodes, regler, retningslinjer mv., som gør denne server unik. HTML-tags kan bruges
         title: Tilpasset udvidet information
       site_short_description:
         desc_html: Vises på sidebjælke og metatags. Beskriv i et enkelt afsnit, hvad Mastodon er, og hvad der gør denne server speciel.
         title: Kort serverbeskrivelse
       site_terms:
-        desc_html: Du kan skrive din egen fortrolighedspolitik, tjenestevilkår el.lign. HTML-tags kan bruges
-        title: Tilpasset tjenestevilkår
+        desc_html: Der kan angives egen fortrolighedspolitik, tjenestevilkår el.lign. HTML-tags kan bruges
+        title: Tilpassede tjenestevilkår
       site_title: Servernavn
       thumbnail:
         desc_html: Bruges til forhåndsvisninger via OpenGraph og API. 1200x630px anbefales
@@ -735,30 +739,31 @@ da:
         title: Tillad ikke-godkendt tilgang til offentlig tidslinje
       title: Webstedsindstillinger
       trendable_by_default:
-        desc_html: Påvirker hashtags, som ikke blevet nægtet tidligere
-        title: Tillad hashtags at forme tendens uden forudgående gennemsyn
+        desc_html: Påvirker hashtags, som ikke tidligere er blevet nægtet
+        title: Tillad hashtags at forme tendens uden forudgående revision
       trends:
-        desc_html: Vis tidligere gennemgåede hashtags, som pt. trender
-        title: Populære hashtags
+        desc_html: Vis offentligt tidligere reviderede hashtags, som pt. trender
+        title: Populært
     site_uploads:
       delete: Slet uploadet fil
       destroyed_msg: Websteds-upload blev slettet!
     statuses:
-      back_to_account: Tilbage til kontosiden
-      back_to_report: Retur til anmeldelsessiden
+      back_to_account: Retur til kontoside
+      back_to_report: Retur til anmeldelsesside
       batch:
         remove_from_report: Fjern fra anmeldelse
         report: Anmeldelse
       deleted: Slettet
       media:
         title: Medier
-      no_status_selected: Ingen indlæg ændret, da ingen var valgt
+      no_status_selected: Ingen indlæg ændret (ingen valgt)
       title: Kontoindlæg
       with_media: Med medier
     strikes:
       actions:
         delete_statuses: "%{name} slettede %{target}s indlæg"
         disable: "%{name} frøs %{target}s konto"
+        mark_statuses_as_sensitive: "%{name} markerede %{target}s indlæg som sensitive"
         none: "%{name} sendte en advarsel til %{target}"
         sensitive: "%{name} markerede %{target}s konto som sensitiv"
         silence: "%{name} begrænsede %{target}s konto"
@@ -774,7 +779,7 @@ da:
       sidekiq_process_check:
         message_html: Ingen Sidekiq-proces kører for %{value}-kø(er). Gennemgå Sidekiq-opsætningen
     tags:
-      review: Gennemsynsstatus
+      review: Revisionsstatus
       updated_msg: Hashtag-indstillinger opdateret
     title: Administration
     trends:
@@ -784,7 +789,7 @@ da:
       links:
         allow: Tillad link
         allow_provider: Tillad udgiver
-        description_html: Disse er links, som pt. deles meget af konti, som dine server ser indlæg fra. Det kan hjælpe dine brugere med at finde ud af, hvad der sker i verden. Ingen links vises offentligt, før du godkender udgiveren. Du kan også tillade/afvise individuelle links.
+        description_html: Disse er links, som pt. deles meget af konti, som serveren ser indlæg fra. Det kan hjælpe ens brugere med at finde ud af, hvad der sker i verden. Ingen links vises offentligt, før man godkender udgiveren. Man kan også tillade/afvise individuelle links.
         disallow: Tillad ikke link
         disallow_provider: Tillad ikke udgiver
         shared_by_over_week:
@@ -793,47 +798,47 @@ da:
           zero: Ikke delt af nogen i løbet af den seneste uge
         title: Populære links
         usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går
-      pending_review: Afventende vurdering
+      pending_review: Afventer revision
       preview_card_providers:
         allowed: Links fra denne udgiver kan trende
-        description_html: Disse er domæner, hvorfra links ofte deles på din server. Links vil ikke trende offentligt, medmindre domænet for linket er godkendt. Din godkendelse/afvisning indbefatter underdomæner.
+        description_html: Disse er domæner, hvorfra links ofte deles på serveren. Links vil ikke trende offentligt, medmindre man har godkendt domænet for linket. Godkendelse/afvisning indbefatter underdomæner.
         rejected: Links fra denne udgiver vil ikke trende
         title: Udgivere
       rejected: Afvist
       statuses:
         allow: Tillad indlæg
         allow_account: Tillad forfatter
-        description_html: Disse er indlæg, kendt af din server nu, som pt. deles og favoriseres meget. Det kan hjælpe dine nye og tilbagevendende brugere til at finde flere personer at følge. Ingen indlæg vises offentligt, før du godkender forfatteren, og denne tillader sin konto at blive foreslået til andre. Du kan også tillade/afvise individuelle indlæg.
-        disallow: Forbyd indlæg
-        disallow_account: Forbyd forfatter
+        description_html: Disse er indlæg, serveren kender til, som pt. deles og favoritmarkeres meget. Det kan hjælpe nye og tilbagevendende brugere til at finde flere personer at følge. Ingen indlæg vises offentligt, før man godkender forfatteren, samt denne tillader sin konto at blive foreslået andre. Man kan også tillade/afvise individuelle indlæg.
+        disallow: Tillad ikke indlæg
+        disallow_account: Tillad ikke forfatter
         not_discoverable: Forfatteren har ikke valgt at kunne findes
         shared_by:
-          one: Delt eller favoriseret én gang
-          other: Delt eller favoriseret %{friendly_count} gange
+          one: Delt eller favoritmarkeret én gang
+          other: Delt eller favoritmarkeret %{friendly_count} gange
         title: Populære opslag
       tags:
         current_score: Aktuel score %{score}
         dashboard:
-          tag_accounts_measure: unikke brugere
+          tag_accounts_measure: unikke anvendelser
           tag_languages_dimension: Topsprog
           tag_servers_dimension: Topservere
           tag_servers_measure: forskellige servere
-          tag_uses_measure: brugere i alt
-        description_html: Disse er hashtags, som pt. vises i en masse indlæg, som din server ser. Det kan hjælpe dine brugere til at finde ud af, hvad folk taler mest om pt. Ingen hashtags vises offentligt, før du godkender dem.
+          tag_uses_measure: anvendelser i alt
+        description_html: Disse er hashtags, som pt. vises i en masse indlæg, som serveren ser. Det kan hjælpe brugerne til at finde ud af, hvad folk taler mest om pt. Ingen hashtags vises offentligt, før man godkender dem.
         listable: Kan foreslås
         not_listable: Foreslås ikke
         not_trendable: Vises ikke under tendenser
-        not_usable: Kan ikke bruges
-        peaked_on_and_decaying: Toppede d. %{date}, nu nedadgående
+        not_usable: Kan ikke anvendes
+        peaked_on_and_decaying: Toppede pr. %{date}, nu for nedadgående
         title: Populære hashtags
         trendable: Kan vises under tendenser
         trending_rank: 'Populær #%{rank}'
-        usable: Kan bruges
-        usage_comparison: Brugt %{today} gange i dag, sammenlignet med %{yesterday} i går
+        usable: Kan anvendes
+        usage_comparison: Anvendt %{today} gange i dag, sammenlignet med %{yesterday} i går
         used_by_over_week:
-          one: Brugt af én person i løbet af den seneste uge
-          other: Brugt af %{count} personer i løbet af den seneste uge
-          zero: Ikke brugt af nogen i løbet af den seneste uge
+          one: Anvendt af én person i løbet af den seneste uge
+          other: Anvendt af %{count} personer i løbet af den seneste uge
+          zero: Ikke anvendt af nogen i løbet af den seneste uge
       title: Trends
     warning_presets:
       add_new: Tilføj ny
@@ -1212,25 +1217,25 @@ da:
   move_handler:
     carry_blocks_over_text: Denne bruger er flyttet fra %{acct}, som du har haft blokeret.
     carry_mutes_over_text: Denne bruger er flyttet fra %{acct}, som du har haft tavsgjort.
-    copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, her er dine tidligere noter om dem:'
+    copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, hvor dine tidligere noter om dem var:'
   notification_mailer:
     admin:
       sign_up:
         subject: "%{name} tilmeldte sig"
     digest:
       action: Se alle notifikationer
-      body: Her er et kort resumé af de beskeder, du er gået glip af siden dit seneste besøg d. %{since}
+      body: Her er en kort oversigt over de beskeder, som er misset siden dit seneste besøg %{since}
       mention: "%{name} nævnte dig i:"
       new_followers_summary:
-        one: Du har også fået en ny følger, mens du var væk! Sådan!
-        other: Du har også fået %{count} nye følgere, mens du var væk! Sådan!
+        one: Under dit fravær har du har også fået en ny følger! Sådan!
+        other: Under dit fravær har du har også fået %{count} nye følgere! Sådan!
       subject:
-        one: "1 ny notifikation siden dit senest besøg \U0001F418"
-        other: "%{count} nye notifikationer siden dit senest besøg \U0001F418"
-      title: Mens du var væk...
+        one: "1 ny notifikation siden senest besøg \U0001F418"
+        other: "%{count} nye notifikationer siden senest besøg \U0001F418"
+      title: I dit fravær...
     favourite:
-      body: 'Dit indlæg blev favoriseret af %{name}:'
-      subject: "%{name} favoriserede dit indlæg"
+      body: "%{name} favoritmarkerede dit indlæg:"
+      subject: "%{name} favoritmarkerede dit indlæg"
       title: Ny favorit
     follow:
       body: "%{name} følger dig nu!"
@@ -1258,7 +1263,7 @@ da:
       subject: "%{name} redigerede et indlæg"
   notifications:
     email_events: Begivenheder for e-mailnotifikationer
-    email_events_hint: 'Vælg begivenheder, som notifikationer skal modtages for:'
+    email_events_hint: 'Vælg begivenheder, for hvilke notifikationer skal modtages:'
     other_settings: Andre notifikationsindstillinger
   number:
     human:
@@ -1271,12 +1276,12 @@ da:
           thousand: T
           trillion: tri.
   otp_authentication:
-    code_hint: Angiv koden genereret af din godkendelses-app for at bekræfte
-    description_html: Aktiverer du <strong>tofaktorgodkendelse</strong> vha. af en godkendelses-app, vil du skulle benytte din mobil, der genererer det token, der skal angives ved indlogning.
+    code_hint: Angiv koden genereret af godkendelses-appen for at bekræfte
+    description_html: Aktiveres <strong>tofaktorgodkendelse</strong> vha. af en godkendelses-app, vil man skulle benytte sin mobil, der genererer det token, der skal angives ved indlogning.
     enable: Aktivér
-    instructions_html: "<strong>Skan denne QR-kode i Google Autehnticator eller en lign. TOTP-app på din mobil</strong>. Fra nu af, vil appen generere tokens, som vil skulle angives ifm. indlogning."
-    manual_instructions: 'Kan QR-koden ikke skannes, så du er nødt til manuelt at angive den, er her en simplel tekst-hemmelighed:'
-    setup: Sæt op
+    instructions_html: "<strong>Skan denne QR-kode i Google Autehnticator eller en lign. TOTP-app på mobilen</strong>. Fremadrettet vil appen generere de tokens, som vil skulle angives ifm. indlogning."
+    manual_instructions: 'Kan QR-koden ikke skannes, så man er nødt til manuelt at angive den, er her en simplel tekst-hemmelighed:'
+    setup: Opsæt
     wrong_code: Den angivne kode er ugyldig! Er server- og enhedsklokkeslæt korrekte?
   pagination:
     newer: Nyere
@@ -1287,17 +1292,17 @@ da:
   polls:
     errors:
       already_voted: Du har allerede stemt i denne afstemning
-      duplicate_options: indeholder dubletelementer
-      duration_too_long: er for langt ude i fremtiden
-      duration_too_short: er for tidligt
-      expired: Denne afstemning er allerede afsluttet
-      invalid_choice: Den valgte afstemningsmulighed findes ikke
+      duplicate_options: indeholder dubletvalg
+      duration_too_long: er for lang en varighed
+      duration_too_short: er for kort en varighed
+      expired: Afstemningen er allerede afsluttet
+      invalid_choice: Den valgte stemmemulighed findes ikke
       over_character_limit: må maks. udgøre %{max} tegn hver
-      too_few_options: skal have flere end ét element
-      too_many_options: må maks. indeholde %{max} elementer
+      too_few_options: skal have flere end ét valg
+      too_many_options: for mange svar (maks. %{max})
   preferences:
     other: Andet
-    posting_defaults: Indlægsstandarder
+    posting_defaults: Standarder for indlæg
     public_timelines: Offentlige tidslinjer
   reactions:
     errors:
@@ -1321,28 +1326,28 @@ da:
     remove_selected_follows: Følg ikke længere valgte brugere
     status: Kontostatus
   remote_follow:
-    acct: Angiv dit brugernavn@domæne du vil agere fra
-    missing_resource: Nødvendige omdirigerings-URL til din konto ikke fundet
-    no_account_html: Har ingen konto? Du kan <a href='%{sign_up_path}' target='_blank'>oprette en hér</a>
+    acct: Angiv det brugernavn@domæne, hvorfra du vil ageres
+    missing_resource: Nødvendige omdirigerings-URL til kontoen ikke fundet
+    no_account_html: Har ingen konto? Der kan <a href='%{sign_up_path}' target='_blank'>oprettes én hér</a>
     proceed: Fortsæt for at følge
     prompt: 'Du er ved at følge:'
-    reason_html: "<strong>Hvorfor er dette skridt nødvendigt?</strong> <code>%{instance}</code> er måske ikke den server, hvor du er registreret, så du skal først omdirigeres til din hjemmeserver."
+    reason_html: "<strong>Hvorfor er dette trin nødvendigt?</strong> <code>%{instance}</code> er måske ikke den server, hvorpå man er registreret, så man skal først omdirigeres til sin hjemmeserver."
   remote_interaction:
     favourite:
-      proceed: Fortsæt for at føje til favorit
-      prompt: 'Gør dette indlæg til favorit:'
+      proceed: Fortsæt for at favoritmarkere
+      prompt: 'Favoritmarkere dette indlæg:'
     reblog:
       proceed: Fortsæt for at booste
-      prompt: 'Du ønsker at booste dette indlæg:'
+      prompt: 'Booste dette indlæg:'
     reply:
       proceed: Fortsæt for at besvare
-      prompt: 'Du ønsker at besvare dette indlæg:'
+      prompt: 'Besvare dette indlæg:'
   reports:
     errors:
       invalid_rules: refererer ikke til gyldige regler
   scheduled_statuses:
-    over_daily_limit: Du har nået dagsgrænsen på %{limit} planlagte indlæg
-    over_total_limit: Du har nået grænsen på %{limit} planlagte indlæg
+    over_daily_limit: Den daglige grænse på %{limit} planlagte indlæg er nået
+    over_total_limit: Grænsen på %{limit} planlagte indlæg er nået
     too_soon: Den planlagte dato skal være i fremtiden
   sessions:
     activity: Seneste aktivitet
@@ -1360,20 +1365,20 @@ da:
       nokia: Nokia S40 Ovi Browser
       opera: Opera
       otter: Otter
-      phantom_js: FantomJS
+      phantom_js: PhantomJS
       qq: QQ Browser
       safari: Safari
       uc_browser: UCbrowser
       weibo: Weibo
     current_session: Aktuelle session
     description: "%{browser} på %{platform}"
-    explanation: Disse er de webbrowsere, som pt. er pålogget din Mastodon-konto.
+    explanation: Disse webbrowsere er pt. logget ind på din Mastodon-konto.
     ip: IP
     platforms:
       adobe_air: Adobe Air
       android: Android
       blackberry: Blackberry
-      chrome_os: ChromeOS
+      chrome_os: Chrome OS
       firefox_os: Firefox OS
       ios: iOS
       linux: Linux
@@ -1385,27 +1390,27 @@ da:
     revoke: Tilbagekald
     revoke_success: Session tilbagekaldt
     title: Sessioner
-    view_authentication_history: Vis godkendelseshistorik for din konto
+    view_authentication_history: Vis godkendelseshistorik for kontoen
   settings:
     account: Konto
     account_settings: Kontoindstillinger
     aliases: Kontoaliaser
     appearance: Udseende
     authorized_apps: Godkendte apps
-    back: Tilbage til Mastodon
+    back: Retur til Mastodon
     delete: Kontosletning
     development: Udvikling
     edit_profile: Redigér profil
     export: Dataeksport
-    featured_tags: Fremhævede hashtags
+    featured_tags: Udvalgte hashtags
     import: Import
-    import_and_export: Importér og eksportér
+    import_and_export: Import og eksport
     migrate: Kontomigrering
     notifications: Notifikationer
     preferences: Præferencer
     profile: Profil
     relationships: Følger og følgere
-    statuses_cleanup: Automatiseret indlægssletning
+    statuses_cleanup: Auto-indlægssletning
     strikes: Moderationsadvarsler
     two_factor_authentication: Tofaktorgodkendelse
     webauthn_authentication: Sikkerhedsnøgler
@@ -1423,18 +1428,18 @@ da:
         other: "%{count} videoer"
     boosted_from_html: Boostet fra %{acct_link}
     content_warning: 'Indholdsadvarsel: %{warning}'
-    default_language: Det samme som UI-sproget
+    default_language: Samme som UI-sproget
     disallowed_hashtags:
       one: 'indeholdte et ikke tilladt hashtag: %{tags}'
       other: 'indeholdte de ikke tilladte hashtags: %{tags}'
     edited_at: Redigeret %{date}
     errors:
-      in_reply_not_found: Indlægget, du forsøger at besvare, ser ikke ud til at findes.
-    open_in_web: Åbn i browser
-    over_character_limit: grænsen på %{max} tegn er nået
+      in_reply_not_found: Indlægget, der forsøges besvaret, ser ikke ud til at eksistere.
+    open_in_web: Åbn i webbrowser
+    over_character_limit: grænsen på %{max} tegn overskredet
     pin_errors:
       direct: Indlæg, som kun kan ses af nævnte brugere, kan ikke fastgøres
-      limit: Du har allerede fastgjort det maksimale antal indlæg
+      limit: Maksimalt antal indlæg allerede fastgjort
       ownership: Andres indlæg kan ikke fastgøres
       reblog: Et boost kan ikke fastgøres
     poll:
@@ -1456,44 +1461,44 @@ da:
       private: Kun følgere
       private_long: Vis kun til følgere
       public: Offentlig
-      public_long: Alle kan se
+      public_long: Kan ses af alle
       unlisted: Ulistet
-      unlisted_long: Alle kan se, men er ikke listet på offentlige tidslinjer
+      unlisted_long: Kan ses af alle, men listes på offentlige tidslinjer
   statuses_cleanup:
     enabled: Slet automatisk gamle indlæg
     enabled_hint: Sletter automatisk dine indlæg, når disse når en bestemt alder, medmindre de matcher en af undtagelserne nedenfor
     exceptions: Undtagelser
-    explanation: Sletning af indlæg er en ressourcekrævende operation, hvorfor dette sker gradvist over tid, når serveren ellers ikke er optaget. Dine indlæg kan derfor blive slettet nogen tid efter, at de har passeret aldersgrænsen.
+    explanation: Sletning af indlæg er en ressourcekrævende operation, hvorfor dette sker gradvist over tid, når serveren ellers ikke er optaget. Indlæg kan derfor blive slettet efter, at de reelt har passeret aldersgrænsen.
     ignore_favs: Ignorér favoritter
     ignore_reblogs: Ignorér boosts
     interaction_exceptions: Undtagelser baseret på interaktioner
-    interaction_exceptions_explanation: Bemærk, at der ikke er nogen garanti for at indlæg slettes, hvis de går under favorit- eller boost-tærsklerne efter at have været gået over dem.
+    interaction_exceptions_explanation: Bemærk, at det ikke garanteres, at indlæg slettes, hvis de når under favorit- eller boost-tærsklerne efter én gang at været nået over dem.
     keep_direct: Behold direkte besked
-    keep_direct_hint: Slet ingen af dine direkte beskeder
+    keep_direct_hint: Sletter ingen af dine direkte beskeder
     keep_media: Behold indlæg med medievedhæftninger
     keep_media_hint: Sletter ingen af dine indlæg med medievedhæftninger
     keep_pinned: Behold fastgjorte indlæg
     keep_pinned_hint: Sletter ingen af dine fastgjorte indlæg
     keep_polls: Behold afstemninger
     keep_polls_hint: Sletter ingen af dine afstemninger
-    keep_self_bookmark: Behold dine bogmærker
+    keep_self_bookmark: Behold bogmærkede indlæg
     keep_self_bookmark_hint: Sletter ikke egne indlæg, såfremt de er bogmærket
-    keep_self_fav: Behold indlæg du har foretrukket
-    keep_self_fav_hint: Sletter ikke egne indlæg, såfremt de er foretrukket
+    keep_self_fav: Behold favoritmarkerede indlæg
+    keep_self_fav_hint: Sletter ikke egne indlæg, såfremt de er favoritmarkeret
     min_age:
       '1209600': 2 uger
       '15778476': 6 måneder
       '2629746': 1 måned
       '31556952': 1 år
       '5259492': 2 måneder
-      '604800': 1 week
+      '604800': 1 uge
       '63113904': 2 år
       '7889238': 3 måneder
     min_age_label: Alderstærskel
-    min_favs: Behold indlæg foretrukket mere end
-    min_favs_hint: Sletter ingen af dine indlæg, som har modtaget flere end dette antal favoriseringer. Lad stå tomt for at slette indlæg uanset favoriseringsantal
-    min_reblogs: Behold indlæg boostet flere end
-    min_reblogs_hint: Sletter ingen af dine indlæg, som er blevet boostet flere end dette antal gange. Lad stå tomt for at slette indlæg uanset deres boosts-antal
+    min_favs: Behold indlæg favoritmarkeret mindst
+    min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at ignorere denne tærskel under sletning
+    min_reblogs: Behold indlæg boostet mindst
+    min_reblogs_hint: Sletter ingen egne indlæg, som er boostet flere end dette antal gange. Lad stå tomt for at ignorere denne tærskel under sletning
   stream_entries:
     pinned: Fastgjort indlæg
     reblogged: boostet
@@ -1501,7 +1506,7 @@ da:
   tags:
     does_not_match_previous_name: matcher ikke det foregående navn
   terms:
-    body_html: "<p><h2>Fortrolighedspolitik</h2> \n<h3 id=\"collect\">Hvilke oplysninger indsamler vi?</h3> \n\n<ul>\n  <li><em>Grundlæggende kontooplysninger</em>: Opretter du dig på denne server, kan du blive bedt om at angive brugernavn, e-mailadresse og adgangskode. Du kan også angive yderligere profiloplysninger, såsom visningsnavn og biografi, og uploade et profil- og overskriftsbillede. Brugernavn, visningsnavn, biografi, profil- og overskriftsbilleder vises altid offentligt.</li> \n  <li> <em>Indlæg, følgning og andre offentlige oplysninger</em>: Listen over personer, du følger, er offentligt tilgængelig, det samme gælder dine følgere. Når du sender en besked, gemmes dato og klokkeslæt såvel som det program, du sendte beskeden fra. Beskeder kan indeholde medievedhæftninger, såsom billeder og videoer. Offentlige og ulistede indlæg er offentligt tilgængelige. Når du fremhæver et indlæg på din profil, er det også offentligt tilgængelig information. Dine indlæg leveres til dine tilhængere, i nogle tilfælde betyder det, at de leveres til forskellige servere, hvor kopier gemmes. Når du sletter indlæg, leveres det også til dine følgere. Genbloggingshandlinger eller favorisering af et andet indlæg sker altid offentligt.</li>\n  <li><em>Direkte og kun følgere-indlæg</em>: Alle indlæg gemmes og behandles på serveren. Kun følgere-indlæg leveres til dine følgere og brugere, som er nævnt i disse, og direkte indlæg leveres kun til brugere nævnt heri. I visse tilfælde betyder dette, at de leveres til forskellige servere, hvor der gemmes kopier. Vi gør en bedste-evne indsats for at begrænse adgangen til disse indlæg til kun godkendte personer, men andre servere kan undlade dette tiltag. Det er derfor vigtigt at gennemgå de servere, dine følgere tilhører. Du kan skifte en valgmulighed for at godkende og afvise nye følgere manuelt i indstillingerne.<em>Husk dog på, at operatørerne af serveren og enhver modtagende server vil kunne se sådanne meddelelser</em>, og at modtagere vil kunne tage skærmfotos, kopiere eller på anden vis deler disse igen.<em> Del ingen sensitive mv. oplysninger over Mastodon.</em> </li>\n  <li> <em>IP'er og andre metadata</em>: Når du logger ind, registrerer vi den IP-adresse, du logger ind fra, samt navnet på din browser-applikation. Du vil have alle indloggede sessioner tilgængelige for gennemgang og tilbagekaldelse via indstillingerne. Den senest anvendte IP-adresse gemmes i op til 12 måneder. Vi kan også beholde serverlogfiler indeholdende IP-adressen for hver forespørgsel til vores server.</li>\n</ul>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"use\">Hvad bruger vi dine oplysninger til?</h3>\n\n<p>Enhver oplysning, vi indsamler fra dig, kan blive brugt på flg. måder: </p>\n\n<ul>\n  <li>Til at levere Mastodons kernfunktionalitet. Du kan kun interagere med andres indhold og indsende dit eget, når du er logget ind. Du kan f.eks. følge andre personer for at se deres kombinerede indlæg på din egen personlige tidslinje.</li>\n  <li>Som hjælp til moderering af fællesskabet, f.eks. sammenligning af din IP-adresse med andre kendte, for at bestemme udelukkelsesomgåelse eller andre overtrædelser.</li>\n  <li>Den af dig angivne e-mailadresse kan bruges til at sende dig oplysninger, notifikationer om andre personer, som interagerer med dit indhold eller sender dig beskeder samt til at svare på henvendelser og/eller andre forespørgsler eller spørgsmål. </li>\n</ul>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"protect\">Hvordan beskytter vi dine oplysninger?</h3>\n\n<p>Vi implementerer en række sikkerhedsforanstaltninger for at sikre dine personlige oplysninger, når du angiver, indsender eller tilgår dine personlige oplysninger. Bl.a. sikres din browsersession samt trafikken mellem dine applikationer og API'en med SSL, og din adgangskode er hashed vha. en stærk envejsalgoritme. Du kan aktivere tofaktorgodkendelse for yderligere at adgangssikre din konto.</p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"data-retention\">Hvad er vores datalagringspolitik?</h3>\n\n<p>Vi vil efter bedste oprigtige evne gøre en indsats for at: </p>\n\n<ul>\n  <li>Beholde/lagre serverlogfiler indeholdende IP-adressen på alle forespørgsler til denne server, for så vidt at sådanne logfiler ikke opbevares/lagres længere end 90 dage.</li>\n  <li>Beholde/lagre IP-adresser forbundet med registrerede brugere i maksimalt 12 måneder.</li>\n</ul>\n\n<p>Du kan anmode om og downloade et arkiv af dit indhold, herunder dine indlæg, medievedhæftninger samt profil- og headerbilleder </p>\n\n<p>Du kan til enhver tid slette din konto permanent.</p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"cookies\">Bruger vi cookies?</h3>\n\n<p>Ja. Cookies er små filer, som et websted eller dets tjenesteudbyder overfører til din computers lagerplads via din webbrowser (hvis du tillader det). Disse cookies gør det muligt for webstedet at genkende din browser og, hvis du har en registreret konto, associerer den med din registrerede konto.</p>\n\n<p>Vi bruger cookies til at forstå og gemme dine præferencer for fremtidige besøg.</p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"disclose\">Afslører vi nogle oplysninger til eksterne parter?</h3>\n\n<p>Vi hverken sælger, handler/bytter eller på anden måde overfører dine personlige identificerbare oplysninger til eksterne parter. Herfra undtaget er dog betroede tredjeparter, som hjælper os med at drive vores websted, drive vores forretning eller servicere dig, så længe parterne accepterer at holde disse oplysninger fortrolige. Vi kan også vælge at frigive dine oplysninger, såfremt vi mener, at frigivelsen er hensigtsmæssig ift. at overholde loven, håndhæve vores webstedspolitikker eller beskytte vores/andres rettigheder, ejendom eller sikkerhed.</p>\n\n<p>Dit offentlige indhold kan blive downloades af andre servere i netværket. Dine offentlige og kun-følgere indlæg leveres til de servere, hvor dine tilhængere er hjemhørende, og direkte beskeder leveres til modtagerens servere, for så vidt som disse følgere/modtagere ikke er hjemhørende på denne server.</p>\n\n<p>Når du godkender en applikation til at bruge din konto, afhængt af tilladelsesomfanget, godkender du, at det kan tilgå dine offentlige profiloplysninger, din liste over dem, du følger, dine følgere, dine lister, alle dine indlæg og dine favoritter. Applikationer kan aldrig tilgå din e-mailadresse eller adgangskode.</p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"children\">Børns brug af webstedet</h3>\n\n<p>Hvis denne server er i EU eller EØS: Vores websted, produkter og tjenester er alle er alle beregnet på personer, som er fyldt 16 år. Er du ike fyldt 16 år, så benyt ikke dette websted jf. kravene i GDPR, (<a href=\"https://en.wikipedia.org/wiki/General_Data_Protection_Regulation\">Generel Databeskyttelsesforordning</a>).</p>\n\n<p>Hvis denne server er i USA: Vores websted, produkter og tjenester er alle rettet mod personer, som er fyldt 13 år. Er du ikke fyldt 13 år, så benyt ikke dette websted jf. kravene i COPPA, (<a href=\"https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act\">Børns online fortrolighedsbeskyttelsesslov</a>).</p>\n\n<p>Lovkrav kan afvige, hvis denne server befinder sig i et andet retsområde.</p>\n\n<hr class = \"spacer\" />\n\n<h3 id=\"changes\">Ændringer i vores fortrolighedspolitik</h3>\n\n<p>Beslutter vi os for at ændre vores fortrolighedspolitik, vil disse ændringer fremgå på denne side.</p>\n\n<p>Dette dokument er CC-BY-SA, og det blev senest opdateret 7. marts 2018.</p>\n\n<p> Oprindelig tilpasset fra <a href=\"https://github.com/discourse/discourse\"> Discourse' Fortrolighedspolitik</a>.</p>\n"
+    body_html: "<p><h2>Fortrolighedspolitik</h2> \n<h3 id=\"collect\">Hvilke oplysninger indsamler vi?</h3> \n\n<ul>\n  <li><em>Grundlæggende kontooplysninger</em>: Opretter du dig på denne server, kan du blive bedt om at angive brugernavn, e-mailadresse og adgangskode. Du kan også angive yderligere profiloplysninger, såsom visningsnavn og biografi, samt uploade et profil- og overskriftsbillede. Brugernavn, visningsnavn, biografi, profil- og overskriftsbilleder vises altid offentligt.</li> \n  <li> <em>Indlæg, følgning og andre offentlige oplysninger</em>: Listen over personer, du følger, er offentligt tilgængelig, det samme gælder dine følgere. Når du sender en besked, gemmes dato og klokkeslæt såvel som det program, du sendte beskeden fra. Beskeder kan indeholde medievedhæftninger, såsom billeder og videoer. Offentlige og ulistede indlæg er offentligt tilgængelige. Når du fremhæver et indlæg på din profil, er det også offentligt tilgængelig information. Dine indlæg leveres til dine følgere, i visse tilfælde betyder det, at de leveres til forskellige servere, hvor kopier gemmes. Når du sletter indlæg, leveres det også til dine følgere. Genbloggingshandlinger eller favoritmarkeringer af andre indlæg sker altid i offentligt regi.</li>\n  <li><em>Direkte og kun-følgere indlæg</em>: Alle indlæg gemmes og behandles på serveren. Kun-følgere indlæg leveres til dine følgere og brugere, nævnt heri, og direkte indlæg leveres kun til brugere nævnt heri. I visse tilfælde betyder dette, at de leveres til forskellige servere, hvor kopier gemmes. Vi gør en bedste-evne indsats for at begrænse adgangen til disse indlæg til kun godkendte personer, men andre servere kan undlade dette tiltag. Det er derfor vigtigt at gennemgå de servere, dine følgere tilhører. Man kan via indstillingerne manuelt slå muligheden Godkend/Afvis nye følgere til/fra.<em>Husk dog på, at operatørerne af serveren og enhver modtagende server vil kunne se sådanne meddelelser</em>, og at modtagere vil kunne tage skærmfotos, kopiere eller på anden vis deler disse igen.<em> Del ingen sensitive mv. oplysninger over Mastodon.</em> </li>\n  <li> <em>IP'er og andre metadata</em>: Når der logges ind, registreres den IP-adresse, der logges ind fra, samt navnet på browser-applikationen. Du vil have alle indloggede sessioner tilgængelige mhp. gennemgang og tilbagekaldelse via indstillingerne. Den senest anvendte IP-adresse gemmes i op til 12 måneder. Vi kan også beholde serverlogfiler indeholdende IP-adressen for hver forespørgsel til vores server.</li>\n</ul>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"use\">Hvad bruger vi dine oplysninger til?</h3>\n\n<p>Enhver oplysning indsamlet fra/om dig, kan blive brugt på flg. måder: </p>\n\n<ul>\n  <li>Til at levere Mastodon-kernfunktionalitet. Man kan kun interagere med andres indhold og indsende eget ditto, når man indlogget ind. Man kan f.eks. følge andre personer for at se deres kombinerede indlæg på sin egen personlige tidslinje.</li>\n  <li>Som hjælp til moderering af fællesskabet, f.eks. sammenligning af din IP-adresse med andre kendte mhp. at fastslå udelukkelsesomgåelse eller andre overtrædelser.</li>\n  <li>Den af dig angivne e-mailadresse kan bruges til at sende dig oplysninger, notifikationer om andre personer, som interagerer med dit indhold eller sender dig beskeder samt til at svare på henvendelser og/eller andre forespørgsler eller spørgsmål. </li>\n</ul>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"protect\">Hvordan beskytter vi dine oplysninger?</h3>\n\n<p>Vi implementerer en vifte af sikkerhedsforanstaltninger for at sikre dine personlige oplysninger, når du angiver, indsender eller tilgår personlige oplysninger. Bl.a. sikres din browsersession samt trafikken mellem dine applikationer og API'en med SSL, og din adgangskode hashes vha. en stærk envejsalgoritme. Tofaktorgodkendelse kan endvidere aktiveres til yderligere adgangssikring af kontoen.</p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"data-retention\">Hvad er vores datalagringspolitik?</h3>\n\n<p>Vi vil efter bedste evne bestræbe os på at: </p>\n\n<ul>\n  <li>Ikke at beholde/lagre serverlogfiler indeholdende IP-adressen på alle forespørgsler til denne server, for så vidt at sådanne logfiler gemmes, længere end 90 dage.</li>\n  <li>Ikke at beholde/lagre IP-adresser tilknyttet registrerede brugere længere end 12 måneder.</li>\n</ul>\n\n<p>Du kan anmode om, og downloade, et arkiv af dit indhold, herunder indlæg, medievedhæftninger samt profil- og overskriftsbilleder </p>\n\n<p>Du kan til enhver tid slette din konto permanent.</p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"cookies\">Bruger vi cookies?</h3>\n\n<p>Ja. Cookies er små filer, som et websted eller dets tjenesteudbyder gemmer til din computers harddisk via din webbrowser (hvis du tillader det). Disse cookies gør det muligt for webstedet at genkende din browser og, hvis du har en registreret konto, associerer den med din registrerede konto.</p>\n\n<p>Vi bruger cookies til at forstå og gemme dine præferencer for fremtidige besøg.</p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"disclose\">Videregiver vi oplysninger til eksterne parter?</h3>\n\n<p>Vi hverken sælger, handler/bytter eller overfører på anden vis dine personlige identificerbare oplysninger til eksterne parter. Herfra undtaget er dog betroede tredjeparter, som hjælper os med at drive vores websted, drive vores forretning eller servicere dig, så længe parterne accepterer at holde disse oplysninger fortrolige. Vi kan også vælge at frigive dine oplysninger, såfremt vi mener, at frigivelsen er hensigtsmæssig ift. at overholde loven, håndhæve vores webstedspolitikker eller beskytte vores/andres rettigheder, ejendom eller sikkerhed.</p>\n\n<p>Dit offentlige indhold kan blive downloadet af andre servere i netværket. Dine offentlige og kun-følgere indlæg leveres til de servere, hvor dine tilhængere er hjemhørende, og direkte beskeder leveres til modtagerens servere, for så vidt som disse følgere/modtagere ikke er hjemhørende på denne server.</p>\n\n<p>Når du godkender en applikation til at bruge din konto, godkender du, afhængt af tilladelsesomfanget, at denne kan tilgå dine offentlige profiloplysninger, listen over dem, du følger, følgere, lister, alle indlæg og favoritter. Applikationer kan aldrig tilgå din e-mailadresse eller adgangskode.</p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"children\">Børns brug af webstedet</h3>\n\n<p>Hvis denne server er i EU eller EØS: Vores websted, produkter og tjenester er alle er alle beregnet på personer, som er fyldt 16 år. Er man ikke fyldt 16 år, så benyt ikke, jf. kravene i GDPR, (<a href=\"https://en.wikipedia.org/wiki/General_Data_Protection_Regulation\">Generel Databeskyttelsesforordning</a>), dette websted.</p>\n\n<p>Hvis denne server er i USA: Vores websted, produkter og tjenester er alle rettet mod personer, som er fyldt 13 år. Er man ikke fyldt 13 år, så benyt ikke, jf. kravene i COPPA, (<a href=\"https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act\">Børns online fortrolighedsbeskyttelsesslov</a>), dette websted.</p>\n\n<p>Lovkrav kan afvige, hvis denne server befinder sig i et andet retsområde.</p>\n\n<hr class = \"spacer\" />\n\n<h3 id=\"changes\">Ændringer i vores Fortrolighedspolitik</h3>\n\n<p>Beslutter vi os for at ændre vores Fortrolighedspolitik, vil disse ændringer fremgå på denne side.</p>\n\n<p>Dette dokument er CC-BY-SA, og det blev senest opdateret 7. marts 2018.</p>\n\n<p> Oprindelig tilpasset fra <a href=\"https://github.com/discourse/discourse\"> Discourse privacy policy</a>.</p>\n"
     title: Tjenestevilkår og Fortrolighedspolitik for %{instance}
   themes:
     contrast: Mastodon (høj kontrast)
@@ -1509,7 +1514,7 @@ da:
     mastodon-light: Mastodon (lyst)
   time:
     formats:
-      default: "%b %d, %Y, %H:%M"
+      default: "%a %d %b %Y, %H:%M"
       month: "%b %Y"
       time: "%H:%M"
   two_factor_authentication:
@@ -1519,70 +1524,79 @@ da:
     edit: Redigér
     enabled: Tofaktorgodkendelse aktiveret
     enabled_success: Tofaktorgodkendelse aktiveret
-    generate_recovery_codes: Generér gendannelseskoder
-    lost_recovery_codes: Gendannelseskoder lader dig opnå adgang til din konto, hvis du mister din mobil. Har du mistet dine gendannelseskoder, kan du regenerere dem her. Dine gamle gendannelseskoder ugyldiggøres.
+    generate_recovery_codes: Generere gendannelseskoder
+    lost_recovery_codes: Gendannelseskoder muliggør adgang til din konto, hvis du mister din mobil. Ved mistet gendannelseskoder, kan disse regenerere her. Dine gamle gendannelseskoder ugyldiggøres.
     methods: Tofaktormetoder
     otp: Godkendelses-app
-    recovery_codes: Sikkerhedskopiér koder
+    recovery_codes: Sikkerhedskopieret gendannelseskoder
     recovery_codes_regenerated: Gendannelseskoder er regenereret
-    recovery_instructions_html: Mister du nogensinde adgang til din mobil, kan du bruge en af gendannelseskoderne nedenfor til at opnå adgang til din konto. <strong>Opbevar gendannelseskoderne et sikkert sted</strong>. Du kan f.eks. udskrive dem, og gemme dem sammen med andre vigtige dokumenter.
+    recovery_instructions_html: Mister du nogensinde adgang til din mobil, kan en af gendannelseskoderne nedenfor bruges til at opnå adgang til din konto. <strong>Opbevar disse et sikkert sted</strong>. De kan f.eks. udskrives og gemmes sammen med andre vigtige dokumenter.
     webauthn: Sikkerhedsnøgler
   user_mailer:
     appeal_approved:
       action: Gå til din konto
+      explanation: Appellen af kontoadvarslen fra %{strike_date}, indsendt af dig pr. %{appeal_date}, er blevet godkendt. Din kontostatus er igen god.
       subject: Din appel pr. %{date} er godkendt
       title: Appel godkendt
     appeal_rejected:
+      explanation: Appellen af kontoadvarslen fra %{strike_date}, indsendt af dig pr. %{appeal_date}, er blevet afvist.
       subject: Din appel pr. %{date} er afvist
       title: Appel afvist
     backup_ready:
       explanation: Den anmodede fulde sikkerhedskopi af din Mastodon-konto er nu klar til download!
       subject: Dit arkiv er klar til download
-      title: Arkiv-takeout
+      title: Arkiv download
     sign_in_token:
-      details: 'Her er detaljer om forsøget:'
-      explanation: 'Der er registreret et forsøg på at logge ind på din konto fra en ukendt IP-adresse. Er dette er dig, så angiv nedenstående sikkerhedskode på siden med log ind-verifikationssiden:'
-      further_actions: 'Var dette ikke dig, så ændr din adgangskode og aktivér tofaktorgodkendelse på din konto. Du kan gøre dette hér:'
+      details: 'Her er nogle detaljer om forsøget:'
+      explanation: 'Der er registreret et forsøg på at logge ind på din konto fra en ukendt IP-adresse. Er dette er dig, så angiv nedenstående sikkerhedskode på log ind-bekræftelsessiden:'
+      further_actions: 'Var dette ikke dig, så ændr adgangskoden og aktivér tofaktorgodkendelse på din konto, hvilket kan gøres hér:'
       subject: Bekræft indlogningsforsøg
       title: Indlogningsforsøg
     warning:
       appeal: Indgiv appel
-      appeal_description: Mener du, at dette er en fejl, kan der indgives en appel til personalet på %{instance}.
+      appeal_description: Mener du, at dette er en fejl, kan der indgives en appel til %{instance}-personalet.
       categories:
         spam: Spam
         violation: Indhold overtræder flg. fællesskabsretningslinjer
       explanation:
-        disable: Din konto kan ikke længere bruges, men profilen og andre data er intakte. Du kan anmode om en sikkerhedskopi af dine data, ændre kontoindstillinger eller slette kontoen.
+        delete_statuses: Nogle af dine indlæg har vist sig at være i strid med en eller flere fællesskabsretningslinjer og er efterfølgende fjernet af %{instance}-moderatorerne.
+        disable: Du kan ikke længere anvende din konto, men profilen og øvrige data er intakte. Du kan anmode om en sikkerhedskopi af dine data, ændre kontoindstillinger eller slette kontoen.
+        mark_statuses_as_sensitive: Nogle af dine indlæg er blevet markeret som sensitive af %{instance}-moderatorerne. Det betyder, at folk er nødt til at trykke på medierne i indlæggene, før en forhåndsvisning vises. Du kan selv markere medier som sensitive i fremtidige indlæg.
         sensitive: Fra nu af vil alle dine uploadede mediefiler blive markeret som sensitive og skjult bag en klik-igennem advarsel.
-        silence: Din konto kan stadig bruges, men dine indlæg vil kunne ses af personer, som allerede følger dig på denne server, og du kan blive udelukket fra forskellige opdagelsesfunktioner. Personer vil stadig kunne følge dig manuelt.
-        suspend: Din konto kan ikke længere bruges, og hverken profil eller øvrige data kan tilgås. Du kan stadig logge ind for at anmode om en sikkerhedskopi af dine data, indtil disse om ca. 30 er helt slettet. Visse data bevares dog mhp. at forhindre dig i at omgå udelukkelsen.
+        silence: Din konto kan stadig anvendes, men dine indlæg vil kunne ses af personer, som allerede følger dig på denne server, og du udelukkes muligvis fra forskellige opdagelsesfunktioner. Personer vil stadig kunne følge dig manuelt.
+        suspend: Din konto kan ikke længere anvendes, og hverken profilen eller øvrige data kan tilgås. Du kan stadig logge ind for at anmode om en sikkerhedskopi af dine data, indtil disse om ca. 30 dage vil være slettet. Visse data bevares dog mhp. at forhindre dig i at omgå udelukkelsen.
       reason: 'Årsag:'
+      statuses: 'Anmeldte indlæg:'
       subject:
         delete_statuses: Dine indlæg på %{acct} er blevet fjernet
         disable: Din konto %{acct} er blevet frosset
-        none: Advarsel for %{acct}
+        mark_statuses_as_sensitive: Dine indlæg på %{acct} er blevet markeret som sensitive
+        none: Advarsel til %{acct}
+        sensitive: Dine indlæg på %{acct} markeres fra nu af som sensitive
         silence: Din konto %{acct} er blevet begrænset
         suspend: Din konto %{acct} er blevet suspenderet
       title:
         delete_statuses: Indlæg fjernet
         disable: Konto frosset
+        mark_statuses_as_sensitive: Indlæg markeret som sensitive
         none: Advarsel
+        sensitive: Konto markeret som sensitiv
         silence: Konto begrænset
         suspend: Konto suspenderet
     welcome:
       edit_profile_action: Opsæt profil
-      edit_profile_step: Du kan tilpasse din profil ved at uploade et profilbillede, overskrift, ændre dit visningsnavn mm. Ønsker du at vurdere nye følgere, før de må følge dig, kan du låse din konto.
-      explanation: Her er nogle råd for at få dig igang
+      edit_profile_step: Du kan tilpasse din profil ved at uploade profilbillede, overskrift, ændre visningsnavn mm. Ønsker du at vurdere nye følgere, før de må følge dig, kan du låse din konto.
+      explanation: Her er nogle råd for at få dig i gang
       final_action: Begynd at poste
-      final_step: 'Begynd at poste! Selv uden følgere vil dine offentlige beskeder kunne ses af andre f.eks. på den lokale tidslinje og i hashtags. Måske kunne du tænke dig at introducere dig selv på #introductions-hashtagget.'
+      final_step: 'Begynd at poste! Selv uden følgere vil dine offentlige indlæg kunne ses af andre f.eks. på den lokale tidslinje og i hashtags. Du kan introducere dig selv via hastagget #introductions.'
       full_handle: Dit fulde brugernavn
-      full_handle_hint: Dette er, hvad du vil fortælle dine venner, så de kan sende dig beskeder eller følge dig fra andre server.
+      full_handle_hint: Dette er, hvad du oplyser til dine venner, så de kan sende dig beskeder eller følge dig fra andre server.
       review_preferences_action: Ændre præferencer
-      review_preferences_step: Vær sikker på at opsætte dine præferencer, såsom hvilke e-mails du kunne tænke dig at modtage, eller hvilket fortrolighedsniveau, der skal være standard for dine opslag. Har du ikke let til køresyge, kan du vælge at aktivere auto-afspilning af GIF'er.
+      review_preferences_step: Husk at opsætte dine præferencer, såsom hvilke e-mails, du ønsker at modtage, eller hvilket fortrolighedsniveau, der skal være standard for dine opslag. Har du ikke let til køresyge, kan du vælge at aktivere auto-afspilning af GIF'er.
       subject: Velkommen til Mastodon
-      tip_federated_timeline: Den delte tidslinje giver det store overblik over Mastodon-netværket, men det inkluderer kun folk, dine naboer abonnerer på, så det er ikke komplet.
-      tip_following: Du følger som standard din servers admin(s). For at finde flere interessante folk, så tjek den lokale og fælles tidslinje.
-      tip_local_timeline: Den lokale tidslinje er det store overblik over folk på %{instance}. Disse er dine umiddelbare naboer!
+      tip_federated_timeline: Den fælles tidslinje giver det store overblik over Mastodon-netværket, men den inkluderer kun folk, dine naboer abonnerer på, så den er ikke komplet.
+      tip_following: Du følger som standard din servers admin(s). For at finde flere interessante folk, så tjek de lokale og fælles tidslinjer.
+      tip_local_timeline: Den lokale tidslinje er det store overblik over folk på %{instance}, dvs. dine umiddelbare naboer!
       tip_mobile_webapp: Tilbyder din mobilbrowser at føje Mastodon til din hjemmeskærm, kan du modtage push-notifikationer. Dette fungerer på mange måder ligesom en almindelig app!
       tips: Tips
       title: Velkommen ombord, %{name}!
diff --git a/config/locales/doorkeeper.da.yml b/config/locales/doorkeeper.da.yml
index 30e94f4da..19f4307f6 100644
--- a/config/locales/doorkeeper.da.yml
+++ b/config/locales/doorkeeper.da.yml
@@ -174,7 +174,7 @@ da:
       write:blocks: blokere konti og domæner
       write:bookmarks: bogmærke statusser
       write:conversations: tavsgør og slet konversationer
-      write:favourites: favorisere statusser
+      write:favourites: favoritmarkerede indlæg
       write:filters: oprette filtre
       write:follows: følge personer
       write:lists: oprette lister
diff --git a/config/locales/doorkeeper.ja.yml b/config/locales/doorkeeper.ja.yml
index fb807d7e5..0a80a89f3 100644
--- a/config/locales/doorkeeper.ja.yml
+++ b/config/locales/doorkeeper.ja.yml
@@ -115,12 +115,15 @@ ja:
         write: 書き込み専用アクセス
       title:
         accounts: アカウント
+        all: すべて
         blocks: ブロック
         bookmarks: ブックマーク
         crypto: エンドツーエンド暗号化
         favourites: お気に入り
         filters: フィルター
-        lists: リスオ
+        follow: フォロー・フォロワー
+        lists: リスト
+        media: メディアの添付
         mutes: ミュート
         notifications: 通知
         push: プッシュ通知
diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml
index 1d56ee6aa..a772f081a 100644
--- a/config/locales/doorkeeper.ru.yml
+++ b/config/locales/doorkeeper.ru.yml
@@ -72,6 +72,7 @@ ru:
         revoke: Вы уверены?
       index:
         authorized_at: Доступ получен %{date}
+        description_html: Это приложения, которые могут получить доступ к вашей учетной записи с помощью API. Если здесь есть приложения, которые вы не узнаете, или приложения, работающие неправильно, вы можете отозвать их доступ.
         last_used_at: Последнее использование %{date}
         never_used: Не использовалось
         scopes: Разрешения
diff --git a/config/locales/doorkeeper.sl.yml b/config/locales/doorkeeper.sl.yml
index 8be46bad3..d75752c8d 100644
--- a/config/locales/doorkeeper.sl.yml
+++ b/config/locales/doorkeeper.sl.yml
@@ -71,6 +71,7 @@ sl:
       confirmations:
         revoke: Ali ste prepričani?
       index:
+        authorized_at: Overjen(a) %{date}
         description_html: To so programi, ki lahko dostopajo do vašega računa prek vmesnika API. Če so na seznamu programi, ki jih ne prepoznate ali pa se čudno vedejo, lahko prekličete njihovo pravico do dostopa.
         last_used_at: Zadnjič uporabljeno %{date}
         never_used: Nikoli uporabljeno
@@ -122,10 +123,13 @@ sl:
         admin/all: Vse skrbniške funkcije
         admin/reports: Upravljanje poročil
         all: Vse
+        blocks: Blokira
         bookmarks: Zaznamki
         conversations: Pogovori
+        crypto: Šifriranje od konca do konca
         favourites: Priljubljeni
         filters: Filtri
+        follow: Razmerja
         follows: Sledi
         lists: Seznami
         media: Predstavnostne priloge
@@ -149,6 +153,7 @@ sl:
       admin:write: spremeni vse podatke na strežniku
       admin:write:accounts: izvedi moderirana dejanja na računih
       admin:write:reports: izvedi moderirana dejanja na prijavah
+      crypto: Uporabi šifriranje od konca do konca
       follow: spremeni razmerja med računi
       push: prejmi potisna obvestila
       read: preberi vse podatke svojega računa
@@ -168,6 +173,7 @@ sl:
       write:accounts: spremenite svoj profil
       write:blocks: blokirajte račune in domene
       write:bookmarks: objave zaznamkov
+      write:conversations: utišaj in izbriši pogovore
       write:favourites: priljubljena stanja
       write:filters: ustvari filtre
       write:follows: sledi osebam
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 983b083f9..71bdccf20 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -306,6 +306,7 @@ el:
       enable: Ενεργοποίηση
       enabled: Ενεργοποιημένα
       enabled_msg: Επιτυχής ενεργοποίηση αυτού του emoji
+      image_hint: PNG ή GIF έως %{size}
       list: Εμφάνιση
       listed: Αναφερθέντα
       new:
diff --git a/config/locales/en.yml b/config/locales/en.yml
index cdc66bd68..d4a42e867 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1438,7 +1438,7 @@ en:
     disallowed_hashtags:
       one: 'contained a disallowed hashtag: %{tags}'
       other: 'contained the disallowed hashtags: %{tags}'
-    edited_at: Edited %{date}
+    edited_at_html: Edited %{date}
     errors:
       in_reply_not_found: The post you are trying to reply to does not appear to exist.
     open_in_web: Open in web
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 36da3c5fa..f9cc35533 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -25,7 +25,7 @@ eo:
       Ĉi tiu konto estas virtuala ulo uzata por reprezenti la servilon mem kaj ne iun apartan uzanton.
       Ĝi estas uzata por frataraj celoj kaj ĝi ne devus esti blokita krom se vi volas bloki la tutan servilon, tiuokaze vi devus uzi domajnan blokadon.
     learn_more: Lerni pli
-    logout_before_registering: Vi jam saluts.
+    logout_before_registering: Vi jam salutis.
     privacy_policy: Privateca politiko
     rules: Reguloj de la servilo
     see_whats_happening: Vidi kio okazas
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 34bed329a..24d13bdc6 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -373,6 +373,7 @@ es-AR:
       enable: Habilitar
       enabled: Habilitado
       enabled_msg: Se habilitó ese emoji exitosamente
+      image_hint: PNG o GIF, hasta %{size}
       list: Listar
       listed: Listados
       new:
@@ -479,11 +480,41 @@ es-AR:
       title: Recomendaciones de cuentas para seguir
       unsuppress: Restablecer recomendaciones de cuentas para seguir
     instances:
+      availability:
+        description_html:
+          one: Si el envío al dominio falla durante <strong>%{count} día</strong> sin éxito, no se harán más intentos de entrega a menos que se reciba un envío <em>desde</em> el dominio.
+          other: Si el envío al dominio falla durante <strong>%{count} días</strong> sin éxito, no se harán más intentos de entrega a menos que se reciba un envío <em>desde</em> el dominio.
+        failure_threshold_reached: Umbral de límite de fallo alcanzado el %{date}.
+        failures_recorded:
+          one: Intento fallido en %{count} día.
+          other: Intentos fallidos en %{count} días.
+        no_failures_recorded: No hay fallos en el registro.
+        title: Disponibilidad
       back_to_all: Todos
       back_to_limited: Limitados
       back_to_warning: Advertencia
       by_domain: Dominio
       confirm_purge: "¿Estás seguro que querés eliminar permanentemente los datos de este dominio?"
+      content_policies:
+        comment: Nota interna
+        description_html: Podés definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
+        policies:
+          reject_media: Rechazar medios
+          reject_reports: Rechazar denuncias
+          silence: Limitar
+          suspend: Suspender
+        policy: Política
+        reason: Razón pública
+        title: Políticas de contenido
+      dashboard:
+        instance_accounts_dimension: Cuentas más seguidas
+        instance_accounts_measure: cuentas almacenadas
+        instance_followers_measure: nuestros seguidores allí
+        instance_follows_measure: sus seguidores aquí
+        instance_languages_dimension: Idiomas principales
+        instance_media_attachments_measure: archivos adjuntos almacenados
+        instance_reports_measure: denuncias sobre ellos
+        instance_statuses_measure: mensajes almacenados
       delivery:
         all: Todos
         clear: Limpiar errores de entrega
@@ -506,12 +537,14 @@ es-AR:
       private_comment: Comentario privado
       public_comment: Comentario público
       purge: Purgar
+      purge_description_html: Si creés que este dominio está fuera de línea para siempre, podés eliminar de tu almacenamiento todos los registros de cuentas y los datos asociados a este dominio. Esto puede llevar un tiempo.
       title: Federación
       total_blocked_by_us: Bloqueada por nosotros
       total_followed_by_them: Seguidas por ellos
       total_followed_by_us: Seguidas por nosotros
       total_reported: Denuncias sobre ellas
       total_storage: Adjuntos
+      totals_time_period_hint_html: Los datos totales mostrados a continuación incluyen datos para todo el tiempo.
     invites:
       deactivate_all: Desactivar todas
       filter:
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 3d43a2e39..6a7af3b89 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -373,6 +373,7 @@ es:
       enable: Habilitar
       enabled: Activado
       enabled_msg: Se habilitó con éxito ese emoji
+      image_hint: PNG o GIF hasta %{size}
       list: Lista
       listed: Listados
       new:
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 993c7d692..8bf15b82d 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -373,6 +373,7 @@ fr:
       enable: Activer
       enabled: Activé
       enabled_msg: Émoji activé avec succès
+      image_hint: PNG ou GIF de moins de %{size}
       list: Lister
       listed: Listé
       new:
@@ -480,6 +481,7 @@ fr:
       unsuppress: Rétablir les recommandations d'abonnement
     instances:
       availability:
+        failure_threshold_reached: Le seuil de défaillance a été atteint le %{date}.
         no_failures_recorded: Pas d'échec enregistré.
         title: Disponibilité
       back_to_all: Tout
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index ae3ce6f24..bc55e43d9 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -375,6 +375,7 @@ hu:
       enable: Engedélyezés
       enabled: Engedélyezve
       enabled_msg: Emodzsi sikeresen engedélyezve
+      image_hint: PNG vagy GIF, legfeljebb %{size}-os
       list: Felsorolás
       listed: Felsorolva
       new:
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 019266294..aa6ef07a7 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -367,6 +367,7 @@ id:
       enable: Aktifkan
       enabled: Diaktifkan
       enabled_msg: Emoji berhasil diaktifkan
+      image_hint: PNG atau GIF hingga %{size}
       list: Daftar
       listed: Terdaftar
       new:
@@ -497,6 +498,10 @@ id:
         instance_accounts_measure: akun tersimpan
         instance_followers_measure: pengikut kami di sana
         instance_follows_measure: pengikut mereka di sini
+        instance_languages_dimension: Bahasa terpopuler
+        instance_media_attachments_measure: lampiran media tersimpan
+        instance_reports_measure: laporan tentang mereka
+        instance_statuses_measure: kiriman tersimpan
       delivery:
         all: Semua
         clear: Hapus galat pengiriman
@@ -519,12 +524,14 @@ id:
       private_comment: Komentar pribadi
       public_comment: Komentar publik
       purge: Hapus
+      purge_description_html: Jika Anda meyakini bahwa domain ini lebih baik offline, Anda dapat menghapus semua rekaman akun dan data terkait dari domain ini dari ruang penyimpanan Anda. Ini perlu beberapa waktu.
       title: Server yang diketahui
       total_blocked_by_us: Yang kita blokir
       total_followed_by_them: Diikuti mereka
       total_followed_by_us: Diikuti kita
       total_reported: Laporan tentang mereka
       total_storage: Lampiran media
+      totals_time_period_hint_html: Total tampilan di bawah termasuk data seluruh waktu.
     invites:
       deactivate_all: Nonaktifkan semua
       filter:
@@ -743,6 +750,7 @@ id:
       actions:
         delete_statuses: "%{name} menghapus kiriman %{target}"
         disable: "%{name} membekukan akun %{target}"
+        mark_statuses_as_sensitive: "%{name} menandai kiriman %{target} sebagai sensitif"
         none: "%{name} mengirim peringatan ke %{target}"
         sensitive: "%{name} menandai akun %{target} sebagai sensitif"
         silence: "%{name} membatasi akun %{target}"
@@ -768,6 +776,7 @@ id:
       links:
         allow: Izinkan tautan
         allow_provider: Izinkan penerbit
+        description_html: Ini adalah tautan yang saat ini dibagikan oleh banyak akun yang dapat dilihat dari server Anda. Ini dapat membantu pengguna Anda menemukan apa yang sedang terjadi di dunia. Tidak ada tautan yang ditampilkan secara publik kecuali Anda sudah menyetujui pengirimnya. Anda juga dapat mengizinkan atau menolak tautan individu.
         disallow: Batalkan izin tautan
         disallow_provider: Batalkan izin penerbit
         shared_by_over_week:
@@ -779,6 +788,7 @@ id:
       pending_review: Tinjauan tertunda
       preview_card_providers:
         allowed: Tautan dari penerbit ini dapat menjadi tren
+        description_html: Ini adalah domain yang tautannya sering dibagikan di server Anda. Tautan tidak akan menjadi tren secara publik kecuali domain dari tautan tersebut disetujui. Persetujuan (atau penolakan) Anda mempengaruhi subdomain.
         rejected: Tautan dari penerbit ini tidak dapat menjadi tren
         title: Penerbit
       rejected: Ditolak
diff --git a/config/locales/is.yml b/config/locales/is.yml
index e7087e05d..935252a6f 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -373,6 +373,7 @@ is:
       enable: Virkja
       enabled: Virkt
       enabled_msg: Tókst að gera þetta tjáningartákn virkt
+      image_hint: PNG eða GIF allt að %{size}
       list: Listi
       listed: Skráð
       new:
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 73428e900..0b9a55c18 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -373,6 +373,7 @@ it:
       enable: Abilita
       enabled: Abilitato
       enabled_msg: Questa emoji è stata abilitata con successo
+      image_hint: PNG o GIF fino a %{size}
       list: Includi nell'elenco
       listed: Elencato
       new:
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index d3f6d1568..c63293a00 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -361,6 +361,7 @@ ja:
       enable: 有効化
       enabled: 有効
       enabled_msg: 絵文字を有効化しました
+      image_hint: "%{size}までのPNGまたはGIF画像を利用できます"
       list: 表示
       listed: 表示
       new:
@@ -1494,7 +1495,7 @@ ja:
         violation: コンテンツは以下のコミュニティガイドラインに違反しています
       explanation:
         disable: アカウントは使用できませんが、プロフィールやその他のデータはそのまま残ります。 データのバックアップをリクエストしたり、アカウント設定を変更したり、アカウントを削除したりできます。
-        sensitive: 今後、アップロードされたすべてのメディアファイルは閲覧注意してマークされ、クリックスルー警告の背後に隠されます。
+        sensitive: 今後、アップロードされたすべてのメディアファイルは閲覧注意としてマークされ、クリック解除式の警告で覆われるようになります。
         silence: アカウントが制限されています。このサーバーでは既にフォローしている人だけがあなたの投稿を見ることができます。 様々な発見機能から除外されるかもしれません。他の人があなたを手動でフォローすることは可能です。
       reason: '理由:'
       subject:
diff --git a/config/locales/kmr.yml b/config/locales/kmr.yml
index a971c6775..837facc55 100644
--- a/config/locales/kmr.yml
+++ b/config/locales/kmr.yml
@@ -1308,7 +1308,7 @@ kmr:
     reason_html: "<strong>Ev gav ji bona çi pêwîst e?</strong><code>%{instance}</code>rajekerên ku tu tomarkiriyî dibe ku tunebe, ji bona vê divê pêşî te beralîyê rajekera te bi xwe bikin."
   remote_interaction:
     favourite:
-      proceed: Ber bi bijarê ve biçe
+      proceed: Ber bi bijarteyê ve biçe
       prompt: 'Tu dixwazî vê şandiyê bibijêrî:'
     reblog:
       proceed: Bo bilindkirinê bidomîne
@@ -1384,7 +1384,7 @@ kmr:
     preferences: Hilbijarte
     profile: Profîl
     relationships: Yên tê şopandin û şopîner
-    statuses_cleanup: Bi xweberî va jê birina şandiya
+    statuses_cleanup: Bi xweberî ve jêbirina şandiya
     strikes: Binpêkirinên çavdêriyê
     two_factor_authentication: Piştrastkirinê du-faktorî
     webauthn_authentication: Kilîdên ewlehiyê
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 13f7544ca..f095dc589 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -377,6 +377,7 @@ lv:
       enable: Iespējot
       enabled: Iespējots
       enabled_msg: Šī emocijzīme ir veiksmīgi iespējota
+      image_hint: PNG vai GIF līdz %{size}
       list: Saraksts
       listed: Uzrakstītas
       new:
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 54c73413b..193bb39ff 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -378,6 +378,7 @@ ru:
       enable: Включить
       enabled: Включено
       enabled_msg: Эмодзи успешно включено
+      image_hint: PNG или GIF до %{size}
       list: Список
       listed: В списке
       new:
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index beadb32fd..6bf2f1ebc 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -200,7 +200,7 @@ da:
       notification_emails:
         appeal: En moderatorafgørelse er appelleret
         digest: Send resumé e-mails
-        favourite: Nogen gav dig favoritstatus
+        favourite: Nogen favoritmarkerede dit indlæg
         follow: Nogen begyndte at følge dig
         follow_request: Nogen anmodede om at følge dig
         mention: Nogen nævnte dig
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index db191a091..11eeac74e 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -156,7 +156,7 @@ eo:
         setting_expand_spoilers: Ĉiam malfoldas mesaĝojn markitajn per averto pri enhavo
         setting_hide_network: Kaŝi viajn sekvantojn kaj sekvatojn
         setting_noindex: Ellistiĝi de retserĉila indeksado
-        setting_reduce_motion: Redukti moviĝon en la animacioj
+        setting_reduce_motion: Redukti movecon en la animacioj
         setting_show_application: Publikigi la aplikaĵon uzatan por sendi mesaĝojn
         setting_system_font_ui: Uzi la dekomencan tiparon de la sistemo
         setting_theme: Reteja etoso
diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml
index 688222887..7c8cdeadc 100644
--- a/config/locales/simple_form.sl.yml
+++ b/config/locales/simple_form.sl.yml
@@ -74,6 +74,7 @@ sl:
         text: Prednastavljeno besedilo
         title: Naslov
       admin_account_action:
+        include_statuses: Vključi omenjene objave v e-sporočilo
         send_email_notification: Obvesti uporabnika po e-pošti
         text: Opozorilo po meri
         type: Dejanje
@@ -90,6 +91,8 @@ sl:
         scheduled_at: Načrtuj čas objave
         starts_at: Začetek dogodka
         text: Objava
+      appeal:
+        text: Razložite, zakaj bi morali to odločitev spremeniti
       defaults:
         autofollow: Povabite, da sledi vašemu računu
         avatar: Podoba
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index 303a684e2..a50468543 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -199,9 +199,10 @@ th:
         follow: ใครสักคนได้ติดตามคุณ
         follow_request: ใครสักคนได้ขอติดตามคุณ
         mention: ใครสักคนได้กล่าวถึงคุณ
-        pending_account: บัญชีใหม่ต้องมีการตรวจทาน
+        pending_account: บัญชีใหม่จำเป็นต้องมีการตรวจทาน
         reblog: ใครสักคนได้ดันโพสต์ของคุณ
         report: มีการส่งรายงานใหม่
+        trending_tag: แนวโน้มใหม่ต้องการการตรวจทาน
       rule:
         text: กฎ
       tag:
diff --git a/config/locales/simple_form.tt.yml b/config/locales/simple_form.tt.yml
index 1b1d034b3..d4e44c0db 100644
--- a/config/locales/simple_form.tt.yml
+++ b/config/locales/simple_form.tt.yml
@@ -17,6 +17,8 @@ tt:
         password: Парол
         setting_display_media_default: Töpcay
         username: Кулланучы исеме
+      featured_tag:
+        name: Хэштег
       invite:
         comment: Аңлатма
       ip_block:
diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml
index 75c0c8338..29f19a844 100644
--- a/config/locales/simple_form.vi.yml
+++ b/config/locales/simple_form.vi.yml
@@ -48,7 +48,7 @@ vi:
         password: Dùng ít nhất 8 ký tự
         phrase: Sẽ được hiện thị trong văn bản hoặc cảnh báo nội dung của một tút
         scopes: API nào ứng dụng sẽ được phép truy cập. Nếu bạn chọn quyền hạn cấp cao nhất, bạn không cần chọn từng phạm vi.
-        setting_aggregate_reblogs: Nếu một tút đã được chia sẻ thì những lượt chia sẻ sau sẽ không hiển thị trên bảng tin nữa
+        setting_aggregate_reblogs: Nếu một tút đã được đăng lại thì những lượt đăng lại sau sẽ không hiển thị trên bảng tin nữa
         setting_default_sensitive: Mặc định là nội dung nhạy cảm và chỉ hiển thị nếu nhấn vào
         setting_display_media_default: Làm mờ những thứ được đánh dấu là nhạy cảm
         setting_display_media_hide_all: Không hiển thị
@@ -150,9 +150,9 @@ vi:
         password: Mật khẩu
         phrase: Từ khóa hoặc cụm từ
         setting_advanced_layout: Bật giao diện nhiều cột
-        setting_aggregate_reblogs: Không hiện lượt chia sẻ trùng lặp
+        setting_aggregate_reblogs: Không hiện lượt đăng lại trùng lặp
         setting_auto_play_gif: Tự động phát ảnh GIF
-        setting_boost_modal: Yêu cầu xác nhận trước khi chia sẻ tút
+        setting_boost_modal: Yêu cầu xác nhận trước khi đăng lại tút
         setting_crop_images: Hiển thị ảnh theo tỉ lệ 16x9
         setting_default_language: Ngôn ngữ đăng
         setting_default_privacy: Kiểu đăng
@@ -207,7 +207,7 @@ vi:
         follow_request: Ai đó yêu cầu theo dõi bạn
         mention: Ai đó nhắc đến bạn
         pending_account: Tài khoản mới cần phê duyệt
-        reblog: Ai đó chia sẻ tút của bạn
+        reblog: Ai đó đăng lại tút của bạn
         report: Đã gửi báo cáo mới
         trending_tag: Một xu hướng cần được xem xét
       rule:
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 902d8fdf9..b498ffd30 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -16,6 +16,7 @@ sl:
     contact: Kontakt
     contact_missing: Ni nastavljeno
     contact_unavailable: Ni na voljo
+    continue_to_web: Nadaljuj v spletno aplikacijo
     discover_users: Odkrijte uporabnike
     documentation: Dokumentacija
     federation_hint_html: Z računom na %{instance} boste lahko spremljali ljudi na kateremkoli Mastodon strežniku.
@@ -25,6 +26,8 @@ sl:
       Ta račun je navidezni igralec, ki predstavlja strežnik in ne posameznega uporabnika.
       Uporablja se za namene federacije in se ne blokira, če ne želite blokirati celotne instance. V tem primeru blokirajte domeno.
     learn_more: Nauči se več
+    logged_in_as_html: Trenutno ste prijavljeni kot %{username}.
+    logout_before_registering: Ste že prijavljeni.
     privacy_policy: Pravilnik o zasebnosti
     rules: Pravila strežnika
     rules_html: 'Spodaj je povzetek pravil, ki jim morate slediti, če želite imeti račun na tem strežniku Mastodon:'
@@ -208,6 +211,8 @@ sl:
         create_ip_block: Ustvari pravilo IP
         create_unavailable_domain: Ustvari domeno, ki ni na voljo
         destroy_announcement: Izbriši obvestilo
+        destroy_domain_allow: Izbriši odobritev domene
+        destroy_domain_block: Izbriši blokado domene
         destroy_ip_block: Izbriši pravilo IP
         destroy_status: Izbriši objavo
         disable_user: Onemogoči uporabnika
@@ -252,6 +257,7 @@ sl:
       enable: Omogoči
       enabled: Omogočeno
       enabled_msg: Ta emotikon je uspešno omogočen
+      image_hint: PNG ali GIF do %{size}
       list: Seznam
       listed: Navedeno
       new:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 39146559a..c78be217b 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -23,7 +23,7 @@ th:
     get_apps: ลองแอปมือถือ
     hosted_on: Mastodon ที่โฮสต์ที่ %{domain}
     learn_more: เรียนรู้เพิ่มเติม
-    logged_in_as_html: คุณกำลังเข้าสู่ระบบเป็น %{username}
+    logged_in_as_html: คุณกำลังเข้าสู่ระบบเป็น %{username} ในปัจจุบัน
     logout_before_registering: คุณได้เข้าสู่ระบบอยู่แล้ว
     privacy_policy: นโยบายความเป็นส่วนตัว
     rules: กฎของเซิร์ฟเวอร์
@@ -447,11 +447,33 @@ th:
       title: คำแนะนำการติดตาม
       unsuppress: คืนค่าคำแนะนำการติดตาม
     instances:
+      availability:
+        title: ความพร้อมใช้งาน
       back_to_all: ทั้งหมด
       back_to_limited: จำกัดอยู่
       back_to_warning: คำเตือน
       by_domain: โดเมน
       confirm_purge: คุณแน่ใจหรือไม่ว่าต้องการลบข้อมูลจากโดเมนนี้อย่างถาวร?
+      content_policies:
+        comment: หมายเหตุภายใน
+        description_html: คุณสามารถกำหนดนโยบายเนื้อหาที่จะนำไปใช้กับบัญชีทั้งหมดจากโดเมนนี้และโดเมนย่อยใดก็ตามของโดเมน
+        policies:
+          reject_media: ปฏิเสธสื่อ
+          reject_reports: ปฏิเสธรายงาน
+          silence: จำกัด
+          suspend: ระงับ
+        policy: นโยบาย
+        reason: เหตุผลสาธารณะ
+        title: นโยบายเนื้อหา
+      dashboard:
+        instance_accounts_dimension: บัญชีที่ติดตามมากที่สุด
+        instance_accounts_measure: บัญชีที่จัดเก็บไว้
+        instance_followers_measure: ผู้ติดตามของเราที่นั่น
+        instance_follows_measure: ผู้ติดตามของเขาที่นี่
+        instance_languages_dimension: ภาษายอดนิยม
+        instance_media_attachments_measure: ไฟล์แนบสื่อที่จัดเก็บไว้
+        instance_reports_measure: รายงานเกี่ยวกับเขา
+        instance_statuses_measure: โพสต์ที่จัดเก็บไว้
       delivery:
         all: ทั้งหมด
         clear: ล้างข้อผิดพลาดการจัดส่ง
@@ -657,7 +679,7 @@ th:
         desc_html: มีผลต่อแฮชแท็กที่ไม่ได้ไม่อนุญาตก่อนหน้านี้
         title: อนุญาตให้แฮชแท็กขึ้นแนวโน้มโดยไม่มีการตรวจทานล่วงหน้า
       trends:
-        desc_html: แสดงเนื้อหาที่ตรวจทานแล้วก่อนหน้านี้ที่กำลังนิยมเป็นสาธารณะ
+        desc_html: แสดงเนื้อหาที่ตรวจทานแล้วก่อนหน้านี้ที่กำลังนิยมในปัจจุบันเป็นสาธารณะ
         title: แนวโน้ม
     site_uploads:
       delete: ลบไฟล์ที่อัปโหลด
@@ -767,13 +789,13 @@ th:
       subject: รายงานใหม่สำหรับ %{instance} (#%{id})
     new_trends:
       new_trending_links:
-        no_approved_links: ไม่มีลิงก์ที่กำลังนิยมที่ได้รับอนุมัติ
+        no_approved_links: ไม่มีลิงก์ที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน
         title: ลิงก์ที่กำลังนิยม
       new_trending_statuses:
-        no_approved_statuses: ไม่มีโพสต์ที่กำลังนิยมที่ได้รับอนุมัติ
+        no_approved_statuses: ไม่มีโพสต์ที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน
         title: โพสต์ที่กำลังนิยม
       new_trending_tags:
-        no_approved_tags: ไม่มีแฮชแท็กที่กำลังนิยมที่ได้รับอนุมัติ
+        no_approved_tags: ไม่มีแฮชแท็กที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน
         title: แฮชแท็กที่กำลังนิยม
       subject: แนวโน้มใหม่สำหรับตรวจทานใน %{instance}
   aliases:
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index bbc4a6db7..341431363 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -373,6 +373,7 @@ tr:
       enable: Etkinleştir
       enabled: Etkin
       enabled_msg: Bu emojiyi başarıyla etkinleştirdi
+      image_hint: En fazla %{size} boyutunda PNG veya GIF
       list: Liste
       listed: Listelenen
       new:
diff --git a/config/locales/tt.yml b/config/locales/tt.yml
index 3e80dfcaf..e23533828 100644
--- a/config/locales/tt.yml
+++ b/config/locales/tt.yml
@@ -37,16 +37,21 @@ tt:
         local: Җирле
         title: Урын
       moderation:
+        active: Актив
         all: Бөтенесе
       perform_full_suspension: Искә алмау
       reset: Ташлату
       role: Рөхсәтләр
       roles:
+        moderator: Модератор
         user: Кулланучы
       search: Эзләү
       sensitive: Sizmäle
       username: Кулланучы исеме
       web: Веб
+    action_logs:
+      action_types:
+        disable_2fa_user: 2FA cүндерү
     custom_emojis:
       by_domain: Домен
       copy: Күчереп алу
@@ -65,6 +70,8 @@ tt:
     email_domain_blocks:
       delete: Бетерү
       domain: Домен
+    follow_recommendations:
+      status: Халәт
     instances:
       by_domain: Домен
       moderation:
@@ -78,11 +85,12 @@ tt:
       delete: Бетерү
       expires_in:
         '1209600': 2 атна
-        '15778476': 6 months
+        '15778476': 6 ай
         '2629746': 1 ай
         '31556952': 1 ел
         '86400': 1 көн
         '94670856': 3 ел
+      title: IP кагыйдәләре
     relays:
       delete: Бетерү
       disable: Cүндерү
@@ -97,10 +105,14 @@ tt:
         delete: Бетерү
       status: Халәт
       updated_at: Яңартылды
+    rules:
+      delete: Бетерү
     statuses:
       deleted: Бетерелде
       media:
         title: Медиа
+    trends:
+      allow: Рөхсәт итү
     warning_presets:
       delete: Бетерү
   application_mailer:
@@ -125,9 +137,12 @@ tt:
     distance_in_words:
       about_x_hours: "%{count}сәг"
       about_x_months: "%{count}ай"
+      about_x_years: "%{count}ел"
+      almost_x_years: "%{count}ел"
       half_a_minute: Хәзер генә
       less_than_x_minutes: "%{count}м"
       less_than_x_seconds: Хәзер генә
+      over_x_years: "%{count}ел"
       x_days: "%{count}к"
       x_minutes: "%{count}м"
       x_months: "%{count}ай"
@@ -160,6 +175,7 @@ tt:
     all: Бөтенесе
     copy: Күчереп алу
     delete: Бетерү
+    today: бүген
   imports:
     types:
       bookmarks: Кыстыргычлар
@@ -212,6 +228,7 @@ tt:
     platforms:
       adobe_air: Adobе Air
       android: Andrоid
+      blackberry: Blаckberry
       chrome_os: ChromеOS
       firefox_os: Firеfox OS
       ios: iОS
@@ -233,15 +250,28 @@ tt:
       video:
         other: "%{count} видео"
     title: '%{name}: "%{quote}"'
+  statuses_cleanup:
+    min_age:
+      '1209600': 2 атна
+      '15778476': 6 months
+      '2629746': 1 ай
+      '31556952': 1 ел
+      '5259492': 2 ай
+      '604800': 1 атна
+      '63113904': 2 ел
+      '7889238': 3 ай
   time:
     formats:
       default: "%d %b %Y, %H:%M"
       month: "%b %Y"
+      time: "%H:%M"
   two_factor_authentication:
     add: Өстәү
+    disable: 2FA cүндерү
     edit: Үзгәртү
   user_mailer:
     warning:
+      reason: 'Сәбаб:'
       title:
         none: Игътибар
   webauthn_credentials:
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index d9b58115e..c420f2176 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -794,7 +794,7 @@ vi:
       statuses:
         allow: Cho phép tút
         allow_account: Cho phép người đăng
-        description_html: Đây là những tút hiện đang được chia sẻ và yêu thích rất nhiều trên máy chủ của bạn ở thời điểm hiện tại. Nó có thể giúp người dùng mới và người dùng cũ của bạn tìm thấy nhiều người hơn để theo dõi. Không có bài viết nào được hiển thị công khai cho đến khi bạn cho phép tác giả và tác giả cho phép đề xuất tài khoản của họ cho người khác. Bạn cũng có thể cho phép hoặc từ chối các tút riêng lẻ.
+        description_html: Đây là những tút hiện đang được đăng lại và yêu thích rất nhiều trên máy chủ của bạn ở thời điểm hiện tại. Nó có thể giúp người dùng mới và người dùng cũ của bạn tìm thấy nhiều người hơn để theo dõi. Không có bài viết nào được hiển thị công khai cho đến khi bạn cho phép tác giả và tác giả cho phép đề xuất tài khoản của họ cho người khác. Bạn cũng có thể cho phép hoặc từ chối các tút riêng lẻ.
         disallow: Không cho phép tút
         disallow_account: Không cho phép người đăng
         not_discoverable: Tác giả đã chọn không tham gia mục khám phá
@@ -1239,9 +1239,9 @@ vi:
     poll:
       subject: Cuộc bình chọn của %{name} kết thúc
     reblog:
-      body: Tút của bạn vừa được chia sẻ bởi %{name}
-      subject: "%{name} vừa chia sẻ tút của bạn"
-      title: Lượt chia sẻ mới
+      body: Tút của bạn vừa được %{name} đăng lại
+      subject: "%{name} vừa đăng lại tút của bạn"
+      title: Lượt đăng lại mới
     status:
       subject: Bài đăng mới từ %{name}
     update:
@@ -1322,8 +1322,8 @@ vi:
       proceed: Thích tút
       prompt: 'Bạn muốn thích tút này:'
     reblog:
-      proceed: Tiếp tục chia sẻ
-      prompt: Bạn có muốn chia sẻ tút này?
+      proceed: Tiếp tục đăng lại
+      prompt: Bạn có muốn đăng lại tút này?
     reply:
       proceed: Tiếp tục trả lời
       prompt: Bạn có muốn trả lời tút này?
@@ -1408,7 +1408,7 @@ vi:
         other: "%{count} hình ảnh"
       video:
         other: "%{count} video"
-    boosted_from_html: Đã chia sẻ từ %{acct_link}
+    boosted_from_html: Đã đăng lại từ %{acct_link}
     content_warning: 'Cảnh báo nội dung: %{warning}'
     default_language: Giống ngôn ngữ giao diện
     disallowed_hashtags:
@@ -1422,7 +1422,7 @@ vi:
       direct: Không thể ghim những tút nhắn riêng
       limit: Bạn đã ghim quá số lượng tút cho phép
       ownership: Không thể ghim tút của người khác
-      reblog: Không thể ghim chia sẻ
+      reblog: Không thể ghim tút đăng lại
     poll:
       total_people:
         other: "%{count} người bình chọn"
@@ -1449,9 +1449,9 @@ vi:
     exceptions: Ngoại trừ
     explanation: Việc xóa tút rất tốn thời gian vì tút của bạn sẽ tăng dần theo năm tháng. Bởi lý do này, bạn nên xóa những tút cũ khi chúng đã đạt tới thời điểm nhất định.
     ignore_favs: Bỏ qua số luợt thích
-    ignore_reblogs: Bỏ qua số lượt chia sẻ
+    ignore_reblogs: Bỏ qua lượt đăng lại
     interaction_exceptions: Ngoại lệ dựa trên tương tác
-    interaction_exceptions_explanation: Lưu ý rằng không có gì đảm bảo rằng các bài đăng sẽ bị xóa nếu chúng xuống dưới ngưỡng mức yêu thích hoặc chia sẻ sau khi đã từng vượt qua.
+    interaction_exceptions_explanation: Lưu ý rằng không có gì đảm bảo rằng các tút sẽ bị xóa nếu chúng xuống dưới ngưỡng mức yêu thích hoặc đăng lại sau khi đã từng vượt qua.
     keep_direct: Giữ lại tin nhắn
     keep_direct_hint: Không xóa tin nhắn của bạn
     keep_media: Giữ lại những tút có đính kèm media
@@ -1476,11 +1476,11 @@ vi:
     min_age_label: Thời điểm
     min_favs: Giữ những tút yêu thích lâu hơn
     min_favs_hint: Những tút có lượt thích nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
-    min_reblogs: Giữ những tút đã chia sẻ lâu hơn
-    min_reblogs_hint: Những tút có lượt chia sẻ nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
+    min_reblogs: Giữ những tút đã đăng lại lâu hơn
+    min_reblogs_hint: Những tút có lượt đăng lại nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
   stream_entries:
     pinned: Tút được ghim
-    reblogged: chia sẻ
+    reblogged: đăng lại
     sensitive_content: NSFW
   tags:
     does_not_match_previous_name: không khớp với tên trước
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 02d18d41b..c8f7175f5 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -23,6 +23,7 @@ zh-CN:
     hosted_on: 运行在 %{domain} 上的 Mastodon 实例
     instance_actor_flash: "这个账号是个虚拟帐号,不代表任何用户,只用来代表服务器本身。它用于和其它服务器互通,所以不应该被封禁,除非你想封禁整个实例。但是想封禁整个实例的时候,你应该用域名封禁。 \n"
     learn_more: 了解详情
+    logout_before_registering: 您已登录。
     privacy_policy: 隐私政策
     rules: 服务器规则
     rules_html: 如果你想要在此Mastodon服务器上拥有一个账户,你必须遵守相应的规则,摘要如下:
@@ -470,6 +471,8 @@ zh-CN:
       back_to_warning: 警告
       by_domain: 域名
       confirm_purge: 你确认要从这个实例中永久地删除数据吗?
+      content_policies:
+        title: 本站点内容发布规则
       delivery:
         all: 全部
         clear: 清理投递错误
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index d11b15ab4..f1e0ea446 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -367,6 +367,7 @@ zh-TW:
       enable: 啟用
       enabled: 已啟用
       enabled_msg: 已啟用表情符號
+      image_hint: 檔案大小最大至 %{size} 之PNG 或 GIF
       list: 列表
       listed: 已顯示
       new:
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index 7c2e7161a..4ba47b4ee 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -9,15 +9,15 @@ module Mastodon
     end
 
     def minor
-      4
+      5
     end
 
     def patch
-      6
+      0
     end
 
     def flags
-      ''
+      'rc1'
     end
 
     def suffix
diff --git a/package.json b/package.json
index 463d47a8a..11be90e44 100644
--- a/package.json
+++ b/package.json
@@ -61,21 +61,21 @@
   },
   "private": true,
   "dependencies": {
-    "@babel/core": "^7.17.5",
+    "@babel/core": "^7.17.7",
     "@babel/plugin-proposal-decorators": "^7.17.2",
     "@babel/plugin-transform-react-inline-elements": "^7.16.7",
     "@babel/plugin-transform-runtime": "^7.17.0",
     "@babel/preset-env": "^7.16.11",
     "@babel/preset-react": "^7.16.7",
-    "@babel/runtime": "^7.17.2",
+    "@babel/runtime": "^7.17.7",
     "@gamestdio/websocket": "^0.3.2",
     "@github/webauthn-json": "^0.5.7",
-    "@rails/ujs": "^6.1.4",
+    "@rails/ujs": "^6.1.5",
     "array-includes": "^3.1.4",
     "atrament": "0.2.4",
     "arrow-key-navigation": "^1.2.0",
     "autoprefixer": "^9.8.8",
-    "axios": "^0.26.0",
+    "axios": "^0.26.1",
     "babel-loader": "^8.2.3",
     "babel-plugin-lodash": "^3.3.4",
     "babel-plugin-preval": "^5.1.0",
@@ -176,7 +176,7 @@
   },
   "devDependencies": {
     "@testing-library/jest-dom": "^5.16.2",
-    "@testing-library/react": "^12.1.3",
+    "@testing-library/react": "^12.1.4",
     "babel-eslint": "^10.1.0",
     "babel-jest": "^27.5.1",
     "eslint": "^7.32.0",
@@ -197,6 +197,6 @@
   },
   "optionalDependencies": {
     "bufferutil": "^4.0.6",
-    "utf-8-validate": "^5.0.8"
+    "utf-8-validate": "^5.0.9"
   }
 }
diff --git a/spec/controllers/api/v1/notifications_controller_spec.rb b/spec/controllers/api/v1/notifications_controller_spec.rb
index f8df6589f..46e177c0e 100644
--- a/spec/controllers/api/v1/notifications_controller_spec.rb
+++ b/spec/controllers/api/v1/notifications_controller_spec.rb
@@ -70,23 +70,23 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
       end
 
       it 'includes reblog' do
-        expect(assigns(:notifications).map(&:activity)).to include(@reblog_of_first_status)
+        expect(body_as_json.map { |x| x[:type] }).to include 'reblog'
       end
 
       it 'includes mention' do
-        expect(assigns(:notifications).map(&:activity)).to include(@mention_from_status)
+        expect(body_as_json.map { |x| x[:type] }).to include 'mention'
       end
 
       it 'includes favourite' do
-        expect(assigns(:notifications).map(&:activity)).to include(@favourite)
+        expect(body_as_json.map { |x| x[:type] }).to include 'favourite'
       end
 
       it 'includes follow' do
-        expect(assigns(:notifications).map(&:activity)).to include(@follow)
+        expect(body_as_json.map { |x| x[:type] }).to include 'follow'
       end
     end
 
-    describe 'from specified user' do
+    describe 'with account_id param' do
       before do
         get :index, params: { account_id: third.account.id }
       end
@@ -95,28 +95,12 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
         expect(response).to have_http_status(200)
       end
 
-      it 'includes favourite' do
-        expect(assigns(:notifications).map(&:activity)).to include(@second_favourite)
-      end
-
-      it 'excludes favourite' do
-        expect(assigns(:notifications).map(&:activity)).to_not include(@favourite)
-      end
-
-      it 'excludes mention' do
-        expect(assigns(:notifications).map(&:activity)).to_not include(@mention_from_status)
-      end
-
-      it 'excludes reblog' do
-        expect(assigns(:notifications).map(&:activity)).to_not include(@reblog_of_first_status)
-      end
-
-      it 'excludes follow' do
-        expect(assigns(:notifications).map(&:activity)).to_not include(@follow)
+      it 'returns only notifications from specified user' do
+        expect(body_as_json.map { |x| x[:account][:id] }.uniq).to eq [third.account.id.to_s]
       end
     end
 
-    describe 'from nonexistent user' do
+    describe 'with invalid account_id param' do
       before do
         get :index, params: { account_id: 'foo' }
       end
@@ -125,54 +109,37 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
         expect(response).to have_http_status(200)
       end
 
-      it 'excludes favourite' do
-        expect(assigns(:notifications).map(&:activity)).to_not include(@favourite)
-      end
-
-      it 'excludes second favourite' do
-        expect(assigns(:notifications).map(&:activity)).to_not include(@second_favourite)
-      end
-
-      it 'excludes mention' do
-        expect(assigns(:notifications).map(&:activity)).to_not include(@mention_from_status)
-      end
-
-      it 'excludes reblog' do
-        expect(assigns(:notifications).map(&:activity)).to_not include(@reblog_of_first_status)
-      end
-
-      it 'excludes follow' do
-        expect(assigns(:notifications).map(&:activity)).to_not include(@follow)
+      it 'returns nothing' do
+        expect(body_as_json.size).to eq 0
       end
     end
 
-    describe 'with excluded mentions' do
+    describe 'with excluded_types param' do
       before do
-        get :index, params: { exclude_types: ['mention'] }
+        get :index, params: { exclude_types: %w(mention) }
       end
 
       it 'returns http success' do
         expect(response).to have_http_status(200)
       end
 
-      it 'includes reblog' do
-        expect(assigns(:notifications).map(&:activity)).to include(@reblog_of_first_status)
-      end
-
-      it 'excludes mention' do
-        expect(assigns(:notifications).map(&:activity)).to_not include(@mention_from_status)
+      it 'returns everything but excluded type' do
+        expect(body_as_json.size).to_not eq 0
+        expect(body_as_json.map { |x| x[:type] }.uniq).to_not include 'mention'
       end
+    end
 
-      it 'includes favourite' do
-        expect(assigns(:notifications).map(&:activity)).to include(@favourite)
+    describe 'with types param' do
+      before do
+        get :index, params: { types: %w(mention) }
       end
 
-      it 'includes third favourite' do
-        expect(assigns(:notifications).map(&:activity)).to include(@second_favourite)
+      it 'returns http success' do
+        expect(response).to have_http_status(200)
       end
 
-      it 'includes follow' do
-        expect(assigns(:notifications).map(&:activity)).to include(@follow)
+      it 'returns only requested type' do
+        expect(body_as_json.map { |x| x[:type] }.uniq).to eq ['mention']
       end
     end
   end
diff --git a/yarn.lock b/yarn.lock
index 4847200be..f6a001883 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -28,18 +28,23 @@
   resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60"
   integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==
 
-"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.17.5", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
-  version "7.17.5"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225"
-  integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==
+"@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/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.17.7", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
+  version "7.17.7"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.7.tgz#f7c28228c83cdf2dbd1b9baa06eaf9df07f0c2f9"
+  integrity sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ==
   dependencies:
     "@ampproject/remapping" "^2.1.0"
     "@babel/code-frame" "^7.16.7"
-    "@babel/generator" "^7.17.3"
-    "@babel/helper-compilation-targets" "^7.16.7"
-    "@babel/helper-module-transforms" "^7.16.7"
-    "@babel/helpers" "^7.17.2"
-    "@babel/parser" "^7.17.3"
+    "@babel/generator" "^7.17.7"
+    "@babel/helper-compilation-targets" "^7.17.7"
+    "@babel/helper-module-transforms" "^7.17.7"
+    "@babel/helpers" "^7.17.7"
+    "@babel/parser" "^7.17.7"
     "@babel/template" "^7.16.7"
     "@babel/traverse" "^7.17.3"
     "@babel/types" "^7.17.0"
@@ -49,10 +54,10 @@
     json5 "^2.1.2"
     semver "^6.3.0"
 
-"@babel/generator@^7.17.3", "@babel/generator@^7.7.2":
-  version "7.17.3"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200"
-  integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==
+"@babel/generator@^7.17.3", "@babel/generator@^7.17.7", "@babel/generator@^7.7.2":
+  version "7.17.7"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad"
+  integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==
   dependencies:
     "@babel/types" "^7.17.0"
     jsesc "^2.5.1"
@@ -81,12 +86,12 @@
     "@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":
-  version "7.16.7"
-  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b"
-  integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==
+"@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==
   dependencies:
-    "@babel/compat-data" "^7.16.4"
+    "@babel/compat-data" "^7.17.7"
     "@babel/helper-validator-option" "^7.16.7"
     browserslist "^4.17.5"
     semver "^6.3.0"
@@ -191,19 +196,19 @@
   dependencies:
     "@babel/types" "^7.16.7"
 
-"@babel/helper-module-transforms@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41"
-  integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==
+"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7":
+  version "7.17.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd"
+  integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==
   dependencies:
     "@babel/helper-environment-visitor" "^7.16.7"
     "@babel/helper-module-imports" "^7.16.7"
-    "@babel/helper-simple-access" "^7.16.7"
+    "@babel/helper-simple-access" "^7.17.7"
     "@babel/helper-split-export-declaration" "^7.16.7"
     "@babel/helper-validator-identifier" "^7.16.7"
     "@babel/template" "^7.16.7"
-    "@babel/traverse" "^7.16.7"
-    "@babel/types" "^7.16.7"
+    "@babel/traverse" "^7.17.3"
+    "@babel/types" "^7.17.0"
 
 "@babel/helper-optimise-call-expression@^7.16.7":
   version "7.16.7"
@@ -244,6 +249,13 @@
   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"
+  integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==
+  dependencies:
+    "@babel/types" "^7.17.0"
+
 "@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
   version "7.16.0"
   resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09"
@@ -283,13 +295,13 @@
     "@babel/traverse" "^7.16.8"
     "@babel/types" "^7.16.8"
 
-"@babel/helpers@^7.17.2":
-  version "7.17.2"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417"
-  integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==
+"@babel/helpers@^7.17.7":
+  version "7.17.7"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.7.tgz#6fc0a24280fd00026e85424bbfed4650e76d7127"
+  integrity sha512-TKsj9NkjJfTBxM7Phfy7kv6yYc4ZcOo+AaWGqQOKTPDOmcGkIFb5xNA746eKisQkm4yavUYh4InYM9S+VnO01w==
   dependencies:
     "@babel/template" "^7.16.7"
-    "@babel/traverse" "^7.17.0"
+    "@babel/traverse" "^7.17.3"
     "@babel/types" "^7.17.0"
 
 "@babel/highlight@^7.10.4":
@@ -310,10 +322,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.3", "@babel/parser@^7.7.0":
-  version "7.17.3"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0"
-  integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.7", "@babel/parser@^7.7.0":
+  version "7.17.7"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.7.tgz#fc19b645a5456c8d6fdb6cecd3c66c0173902800"
+  integrity sha512-bm3AQf45vR4gKggRfvJdYJ0gFLoCbsPxiFLSH6hTVYABptNHY6l9NrhnucVjQ/X+SPtLANT9lc0fFhikj+VBRA==
 
 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
   version "7.16.7"
@@ -1024,10 +1036,10 @@
   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.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
-  version "7.17.2"
-  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941"
-  integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
+"@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.7", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+  version "7.17.7"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.7.tgz#a5f3328dc41ff39d803f311cfe17703418cf9825"
+  integrity sha512-L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA==
   dependencies:
     regenerator-runtime "^0.13.4"
 
@@ -1040,7 +1052,7 @@
     "@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.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
+"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
   version "7.17.3"
   resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57"
   integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==
@@ -1445,10 +1457,10 @@
   resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.11.tgz#aeb16f50649a91af79dbe36574b66d0f9e4d9f71"
   integrity sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA==
 
-"@rails/ujs@^6.1.4":
-  version "6.1.4"
-  resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.4.tgz#093d5341595a02089ed309dec40f3c37da7b1b10"
-  integrity sha512-O3lEzL5DYbxppMdsFSw36e4BHIlfz/xusynwXGv3l2lhSlvah41qviRpsoAlKXxl37nZAqK+UUF5cnGGK45Mfw==
+"@rails/ujs@^6.1.5":
+  version "6.1.5"
+  resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.5.tgz#bb1afddd0d771f00924f44b21634969e329532e1"
+  integrity sha512-Ir4yd2fdDldWIghavPr874copVKf6OOoecKHZiFRlPtm38tFvhyxr+ywzNieXGwolF9JQe3D5GrM8ejkzUgh5Q==
 
 "@sinonjs/commons@^1.7.0":
   version "1.8.1"
@@ -1493,10 +1505,10 @@
     lodash "^4.17.15"
     redent "^3.0.0"
 
-"@testing-library/react@^12.1.3":
-  version "12.1.3"
-  resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.3.tgz#ef26c5f122661ea9b6f672b23dc6b328cadbbf26"
-  integrity sha512-oCULRXWRrBtC9m6G/WohPo1GLcLesH7T4fuKzRAKn1CWVu9BzXtqLXDDTA6KhFNNtRwLtfSMr20HFl+Qrdrvmg==
+"@testing-library/react@^12.1.4":
+  version "12.1.4"
+  resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.4.tgz#09674b117e550af713db3f4ec4c0942aa8bbf2c0"
+  integrity sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==
   dependencies:
     "@babel/runtime" "^7.12.5"
     "@testing-library/dom" "^8.0.0"
@@ -2316,10 +2328,10 @@ axe-core@^4.3.5:
   resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.5.tgz#78d6911ba317a8262bfee292aeafcc1e04b49cc5"
   integrity sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==
 
-axios@^0.26.0:
-  version "0.26.0"
-  resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.0.tgz#9a318f1c69ec108f8cd5f3c3d390366635e13928"
-  integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==
+axios@^0.26.1:
+  version "0.26.1"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
+  integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
   dependencies:
     follow-redirects "^1.14.8"
 
@@ -10952,10 +10964,10 @@ user-home@^2.0.0:
   dependencies:
     os-homedir "^1.0.0"
 
-utf-8-validate@^5.0.8:
-  version "5.0.8"
-  resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.8.tgz#4a735a61661dbb1c59a0868c397d2fe263f14e58"
-  integrity sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==
+utf-8-validate@^5.0.9:
+  version "5.0.9"
+  resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3"
+  integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==
   dependencies:
     node-gyp-build "^4.3.0"