about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.gitignore6
-rw-r--r--.prettierignore6
-rw-r--r--Dockerfile4
-rw-r--r--Gemfile11
-rw-r--r--Gemfile.lock83
-rw-r--r--Vagrantfile71
-rw-r--r--app/controllers/admin/accounts_controller.rb2
-rw-r--r--app/controllers/admin/instances_controller.rb2
-rw-r--r--app/controllers/api/v1/admin/accounts_controller.rb2
-rw-r--r--app/controllers/api/v1/filters_controller.rb6
-rw-r--r--app/javascript/flavours/glitch/actions/compose.js3
-rw-r--r--app/javascript/flavours/glitch/actions/statuses.js41
-rw-r--r--app/javascript/flavours/glitch/components/status.js6
-rw-r--r--app/javascript/flavours/glitch/components/status_content.js68
-rw-r--r--app/javascript/flavours/glitch/containers/status_container.js12
-rw-r--r--app/javascript/flavours/glitch/features/compose/components/action_bar.js66
-rw-r--r--app/javascript/flavours/glitch/features/compose/components/navigation_bar.js14
-rw-r--r--app/javascript/flavours/glitch/features/compose/containers/navigation_container.js21
-rw-r--r--app/javascript/flavours/glitch/features/status/components/detailed_status.js7
-rw-r--r--app/javascript/flavours/glitch/features/status/index.js15
-rw-r--r--app/javascript/flavours/glitch/features/ui/components/header.js31
-rw-r--r--app/javascript/flavours/glitch/initial_state.js2
-rw-r--r--app/javascript/flavours/glitch/locales/cs.js175
-rw-r--r--app/javascript/flavours/glitch/names.yml8
-rw-r--r--app/javascript/flavours/glitch/reducers/compose.js1
-rw-r--r--app/javascript/flavours/glitch/reducers/status_lists.js30
-rw-r--r--app/javascript/flavours/glitch/reducers/statuses.js6
-rw-r--r--app/javascript/flavours/glitch/styles/components/columns.scss6
-rw-r--r--app/javascript/flavours/glitch/styles/components/drawer.scss2
-rw-r--r--app/javascript/flavours/glitch/styles/components/index.scss2
-rw-r--r--app/javascript/flavours/glitch/styles/components/modal.scss3
-rw-r--r--app/javascript/flavours/glitch/styles/components/single_column.scss2
-rw-r--r--app/javascript/flavours/glitch/styles/components/status.scss10
-rw-r--r--app/javascript/flavours/glitch/styles/statuses.scss2
-rw-r--r--app/javascript/flavours/vanilla/names.yml8
-rw-r--r--app/javascript/mastodon/features/status/index.js4
-rw-r--r--app/javascript/mastodon/features/ui/components/header.js31
-rw-r--r--app/javascript/mastodon/locales/ast.json136
-rw-r--r--app/javascript/mastodon/locales/be.json22
-rw-r--r--app/javascript/mastodon/locales/bg.json66
-rw-r--r--app/javascript/mastodon/locales/br.json12
-rw-r--r--app/javascript/mastodon/locales/ca.json20
-rw-r--r--app/javascript/mastodon/locales/cs.json102
-rw-r--r--app/javascript/mastodon/locales/cy.json326
-rw-r--r--app/javascript/mastodon/locales/da.json88
-rw-r--r--app/javascript/mastodon/locales/de.json244
-rw-r--r--app/javascript/mastodon/locales/defaultMessages.json8
-rw-r--r--app/javascript/mastodon/locales/el.json10
-rw-r--r--app/javascript/mastodon/locales/en-GB.json14
-rw-r--r--app/javascript/mastodon/locales/eo.json44
-rw-r--r--app/javascript/mastodon/locales/es-AR.json2
-rw-r--r--app/javascript/mastodon/locales/es-MX.json106
-rw-r--r--app/javascript/mastodon/locales/es.json56
-rw-r--r--app/javascript/mastodon/locales/et.json52
-rw-r--r--app/javascript/mastodon/locales/fa.json14
-rw-r--r--app/javascript/mastodon/locales/fi.json62
-rw-r--r--app/javascript/mastodon/locales/fr.json4
-rw-r--r--app/javascript/mastodon/locales/gd.json4
-rw-r--r--app/javascript/mastodon/locales/gl.json26
-rw-r--r--app/javascript/mastodon/locales/hi.json94
-rw-r--r--app/javascript/mastodon/locales/is.json12
-rw-r--r--app/javascript/mastodon/locales/kk.json4
-rw-r--r--app/javascript/mastodon/locales/ko.json12
-rw-r--r--app/javascript/mastodon/locales/ku.json20
-rw-r--r--app/javascript/mastodon/locales/lt.json16
-rw-r--r--app/javascript/mastodon/locales/lv.json294
-rw-r--r--app/javascript/mastodon/locales/ml.json46
-rw-r--r--app/javascript/mastodon/locales/ms.json52
-rw-r--r--app/javascript/mastodon/locales/oc.json2
-rw-r--r--app/javascript/mastodon/locales/ro.json4
-rw-r--r--app/javascript/mastodon/locales/ru.json2
-rw-r--r--app/javascript/mastodon/locales/sco.json54
-rw-r--r--app/javascript/mastodon/locales/sk.json94
-rw-r--r--app/javascript/mastodon/locales/sr-Latn.json1114
-rw-r--r--app/javascript/mastodon/locales/sr.json622
-rw-r--r--app/javascript/mastodon/locales/th.json12
-rw-r--r--app/javascript/mastodon/locales/uk.json32
-rw-r--r--app/javascript/mastodon/locales/ur.json32
-rw-r--r--app/javascript/mastodon/locales/vi.json6
-rw-r--r--app/javascript/mastodon/locales/whitelist_de.json3
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json2
-rw-r--r--app/javascript/mastodon/locales/zh-HK.json10
-rw-r--r--app/javascript/mastodon/locales/zh-TW.json8
-rw-r--r--app/javascript/mastodon/reducers/status_lists.js30
-rw-r--r--app/javascript/mastodon/reducers/user_lists.js2
-rw-r--r--app/javascript/skins/glitch/contrast/names.yml4
-rw-r--r--app/javascript/skins/glitch/mastodon-light/names.yml4
-rw-r--r--app/javascript/skins/vanilla/contrast/names.yml4
-rw-r--r--app/javascript/skins/vanilla/mastodon-light/names.yml4
-rw-r--r--app/javascript/skins/vanilla/win95/names.yml4
-rw-r--r--app/javascript/styles/mastodon/components.scss11
-rw-r--r--app/lib/activitypub/activity/create.rb2
-rw-r--r--app/lib/activitypub/activity/update.rb4
-rw-r--r--app/lib/advanced_text_formatter.rb80
-rw-r--r--app/lib/delivery_failure_tracker.rb9
-rw-r--r--app/models/account_migration.rb2
-rw-r--r--app/models/concerns/domain_materializable.rb15
-rw-r--r--app/models/custom_filter.rb2
-rw-r--r--app/models/form/redirect.rb2
-rw-r--r--app/models/user.rb2
-rw-r--r--app/services/activitypub/fetch_featured_collection_service.rb4
-rw-r--r--app/services/activitypub/fetch_remote_account_service.rb2
-rw-r--r--app/services/activitypub/fetch_remote_actor_service.rb4
-rw-r--r--app/services/activitypub/fetch_remote_status_service.rb8
-rw-r--r--app/services/activitypub/process_account_service.rb25
-rw-r--r--app/services/activitypub/process_status_update_service.rb5
-rw-r--r--app/views/admin/settings/discovery/show.html.haml3
-rw-r--r--config/application.rb1
-rw-r--r--config/database.yml1
-rw-r--r--config/locales-glitch/cs.yml41
-rw-r--r--config/locales-glitch/simple_form.cs.yml27
-rw-r--r--config/locales/activerecord.ast.yml3
-rw-r--r--config/locales/activerecord.es-MX.yml2
-rw-r--r--config/locales/activerecord.fr-QC.yml18
-rw-r--r--config/locales/activerecord.lv.yml10
-rw-r--r--config/locales/activerecord.ms.yml23
-rw-r--r--config/locales/activerecord.ro.yml23
-rw-r--r--config/locales/activerecord.sco.yml2
-rw-r--r--config/locales/activerecord.sk.yml38
-rw-r--r--config/locales/ar.yml1
-rw-r--r--config/locales/ast.yml89
-rw-r--r--config/locales/be.yml714
-rw-r--r--config/locales/bg.yml89
-rw-r--r--config/locales/ca.yml52
-rw-r--r--config/locales/cy.yml98
-rw-r--r--config/locales/da.yml12
-rw-r--r--config/locales/de.yml188
-rw-r--r--config/locales/devise.ast.yml2
-rw-r--r--config/locales/devise.ca.yml72
-rw-r--r--config/locales/devise.cs.yml44
-rw-r--r--config/locales/devise.de.yml6
-rw-r--r--config/locales/devise.eo.yml6
-rw-r--r--config/locales/devise.et.yml2
-rw-r--r--config/locales/devise.fr-QC.yml86
-rw-r--r--config/locales/devise.it.yml140
-rw-r--r--config/locales/devise.lv.yml32
-rw-r--r--config/locales/devise.ms.yml44
-rw-r--r--config/locales/devise.sco.yml2
-rw-r--r--config/locales/devise.sk.yml18
-rw-r--r--config/locales/doorkeeper.ast.yml26
-rw-r--r--config/locales/doorkeeper.be.yml56
-rw-r--r--config/locales/doorkeeper.bg.yml16
-rw-r--r--config/locales/doorkeeper.ca.yml64
-rw-r--r--config/locales/doorkeeper.el.yml1
-rw-r--r--config/locales/doorkeeper.es-AR.yml2
-rw-r--r--config/locales/doorkeeper.et.yml14
-rw-r--r--config/locales/doorkeeper.fr-QC.yml40
-rw-r--r--config/locales/doorkeeper.gl.yml4
-rw-r--r--config/locales/doorkeeper.it.yml160
-rw-r--r--config/locales/doorkeeper.ro.yml35
-rw-r--r--config/locales/doorkeeper.sco.yml6
-rw-r--r--config/locales/doorkeeper.sk.yml37
-rw-r--r--config/locales/doorkeeper.uk.yml2
-rw-r--r--config/locales/el.yml62
-rw-r--r--config/locales/en-GB.yml34
-rw-r--r--config/locales/en.yml3
-rw-r--r--config/locales/eo.yml64
-rw-r--r--config/locales/es-AR.yml8
-rw-r--r--config/locales/es-MX.yml6
-rw-r--r--config/locales/es.yml4
-rw-r--r--config/locales/et.yml452
-rw-r--r--config/locales/fa.yml2
-rw-r--r--config/locales/fi.yml16
-rw-r--r--config/locales/fo.yml1033
-rw-r--r--config/locales/gd.yml6
-rw-r--r--config/locales/gl.yml10
-rw-r--r--config/locales/he.yml16
-rw-r--r--config/locales/is.yml40
-rw-r--r--config/locales/it.yml322
-rw-r--r--config/locales/ja.yml6
-rw-r--r--config/locales/ku.yml4
-rw-r--r--config/locales/lv.yml4
-rw-r--r--config/locales/ms.yml171
-rw-r--r--config/locales/nl.yml2
-rw-r--r--config/locales/ru.yml10
-rw-r--r--config/locales/sco.yml808
-rw-r--r--config/locales/simple_form.ast.yml10
-rw-r--r--config/locales/simple_form.be.yml10
-rw-r--r--config/locales/simple_form.bg.yml28
-rw-r--r--config/locales/simple_form.de.yml8
-rw-r--r--config/locales/simple_form.el.yml2
-rw-r--r--config/locales/simple_form.eo.yml2
-rw-r--r--config/locales/simple_form.es-AR.yml4
-rw-r--r--config/locales/simple_form.et.yml101
-rw-r--r--config/locales/simple_form.fo.yml234
-rw-r--r--config/locales/simple_form.gl.yml2
-rw-r--r--config/locales/simple_form.is.yml6
-rw-r--r--config/locales/simple_form.ku.yml12
-rw-r--r--config/locales/simple_form.lv.yml4
-rw-r--r--config/locales/simple_form.ms.yml29
-rw-r--r--config/locales/simple_form.sco.yml14
-rw-r--r--config/locales/simple_form.sr.yml159
-rw-r--r--config/locales/simple_form.th.yml4
-rw-r--r--config/locales/simple_form.uk.yml16
-rw-r--r--config/locales/sk.yml26
-rw-r--r--config/locales/sr.yml22
-rw-r--r--config/locales/th.yml56
-rw-r--r--config/locales/tr.yml4
-rw-r--r--config/locales/uk.yml28
-rw-r--r--config/locales/vi.yml4
-rw-r--r--config/locales/zh-HK.yml2
-rw-r--r--db/post_migrate/20221101190723_backfill_admin_action_logs.rb29
-rw-r--r--db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb153
-rw-r--r--db/schema.rb2
-rw-r--r--jsconfig.json7
-rw-r--r--lib/mastodon/accounts_cli.rb2
-rw-r--r--lib/tasks/tests.rake14
-rw-r--r--package.json28
-rw-r--r--spec/controllers/admin/accounts_controller_spec.rb81
-rw-r--r--spec/controllers/api/v1/admin/accounts_controller_spec.rb18
-rw-r--r--spec/controllers/api/v1/filters_controller_spec.rb26
-rw-r--r--spec/lib/advanced_text_formatter_spec.rb14
-rw-r--r--spec/models/account_migration_spec.rb43
-rw-r--r--spec/services/activitypub/process_account_service_spec.rb94
-rw-r--r--yarn.lock1233
215 files changed, 8782 insertions, 4147 deletions
diff --git a/.gitignore b/.gitignore
index c33b56466..90f25510d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,12 +44,6 @@
 /redis
 /elasticsearch
 
-# ignore Helm charts
-/chart/*.tgz
-
-# ignore Helm dependency charts
-/chart/charts/*.tgz
-
 # Ignore Apple files
 .DS_Store
 
diff --git a/.prettierignore b/.prettierignore
index de7673eb6..f72354a42 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -44,9 +44,6 @@
 /redis
 /elasticsearch
 
-# ignore Helm dependency charts
-/chart/charts/*.tgz
-
 # Ignore Apple files
 .DS_Store
 
@@ -67,9 +64,6 @@ yarn-debug.log
 # Ignore Docker option files
 docker-compose.override.yml
 
-# Ignore Helm files
-/chart
-
 # Ignore emoji map file
 /app/javascript/mastodon/features/emoji/emoji_map.json
 
diff --git a/Dockerfile b/Dockerfile
index 27fec2b5f..48df56dd3 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
 # syntax=docker/dockerfile:1.4
 # This needs to be bullseye-slim because the Ruby image is built on bullseye-slim
-ARG NODE_VERSION="16.17.1-bullseye-slim"
+ARG NODE_VERSION="16.18.1-bullseye-slim"
 
 FROM ghcr.io/moritzheiber/ruby-jemalloc:3.0.4-slim as ruby
 FROM node:${NODE_VERSION} as build
@@ -36,7 +36,7 @@ RUN apt update && \
     bundle config set --local without 'development test' && \
     bundle config set silence_root_warning true && \
     bundle install -j"$(nproc)" && \
-    yarn install --pure-lockfile
+    yarn install --pure-lockfile --network-timeout 600000
 
 FROM node:${NODE_VERSION}
 
diff --git a/Gemfile b/Gemfile
index 9843d1cee..42d30589f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,7 +3,7 @@
 source 'https://rubygems.org'
 ruby '>= 2.7.0', '< 3.1.0'
 
-gem 'pkg-config', '~> 1.4'
+gem 'pkg-config', '~> 1.5'
 gem 'rexml', '~> 3.2'
 
 gem 'puma', '~> 5.6'
@@ -18,7 +18,7 @@ gem 'makara', '~> 0.5'
 gem 'pghero', '~> 2.8'
 gem 'dotenv-rails', '~> 2.8'
 
-gem 'aws-sdk-s3', '~> 1.114', require: false
+gem 'aws-sdk-s3', '~> 1.117', require: false
 gem 'fog-core', '<= 2.1.0'
 gem 'fog-openstack', '~> 0.3', require: false
 gem 'kt-paperclip', '~> 7.1'
@@ -26,7 +26,7 @@ gem 'blurhash', '~> 0.1'
 
 gem 'active_model_serializers', '~> 0.10'
 gem 'addressable', '~> 2.8'
-gem 'bootsnap', '~> 1.14.0', require: false
+gem 'bootsnap', '~> 1.15.0', require: false
 gem 'browser'
 gem 'charlock_holmes', '~> 0.7.7'
 gem 'chewy', '~> 7.2'
@@ -66,6 +66,7 @@ gem 'oj', '~> 3.13'
 gem 'ox', '~> 2.14'
 gem 'parslet'
 gem 'posix-spawn'
+gem 'public_suffix', '~> 5.0'
 gem 'pundit', '~> 2.2'
 gem 'premailer-rails'
 gem 'rack-attack', '~> 6.6'
@@ -86,7 +87,7 @@ gem 'sidekiq-bulk', '~> 0.2.0'
 gem 'simple-navigation', '~> 4.4'
 gem 'simple_form', '~> 5.1'
 gem 'sprockets-rails', '~> 3.4', require: 'sprockets/railtie'
-gem 'stoplight', '~> 3.0.0'
+gem 'stoplight', '~> 3.0.1'
 gem 'strong_migrations', '~> 0.7'
 gem 'tty-prompt', '~> 0.23', require: false
 gem 'twitter-text', '~> 3.1.0'
@@ -115,7 +116,7 @@ end
 group :test do
   gem 'capybara', '~> 3.38'
   gem 'climate_control', '~> 0.2'
-  gem 'faker', '~> 2.23'
+  gem 'faker', '~> 3.0'
   gem 'microformats', '~> 4.4'
   gem 'rails-controller-testing', '~> 1.0'
   gem 'rspec-sidekiq', '~> 3.1'
diff --git a/Gemfile.lock b/Gemfile.lock
index 237edb61c..afc7f00a5 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -90,20 +90,20 @@ GEM
     attr_required (1.0.1)
     awrence (1.2.1)
     aws-eventstream (1.2.0)
-    aws-partitions (1.587.0)
-    aws-sdk-core (3.130.2)
+    aws-partitions (1.670.0)
+    aws-sdk-core (3.168.2)
       aws-eventstream (~> 1, >= 1.0.2)
-      aws-partitions (~> 1, >= 1.525.0)
+      aws-partitions (~> 1, >= 1.651.0)
+      aws-sigv4 (~> 1.5)
+      jmespath (~> 1, >= 1.6.1)
+    aws-sdk-kms (1.60.0)
+      aws-sdk-core (~> 3, >= 3.165.0)
       aws-sigv4 (~> 1.1)
-      jmespath (~> 1.0)
-    aws-sdk-kms (1.56.0)
-      aws-sdk-core (~> 3, >= 3.127.0)
-      aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.114.0)
-      aws-sdk-core (~> 3, >= 3.127.0)
+    aws-sdk-s3 (1.117.2)
+      aws-sdk-core (~> 3, >= 3.165.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.4)
-    aws-sigv4 (1.5.0)
+    aws-sigv4 (1.5.2)
       aws-eventstream (~> 1, >= 1.0.2)
     bcrypt (3.1.17)
     better_errors (2.9.1)
@@ -122,15 +122,15 @@ GEM
       debug_inspector (>= 0.0.1)
     blurhash (0.1.6)
       ffi (~> 1.14)
-    bootsnap (1.14.0)
+    bootsnap (1.15.0)
       msgpack (~> 1.2)
     brakeman (5.4.0)
     browser (4.2.0)
-    brpoplpush-redis_script (0.1.2)
+    brpoplpush-redis_script (0.1.3)
       concurrent-ruby (~> 1.0, >= 1.0.5)
-      redis (>= 1.0, <= 5.0)
+      redis (>= 1.0, < 6)
     builder (3.2.4)
-    bullet (7.0.3)
+    bullet (7.0.4)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
     bundler-audit (0.9.1)
@@ -182,7 +182,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    css_parser (1.7.1)
+    css_parser (1.12.0)
       addressable
     debug_inspector (1.0.0)
     devise (4.8.1)
@@ -206,7 +206,7 @@ GEM
     docile (1.3.4)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
-    doorkeeper (5.6.0)
+    doorkeeper (5.6.2)
       railties (>= 5)
     dotenv (2.8.1)
     dotenv-rails (2.8.1)
@@ -228,7 +228,7 @@ GEM
       tzinfo
     excon (0.76.0)
     fabrication (2.30.0)
-    faker (2.23.0)
+    faker (3.0.0)
       i18n (>= 1.8.11, < 2)
     faraday (1.9.3)
       faraday-em_http (~> 1.0)
@@ -329,7 +329,7 @@ GEM
       terminal-table (>= 1.5.1)
     idn-ruby (0.1.5)
     ipaddress (0.8.3)
-    jmespath (1.6.1)
+    jmespath (1.6.2)
     json (2.6.2)
     json-canonicalization (0.3.0)
     json-jwt (1.13.0)
@@ -410,11 +410,15 @@ GEM
     multi_json (1.15.0)
     multipart-post (2.1.1)
     net-ldap (0.17.1)
+    net-protocol (0.1.3)
+      timeout
     net-scp (4.0.0.rc1)
       net-ssh (>= 2.6.5, < 8.0.0)
+    net-smtp (0.3.3)
+      net-protocol
     net-ssh (7.0.1)
     nio4r (2.5.8)
-    nokogiri (1.13.9)
+    nokogiri (1.13.10)
       mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
     nsa (0.2.8)
@@ -460,14 +464,15 @@ GEM
     pg (1.4.5)
     pghero (2.8.3)
       activerecord (>= 5)
-    pkg-config (1.4.9)
+    pkg-config (1.5.1)
     posix-spawn (0.3.15)
-    premailer (1.14.2)
+    premailer (1.18.0)
       addressable
-      css_parser (>= 1.6.0)
+      css_parser (>= 1.12.0)
       htmlentities (>= 4.0.0)
-    premailer-rails (1.11.1)
+    premailer-rails (1.12.0)
       actionmailer (>= 3)
+      net-smtp
       premailer (~> 1.7, >= 1.7.9)
     private_address_check (0.5.0)
     pry (0.14.1)
@@ -484,7 +489,7 @@ GEM
     pundit (2.2.0)
       activesupport (>= 3.0.0)
     raabro (1.4.0)
-    racc (1.6.0)
+    racc (1.6.1)
     rack (2.2.4)
     rack-attack (6.6.1)
       rack (>= 1.0, < 3)
@@ -539,12 +544,14 @@ GEM
     rake (13.0.6)
     rdf (3.2.9)
       link_header (~> 0.0, >= 0.0.8)
-    rdf-normalize (0.5.0)
+    rdf-normalize (0.5.1)
       rdf (~> 3.2)
     redcarpet (3.5.1)
     redis (4.5.1)
     redis-namespace (1.9.0)
       redis (>= 4)
+    redlock (1.3.2)
+      redis (>= 3.0.0, < 6.0)
     regexp_parser (2.6.0)
     request_store (1.5.1)
       rack (>= 1.4)
@@ -622,10 +629,11 @@ GEM
       rufus-scheduler (~> 3.2)
       sidekiq (>= 4, < 7)
       tilt (>= 1.4.0)
-    sidekiq-unique-jobs (7.1.27)
+    sidekiq-unique-jobs (7.1.29)
       brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
       concurrent-ruby (~> 1.0, >= 1.0.5)
-      sidekiq (>= 5.0, < 8.0)
+      redis (< 5.0)
+      sidekiq (>= 5.0, < 7.0)
       thor (>= 0.20, < 3.0)
     simple-navigation (4.4.0)
       activesupport (>= 2.3.2)
@@ -649,9 +657,10 @@ GEM
     sshkit (1.21.2)
       net-scp (>= 1.1.2)
       net-ssh (>= 2.8.0)
-    stackprof (0.2.22)
+    stackprof (0.2.23)
     statsd-ruby (1.5.0)
-    stoplight (3.0.0)
+    stoplight (3.0.1)
+      redlock (~> 1.0)
     strong_migrations (0.7.9)
       activerecord (>= 5)
     swd (1.3.0)
@@ -665,6 +674,7 @@ GEM
       climate_control (>= 0.0.3, < 1.0)
     thor (1.2.1)
     tilt (2.0.11)
+    timeout (0.3.0)
     tpm-key_attestation (0.11.0)
       bindata (~> 2.4)
       openssl (> 2.0, < 3.1)
@@ -684,7 +694,7 @@ GEM
       unf (~> 0.1.0)
     tzinfo (2.0.5)
       concurrent-ruby (~> 1.0)
-    tzinfo-data (1.2022.6)
+    tzinfo-data (1.2022.7)
       tzinfo (>= 1.0.0)
     unf (0.1.4)
       unf_ext
@@ -727,7 +737,7 @@ GEM
     xorcist (1.1.3)
     xpath (3.2.0)
       nokogiri (~> 1.8)
-    zeitwerk (2.6.0)
+    zeitwerk (2.6.6)
 
 PLATFORMS
   ruby
@@ -737,11 +747,11 @@ DEPENDENCIES
   active_record_query_trace (~> 1.8)
   addressable (~> 2.8)
   annotate (~> 3.2)
-  aws-sdk-s3 (~> 1.114)
+  aws-sdk-s3 (~> 1.117)
   better_errors (~> 2.9)
   binding_of_caller (~> 1.0)
   blurhash (~> 0.1)
-  bootsnap (~> 1.14.0)
+  bootsnap (~> 1.15.0)
   brakeman (~> 5.4)
   browser
   bullet (~> 7.0)
@@ -766,7 +776,7 @@ DEPENDENCIES
   dotenv-rails (~> 2.8)
   ed25519 (~> 1.3)
   fabrication (~> 2.30)
-  faker (~> 2.23)
+  faker (~> 3.0)
   fast_blank (~> 1.0)
   fastimage
   fog-core (<= 2.1.0)
@@ -807,12 +817,13 @@ DEPENDENCIES
   parslet
   pg (~> 1.4)
   pghero (~> 2.8)
-  pkg-config (~> 1.4)
+  pkg-config (~> 1.5)
   posix-spawn
   premailer-rails
   private_address_check (~> 0.5)
   pry-byebug (~> 3.10)
   pry-rails (~> 0.3)
+  public_suffix (~> 5.0)
   puma (~> 5.6)
   pundit (~> 2.2)
   rack (~> 2.2.4)
@@ -847,7 +858,7 @@ DEPENDENCIES
   sprockets (~> 3.7.2)
   sprockets-rails (~> 3.4)
   stackprof
-  stoplight (~> 3.0.0)
+  stoplight (~> 3.0.1)
   strong_migrations (~> 0.7)
   thor (~> 1.2)
   tty-prompt (~> 0.23)
diff --git a/Vagrantfile b/Vagrantfile
index 0d44b4d23..043bab3e9 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -3,16 +3,14 @@
 
 ENV["PORT"] ||= "3000"
 
-$provision = <<SCRIPT
-
-cd /vagrant # This is where the host folder/repo is mounted
+$provisionA = <<SCRIPT
 
 # Add the yarn repo + yarn repo keys
 curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
 sudo apt-add-repository 'deb https://dl.yarnpkg.com/debian/ stable main'
 
 # Add repo for NodeJS
-curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
+curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
 
 # Add firewall rule to redirect 80 to PORT and save
 sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port #{ENV["PORT"]}
@@ -33,32 +31,56 @@ sudo apt-get install \
   redis-tools \
   postgresql \
   postgresql-contrib \
-  yarn \
   libicu-dev \
   libidn11-dev \
-  libreadline-dev \
-  libpam0g-dev \
+  libreadline6-dev \
+  autoconf \
+  bison \
+  build-essential \
+  ffmpeg \
+  file \
+  gcc \
+  libffi-dev \
+  libgdbm-dev \
+  libjemalloc-dev \
+  libncurses5-dev \
+  libprotobuf-dev \
+  libssl-dev \
+  libyaml-dev \
+  pkg-config \
+  protobuf-compiler \
+  zlib1g-dev \
   -y
 
 # Install rvm
-read RUBY_VERSION < .ruby-version
+sudo apt-add-repository -y ppa:rael-gc/rvm
+sudo apt-get install rvm -y
 
-curl -sSL https://rvm.io/mpapis.asc | gpg --import
-curl -sSL https://rvm.io/pkuczynski.asc | gpg --import
+sudo usermod -a -G rvm $USER
+
+SCRIPT
 
-curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer | bash -s stable --ruby=$RUBY_VERSION
-source /home/vagrant/.rvm/scripts/rvm
+$provisionB = <<SCRIPT
+
+source "/etc/profile.d/rvm.sh"
 
 # Install Ruby
-rvm reinstall ruby-$RUBY_VERSION --disable-binary
+read RUBY_VERSION < /vagrant/.ruby-version
+rvm install ruby-$RUBY_VERSION --disable-binary
 
 # Configure database
 sudo -u postgres createuser -U postgres vagrant -s
 sudo -u postgres createdb -U postgres mastodon_development
 
-# Install gems and node modules
+cd /vagrant # This is where the host folder/repo is mounted
+
+# Install gems
 gem install bundler foreman
 bundle install
+
+# Install node modules
+sudo corepack enable
+yarn set version classic
 yarn install
 
 # Build Mastodon
@@ -72,18 +94,11 @@ echo 'export $(cat "/vagrant/.env.vagrant" | xargs)' >> ~/.bash_profile
 
 SCRIPT
 
-$start = <<SCRIPT
-
-echo 'To start server'
-echo '  $ vagrant ssh -c "cd /vagrant && foreman start"'
-
-SCRIPT
-
 VAGRANTFILE_API_VERSION = "2"
 
 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 
-  config.vm.box = "ubuntu/bionic64"
+  config.vm.box = "ubuntu/focal64"
 
   config.vm.provider :virtualbox do |vb|
     vb.name = "mastodon"
@@ -100,7 +115,6 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
     # Use "virtio" network interfaces for better performance.
     vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
     vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
-
   end
 
   # This uses the vagrant-hostsupdater plugin, and lets you
@@ -118,7 +132,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
   end
 
   if config.vm.networks.any? { |type, options| type == :private_network }
-    config.vm.synced_folder ".", "/vagrant", type: "nfs", mount_options: ['rw', 'vers=3', 'tcp', 'actimeo=1']
+    config.vm.synced_folder ".", "/vagrant", type: "nfs", mount_options: ['rw', 'actimeo=1']
   else
     config.vm.synced_folder ".", "/vagrant"
   end
@@ -129,9 +143,12 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
   config.vm.network :forwarded_port, guest: 8080, host: 8080
 
   # Full provisioning script, only runs on first 'vagrant up' or with 'vagrant provision'
-  config.vm.provision :shell, inline: $provision, privileged: false
+  config.vm.provision :shell, inline: $provisionA, privileged: false, reset: true
+  config.vm.provision :shell, inline: $provisionB, privileged: false
 
-  # Start up script, runs on every 'vagrant up'
-  config.vm.provision :shell, inline: $start, run: 'always', privileged: false
+  config.vm.post_up_message = <<MESSAGE
+To start server
+  $ vagrant ssh -c "cd /vagrant && foreman start"
+MESSAGE
 
 end
diff --git a/app/controllers/admin/accounts_controller.rb b/app/controllers/admin/accounts_controller.rb
index 40bf685c5..9beb8fde6 100644
--- a/app/controllers/admin/accounts_controller.rb
+++ b/app/controllers/admin/accounts_controller.rb
@@ -55,12 +55,14 @@ module Admin
     def approve
       authorize @account.user, :approve?
       @account.user.approve!
+      log_action :approve, @account.user
       redirect_to admin_accounts_path(status: 'pending'), notice: I18n.t('admin.accounts.approved_msg', username: @account.acct)
     end
 
     def reject
       authorize @account.user, :reject?
       DeleteAccountService.new.call(@account, reserve_email: false, reserve_username: false)
+      log_action :reject, @account.user
       redirect_to admin_accounts_path(status: 'pending'), notice: I18n.t('admin.accounts.rejected_msg', username: @account.acct)
     end
 
diff --git a/app/controllers/admin/instances_controller.rb b/app/controllers/admin/instances_controller.rb
index 5c82331de..7c44e88b7 100644
--- a/app/controllers/admin/instances_controller.rb
+++ b/app/controllers/admin/instances_controller.rb
@@ -57,7 +57,7 @@ module Admin
     end
 
     def preload_delivery_failures!
-      warning_domains_map = DeliveryFailureTracker.warning_domains_map
+      warning_domains_map = DeliveryFailureTracker.warning_domains_map(@instances.map(&:domain))
 
       @instances.each do |instance|
         instance.failure_days = warning_domains_map[instance.domain]
diff --git a/app/controllers/api/v1/admin/accounts_controller.rb b/app/controllers/api/v1/admin/accounts_controller.rb
index ae7f7d076..f48300072 100644
--- a/app/controllers/api/v1/admin/accounts_controller.rb
+++ b/app/controllers/api/v1/admin/accounts_controller.rb
@@ -54,12 +54,14 @@ class Api::V1::Admin::AccountsController < Api::BaseController
   def approve
     authorize @account.user, :approve?
     @account.user.approve!
+    log_action :approve, @account.user
     render json: @account, serializer: REST::Admin::AccountSerializer
   end
 
   def reject
     authorize @account.user, :reject?
     DeleteAccountService.new.call(@account, reserve_email: false, reserve_username: false)
+    log_action :reject, @account.user
     render_empty
   end
 
diff --git a/app/controllers/api/v1/filters_controller.rb b/app/controllers/api/v1/filters_controller.rb
index 149139b40..772791b25 100644
--- a/app/controllers/api/v1/filters_controller.rb
+++ b/app/controllers/api/v1/filters_controller.rb
@@ -13,7 +13,7 @@ class Api::V1::FiltersController < Api::BaseController
 
   def create
     ApplicationRecord.transaction do
-      filter_category = current_account.custom_filters.create!(resource_params)
+      filter_category = current_account.custom_filters.create!(filter_params)
       @filter = filter_category.keywords.create!(keyword_params)
     end
 
@@ -52,11 +52,11 @@ class Api::V1::FiltersController < Api::BaseController
   end
 
   def resource_params
-    params.permit(:phrase, :expires_in, :irreversible, context: [])
+    params.permit(:phrase, :expires_in, :irreversible, :whole_word, context: [])
   end
 
   def filter_params
-    resource_params.slice(:expires_in, :irreversible, :context)
+    resource_params.slice(:phrase, :expires_in, :irreversible, :context)
   end
 
   def keyword_params
diff --git a/app/javascript/flavours/glitch/actions/compose.js b/app/javascript/flavours/glitch/actions/compose.js
index 54909b56e..7a4af4cda 100644
--- a/app/javascript/flavours/glitch/actions/compose.js
+++ b/app/javascript/flavours/glitch/actions/compose.js
@@ -93,12 +93,13 @@ export const ensureComposeIsVisible = (getState, routerHistory) => {
   }
 };
 
-export function setComposeToStatus(status, text, spoiler_text) {
+export function setComposeToStatus(status, text, spoiler_text, content_type) {
   return{
     type: COMPOSE_SET_STATUS,
     status,
     text,
     spoiler_text,
+    content_type,
   };
 };
 
diff --git a/app/javascript/flavours/glitch/actions/statuses.js b/app/javascript/flavours/glitch/actions/statuses.js
index 5930b7a16..efb4cc33b 100644
--- a/app/javascript/flavours/glitch/actions/statuses.js
+++ b/app/javascript/flavours/glitch/actions/statuses.js
@@ -34,6 +34,11 @@ export const STATUS_FETCH_SOURCE_REQUEST = 'STATUS_FETCH_SOURCE_REQUEST';
 export const STATUS_FETCH_SOURCE_SUCCESS = 'STATUS_FETCH_SOURCE_SUCCESS';
 export const STATUS_FETCH_SOURCE_FAIL    = 'STATUS_FETCH_SOURCE_FAIL';
 
+export const STATUS_TRANSLATE_REQUEST = 'STATUS_TRANSLATE_REQUEST';
+export const STATUS_TRANSLATE_SUCCESS = 'STATUS_TRANSLATE_SUCCESS';
+export const STATUS_TRANSLATE_FAIL    = 'STATUS_TRANSLATE_FAIL';
+export const STATUS_TRANSLATE_UNDO    = 'STATUS_TRANSLATE_UNDO';
+
 export function fetchStatusRequest(id, skipLoading) {
   return {
     type: STATUS_FETCH_REQUEST,
@@ -101,7 +106,7 @@ export const editStatus = (id, routerHistory) => (dispatch, getState) => {
   api(getState).get(`/api/v1/statuses/${id}/source`).then(response => {
     dispatch(fetchStatusSourceSuccess());
     ensureComposeIsVisible(getState, routerHistory);
-    dispatch(setComposeToStatus(status, response.data.text, response.data.spoiler_text));
+    dispatch(setComposeToStatus(status, response.data.text, response.data.spoiler_text, response.data.content_type));
   }).catch(error => {
     dispatch(fetchStatusSourceFail(error));
   });
@@ -310,4 +315,36 @@ export function toggleStatusCollapse(id, isCollapsed) {
     id,
     isCollapsed,
   };
-}
+};
+
+export const translateStatus = id => (dispatch, getState) => {
+  dispatch(translateStatusRequest(id));
+
+  api(getState).post(`/api/v1/statuses/${id}/translate`).then(response => {
+    dispatch(translateStatusSuccess(id, response.data));
+  }).catch(error => {
+    dispatch(translateStatusFail(id, error));
+  });
+};
+
+export const translateStatusRequest = id => ({
+  type: STATUS_TRANSLATE_REQUEST,
+  id,
+});
+
+export const translateStatusSuccess = (id, translation) => ({
+  type: STATUS_TRANSLATE_SUCCESS,
+  id,
+  translation,
+});
+
+export const translateStatusFail = (id, error) => ({
+  type: STATUS_TRANSLATE_FAIL,
+  id,
+  error,
+});
+
+export const undoStatusTranslation = id => ({
+  type: STATUS_TRANSLATE_UNDO,
+  id,
+});
diff --git a/app/javascript/flavours/glitch/components/status.js b/app/javascript/flavours/glitch/components/status.js
index 800832dc8..4041b4819 100644
--- a/app/javascript/flavours/glitch/components/status.js
+++ b/app/javascript/flavours/glitch/components/status.js
@@ -83,6 +83,7 @@ class Status extends ImmutablePureComponent {
     onEmbed: PropTypes.func,
     onHeightChange: PropTypes.func,
     onToggleHidden: PropTypes.func,
+    onTranslate: PropTypes.func,
     onInteractionModal: PropTypes.func,
     muted: PropTypes.bool,
     hidden: PropTypes.bool,
@@ -472,6 +473,10 @@ class Status extends ImmutablePureComponent {
     this.node = c;
   }
 
+  handleTranslate = () => {
+    this.props.onTranslate(this.props.status);
+  }
+
   renderLoadingMediaGallery () {
     return <div className='media-gallery' style={{ height: '110px' }} />;
   }
@@ -788,6 +793,7 @@ class Status extends ImmutablePureComponent {
             mediaIcons={contentMediaIcons}
             expanded={isExpanded}
             onExpandedToggle={this.handleExpandedToggle}
+            onTranslate={this.handleTranslate}
             parseClick={parseClick}
             disabled={!router}
             tagLinks={settings.get('tag_misleading_links')}
diff --git a/app/javascript/flavours/glitch/components/status_content.js b/app/javascript/flavours/glitch/components/status_content.js
index c618cedca..c59f42220 100644
--- a/app/javascript/flavours/glitch/components/status_content.js
+++ b/app/javascript/flavours/glitch/components/status_content.js
@@ -1,11 +1,11 @@
 import React from 'react';
 import ImmutablePropTypes from 'react-immutable-proptypes';
 import PropTypes from 'prop-types';
-import { FormattedMessage } from 'react-intl';
+import { FormattedMessage, injectIntl } from 'react-intl';
 import Permalink from './permalink';
 import classnames from 'classnames';
 import Icon from 'flavours/glitch/components/icon';
-import { autoPlayGif } from 'flavours/glitch/initial_state';
+import { autoPlayGif, languages as preloadedLanguages, translationEnabled } from 'flavours/glitch/initial_state';
 import { decode as decodeIDNA } from 'flavours/glitch/utils/idna';
 
 const textMatchesTarget = (text, origin, host) => {
@@ -62,13 +62,56 @@ const isLinkMisleading = (link) => {
   return !(textMatchesTarget(text, origin, host) || textMatchesTarget(text.toLowerCase(), origin, host));
 };
 
-export default class StatusContent extends React.PureComponent {
+class TranslateButton extends React.PureComponent {
+
+  static propTypes = {
+    translation: ImmutablePropTypes.map,
+    onClick: PropTypes.func,
+  };
+
+  render () {
+    const { translation, onClick } = this.props;
+
+    if (translation) {
+      const language     = preloadedLanguages.find(lang => lang[0] === translation.get('detected_source_language'));
+      const languageName = language ? language[2] : translation.get('detected_source_language');
+      const provider     = translation.get('provider');
+
+      return (
+        <div className='translate-button'>
+          <div className='translate-button__meta'>
+            <FormattedMessage id='status.translated_from_with' defaultMessage='Translated from {lang} using {provider}' values={{ lang: languageName, provider }} />
+          </div>
+
+          <button className='link-button' onClick={onClick}>
+            <FormattedMessage id='status.show_original' defaultMessage='Show original' />
+          </button>
+        </div>
+      );
+    }
+
+    return (
+      <button className='status__content__read-more-button' onClick={onClick}>
+        <FormattedMessage id='status.translate' defaultMessage='Translate' />
+      </button>
+    );
+  }
+
+}
+
+export default @injectIntl
+class StatusContent extends React.PureComponent {
+
+  static contextTypes = {
+    identity: PropTypes.object,
+  };
 
   static propTypes = {
     status: ImmutablePropTypes.map.isRequired,
     expanded: PropTypes.bool,
     collapsed: PropTypes.bool,
     onExpandedToggle: PropTypes.func,
+    onTranslate: PropTypes.func,
     media: PropTypes.node,
     extraMedia: PropTypes.node,
     mediaIcons: PropTypes.arrayOf(PropTypes.string),
@@ -77,6 +120,7 @@ export default class StatusContent extends React.PureComponent {
     onUpdate: PropTypes.func,
     tagLinks: PropTypes.bool,
     rewriteMentions: PropTypes.string,
+    intl: PropTypes.object,
   };
 
   static defaultProps = {
@@ -249,6 +293,10 @@ export default class StatusContent extends React.PureComponent {
     }
   }
 
+  handleTranslate = () => {
+    this.props.onTranslate();
+  }
+
   setContentsRef = (c) => {
     this.contentsNode = c;
   }
@@ -263,18 +311,24 @@ export default class StatusContent extends React.PureComponent {
       disabled,
       tagLinks,
       rewriteMentions,
+      intl,
     } = this.props;
 
     const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden;
+    const renderTranslate = translationEnabled && this.context.identity.signedIn && this.props.onTranslate && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && status.get('language') !== null && intl.locale !== status.get('language');
 
-    const content = { __html: status.get('contentHtml') };
+    const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') };
     const spoilerContent = { __html: status.get('spoilerHtml') };
-    const lang = status.get('language');
+    const lang = status.get('translation') ? intl.locale : status.get('language');
     const classNames = classnames('status__content', {
       'status__content--with-action': parseClick && !disabled,
       'status__content--with-spoiler': status.get('spoiler_text').length > 0,
     });
 
+    const translateButton = renderTranslate && (
+      <TranslateButton onClick={this.handleTranslate} translation={status.get('translation')} />
+    );
+
     if (status.get('spoiler_text').length > 0) {
       let mentionsPlaceholder = '';
 
@@ -350,11 +404,11 @@ export default class StatusContent extends React.PureComponent {
               onMouseLeave={this.handleMouseLeave}
               lang={lang}
             />
+            {!hidden && translateButton}
             {media}
           </div>
 
           {extraMedia}
-
         </div>
       );
     } else if (parseClick) {
@@ -375,6 +429,7 @@ export default class StatusContent extends React.PureComponent {
             onMouseLeave={this.handleMouseLeave}
             lang={lang}
           />
+          {translateButton}
           {media}
           {extraMedia}
         </div>
@@ -395,6 +450,7 @@ export default class StatusContent extends React.PureComponent {
             onMouseLeave={this.handleMouseLeave}
             lang={lang}
           />
+          {translateButton}
           {media}
           {extraMedia}
         </div>
diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js
index c12b2e614..947573fc7 100644
--- a/app/javascript/flavours/glitch/containers/status_container.js
+++ b/app/javascript/flavours/glitch/containers/status_container.js
@@ -23,7 +23,9 @@ import {
   deleteStatus,
   hideStatus,
   revealStatus,
-  editStatus
+  editStatus,
+  translateStatus,
+  undoStatusTranslation,
 } from 'flavours/glitch/actions/statuses';
 import {
   initAddFilter,
@@ -187,6 +189,14 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({
     dispatch(editStatus(status.get('id'), history));
   },
 
+  onTranslate (status) {
+    if (status.get('translation')) {
+      dispatch(undoStatusTranslation(status.get('id')));
+    } else {
+      dispatch(translateStatus(status.get('id')));
+    }
+  },
+
   onDirect (account, router) {
     dispatch(directCompose(account, router));
   },
diff --git a/app/javascript/flavours/glitch/features/compose/components/action_bar.js b/app/javascript/flavours/glitch/features/compose/components/action_bar.js
new file mode 100644
index 000000000..267c0ba69
--- /dev/null
+++ b/app/javascript/flavours/glitch/features/compose/components/action_bar.js
@@ -0,0 +1,66 @@
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import PropTypes from 'prop-types';
+import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
+import { defineMessages, injectIntl } from 'react-intl';
+import { preferencesLink, profileLink } from 'flavours/glitch/utils/backend_links';
+
+const messages = defineMessages({
+  edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' },
+  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
+  preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
+  follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
+  favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
+  lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
+  blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
+  domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },
+  mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
+  filters: { id: 'navigation_bar.filters', defaultMessage: 'Muted words' },
+  logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
+  bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' },
+});
+
+export default @injectIntl
+class ActionBar extends React.PureComponent {
+
+  static propTypes = {
+    account: ImmutablePropTypes.map.isRequired,
+    onLogout: PropTypes.func.isRequired,
+    intl: PropTypes.object.isRequired,
+  };
+
+  handleLogout = () => {
+    this.props.onLogout();
+  }
+
+  render () {
+    const { intl } = this.props;
+
+    let menu = [];
+
+    menu.push({ text: intl.formatMessage(messages.edit_profile), href: profileLink });
+    menu.push({ text: intl.formatMessage(messages.preferences), href: preferencesLink });
+    menu.push({ text: intl.formatMessage(messages.pins), to: '/pinned' });
+    menu.push(null);
+    menu.push({ text: intl.formatMessage(messages.follow_requests), to: '/follow_requests' });
+    menu.push({ text: intl.formatMessage(messages.favourites), to: '/favourites' });
+    menu.push({ text: intl.formatMessage(messages.bookmarks), to: '/bookmarks' });
+    menu.push({ text: intl.formatMessage(messages.lists), to: '/lists' });
+    menu.push(null);
+    menu.push({ text: intl.formatMessage(messages.mutes), to: '/mutes' });
+    menu.push({ text: intl.formatMessage(messages.blocks), to: '/blocks' });
+    menu.push({ text: intl.formatMessage(messages.domain_blocks), to: '/domain_blocks' });
+    menu.push({ text: intl.formatMessage(messages.filters), href: '/filters' });
+    menu.push(null);
+    menu.push({ text: intl.formatMessage(messages.logout), action: this.handleLogout });
+
+    return (
+      <div className='compose__action-bar'>
+        <div className='compose__action-bar-dropdown'>
+          <DropdownMenuContainer items={menu} icon='ellipsis-v' size={18} direction='right' />
+        </div>
+      </div>
+    );
+  }
+
+}
diff --git a/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js b/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js
index ba73ed553..1a68f1e12 100644
--- a/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js
+++ b/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js
@@ -1,5 +1,7 @@
 import React from 'react';
+import PropTypes from 'prop-types';
 import ImmutablePropTypes from 'react-immutable-proptypes';
+import ActionBar from './action_bar';
 import Avatar from 'flavours/glitch/components/avatar';
 import Permalink from 'flavours/glitch/components/permalink';
 import { FormattedMessage } from 'react-intl';
@@ -10,11 +12,12 @@ export default class NavigationBar extends ImmutablePureComponent {
 
   static propTypes = {
     account: ImmutablePropTypes.map.isRequired,
+    onLogout: PropTypes.func.isRequired,
   };
 
   render () {
     return (
-      <div className='drawer--account'>
+      <div className='navigation-bar'>
         <Permalink className='avatar' href={this.props.account.get('url')} to={`/@${this.props.account.get('acct')}`}>
           <span style={{ display: 'none' }}>{this.props.account.get('acct')}</span>
           <Avatar account={this.props.account} size={48} />
@@ -28,11 +31,16 @@ export default class NavigationBar extends ImmutablePureComponent {
           { profileLink !== undefined && (
             <a
               className='edit'
-              href={ profileLink }
+              href={profileLink}
             ><FormattedMessage id='navigation_bar.edit_profile' defaultMessage='Edit profile' /></a>
           )}
         </div>
+
+        <div className='navigation-bar__actions'>
+          <ActionBar account={this.props.account} onLogout={this.props.onLogout} />
+        </div>
       </div>
     );
-  };
+  }
+
 }
diff --git a/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js b/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js
index 0e1400261..89036adcd 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js
+++ b/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js
@@ -1,11 +1,30 @@
 import { connect }   from 'react-redux';
+import { defineMessages, injectIntl } from 'react-intl';
 import NavigationBar from '../components/navigation_bar';
+import { logOut } from 'flavours/glitch/utils/log_out';
+import { openModal } from 'flavours/glitch/actions/modal';
 import { me } from 'flavours/glitch/initial_state';
 
+const messages = defineMessages({
+  logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
+  logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },
+});
+
 const mapStateToProps = state => {
   return {
     account: state.getIn(['accounts', me]),
   };
 };
 
-export default connect(mapStateToProps)(NavigationBar);
+const mapDispatchToProps = (dispatch, { intl }) => ({
+  onLogout () {
+    dispatch(openModal('CONFIRM', {
+      message: intl.formatMessage(messages.logoutMessage),
+      confirm: intl.formatMessage(messages.logoutConfirm),
+      closeWhenConfirm: false,
+      onConfirm: () => logOut(),
+    }));
+  },
+});
+
+export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(NavigationBar));
diff --git a/app/javascript/flavours/glitch/features/status/components/detailed_status.js b/app/javascript/flavours/glitch/features/status/components/detailed_status.js
index 46770930f..7d2c2aace 100644
--- a/app/javascript/flavours/glitch/features/status/components/detailed_status.js
+++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.js
@@ -34,6 +34,7 @@ class DetailedStatus extends ImmutablePureComponent {
     onOpenMedia: PropTypes.func.isRequired,
     onOpenVideo: PropTypes.func.isRequired,
     onToggleHidden: PropTypes.func,
+    onTranslate: PropTypes.func.isRequired,
     expanded: PropTypes.bool,
     measureHeight: PropTypes.bool,
     onHeightChange: PropTypes.func,
@@ -112,6 +113,11 @@ class DetailedStatus extends ImmutablePureComponent {
     window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes');
   }
 
+  handleTranslate = () => {
+    const { onTranslate, status } = this.props;
+    onTranslate(status);
+  }
+
   render () {
     const status = (this.props.status && this.props.status.get('reblog')) ? this.props.status.get('reblog') : this.props.status;
     const { expanded, onToggleHidden, settings, usingPiP, intl } = this.props;
@@ -305,6 +311,7 @@ class DetailedStatus extends ImmutablePureComponent {
             expanded={expanded}
             collapsed={false}
             onExpandedToggle={onToggleHidden}
+            onTranslate={this.handleTranslate}
             parseClick={this.parseClick}
             onUpdate={this.handleChildUpdate}
             tagLinks={settings.get('tag_misleading_links')}
diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js
index aaa9c7928..e190652b0 100644
--- a/app/javascript/flavours/glitch/features/status/index.js
+++ b/app/javascript/flavours/glitch/features/status/index.js
@@ -33,7 +33,9 @@ import {
   deleteStatus,
   editStatus,
   hideStatus,
-  revealStatus
+  revealStatus,
+  translateStatus,
+  undoStatusTranslation,
 } from 'flavours/glitch/actions/statuses';
 import { initMuteModal } from 'flavours/glitch/actions/mutes';
 import { initBlockModal } from 'flavours/glitch/actions/blocks';
@@ -437,6 +439,16 @@ class Status extends ImmutablePureComponent {
     this.setState({ isExpanded: !isExpanded, threadExpanded: !isExpanded });
   }
 
+  handleTranslate = status => {
+    const { dispatch } = this.props;
+
+    if (status.get('translation')) {
+      dispatch(undoStatusTranslation(status.get('id')));
+    } else {
+      dispatch(translateStatus(status.get('id')));
+    }
+  }
+
   handleBlockClick = (status) => {
     const { dispatch } = this.props;
     const account = status.get('account');
@@ -666,6 +678,7 @@ class Status extends ImmutablePureComponent {
                   onOpenMedia={this.handleOpenMedia}
                   expanded={isExpanded}
                   onToggleHidden={this.handleToggleHidden}
+                  onTranslate={this.handleTranslate}
                   domain={domain}
                   showMedia={this.state.showMedia}
                   onToggleMediaVisibility={this.handleToggleMediaVisibility}
diff --git a/app/javascript/flavours/glitch/features/ui/components/header.js b/app/javascript/flavours/glitch/features/ui/components/header.js
index 891f7fc07..d9ad94961 100644
--- a/app/javascript/flavours/glitch/features/ui/components/header.js
+++ b/app/javascript/flavours/glitch/features/ui/components/header.js
@@ -7,6 +7,7 @@ import Avatar from 'flavours/glitch/components/avatar';
 import Permalink from 'flavours/glitch/components/permalink';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
+import { openModal } from 'flavours/glitch/actions/modal';
 
 const Account = connect(state => ({
   account: state.getIn(['accounts', me]),
@@ -16,7 +17,14 @@ const Account = connect(state => ({
   </Permalink>
 ));
 
-export default @withRouter
+const mapDispatchToProps = (dispatch) => ({
+  openClosedRegistrationsModal() {
+    dispatch(openModal('CLOSED_REGISTRATIONS'));
+  },
+});
+
+export default @connect(null, mapDispatchToProps)
+@withRouter
 class Header extends React.PureComponent {
 
   static contextTypes = {
@@ -24,12 +32,13 @@ class Header extends React.PureComponent {
   };
 
   static propTypes = {
+    openClosedRegistrationsModal: PropTypes.func,
     location: PropTypes.object,
   };
 
   render () {
     const { signedIn } = this.context.identity;
-    const { location } = this.props;
+    const { location, openClosedRegistrationsModal } = this.props;
 
     let content;
 
@@ -41,10 +50,26 @@ class Header extends React.PureComponent {
         </>
       );
     } else {
+      let signupButton;
+
+      if (registrationsOpen) {
+        signupButton = (
+          <a href='/auth/sign_up' className='button button-tertiary'>
+            <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+          </a>
+        );
+      } else {
+        signupButton = (
+          <button className='button button-tertiary' onClick={openClosedRegistrationsModal}>
+            <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+          </button>
+        );
+      }
+
       content = (
         <>
           <a href='/auth/sign_in' className='button'><FormattedMessage id='sign_in_banner.sign_in' defaultMessage='Sign in' /></a>
-          <a href={registrationsOpen ? '/auth/sign_up' : 'https://joinmastodon.org/servers'} className='button button-tertiary'><FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' /></a>
+          {signupButton}
         </>
       );
     }
diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js
index 5be177ced..bbf25c8a8 100644
--- a/app/javascript/flavours/glitch/initial_state.js
+++ b/app/javascript/flavours/glitch/initial_state.js
@@ -79,6 +79,7 @@
  * @property {boolean} use_blurhash
  * @property {boolean=} use_pending_items
  * @property {string} version
+ * @property {boolean} translation_enabled
  * @property {object} local_settings
  */
 
@@ -137,6 +138,7 @@ export const unfollowModal = getMeta('unfollow_modal');
 export const useBlurhash = getMeta('use_blurhash');
 export const usePendingItems = getMeta('use_pending_items');
 export const version = getMeta('version');
+export const translationEnabled = getMeta('translation_enabled');
 export const languages = initialState?.languages;
 
 // Glitch-soc-specific settings
diff --git a/app/javascript/flavours/glitch/locales/cs.js b/app/javascript/flavours/glitch/locales/cs.js
index ac7db0327..e789facb0 100644
--- a/app/javascript/flavours/glitch/locales/cs.js
+++ b/app/javascript/flavours/glitch/locales/cs.js
@@ -1,7 +1,180 @@
 import inherited from 'mastodon/locales/cs.json';
 
 const messages = {
-  //  No translations available.
+  'about.fork_disclaimer': 'Glitch-soc je svobodný software s otevřeným zdrojovým kódem založený na Mastodonu.',
+  'settings.layout_opts': 'Možnosti rozvržení',
+  'settings.layout': 'Rozložení:',
+  'layout.current_is': 'Nastavené rozložení je:',
+  'layout.auto': 'Automatické',
+  'layout.desktop': 'Desktop',
+  'layout.mobile': 'Mobil',
+  'layout.hint.auto': 'Vybrat rozložení automaticky v závislosti na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.',
+  'layout.hint.desktop': 'Použít vícesloupcové rozložení nezávisle na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.',
+  'layout.hint.single': 'Použít jednosloupcové rozložení nezávisle na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.',
+  'navigation_bar.app_settings': 'Nastavení aplikace',
+  'navigation_bar.featured_users': 'Vybraní uživatelé',
+  'endorsed_accounts_editor.endorsed_accounts': 'Vybrané účty',
+  'navigation_bar.info': 'Rozšířené informace',
+  'navigation_bar.misc': 'Různé',
+  'navigation_bar.keyboard_shortcuts': 'Klávesové zkratky',
+  'getting_started.onboarding': 'Ukaž mi to tu', 
+  'onboarding.skip': 'Přeskočit',
+  'onboarding.next': 'Další',
+  'onboarding.done': 'Hotovo',
+  'onboarding.page_one.federation': '{domain} je \'instance\' Mastodonu. Mastodon je síť nezávislých serverů, které jsou spolu propojené do jedné velké sociální sítě. Těmto serverům říkáme instance.',
+  'onboarding.page_one.handle': 'Jste na instanci {domain}, takže celá adresa vašeho profilu je {handle}',
+  'onboarding.page_one.welcome': 'Vítá vás {domain}!',
+  'onboarding.page_two.compose': 'Příspěvky se píší v levém sloupci. Pomocí ikon pod příspěvkem k němu můžete připojit obrázky, změnit úroveň soukromí nebo přidat varování o obsahu.',
+  'onboarding.page_three.search': 'Pomocí vyhledávací lišty můžete hledat lidi nebo hashtagy. Pokud hledáte někoho z jiné instance, musíte použít celou adresu jeho profilu.',
+  'onboarding.page_three.profile': 'Upravte si svůj profil a nastavte si profilový obrázek, jméno, a krátký text o sobě. Naleznete tam i další možnosti nastavení.',
+  'onboarding.page_four.home': 'Domovská časová osa zobrazuje příspěvky od lidí, které sledujete.',
+  'onboarding.page_four.notifications': 'Notifikace se zobrazí, když s vámi někdo interaguje.',
+  'onboarding.page_five.public_timelines': 'Místní časová osa zobrazuje veřejné příspěvky všech uživatelů instance {domain}. Federovaná časová osa zobrazí příspěvky od všech, koho uživatelé instance {domain} sledují. Tyto veřejné časové osy jsou skvělý způsob, jak objevit nové lidi.',
+  'onboarding.page_six.almost_done': 'Skoro hotovo...',
+  'onboarding.page_six.github': 'Na serveru {domain} běží Glitchsoc. Glitchsoc je přátelský {fork} programu {Mastodon}, a je kompatibilní s jakoukoliv jinou mastodoní instancí nebo aplikací. Glitchsoc je zcela svobodný a má otevřený zdrojový kód. Na stránce {github} můžete hlásit chyby, žádat o nové funkce, nebo ke kódu vlastnoručně přispět.',
+  'onboarding.page_six.apps_available': 'Jsou dostupné {apps} pro iOS, Android i jiné platformy.',
+  'onboarding.page_six.various_app': 'mobilní aplikace',
+  'onboarding.page_six.appetoot': 'Veselé mastodonění!',
+  'settings.auto_collapse': 'Automaticky sbalit',
+  'settings.auto_collapse_all': 'Všechno',
+  'settings.auto_collapse_lengthy': 'Dlouhé příspěvky',
+  'settings.auto_collapse_media': 'Příspěvky s přílohami',
+  'settings.auto_collapse_notifications': 'Oznámení',
+  'settings.auto_collapse_reblogs': 'Boosty',
+  'settings.auto_collapse_replies': 'Odpovědi',
+  'settings.show_action_bar': 'Zobrazit ve sbalených příspěvcích tlačítka s akcemi',
+  'settings.close': 'Zavřít',
+  'settings.collapsed_statuses': 'Sbalené příspěvky',
+  'settings.confirm_boost_missing_media_description': 'Zobrazit potvrzovací dialog před boostnutím příspěvku s chybějícími popisky obrázků',
+  'boost_modal.missing_description': 'Příspěvek obsahuje obrázky bez popisků',
+  'settings.enable_collapsed': 'Povolit sbalené příspěvky',
+  'settings.enable_collapsed_hint': 'U sbalených příspěvků je část jejich obsahu skrytá, aby zabraly méně místa na obrazovce. (Tohle není stejná funkce jako varování o obsahu.)',
+  'settings.general': 'Obecné',
+  'settings.hicolor_privacy_icons': 'Barevné ikony soukromí',
+  'settings.hicolor_privacy_icons.hint': 'Zobrazit ikony úrovně soukromí příspěvků v jasných, snadno rozlišitelných barvách',
+  'settings.image_backgrounds': 'Obrázkové pozadí',
+  'settings.image_backgrounds_media': 'Náhled médií ve sbalených příspěvcích',
+  'settings.image_backgrounds_media_hint': 'Pokud jsou k příspěvku přiložena média, použije se první z nich jako pozadí', 
+  'settings.image_backgrounds_users': 'Nastavit sbaleným příspěvkům obrázkové pozadí',
+  'settings.inline_preview_cards': 'Zobrazit v časové ose náhledy externích odkazů',
+  'settings.media': 'Média',
+  'settings.media_letterbox': 'Neořezávat obrázky',
+  'settings.media_letterbox_hint': 'Místo výřezu obrázku zobrazit obrázek celý, doplněný podle potřeby o prázdné okraje',
+  'settings.media_fullwidth': 'Zobrazit náhledy v plné šířce',
+  'settings.notifications_opts': 'Možnosti oznámení',
+  'settings.notifications.tab_badge': 'Zobrazit počet nepřečtených oznámení',
+  'settings.notifications.tab_badge.hint': 'Počet nepřečtených oznámení se viditelně zobrazí na hlavní stránce (pokud není seznam oznámení viditelný)',
+  'settings.notifications.favicon_badge': 'Zobrazit počet na ikoně serveru',
+  'settings.notifications.favicon_badge.hint': 'Zobrazí počet nepřečtených oznámení na ikoně serveru',
+  'settings.preferences': 'Předvolby',
+  'settings.rewrite_mentions': 'Přepsat zmínky v zobrazených příspěvcích',
+  'settings.rewrite_mentions_no': 'Nepřepisovat zmínky',
+  'settings.rewrite_mentions_acct': 'Přepsat uživatelským jménem a doménou (pokud je účet na jiném serveru)',
+  'settings.rewrite_mentions_username': 'Přepsat uživatelským jménem',
+  'settings.show_reply_counter': 'Zobrazit odhad počtu odpovědí',
+  'settings.status_icons': 'Ikony u příspěvků',
+  'settings.status_icons_language': 'Indikace jazyk',
+  'settings.status_icons_reply': 'Indikace odpovědi',
+  'settings.status_icons_local_only': 'Indikace lokálního příspěvku',
+  'settings.status_icons_media': 'Indikace obrázků a anket',
+  'settings.status_icons_visibility': 'Indikace úrovně soukromí',
+  'settings.tag_misleading_links': 'Označit zavádějící odkazy',
+  'settings.tag_misleading_links.hint': 'Zobrazit skutečný cíl u každého odkazu, který ho explicitně nezmiňuje',
+  'settings.wide_view': 'Široké sloupce (pouze v režimu Desktop)',
+  'settings.wide_view_hint': 'Sloupce se roztáhnout, aby lépe vyplnily dostupný prostor.',
+  'settings.navbar_under': 'Navigační lišta vespod (pouze v režimu Mobil)',
+  'settings.compose_box_opts': 'Editační pole',
+  'settings.always_show_spoilers_field': 'Vždy zobrazit pole pro varování o obsahu',
+  'settings.prepend_cw_re': 'Při odpovídání přidat před varování o obsahu “re: ”',
+  'settings.preselect_on_reply': 'Při odpovědi označit uživatelská jména',
+  'settings.preselect_on_reply_hint': 'Při odpovídání na konverzaci s více účastníky se jména všech kromě prvního označí, aby šla jednoduše smazat',
+  'settings.confirm_missing_media_description': 'Zobrazit potvrzovací dialog při odesílání příspěvku, ve kterém chybí popisky obrázků',
+  'settings.confirm_before_clearing_draft': 'Zobrazit potvrzovací dialog před přepsáním právě vytvářené zprávy',
+  'settings.show_content_type_choice': 'Zobrazit volbu formátu příspěvku',
+  'settings.side_arm': 'Vedlejší odesílací tlačítko:',
+  'settings.side_arm.none': 'Žádné',
+  'settings.side_arm_reply_mode': 'Při odpovídání na příspěvek by vedlejší odesílací tlačítko mělo:',  
+  'settings.side_arm_reply_mode.keep': 'Použít svou nastavenou úroveň soukromí',
+  'settings.side_arm_reply_mode.copy': 'Použít úroveň soukromí příspěvku, na který odpovídáte',
+  'settings.side_arm_reply_mode.restrict': 'Zvýšit úroveň soukromí nejméně na úroveň příspěvku, na který odpovídáte',  
+  'settings.content_warnings': 'Varování o obsahu',
+  'settings.content_warnings_shared_state': 'Zobrazit/schovat všechny kopie naráz',
+  'settings.content_warnings_shared_state_hint': 'Tlačítko varování o obsahu bude mít efekt na všechny kopie příspěvku naráz, stejně jako na běžném Mastodonu. Nebude pak možné automaticky sbalit jakoukoliv kopii příspěvku, která má rozbalené varování o obsahu',
+  'settings.content_warnings_media_outside': 'Zobrazit obrázky a videa mimo varování o obsahu',
+  'settings.content_warnings_media_outside_hint': 'Obrázky a videa z příspěvku s varováním o obsahu se zobrazí se separátním přepínačem zobrazení, stejně jako na běžném Mastodonu.',
+  'settings.content_warnings_unfold_opts': 'Možnosti automatického rozbalení',
+  'settings.enable_content_warnings_auto_unfold': 'Vždy rozbalit příspěvky označené varováním o obsahu',
+  'settings.deprecated_setting': 'Tato možnost se nyní nastavuje v {settings_page_link}',
+  'settings.shared_settings_link': 'předvolbách Mastodonu',
+  'settings.content_warnings_filter': 'Tato varování o obsahu automaticky nerozbalovat:',
+  'settings.content_warnings.regexp': 'Regulární výraz',
+  'settings.media_reveal_behind_cw': 'Automaticky zobrazit média označená varováním o obsahu',
+  'settings.pop_in_player': 'Povolit plovoucí okno přehrávače',
+  'settings.pop_in_position': 'Pozice plovoucího okna:',
+  'settings.pop_in_left': 'Vlevo',
+  'settings.pop_in_right': 'Vpravo',
+ 
+  
+  'status.collapse': 'Sbalit',
+  'status.uncollapse': 'Rozbalit',  
+  'status.in_reply_to': 'Tento příspěvek je odpověď',
+  'status.has_preview_card': 'Obsahuje náhled odkazu',
+  'status.has_pictures': 'Obsahuje obrázky',
+  'status.is_poll': 'Tento příspěvek je anketa',
+  'status.has_video': 'Obsahuje video',
+  'status.has_audio': 'Obsahuje audio',
+  'status.local_only': 'Viditelné pouze z vaší instance',
+
+  'media_gallery.sensitive': 'Citlivý obsah',
+
+  'favourite_modal.combo': 'Příště můžete pro přeskočení stisknout {combo}',
+
+  'home.column_settings.show_direct': 'Zobrazit přímé zprávy',
+
+  'notification_purge.start': 'Čistící režim',
+  'notifications.mark_as_read': 'Označit všechna oznámení jako přečtená',
+
+  'notification.markForDeletion': 'Označit pro smazání',
+  'notifications.clear': 'Vymazat všechna oznámení',
+  'notifications.marked_clear_confirmation': 'Určitě chcete trvale smazat všechna vybraná oznámení?',
+  'notifications.marked_clear': 'Smazat vybraná oznámení',
+
+  'notification_purge.btn_all': 'Vybrat\nvše',
+  'notification_purge.btn_none': 'Nevybrat\nnic',
+  'notification_purge.btn_invert': 'Obrátit\nvýběr',
+  'notification_purge.btn_apply': 'Smazat\nvybrané',
+
+  'compose.attach.upload': 'Nahrát soubor',
+  'compose.attach.doodle': 'Něco namalovat',
+  'compose.attach': 'Připojit...',
+
+  'advanced_options.local-only.short': 'Lokální příspěvek',
+  'advanced_options.local-only.long': 'Neposílat na jiné servery',
+  'advanced_options.local-only.tooltip': 'Tento příspěvek je pouze lokální',
+  'advanced_options.icon_title': 'Pokročilá nastavení',
+  'advanced_options.threaded_mode.short': 'Režim vlákna',
+  'advanced_options.threaded_mode.long': 'Po odeslání automaticky otevře pole pro odpověď',
+  'advanced_options.threaded_mode.tooltip': 'Režim vlákna je zapnutý',
+  
+  'home.column_settings.advanced': 'Pokročilé',
+  'home.column_settings.filter_regex': 'Filtrovat podle regulárních výrazů',
+  
+  'compose_form.poll.single_choice': 'Povolit jednu odpověď',
+  'compose_form.poll.multiple_choices': 'Povolit více odpovědí',
+  
+  'compose.content-type.plain': 'Prostý text',
+  'content-type.change': 'Formát příspěvku',
+  'compose_form.spoiler': 'Přidat varování o obsahu',
+  
+  'direct.group_by_conversations': 'Seskupit do konverzací',
+  'column.toot': 'Příspěvky a odpovědi',
+  'confirmation_modal.do_not_ask_again': 'Příště se už neptat',
+  
+  'keyboard_shortcuts.bookmark': 'Přidat do záložek',
+  'keyboard_shortcuts.toggle_collapse': 'Sbalit/rozbalit příspěvek',
+  'keyboard_shortcuts.secondary_toot': 'Odeslat příspěvek s druhotným nastavením soukromí',
+  
+  'column.subheading': 'Různé',
 };
 
 export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/names.yml b/app/javascript/flavours/glitch/names.yml
index 68db3a73e..f35b457e1 100644
--- a/app/javascript/flavours/glitch/names.yml
+++ b/app/javascript/flavours/glitch/names.yml
@@ -6,6 +6,14 @@ en:
   skins:
     glitch:
       default: Default
+cs:
+  flavours:
+    glitch:
+      description: Výchozí rozhraní instancí GlitchSoc.
+      name: Glitch
+  skins:
+    glitch:
+      default: Výchozí
 pl:
   flavours:
     glitch:
diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js
index b1c792406..9b50ec23a 100644
--- a/app/javascript/flavours/glitch/reducers/compose.js
+++ b/app/javascript/flavours/glitch/reducers/compose.js
@@ -599,6 +599,7 @@ export default function compose(state = initialState, action) {
     return state.withMutations(map => {
       map.set('id', action.status.get('id'));
       map.set('text', action.text);
+      map.set('content_type', action.content_type || 'text/plain');
       map.set('in_reply_to', action.status.get('in_reply_to_id'));
       map.set('privacy', action.status.get('visibility'));
       map.set('media_attachments', action.status.get('media_attachments'));
diff --git a/app/javascript/flavours/glitch/reducers/status_lists.js b/app/javascript/flavours/glitch/reducers/status_lists.js
index ada0484f4..7ac0dab47 100644
--- a/app/javascript/flavours/glitch/reducers/status_lists.js
+++ b/app/javascript/flavours/glitch/reducers/status_lists.js
@@ -25,7 +25,7 @@ import {
   TRENDS_STATUSES_EXPAND_SUCCESS,
   TRENDS_STATUSES_EXPAND_FAIL,
 } from 'flavours/glitch/actions/trends';
-import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
 import {
   FAVOURITE_SUCCESS,
   UNFAVOURITE_SUCCESS,
@@ -43,22 +43,22 @@ const initialState = ImmutableMap({
   favourites: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   bookmarks: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   pins: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   trending: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
 });
 
@@ -67,7 +67,7 @@ const normalizeList = (state, listType, statuses, next) => {
     map.set('next', next);
     map.set('loaded', true);
     map.set('isLoading', false);
-    map.set('items', ImmutableList(statuses.map(item => item.id)));
+    map.set('items', ImmutableOrderedSet(statuses.map(item => item.id)));
   }));
 };
 
@@ -75,20 +75,22 @@ const appendToList = (state, listType, statuses, next) => {
   return state.update(listType, listMap => listMap.withMutations(map => {
     map.set('next', next);
     map.set('isLoading', false);
-    map.set('items', map.get('items').concat(statuses.map(item => item.id)));
+    map.set('items', map.get('items').union(statuses.map(item => item.id)));
   }));
 };
 
 const prependOneToList = (state, listType, status) => {
-  return state.update(listType, listMap => listMap.withMutations(map => {
-    map.set('items', map.get('items').unshift(status.get('id')));
-  }));
+  return state.updateIn([listType, 'items'], (list) => {
+    if (list.includes(status.get('id'))) {
+      return list;
+    } else {
+      return ImmutableOrderedSet([status.get('id')]).union(list);
+    }
+  });
 };
 
 const removeOneFromList = (state, listType, status) => {
-  return state.update(listType, listMap => listMap.withMutations(map => {
-    map.set('items', map.get('items').filter(item => item !== status.get('id')));
-  }));
+  return state.updateIn([listType, 'items'], (list) => list.delete(status.get('id')));
 };
 
 export default function statusLists(state = initialState, action) {
@@ -139,7 +141,7 @@ export default function statusLists(state = initialState, action) {
     return removeOneFromList(state, 'pins', action.status);
   case ACCOUNT_BLOCK_SUCCESS:
   case ACCOUNT_MUTE_SUCCESS:
-    return state.updateIn(['trending', 'items'], ImmutableList(), list => list.filterNot(statusId => action.statuses.getIn([statusId, 'account']) === action.relationship.id));
+    return state.updateIn(['trending', 'items'], ImmutableOrderedSet(), list => list.filterNot(statusId => action.statuses.getIn([statusId, 'account']) === action.relationship.id));
   default:
     return state;
   }
diff --git a/app/javascript/flavours/glitch/reducers/statuses.js b/app/javascript/flavours/glitch/reducers/statuses.js
index b47155c5f..f0c4c804b 100644
--- a/app/javascript/flavours/glitch/reducers/statuses.js
+++ b/app/javascript/flavours/glitch/reducers/statuses.js
@@ -13,6 +13,8 @@ import {
   STATUS_REVEAL,
   STATUS_HIDE,
   STATUS_COLLAPSE,
+  STATUS_TRANSLATE_SUCCESS,
+  STATUS_TRANSLATE_UNDO,
   STATUS_FETCH_REQUEST,
   STATUS_FETCH_FAIL,
 } from 'flavours/glitch/actions/statuses';
@@ -85,6 +87,10 @@ export default function statuses(state = initialState, action) {
     return state.setIn([action.id, 'collapsed'], action.isCollapsed);
   case TIMELINE_DELETE:
     return deleteStatus(state, action.id, action.references);
+  case STATUS_TRANSLATE_SUCCESS:
+    return state.setIn([action.id, 'translation'], fromJS(action.translation));
+  case STATUS_TRANSLATE_UNDO:
+    return state.deleteIn([action.id, 'translation']);
   default:
     return state;
   }
diff --git a/app/javascript/flavours/glitch/styles/components/columns.scss b/app/javascript/flavours/glitch/styles/components/columns.scss
index 71edf7fb3..42a591931 100644
--- a/app/javascript/flavours/glitch/styles/components/columns.scss
+++ b/app/javascript/flavours/glitch/styles/components/columns.scss
@@ -65,6 +65,7 @@ $ui-header-height: 55px;
   z-index: 2;
   justify-content: space-between;
   align-items: center;
+  overflow: hidden;
 
   &__logo {
     display: inline-flex;
@@ -81,10 +82,15 @@ $ui-header-height: 55px;
     align-items: center;
     gap: 10px;
     padding: 0 10px;
+    overflow: hidden;
 
     .button {
       flex: 0 0 auto;
     }
+
+    .button-tertiary {
+      flex-shrink: 1;
+    }
   }
 }
 
diff --git a/app/javascript/flavours/glitch/styles/components/drawer.scss b/app/javascript/flavours/glitch/styles/components/drawer.scss
index dfb9dc595..3e2604d4d 100644
--- a/app/javascript/flavours/glitch/styles/components/drawer.scss
+++ b/app/javascript/flavours/glitch/styles/components/drawer.scss
@@ -92,7 +92,7 @@
   @include search-popout();
 }
 
-.drawer--account {
+.navigation-bar {
   padding: 10px;
   color: $darker-text-color;
   display: flex;
diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss
index 80b0598a5..84aca2ebc 100644
--- a/app/javascript/flavours/glitch/styles/components/index.scss
+++ b/app/javascript/flavours/glitch/styles/components/index.scss
@@ -15,7 +15,7 @@
   display: block;
   font-size: 15px;
   line-height: 20px;
-  color: $ui-highlight-color;
+  color: $highlight-text-color;
   border: 0;
   background: transparent;
   padding: 0;
diff --git a/app/javascript/flavours/glitch/styles/components/modal.scss b/app/javascript/flavours/glitch/styles/components/modal.scss
index ab8609170..8ba8bec10 100644
--- a/app/javascript/flavours/glitch/styles/components/modal.scss
+++ b/app/javascript/flavours/glitch/styles/components/modal.scss
@@ -1306,7 +1306,8 @@ img.modal-warning {
   width: 600px;
   background: $ui-base-color;
   border-radius: 8px;
-  overflow: hidden;
+  overflow-x: hidden;
+  overflow-y: auto;
   position: relative;
   display: block;
   padding: 20px;
diff --git a/app/javascript/flavours/glitch/styles/components/single_column.scss b/app/javascript/flavours/glitch/styles/components/single_column.scss
index d91306151..45d57aedd 100644
--- a/app/javascript/flavours/glitch/styles/components/single_column.scss
+++ b/app/javascript/flavours/glitch/styles/components/single_column.scss
@@ -37,7 +37,7 @@
     top: 15px;
   }
 
-  .drawer--account {
+  .navigation-bar {
     flex: 0 1 48px;
   }
 
diff --git a/app/javascript/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss
index 5e4bddc67..64dbc3cf0 100644
--- a/app/javascript/flavours/glitch/styles/components/status.scss
+++ b/app/javascript/flavours/glitch/styles/components/status.scss
@@ -206,15 +206,13 @@
   }
 }
 
-.status__content__edited-label {
-  display: block;
-  cursor: default;
+.translate-button {
+  margin-top: 16px;
   font-size: 15px;
   line-height: 20px;
-  padding: 0;
-  padding-top: 8px;
+  display: flex;
+  justify-content: space-between;
   color: $dark-text-color;
-  font-weight: 500;
 }
 
 .status__content__spoiler-link {
diff --git a/app/javascript/flavours/glitch/styles/statuses.scss b/app/javascript/flavours/glitch/styles/statuses.scss
index 947a5d3ae..88fa3ffa0 100644
--- a/app/javascript/flavours/glitch/styles/statuses.scss
+++ b/app/javascript/flavours/glitch/styles/statuses.scss
@@ -268,7 +268,7 @@ a.button.logo-button {
   border: 0;
   background: transparent;
   padding: 0;
-  padding-top: 8px;
+  padding-top: 16px;
   text-decoration: none;
 
   &:hover,
diff --git a/app/javascript/flavours/vanilla/names.yml b/app/javascript/flavours/vanilla/names.yml
index 0e3f43ed0..9b7fc189d 100644
--- a/app/javascript/flavours/vanilla/names.yml
+++ b/app/javascript/flavours/vanilla/names.yml
@@ -6,6 +6,14 @@ en:
   skins:
     vanilla:
       default: Default
+cs:
+  flavours:
+    vanilla:
+      description: Standardní rozhraní Mastodonu. Některé funkce GlitchSoc v něm nejsou podporované.
+      name: Standardní Mastodon
+  skins:
+    vanilla:
+      default: Výchozí
 pl:
   flavours:
     vanilla:
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js
index cb67944c9..8a63cced2 100644
--- a/app/javascript/mastodon/features/status/index.js
+++ b/app/javascript/mastodon/features/status/index.js
@@ -222,6 +222,10 @@ class Status extends ImmutablePureComponent {
       this.props.dispatch(fetchStatus(nextProps.params.statusId));
     }
 
+    if (nextProps.params.statusId && nextProps.ancestorsIds.size > this.props.ancestorsIds.size) {
+      this._scrolledIntoView = false;
+    }
+
     if (nextProps.status && nextProps.status.get('id') !== this.state.loadedStatusId) {
       this.setState({ showMedia: defaultMediaVisibility(nextProps.status), loadedStatusId: nextProps.status.get('id') });
     }
diff --git a/app/javascript/mastodon/features/ui/components/header.js b/app/javascript/mastodon/features/ui/components/header.js
index bbb0ca1c6..1384bebda 100644
--- a/app/javascript/mastodon/features/ui/components/header.js
+++ b/app/javascript/mastodon/features/ui/components/header.js
@@ -6,6 +6,7 @@ import { registrationsOpen, me } from 'mastodon/initial_state';
 import Avatar from 'mastodon/components/avatar';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
+import { openModal } from 'mastodon/actions/modal';
 
 const Account = connect(state => ({
   account: state.getIn(['accounts', me]),
@@ -15,7 +16,14 @@ const Account = connect(state => ({
   </Link>
 ));
 
-export default @withRouter
+const mapDispatchToProps = (dispatch) => ({
+  openClosedRegistrationsModal() {
+    dispatch(openModal('CLOSED_REGISTRATIONS'));
+  },
+});
+
+export default @connect(null, mapDispatchToProps)
+@withRouter
 class Header extends React.PureComponent {
 
   static contextTypes = {
@@ -23,12 +31,13 @@ class Header extends React.PureComponent {
   };
 
   static propTypes = {
+    openClosedRegistrationsModal: PropTypes.func,
     location: PropTypes.object,
   };
 
   render () {
     const { signedIn } = this.context.identity;
-    const { location } = this.props;
+    const { location, openClosedRegistrationsModal } = this.props;
 
     let content;
 
@@ -40,10 +49,26 @@ class Header extends React.PureComponent {
         </>
       );
     } else {
+      let signupButton;
+
+      if (registrationsOpen) {
+        signupButton = (
+          <a href='/auth/sign_up' className='button button-tertiary'>
+            <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+          </a>
+        );
+      } else {
+        signupButton = (
+          <button className='button button-tertiary' onClick={openClosedRegistrationsModal}>
+            <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+          </button>
+        );
+      }
+
       content = (
         <>
           <a href='/auth/sign_in' className='button'><FormattedMessage id='sign_in_banner.sign_in' defaultMessage='Sign in' /></a>
-          <a href={registrationsOpen ? '/auth/sign_up' : 'https://joinmastodon.org/servers'} className='button button-tertiary'><FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' /></a>
+          {signupButton}
         </>
       );
     }
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index 1c5dddb60..e287b9a46 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -29,19 +29,19 @@
   "account.featured_tags.last_status_at": "Last post on {date}",
   "account.featured_tags.last_status_never": "No posts",
   "account.featured_tags.title": "Etiquetes destacaes de: {name}",
-  "account.follow": "Siguir",
+  "account.follow": "Follow",
   "account.followers": "Siguidores",
-  "account.followers.empty": "Naide sigue a esti perfil entá.",
+  "account.followers.empty": "No one follows this user yet.",
   "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
   "account.following": "Following",
   "account.following_counter": "{count, plural,one {Siguiendo a {counter}} other {Siguiendo a {counter}}}",
   "account.follows.empty": "Esti perfil entá nun sigue a naide.",
   "account.follows_you": "Síguete",
   "account.go_to_profile": "Go to profile",
-  "account.hide_reblogs": "Anubrir les comparticiones de @{name}",
+  "account.hide_reblogs": "Hide boosts from @{name}",
   "account.joined_short": "Data de xunión",
   "account.languages": "Change subscribed languages",
-  "account.link_verified_on": "La propiedá d'esti enllaz foi comprobada'l {date}",
+  "account.link_verified_on": "Ownership of this link was checked on {date}",
   "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
   "account.media": "Multimedia",
   "account.mention": "Mentar a @{name}",
@@ -53,14 +53,14 @@
   "account.posts": "Artículos",
   "account.posts_with_replies": "Artículos ya rempuestes",
   "account.report": "Report @{name}",
-  "account.requested": "Esperando pola aprobación. Calca pa encaboxar la solicitú de siguimientu",
-  "account.share": "Compartir el perfil de @{name}",
+  "account.requested": "Awaiting approval. Click to cancel follow request",
+  "account.share": "Share @{name}'s profile",
   "account.show_reblogs": "Amosar los artículos compartíos de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} artículu} other {{counter} artículos}}",
-  "account.unblock": "Desbloquiar a @{name}",
-  "account.unblock_domain": "Amosar {domain}",
+  "account.unblock": "Unblock @{name}",
+  "account.unblock_domain": "Unblock domain {domain}",
   "account.unblock_short": "Unblock",
-  "account.unendorse": "Nun destacar nel perfil",
+  "account.unendorse": "Dexar de destacar nel perfil",
   "account.unfollow": "Dexar de siguir",
   "account.unmute": "Activar los avisos de @{name}",
   "account.unmute_notifications": "Activar los avisos de @{name}",
@@ -68,7 +68,7 @@
   "account_note.placeholder": "Calca equí p'amestar una nota",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
-  "admin.dashboard.retention.average": "Promediu",
+  "admin.dashboard.retention.average": "Media",
   "admin.dashboard.retention.cohort": "Mes de rexistru",
   "admin.dashboard.retention.cohort_size": "Perfiles nuevos",
   "alert.rate_limited.message": "Volvi tentalo dempués de la hora: {retry_time, time, medium}.",
@@ -79,7 +79,7 @@
   "attachments_list.unprocessed": "(ensin procesar)",
   "audio.hide": "Hide audio",
   "autosuggest_hashtag.per_week": "{count} per selmana",
-  "boost_modal.combo": "Pues primir {combo} pa saltar esto la próxima vegada",
+  "boost_modal.combo": "You can press {combo} to skip this next time",
   "bundle_column_error.copy_stacktrace": "Copy error report",
   "bundle_column_error.error.body": "La páxina solicitada nun se pudo renderizar. Ye posible que seya pola mor d'un fallu nel códigu o por un problema de compatibilidá del restolador.",
   "bundle_column_error.error.title": "¡Oh, non!",
@@ -99,16 +99,16 @@
   "closed_registrations_modal.title": "Rexistru en Mastodon",
   "column.about": "Tocante a",
   "column.blocks": "Perfiles bloquiaos",
-  "column.bookmarks": "Marcadores",
+  "column.bookmarks": "Bookmarks",
   "column.community": "Llinia de tiempu llocal",
   "column.direct": "Mensaxes direutos",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Dominios bloquiaos",
-  "column.favourites": "Favoritos",
+  "column.favourites": "Favourites",
   "column.follow_requests": "Solicitúes de siguimientu",
-  "column.home": "Aniciu",
-  "column.lists": "Llistes",
-  "column.mutes": "Usuarios silenciaos",
+  "column.home": "Home",
+  "column.lists": "Lists",
+  "column.mutes": "Muted users",
   "column.notifications": "Avisos",
   "column.pins": "Artículos fixaos",
   "column.public": "Llinia de tiempu federada",
@@ -144,9 +144,9 @@
   "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
   "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
   "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
-  "compose_form.spoiler.marked": "El testu nun va anubrise darrera d'una alvertencia",
-  "compose_form.spoiler.unmarked": "El testu nun va anubrise",
-  "compose_form.spoiler_placeholder": "Escribi equí l'alvertencia",
+  "compose_form.spoiler.marked": "Text is hidden behind warning",
+  "compose_form.spoiler.unmarked": "Text is not hidden",
+  "compose_form.spoiler_placeholder": "Write your warning here",
   "confirmation_modal.cancel": "Encaboxar",
   "confirmations.block.block_and_report": "Bloquiar ya informar",
   "confirmations.block.confirm": "Bloquiar",
@@ -156,20 +156,20 @@
   "confirmations.delete.confirm": "Desaniciar",
   "confirmations.delete.message": "¿De xuru que quies desaniciar esti artículu?",
   "confirmations.delete_list.confirm": "Desaniciar",
-  "confirmations.delete_list.message": "¿De xuru que quies desaniciar dafechu esta llista?",
+  "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
   "confirmations.discard_edit_media.confirm": "Escartar",
   "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
   "confirmations.domain_block.confirm": "Bloquiar tol dominiu",
-  "confirmations.domain_block.message": "¿De xuru xurísimu que quies bloquiar el dominiu {domain} enteru? Na mayoría de casos bloquiar o silenciar dalguna cuenta ye abondo ya preferible. Nun vas ver el conteníu d'esi dominiu en nenguna llinia temporal pública o nos avisos, ya van desanciase los tos siguidores d'esi dominiu.",
+  "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
   "confirmations.logout.confirm": "Zarrar la sesión",
   "confirmations.logout.message": "¿De xuru que quies zarrar la sesión?",
-  "confirmations.mute.confirm": "Silenciar",
-  "confirmations.mute.explanation": "Esto va anubrir los espublizamientos ya les sos menciones pero entá va permiti-yos ver los tos espublizamientos ya siguite.",
-  "confirmations.mute.message": "¿De xuru que quies desactivar los avisos de {name}?",
+  "confirmations.mute.confirm": "Mute",
+  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
+  "confirmations.mute.message": "Are you sure you want to mute {name}?",
   "confirmations.redraft.confirm": "Desaniciar ya reeditar",
   "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
   "confirmations.reply.confirm": "Responder",
-  "confirmations.reply.message": "Responder agora va sobrescribir el mensaxe que tas componiendo anguaño. ¿De xuru que quies siguir?",
+  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
   "confirmations.unfollow.confirm": "Dexar de siguir",
   "confirmations.unfollow.message": "¿De xuru que quies dexar de siguir a {name}?",
   "conversation.delete": "Delete conversation",
@@ -178,10 +178,10 @@
   "conversation.with": "Con {names}",
   "copypaste.copied": "Copióse",
   "copypaste.copy": "Copiar",
-  "directory.federated": "Dende'l fediversu",
-  "directory.local": "Dende {domain} namái",
-  "directory.new_arrivals": "Cuentes nueves",
-  "directory.recently_active": "Actividá recién",
+  "directory.federated": "From known fediverse",
+  "directory.local": "From {domain} only",
+  "directory.new_arrivals": "New arrivals",
+  "directory.recently_active": "Recently active",
   "disabled_account_banner.account_settings": "Account settings",
   "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
   "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
@@ -197,12 +197,12 @@
   "emoji_button.custom": "Custom",
   "emoji_button.flags": "Banderes",
   "emoji_button.food": "Comida ya bébora",
-  "emoji_button.label": "Inxertar un fustaxe",
+  "emoji_button.label": "Insert emoji",
   "emoji_button.nature": "Natura",
   "emoji_button.not_found": "Nun s'atoparon fustaxes que concasen",
   "emoji_button.objects": "Oxetos",
   "emoji_button.people": "Persones",
-  "emoji_button.recent": "Úsase davezu",
+  "emoji_button.recent": "Frequently used",
   "emoji_button.search": "Buscar…",
   "emoji_button.search_results": "Resultaos de la busca",
   "emoji_button.symbols": "Símbolos",
@@ -221,13 +221,13 @@
   "empty_column.follow_recommendations": "Paez que nun se puen xenerar suxerencies pa ti. Pues tentar d'usar la busca p'atopar perfiles que pues conocer o esplorar les etiquetes en tendencia.",
   "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, apaez equí.",
   "empty_column.hashtag": "Entá nun hai nada con esta etiqueta.",
-  "empty_column.home": "¡Tienes la llinia temporal balera! Visita {public} o usa la gueta pa entamar ya conocer a otros usuarios.",
+  "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
   "empty_column.home.suggestions": "See some suggestions",
   "empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen artículos nuevos, apaecen equí.",
   "empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees una, apaez equí.",
   "empty_column.mutes": "You haven't muted any users yet.",
-  "empty_column.notifications": "Entá nun tienes nengún avisu. Cuando otros perfiles interactúen contigo, vas velos equí.",
-  "empty_column.public": "¡Equí nun hai nada! Escribi daqué público o sigui a usuarios d'otros sirvidores pa rellenar esto",
+  "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.",
+  "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
   "error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.",
   "error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.",
   "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
@@ -266,16 +266,16 @@
   "footer.privacy_policy": "Política de privacidá",
   "footer.source_code": "Ver el códigu fonte",
   "generic.saved": "Guardóse",
-  "getting_started.heading": "Entamu",
+  "getting_started.heading": "Getting started",
   "hashtag.column_header.tag_mode.all": "y {additional}",
   "hashtag.column_header.tag_mode.any": "o {additional}",
   "hashtag.column_header.tag_mode.none": "ensin {additional}",
   "hashtag.column_settings.select.no_options_message": "Nun s'atopó nenguna suxerencia",
   "hashtag.column_settings.select.placeholder": "Enter hashtags…",
-  "hashtag.column_settings.tag_mode.all": "Toes estes",
-  "hashtag.column_settings.tag_mode.any": "Cualesquiera d'estes",
-  "hashtag.column_settings.tag_mode.none": "Nenguna d'estes",
-  "hashtag.column_settings.tag_toggle": "Incluyir les etiquetes adicionales d'esta columna",
+  "hashtag.column_settings.tag_mode.all": "All of these",
+  "hashtag.column_settings.tag_mode.any": "Any of these",
+  "hashtag.column_settings.tag_mode.none": "None of these",
+  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
   "hashtag.follow": "Siguir a la etiqueta",
   "hashtag.unfollow": "Dexar de siguir a la etiqueta",
   "home.column_settings.basic": "Configuración básica",
@@ -335,23 +335,23 @@
   "lightbox.close": "Close",
   "lightbox.compress": "Compress image view box",
   "lightbox.expand": "Expand image view box",
-  "lightbox.next": "Siguiente",
+  "lightbox.next": "Next",
   "lightbox.previous": "Previous",
   "limited_account_hint.action": "Amosar el perfil de toes toes",
   "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
-  "lists.account.add": "Amestar a la llista",
-  "lists.account.remove": "Desaniciar de la llista",
+  "lists.account.add": "Add to list",
+  "lists.account.remove": "Remove from list",
   "lists.delete": "Desaniciar la llista",
   "lists.edit": "Editar la llista",
   "lists.edit.submit": "Change title",
   "lists.new.create": "Amestar la llista",
-  "lists.new.title_placeholder": "Títulu nuevu de la llista",
+  "lists.new.title_placeholder": "New list title",
   "lists.replies_policy.followed": "Cualesquier perfil siguíu",
   "lists.replies_policy.list": "Miembros de la llista",
   "lists.replies_policy.none": "Naide",
   "lists.replies_policy.title": "Show replies to:",
-  "lists.search": "Buscar ente la xente que sigues",
-  "lists.subheading": "Les tos llistes",
+  "lists.search": "Search among people you follow",
+  "lists.subheading": "Your lists",
   "load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}",
   "loading_indicator.label": "Cargando…",
   "media_gallery.toggle_visible": "{number, plural, one {Anubrir la imaxe} other {Anubrir les imáxenes}}",
@@ -377,7 +377,7 @@
   "navigation_bar.follows_and_followers": "Follows and followers",
   "navigation_bar.lists": "Llistes",
   "navigation_bar.logout": "Zarrar la sesión",
-  "navigation_bar.mutes": "Usuarios silenciaos",
+  "navigation_bar.mutes": "Muted users",
   "navigation_bar.personal": "Personal",
   "navigation_bar.pins": "Artículos fixaos",
   "navigation_bar.preferences": "Preferencies",
@@ -397,10 +397,10 @@
   "notification.status": "{name} ta acabante d'espublizar",
   "notification.update": "{name} editó un artículu",
   "notifications.clear": "Borrar los avisos",
-  "notifications.clear_confirmation": "¿De xuru que quies llimpiar dafechu tolos avisos?",
+  "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
   "notifications.column_settings.admin.report": "Informes nuevos:",
   "notifications.column_settings.admin.sign_up": "Rexistros nuevos:",
-  "notifications.column_settings.alert": "Avisos d'escritoriu",
+  "notifications.column_settings.alert": "Desktop notifications",
   "notifications.column_settings.favourite": "Artículos favoritos:",
   "notifications.column_settings.filter_bar.advanced": "Amosar toles categoríes",
   "notifications.column_settings.filter_bar.category": "Barra de peñera rápida",
@@ -411,13 +411,13 @@
   "notifications.column_settings.poll": "Resultaos de les encuestes:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Artículos compartíos:",
-  "notifications.column_settings.show": "Amosar en columna",
+  "notifications.column_settings.show": "Show in column",
   "notifications.column_settings.sound": "Reproducir un soníu",
   "notifications.column_settings.status": "Artículos nuevos:",
   "notifications.column_settings.unread_notifications.category": "Avisos ensin lleer",
   "notifications.column_settings.unread_notifications.highlight": "Rescamplar los avisos ensin lleer",
   "notifications.column_settings.update": "Ediciones:",
-  "notifications.filter.all": "Too",
+  "notifications.filter.all": "All",
   "notifications.filter.boosts": "Boosts",
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
@@ -430,8 +430,8 @@
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
   "notifications.permission_required": "Los avisos d'escritoriu nun tán disponibles porque nun se concedió'l permisu riquíu.",
-  "notifications_permission_banner.enable": "Activar los avisos d'escritoriu",
-  "notifications_permission_banner.how_to_control": "Pa recibir avisos cuando Mastodon nun tea abiertu, activa los avisos del escritoriu. Pues controlar al milímetru qué tipu d'interaiciones xeneren avisos namás que s'activen, pente'l botón {icon} d'arriba.",
+  "notifications_permission_banner.enable": "Enable desktop notifications",
+  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
   "notifications_permission_banner.title": "Never miss a thing",
   "picture_in_picture.restore": "Put it back",
   "poll.closed": "Finó",
@@ -448,15 +448,15 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Artículu visible namás pa los perfiles siguidores",
   "privacy.private.short": "Namás pa siguidores",
-  "privacy.public.long": "Tol mundu pue ver l'artículu",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Artículu públicu",
   "privacy.unlisted.long": "Artículu visible pa tol mundu mas escluyíu de les funciones de descubrimientu",
-  "privacy.unlisted.short": "Nun llistar",
+  "privacy.unlisted.short": "Unlisted",
   "privacy_policy.last_updated": "Data del últimu anovamientu: {date}",
   "privacy_policy.title": "Política de privacidá",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Cargando…",
-  "regeneration_indicator.sublabel": "¡Tamos tresnando'l feed d'Aniciu!",
+  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
   "relative_time.days": "{number} d",
   "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
   "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
@@ -538,14 +538,14 @@
   "sign_in_banner.text": "Anicia la sesión pa siguir a perfiles o etiquetes, marcar como favoritu, compartir o responder a artículos, o interactuar cola to cuenta nun sirvidor diferente.",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
-  "status.block": "Bloquiar a @{name}",
+  "status.block": "Block @{name}",
   "status.bookmark": "Meter en Marcadores",
-  "status.cancel_reblog_private": "Dexar de compartir",
+  "status.cancel_reblog_private": "Unboost",
   "status.cannot_reblog": "Esti artículu nun se pue compartir",
   "status.copy": "Copiar l'enllaz al artículu",
   "status.delete": "Desaniciar",
   "status.detailed_status": "Detailed conversation view",
-  "status.direct": "Unviar un mensaxe direutu a @{name}",
+  "status.direct": "Direct message @{name}",
   "status.edit": "Edit",
   "status.edited": "Edited {date}",
   "status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}",
@@ -557,7 +557,7 @@
   "status.history.created": "{name} creó {date}",
   "status.history.edited": "{name} editó {date}",
   "status.load_more": "Cargar más",
-  "status.media_hidden": "Multimedia anubrida",
+  "status.media_hidden": "Media hidden",
   "status.mention": "Mentar a @{name}",
   "status.more": "Más",
   "status.mute": "Desactivar los avisos de @{name}",
@@ -567,11 +567,11 @@
   "status.pinned": "Artículu fixáu",
   "status.read_more": "Lleer más",
   "status.reblog": "Compartir",
-  "status.reblog_private": "Compartir cola audiencia orixinal",
+  "status.reblog_private": "Boost with original visibility",
   "status.reblogged_by": "{name} compartió",
   "status.reblogs.empty": "Naide nun compartió esti artículu entá. Cuando daquién lo faiga, apaez equí.",
-  "status.redraft": "Desaniciar ya reeditar",
-  "status.remove_bookmark": "Desaniciar de Marcadores",
+  "status.redraft": "Delete & re-draft",
+  "status.remove_bookmark": "Remove bookmark",
   "status.replied_to": "En rempuesta a {name}",
   "status.reply": "Responder",
   "status.replyAll": "Responder al filu",
@@ -580,9 +580,9 @@
   "status.share": "Share",
   "status.show_filter_reason": "Show anyway",
   "status.show_less": "Amosar menos",
-  "status.show_less_all": "Amosar menos en too",
+  "status.show_less_all": "Show less for all",
   "status.show_more": "Amosar más",
-  "status.show_more_all": "Amosar más en too",
+  "status.show_more_all": "Show more for all",
   "status.show_original": "Amosar l'orixinal",
   "status.translate": "Traducir",
   "status.translated_from_with": "Tradúxose del {lang} con {provider}",
@@ -609,11 +609,11 @@
   "timeline_hint.resources.statuses": "Artículos antiguos",
   "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
   "trends.trending_now": "En tendencia",
-  "ui.beforeunload": "El borrador va perdese si coles de Mastodon.",
+  "ui.beforeunload": "El borrador piérdese si coles de Mastodon.",
   "units.short.billion": "{count} MM",
   "units.short.million": "{count} M",
   "units.short.thousand": "{count} mil",
-  "upload_area.title": "Arrastra ya suelta pa xubir",
+  "upload_area.title": "Drag & drop to upload",
   "upload_button.label": "Add images, a video or an audio file",
   "upload_error.limit": "File upload limit exceeded.",
   "upload_error.poll": "La xuba de ficheros nun ta permitida coles encuestes.",
@@ -633,12 +633,12 @@
   "upload_modal.edit_media": "Edición",
   "upload_modal.hint": "Calca o arrastra'l círculu de la previsualización pa escoyer el puntu d'enfoque que siempres va tar a la vista en toles miniatures.",
   "upload_modal.preparing_ocr": "Preparing OCR…",
-  "upload_modal.preview_label": "Previsualización ({ratio})",
+  "upload_modal.preview_label": "Preview ({ratio})",
   "upload_progress.label": "Xubiendo…",
   "upload_progress.processing": "Procesando…",
   "video.close": "Zarrar el videu",
   "video.download": "Download file",
-  "video.exit_fullscreen": "Colar de la pantalla completa",
+  "video.exit_fullscreen": "Exit full screen",
   "video.expand": "Espander el videu",
   "video.fullscreen": "Pantalla completa",
   "video.hide": "Anubrir el videu",
diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json
index 58fa56b2b..0e84db718 100644
--- a/app/javascript/mastodon/locales/be.json
+++ b/app/javascript/mastodon/locales/be.json
@@ -129,12 +129,12 @@
   "compose_form.encryption_warning": "Допісы ў Mastodon не абаронены скразным шыфраваннем. Не дзяліцеся ніякай канфідэнцыяльнай інфармацыяй в Mastodon.",
   "compose_form.hashtag_warning": "Гэты допіс не будзе паказаны пад аніякім хэштэгам, так як ён мае тып \"Не паказваць у стужках\". Толькі публічныя допісы могуць быць знойдзены па хэштэгу.",
   "compose_form.lock_disclaimer": "Ваш уліковы запіс не {locked}. Усе могуць падпісацца на вас, каб бачыць допісы толькі для падпісчыкаў.",
-  "compose_form.lock_disclaimer.lock": "заблакавана",
+  "compose_form.lock_disclaimer.lock": "закрыты",
   "compose_form.placeholder": "Што здарылася?",
   "compose_form.poll.add_option": "Дадаць варыянт",
   "compose_form.poll.duration": "Працягласць апытання",
   "compose_form.poll.option_placeholder": "Варыянт {number}",
-  "compose_form.poll.remove_option": "Выдаліць выбар",
+  "compose_form.poll.remove_option": "Выдаліць гэты варыянт",
   "compose_form.poll.switch_to_multiple": "Змяніце апытанне, каб дазволіць некалькі варыянтаў адказу",
   "compose_form.poll.switch_to_single": "Змяніце апытанне, каб дазволіць адзіны варыянт адказу",
   "compose_form.publish": "Апублікаваць",
@@ -144,8 +144,8 @@
   "compose_form.sensitive.hide": "{count, plural, one {Пазначыць кантэнт як далікатны} other {Пазначыць кантэнт як далікатны}}",
   "compose_form.sensitive.marked": "{count, plural, one {Кантэнт пазначаны як далікатны} other {Кантэнт пазначаны як далікатны}}",
   "compose_form.sensitive.unmarked": "{count, plural, one {Кантэнт не пазначаны як далікатны} other {Кантэнт не пазначаны як далікатны}}",
-  "compose_form.spoiler.marked": "Выдаліць папярэджанне аб кантэнце",
-  "compose_form.spoiler.unmarked": "Дадаць папярэджанне аб кантэнце",
+  "compose_form.spoiler.marked": "Выдаліць папярэджанне аб змесціве",
+  "compose_form.spoiler.unmarked": "Дадаць папярэджанне аб змесціве",
   "compose_form.spoiler_placeholder": "Напішыце сваё папярэджанне тут",
   "confirmation_modal.cancel": "Скасаваць",
   "confirmations.block.block_and_report": "Заблакіраваць і паскардзіцца",
@@ -182,7 +182,7 @@
   "directory.local": "Толькі з {domain}",
   "directory.new_arrivals": "Новыя карыстальнікі",
   "directory.recently_active": "Нядаўна актыўныя",
-  "disabled_account_banner.account_settings": "Налады акаўнту",
+  "disabled_account_banner.account_settings": "Налады ўліковага запісу",
   "disabled_account_banner.text": "Ваш уліковы запіс {disabledAccount} часова адключаны.",
   "dismissable_banner.community_timeline": "Гэта самыя апошнія допісы ад людзей, уліковыя запісы якіх размяшчаюцца на {domain}.",
   "dismissable_banner.dismiss": "Адхіліць",
@@ -391,7 +391,7 @@
   "notification.follow": "{name} падпісаўся на вас",
   "notification.follow_request": "{name} адправіў запыт на падпіску",
   "notification.mention": "{name} згадаў вас",
-  "notification.own_poll": "Вашая апытанка скончылася",
+  "notification.own_poll": "Ваша апытанне скончылася",
   "notification.poll": "Апытанне, дзе вы прынялі ўдзел, скончылася",
   "notification.reblog": "{name} пашырыў ваш допіс",
   "notification.status": "Новы допіс ад {name}",
@@ -464,7 +464,7 @@
   "relative_time.full.minutes": "{number, plural, one {# хвіліна} few {# хвіліны} many {# хвілін} other {# хвіліны}} таму",
   "relative_time.full.seconds": "{number, plural, one {# секунда} few {# секунды} many {# секунд} other {# секунды}} таму",
   "relative_time.hours": "{number} гадз",
-  "relative_time.just_now": "цяпер",
+  "relative_time.just_now": "толькі што",
   "relative_time.minutes": "{number} хв",
   "relative_time.seconds": "{number} с",
   "relative_time.today": "сёння",
@@ -539,7 +539,7 @@
   "status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}",
   "status.admin_status": "Адкрыць гэты допіс у інтэрфейсе мадэрацыі",
   "status.block": "Заблакаваць @{name}",
-  "status.bookmark": "Закладка",
+  "status.bookmark": "Дадаць закладку",
   "status.cancel_reblog_private": "Прыбраць",
   "status.cannot_reblog": "Гэты пост нельга пашырыць",
   "status.copy": "Скапіраваць спасылку на допіс",
@@ -554,8 +554,8 @@
   "status.filter": "Фільтраваць гэты допіс",
   "status.filtered": "Адфільтравана",
   "status.hide": "Схаваць допіс",
-  "status.history.created": "створана {name} {date}",
-  "status.history.edited": "адрэдагавана {name} {date}",
+  "status.history.created": "Створана {name} {date}",
+  "status.history.edited": "Адрэдагавана {name} {date}",
   "status.load_more": "Загрузіць яшчэ",
   "status.media_hidden": "Медыя схавана",
   "status.mention": "Згадаць @{name}",
@@ -594,7 +594,7 @@
   "subscribed_languages.target": "Змяніць мовы падпіскі для {target}",
   "suggestions.dismiss": "Адхіліць прапанову",
   "suggestions.header": "Гэта можа Вас зацікавіць…",
-  "tabs_bar.federated_timeline": "Глабальная",
+  "tabs_bar.federated_timeline": "Глабальнае",
   "tabs_bar.home": "Галоўная",
   "tabs_bar.local_timeline": "Мясцовае",
   "tabs_bar.notifications": "Апавяшчэнні",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 06d3386a8..f04f6054d 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -39,7 +39,7 @@
   "account.follows_you": "Ваш последовател",
   "account.go_to_profile": "Към профила",
   "account.hide_reblogs": "Скриване на споделяния от @{name}",
-  "account.joined_short": "Присъединени",
+  "account.joined_short": "Дата на присъединяване",
   "account.languages": "Смяна на показваните езици",
   "account.link_verified_on": "Собствеността върху тази връзка е проверена на {date}",
   "account.locked_info": "Състоянието за поверителността на акаунта е зададено заключено. Собственикът преглежда ръчно от кого може да се следва.",
@@ -51,20 +51,20 @@
   "account.muted": "Заглушено",
   "account.open_original_page": "Отваряне на оригиналната страница",
   "account.posts": "Публикации",
-  "account.posts_with_replies": "Публикации и отговори",
+  "account.posts_with_replies": "С отговори",
   "account.report": "Докладване на @{name}",
   "account.requested": "Чака се одобрение. Щракнете за отмяна на заявката за последване",
-  "account.share": "Споделяне на профила на @{name}",
+  "account.share": "Изпращане на профила на @{name}",
   "account.show_reblogs": "Показване на споделяния от @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}",
   "account.unblock": "Отблокиране на @{name}",
   "account.unblock_domain": "Отблокиране на домейн {domain}",
   "account.unblock_short": "Отблокирване",
   "account.unendorse": "Не включвайте в профила",
-  "account.unfollow": "Стоп на следването",
-  "account.unmute": "Без заглушаването на @{name}",
+  "account.unfollow": "Не следвай",
+  "account.unmute": "Без заглушаване на @{name}",
   "account.unmute_notifications": "Без заглушаване на известия от @{name}",
-  "account.unmute_short": "Без заглушаването",
+  "account.unmute_short": "Без заглушаване",
   "account_note.placeholder": "Щракнете, за да добавите бележка",
   "admin.dashboard.daily_retention": "Ниво на задържани на потребители след регистрация, в дни",
   "admin.dashboard.monthly_retention": "Ниво на задържани на потребители след регистрация, в месеци",
@@ -100,7 +100,7 @@
   "column.about": "Относно",
   "column.blocks": "Блокирани потребители",
   "column.bookmarks": "Отметки",
-  "column.community": "Местна часова ос",
+  "column.community": "Локален инфопоток",
   "column.direct": "Директни съобщения",
   "column.directory": "Разглеждане на профили",
   "column.domain_blocks": "Блокирани домейни",
@@ -111,7 +111,7 @@
   "column.mutes": "Заглушени потребители",
   "column.notifications": "Известия",
   "column.pins": "Закачени публикации",
-  "column.public": "Федеративна часова ос",
+  "column.public": "Федериран инфопоток",
   "column_back_button.label": "Назад",
   "column_header.hide_settings": "Скриване на настройките",
   "column_header.moveLeft_settings": "Преместване на колона вляво",
@@ -146,7 +146,7 @@
   "compose_form.sensitive.unmarked": "{count, plural, one {Мултимедията не е маркирана като деликатна} other {Мултимедиите не са маркирани като деликатни}}",
   "compose_form.spoiler.marked": "Премахване на предупреждението за съдържание",
   "compose_form.spoiler.unmarked": "Добавяне на предупреждение за съдържание",
-  "compose_form.spoiler_placeholder": "Тук напишете предупреждението си",
+  "compose_form.spoiler_placeholder": "Напишете предупреждение",
   "confirmation_modal.cancel": "Отказ",
   "confirmations.block.block_and_report": "Блокиране и докладване",
   "confirmations.block.confirm": "Блокиране",
@@ -178,23 +178,23 @@
   "conversation.with": "С {names}",
   "copypaste.copied": "Копирано",
   "copypaste.copy": "Копиране",
-  "directory.federated": "От познат федивърс",
+  "directory.federated": "От познатата федивселена",
   "directory.local": "Само от {domain}",
   "directory.new_arrivals": "Новодошли",
   "directory.recently_active": "Наскоро дейни",
   "disabled_account_banner.account_settings": "Настройки на акаунта",
   "disabled_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен.",
-  "dismissable_banner.community_timeline": "Ето най-скорошните публични публикации от хора, чиито акаунти са разположени в {domain}.",
+  "dismissable_banner.community_timeline": "Ето най-скорошните публични публикации, създадени от акаунти в {domain}.",
   "dismissable_banner.dismiss": "Отхвърляне",
   "dismissable_banner.explore_links": "Тези новини се разказват от хората в този и други сървъри на децентрализираната мрежа точно сега.",
   "dismissable_banner.explore_statuses": "Тези публикации от този и други сървъри в децентрализираната мрежа набират популярност сега на този сървър.",
   "dismissable_banner.explore_tags": "Тези хаштагове сега набират популярност сред хората в този и други сървъри на децентрализирата мрежа.",
-  "dismissable_banner.public_timeline": "Ето най-скорошните публични публикации от хора в този и други сървъри на децентрализираната мрежа, за които този сървър познава.",
+  "dismissable_banner.public_timeline": "Това са най-скорошните публични публикации, създадени на този сървър, както и на други сървъри на децентрализираната мрежа, за които този сървър знае.",
   "embed.instructions": "Вградете публикацията в уебсайта си, копирайки кода долу.",
   "embed.preview": "Ето как ще изглежда:",
   "emoji_button.activity": "Дейност",
   "emoji_button.clear": "Изчистване",
-  "emoji_button.custom": "Персонализирано",
+  "emoji_button.custom": "Персонализирани",
   "emoji_button.flags": "Знамена",
   "emoji_button.food": "Храна и напитки",
   "emoji_button.label": "Вмъкване на емоджи",
@@ -202,7 +202,7 @@
   "emoji_button.not_found": "Без емоджита!! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "Предмети",
   "emoji_button.people": "Хора",
-  "emoji_button.recent": "Често използвано",
+  "emoji_button.recent": "Често използвани",
   "emoji_button.search": "Търсене...",
   "emoji_button.search_results": "Резултати от търсене",
   "emoji_button.symbols": "Символи",
@@ -212,8 +212,8 @@
   "empty_column.account_unavailable": "Няма достъп до профила",
   "empty_column.blocks": "Още не сте блокирали никакви потребители.",
   "empty_column.bookmarked_statuses": "Още не сте отметнали публикации. Отметвайки някоя, то тя ще се покаже тук.",
-  "empty_column.community": "Местна часова ос е празна. Напишете нещо публично, за да завъртите нещата!",
-  "empty_column.direct": "Още нямате никакви директни съобщения. Изпращайки или получавайки, то те ще се покажат тук.",
+  "empty_column.community": "Локалният инфопоток е празен. Публикувайте нещо, за да започнете!",
+  "empty_column.direct": "Все още нямате лични съобщения. Когато изпратите или получите някое, то ще се покаже тук.",
   "empty_column.domain_blocks": "Още няма блокирани домейни.",
   "empty_column.explore_statuses": "Няма нищо популярно в момента. Проверете пак по-късно!",
   "empty_column.favourited_statuses": "Още нямате любими публикации. Поставяйки някоя в любими, то тя ще се покаже тук.",
@@ -221,13 +221,13 @@
   "empty_column.follow_recommendations": "Изглежда, че няма генерирани предложения за вас. Можете да опитате да търсите за хора, които знаете или да разгледате популярните тагове.",
   "empty_column.follow_requests": "Все още нямате заявки за последване. Когато получите такава, тя ще се покаже тук.",
   "empty_column.hashtag": "Още няма нищо в този хаштаг.",
-  "empty_column.home": "Вашата начална часова ос е празна! Последвайте повече хора, за да я запълните. {suggestions}",
+  "empty_column.home": "Вашият личен инфопоток е празен! Последвайте повече хора, за да го запълните. {suggestions}",
   "empty_column.home.suggestions": "Преглед на някои предложения",
   "empty_column.list": "Още няма нищо в този списък. Когато членовете на списъка публикуват нови публикации, то те ще се появят тук.",
   "empty_column.lists": "Все още нямате списъци. Когато създадете такъв, той ще се покаже тук.",
   "empty_column.mutes": "Още не сте заглушавали потребители.",
   "empty_column.notifications": "Все още нямате известия. Взаимодействайте с другите, за да започнете разговора.",
-  "empty_column.public": "Тук няма нищо! Напишете нещо публично или ръчно последвайте потребители от други сървъри, за да го напълните",
+  "empty_column.public": "Тук няма нищо! Публикувайте нещо или последвайте потребители от други сървъри, за да го напълните",
   "error.unexpected_crash.explanation": "Поради грешка в нашия код или проблем със съвместимостта на браузъра, тази страница не може да се покаже правилно.",
   "error.unexpected_crash.explanation_addons": "Тази страница не може да се покаже правилно. Тази грешка вероятно е причинена от добавка на браузъра или инструменти за автоматичен превод.",
   "error.unexpected_crash.next_steps": "Опитайте да опресните страницата. Ако това не помогне, все още можете да използвате Mastodon чрез различен браузър или приложение.",
@@ -260,9 +260,9 @@
   "follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.",
   "footer.about": "Относно",
   "footer.directory": "Директория на профилите",
-  "footer.get_app": "Вземане на приложението",
+  "footer.get_app": "Изтегли приложението",
   "footer.invite": "Поканване на хора",
-  "footer.keyboard_shortcuts": "Клавишни съчетания",
+  "footer.keyboard_shortcuts": "Клавишни комбинации",
   "footer.privacy_policy": "Политика за поверителност",
   "footer.source_code": "Преглед на изходния код",
   "generic.saved": "Запазено",
@@ -304,17 +304,17 @@
   "keyboard_shortcuts.column": "Съсредоточение на колона",
   "keyboard_shortcuts.compose": "Фокус на текстовото пространство за композиране",
   "keyboard_shortcuts.description": "Опис",
-  "keyboard_shortcuts.direct": "за отваряне на колоната с директни съобщения",
+  "keyboard_shortcuts.direct": "за отваряне на колоната с лични съобщения",
   "keyboard_shortcuts.down": "Преместване надолу в списъка",
   "keyboard_shortcuts.enter": "Отваряне на публикация",
   "keyboard_shortcuts.favourite": "Любима публикация",
   "keyboard_shortcuts.favourites": "Отваряне на списъка с любими",
-  "keyboard_shortcuts.federated": "Отваряне на федерална часова ос",
+  "keyboard_shortcuts.federated": "Отваряне на федерирания инфопоток",
   "keyboard_shortcuts.heading": "Клавишни съчетания",
-  "keyboard_shortcuts.home": "Отваряне на началната часова ос",
+  "keyboard_shortcuts.home": "Отваряне на личния инфопоток",
   "keyboard_shortcuts.hotkey": "Бърз клавиш",
   "keyboard_shortcuts.legend": "Показване на тази легенда",
-  "keyboard_shortcuts.local": "Отваряне на местна часова ос",
+  "keyboard_shortcuts.local": "Отваряне на локалния инфопоток",
   "keyboard_shortcuts.mention": "Споменаване на автор",
   "keyboard_shortcuts.muted": "Отваряне на списъка със заглушени потребители",
   "keyboard_shortcuts.my_profile": "Отваряне на профила ви",
@@ -364,7 +364,7 @@
   "navigation_bar.about": "За тази инстанция",
   "navigation_bar.blocks": "Блокирани потребители",
   "navigation_bar.bookmarks": "Отметки",
-  "navigation_bar.community_timeline": "Местна часова ос",
+  "navigation_bar.community_timeline": "Локален инфопоток",
   "navigation_bar.compose": "Съставяне на нова публикация",
   "navigation_bar.direct": "Директни съобщения",
   "navigation_bar.discover": "Откриване",
@@ -381,19 +381,19 @@
   "navigation_bar.personal": "Лично",
   "navigation_bar.pins": "Закачени публикации",
   "navigation_bar.preferences": "Предпочитания",
-  "navigation_bar.public_timeline": "Федеративна часова ос",
+  "navigation_bar.public_timeline": "Федериран инфопоток",
   "navigation_bar.search": "Търсене",
   "navigation_bar.security": "Сигурност",
   "not_signed_in_indicator.not_signed_in": "Трябва да влезете за достъп до този ресурс.",
   "notification.admin.report": "{name} докладва {target}",
   "notification.admin.sign_up": "{name} се регистрира",
-  "notification.favourite": "{name} направи любима ваша публикация",
+  "notification.favourite": "{name} хареса ваша публикация",
   "notification.follow": "{name} ви последва",
   "notification.follow_request": "{name} поиска да ви последва",
   "notification.mention": "{name} ви спомена",
   "notification.own_poll": "Анкетата ви приключи",
   "notification.poll": "Анкета, в която гласувахте, приключи",
-  "notification.reblog": "{name} сподели твоята публикация",
+  "notification.reblog": "{name} сподели вашата публикация",
   "notification.status": "{name} току-що публикува",
   "notification.update": "{name} промени публикация",
   "notifications.clear": "Изчистване на известията",
@@ -457,15 +457,15 @@
   "refresh": "Опресняване",
   "regeneration_indicator.label": "Зареждане…",
   "regeneration_indicator.sublabel": "Вашият основен инфопоток се подготвя!",
-  "relative_time.days": "{number}д.",
+  "relative_time.days": "{number} д.",
   "relative_time.full.days": "преди {number, plural, one {# ден} other {# дни}}",
   "relative_time.full.hours": "преди {number, plural, one {# час} other {# часа}}",
   "relative_time.full.just_now": "току-що",
   "relative_time.full.minutes": "преди {number, plural, one {# минута} other {# минути}}",
   "relative_time.full.seconds": "преди {number, plural, one {# секунда} other {# секунди}}",
-  "relative_time.hours": "{number}ч.",
+  "relative_time.hours": "{number} ч.",
   "relative_time.just_now": "сега",
-  "relative_time.minutes": "{number}м.",
+  "relative_time.minutes": "{number} мин.",
   "relative_time.seconds": "{number}с.",
   "relative_time.today": "днес",
   "reply_indicator.cancel": "Отказ",
@@ -514,7 +514,7 @@
   "search.placeholder": "Търсене",
   "search.search_or_paste": "Търсене или поставяне на URL адрес",
   "search_popout.search_format": "Формат за разширено търсене",
-  "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+  "search_popout.tips.full_text": "Търсене с обикновен текст връща публикации, които сте написали, харесали, споделили, или в които сте били споменати, както и съвпадащи потребителски имена, показвани имена и хаштагове.",
   "search_popout.tips.hashtag": "хаштаг",
   "search_popout.tips.status": "публикация",
   "search_popout.tips.text": "Обикновеният текст връща съответстващи показвани имена, потребителски имена и хаштагове",
@@ -572,7 +572,7 @@
   "status.reblogs.empty": "Все още никой не е споделил тази публикация. Когато някой го направи, ще се покаже тук.",
   "status.redraft": "Изтриване и преработване",
   "status.remove_bookmark": "Премахване на отметката",
-  "status.replied_to": "Отговори на {name}",
+  "status.replied_to": "В отговор до {name}",
   "status.reply": "Отговор",
   "status.replyAll": "Отговор на тема",
   "status.report": "Докладване на @{name}",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index f967d3dfe..e046824b6 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -6,7 +6,7 @@
   "about.domain_blocks.preamble": "Gant Mastodon e c'hellit gwelet danvez hag eskemm gant implijerien·ezed eus forzh peseurt servijer er fedibed peurliesañ. Setu an nemedennoù a zo bet graet evit ar servijer-mañ e-unan.",
   "about.domain_blocks.silenced.explanation": "Ne vo ket gwelet profiloù eus ar servijer-mañ ganeoc'h peurliesañ, nemet ma vefec'h o klask war o lec'h pe choazfec'h o heuliañ.",
   "about.domain_blocks.silenced.title": "Bevennet",
-  "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
+  "about.domain_blocks.suspended.explanation": "Roadenn ebet eus ar servijer-mañ ne vo keweriet, kadavet pe eskemmet, ar pezh a lako an etreweriañ pe ar c'hehentiñ gant implijerien adalek ar servijer-mañ dibosupl.",
   "about.domain_blocks.suspended.title": "Astalet",
   "about.not_available": "An titour-mañ ne c'heller ket gwelet war ar servijer-mañ.",
   "about.powered_by": "Rouedad sokial digreizenned kaset gant {mastodon}",
@@ -81,21 +81,21 @@
   "autosuggest_hashtag.per_week": "{count} bep sizhun",
   "boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou",
   "bundle_column_error.copy_stacktrace": "Eilañ an danevell fazi",
-  "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
+  "bundle_column_error.error.body": "N'haller ket skrammañ ar bajenn goulennet. Gallout a ra bezañ abalamour d'ur beug er c'hod pe d'ur gudenn keverlec'hded gant ar merdeer.",
   "bundle_column_error.error.title": "Chaous !",
-  "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
+  "bundle_column_error.network.body": "Degouezhet ez eus bet ur fazi en ur glask kargañ ar bajenn-mañ. Gallout a rafe bezañ abalamour d'ur gudenn padennek pe abalamour d'ar servijer-mañ.",
   "bundle_column_error.network.title": "Fazi rouedad",
   "bundle_column_error.retry": "Klask en-dro",
   "bundle_column_error.return": "Distreiñ d'an degemer",
-  "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?",
+  "bundle_column_error.routing.body": "N'haller ket kavout ar bajenn goulennet. Sur oc'h eo reizh an URL er varrenn chomlec'hioù?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Serriñ",
   "bundle_modal_error.message": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.",
   "bundle_modal_error.retry": "Klask en-dro",
   "closed_registrations.other_server_instructions": "Peogwir ez eo Mastodon digreizennet e c'heller krouiñ ur gont war ur servijer all ha kenderc'hel da zaremprediñ gant hemañ.",
-  "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
+  "closed_registrations_modal.description": "N'eo ket posupl krouiñ ur gont war {domain} evit ar mare, met n'ho peus ket ezhomm ur gont war {domain} dre ret evit ober gant Mastodon.",
   "closed_registrations_modal.find_another_server": "Kavout ur servijer all",
-  "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
+  "closed_registrations_modal.preamble": "Digreizennet eo Mastodon, forzh pelec'h e vefe krouet ho kont e viot gouest da heuliañ hag etreweriañ gant an holl war ar servijer-mañ. Gallout a rit herbec'hiañ anezhañ hoc'h-unan zoken!",
   "closed_registrations_modal.title": "Enskrivadurioù war Mastodon",
   "column.about": "Diwar-benn",
   "column.blocks": "Implijer·ezed·ien berzet",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index aa3c1f369..6b1743d61 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -153,9 +153,9 @@
   "confirmations.block.message": "Segur que vols blocar a {name}?",
   "confirmations.cancel_follow_request.confirm": "Retirar la sol·licitud",
   "confirmations.cancel_follow_request.message": "Segur que vols retirar la sol·licitud de seguiment de {name}?",
-  "confirmations.delete.confirm": "Suprimeix",
+  "confirmations.delete.confirm": "Elimina",
   "confirmations.delete.message": "Segur que vols eliminar la publicació?",
-  "confirmations.delete_list.confirm": "Suprimeix",
+  "confirmations.delete_list.confirm": "Elimina",
   "confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?",
   "confirmations.discard_edit_media.confirm": "Descarta",
   "confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?",
@@ -166,8 +166,8 @@
   "confirmations.mute.confirm": "Silencia",
   "confirmations.mute.explanation": "Això amagarà les seves publicacions i les que els mencionen, però encara els permetrà veure les teves i seguir-te.",
   "confirmations.mute.message": "Segur que vols silenciar {name}?",
-  "confirmations.redraft.confirm": "Esborra i reescriu",
-  "confirmations.redraft.message": "Segur que vols esborrar aquesta publicació i tornar-la a escriure? Perdràs tots els impulsos i els preferits, i les respostes a la publicació original es quedaran orfes.",
+  "confirmations.redraft.confirm": "Elimina i reescriu-la",
+  "confirmations.redraft.message": "Segur que vols eliminar aquesta publicació i tornar-la a escriure? Es perdran tots els impulsos i els favorits, i les respostes a la publicació original quedaran aïllades.",
   "confirmations.reply.confirm": "Respon",
   "confirmations.reply.message": "Si respons ara, sobreescriuràs el missatge que estàs editant. Segur que vols continuar?",
   "confirmations.unfollow.confirm": "Deixa de seguir",
@@ -213,7 +213,7 @@
   "empty_column.blocks": "Encara no has blocat cap usuari.",
   "empty_column.bookmarked_statuses": "Encara no has marcat cap publicació com a preferida. Quan en marquis una, apareixerà aquí.",
   "empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!",
-  "empty_column.direct": "Encara no tens missatges directes. Quan n'enviïs o en rebis, es mostraran aquí.",
+  "empty_column.direct": "Encara no teniu missatges directes. Quan n'envieu o en rebeu, sortiran aquí.",
   "empty_column.domain_blocks": "Encara no hi ha dominis blocats.",
   "empty_column.explore_statuses": "No hi ha res en tendència ara mateix. Revisa-ho més tard!",
   "empty_column.favourited_statuses": "Encara no has afavorit cap publicació. Quan ho facis, apareixerà aquí.",
@@ -341,7 +341,7 @@
   "limited_account_hint.title": "Aquest perfil ha estat amagat pels moderadors de {domain}.",
   "lists.account.add": "Afegeix a la llista",
   "lists.account.remove": "Elimina de la llista",
-  "lists.delete": "Esborra la llista",
+  "lists.delete": "Elimina la llista",
   "lists.edit": "Edita la llista",
   "lists.edit.submit": "Canvia el títol",
   "lists.new.create": "Afegeix una llista",
@@ -543,7 +543,7 @@
   "status.cancel_reblog_private": "Desfés l'impuls",
   "status.cannot_reblog": "No es pot impulsar aquesta publicació",
   "status.copy": "Copia l'enllaç a la publicació",
-  "status.delete": "Esborra",
+  "status.delete": "Elimina",
   "status.detailed_status": "Vista detallada de la conversa",
   "status.direct": "Missatge directe a @{name}",
   "status.edit": "Edita",
@@ -570,8 +570,8 @@
   "status.reblog_private": "Impulsa amb la visibilitat original",
   "status.reblogged_by": "impulsat per {name}",
   "status.reblogs.empty": "Encara no ha impulsat ningú aquest tut. Quan algú ho faci, apareixerà aquí.",
-  "status.redraft": "Esborra-la i reescriure-la",
-  "status.remove_bookmark": "Suprimeix el marcador",
+  "status.redraft": "Elimina i reescriu-la",
+  "status.remove_bookmark": "Elimina el marcador",
   "status.replied_to": "En resposta a {name}",
   "status.reply": "Respon",
   "status.replyAll": "Respon al fil",
@@ -622,7 +622,7 @@
   "upload_form.description_missing": "No s'hi ha afegit cap descripció",
   "upload_form.edit": "Edita",
   "upload_form.thumbnail": "Canvia la miniatura",
-  "upload_form.undo": "Esborra",
+  "upload_form.undo": "Elimina",
   "upload_form.video_description": "Descripció per a persones amb discapacitat auditiva o amb discapacitat visual",
   "upload_modal.analyzing_picture": "S'analitza la imatge…",
   "upload_modal.apply": "Aplica",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index e342aa473..f153d823b 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -13,13 +13,13 @@
   "about.rules": "Pravidla serveru",
   "account.account_note_header": "Poznámka",
   "account.add_or_remove_from_list": "Přidat nebo odstranit ze seznamů",
-  "account.badges.bot": "Robot",
+  "account.badges.bot": "Bot",
   "account.badges.group": "Skupina",
   "account.block": "Blokovat @{name}",
   "account.block_domain": "Blokovat doménu {domain}",
-  "account.blocked": "Blokován",
+  "account.blocked": "Blokovaný",
   "account.browse_more_on_origin_server": "Více na původním profilu",
-  "account.cancel_follow_request": "Odvolat žádost o sledování",
+  "account.cancel_follow_request": "Zrušit žádost o sledování",
   "account.direct": "Poslat @{name} přímou zprávu",
   "account.disable_notifications": "Přestat mě upozorňovat, když @{name} zveřejní příspěvek",
   "account.domain_blocked": "Doména blokována",
@@ -31,11 +31,11 @@
   "account.featured_tags.title": "Hlavní hashtagy uživatele {name}",
   "account.follow": "Sledovat",
   "account.followers": "Sledující",
-  "account.followers.empty": "Tohoto uživatele ještě nikdo nesleduje.",
+  "account.followers.empty": "Tohoto uživatele zatím nikdo nesleduje.",
   "account.followers_counter": "{count, plural, one {{counter} Sledující} few {{counter} Sledující} many {{counter} Sledujících} other {{counter} Sledujících}}",
   "account.following": "Sledujete",
   "account.following_counter": "{count, plural, one {{counter} Sledovaný} few {{counter} Sledovaní} many {{counter} Sledovaných} other {{counter} Sledovaných}}",
-  "account.follows.empty": "Tento uživatel ještě nikoho nesleduje.",
+  "account.follows.empty": "Tento uživatel zatím nikoho nesleduje.",
   "account.follows_you": "Sleduje vás",
   "account.go_to_profile": "Přejít na profil",
   "account.hide_reblogs": "Skrýt boosty od @{name}",
@@ -45,7 +45,7 @@
   "account.locked_info": "Stav soukromí tohoto účtu je nastaven na zamčeno. Jeho vlastník ručně posuzuje, kdo ho může sledovat.",
   "account.media": "Média",
   "account.mention": "Zmínit @{name}",
-  "account.moved_to": "{name} uvedl/a, že jeho/její nový účet je nyní:",
+  "account.moved_to": "Uživatel {name} uvedl, že jeho nový účet je nyní:",
   "account.mute": "Skrýt @{name}",
   "account.mute_notifications": "Skrýt oznámení od @{name}",
   "account.muted": "Skrytý",
@@ -80,17 +80,17 @@
   "audio.hide": "Skrýt zvuk",
   "autosuggest_hashtag.per_week": "{count} za týden",
   "boost_modal.combo": "Příště můžete pro přeskočení stisknout {combo}",
-  "bundle_column_error.copy_stacktrace": "Kopírovat zprávu o chybě",
+  "bundle_column_error.copy_stacktrace": "Zkopírovat zprávu o chybě",
   "bundle_column_error.error.body": "Požadovanou stránku nelze vykreslit. Může to být způsobeno chybou v našem kódu nebo problémem s kompatibilitou prohlížeče.",
   "bundle_column_error.error.title": "Ale ne!",
-  "bundle_column_error.network.body": "Při pokusu o načtení této stránky došlo k chybě. To může být způsobeno dočasným problémem s připojením k Internetu nebo k tomuto serveru.",
+  "bundle_column_error.network.body": "Při pokusu o načtení této stránky došlo k chybě. To může být způsobeno dočasným problémem s připojením k internetu nebo k tomuto serveru.",
   "bundle_column_error.network.title": "Chyba sítě",
   "bundle_column_error.retry": "Zkusit znovu",
   "bundle_column_error.return": "Zpět na domovskou stránku",
   "bundle_column_error.routing.body": "Požadovaná stránka nebyla nalezena. Opravdu je URL v adresním řádku správně?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Zavřít",
-  "bundle_modal_error.message": "Při načítání této komponenty se něco pokazilo.",
+  "bundle_modal_error.message": "Při načítání tohoto komponentu se něco pokazilo.",
   "bundle_modal_error.retry": "Zkusit znovu",
   "closed_registrations.other_server_instructions": "Protože Mastodon je decentralizovaný, můžete si vytvořit účet na jiném serveru a přesto komunikovat s tímto serverem.",
   "closed_registrations_modal.description": "V současné době není možné vytvořit účet na {domain}, ale mějte prosím na paměti, že k používání Mastodonu nepotřebujete účet konkrétně na {domain}.",
@@ -127,16 +127,16 @@
   "compose.language.search": "Prohledat jazyky...",
   "compose_form.direct_message_warning_learn_more": "Zjistit více",
   "compose_form.encryption_warning": "Příspěvky na Mastodonu nejsou end-to-end šifrovány. Nesdílejte přes Mastodon žádné citlivé informace.",
-  "compose_form.hashtag_warning": "Tento příspěvek nebude zobrazen pod žádným hashtagem, neboť je neuvedený. Pouze veřejné příspěvky mohou být vyhledány podle hashtagu.",
+  "compose_form.hashtag_warning": "Tento příspěvek nebude zobrazen pod žádným hashtagem, neboť je neveřejný. Pouze veřejné příspěvky mohou být vyhledány podle hashtagu.",
   "compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky učené pouze pro sledující.",
   "compose_form.lock_disclaimer.lock": "zamčený",
   "compose_form.placeholder": "Co se vám honí hlavou?",
   "compose_form.poll.add_option": "Přidat volbu",
   "compose_form.poll.duration": "Doba trvání ankety",
   "compose_form.poll.option_placeholder": "Volba {number}",
-  "compose_form.poll.remove_option": "Odstranit tuto volbu",
-  "compose_form.poll.switch_to_multiple": "Povolit u ankety výběr více možností",
-  "compose_form.poll.switch_to_single": "Povolit u ankety výběr jediné možnosti",
+  "compose_form.poll.remove_option": "Odebrat tuto volbu",
+  "compose_form.poll.switch_to_multiple": "Povolit u ankety výběr více voleb",
+  "compose_form.poll.switch_to_single": "Povolit u ankety výběr pouze jedné volby",
   "compose_form.publish": "Zveřejnit",
   "compose_form.publish_form": "Zveřejnit",
   "compose_form.publish_loud": "{publish}!",
@@ -150,22 +150,22 @@
   "confirmation_modal.cancel": "Zrušit",
   "confirmations.block.block_and_report": "Blokovat a nahlásit",
   "confirmations.block.confirm": "Blokovat",
-  "confirmations.block.message": "Opravdu chcete zablokovat {name}?",
-  "confirmations.cancel_follow_request.confirm": "Odvolat žádost",
-  "confirmations.cancel_follow_request.message": "Opravdu chcete odvolat svou žádost o sledování {name}?",
+  "confirmations.block.message": "Opravdu chcete blokovat {name}?",
+  "confirmations.cancel_follow_request.confirm": "Zrušit žádost",
+  "confirmations.cancel_follow_request.message": "Opravdu chcete zrušit svou žádost o sledování {name}?",
   "confirmations.delete.confirm": "Smazat",
   "confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?",
   "confirmations.delete_list.confirm": "Smazat",
   "confirmations.delete_list.message": "Opravdu chcete tento seznam navždy smazat?",
   "confirmations.discard_edit_media.confirm": "Zahodit",
-  "confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, přesto je zahodit?",
+  "confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, chcete je přesto zahodit?",
   "confirmations.domain_block.confirm": "Blokovat celou doménu",
-  "confirmations.domain_block.message": "Opravdu chcete blokovat celou doménu {domain}? Ve většině případů stačí zablokovat nebo skrýt pár konkrétních uživatelů, což také doporučujeme. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.",
+  "confirmations.domain_block.message": "Opravdu chcete blokovat celou doménu {domain}? Ve většině případů stačí blokovat nebo skrýt pár konkrétních uživatelů, což také doporučujeme. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.",
   "confirmations.logout.confirm": "Odhlásit se",
   "confirmations.logout.message": "Opravdu se chcete odhlásit?",
   "confirmations.mute.confirm": "Skrýt",
   "confirmations.mute.explanation": "Tohle skryje uživatelovy příspěvky a příspěvky, které ho zmiňují, ale uživatel stále uvidí vaše příspěvky a může vás sledovat.",
-  "confirmations.mute.message": "Opravdu chcete {name} skrýt?",
+  "confirmations.mute.message": "Opravdu chcete skrýt uživatele {name}?",
   "confirmations.redraft.confirm": "Smazat a přepsat",
   "confirmations.redraft.message": "Opravdu chcete smazat a přepsat tento příspěvek? Oblíbení a boosty budou ztraceny a odpovědi na původní příspěvek ztratí kontext.",
   "confirmations.reply.confirm": "Odpovědět",
@@ -177,16 +177,16 @@
   "conversation.open": "Zobrazit konverzaci",
   "conversation.with": "S {names}",
   "copypaste.copied": "Zkopírováno",
-  "copypaste.copy": "Kopírovat",
+  "copypaste.copy": "Zkopírovat",
   "directory.federated": "Ze známého fedivesmíru",
-  "directory.local": "Pouze z domény {domain}",
+  "directory.local": "Pouze z {domain}",
   "directory.new_arrivals": "Nově příchozí",
   "directory.recently_active": "Nedávno aktivní",
   "disabled_account_banner.account_settings": "Nastavení účtu",
   "disabled_account_banner.text": "Váš účet {disabledAccount} je momentálně deaktivován.",
   "dismissable_banner.community_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí, jejichž účty hostuje {domain}.",
   "dismissable_banner.dismiss": "Zavřít",
-  "dismissable_banner.explore_links": "O těchto novinkách hovoří lidé na tomto a dalších serverech decentralizované sítě právě teď.",
+  "dismissable_banner.explore_links": "O těchto zprávách hovoří lidé na tomto a dalších serverech decentralizované sítě právě teď.",
   "dismissable_banner.explore_statuses": "Tyto příspěvky z tohoto a dalších serverů v decentralizované síti nyní na tomto serveru získávají na popularitě.",
   "dismissable_banner.explore_tags": "Tyto hashtagy právě teď získávají na popularitě mezi lidmi na tomto a dalších serverech decentralizované sítě.",
   "dismissable_banner.public_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí na tomto a jiných serverech decentralizované sítě, o kterých tento server ví.",
@@ -211,22 +211,22 @@
   "empty_column.account_timeline": "Nejsou tu žádné příspěvky!",
   "empty_column.account_unavailable": "Profil není dostupný",
   "empty_column.blocks": "Ještě jste nezablokovali žádného uživatele.",
-  "empty_column.bookmarked_statuses": "Ještě nemáte v záložkách žádné příspěvky. Pokud si do nich nějaký přidáte, zobrazí se zde.",
+  "empty_column.bookmarked_statuses": "Zatím v záložkách nemáte žádné příspěvky. Až si do nich nějaký přidáte, zobrazí se zde.",
   "empty_column.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!",
-  "empty_column.direct": "Ještě nemáte žádné přímé zprávy. Pokud nějakou pošlete nebo dostanete, zobrazí se zde.",
-  "empty_column.domain_blocks": "Ještě nemáte žádné blokované domény.",
+  "empty_column.direct": "Zatím nemáte žádné přímé zprávy. Až nějakou pošlete nebo dostanete, zobrazí se zde.",
+  "empty_column.domain_blocks": "Ještě nemáte žádné zablokované domény.",
   "empty_column.explore_statuses": "Momentálně není nic populární. Vraťte se později!",
-  "empty_column.favourited_statuses": "Ještě nemáte žádné oblíbené příspěvky. Pokud si nějaký oblíbíte, zobrazí se zde.",
-  "empty_column.favourites": "Tento příspěvek si ještě nikdo neoblíbil. Pokud to někdo udělá, zobrazí se zde.",
+  "empty_column.favourited_statuses": "Zatím nemáte žádné oblíbené příspěvky. Až si nějaký oblíbíte, zobrazí se zde.",
+  "empty_column.favourites": "Tento příspěvek si zatím nikdo neoblíbil. Až to někdo udělá, zobrazí se zde.",
   "empty_column.follow_recommendations": "Zdá se, že pro vás nelze vygenerovat žádné návrhy. Můžete zkusit přes vyhledávání nalézt lidi, které znáte, nebo prozkoumat populární hashtagy.",
-  "empty_column.follow_requests": "Ještě nemáte žádné žádosti o sledování. Pokud nějakou obdržíte, zobrazí se zde.",
-  "empty_column.hashtag": "Pod tímto hashtagem zde ještě nic není.",
+  "empty_column.follow_requests": "Zatím nemáte žádné žádosti o sledování. Až nějakou obdržíte, zobrazí se zde.",
+  "empty_column.hashtag": "Pod tímto hashtagem zde zatím nic není.",
   "empty_column.home": "Vaše domovská časová osa je prázdná! Naplňte ji sledováním dalších lidí. {suggestions}",
   "empty_column.home.suggestions": "Prohlédněte si návrhy",
-  "empty_column.list": "V tomto seznamu ještě nic není. Pokud nějaký člen z tohoto seznamu napíše nový příspěvek, objeví se zde.",
-  "empty_column.lists": "Ještě nemáte žádný seznam. Pokud nějaký vytvoříte, zobrazí se zde.",
-  "empty_column.mutes": "Ještě jste neskryli žádného uživatele.",
-  "empty_column.notifications": "Momentálně nemáte žádná oznámení. Jakmile s vámi někdo bude interagovat, uvidíte to zde.",
+  "empty_column.list": "V tomto seznamu zatím nic není. Až nějaký člen z tohoto seznamu zveřejní nový příspěvek, objeví se zde.",
+  "empty_column.lists": "Zatím nemáte žádné seznamy. Až nějaký vytvoříte, zobrazí se zde.",
+  "empty_column.mutes": "Zatím jste neskryli žádného uživatele.",
+  "empty_column.notifications": "Zatím nemáte žádná oznámení. Až s vámi někdo bude interagovat, uvidíte to zde.",
   "empty_column.public": "Tady nic není! Napište něco veřejně, nebo začněte ručně sledovat uživatele z jiných serverů, aby tu něco přibylo",
   "error.unexpected_crash.explanation": "Kvůli chybě v našem kódu nebo problému s kompatibilitou prohlížeče nemohla být tato stránka správně zobrazena.",
   "error.unexpected_crash.explanation_addons": "Tuto stránku nelze správně zobrazit. Takovou chybu obvykle způsobuje doplněk prohlížeče nebo nástroje pro automatický překlad.",
@@ -236,11 +236,11 @@
   "errors.unexpected_crash.report_issue": "Nahlásit problém",
   "explore.search_results": "Výsledky hledání",
   "explore.title": "Objevit",
-  "filter_modal.added.context_mismatch_explanation": "Tato kategorie filtru se nevztahuje na kontext, ve kterém jste tento příspěvek otevřeli. Pokud chcete, aby byl příspěvek filtrován i v tomto kontextu, budete muset filtr upravit.",
+  "filter_modal.added.context_mismatch_explanation": "Tato kategorie filtrů se nevztahuje na kontext, ve kterém jste tento příspěvek otevřeli. Pokud chcete, aby byl příspěvek filtrován i v tomto kontextu, budete muset filtr upravit.",
   "filter_modal.added.context_mismatch_title": "Kontext se neshoduje!",
   "filter_modal.added.expired_explanation": "Tato kategorie filtrů vypršela, budete muset změnit datum vypršení platnosti, aby mohla být použita.",
   "filter_modal.added.expired_title": "Platnost filtru vypršela!",
-  "filter_modal.added.review_and_configure": "Chcete-li zkontrolovat a dále konfigurovat tuto kategorii filtru, přejděte do {settings_link}.",
+  "filter_modal.added.review_and_configure": "Chcete-li zkontrolovat a dále konfigurovat tuto kategorii filtrů, přejděte do {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Nastavení filtru",
   "filter_modal.added.settings_link": "stránka nastavení",
   "filter_modal.added.short_explanation": "Tento příspěvek byl přidán do následující kategorie filtrů: {title}.",
@@ -254,10 +254,10 @@
   "filter_modal.title.status": "Filtrovat příspěvek",
   "follow_recommendations.done": "Hotovo",
   "follow_recommendations.heading": "Sledujte lidi, jejichž příspěvky chcete vidět! Tady jsou nějaké návrhy.",
-  "follow_recommendations.lead": "Příspěvky od lidí, které sledujete, se budou objevovat v chronologickém pořadí ve vaší domovské ose. Nebojte se, že uděláte chybu, stejně snadno můžete lidi kdykoliv přestat sledovat!",
+  "follow_recommendations.lead": "Příspěvky od lidí, které sledujete, se budou objevovat v chronologickém pořadí ve vašem domovském kanálu. Nebojte se, že uděláte chybu, stejně snadno můžete lidi kdykoliv přestat sledovat!",
   "follow_request.authorize": "Autorizovat",
   "follow_request.reject": "Zamítnout",
-  "follow_requests.unlocked_explanation": "Přestože váš účet není zamčený, administrátor {domain} usoudil, že byste mohli chtít tyto požadavky na sledování zkontrolovat ručně.",
+  "follow_requests.unlocked_explanation": "Přestože váš účet není zamčený, administrátor {domain} usoudil, že byste mohli chtít tyto žádosti o sledování zkontrolovat ručně.",
   "footer.about": "O aplikaci",
   "footer.directory": "Adresář profilů",
   "footer.get_app": "Získat aplikaci",
@@ -277,7 +277,7 @@
   "hashtag.column_settings.tag_mode.none": "Žádný z těchto",
   "hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
   "hashtag.follow": "Sledovat hashtag",
-  "hashtag.unfollow": "Zrušit sledování hashtagu",
+  "hashtag.unfollow": "Přestat sledovat hashtag",
   "home.column_settings.basic": "Základní",
   "home.column_settings.show_reblogs": "Zobrazit boosty",
   "home.column_settings.show_replies": "Zobrazit odpovědi",
@@ -291,7 +291,7 @@
   "interaction_modal.on_this_server": "Na tomto serveru",
   "interaction_modal.other_server_instructions": "Zkopírujte a vložte tuto URL adresu do vyhledávacího pole vaší oblíbené Mastodon aplikace nebo webového rozhraní vašeho Mastodon serveru.",
   "interaction_modal.preamble": "Protože Mastodon je decentralizovaný, pokud nemáte účet na tomto serveru, můžete použít svůj existující účet hostovaný jiným Mastodon serverem nebo kompatibilní platformou.",
-  "interaction_modal.title.favourite": "Oblíbený příspěvek od {name}",
+  "interaction_modal.title.favourite": "Oblíbit si příspěvek od uživatele {name}",
   "interaction_modal.title.follow": "Sledovat {name}",
   "interaction_modal.title.reblog": "Boostnout příspěvek uživatele {name}",
   "interaction_modal.title.reply": "Odpovědět na příspěvek uživatele {name}",
@@ -302,10 +302,10 @@
   "keyboard_shortcuts.blocked": "Otevřít seznam blokovaných uživatelů",
   "keyboard_shortcuts.boost": "Boostnout příspěvek",
   "keyboard_shortcuts.column": "Focus na sloupec",
-  "keyboard_shortcuts.compose": "Focus na textové pole nového příspěvku",
+  "keyboard_shortcuts.compose": "Zaměřit se na textové pole nového příspěvku",
   "keyboard_shortcuts.description": "Popis",
   "keyboard_shortcuts.direct": "k otevření sloupce přímých zpráv",
-  "keyboard_shortcuts.down": "Posunout dolů v seznamu",
+  "keyboard_shortcuts.down": "Posunout v seznamu dolů",
   "keyboard_shortcuts.enter": "Otevřít příspěvek",
   "keyboard_shortcuts.favourite": "Oblíbit si příspěvek",
   "keyboard_shortcuts.favourites": "Otevřít seznam oblíbených",
@@ -324,14 +324,14 @@
   "keyboard_shortcuts.profile": "Otevřít autorův profil",
   "keyboard_shortcuts.reply": "Odpovědět na příspěvek",
   "keyboard_shortcuts.requests": "Otevřít seznam žádostí o sledování",
-  "keyboard_shortcuts.search": "Focus na vyhledávací lištu",
+  "keyboard_shortcuts.search": "Zaměřit se na vyhledávací lištu",
   "keyboard_shortcuts.spoilers": "Zobrazit/skrýt pole varování o obsahu",
   "keyboard_shortcuts.start": "Otevřít sloupec „začínáme“",
   "keyboard_shortcuts.toggle_hidden": "Zobrazit/skrýt text za varováním o obsahu",
   "keyboard_shortcuts.toggle_sensitivity": "Zobrazit/skrýt média",
   "keyboard_shortcuts.toot": "Začít nový příspěvek",
-  "keyboard_shortcuts.unfocus": "Zrušit focus nového příspěvku/hledání",
-  "keyboard_shortcuts.up": "Posunout nahoru v seznamu",
+  "keyboard_shortcuts.unfocus": "Zrušit zaměření na nový příspěvek/hledání",
+  "keyboard_shortcuts.up": "Posunout v seznamu nahoru",
   "lightbox.close": "Zavřít",
   "lightbox.compress": "Sbalit pole zobrazení obrázku",
   "lightbox.expand": "Rozbalit pole zobrazení obrázku",
@@ -439,7 +439,7 @@
   "poll.total_people": "{count, plural, one {# člověk} few {# lidé} many {# lidí} other {# lidí}}",
   "poll.total_votes": "{count, plural, one {# hlas} few {# hlasy} many {# hlasů} other {# hlasů}}",
   "poll.vote": "Hlasovat",
-  "poll.voted": "Hlasoval/a jste pro tuto odpověď",
+  "poll.voted": "Hlasovali jste pro tuto odpověď",
   "poll.votes": "{votes, plural, one {# hlas} few {# hlasy} many {# hlasů} other {# hlasů}}",
   "poll_button.add_poll": "Přidat anketu",
   "poll_button.remove_poll": "Odebrat anketu",
@@ -451,7 +451,7 @@
   "privacy.public.long": "Viditelný pro všechny",
   "privacy.public.short": "Veřejné",
   "privacy.unlisted.long": "Viditelný pro všechny, ale vyňat z funkcí objevování",
-  "privacy.unlisted.short": "Neuvedený",
+  "privacy.unlisted.short": "Neveřejný",
   "privacy_policy.last_updated": "Naposledy aktualizováno {date}",
   "privacy_policy.title": "Zásady ochrany osobních údajů",
   "refresh": "Obnovit",
@@ -505,7 +505,7 @@
   "report.thanks.title": "Nechcete tohle vidět?",
   "report.thanks.title_actionable": "Děkujeme za nahlášení, podíváme se na to.",
   "report.unfollow": "Přestat sledovat @{name}",
-  "report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domácí časové ose, přestaňte jej sledovat.",
+  "report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.",
   "report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}",
   "report_notification.categories.other": "Ostatní",
   "report_notification.categories.spam": "Spam",
@@ -535,7 +535,7 @@
   "server_banner.server_stats": "Statistiky serveru:",
   "sign_in_banner.create_account": "Vytvořit účet",
   "sign_in_banner.sign_in": "Přihlásit se",
-  "sign_in_banner.text": "Přihlaste se pro sledování profilů nebo hashtagů, oblíbených, sdílení a odpovědi na příspěvky nebo interakci z vašeho účtu na jiném serveru.",
+  "sign_in_banner.text": "Přihlaste se pro sledování profilů nebo hashtagů, oblíbení, sdílení a odpovědí na příspěvky nebo interakci z vašeho účtu na jiném serveru.",
   "status.admin_account": "Otevřít moderátorské rozhraní pro @{name}",
   "status.admin_status": "Otevřít tento příspěvek v moderátorském rozhraní",
   "status.block": "Blokovat @{name}",
@@ -587,9 +587,9 @@
   "status.translate": "Přeložit",
   "status.translated_from_with": "Přeloženo z {lang} pomocí {provider}",
   "status.uncached_media_warning": "Nedostupné",
-  "status.unmute_conversation": "Zrušit skrytí konverzaci",
+  "status.unmute_conversation": "Zrušit skrytí konverzace",
   "status.unpin": "Odepnout z profilu",
-  "subscribed_languages.lead": "Po změně se objeví pouze příspěvky ve vybraných jazycích na vaší domovské časové ose a seznamu časových os. Pro příjem příspěvků ve všech jazycích nevyberte žádný jazyk.",
+  "subscribed_languages.lead": "Ve vašem domovském kanálu a časových osách se po změně budou objevovat pouze příspěvky ve vybraných jazycích. Pro příjem příspěvků ve všech jazycích nevyberte žádný jazyk.",
   "subscribed_languages.save": "Uložit změny",
   "subscribed_languages.target": "Změnit odebírané jazyky na {target}",
   "suggestions.dismiss": "Odmítnout návrh",
@@ -616,7 +616,7 @@
   "upload_area.title": "Nahrajte přetažením",
   "upload_button.label": "Přidat obrázky, video nebo audio soubor",
   "upload_error.limit": "Byl překročen limit nahraných souborů.",
-  "upload_error.poll": "U anket není nahrávání souborů povoleno.",
+  "upload_error.poll": "Nahrávání souborů není povoleno s anketami.",
   "upload_form.audio_description": "Popis pro sluchově postižené",
   "upload_form.description": "Popis pro zrakově postižené",
   "upload_form.description_missing": "Nebyl přidán popis",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 96567a6a5..0f29be2c9 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -9,7 +9,7 @@
   "about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei storio na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.",
   "about.domain_blocks.suspended.title": "Ataliwyd",
   "about.not_available": "Nid yw'r wybodaeth hon ar gael ar y gweinydd hwn.",
-  "about.powered_by": "Cyfrwng cymdeithasol datganoledig wedi ei yrru gan {mastodon}",
+  "about.powered_by": "Cyfrwng cymdeithasol datganoledig yn cael ei yrru gan {mastodon}",
   "about.rules": "Rheolau'r gweinydd",
   "account.account_note_header": "Nodyn",
   "account.add_or_remove_from_list": "Ychwanegu neu Dileu o'r rhestrau",
@@ -26,7 +26,7 @@
   "account.edit_profile": "Golygu proffil",
   "account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio",
   "account.endorse": "Dangos ar fy mhroffil",
-  "account.featured_tags.last_status_at": "Y cofnod diwethaf ar {date}",
+  "account.featured_tags.last_status_at": "Y postiad diwethaf ar {date}",
   "account.featured_tags.last_status_never": "Dim postiadau",
   "account.featured_tags.title": "hashnodau dan sylw {name}",
   "account.follow": "Dilyn",
@@ -39,16 +39,16 @@
   "account.follows_you": "Yn eich dilyn chi",
   "account.go_to_profile": "Mynd i'r proffil",
   "account.hide_reblogs": "Cuddio hybiau gan @{name}",
-  "account.joined_short": "Ymunodd",
-  "account.languages": "Newid ieithoedd wedi tanysgrifio iddynt nhw",
+  "account.joined_short": "Wedi Ymuno",
+  "account.languages": "Newid ieithoedd wedi tanysgrifio iddyn nhw",
   "account.link_verified_on": "Gwiriwyd perchnogaeth y ddolen yma ar {date}",
   "account.locked_info": "Mae'r statws preifatrwydd cyfrif hwn wedi'i osod i fod ar glo. Mae'r perchennog yn adolygu'r sawl sy'n gallu eu dilyn.",
   "account.media": "Cyfryngau",
   "account.mention": "Crybwyll @{name}",
   "account.moved_to": "Mae {name} wedi nodi fod eu cyfrif newydd yn:",
-  "account.mute": "Anwybyddu @{name}",
-  "account.mute_notifications": "Diffodd hysbysiadau o @{name}",
-  "account.muted": "Wedi anwybyddu",
+  "account.mute": "Tewi @{name}",
+  "account.mute_notifications": "Tewi hysbysiadau o @{name}",
+  "account.muted": "Wedi tewi",
   "account.open_original_page": "Agor y dudalen wreiddiol",
   "account.posts": "Postiadau",
   "account.posts_with_replies": "Postiadau ac atebion",
@@ -56,14 +56,14 @@
   "account.requested": "Aros am gymeradwyaeth. Cliciwch er mwyn canslo cais dilyn",
   "account.share": "Rhannwch broffil @{name}",
   "account.show_reblogs": "Dangos hybiau gan @{name}",
-  "account.statuses_counter": "{count, plural, one {Postiad: {counter}} other {Postiadau: {counter}}}",
+  "account.statuses_counter": "{count, plural, one {Postiad: {counter}} other {Postiad: {counter}}}",
   "account.unblock": "Dadflocio @{name}",
   "account.unblock_domain": "Dadflocio parth {domain}",
   "account.unblock_short": "Dadflocio",
-  "account.unendorse": "Peidio a'i arddangos ar fy mhroffil",
+  "account.unendorse": "Peidio a'i ddangos ar fy mhroffil",
   "account.unfollow": "Dad-ddilyn",
-  "account.unmute": "Dad-anwybyddu {name}",
-  "account.unmute_notifications": "Dad-ddiffodd hysbysiadau o @{name}",
+  "account.unmute": "Dad-dewi {name}",
+  "account.unmute_notifications": "Dad-dewi hysbysiadau o @{name}",
   "account.unmute_short": "Dad-anwybyddu",
   "account_note.placeholder": "Clicio i ychwanegu nodyn",
   "admin.dashboard.daily_retention": "Cyfradd cadw defnyddwyr fesul diwrnod ar ôl cofrestru",
@@ -95,20 +95,20 @@
   "closed_registrations.other_server_instructions": "Gan fod Mastodon yn ddatganoledig, gallwch greu cyfrif ar weinydd arall a dal i ryngweithio gyda hwn.",
   "closed_registrations_modal.description": "Ar hyn o bryd nid yw'n bosib creu cyfrif ar {domain}, ond cadwch mewn cof nad oes raid i chi gael cyfrif yn benodol ar {domain} i ddefnyddio Mastodon.",
   "closed_registrations_modal.find_another_server": "Dod o hyd i weinydd arall",
-  "closed_registrations_modal.preamble": "Mae Mastodon wedi'i ddatganoli, felly does dim gwahaniaeth ble rydych chi'n creu eich cyfrif, byddwch chi'n gallu dilyn a rhyngweithio ag unrhyw un ar y gweinydd hwn. Gallwch hyd yn oed ei gynnal ef eich hun!",
+  "closed_registrations_modal.preamble": "Mae Mastodon wedi'i ddatganoli, felly does dim gwahaniaeth ble rydych chi'n creu eich cyfrif, byddwch chi'n gallu dilyn a rhyngweithio ag unrhyw un ar y gweinydd hwn. Gallwch hyd yn oed ei gynnal un eich hun!",
   "closed_registrations_modal.title": "Ymgofrestru ar Mastodon",
   "column.about": "Ynghylch",
   "column.blocks": "Defnyddwyr a flociwyd",
-  "column.bookmarks": "Nodau Tudalen",
+  "column.bookmarks": "Nodau tudalen",
   "column.community": "Ffrwd lleol",
   "column.direct": "Negeseuon preifat",
   "column.directory": "Pori proffiliau",
-  "column.domain_blocks": "Parthau cuddiedig",
+  "column.domain_blocks": "Parthau wedi'u blocio",
   "column.favourites": "Ffefrynnau",
   "column.follow_requests": "Ceisiadau dilyn",
-  "column.home": "Hafan",
+  "column.home": "Cartref",
   "column.lists": "Rhestrau",
-  "column.mutes": "Wedi anwybyddu",
+  "column.mutes": "Defnyddwyr wedi'u tewi",
   "column.notifications": "Hysbysiadau",
   "column.pins": "Postiadau wedi eu pinio",
   "column.public": "Ffrwd y ffederasiwn",
@@ -150,7 +150,7 @@
   "confirmation_modal.cancel": "Diddymu",
   "confirmations.block.block_and_report": "Rhwystro ac Adrodd",
   "confirmations.block.confirm": "Blocio",
-  "confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
+  "confirmations.block.message": "Ydych chi'n siŵr eich bod eisiau blocio {name}?",
   "confirmations.cancel_follow_request.confirm": "Tynnu'r cais yn ôl",
   "confirmations.cancel_follow_request.message": "Ydych chi'n siŵr eich bod am dynnu'ch cais i ddilyn {name} yn ôl?",
   "confirmations.delete.confirm": "Dileu",
@@ -160,18 +160,18 @@
   "confirmations.discard_edit_media.confirm": "Dileu",
   "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg, eu taflu beth bynnag?",
   "confirmations.domain_block.confirm": "Blocio parth cyfan",
-  "confirmations.domain_block.message": "Ydych chi wir, wir eisiau blocio'r holl {domain}? Fel arfer, mae blocio neu anwybyddu pobl penodol yn broses mwy effeithiol. Ni fyddwch yn gweld cynnwys o'r parth hwnnw mewn ffrydiau cyhoeddus neu yn eich hysbysiadau. Bydd eich dilynwyr o'r parth hwnnw yn cael eu ddileu.",
+  "confirmations.domain_block.message": "Ydych chi wir, wir eisiau blocio'r holl {domain}? Fel arfer, mae blocio neu dewi pobl penodol yn broses mwy effeithiol. Fyddwch chi ddim yn gweld cynnwys o'r parth hwnnw mewn ffrydiau cyhoeddus neu yn eich hysbysiadau. Bydd eich dilynwyr o'r parth hwnnw yn cael eu ddileu.",
   "confirmations.logout.confirm": "Allgofnodi",
   "confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?",
-  "confirmations.mute.confirm": "Anwybyddu",
+  "confirmations.mute.confirm": "Tewi",
   "confirmations.mute.explanation": "Bydd hyn yn cuddio postiadau oddi wrthyn nhw a phostiadau sydd yn sôn amdanyn nhw, ond bydd hyn dal yn gadael iddyn nhw gweld eich postiadau a'ch dilyn.",
-  "confirmations.mute.message": "Ydych chi wir eisiau anwybyddu {name}?",
+  "confirmations.mute.message": "Ydych chi wir eisiau tewi {name}?",
   "confirmations.redraft.confirm": "Dileu ac ailddrafftio",
-  "confirmations.redraft.message": "Ydych chi wir eisiau dileu y post hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael eu colli, a bydd ymatebion i'r post gwreiddiol yn cael eu hamddifadu.",
+  "confirmations.redraft.message": "Ydych chi wir eisiau dileu y postiad hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael eu colli, a bydd ymatebion i'r postiad gwreiddiol yn cael eu hamddifadu.",
   "confirmations.reply.confirm": "Ateb",
-  "confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n sicr yr ydych am barhau?",
+  "confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n siŵr eich bod am barhau?",
   "confirmations.unfollow.confirm": "Dad-ddilyn",
-  "confirmations.unfollow.message": "Ydych chi'n sicr eich bod am ddad-ddilyn {name}?",
+  "confirmations.unfollow.message": "Ydych chi'n siŵr eich bod am ddad-ddilyn {name}?",
   "conversation.delete": "Dileu sgwrs",
   "conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
   "conversation.open": "Gweld sgwrs",
@@ -196,13 +196,13 @@
   "emoji_button.clear": "Clirio",
   "emoji_button.custom": "Unigryw",
   "emoji_button.flags": "Baneri",
-  "emoji_button.food": "Bwyd a Diod",
+  "emoji_button.food": "Bwyd & Diod",
   "emoji_button.label": "Mewnosodwch emoji",
   "emoji_button.nature": "Natur",
   "emoji_button.not_found": "Dim emojau'n cydweddu",
   "emoji_button.objects": "Gwrthrychau",
   "emoji_button.people": "Pobl",
-  "emoji_button.recent": "Defnyddir yn aml",
+  "emoji_button.recent": "Defnydd cyffredin",
   "emoji_button.search": "Chwilio...",
   "emoji_button.search_results": "Canlyniadau chwilio",
   "emoji_button.symbols": "Symbolau",
@@ -211,32 +211,32 @@
   "empty_column.account_timeline": "Dim postiadau yma!",
   "empty_column.account_unavailable": "Proffil ddim ar gael",
   "empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
-  "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bost wedi'u cadw fel nodau tudalen eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.",
+  "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bostiad wedi'u cadw fel nodau tudalen eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.",
   "empty_column.community": "Mae'r ffrwd lleol yn wag. Beth am ysgrifennu rhywbeth yn gyhoeddus?",
   "empty_column.direct": "Does gennych unrhyw negeseuon preifat eto. Pan byddwch yn anfon neu derbyn un, bydd yn ymddangos yma.",
   "empty_column.domain_blocks": "Nid oes yna unrhyw barthau cuddiedig eto.",
-  "empty_column.explore_statuses": "Does dim pynciau llosg ar hyn o bryd. Dewch nôl nes ymlaen!",
+  "empty_column.explore_statuses": "Does dim trendio ar hyn o bryd. Dewch nôl nes ymlaen!",
   "empty_column.favourited_statuses": "Nid oes gennych unrhyw hoff bostiadau eto. Pan y byddwch yn hoffi un, mi fydd yn ymddangos yma.",
   "empty_column.favourites": "Does neb wedi hoffi'r post hwn eto. Pan bydd rhywun yn ei hoffi, byddent yn ymddangos yma.",
   "empty_column.follow_recommendations": "Does dim awgrymiadau yma i chi. Gallwch geisio chwilio am bobl yr ydych yn eu hadnabod neu archwilio hashnodau sy'n trendio.",
   "empty_column.follow_requests": "Nid oes gennych unrhyw geisiadau dilyn eto. Pan fyddwch yn derbyn un, byddan nhw'n ymddangos yma.",
   "empty_column.hashtag": "Nid oes dim ar yr hashnod hwn eto.",
-  "empty_column.home": "Mae eich llinell amser gartref yn wag! Ymwelwch â {public} neu defnyddiwch y chwilotwr i ddechrau arni ac i gwrdd â defnyddwyr eraill.",
+  "empty_column.home": "Mae eich ffrwd gartref yn wag! Ymwelwch â {public} neu defnyddiwch y chwilotwr i ddechrau arni ac i gwrdd â defnyddwyr eraill.",
   "empty_column.home.suggestions": "Dyma rai awgrymiadau",
-  "empty_column.list": "Does dim yn y rhestr yma eto. Pan fydd aelodau'r rhestr yn cyhoeddi statws newydd, mi fydd yn ymddangos yma.",
+  "empty_column.list": "Does dim yn y rhestr yma eto. Pan fydd aelodau'r rhestr yn cyhoeddi postiad newydd, mi fydd yn ymddangos yma.",
   "empty_column.lists": "Nid oes gennych unrhyw restrau eto. Pan fyddwch yn creu un, mi fydd yn ymddangos yma.",
-  "empty_column.mutes": "Nid ydych wedi anwybyddu unrhyw ddefnyddwyr eto.",
-  "empty_column.notifications": "Nid oes gennych unrhyw hysbysiadau eto. Rhyngweithiwch ac eraill i ddechrau'r sgwrs.",
-  "empty_column.public": "Does dim byd yma! Ysgrifennwch rhywbeth yn gyhoeddus, neu dilynwch ddefnyddwyr o achosion eraill i'w lenwi",
+  "empty_column.mutes": "Nid ydych wedi tewi unrhyw ddefnyddwyr eto.",
+  "empty_column.notifications": "Nid oes gennych unrhyw hysbysiadau eto. Rhyngweithiwch ag eraill i ddechrau'r sgwrs.",
+  "empty_column.public": "Does dim byd yma! Ysgrifennwch rywbeth cyhoeddus, neu dilynwch ddefnyddwyr o weinyddion eraill i'w lanw",
   "error.unexpected_crash.explanation": "Oherwydd gwall yn ein cod neu oherwydd problem cysondeb porwr, nid oedd y dudalen hon gallu cael ei dangos yn gywir.",
-  "error.unexpected_crash.explanation_addons": "Ni ellid arddangos y dudalen hon yn gywir. Mae'r gwall hwn yn debygol o gael ei achosi gan ategyn porwr neu offer cyfieithu awtomatig.",
-  "error.unexpected_crash.next_steps": "Ceisiwch ail-lwytho y dudalen. Os nad yw hyn yn eich helpu, efallai gallech defnyddio Mastodon trwy borwr neu ap brodorol gwahanol.",
+  "error.unexpected_crash.explanation_addons": "Nid oes modd dangos y dudalen hon yn gywir. Mae'r gwall hwn yn debygol o gael ei achosi gan ategyn porwr neu offer cyfieithu awtomatig.",
+  "error.unexpected_crash.next_steps": "Ceisiwch ail-lwytho'r dudalen. Os nad yw hyn yn eich helpu, efallai gallwch ddefnyddio Mastodon trwy borwr neu ap brodorol gwahanol.",
   "error.unexpected_crash.next_steps_addons": "Ceisiwch eu hanalluogi ac adnewyddu'r dudalen. Os nad yw hynny'n helpu, efallai y byddwch yn dal i allu defnyddio Mastodon trwy borwr neu ap cynhenid arall.",
   "errors.unexpected_crash.copy_stacktrace": "Copïo'r olrhain stac i'r clipfwrdd",
   "errors.unexpected_crash.report_issue": "Rhoi gwybod am broblem",
   "explore.search_results": "Canlyniadau chwilio",
   "explore.title": "Archwilio",
-  "filter_modal.added.context_mismatch_explanation": "Nid yw'r categori hidlo hwn yn berthnasol i'r cyd-destun yr ydych wedi cyrchu'r postiad hwn ynddo. Os ydych chi am i'r post gael ei hidlo yn y cyd-destun hwn hefyd, bydd yn rhaid i chi olygu'r hidlydd.",
+  "filter_modal.added.context_mismatch_explanation": "Nid yw'r categori hidlo hwn yn berthnasol i'r cyd-destun yr ydych wedi cyrchu'r postiad hwn ynddo. Os ydych chi am i'r postiad gael ei hidlo yn y cyd-destun hwn hefyd, bydd yn rhaid i chi olygu'r hidlydd.",
   "filter_modal.added.context_mismatch_title": "Diffyg cyfatebiaeth cyd-destun!",
   "filter_modal.added.expired_explanation": "Mae'r categori hidlydd hwn wedi dod i ben, bydd angen i chi newid y dyddiad dod i ben er mwyn iddo fod yn berthnasol.",
   "filter_modal.added.expired_title": "Hidlydd wedi dod i ben!",
@@ -249,15 +249,15 @@
   "filter_modal.select_filter.expired": "daeth i ben",
   "filter_modal.select_filter.prompt_new": "Categori newydd: {name}",
   "filter_modal.select_filter.search": "Chwilio neu greu",
-  "filter_modal.select_filter.subtitle": "Defnyddiwch gategori sy'n bodoli eisoes neu crëwch un newydd",
-  "filter_modal.select_filter.title": "Hidlo'r post hwn",
-  "filter_modal.title.status": "Hidlo post",
+  "filter_modal.select_filter.subtitle": "Defnyddiwch gategori sy'n bodoli eisoes neu crëu un newydd",
+  "filter_modal.select_filter.title": "Hidlo'r postiad hwn",
+  "filter_modal.title.status": "Hidlo postiad",
   "follow_recommendations.done": "Wedi gorffen",
   "follow_recommendations.heading": "Dilynwch y bobl yr hoffech chi weld eu postiadau! Dyma ambell i awgrymiad.",
   "follow_recommendations.lead": "Bydd postiadau gan bobl rydych chi'n eu dilyn yn ymddangos mewn trefn amser ar eich ffrwd cartref. Peidiwch â bod ofn gwneud camgymeriadau, gallwch chi ddad-ddilyn pobl yr un mor hawdd unrhyw bryd!",
-  "follow_request.authorize": "Caniatau",
+  "follow_request.authorize": "Awdurdodi",
   "follow_request.reject": "Gwrthod",
-  "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
+  "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, roedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
   "footer.about": "Ynghylch",
   "footer.directory": "Cyfeiriadur proffiliau",
   "footer.get_app": "Lawrlwytho'r ap",
@@ -280,104 +280,104 @@
   "hashtag.unfollow": "Dad-ddilyn hashnod",
   "home.column_settings.basic": "Syml",
   "home.column_settings.show_reblogs": "Dangos hybiau",
-  "home.column_settings.show_replies": "Dangos ymatebion",
+  "home.column_settings.show_replies": "Dangos atebion",
   "home.hide_announcements": "Cuddio cyhoeddiadau",
   "home.show_announcements": "Dangos cyhoeddiadau",
-  "interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi hoffi'r post hwn i roi gwybod i'r awdur eich bod chi'n ei werthfawrogi a'i gadw ar gyfer nes ymlaen.",
+  "interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi hoffi'r postiad hwn i roi gwybod i'r awdur eich bod chi'n ei werthfawrogi a'i gadw ar gyfer nes ymlaen.",
   "interaction_modal.description.follow": "Gyda chyfrif ar Mastodon, gallwch ddilyn {name} i dderbyn eu postiadau yn eich llif cartref.",
-  "interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r post hwn i'w rannu â'ch dilynwyr.",
-  "interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r post hwn.",
+  "interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r postiad hwn i'w rannu â'ch dilynwyr.",
+  "interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r postiad hwn.",
   "interaction_modal.on_another_server": "Ar weinydd gwahanol",
   "interaction_modal.on_this_server": "Ar y gweinydd hwn",
   "interaction_modal.other_server_instructions": "Copïwch a gludo'r URL hwn i faes chwilio eich hoff ap Mastodon neu ryngwyneb gwe eich gweinydd Mastodon.",
   "interaction_modal.preamble": "Gan fod Mastodon wedi'i ddatganoli, gallwch ddefnyddio'ch cyfrif presennol a gynhelir gan weinydd Mastodon arall neu blatfform cydnaws os nad oes gennych gyfrif ar yr un hwn.",
-  "interaction_modal.title.favourite": "Hoffi post {name}",
+  "interaction_modal.title.favourite": "Hoffi postiad {name}",
   "interaction_modal.title.follow": "Dilyn {name}",
-  "interaction_modal.title.reblog": "Hybu post {name}",
-  "interaction_modal.title.reply": "Ymateb i bost {name}",
+  "interaction_modal.title.reblog": "Hybu postiad {name}",
+  "interaction_modal.title.reply": "Ymateb i bostiad {name}",
   "intervals.full.days": "{number, plural, one {# dydd} two {# ddydd} other {# o ddyddiau}}",
   "intervals.full.hours": "{number, plural, one {# awr} other {# o oriau}}",
   "intervals.full.minutes": "{number, plural, one {# funud} other {# o funudau}}",
-  "keyboard_shortcuts.back": "i lywio nôl",
+  "keyboard_shortcuts.back": "Llywio nôl",
   "keyboard_shortcuts.blocked": "i agor rhestr defnyddwyr a flociwyd",
-  "keyboard_shortcuts.boost": "Hybu post",
+  "keyboard_shortcuts.boost": "Hybu postiad",
   "keyboard_shortcuts.column": "Ffocysu colofn",
-  "keyboard_shortcuts.compose": "i ffocysu yr ardal cyfansoddi testun",
+  "keyboard_shortcuts.compose": "Ffocysu ar ardal cyfansoddi testun",
   "keyboard_shortcuts.description": "Disgrifiad",
   "keyboard_shortcuts.direct": "i agor colofn negeseuon preifat",
-  "keyboard_shortcuts.down": "i symud lawr yn y rhestr",
+  "keyboard_shortcuts.down": "Symud lawr yn y rhestr",
   "keyboard_shortcuts.enter": "Agor post",
-  "keyboard_shortcuts.favourite": "i hoffi",
-  "keyboard_shortcuts.favourites": "i agor rhestr hoffi",
+  "keyboard_shortcuts.favourite": "Hoffi postiad",
+  "keyboard_shortcuts.favourites": "Agor rhestr ffefrynnau",
   "keyboard_shortcuts.federated": "Agor ffrwd y ffederasiwn",
   "keyboard_shortcuts.heading": "Bysellau brys",
-  "keyboard_shortcuts.home": "i agor ffrwd cartref",
-  "keyboard_shortcuts.hotkey": "Bysell brys",
-  "keyboard_shortcuts.legend": "i ddangos y rhestr hon",
+  "keyboard_shortcuts.home": "Agor ffrwd cartref",
+  "keyboard_shortcuts.hotkey": "Bysell boeth",
+  "keyboard_shortcuts.legend": "Dangos y rhestr hon",
   "keyboard_shortcuts.local": "Agor ffrwd lleol",
-  "keyboard_shortcuts.mention": "i grybwyll yr awdur",
-  "keyboard_shortcuts.muted": "Agor rhestr defnyddwyr rydych wedi anwybyddu",
-  "keyboard_shortcuts.my_profile": "i agor eich proffil",
-  "keyboard_shortcuts.notifications": "i agor colofn hysbysiadau",
-  "keyboard_shortcuts.open_media": "i agor cyfryngau",
+  "keyboard_shortcuts.mention": "Crybwyll yr awdur",
+  "keyboard_shortcuts.muted": "Agor rhestr defnyddwyr rydych wedi'u tewi",
+  "keyboard_shortcuts.my_profile": "Agor eich proffil",
+  "keyboard_shortcuts.notifications": "Agor colofn hysbysiadau",
+  "keyboard_shortcuts.open_media": "Agor cyfryngau",
   "keyboard_shortcuts.pinned": "Agor rhestr postiadau wedi'u pinio",
-  "keyboard_shortcuts.profile": "i agor proffil yr awdur",
-  "keyboard_shortcuts.reply": "i ateb",
-  "keyboard_shortcuts.requests": "i agor rhestr ceisiadau dilyn",
-  "keyboard_shortcuts.search": "i ffocysu chwilio",
-  "keyboard_shortcuts.spoilers": "i ddangos/cuddio'r maes CW",
-  "keyboard_shortcuts.start": "i agor colofn \"dechrau arni\"",
-  "keyboard_shortcuts.toggle_hidden": "i ddangos/cuddio testun tu ôl i CW",
-  "keyboard_shortcuts.toggle_sensitivity": "i ddangos/gyddio cyfryngau",
+  "keyboard_shortcuts.profile": "Agor proffil yr awdur",
+  "keyboard_shortcuts.reply": "Ateb i bostiad",
+  "keyboard_shortcuts.requests": "Agor rhestr ceisiadau dilyn",
+  "keyboard_shortcuts.search": "Ffocysu ar y bar chwilio",
+  "keyboard_shortcuts.spoilers": "Dangos/cuddio'r maes CW",
+  "keyboard_shortcuts.start": "Agor colofn \"dechrau arni\"",
+  "keyboard_shortcuts.toggle_hidden": "Dangos/cuddio testun tu ôl i CW",
+  "keyboard_shortcuts.toggle_sensitivity": "Dangos/cuddio cyfryngau",
   "keyboard_shortcuts.toot": "Dechrau post newydd",
-  "keyboard_shortcuts.unfocus": "i ddad-ffocysu ardal cyfansoddi testun/chwilio",
-  "keyboard_shortcuts.up": "i symud yn uwch yn y rhestr",
+  "keyboard_shortcuts.unfocus": "Dad-ffocysu ardal cyfansoddi testun/chwilio",
+  "keyboard_shortcuts.up": "Symud yn uwch yn y rhestr",
   "lightbox.close": "Cau",
   "lightbox.compress": "Cywasgu blwch gweld delwedd",
   "lightbox.expand": "Ehangu blwch gweld delwedd",
   "lightbox.next": "Nesaf",
   "lightbox.previous": "Blaenorol",
   "limited_account_hint.action": "Dangos y proffil beth bynnag",
-  "limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan arolygwyr {domain}.",
-  "lists.account.add": "Ychwanegwch at restr",
-  "lists.account.remove": "Dileu o'r rhestr",
+  "limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan gymedrolwyr {domain}.",
+  "lists.account.add": "Ychwanegu at restr",
+  "lists.account.remove": "Tynnu o'r rhestr",
   "lists.delete": "Dileu rhestr",
-  "lists.edit": "Golygwch rhestr",
+  "lists.edit": "Golygu rhestr",
   "lists.edit.submit": "Newid teitl",
   "lists.new.create": "Ychwanegu rhestr",
   "lists.new.title_placeholder": "Teitl rhestr newydd",
-  "lists.replies_policy.followed": "Unrhyw ddefnyddiwr a ddilynir",
+  "lists.replies_policy.followed": "Unrhyw ddefnyddiwr sy'n cael ei ddilyn",
   "lists.replies_policy.list": "Aelodau'r rhestr",
   "lists.replies_policy.none": "Neb",
-  "lists.replies_policy.title": "Dangos ymatebion i:",
-  "lists.search": "Chwilio ymysg pobl yr ydych yn eu dilyn",
+  "lists.replies_policy.title": "Dangos atebion i:",
+  "lists.search": "Chwilio ymysg pobl rydych yn eu dilyn",
   "lists.subheading": "Eich rhestrau",
-  "load_pending": "{count, plural, one {# eitem newydd} other {# eitemau newydd}}",
+  "load_pending": "{count, plural, one {# eitem newydd} other {# eitem newydd}}",
   "loading_indicator.label": "Llwytho...",
-  "media_gallery.toggle_visible": "Toglo gwelededd",
+  "media_gallery.toggle_visible": "{number, plural, one {Cuddio delwedd} other {Cuddio delwedd}}",
   "missing_indicator.label": "Heb ei ganfod",
-  "missing_indicator.sublabel": "Ni ellid canfod yr adnodd hwn",
-  "moved_to_account_banner.text": "Mae eich cyfrif {disabledAccount} wedi ei analluogi ar hyn y bryd am i chi symud i {movedToAccount}.",
+  "missing_indicator.sublabel": "Nid oes modd canfod yr adnodd hwn",
+  "moved_to_account_banner.text": "Ar hyn y bryd, mae eich cyfrif {disabledAccount} wedi ei analluogi am i chi symud i {movedToAccount}.",
   "mute_modal.duration": "Hyd",
   "mute_modal.hide_notifications": "Cuddio hysbysiadau gan y defnyddiwr hwn?",
   "mute_modal.indefinite": "Parhaus",
   "navigation_bar.about": "Ynghylch",
   "navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
-  "navigation_bar.bookmarks": "Tudalnodau",
+  "navigation_bar.bookmarks": "Nodau tudalen",
   "navigation_bar.community_timeline": "Ffrwd leol",
   "navigation_bar.compose": "Cyfansoddi post newydd",
   "navigation_bar.direct": "Negeseuon preifat",
   "navigation_bar.discover": "Darganfod",
-  "navigation_bar.domain_blocks": "Parthau cuddiedig",
+  "navigation_bar.domain_blocks": "Parthau wedi'u blocio",
   "navigation_bar.edit_profile": "Golygu proffil",
   "navigation_bar.explore": "Archwilio",
   "navigation_bar.favourites": "Ffefrynnau",
-  "navigation_bar.filters": "Geiriau ag anwybyddwyd",
+  "navigation_bar.filters": "Geiriau wedi'u tewi",
   "navigation_bar.follow_requests": "Ceisiadau dilyn",
-  "navigation_bar.follows_and_followers": "Dilynion a ddilynwyr",
+  "navigation_bar.follows_and_followers": "Yn dilyn a dilynwyr",
   "navigation_bar.lists": "Rhestrau",
   "navigation_bar.logout": "Allgofnodi",
-  "navigation_bar.mutes": "Defnyddwyr ag anwybyddwyd",
+  "navigation_bar.mutes": "Defnyddwyr wedi'u tewi",
   "navigation_bar.personal": "Personol",
   "navigation_bar.pins": "Postiadau wedi eu pinio",
   "navigation_bar.preferences": "Dewisiadau",
@@ -385,25 +385,25 @@
   "navigation_bar.search": "Chwilio",
   "navigation_bar.security": "Diogelwch",
   "not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.",
-  "notification.admin.report": "Adroddodd {name} {target}",
+  "notification.admin.report": "Adroddwyd ar {name} {target}",
   "notification.admin.sign_up": "Cofrestrodd {name}",
   "notification.favourite": "Hoffodd {name} eich post",
   "notification.follow": "Dilynodd {name} chi",
   "notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn",
-  "notification.mention": "Soniodd {name} amdanoch chi",
-  "notification.own_poll": "Mae eich pôl wedi diweddu",
+  "notification.mention": "Crybwyllodd {name} amdanoch chi",
+  "notification.own_poll": "Mae eich pleidlais wedi dod i ben",
   "notification.poll": "Mae pleidlais rydych wedi pleidleisio ynddi wedi dod i ben",
   "notification.reblog": "Hybodd {name} eich post",
   "notification.status": "{name} newydd ei bostio",
-  "notification.update": "Golygodd {name} bost",
+  "notification.update": "Golygodd {name} bostiad",
   "notifications.clear": "Clirio hysbysiadau",
-  "notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?",
+  "notifications.clear_confirmation": "Ydych chi'n siŵr eich bod am glirio'ch holl hysbysiadau am byth?",
   "notifications.column_settings.admin.report": "Adroddiadau newydd:",
   "notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:",
   "notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith",
   "notifications.column_settings.favourite": "Ffefrynnau:",
   "notifications.column_settings.filter_bar.advanced": "Dangos pob categori",
-  "notifications.column_settings.filter_bar.category": "Bar hidlo",
+  "notifications.column_settings.filter_bar.category": "Bar hidlo cyflym",
   "notifications.column_settings.filter_bar.show_bar": "Dangos y bar hidlo",
   "notifications.column_settings.follow": "Dilynwyr newydd:",
   "notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:",
@@ -413,7 +413,7 @@
   "notifications.column_settings.reblog": "Hybiau:",
   "notifications.column_settings.show": "Dangos yn y golofn",
   "notifications.column_settings.sound": "Chwarae sain",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Postiadau newydd:",
   "notifications.column_settings.unread_notifications.category": "Hysbysiadau heb eu darllen",
   "notifications.column_settings.unread_notifications.highlight": "Amlygu hysbysiadau heb eu darllen",
   "notifications.column_settings.update": "Golygiadau:",
@@ -425,28 +425,28 @@
   "notifications.filter.polls": "Canlyniadau polau",
   "notifications.filter.statuses": "Diweddariadau gan bobl rydych chi'n eu dilyn",
   "notifications.grant_permission": "Caniatáu.",
-  "notifications.group": "{count} o hysbysiadau",
-  "notifications.mark_as_read": "Marciwch bob hysbysiad fel y'i darllenwyd",
+  "notifications.group": "{count} hysbysiad",
+  "notifications.mark_as_read": "Marciwch bob hysbysiad wedi'i ddarllen",
   "notifications.permission_denied": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd cais am ganiatâd porwr a wrthodwyd yn flaenorol",
-  "notifications.permission_denied_alert": "Ni ellir galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen",
+  "notifications.permission_denied_alert": "Nid oes modd galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen",
   "notifications.permission_required": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd na roddwyd y caniatâd gofynnol.",
   "notifications_permission_banner.enable": "Galluogi hysbysiadau bwrdd gwaith",
-  "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogi hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithio sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddant wedi'u galluogi.",
-  "notifications_permission_banner.title": "Peidiwch byth â cholli peth",
+  "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddant wedi'u galluogi.",
+  "notifications_permission_banner.title": "Peidiwch colli dim",
   "picture_in_picture.restore": "Rhowch ef yn ôl",
   "poll.closed": "Ar gau",
   "poll.refresh": "Adnewyddu",
-  "poll.total_people": "{count, plural, one {# berson} other {# o bobl}}",
-  "poll.total_votes": "{count, plural, one {# bleidlais} other {# o bleidleisiau}}",
+  "poll.total_people": "{count, plural, one {# person} other {# person}}",
+  "poll.total_votes": "{count, plural, one {# bleidlais} other {# pleidlais}}",
   "poll.vote": "Pleidleisio",
-  "poll.voted": "Pleidleisioch chi am yr ateb hon",
-  "poll.votes": "{votes, plural, one {# bleidlais} other {# o bleidleisiau}}",
+  "poll.voted": "Fe wnaethoch chi bleidleisio dros yr ateb hwn",
+  "poll.votes": "{votes, plural, one {# pleidlais} other {# pleidlais}}",
   "poll_button.add_poll": "Ychwanegu pleidlais",
   "poll_button.remove_poll": "Tynnu pleidlais",
   "privacy.change": "Addasu preifatrwdd y post",
-  "privacy.direct.long": "Cyhoeddi i'r defnyddwyr sy'n cael eu crybwyll yn unig",
-  "privacy.direct.short": "Pobl sy wedi'u crybwyll yn unig",
-  "privacy.private.long": "Cyhoeddi i ddilynwyr yn unig",
+  "privacy.direct.long": "Dim ond yn weladwy i ddefnyddwyr a grybwyllwyd",
+  "privacy.direct.short": "Dim ond pobl sy wedi'u crybwyll",
+  "privacy.private.long": "Dim ond pobl sy'n ddilynwyrl",
   "privacy.private.short": "Dilynwyr yn unig",
   "privacy.public.long": "Gweladwy i bawb",
   "privacy.public.short": "Cyhoeddus",
@@ -458,11 +458,11 @@
   "regeneration_indicator.label": "Llwytho…",
   "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!",
   "relative_time.days": "{number}d",
-  "relative_time.full.days": "{number, plural, one {# dydd} other {# o ddyddiau}} yn ôl",
-  "relative_time.full.hours": "{number, plural, one {# awr} other {# o oriau}} yn ôl",
-  "relative_time.full.just_now": "jyst nawr",
-  "relative_time.full.minutes": "{number, plural, one {# funud} other {# o funudau}} yn ôl",
-  "relative_time.full.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} yn ôl",
+  "relative_time.full.days": "{number, plural, one {# diwrnod} other {# diwrnod}} yn ôl",
+  "relative_time.full.hours": "{number, plural, one {# awr} other {# awr}} yn ôl",
+  "relative_time.full.just_now": "newydd ddigwydd",
+  "relative_time.full.minutes": "{number, plural, one {# munud} other {# munud}} yn ôl",
+  "relative_time.full.seconds": "{number, plural, one {# eiliad} other {# eiliad}} yn ôl",
   "relative_time.hours": "{number} awr",
   "relative_time.just_now": "nawr",
   "relative_time.minutes": "{number} munud",
@@ -474,15 +474,15 @@
   "report.categories.other": "Arall",
   "report.categories.spam": "Sbam",
   "report.categories.violation": "Mae cynnwys yn torri un neu fwy o reolau'r gweinydd",
-  "report.category.subtitle": "Dewiswch yr ateb gorau",
-  "report.category.title": "Beth sy'n bod â'r {type} hwn?",
+  "report.category.subtitle": "Dewiswch y gyfatebiaeth gorau",
+  "report.category.title": "Beth sy'n digwydd gyda'r {type} yma?",
   "report.category.title_account": "proffil",
   "report.category.title_status": "post",
   "report.close": "Iawn",
   "report.comment.title": "Oes unrhyw beth arall y dylem ei wybod yn eich barn chi?",
   "report.forward": "Ymlaen i {target}",
   "report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?",
-  "report.mute": "Anwybyddu",
+  "report.mute": "Tewi",
   "report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u mudo.",
   "report.next": "Nesaf",
   "report.placeholder": "Sylwadau ychwanegol",
@@ -490,7 +490,7 @@
   "report.reasons.dislike_description": "Nid yw'n rhywbeth yr ydych am ei weld",
   "report.reasons.other": "Mae'n rhywbeth arall",
   "report.reasons.other_description": "Nid yw'r mater yn ffitio i gategorïau eraill",
-  "report.reasons.spam": "Sothach yw e",
+  "report.reasons.spam": "Sbam yw e",
   "report.reasons.spam_description": "Dolenni maleisus, ymgysylltu ffug, neu ymatebion ailadroddus",
   "report.reasons.violation": "Mae'n torri rheolau'r gweinydd",
   "report.reasons.violation_description": "Rydych yn ymwybodol ei fod yn torri rheolau penodol",
@@ -499,14 +499,14 @@
   "report.statuses.subtitle": "Dewiswch bob un sy'n berthnasol",
   "report.statuses.title": "Oes postiadau eraill sy'n cefnogi'r adroddiad hwn?",
   "report.submit": "Cyflwyno",
-  "report.target": "Cwyno am {target}",
-  "report.thanks.take_action": "Dyma'ch opsiynau ar gyfer rheoli'r hyn a welwch ar Mastodon:",
-  "report.thanks.take_action_actionable": "Tra byddwn yn edrych ar hyn, gallwch gymryd camau yn erbyn @{name}:",
+  "report.target": "Adrodd am {target}",
+  "report.thanks.take_action": "Dyma'ch dewisiadau i reoli'r hyn a welwch ar Mastodon:",
+  "report.thanks.take_action_actionable": "Tra byddwn yn adolygu hyn, gallwch gymryd camau yn erbyn @{name}:",
   "report.thanks.title": "Ddim eisiau gweld hwn?",
   "report.thanks.title_actionable": "Diolch am adrodd, byddwn yn ymchwilio i hyn.",
   "report.unfollow": "Dad-ddilyn @{name}",
   "report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich porthiant cartref mwyach, dad-ddilynwch nhw.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} post} arall {{count} posts}} atodwyd",
+  "report_notification.attached_statuses": "{count, plural, one {{count} postiad} arall {{count} postiad}} atodwyd",
   "report_notification.categories.other": "Arall",
   "report_notification.categories.spam": "Sbam",
   "report_notification.categories.violation": "Torri rheol",
@@ -517,7 +517,7 @@
   "search_popout.tips.full_text": "Mae testun syml yn dychwelyd postiadau yr ydych wedi ysgrifennu, hoffi, wedi'u hybio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
   "search_popout.tips.hashtag": "hashnod",
   "search_popout.tips.status": "post",
-  "search_popout.tips.text": "Mae testun syml yn dychwelyd enwau arddangos, enwau defnyddwyr a hashnodau sy'n cyfateb",
+  "search_popout.tips.text": "Mae testun syml yn dychwelyd enwau dangos, enwau defnyddwyr a hashnodau sy'n cyfateb",
   "search_popout.tips.user": "defnyddiwr",
   "search_results.accounts": "Pobl",
   "search_results.all": "Popeth",
@@ -526,56 +526,56 @@
   "search_results.statuses": "Postiadau",
   "search_results.statuses_fts_disabled": "Nid yw chwilio postiadau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.",
   "search_results.title": "Chwilio am {q}",
-  "search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {o ganlyniadau}}",
+  "search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {canlyniad}}",
   "server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)",
   "server_banner.active_users": "defnyddwyr gweithredol",
-  "server_banner.administered_by": "Gweinyddir gan:",
+  "server_banner.administered_by": "Yn cael ei weinyddu gan:",
   "server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig a bwerir gan {mastodon}.",
   "server_banner.learn_more": "Dysgu mwy",
   "server_banner.server_stats": "Ystagedau'r gweinydd:",
   "sign_in_banner.create_account": "Creu cyfrif",
   "sign_in_banner.sign_in": "Mewngofnodi",
   "sign_in_banner.text": "Mewngofnodwch i ddilyn proffiliau neu hashnodau, ffefrynnau, rhannu ac ymateb i bostiadau, neu ryngweithio o'ch cyfrif ar weinydd gwahanol.",
-  "status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}",
+  "status.admin_account": "Agor rhyngwyneb cymedroli ar gyfer @{name}",
   "status.admin_status": "Agor y post hwn yn y rhyngwyneb goruwchwylio",
   "status.block": "Blocio @{name}",
-  "status.bookmark": "Tudalnodi",
+  "status.bookmark": "Nod Tudalen",
   "status.cancel_reblog_private": "Dadhybu",
-  "status.cannot_reblog": "Ni ellir hybu'r post hwn",
+  "status.cannot_reblog": "Nid oes modd hybu'r postiad hwn",
   "status.copy": "Copïo dolen i'r post",
   "status.delete": "Dileu",
   "status.detailed_status": "Golwg manwl o'r sgwrs",
   "status.direct": "Neges breifat @{name}",
   "status.edit": "Golygu",
   "status.edited": "Golygwyd {date}",
-  "status.edited_x_times": "Golygwyd {count, plural, one {unwaith} two {dwywaith} other {{count} gwaith}}",
+  "status.edited_x_times": "Golygwyd {count, plural, one {waith} two {waith} other {{count} gwaith}}",
   "status.embed": "Mewnblannu",
-  "status.favourite": "Hoffi",
-  "status.filter": "Hidlo'r post hwn",
+  "status.favourite": "Ffefryn",
+  "status.filter": "Hidlo'r postiad hwn",
   "status.filtered": "Wedi'i hidlo",
-  "status.hide": "Cuddio'r post",
-  "status.history.created": "{name} greuodd {date}",
-  "status.history.edited": "{name} olygodd {date}",
-  "status.load_more": "Llwythwch mwy",
+  "status.hide": "Cuddio postiad",
+  "status.history.created": "Crëwyd gan {name} {date}",
+  "status.history.edited": "Golygwyd gan {name} {date}",
+  "status.load_more": "Llwythwch ragor",
   "status.media_hidden": "Cyfryngau wedi'u cuddio",
   "status.mention": "Crybwyll @{name}",
-  "status.more": "Mwy",
-  "status.mute": "Anwybyddu @{name}",
-  "status.mute_conversation": "Anwybyddu sgwrs",
+  "status.more": "Rhagor",
+  "status.mute": "Tewi @{name}",
+  "status.mute_conversation": "Tewi sgwrs",
   "status.open": "Ehangu'r post hwn",
   "status.pin": "Pinio ar y proffil",
   "status.pinned": "Post wedi'i binio",
-  "status.read_more": "Darllen mwy",
+  "status.read_more": "Darllen rhagor",
   "status.reblog": "Hybu",
   "status.reblog_private": "Hybu i'r gynulleidfa wreiddiol",
   "status.reblogged_by": "Hybodd {name}",
   "status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
   "status.redraft": "Dileu ac ailddrafftio",
-  "status.remove_bookmark": "Tynnu'r tudalnod",
-  "status.replied_to": "Wedi ymateb i {name}",
+  "status.remove_bookmark": "Tynnu Nod Tudalen",
+  "status.replied_to": "Wedi ateb {name}",
   "status.reply": "Ateb",
   "status.replyAll": "Ateb i edefyn",
-  "status.report": "Adrodd @{name}",
+  "status.report": "Adrodd ar @{name}",
   "status.sensitive_warning": "Cynnwys sensitif",
   "status.share": "Rhannu",
   "status.show_filter_reason": "Dangos beth bynnag",
@@ -587,63 +587,63 @@
   "status.translate": "Cyfieithu",
   "status.translated_from_with": "Cyfieithwyd o {lang} gan ddefnyddio {provider}",
   "status.uncached_media_warning": "Dim ar gael",
-  "status.unmute_conversation": "Dad-anwybyddu sgwrs",
+  "status.unmute_conversation": "Dad-dewi sgwrs",
   "status.unpin": "Dadbinio o'r proffil",
-  "subscribed_languages.lead": "Dim ond postiadau mewn ieithoedd dethol fydd yn ymddangos yn eich ffrydiau ar ôl y newid. Dewiswch ddim byd i dderbyn postiadau ym mhob iaith.",
+  "subscribed_languages.lead": "Dim ond postiadau mewn ieithoedd penodol fydd yn ymddangos yn eich ffrydiau ar ôl y newid. Dewiswch ddim byd i dderbyn postiadau ym mhob iaith.",
   "subscribed_languages.save": "Cadw'r newidiadau",
   "subscribed_languages.target": "Newid ieithoedd tanysgrifio {target}",
-  "suggestions.dismiss": "Diswyddo",
+  "suggestions.dismiss": "Diystyru'r awgrym",
   "suggestions.header": "Efallai y bydd gennych ddiddordeb mewn…",
-  "tabs_bar.federated_timeline": "Ffederasiwn",
-  "tabs_bar.home": "Hafan",
+  "tabs_bar.federated_timeline": "Ffedereiddiwyd",
+  "tabs_bar.home": "Cartref",
   "tabs_bar.local_timeline": "Lleol",
   "tabs_bar.notifications": "Hysbysiadau",
-  "time_remaining.days": "{number, plural, one {# ddydd} other {# o ddyddiau}} ar ôl",
-  "time_remaining.hours": "{number, plural, one {# awr} other {# o oriau}} ar ôl",
-  "time_remaining.minutes": "{number, plural, one {# funud} other {# o funudau}} ar ôl",
-  "time_remaining.moments": "Munudau ar ôl",
-  "time_remaining.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} ar ôl",
-  "timeline_hint.remote_resource_not_displayed": "ni chaiff {resource} o gweinyddion eraill ei ddangos.",
+  "time_remaining.days": "{number, plural, one {# diwrnod} other {# diwrnod}} ar ôl",
+  "time_remaining.hours": "{number, plural, one {# awr} other {# awr}} ar ôl",
+  "time_remaining.minutes": "{number, plural, one {# munud} other {# munud}} ar ôl",
+  "time_remaining.moments": "Munudau yn weddill",
+  "time_remaining.seconds": "{number, plural, one {# eiliad} other {# eiliad}} ar ôl",
+  "timeline_hint.remote_resource_not_displayed": "Nid yw {resource} o weinyddion eraill yn cael ei ddangos.",
   "timeline_hint.resources.followers": "Dilynwyr",
   "timeline_hint.resources.follows": "Yn dilyn",
   "timeline_hint.resources.statuses": "Postiadau hŷn",
   "trends.counter_by_accounts": "{count, plural, zero {neb} one {{counter} person} two {{counter} berson} few {{counter} pherson} other {{counter} o bobl}} yn y {days, plural, one {diwrnod diwethaf} two {ddeuddydd diwethaf} other {{days} diwrnod diwethaf}}",
-  "trends.trending_now": "Pynciau llosg",
-  "ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.",
+  "trends.trending_now": "Yn trendio nawr",
+  "ui.beforeunload": "Byddwch yn colli eich drafft os byddwch yn gadael Mastodon.",
   "units.short.billion": "{count}biliwn",
   "units.short.million": "{count}miliwn",
   "units.short.thousand": "{count}mil",
   "upload_area.title": "Llusgwch a gollwng i lwytho",
   "upload_button.label": "Ychwanegwch gyfryngau (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Wedi mynd heibio'r uchafswm terfyn uwchlwytho.",
-  "upload_error.poll": "Nid oes modd uwchlwytho ffeiliau â phleidleisiau.",
+  "upload_error.poll": "Nid oes modd llwytho ffeiliau â phleidleisiau.",
   "upload_form.audio_description": "Disgrifio ar gyfer pobl sydd â cholled clyw",
   "upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
   "upload_form.description_missing": "Dim disgrifiad wedi'i ychwanegu",
   "upload_form.edit": "Golygu",
-  "upload_form.thumbnail": "Newid mân-lun",
+  "upload_form.thumbnail": "Newid llun bach",
   "upload_form.undo": "Dileu",
   "upload_form.video_description": "Disgrifio ar gyfer pobl sydd â cholled clyw neu amhariad golwg",
-  "upload_modal.analyzing_picture": "Dadansoddi llun…",
-  "upload_modal.apply": "Gweithredu",
-  "upload_modal.applying": "Gweithio…",
+  "upload_modal.analyzing_picture": "Yn dadansoddi llun…",
+  "upload_modal.apply": "Gosod",
+  "upload_modal.applying": "Yn gosod…",
   "upload_modal.choose_image": "Dewis delwedd",
   "upload_modal.description_placeholder": "Mae ei phen bach llawn jocs, 'run peth a fy nghot golff, rhai dyddiau",
   "upload_modal.detect_text": "Canfod testun o'r llun",
   "upload_modal.edit_media": "Golygu cyfryngau",
-  "upload_modal.hint": "Cliciwch neu llusgwch y cylch ar y rhagolwg i ddewis y canolbwynt a fydd bob amser i'w weld ar bob mân-lunau.",
-  "upload_modal.preparing_ocr": "Paratoi OCR…",
+  "upload_modal.hint": "Cliciwch neu llusgwch y cylch ar y rhagolwg i ddewis y canolbwynt a fydd bob amser i'w weld ar bob llun bach.",
+  "upload_modal.preparing_ocr": "Yn paratoi OCR…",
   "upload_modal.preview_label": "Rhagolwg ({ratio})",
-  "upload_progress.label": "Uwchlwytho...",
+  "upload_progress.label": "Yn llwytho...",
   "upload_progress.processing": "Wrthi'n prosesu…",
   "video.close": "Cau fideo",
-  "video.download": "Lawrlwytho ffeil",
+  "video.download": "Llwytho ffeil i lawr",
   "video.exit_fullscreen": "Gadael sgrin llawn",
   "video.expand": "Ymestyn fideo",
   "video.fullscreen": "Sgrin llawn",
   "video.hide": "Cuddio fideo",
-  "video.mute": "Diffodd sain",
+  "video.mute": "Tewi sain",
   "video.pause": "Oedi",
   "video.play": "Chwarae",
-  "video.unmute": "Dad-ddiffodd sain"
+  "video.unmute": "Dad-dewi sain"
 }
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index e61130cb8..684f308a6 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -4,22 +4,22 @@
   "about.disclaimer": "Mastodon er gratis, open-source software og et varemærke tilhørende Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Begrundelse ikke tilgængelig",
   "about.domain_blocks.preamble": "Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.",
-  "about.domain_blocks.silenced.explanation": "Man vil generelt ikke se profiler og indhold fra denne server, medmindre man udtrykkeligt slå den op eller vælger den ved at følge.",
+  "about.domain_blocks.silenced.explanation": "Du vil generelt ikke se profiler og indhold fra denne server, medmindre du udtrykkeligt slår den op eller vælger den ved at følge.",
   "about.domain_blocks.silenced.title": "Begrænset",
   "about.domain_blocks.suspended.explanation": "Data fra denne server hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra denne server.",
   "about.domain_blocks.suspended.title": "Udelukket",
   "about.not_available": "Denne information er ikke blevet gjort tilgængelig på denne server.",
   "about.powered_by": "Decentraliserede sociale medier drevet af {mastodon}",
   "about.rules": "Serverregler",
-  "account.account_note_header": "Notat",
+  "account.account_note_header": "Note",
   "account.add_or_remove_from_list": "Tilføj eller fjern fra lister",
   "account.badges.bot": "Bot",
   "account.badges.group": "Gruppe",
   "account.block": "Blokér @{name}",
   "account.block_domain": "Blokér domænet {domain}",
   "account.blocked": "Blokeret",
-  "account.browse_more_on_origin_server": "Tjek mere ud på den oprindelige profil",
-  "account.cancel_follow_request": "Annullér følg-anmodning",
+  "account.browse_more_on_origin_server": "Se mere på den oprindelige profil",
+  "account.cancel_follow_request": "Annullér anmodning om at følge",
   "account.direct": "Direkte besked til @{name}",
   "account.disable_notifications": "Advisér mig ikke længere, når @{name} poster",
   "account.domain_blocked": "Domæne blokeret",
@@ -66,8 +66,8 @@
   "account.unmute_notifications": "Slå notifikationer om @{name} til igen",
   "account.unmute_short": "Vis igen (unmute)",
   "account_note.placeholder": "Klik for at tilføje notat",
-  "admin.dashboard.daily_retention": "Brugerfastholdelsesrate efter dag efter tilmelding",
-  "admin.dashboard.monthly_retention": "Brugerfastholdelsesrate efter måned efter tilmelding",
+  "admin.dashboard.daily_retention": "Brugerfastholdelsesrate per dag efter tilmelding",
+  "admin.dashboard.monthly_retention": "Brugerfastholdelsesrate per måned efter tilmelding",
   "admin.dashboard.retention.average": "Gennemsnitlig",
   "admin.dashboard.retention.cohort": "Tilmeldingsmåned",
   "admin.dashboard.retention.cohort_size": "Nye brugere",
@@ -79,7 +79,7 @@
   "attachments_list.unprocessed": "(ubehandlet)",
   "audio.hide": "Skjul lyd",
   "autosuggest_hashtag.per_week": "{count} pr. uge",
-  "boost_modal.combo": "Du kan trykke på {combo} for at overspringe dette næste gang",
+  "boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang",
   "bundle_column_error.copy_stacktrace": "Kopiér fejlrapport",
   "bundle_column_error.error.body": "Den anmodede side kunne ikke gengives. Dette kan skyldes flere typer fejl.",
   "bundle_column_error.error.title": "Åh nej!",
@@ -87,7 +87,7 @@
   "bundle_column_error.network.title": "Netværksfejl",
   "bundle_column_error.retry": "Forsøg igen",
   "bundle_column_error.return": "Retur til hjem",
-  "bundle_column_error.routing.body": "Den anmodede side kunne ikke findes. Sikker på, at URL'en er korrekt?",
+  "bundle_column_error.routing.body": "Den anmodede side kunne ikke findes. Er du sikker på, at URL'en er korrekt?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Luk",
   "bundle_modal_error.message": "Noget gik galt under indlæsningen af denne komponent.",
@@ -95,7 +95,7 @@
   "closed_registrations.other_server_instructions": "Da Mastodon er decentraliseret, kan du oprette en konto på en anden server og stadig interagere med denne.",
   "closed_registrations_modal.description": "Oprettelse af en konto på {domain} er i øjeblikket ikke muligt, men husk på, at du ikke behøver en konto specifikt på {domain} for at bruge Mastodon.",
   "closed_registrations_modal.find_another_server": "Find en anden server",
-  "closed_registrations_modal.preamble": "Mastodon er decentraliseret, så uanset hvor du opretter din konto, vil du være i stand til at følge og interagere med nogen på denne server. Du kan endda selv være vært for den!",
+  "closed_registrations_modal.preamble": "Mastodon er decentraliseret, så uanset hvor du opretter din konto, vil du være i stand til at følge og interagere med hvem som helst på denne server. Du kan endda selv være vært for den!",
   "closed_registrations_modal.title": "Oprettelse på Mastodon",
   "column.about": "Om",
   "column.blocks": "Blokerede brugere",
@@ -150,38 +150,38 @@
   "confirmation_modal.cancel": "Afbryd",
   "confirmations.block.block_and_report": "Blokér og Anmeld",
   "confirmations.block.confirm": "Blokér",
-  "confirmations.block.message": "Sikker på, at du vil blokere {name}?",
+  "confirmations.block.message": "Er du sikker på, at du vil blokere {name}?",
   "confirmations.cancel_follow_request.confirm": "Annullér anmodning",
-  "confirmations.cancel_follow_request.message": "Sikker på, at anmodningen om at følge {name} skal annulleres?",
+  "confirmations.cancel_follow_request.message": "Er du sikker på, at anmodningen om at følge {name} skal annulleres?",
   "confirmations.delete.confirm": "Slet",
-  "confirmations.delete.message": "Sikker på, at du vil slette dette indlæg?",
+  "confirmations.delete.message": "Er du sikker på, at du vil slette dette indlæg?",
   "confirmations.delete_list.confirm": "Slet",
-  "confirmations.delete_list.message": "Sikker på, at du vil slette denne liste permanent?",
+  "confirmations.delete_list.message": "Er du sikker på, at du vil slette denne liste permanent?",
   "confirmations.discard_edit_media.confirm": "Kassér",
   "confirmations.discard_edit_media.message": "Der er ugemte ændringer i mediebeskrivelsen eller forhåndsvisningen, kassér dem alligevel?",
   "confirmations.domain_block.confirm": "Blokér hele domænet",
-  "confirmations.domain_block.message": "Fuldstændig sikker på, at du vil blokere hele {domain}-domænet? Oftest vil nogle få målrettede blokeringer eller tavsgørelser være tilstrækkelige og at foretrække. Du vil ikke se indhold fra dette domæne i nogle offentlige tidslinjer eller i dine notifikationer, og dine følgere herfra fjernes ligeledes.",
+  "confirmations.domain_block.message": "Er du fuldstændig sikker på, at du vil blokere hele {domain}-domænet? Oftest vil nogle få målrettede blokeringer eller skjulninger være tilstrækkelige og at foretrække. Du vil ikke se indhold fra dette domæne i nogle offentlige tidslinjer eller i dine notifikationer, og dine følgere herfra fjernes ligeledes.",
   "confirmations.logout.confirm": "Log ud",
-  "confirmations.logout.message": "Log ud, sikker?",
+  "confirmations.logout.message": "Er du sikker på, at du vil logge ud?",
   "confirmations.mute.confirm": "Skjul (mute)",
   "confirmations.mute.explanation": "Dette skjuler indlæg fra (og om) dem, men lader dem fortsat se dine indlæg og følge dig.",
-  "confirmations.mute.message": "Er du sikker på, du vil skjule {name}?",
+  "confirmations.mute.message": "Er du sikker på, at du vil skjule {name}?",
   "confirmations.redraft.confirm": "Slet og omformulér",
-  "confirmations.redraft.message": "Sikker på, at du vil slette dette indlæg for at omskrive det? Favoritter og boosts går tabt, og svar til det oprindelige indlæg afassocieres.",
+  "confirmations.redraft.message": "Er du sikker på, at du vil slette dette indlæg for at omskrive det? Favoritter og boosts går tabt, og svar til det oprindelige indlæg afassocieres.",
   "confirmations.reply.confirm": "Svar",
-  "confirmations.reply.message": "At svare nu vil overskrive den besked, du er ved at skrive. Fortsæt alligevel?",
+  "confirmations.reply.message": "Hvis du svarer nu, vil det overskrive den besked, du er ved at skrive. Fortsæt alligevel?",
   "confirmations.unfollow.confirm": "Følg ikke længere",
-  "confirmations.unfollow.message": "Sikker på, at du ikke længere vil følge {name}?",
+  "confirmations.unfollow.message": "Er du sikker på, at du ikke længere vil følge {name}?",
   "conversation.delete": "Slet samtale",
   "conversation.mark_as_read": "Markér som læst",
-  "conversation.open": "Vis konversation",
+  "conversation.open": "Vis samtale",
   "conversation.with": "Med {names}",
   "copypaste.copied": "Kopieret",
   "copypaste.copy": "Kopiér",
   "directory.federated": "Fra kendt fedivers",
   "directory.local": "Kun fra {domain}",
   "directory.new_arrivals": "Nye ankomster",
-  "directory.recently_active": "Nyligt aktive",
+  "directory.recently_active": "Aktive for nyligt",
   "disabled_account_banner.account_settings": "Kontoindstillinger",
   "disabled_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret.",
   "dismissable_banner.community_timeline": "Disse er de seneste offentlige indlæg fra personer med konti hostes af {domain}.",
@@ -215,10 +215,10 @@
   "empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at sætte tingene i gang!",
   "empty_column.direct": "Der er endnu ingen direkte beskeder. Når en sendes eller modtages, dukker den 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.explore_statuses": "Ingen nye tendenser lige nu. Tjek igen senere!",
   "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_recommendations": "Det 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.",
   "empty_column.home": "Din hjemmetidslinje er tom! Følg nogle personer, for at udfylde den. {suggestions}",
@@ -284,8 +284,8 @@
   "home.hide_announcements": "Skjul bekendtgørelser",
   "home.show_announcements": "Vis bekendtgørelser",
   "interaction_modal.description.favourite": "Med en konto på Mastodon kan dette indlæg gøres til favorit for at lade forfatteren vide, at det værdsættes, samt gemme det til senere.",
-  "interaction_modal.description.follow": "Med en konto på Mastodon kan du {name} følges for at modtage vedkommendes indlæg i hjemmefeed'et.",
-  "interaction_modal.description.reblog": "Med en konto på Mastodon kan dette indlæg boostes for at dele det med egne følgere.",
+  "interaction_modal.description.follow": "Med en konto på Mastodon kan du følge {name} for at modtage vedkommendes indlæg i dit hjemmefeed.",
+  "interaction_modal.description.reblog": "Med en konto på Mastodon kan dette indlæg fremhæves så det deles med egne følgere.",
   "interaction_modal.description.reply": "Med en konto på Mastodon kan dette indlæg besvares.",
   "interaction_modal.on_another_server": "På en anden server",
   "interaction_modal.on_this_server": "På denne server",
@@ -299,7 +299,7 @@
   "intervals.full.hours": "{number, plural, one {# time} other {# timer}}",
   "intervals.full.minutes": "{number, plural, one {# minut} other {# minutter}}",
   "keyboard_shortcuts.back": "Gå tilbage",
-  "keyboard_shortcuts.blocked": "Åbn Blokerede brugere-listen",
+  "keyboard_shortcuts.blocked": "Åbn listen over blokerede brugere",
   "keyboard_shortcuts.boost": "Boost indlæg",
   "keyboard_shortcuts.column": "Fokusér kolonne",
   "keyboard_shortcuts.compose": "Fokusér skriveområdet",
@@ -330,11 +330,11 @@
   "keyboard_shortcuts.toggle_hidden": "Vis/skjul tekst bag CW",
   "keyboard_shortcuts.toggle_sensitivity": "Vis/skjul medier",
   "keyboard_shortcuts.toot": "Påbegynd nyt indlæg",
-  "keyboard_shortcuts.unfocus": "Fjern fokus fra teksskrivningsområde/søgning",
+  "keyboard_shortcuts.unfocus": "Fjern fokus fra tekstskrivningsområde/søgning",
   "keyboard_shortcuts.up": "Flyt opad på listen",
   "lightbox.close": "Luk",
   "lightbox.compress": "Komprimér billedvisningsfelt",
-  "lightbox.expand": "Udvid billedevisningsfelt",
+  "lightbox.expand": "Udvid billedvisningsfelt",
   "lightbox.next": "Næste",
   "lightbox.previous": "Forrige",
   "limited_account_hint.action": "Vis profil alligevel",
@@ -397,7 +397,7 @@
   "notification.status": "{name} har netop postet",
   "notification.update": "{name} redigerede et indlæg",
   "notifications.clear": "Ryd notifikationer",
-  "notifications.clear_confirmation": "Sikker på, at du vil rydde alle dine notifikationer permanent?",
+  "notifications.clear_confirmation": "Er du sikker på, at du vil rydde alle dine notifikationer permanent?",
   "notifications.column_settings.admin.report": "Nye anmeldelser:",
   "notifications.column_settings.admin.sign_up": "Nye tilmeldinger:",
   "notifications.column_settings.alert": "Computernotifikationer",
@@ -470,7 +470,7 @@
   "relative_time.today": "i dag",
   "reply_indicator.cancel": "Afbryd",
   "report.block": "Blokér",
-  "report.block_explanation": "Du vil ikke se vedkommendes indlæg, og vedkommende vil ikke kunne se dine eller følge dig. Vedkommende vil være bekendt med blokeringen.",
+  "report.block_explanation": "Du vil ikke se vedkommendes indlæg. Vedkommende vil ikke kunne se dine indlæg eller følge dig. Vedkommende vil kunne se, at de er blokeret.",
   "report.categories.other": "Andre",
   "report.categories.spam": "Spam",
   "report.categories.violation": "Indhold overtræder en eller flere serverregler",
@@ -481,12 +481,12 @@
   "report.close": "Udført",
   "report.comment.title": "Er der andet, som vi bør vide?",
   "report.forward": "Videresend til {target}",
-  "report.forward_hint": "Kontoen er fra en anden server. Send også en anonymiseret anmeldelseskopi dertil?",
+  "report.forward_hint": "Kontoen er fra en anden server. Send også en anonymiseret kopi af anmeldelsen dertil?",
   "report.mute": "Skjul (mute)",
-  "report.mute_explanation": "Du vil ikke se vedkommendes indlæg, men vedkommende kan stadig se dine og følge dig. Vedkommende vil ikke være bekendt med tavsgørelsen.",
+  "report.mute_explanation": "Du vil ikke se vedkommendes indlæg. Vedkommende kan stadig se dine indlæg og følge dig. Vedkommende vil ikke kunne se, at de er blevet skjult.",
   "report.next": "Næste",
   "report.placeholder": "Yderligere kommentarer",
-  "report.reasons.dislike": "Synes ikke om den/dem",
+  "report.reasons.dislike": "Jeg bryder mig ikke om det",
   "report.reasons.dislike_description": "Det er ikke noget, man ønsker at se",
   "report.reasons.other": "Det er noget andet",
   "report.reasons.other_description": "Problemet passer ikke ind i andre kategorier",
@@ -500,12 +500,12 @@
   "report.statuses.title": "Er der indlæg, som kan bekræfte denne anmeldelse?",
   "report.submit": "Indsend",
   "report.target": "Anmelder {target}",
-  "report.thanks.take_action": "Dette er mulighederne for styring af, hvad man ses på Mastodon:",
+  "report.thanks.take_action": "Her er mulighederne for at styre, hvad du ser på Mastodon:",
   "report.thanks.take_action_actionable": "Mens dette gennemgås, kan der skrides til handling mod @{name}:",
   "report.thanks.title": "Ønsker ikke at se dette?",
   "report.thanks.title_actionable": "Tak for anmeldelsen, der vil blive set nærmere på dette.",
   "report.unfollow": "Følg ikke længere @{name}",
-  "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.",
+  "report.unfollow_explanation": "Du følger denne konto. For ikke længere at se vedkommendes indlæg i dit hjemmefeed, kan du stoppe med at følge dem.",
   "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} poster}} vedhæftet",
   "report_notification.categories.other": "Andre",
   "report_notification.categories.spam": "Spam",
@@ -514,7 +514,7 @@
   "search.placeholder": "Søg",
   "search.search_or_paste": "Søg efter eller angiv URL",
   "search_popout.search_format": "Avanceret søgeformat",
-  "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.full_text": "Simpel tekst returnerer indlæg, du har skrevet, gjort til favorit, boostet eller er nævnt i, såvel som matchende 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",
@@ -535,13 +535,13 @@
   "server_banner.server_stats": "Serverstatstik:",
   "sign_in_banner.create_account": "Opret konto",
   "sign_in_banner.sign_in": "Log ind",
-  "sign_in_banner.text": "Log ind for at følge profiler eller hashtags, dele og svar på indlæg eller interagere fra kontoen på en anden server.",
+  "sign_in_banner.text": "Log ind for at følge profiler eller hashtags, markere som favorit, dele og svare på indlæg eller interagere fra din konto på en anden server.",
   "status.admin_account": "Åbn modereringsbrugerflade for @{name}",
   "status.admin_status": "Åbn dette indlæg i modereringsbrugerfladen",
   "status.block": "Blokér @{name}",
   "status.bookmark": "Bogmærk",
-  "status.cancel_reblog_private": "Fjern fremhævning",
-  "status.cannot_reblog": "Dette indlæg kan ikke boostes",
+  "status.cancel_reblog_private": "Fjern boost",
+  "status.cannot_reblog": "Dette indlæg kan ikke fremhæves",
   "status.copy": "Kopiér link til indlæg",
   "status.delete": "Slet",
   "status.detailed_status": "Detaljeret samtalevisning",
@@ -568,8 +568,8 @@
   "status.read_more": "Læs mere",
   "status.reblog": "Boost",
   "status.reblog_private": "Boost med oprindelig synlighed",
-  "status.reblogged_by": "{name} boostede",
-  "status.reblogs.empty": "Ingen har endnu boostet dette indlæg. Når nogen gør, vil det fremgå hér.",
+  "status.reblogged_by": "{name} fremhævede",
+  "status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.",
   "status.redraft": "Slet og omformulér",
   "status.remove_bookmark": "Fjern bogmærke",
   "status.replied_to": "Besvarede {name}",
@@ -589,11 +589,11 @@
   "status.uncached_media_warning": "Utilgængelig",
   "status.unmute_conversation": "Genaktivér samtale",
   "status.unpin": "Frigør fra profil",
-  "subscribed_languages.lead": "Kun indlæg på udvalgte sprog vil fremgå på Hjem og listetidslinjer efter ændringen. Vælg ingen for at modtage indlæg på alle sprog.",
+  "subscribed_languages.lead": "Kun indlæg på udvalgte sprog vil fremgå på dine hjemme- og listetidslinjer efter ændringen. Vælg ingen for at modtage indlæg på alle sprog.",
   "subscribed_languages.save": "Gem ændringer",
   "subscribed_languages.target": "Skift abonnementssprog for {target}",
-  "suggestions.dismiss": "Afvis foreslag",
-  "suggestions.header": "Du er måske interesseret i …",
+  "suggestions.dismiss": "Afvis forslag",
+  "suggestions.header": "Du er måske interesseret i…",
   "tabs_bar.federated_timeline": "Fælles",
   "tabs_bar.home": "Hjem",
   "tabs_bar.local_timeline": "Lokal",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 1f015a790..8e3a6c65d 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -57,9 +57,9 @@
   "account.share": "Profil von @{name} teilen",
   "account.show_reblogs": "Geteilte Beiträge von @{name} wieder anzeigen",
   "account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}",
-  "account.unblock": "@{name} entblocken",
-  "account.unblock_domain": "Entblocken von {domain}",
-  "account.unblock_short": "Blockierung aufheben",
+  "account.unblock": "@{name} entsperren",
+  "account.unblock_domain": "Sperre von {domain} aufheben",
+  "account.unblock_short": "Sperre aufheben",
   "account.unendorse": "Im Profil nicht mehr empfehlen",
   "account.unfollow": "Entfolgen",
   "account.unmute": "Stummschaltung von @{name} aufheben",
@@ -77,7 +77,7 @@
   "alert.unexpected.title": "Ups!",
   "announcement.announcement": "Ankündigung",
   "attachments_list.unprocessed": "(ausstehend)",
-  "audio.hide": "Audio stummschalten",
+  "audio.hide": "Audio verbergen",
   "autosuggest_hashtag.per_week": "{count} pro Woche",
   "boost_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt",
   "bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren",
@@ -90,7 +90,7 @@
   "bundle_column_error.routing.body": "Die angeforderte Seite konnte nicht gefunden werden. Bist du dir sicher, dass die URL in der Adressleiste korrekt ist?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Schließen",
-  "bundle_modal_error.message": "Etwas ist beim Laden schiefgelaufen.",
+  "bundle_modal_error.message": "Beim Laden dieser Komponente ist etwas schiefgelaufen.",
   "bundle_modal_error.retry": "Erneut versuchen",
   "closed_registrations.other_server_instructions": "Da Mastodon dezentralisiert ist, kannst du ein Konto auf einem anderen Server erstellen und trotzdem mit diesem Server interagieren.",
   "closed_registrations_modal.description": "Das Anlegen eines Kontos auf {domain} ist derzeit nicht möglich, aber bedenke, dass du kein extra Konto auf {domain} benötigst, um Mastodon nutzen zu können.",
@@ -98,12 +98,12 @@
   "closed_registrations_modal.preamble": "Mastodon ist dezentralisiert, das heißt, unabhängig davon, wo du dein Konto erstellt hast, kannst du jedem Profil auf diesem Server folgen und mit ihm interagieren. Du kannst sogar deinen eigenen Server hosten!",
   "closed_registrations_modal.title": "Bei Mastodon registrieren",
   "column.about": "Über",
-  "column.blocks": "Blockierte Profile",
+  "column.blocks": "Gesperrte Profile",
   "column.bookmarks": "Lesezeichen",
   "column.community": "Lokale Timeline",
   "column.direct": "Direktnachrichten",
   "column.directory": "Profile durchsuchen",
-  "column.domain_blocks": "Blockierte Domains",
+  "column.domain_blocks": "Gesperrte Domains",
   "column.favourites": "Favoriten",
   "column.follow_requests": "Follower-Anfragen",
   "column.home": "Startseite",
@@ -148,19 +148,19 @@
   "compose_form.spoiler.unmarked": "Inhaltswarnung hinzufügen",
   "compose_form.spoiler_placeholder": "Inhaltswarnung",
   "confirmation_modal.cancel": "Abbrechen",
-  "confirmations.block.block_and_report": "Blockieren und melden",
-  "confirmations.block.confirm": "Blockieren",
-  "confirmations.block.message": "Bist du dir sicher, dass du {name} blockieren möchtest?",
+  "confirmations.block.block_and_report": "Sperren und melden",
+  "confirmations.block.confirm": "Sperren",
+  "confirmations.block.message": "Bist du dir sicher, dass du {name} sperren möchtest?",
   "confirmations.cancel_follow_request.confirm": "Anfrage zurückziehen",
   "confirmations.cancel_follow_request.message": "Möchtest du deine Anfrage, {name} zu folgen, wirklich zurückziehen?",
   "confirmations.delete.confirm": "Löschen",
   "confirmations.delete.message": "Bist du dir sicher, dass du diesen Beitrag löschen möchtest?",
   "confirmations.delete_list.confirm": "Löschen",
-  "confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste permanent löschen möchtest?",
+  "confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste endgültig löschen möchtest?",
   "confirmations.discard_edit_media.confirm": "Verwerfen",
-  "confirmations.discard_edit_media.message": "Du hast ungespeicherte Änderungen an der Medienbeschreibung oder der Medienvorschau. Trotzdem verwerfen?",
-  "confirmations.domain_block.confirm": "Blocke die ganze Domain",
-  "confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.",
+  "confirmations.discard_edit_media.message": "Du hast Änderungen an der Medienbeschreibung oder -vorschau vorgenommen, die noch nicht gespeichert sind. Trotzdem verwerfen?",
+  "confirmations.domain_block.confirm": "Domain sperren",
+  "confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} sperren willst? In den meisten Fällen reichen ein paar gezielte Sperren oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.",
   "confirmations.logout.confirm": "Abmelden",
   "confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?",
   "confirmations.mute.confirm": "Stummschalten",
@@ -169,7 +169,7 @@
   "confirmations.redraft.confirm": "Löschen und neu erstellen",
   "confirmations.redraft.message": "Bist du dir sicher, dass du diesen Beitrag löschen und auf Basis deines vorherigen neu erstellen möchtest? Favoriten und geteilte Beiträge gehen verloren. Vorhandene Antworten von dir und anderen Nutzer*innen auf diesen Beitrag werden zwar nicht gelöscht, aber die Verknüpfungen gehen verloren.",
   "confirmations.reply.confirm": "Antworten",
-  "confirmations.reply.message": "Wenn du jetzt antwortest wird die gesamte Nachricht verworfen, die du gerade schreibst. Möchtest du wirklich fortfahren?",
+  "confirmations.reply.message": "Wenn du jetzt darauf antwortest, wird der andere Beitrag, an dem du gerade geschrieben hast, verworfen. Möchtest du wirklich fortfahren?",
   "confirmations.unfollow.confirm": "Entfolgen",
   "confirmations.unfollow.message": "Bist du dir sicher, dass du {name} entfolgen möchtest?",
   "conversation.delete": "Unterhaltung löschen",
@@ -178,7 +178,7 @@
   "conversation.with": "Mit {names}",
   "copypaste.copied": "Kopiert",
   "copypaste.copy": "Kopieren",
-  "directory.federated": "Aus dem Fediverse",
+  "directory.federated": "Aus bekanntem Fediverse",
   "directory.local": "Nur von der Domain {domain}",
   "directory.new_arrivals": "Neue Profile",
   "directory.recently_active": "Kürzlich aktiv",
@@ -189,7 +189,7 @@
   "dismissable_banner.explore_links": "Diese Nachrichten werden gerade von Leuten auf diesem und anderen Servern des dezentralen Netzwerks besprochen.",
   "dismissable_banner.explore_statuses": "Diese Beiträge von diesem und anderen Servern im dezentralen Netzwerk gewinnen gerade an Reichweite auf diesem Server.",
   "dismissable_banner.explore_tags": "Diese Hashtags gewinnen gerade unter den Leuten auf diesem und anderen Servern des dezentralen Netzwerkes an Reichweite.",
-  "dismissable_banner.public_timeline": "Dies sind die neuesten öffentlichen Beiträge von Personen auf diesem und anderen Servern des dezentralen Netzwerks, die dieser Server kennt.",
+  "dismissable_banner.public_timeline": "Dies sind die neuesten öffentlichen Beiträge von Profilen auf dieser Mastodon-Instanz und auf anderen Servern des dezentralen Netzwerks, von denen dieser Server Kenntnis hat.",
   "embed.instructions": "Du kannst diesen Beitrag außerhalb des Fediverse (z. B. auf deiner Website) einbetten, indem du diesen iFrame-Code einfügst.",
   "embed.preview": "Vorschau:",
   "emoji_button.activity": "Aktivitäten",
@@ -203,18 +203,18 @@
   "emoji_button.objects": "Gegenstände",
   "emoji_button.people": "Personen",
   "emoji_button.recent": "Häufig benutzte Emojis",
-  "emoji_button.search": "Suchen …",
+  "emoji_button.search": "Suchen …",
   "emoji_button.search_results": "Suchergebnisse",
   "emoji_button.symbols": "Symbole",
   "emoji_button.travel": "Reisen & Orte",
   "empty_column.account_suspended": "Konto gesperrt",
   "empty_column.account_timeline": "Keine Beiträge vorhanden!",
   "empty_column.account_unavailable": "Profil nicht verfügbar",
-  "empty_column.blocks": "Du hast bisher keine Profile blockiert.",
+  "empty_column.blocks": "Du hast bisher keine Profile gesperrt.",
   "empty_column.bookmarked_statuses": "Du hast bisher keine Beiträge als Lesezeichen abgelegt. Sobald du einen Beitrag als Lesezeichen speicherst, wird er hier erscheinen.",
   "empty_column.community": "Die lokale Timeline ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!",
-  "empty_column.direct": "Du hast noch keine Direktnachrichten. Sobald du eine sendest oder empfängst, wird sie hier zu sehen sein.",
-  "empty_column.domain_blocks": "Du hast noch keine Domains blockiert.",
+  "empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Sobald du eine private Nachricht sendest oder empfängst, wird sie hier zu sehen sein.",
+  "empty_column.domain_blocks": "Du hast noch keine Domains gesperrt.",
   "empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!",
   "empty_column.favourited_statuses": "Du hast noch keine Beiträge favorisiert. Sobald du einen favorisierst, wird er hier erscheinen.",
   "empty_column.favourites": "Noch niemand hat diesen Beitrag favorisiert. Sobald es jemand tut, wird das hier angezeigt.",
@@ -228,34 +228,34 @@
   "empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
   "empty_column.notifications": "Du hast noch keine Mitteilungen. Sobald du mit anderen Personen interagierst, wirst du hier darüber benachrichtigt.",
   "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Timeline aufzufüllen",
-  "error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browser-Inkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
+  "error.unexpected_crash.explanation": "Wegen eines Fehlers in unserem Code oder aufgrund einer Browser-Inkompatibilität kann diese Seite nicht korrekt angezeigt werden.",
   "error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.",
-  "error.unexpected_crash.next_steps": "Versuche, die Seite zu aktualisieren. Wenn das nicht hilft, kannst du Mastodon über einen anderen Browser oder eine native App verwenden.",
-  "error.unexpected_crash.next_steps_addons": "Versuche, sie zu deaktivieren, und lade dann die Seite neu. Wenn das Problem weiterhin besteht, solltest du Mastodon über einen anderen Browser oder eine native App nutzen.",
-  "errors.unexpected_crash.copy_stacktrace": "Fehlerlog in die Zwischenablage kopieren",
-  "errors.unexpected_crash.report_issue": "Problem melden",
+  "error.unexpected_crash.next_steps": "Versuche, diese Seite zu aktualisieren. Wenn das nicht helfen sollte, kannst du das Webinterface von Mastodon vermutlich über einen anderen Browser erreichen – oder du nutzt eine mobile (native) App.",
+  "error.unexpected_crash.next_steps_addons": "Versuche, die Seite zu deaktivieren und lade sie dann neu. Sollte das Problem weiter bestehen, kannst du das Webinterface von Mastodon vermutlich über einen anderen Browser erreichen – oder du nutzt eine mobile (native) App.",
+  "errors.unexpected_crash.copy_stacktrace": "Fehlerdiagnose in die Zwischenablage kopieren",
+  "errors.unexpected_crash.report_issue": "Fehler melden",
   "explore.search_results": "Suchergebnisse",
   "explore.title": "Entdecken",
   "filter_modal.added.context_mismatch_explanation": "Diese Filterkategorie gilt nicht für den Kontext, in welchem du auf diesen Beitrag zugegriffen hast. Wenn der Beitrag auch in diesem Kontext gefiltert werden soll, musst du den Filter bearbeiten.",
   "filter_modal.added.context_mismatch_title": "Kontext stimmt nicht überein!",
-  "filter_modal.added.expired_explanation": "Diese Filterkategrie ist abgelaufen, du musst das Ablaufdatum für diese Kategorie ändern.",
+  "filter_modal.added.expired_explanation": "Diese Filterkategorie ist abgelaufen. Du musst das Ablaufdatum für diese Kategorie ändern.",
   "filter_modal.added.expired_title": "Abgelaufener Filter!",
-  "filter_modal.added.review_and_configure": "Um diese Filterkategorie zu überprüfen und weiter zu konfigurieren, gehe zu {settings_link}.",
+  "filter_modal.added.review_and_configure": "Um diesen Filter zu überprüfen oder noch weiter zu konfigurieren, rufe die {settings_link} auf.",
   "filter_modal.added.review_and_configure_title": "Filtereinstellungen",
-  "filter_modal.added.settings_link": "Einstellungsseite",
+  "filter_modal.added.settings_link": "Einstellungen",
   "filter_modal.added.short_explanation": "Dieser Post wurde folgender Filterkategorie hinzugefügt: {title}.",
   "filter_modal.added.title": "Filter hinzugefügt!",
   "filter_modal.select_filter.context_mismatch": "gilt nicht für diesen Kontext",
   "filter_modal.select_filter.expired": "abgelaufen",
   "filter_modal.select_filter.prompt_new": "Neue Kategorie: {name}",
-  "filter_modal.select_filter.search": "Suchen oder erstellen",
-  "filter_modal.select_filter.subtitle": "Eine existierende Kategorie benutzen oder eine erstellen",
+  "filter_modal.select_filter.search": "Suchen oder Erstellen",
+  "filter_modal.select_filter.subtitle": "Einem vorhandenen Filter hinzufügen oder einen neuen erstellen",
   "filter_modal.select_filter.title": "Diesen Beitrag filtern",
-  "filter_modal.title.status": "Einen Beitrag filtern",
+  "filter_modal.title.status": "Beitrag filtern",
   "follow_recommendations.done": "Fertig",
   "follow_recommendations.heading": "Folge Leuten, deren Beiträge du sehen möchtest! Hier sind einige Vorschläge.",
   "follow_recommendations.lead": "Beiträge von Personen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Hab keine Angst, Fehler zu machen, du kannst den Leuten jederzeit wieder entfolgen!",
-  "follow_request.authorize": "Erlauben",
+  "follow_request.authorize": "Genehmigen",
   "follow_request.reject": "Ablehnen",
   "follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.",
   "footer.about": "Über",
@@ -271,7 +271,7 @@
   "hashtag.column_header.tag_mode.any": "oder {additional}",
   "hashtag.column_header.tag_mode.none": "ohne {additional}",
   "hashtag.column_settings.select.no_options_message": "Keine Vorschläge gefunden",
-  "hashtag.column_settings.select.placeholder": "Hashtags eintragen…",
+  "hashtag.column_settings.select.placeholder": "Hashtags eingeben …",
   "hashtag.column_settings.tag_mode.all": "All diese",
   "hashtag.column_settings.tag_mode.any": "Eines von diesen",
   "hashtag.column_settings.tag_mode.none": "Keines von diesen",
@@ -291,51 +291,51 @@
   "interaction_modal.on_this_server": "Auf diesem Server",
   "interaction_modal.other_server_instructions": "Kopiere diese URL und füge sie in das Suchfeld deiner bevorzugten Mastodon-App oder im Webinterface deiner Mastodon-Instanz ein.",
   "interaction_modal.preamble": "Da Mastodon dezentralisiert ist, kannst du dein bestehendes Konto auf einem anderen Mastodon-Server oder einer kompatiblen Plattform nutzen, wenn du kein Konto auf dieser Plattform hast.",
-  "interaction_modal.title.favourite": "Lieblingsbeitrag von {name}",
+  "interaction_modal.title.favourite": "Beitrag von {name} favorisieren",
   "interaction_modal.title.follow": "Folge {name}",
   "interaction_modal.title.reblog": "Beitrag von {name} teilen",
-  "interaction_modal.title.reply": "Antworte auf den Post von {name}",
+  "interaction_modal.title.reply": "Auf Beitrag von {name} antworten",
   "intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}",
   "intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}",
   "intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}",
-  "keyboard_shortcuts.back": "Zurück navigieren",
-  "keyboard_shortcuts.blocked": "Liste blockierter Profile öffnen",
+  "keyboard_shortcuts.back": "zurücknavigieren",
+  "keyboard_shortcuts.blocked": "Liste gesperrter Profile öffnen",
   "keyboard_shortcuts.boost": "Beitrag teilen",
-  "keyboard_shortcuts.column": "einen Beitrag in einer der Spalten fokussieren",
-  "keyboard_shortcuts.compose": "fokussiere das Eingabefeld",
+  "keyboard_shortcuts.column": "Spalte fokussieren",
+  "keyboard_shortcuts.compose": "Eingabefeld fokussieren",
   "keyboard_shortcuts.description": "Beschreibung",
-  "keyboard_shortcuts.direct": "um die Spalte mit den Direktnachrichten zu öffnen",
-  "keyboard_shortcuts.down": "In der Liste nach unten bewegen",
+  "keyboard_shortcuts.direct": "Direktnachrichten öffnen",
+  "keyboard_shortcuts.down": "sich in der Liste nach unten bewegen",
   "keyboard_shortcuts.enter": "Beitrag öffnen",
   "keyboard_shortcuts.favourite": "favorisieren",
-  "keyboard_shortcuts.favourites": "Favoriten-Liste öffnen",
+  "keyboard_shortcuts.favourites": "Favoritenliste öffnen",
   "keyboard_shortcuts.federated": "Föderierte Timeline öffnen",
   "keyboard_shortcuts.heading": "Tastenkombinationen",
   "keyboard_shortcuts.home": "Startseite öffnen",
   "keyboard_shortcuts.hotkey": "Tastenkürzel",
-  "keyboard_shortcuts.legend": "diese Übersicht anzeigen",
-  "keyboard_shortcuts.local": "Lokale Timeline öffnen",
+  "keyboard_shortcuts.legend": "diese Tastenkombinationen anzeigen",
+  "keyboard_shortcuts.local": "lokale Timeline öffnen",
   "keyboard_shortcuts.mention": "Profil erwähnen",
   "keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen",
-  "keyboard_shortcuts.my_profile": "Dein Profil öffnen",
-  "keyboard_shortcuts.notifications": "Benachrichtigungsspalte öffnen",
+  "keyboard_shortcuts.my_profile": "dein eigenes Profil öffnen",
+  "keyboard_shortcuts.notifications": "Mitteilungen aufrufen",
   "keyboard_shortcuts.open_media": "Medien-Datei öffnen",
   "keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen",
-  "keyboard_shortcuts.profile": "Profil des Autors öffnen",
-  "keyboard_shortcuts.reply": "antworten",
+  "keyboard_shortcuts.profile": "Profil öffnen",
+  "keyboard_shortcuts.reply": "auf Beitrag antworten",
   "keyboard_shortcuts.requests": "Liste der Follower-Anfragen öffnen",
-  "keyboard_shortcuts.search": "Suche fokussieren",
-  "keyboard_shortcuts.spoilers": "Schaltfläche für Inhaltswarnung anzeigen/verbergen",
-  "keyboard_shortcuts.start": "\"Erste Schritte\"-Spalte öffnen",
+  "keyboard_shortcuts.search": "Suchleiste fokussieren",
+  "keyboard_shortcuts.spoilers": "Inhaltswarnung anzeigen/verbergen",
+  "keyboard_shortcuts.start": "„Erste Schritte“-Spalte öffnen",
   "keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung anzeigen/verbergen",
   "keyboard_shortcuts.toggle_sensitivity": "Medien anzeigen/verbergen",
-  "keyboard_shortcuts.toot": "Neuen Beitrag erstellen",
-  "keyboard_shortcuts.unfocus": "Textfeld/die Suche nicht mehr fokussieren",
-  "keyboard_shortcuts.up": "sich in der Liste hinauf bewegen",
+  "keyboard_shortcuts.toot": "neuen Beitrag erstellen",
+  "keyboard_shortcuts.unfocus": "Eingabefeld/Suche nicht mehr fokussieren",
+  "keyboard_shortcuts.up": "sich in der Liste hinaufbewegen",
   "lightbox.close": "Schließen",
   "lightbox.compress": "Bildansicht komprimieren",
   "lightbox.expand": "Bildansicht erweitern",
-  "lightbox.next": "Weiter",
+  "lightbox.next": "Vor",
   "lightbox.previous": "Zurück",
   "limited_account_hint.action": "Profil trotzdem anzeigen",
   "limited_account_hint.title": "Dieses Profil wurde von den Moderator*innen der Mastodon-Instanz {domain} ausgeblendet.",
@@ -344,11 +344,11 @@
   "lists.delete": "Liste löschen",
   "lists.edit": "Liste bearbeiten",
   "lists.edit.submit": "Titel ändern",
-  "lists.new.create": "Liste hinzufügen",
-  "lists.new.title_placeholder": "Neuer Titel der Liste",
+  "lists.new.create": "Neue Liste erstellen",
+  "lists.new.title_placeholder": "Titel der neuen Liste",
   "lists.replies_policy.followed": "Alle folgenden Profile",
   "lists.replies_policy.list": "Mitglieder der Liste",
-  "lists.replies_policy.none": "Niemand",
+  "lists.replies_policy.none": "Niemandem",
   "lists.replies_policy.title": "Antworten anzeigen für:",
   "lists.search": "Suche nach Leuten, denen du folgst",
   "lists.subheading": "Deine Listen",
@@ -356,19 +356,19 @@
   "loading_indicator.label": "Wird geladen …",
   "media_gallery.toggle_visible": "{number, plural, one {Bild verbergen} other {Bilder verbergen}}",
   "missing_indicator.label": "Nicht gefunden",
-  "missing_indicator.sublabel": "Die Ressource konnte nicht gefunden werden",
+  "missing_indicator.sublabel": "Der Inhalt konnte nicht gefunden werden",
   "moved_to_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert, weil du zu {movedToAccount} umgezogen bist.",
   "mute_modal.duration": "Dauer",
-  "mute_modal.hide_notifications": "Benachrichtigungen von diesem Profil verbergen?",
-  "mute_modal.indefinite": "Unbestimmt",
+  "mute_modal.hide_notifications": "Benachrichtigungen dieses Profils verbergen?",
+  "mute_modal.indefinite": "Unbegrenzt",
   "navigation_bar.about": "Über",
-  "navigation_bar.blocks": "Blockierte Profile",
+  "navigation_bar.blocks": "Gesperrte Profile",
   "navigation_bar.bookmarks": "Lesezeichen",
   "navigation_bar.community_timeline": "Lokale Timeline",
   "navigation_bar.compose": "Neuen Beitrag verfassen",
   "navigation_bar.direct": "Direktnachrichten",
   "navigation_bar.discover": "Entdecken",
-  "navigation_bar.domain_blocks": "Blockierte Domains",
+  "navigation_bar.domain_blocks": "Gesperrte Domains",
   "navigation_bar.edit_profile": "Profil bearbeiten",
   "navigation_bar.explore": "Entdecken",
   "navigation_bar.favourites": "Favoriten",
@@ -384,40 +384,40 @@
   "navigation_bar.public_timeline": "Föderierte Timeline",
   "navigation_bar.search": "Suche",
   "navigation_bar.security": "Sicherheit",
-  "not_signed_in_indicator.not_signed_in": "Sie müssen sich anmelden, um diese Funktion zu nutzen.",
+  "not_signed_in_indicator.not_signed_in": "Du musst dich anmelden, um auf diesen Inhalt zugreifen zu können.",
   "notification.admin.report": "{target} wurde von {name} gemeldet",
-  "notification.admin.sign_up": "{name} hat sich registriert",
+  "notification.admin.sign_up": "{name} registrierte sich",
   "notification.favourite": "{name} hat deinen Beitrag favorisiert",
   "notification.follow": "{name} folgt dir jetzt",
   "notification.follow_request": "{name} möchte dir folgen",
-  "notification.mention": "{name} hat dich erwähnt",
+  "notification.mention": "{name} erwähnte dich",
   "notification.own_poll": "Deine Umfrage ist beendet",
   "notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
-  "notification.reblog": "{name} hat deinen Beitrag geteilt",
+  "notification.reblog": "{name} teilte deinen Beitrag",
   "notification.status": "{name} hat etwas mitgeteilt",
   "notification.update": "{name} bearbeitete einen Beitrag",
   "notifications.clear": "Mitteilungen löschen",
-  "notifications.clear_confirmation": "Bist du dir sicher, dass du alle Mitteilungen löschen möchtest?",
+  "notifications.clear_confirmation": "Bist du dir sicher, dass du diese Mitteilungen für immer löschen möchtest?",
   "notifications.column_settings.admin.report": "Neue Meldungen:",
   "notifications.column_settings.admin.sign_up": "Neue Registrierungen:",
   "notifications.column_settings.alert": "Desktop-Benachrichtigungen",
   "notifications.column_settings.favourite": "Favorisierungen:",
-  "notifications.column_settings.filter_bar.advanced": "Zeige alle Kategorien an",
-  "notifications.column_settings.filter_bar.category": "Schnellfilterleiste",
+  "notifications.column_settings.filter_bar.advanced": "Erweiterte Filterleiste aktivieren",
+  "notifications.column_settings.filter_bar.category": "Filterleiste:",
   "notifications.column_settings.filter_bar.show_bar": "Filterleiste anzeigen",
   "notifications.column_settings.follow": "Neue Follower:",
   "notifications.column_settings.follow_request": "Neue Follower-Anfragen:",
   "notifications.column_settings.mention": "Erwähnungen:",
-  "notifications.column_settings.poll": "Ergebnisse von Umfragen:",
+  "notifications.column_settings.poll": "Umfrageergebnisse:",
   "notifications.column_settings.push": "Push-Benachrichtigungen",
   "notifications.column_settings.reblog": "Geteilte Beiträge:",
-  "notifications.column_settings.show": "In der Timeline „Mitteilungen“ anzeigen",
+  "notifications.column_settings.show": "In diesem Feed anzeigen",
   "notifications.column_settings.sound": "Ton abspielen",
   "notifications.column_settings.status": "Neue Beiträge:",
-  "notifications.column_settings.unread_notifications.category": "Ungelesene Benachrichtigungen",
-  "notifications.column_settings.unread_notifications.highlight": "Ungelesene Benachrichtigungen hervorheben",
-  "notifications.column_settings.update": "Bearbeitungen:",
-  "notifications.filter.all": "Alle",
+  "notifications.column_settings.unread_notifications.category": "Ungelesene Mitteilungen:",
+  "notifications.column_settings.unread_notifications.highlight": "Ungelesene Mitteilungen markieren",
+  "notifications.column_settings.update": "Bearbeitete Beiträge:",
+  "notifications.filter.all": "Alles",
   "notifications.filter.boosts": "Geteilte Beiträge",
   "notifications.filter.favourites": "Favorisierungen",
   "notifications.filter.follows": "Neue Follower",
@@ -436,12 +436,12 @@
   "picture_in_picture.restore": "Zurücksetzen",
   "poll.closed": "Beendet",
   "poll.refresh": "Aktualisieren",
-  "poll.total_people": "{count, plural, one {# Person} other {# Personen}}",
+  "poll.total_people": "{count, plural, one {# Profil} other {# Profile}}",
   "poll.total_votes": "{count, plural, one {# Stimme} other {# Stimmen}}",
   "poll.vote": "Abstimmen",
   "poll.voted": "Du hast für diese Auswahl gestimmt",
   "poll.votes": "{votes, plural, one {# Stimme} other {# Stimmen}}",
-  "poll_button.add_poll": "Eine Umfrage erstellen",
+  "poll_button.add_poll": "Umfrage erstellen",
   "poll_button.remove_poll": "Umfrage entfernen",
   "privacy.change": "Sichtbarkeit des Beitrags anpassen",
   "privacy.direct.long": "Nur für die genannten Profile sichtbar",
@@ -455,25 +455,25 @@
   "privacy_policy.last_updated": "Zuletzt aktualisiert am {date}",
   "privacy_policy.title": "Datenschutzerklärung",
   "refresh": "Aktualisieren",
-  "regeneration_indicator.label": "Laden…",
+  "regeneration_indicator.label": "Wird geladen …",
   "regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!",
   "relative_time.days": "{number}T",
   "relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}",
   "relative_time.full.hours": "vor {number, plural, one {# Stunde} other {# Stunden}}",
-  "relative_time.full.just_now": "gerade eben",
+  "relative_time.full.just_now": "soeben",
   "relative_time.full.minutes": "vor {number, plural, one {# Minute} other {# Minuten}}",
   "relative_time.full.seconds": "vor {number, plural, one {1 Sekunde} other {# Sekunden}}",
-  "relative_time.hours": "{number}h",
+  "relative_time.hours": "{number} Std",
   "relative_time.just_now": "jetzt",
-  "relative_time.minutes": "{number}m",
-  "relative_time.seconds": "{number}s",
+  "relative_time.minutes": "{number} min",
+  "relative_time.seconds": "{number} sek",
   "relative_time.today": "heute",
   "reply_indicator.cancel": "Abbrechen",
-  "report.block": "Blockieren",
-  "report.block_explanation": "Du wirst die Beiträge von diesem Konto nicht sehen. Das Konto wird nicht in der Lage sein, deine Beiträge zu sehen oder dir zu folgen. Die Person hinter dem Konto wird wissen, dass du das Konto blockiert hast.",
+  "report.block": "Sperren",
+  "report.block_explanation": "Dir wird es nicht länger möglich sein, die Beiträge dieses Konto zu sehen. Das gesperrte Profil wird nicht mehr in der Lage sein, deine Beiträge zu sehen oder dir zu folgen. Die Person hinter dem Konto wird mitbekommen, dass du ihr Konto gesperrt hast.",
   "report.categories.other": "Andere",
   "report.categories.spam": "Spam",
-  "report.categories.violation": "Der Inhalt verletzt eine oder mehrere Server-Regeln",
+  "report.categories.violation": "Der Inhalt verletzt eine oder mehrere Serverregeln",
   "report.category.subtitle": "Wähle die passendste Kategorie",
   "report.category.title": "Sag uns, was das Problem mit diesem {type} ist",
   "report.category.title_account": "Profil",
@@ -485,31 +485,31 @@
   "report.mute": "Stummschalten",
   "report.mute_explanation": "Du wirst die Beiträge vom Konto nicht mehr sehen. Das Konto kann dir immer noch folgen, und die Person hinter dem Konto wird deine Beiträge sehen können und nicht wissen, dass du sie stummgeschaltet hast.",
   "report.next": "Weiter",
-  "report.placeholder": "Zusätzliche Kommentare",
+  "report.placeholder": "Ergänzende Hinweise",
   "report.reasons.dislike": "Das gefällt mir nicht",
   "report.reasons.dislike_description": "Es ist etwas, das du nicht sehen willst",
-  "report.reasons.other": "Es geht um etwas anderes",
-  "report.reasons.other_description": "Das Problem passt nicht in die Kategorien",
+  "report.reasons.other": "Es ist etwas anderes",
+  "report.reasons.other_description": "Der Vorfall passt zu keiner dieser Kategorien",
   "report.reasons.spam": "Das ist Spam",
   "report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten",
   "report.reasons.violation": "Es verstößt gegen Serverregeln",
   "report.reasons.violation_description": "Du weißt, welche Regeln verletzt werden",
-  "report.rules.subtitle": "Alles Zutreffende auswählen",
+  "report.rules.subtitle": "Wähle alle zutreffenden Inhalte aus",
   "report.rules.title": "Welche Regeln werden verletzt?",
-  "report.statuses.subtitle": "Alles Zutreffende auswählen",
+  "report.statuses.subtitle": "Wähle alle zutreffenden Inhalte aus",
   "report.statuses.title": "Gibt es Beiträge, die diesen Bericht unterstützen?",
-  "report.submit": "Absenden",
+  "report.submit": "Abschicken",
   "report.target": "{target} melden",
   "report.thanks.take_action": "Das sind deine Möglichkeiten zu bestimmen, was du auf Mastodon sehen möchtest:",
-  "report.thanks.take_action_actionable": "Während wir dies überprüfen, kannst du gegen @{name} vorgehen:",
-  "report.thanks.title": "Möchtest du das nicht sehen?",
+  "report.thanks.take_action_actionable": "Während wir den Vorfall überprüfen, kannst du gegen @{name} weitere Maßnahmen ergreifen:",
+  "report.thanks.title": "Möchtest du das nicht mehr sehen?",
   "report.thanks.title_actionable": "Vielen Dank für die Meldung, wir werden uns das ansehen.",
   "report.unfollow": "@{name} entfolgen",
   "report.unfollow_explanation": "Du folgst diesem Konto. Um die Beiträge nicht mehr auf deiner Startseite zu sehen, entfolge dem Konto.",
   "report_notification.attached_statuses": "{count, plural, one {{count} angehangener Beitrag} other {{count} angehängte Beiträge}}",
-  "report_notification.categories.other": "Nicht Aufgelistet",
+  "report_notification.categories.other": "Nicht aufgeführt",
   "report_notification.categories.spam": "Spam",
-  "report_notification.categories.violation": "Regelbruch",
+  "report_notification.categories.violation": "Regelverstoß",
   "report_notification.open": "Meldung öffnen",
   "search.placeholder": "Suche",
   "search.search_or_paste": "Suchen oder URL einfügen",
@@ -520,7 +520,7 @@
   "search_popout.tips.text": "Einfache Texteingabe gibt Anzeigenamen, Benutzernamen und Hashtags zurück",
   "search_popout.tips.user": "Profil",
   "search_results.accounts": "Profile",
-  "search_results.all": "Alle",
+  "search_results.all": "Alles",
   "search_results.hashtags": "Hashtags",
   "search_results.nothing_found": "Nichts für diese Suchbegriffe gefunden",
   "search_results.statuses": "Beiträge",
@@ -539,7 +539,7 @@
   "status.admin_account": "Moderationsoberfläche für @{name} öffnen",
   "status.admin_status": "Diesen Beitrag in der Moderationsoberfläche öffnen",
   "status.block": "@{name} blockieren",
-  "status.bookmark": "Lesezeichen setzen",
+  "status.bookmark": "Beitrag als Lesezeichen setzen",
   "status.cancel_reblog_private": "Teilen des Beitrags rückgängig machen",
   "status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
   "status.copy": "Link zum Beitrag kopieren",
@@ -551,18 +551,18 @@
   "status.edited_x_times": "{count, plural, one {{count} mal} other {{count} mal}} bearbeitet",
   "status.embed": "Beitrag per iFrame einbetten",
   "status.favourite": "Favorisieren",
-  "status.filter": "Diesen Beitrag filtern",
+  "status.filter": "Beitrag filtern",
   "status.filtered": "Gefiltert",
   "status.hide": "Beitrag verbergen",
   "status.history.created": "{name} erstellte {date}",
   "status.history.edited": "{name} bearbeitete {date}",
   "status.load_more": "Weitere laden",
   "status.media_hidden": "Medien versteckt",
-  "status.mention": "@{name} erwähnen",
+  "status.mention": "@{name} im Beitrag erwähnen",
   "status.more": "Mehr",
   "status.mute": "@{name} stummschalten",
   "status.mute_conversation": "Unterhaltung stummschalten",
-  "status.open": "Diesen Beitrag öffnen",
+  "status.open": "Beitrag öffnen",
   "status.pin": "Im Profil anheften",
   "status.pinned": "Angehefteter Beitrag",
   "status.read_more": "Gesamten Beitrag anschauen",
@@ -583,7 +583,7 @@
   "status.show_less_all": "Alle Inhaltswarnungen zuklappen",
   "status.show_more": "Mehr anzeigen",
   "status.show_more_all": "Alle Inhaltswarnungen aufklappen",
-  "status.show_original": "Original anzeigen",
+  "status.show_original": "Ursprünglichen Beitrag anzeigen",
   "status.translate": "Übersetzen",
   "status.translated_from_with": "Aus {lang} mittels {provider} übersetzt",
   "status.uncached_media_warning": "Nicht verfügbar",
@@ -592,47 +592,47 @@
   "subscribed_languages.lead": "Nach der Änderung werden nur noch Beiträge in den ausgewählten Sprachen in den Timelines deiner Startseite und deiner Listen angezeigt. Wähle keine Sprache aus, um alle Beiträge zu sehen.",
   "subscribed_languages.save": "Änderungen speichern",
   "subscribed_languages.target": "Abonnierte Sprachen für {target} ändern",
-  "suggestions.dismiss": "Empfehlung ausblenden",
-  "suggestions.header": "Du bist vielleicht interessiert an…",
+  "suggestions.dismiss": "Vorschlag ablehnen",
+  "suggestions.header": "Du bist möglicherweise interessiert an …",
   "tabs_bar.federated_timeline": "Föderiert",
   "tabs_bar.home": "Startseite",
   "tabs_bar.local_timeline": "Lokal",
   "tabs_bar.notifications": "Mitteilungen",
-  "time_remaining.days": "{number, plural, one {# Tag} other {# Tage}} verbleibend",
-  "time_remaining.hours": "{number, plural, one {# Stunde} other {# Stunden}} verbleibend",
-  "time_remaining.minutes": "{number, plural, one {# Minute} other {# Minuten}} verbleibend",
-  "time_remaining.moments": "Schließt in Kürze",
-  "time_remaining.seconds": "{number, plural, one {# Sekunde} other {# Sekunden}} verbleibend",
+  "time_remaining.days": "noch {number, plural, one {# Tag} other {# Tage}}",
+  "time_remaining.hours": "noch {number, plural, one {# Stunde} other {# Stunden}}",
+  "time_remaining.minutes": "noch {number, plural, one {# Minute} other {# Minuten}}",
+  "time_remaining.moments": "Wird gleich beendet",
+  "time_remaining.seconds": "noch {number, plural, one {# Sekunde} other {# Sekunden}}",
   "timeline_hint.remote_resource_not_displayed": "{resource} von anderen Servern werden nicht angezeigt.",
   "timeline_hint.resources.followers": "Follower",
   "timeline_hint.resources.follows": "Folge ich",
   "timeline_hint.resources.statuses": "Ältere Beiträge",
-  "trends.counter_by_accounts": "{count, plural, one {{count} Person} other {{count} Personen}} {days, plural, one {am vergangenen Tag} other {in den vergangenen {days} Tagen}}",
-  "trends.trending_now": "In den Trends",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} Profil} other {{counter} Profile}} {days, plural, one {seit gestern} other {in {days} Tagen}}",
+  "trends.trending_now": "Aktuelle Trends",
   "ui.beforeunload": "Dein Entwurf geht verloren, wenn du Mastodon verlässt.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.billion": "{count} Mrd",
+  "units.short.million": "{count} Mio",
+  "units.short.thousand": "{count} Tsd",
   "upload_area.title": "Zum Hochladen hereinziehen",
-  "upload_button.label": "Mediendatei hinzufügen",
-  "upload_error.limit": "Dateiupload-Limit erreicht.",
-  "upload_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.",
-  "upload_form.audio_description": "Beschreibe die Audiodatei für Menschen mit Hörschädigungen",
+  "upload_button.label": "Bilder, Videos oder Audios hinzufügen",
+  "upload_error.limit": "Dateiupload-Limit überschritten.",
+  "upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.",
+  "upload_form.audio_description": "Beschreibung für Gehörlose und hörbehinderte Menschen",
   "upload_form.description": "Bildbeschreibung für blinde und sehbehinderte Menschen",
   "upload_form.description_missing": "Keine Beschreibung hinzugefügt",
   "upload_form.edit": "Beschreiben",
   "upload_form.thumbnail": "Vorschaubild ändern",
   "upload_form.undo": "Löschen",
   "upload_form.video_description": "Beschreibe das Video für Menschen mit einer Hör- oder Sehbehinderung",
-  "upload_modal.analyzing_picture": "Analysiere Bild…",
+  "upload_modal.analyzing_picture": "Bild wird analysiert …",
   "upload_modal.apply": "Übernehmen",
-  "upload_modal.applying": "Anwenden…",
+  "upload_modal.applying": "Wird angewendet …",
   "upload_modal.choose_image": "Bild auswählen",
   "upload_modal.description_placeholder": "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich",
   "upload_modal.detect_text": "Text aus Bild erkennen",
   "upload_modal.edit_media": "Medien bearbeiten",
   "upload_modal.hint": "Ziehe den Kreis auf die Stelle Deines Bildes, die bei Vorschaugrafiken in der Mitte stehen soll.",
-  "upload_modal.preparing_ocr": "Vorbereitung von OCR…",
+  "upload_modal.preparing_ocr": "Texterkennung wird vorbereitet …",
   "upload_modal.preview_label": "Vorschau ({ratio})",
   "upload_progress.label": "Wird hochgeladen …",
   "upload_progress.processing": "Wird verarbeitet…",
diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json
index 36f3cba0a..265466695 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -3976,12 +3976,12 @@
         "id": "compose_form.publish_form"
       },
       {
-        "defaultMessage": "Sign in",
-        "id": "sign_in_banner.sign_in"
-      },
-      {
         "defaultMessage": "Create account",
         "id": "sign_in_banner.create_account"
+      },
+      {
+        "defaultMessage": "Sign in",
+        "id": "sign_in_banner.sign_in"
       }
     ],
     "path": "app/javascript/mastodon/features/ui/components/header.json"
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 16f32c7ac..8026e6cdb 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -530,12 +530,12 @@
   "server_banner.about_active_users": "Άτομα που χρησιμοποιούν αυτόν τον διακομιστή κατά τις τελευταίες 30 ημέρες (Μηνιαία Ενεργοί Χρήστες)",
   "server_banner.active_users": "ενεργοί χρήστες",
   "server_banner.administered_by": "Διαχειριστής:",
-  "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
+  "server_banner.introduction": "Το {domain} είναι μέρος του αποκεντρωμένου κοινωνικού δικτύου που τρέχει σε {mastodon}.",
   "server_banner.learn_more": "Μάθετε περισσότερα",
   "server_banner.server_stats": "Στατιστικά διακομιστή:",
   "sign_in_banner.create_account": "Δημιουργία λογαριασμού",
   "sign_in_banner.sign_in": "Σύνδεση",
-  "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
+  "sign_in_banner.text": "Συνδεθείτε για να ακολουθήσετε προφίλ ή ταμπέλες, αγαπημένα, να μοιραστείτε και να απαντήσετε σε δημοσιεύσεις ή να αλληλεπιδράσετε από το λογαριασμό σας σε διαφορετικό διακομιστή.",
   "status.admin_account": "Άνοιγμα λειτουργίας διαμεσολάβησης για τον/την @{name}",
   "status.admin_status": "Άνοιγμα αυτής της δημοσίευσης στη λειτουργία διαμεσολάβησης",
   "status.block": "Αποκλεισμός @{name}",
@@ -548,7 +548,7 @@
   "status.direct": "Προσωπικό μήνυμα προς @{name}",
   "status.edit": "Επεξεργασία",
   "status.edited": "Επεξεργάστηκε στις {date}",
-  "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
+  "status.edited_x_times": "Επεξεργάστηκε {count, plural, one {{count} φορά} other {{count} φορές}}",
   "status.embed": "Ενσωμάτωσε",
   "status.favourite": "Σημείωσε ως αγαπημένο",
   "status.filter": "Φίλτρο...",
@@ -585,13 +585,13 @@
   "status.show_more_all": "Δείξε περισσότερα για όλα",
   "status.show_original": "Εμφάνιση αρχικού",
   "status.translate": "Μετάφραση",
-  "status.translated_from_with": "Translated from {lang} using {provider}",
+  "status.translated_from_with": "Μεταφράστηκε από {lang} χρησιμοποιώντας {provider}",
   "status.uncached_media_warning": "Μη διαθέσιμα",
   "status.unmute_conversation": "Διέκοψε την αποσιώπηση της συζήτησης",
   "status.unpin": "Ξεκαρφίτσωσε από το προφίλ",
   "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
   "subscribed_languages.save": "Αποθήκευση αλλαγών",
-  "subscribed_languages.target": "Change subscribed languages for {target}",
+  "subscribed_languages.target": "Αλλαγή εγγεγραμμένων γλωσσών για {target}",
   "suggestions.dismiss": "Απόρριψη πρότασης",
   "suggestions.header": "Ίσως να ενδιαφέρεσαι για…",
   "tabs_bar.federated_timeline": "Ομοσπονδιακή",
diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json
index dcf96600f..666ac0e4c 100644
--- a/app/javascript/mastodon/locales/en-GB.json
+++ b/app/javascript/mastodon/locales/en-GB.json
@@ -159,7 +159,7 @@
   "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
   "confirmations.discard_edit_media.confirm": "Discard",
   "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
-  "confirmations.domain_block.confirm": "Hide entire domain",
+  "confirmations.domain_block.confirm": "Block entire domain",
   "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
   "confirmations.logout.confirm": "Log out",
   "confirmations.logout.message": "Are you sure you want to log out?",
@@ -167,7 +167,7 @@
   "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
   "confirmations.mute.message": "Are you sure you want to mute {name}?",
   "confirmations.redraft.confirm": "Delete & redraft",
-  "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
+  "confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
   "confirmations.reply.confirm": "Reply",
   "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
   "confirmations.unfollow.confirm": "Unfollow",
@@ -186,11 +186,11 @@
   "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
   "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
   "dismissable_banner.dismiss": "Dismiss",
-  "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
-  "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
-  "embed.instructions": "Embed this status on your website by copying the code below.",
+  "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralised network right now.",
+  "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralised network are gaining traction on this server right now.",
+  "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralised network right now.",
+  "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralised network that this server knows about.",
+  "embed.instructions": "Embed this post on your website by copying the code below.",
   "embed.preview": "Here is what it will look like:",
   "emoji_button.activity": "Activity",
   "emoji_button.clear": "Clear",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index cd6277950..0c8857a69 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -9,8 +9,8 @@
   "about.domain_blocks.suspended.explanation": "Neniuj datumoj el tiu servilo estos prilaboritaj, konservitaj, aŭ interŝanĝitaj, do neeblas interagi aŭ komuniki kun uzantoj de tiu servilo.",
   "about.domain_blocks.suspended.title": "Suspendita",
   "about.not_available": "Ĉi tiu informo ne estas disponebla ĉe ĉi tiu servilo.",
-  "about.powered_by": "Malcentralizita socia reto pere de {mastodon}",
-  "about.rules": "Reguloj de la servilo",
+  "about.powered_by": "Malcentrigita socia retejo pere de {mastodon}",
+  "about.rules": "Regularo de la servilo",
   "account.account_note_header": "Noto",
   "account.add_or_remove_from_list": "Aldoni al aŭ forigi el listoj",
   "account.badges.bot": "Roboto",
@@ -40,20 +40,20 @@
   "account.go_to_profile": "Iri al profilo",
   "account.hide_reblogs": "Kaŝi diskonigojn de @{name}",
   "account.joined_short": "Aliĝis",
-  "account.languages": "Agordi lingvofiltron",
+  "account.languages": "Ŝanĝi la abonitajn lingvojn",
   "account.link_verified_on": "Propreco de tiu ligilo estis konfirmita je {date}",
   "account.locked_info": "Tiu konto estas privatigita. La posedanto mane akceptas tiun, kiu povas sekvi rin.",
   "account.media": "Aŭdovidaĵoj",
   "account.mention": "Mencii @{name}",
   "account.moved_to": "{name} indikis, ke ria nova konto estas nun:",
   "account.mute": "Silentigi @{name}",
-  "account.mute_notifications": "Silentigi sciigojn de @{name}",
+  "account.mute_notifications": "Silentigi la sciigojn de @{name}",
   "account.muted": "Silentigita",
-  "account.open_original_page": "Malfermi originan paĝon",
+  "account.open_original_page": "Malfermi la originalan paĝon",
   "account.posts": "Afiŝoj",
   "account.posts_with_replies": "Mesaĝoj kaj respondoj",
   "account.report": "Raporti @{name}",
-  "account.requested": "Atendo de aprobo. Alklaku por nuligi peton de sekvado",
+  "account.requested": "Atendo de aprobo. Klaku por nuligi la peton por sekvado",
   "account.share": "Diskonigi la profilon de @{name}",
   "account.show_reblogs": "Montri diskonigojn de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Afiŝo} other {{counter} Afiŝoj}}",
@@ -85,7 +85,7 @@
   "bundle_column_error.error.title": "Ho, ve!",
   "bundle_column_error.network.body": "Okazis eraro dum ŝarĝado de ĉi tiu paĝo. Tion povas kaŭzi portempa problemo pri via retkonektado aŭ pri ĉi tiu servilo.",
   "bundle_column_error.network.title": "Eraro de reto",
-  "bundle_column_error.retry": "Bonvolu reprovi",
+  "bundle_column_error.retry": "Provu refoje",
   "bundle_column_error.return": "Reiri hejmen",
   "bundle_column_error.routing.body": "La celita paĝo ne troveblas. Ĉu vi certas, ke la retadreso (URL) en via retfoliumilo estas ĝusta?",
   "bundle_column_error.routing.title": "404",
@@ -116,9 +116,9 @@
   "column_header.hide_settings": "Kaŝi la agordojn",
   "column_header.moveLeft_settings": "Movi kolumnon maldekstren",
   "column_header.moveRight_settings": "Movi kolumnon dekstren",
-  "column_header.pin": "Alpingli",
+  "column_header.pin": "Fiksi",
   "column_header.show_settings": "Montri la agordojn",
-  "column_header.unpin": "Depingli",
+  "column_header.unpin": "Malfiksi",
   "column_subheading.settings": "Agordoj",
   "community.column_settings.local_only": "Nur loka",
   "community.column_settings.media_only": "Nur aŭdovidaĵoj",
@@ -140,7 +140,7 @@
   "compose_form.publish": "Hup",
   "compose_form.publish_form": "Hup",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Konservi la ŝanĝojn",
+  "compose_form.save_changes": "Konservi ŝanĝojn",
   "compose_form.sensitive.hide": "{count, plural, one {Marki la aŭdovidaĵon kiel tikla} other {Marki la aŭdovidaĵojn kiel tikla}}",
   "compose_form.sensitive.marked": "{count, plural, one {La aŭdovidaĵo estas markita kiel tikla} other {La aŭdovidaĵoj estas markitaj kiel tikla}}",
   "compose_form.sensitive.unmarked": "{count, plural, one {La aŭdovidaĵo ne estas markita kiel tikla} other {La aŭdovidaĵoj ne estas markitaj kiel tikla}}",
@@ -158,7 +158,7 @@
   "confirmations.delete_list.confirm": "Forigi",
   "confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?",
   "confirmations.discard_edit_media.confirm": "Forĵeti",
-  "confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ de la antaŭmontro de la aŭdovidaĵo, ĉu vi forlasu ilin ĉiuokaze?",
+  "confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭmontro de la aŭdovidaĵo, ĉu forĵetu ilin malgraŭe?",
   "confirmations.domain_block.confirm": "Bloki la tutan domajnon",
   "confirmations.domain_block.message": "Ĉu vi vere, vere certas, ke vi volas tute bloki {domain}? Plej ofte, trafa blokado kaj silentigado sufiĉas kaj preferindas. Vi ne vidos enhavon de tiu domajno en publika templinio aŭ en viaj sciigoj. Viaj sekvantoj de tiu domajno estos forigitaj.",
   "confirmations.logout.confirm": "Adiaŭi",
@@ -283,9 +283,9 @@
   "home.column_settings.show_replies": "Montri respondojn",
   "home.hide_announcements": "Kaŝi la anoncojn",
   "home.show_announcements": "Montri anoncojn",
-  "interaction_modal.description.favourite": "Kun konto ĉe Mastodon, vi povos stelumi ĉi tiun mesaĝon por konservi ĝin kaj por sciigi al la afiŝinto, ke vi estimas ĝin.",
+  "interaction_modal.description.favourite": "Kun konto de Mastodon, vi povos stelumi ĉi tiun mesaĝon por konservi ĝin kaj por sciigi al la afiŝinto, ke vi estimas ĝin.",
   "interaction_modal.description.follow": "Kun konto ĉe Mastodon, vi povos sekvi {name} por vidi ties mesaĝojn en via hejmo.",
-  "interaction_modal.description.reblog": "Kun konto ĉe Mastodon, vi povos diskonigi ĉi tiun mesaĝon por ke viaj propraj sekvantoj vidu ĝin.",
+  "interaction_modal.description.reblog": "Kun konto de Mastodon, vi povas diskonigi ĉi tiun mesaĝon, por ke viaj propraj sekvantoj vidu ĝin.",
   "interaction_modal.description.reply": "Kun konto ĉe Mastodon, vi povos respondi al ĉi tiu mesaĝo.",
   "interaction_modal.on_another_server": "En alia servilo",
   "interaction_modal.on_this_server": "En ĉi tiu servilo",
@@ -293,7 +293,7 @@
   "interaction_modal.preamble": "Ĉar Mastodon estas malcentraliza, vi povas uzi jam ekzistantan konton, gastigatan de alia servilo Mastodon aŭ konforma platformo, se vi ne havas konton ĉe tiu ĉi.",
   "interaction_modal.title.favourite": "Stelumi la afiŝon de {name}",
   "interaction_modal.title.follow": "Sekvi {name}",
-  "interaction_modal.title.reblog": "Suprenigi la afiŝon de {name}",
+  "interaction_modal.title.reblog": "Akceli la afiŝon de {name}",
   "interaction_modal.title.reply": "Respondi al la afiŝo de {name}",
   "intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}",
   "intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}",
@@ -323,7 +323,7 @@
   "keyboard_shortcuts.pinned": "malfermi la liston de alpinglitaj mesaĝoj",
   "keyboard_shortcuts.profile": "malfermi la profilon de la aŭtoro",
   "keyboard_shortcuts.reply": "respondi",
-  "keyboard_shortcuts.requests": "malfermi la liston de petoj de sekvado",
+  "keyboard_shortcuts.requests": "Malfermi la liston de petoj por sekvado",
   "keyboard_shortcuts.search": "enfokusigi la serĉilon",
   "keyboard_shortcuts.spoilers": "Montri/kaŝi la kampon de averto de enhavo (\"CW\")",
   "keyboard_shortcuts.start": "malfermi la kolumnon «por komenci»",
@@ -384,7 +384,7 @@
   "navigation_bar.public_timeline": "Fratara templinio",
   "navigation_bar.search": "Serĉi",
   "navigation_bar.security": "Sekureco",
-  "not_signed_in_indicator.not_signed_in": "Necesas ensaluti, por atingi tion risurcon.",
+  "not_signed_in_indicator.not_signed_in": "Necesas saluti por aliri tiun rimedon.",
   "notification.admin.report": "{name} raportis {target}",
   "notification.admin.sign_up": "{name} kreis konton",
   "notification.favourite": "{name} stelumis vian mesaĝon",
@@ -430,7 +430,7 @@
   "notifications.permission_denied": "Labortablaj sciigoj ne disponeblas pro peto antaŭe rifuzita de retumiloj",
   "notifications.permission_denied_alert": "Labortablaj sciigoj ne povas esti ebligitaj, ĉar retumilpermeso antaŭe estis rifuzita",
   "notifications.permission_required": "Labortablaj sciigoj ne disponeblas ĉar la bezonata permeso ne estis donita.",
-  "notifications_permission_banner.enable": "Ebligi retumilajn sciigojn",
+  "notifications_permission_banner.enable": "Ŝalti retumilajn sciigojn",
   "notifications_permission_banner.how_to_control": "Por ricevi sciigojn kiam Mastodon ne estas malfermita, ebligu labortablajn sciigojn. Vi povas regi precize kiuj specoj de interagoj generas labortablajn sciigojn per la supra butono {icon} post kiam ili estas ebligitaj.",
   "notifications_permission_banner.title": "Neniam preterlasas iun ajn",
   "picture_in_picture.restore": "Remetu ĝin",
@@ -450,7 +450,7 @@
   "privacy.private.short": "Nur abonantoj",
   "privacy.public.long": "Videbla por ĉiuj",
   "privacy.public.short": "Publika",
-  "privacy.unlisted.long": "Videbla por ĉiuj, sed ekskluzive de la funkcio de esploro",
+  "privacy.unlisted.long": "Videbla por ĉiuj, sed ekskluzive el la funkcio de esploro",
   "privacy.unlisted.short": "Nelistigita",
   "privacy_policy.last_updated": "Laste ĝisdatigita sur {date}",
   "privacy_policy.title": "Politiko de privateco",
@@ -492,7 +492,7 @@
   "report.reasons.other_description": "La problemo ne taŭgas en aliaj kategorioj",
   "report.reasons.spam": "Ĝi estas trudaĵo",
   "report.reasons.spam_description": "Trompaj ligiloj, falsa/artefarita aktiveco, aŭ ripetaj respondoj",
-  "report.reasons.violation": "Ĝi malobservas la regulojn de la servilo",
+  "report.reasons.violation": "Ĝi malobservas la regularon de la servilo",
   "report.reasons.violation_description": "Vi scias ke ĝi malobeas specifan regulon",
   "report.rules.subtitle": "Elektu ĉiujn, kiuj validas",
   "report.rules.title": "Kiuj reguloj estas malobservataj?",
@@ -527,16 +527,16 @@
   "search_results.statuses_fts_disabled": "Serĉi mesaĝojn laŭ enhavo ne estas ebligita en ĉi tiu Mastodon-servilo.",
   "search_results.title": "Serĉ-rezultoj por {q}",
   "search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
-  "server_banner.about_active_users": "Homoj uzantaj ĉi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)",
+  "server_banner.about_active_users": "Personoj uzantaj ĉi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)",
   "server_banner.active_users": "aktivaj uzantoj",
   "server_banner.administered_by": "Administrata de:",
   "server_banner.introduction": "{domain} apartenas al la malcentra socia retejo povigita de {mastodon}.",
   "server_banner.learn_more": "Lernu pli",
   "server_banner.server_stats": "Statistikoj de la servilo:",
   "sign_in_banner.create_account": "Krei konton",
-  "sign_in_banner.sign_in": "Ensalutu",
+  "sign_in_banner.sign_in": "Saluti",
   "sign_in_banner.text": "Ensalutu por sekvi profilojn aŭ kradvortojn, stelumi, kunhavigi kaj respondi afiŝojn aŭ interagi per via konto de alia servilo.",
-  "status.admin_account": "Malfermi la kontrolan interfacon por @{name}",
+  "status.admin_account": "Malfermi fasadon de moderigado por @{name}",
   "status.admin_status": "Malfermi ĉi tiun mesaĝon en la kontrola interfaco",
   "status.block": "Bloki @{name}",
   "status.bookmark": "Aldoni al la legosignoj",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index 9866ec684..4540ab5d0 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -222,7 +222,7 @@
   "empty_column.follow_requests": "Todavía no tenés ninguna solicitud de seguimiento. Cuando recibás una, se mostrará acá.",
   "empty_column.hashtag": "Todavía no hay nada con esta etiqueta.",
   "empty_column.home": "¡Tu línea temporal principal está vacía! Seguí a más cuentas para llenarla. {suggestions}",
-  "empty_column.home.suggestions": "Mirá algunas sugerencias",
+  "empty_column.home.suggestions": "Mirá algunas sugerencias.",
   "empty_column.list": "Todavía no hay nada en esta lista. Cuando miembros de esta lista envíen nuevos mensaje, se mostrarán acá.",
   "empty_column.lists": "Todavía no tenés ninguna lista. Cuando creés una, se mostrará acá.",
   "empty_column.mutes": "Todavía no silenciaste a ningún usuario.",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index 5982f41cd..c5ec5d098 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -1,7 +1,7 @@
 {
   "about.blocks": "Servidores moderados",
   "about.contact": "Contacto:",
-  "about.disclaimer": "Mastodon es gratuito, software de código abierto y una marca registrada de Mastodon gGmbH.",
+  "about.disclaimer": "Mastodon es software libre de código abierto, y una marca comercial de Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Razón no disponible",
   "about.domain_blocks.preamble": "Mastodon generalmente te permite ver contenido e interactuar con usuarios de cualquier otro servidor del fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
   "about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explicitamente o vayas a el siguiendo alguna cuenta.",
@@ -20,7 +20,7 @@
   "account.blocked": "Bloqueado",
   "account.browse_more_on_origin_server": "Ver más en el perfil original",
   "account.cancel_follow_request": "Retirar solicitud de seguimiento",
-  "account.direct": "Mensaje directo a @{name}",
+  "account.direct": "Mensaje a @{name}",
   "account.disable_notifications": "Dejar de notificarme cuando @{name} publique algo",
   "account.domain_blocked": "Dominio oculto",
   "account.edit_profile": "Editar perfil",
@@ -44,7 +44,7 @@
   "account.link_verified_on": "El proprietario de este link fue comprobado el {date}",
   "account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.",
   "account.media": "Multimedia",
-  "account.mention": "Mencionar @{name}",
+  "account.mention": "Mencionar a @{name}",
   "account.moved_to": "{name} ha indicado que su nueva cuenta es ahora:",
   "account.mute": "Silenciar a @{name}",
   "account.mute_notifications": "Silenciar notificaciones de @{name}",
@@ -52,7 +52,7 @@
   "account.open_original_page": "Abrir página original",
   "account.posts": "Publicaciones",
   "account.posts_with_replies": "Publicaciones y respuestas",
-  "account.report": "Reportar a @{name}",
+  "account.report": "Denunciar a @{name}",
   "account.requested": "Esperando aprobación. Haga clic para cancelar la solicitud de seguimiento",
   "account.share": "Compartir el perfil de @{name}",
   "account.show_reblogs": "Mostrar retoots de @{name}",
@@ -101,7 +101,7 @@
   "column.blocks": "Usuarios bloqueados",
   "column.bookmarks": "Marcadores",
   "column.community": "Línea de tiempo local",
-  "column.direct": "Mensajes directos",
+  "column.direct": "Mensajes",
   "column.directory": "Buscar perfiles",
   "column.domain_blocks": "Dominios ocultados",
   "column.favourites": "Favoritos",
@@ -118,7 +118,7 @@
   "column_header.moveRight_settings": "Mover columna a la derecha",
   "column_header.pin": "Fijar",
   "column_header.show_settings": "Mostrar ajustes",
-  "column_header.unpin": "Dejar de fijar",
+  "column_header.unpin": "Desfijar",
   "column_subheading.settings": "Ajustes",
   "community.column_settings.local_only": "Solo local",
   "community.column_settings.media_only": "Solo media",
@@ -148,9 +148,9 @@
   "compose_form.spoiler.unmarked": "Texto no oculto",
   "compose_form.spoiler_placeholder": "Advertencia de contenido",
   "confirmation_modal.cancel": "Cancelar",
-  "confirmations.block.block_and_report": "Bloquear y Reportar",
+  "confirmations.block.block_and_report": "Bloquear y Denunciar",
   "confirmations.block.confirm": "Bloquear",
-  "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?",
+  "confirmations.block.message": "¿Estás seguro de querer bloquear a {name}?",
   "confirmations.cancel_follow_request.confirm": "Retirar solicitud",
   "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?",
   "confirmations.delete.confirm": "Eliminar",
@@ -184,7 +184,7 @@
   "directory.recently_active": "Recientemente activo",
   "disabled_account_banner.account_settings": "Ajustes de la cuenta",
   "disabled_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada.",
-  "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.",
+  "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de las personas cuyas cuentas están alojadas en {domain}.",
   "dismissable_banner.dismiss": "Descartar",
   "dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.",
   "dismissable_banner.explore_statuses": "Estas publicaciones de este y otros servidores en la red descentralizada están ganando popularidad en este servidor en este momento.",
@@ -193,13 +193,13 @@
   "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.",
   "embed.preview": "Así es como se verá:",
   "emoji_button.activity": "Actividad",
-  "emoji_button.clear": "Limpiar",
+  "emoji_button.clear": "Borrar",
   "emoji_button.custom": "Personalizado",
   "emoji_button.flags": "Marcas",
   "emoji_button.food": "Comida y bebida",
   "emoji_button.label": "Insertar emoji",
   "emoji_button.nature": "Naturaleza",
-  "emoji_button.not_found": "No hay emojis!! ¯\\_(ツ)_/¯",
+  "emoji_button.not_found": "Sin emojis coincidentes",
   "emoji_button.objects": "Objetos",
   "emoji_button.people": "Gente",
   "emoji_button.recent": "Usados frecuentemente",
@@ -213,7 +213,7 @@
   "empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
   "empty_column.bookmarked_statuses": "Aún no tienes ningún toot guardado como marcador. Cuando guardes uno, se mostrará aquí.",
   "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
-  "empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
+  "empty_column.direct": "Aún no tienes ningún mensaje. Cuando envíes o recibas uno, se mostrará aquí.",
   "empty_column.domain_blocks": "Todavía no hay dominios ocultos.",
   "empty_column.explore_statuses": "Nada es tendencia en este momento. ¡Revisa más tarde!",
   "empty_column.favourited_statuses": "Aún no tienes toots preferidos. Cuando marques uno como favorito, aparecerá aquí.",
@@ -233,12 +233,12 @@
   "error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, es posible que puedas usar Mastodon a través de otro navegador o aplicación nativa.",
   "error.unexpected_crash.next_steps_addons": "Intenta deshabilitarlos y recarga la página. Si eso no ayuda, podrías usar Mastodon a través de un navegador web diferente o aplicación nativa.",
   "errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles",
-  "errors.unexpected_crash.report_issue": "Informar de un problema/error",
+  "errors.unexpected_crash.report_issue": "Informar problema",
   "explore.search_results": "Resultados de búsqueda",
   "explore.title": "Descubrir",
-  "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que ha accedido a esta publlicación. Si quieres que la publicación sea filtrada también en este contexto, tendrás que editar el filtro.",
+  "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que has accedido a esta publlicación. Si quieres que la publicación sea filtrada también en este contexto, tendrás que editar el filtro.",
   "filter_modal.added.context_mismatch_title": "¡El contexto no coincide!",
-  "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, necesitará cambiar la fecha de caducidad para que se aplique.",
+  "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, necesitaras cambiar la fecha de caducidad para que se aplique.",
   "filter_modal.added.expired_title": "¡Filtro expirado!",
   "filter_modal.added.review_and_configure": "Para revisar y configurar esta categoría de filtros, vaya a {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Ajustes de filtro",
@@ -261,7 +261,7 @@
   "footer.about": "Acerca de",
   "footer.directory": "Directorio de perfiles",
   "footer.get_app": "Obtener la aplicación",
-  "footer.invite": "Invitar gente",
+  "footer.invite": "Invitar personas",
   "footer.keyboard_shortcuts": "Atajos de teclado",
   "footer.privacy_policy": "Política de privacidad",
   "footer.source_code": "Ver código fuente",
@@ -271,7 +271,7 @@
   "hashtag.column_header.tag_mode.any": "o {additional}",
   "hashtag.column_header.tag_mode.none": "sin {additional}",
   "hashtag.column_settings.select.no_options_message": "No se encontraron sugerencias",
-  "hashtag.column_settings.select.placeholder": "Introduzca hashtags…",
+  "hashtag.column_settings.select.placeholder": "Introducir etiquetas…",
   "hashtag.column_settings.tag_mode.all": "Todos estos",
   "hashtag.column_settings.tag_mode.any": "Cualquiera de estos",
   "hashtag.column_settings.tag_mode.none": "Ninguno de estos",
@@ -304,7 +304,7 @@
   "keyboard_shortcuts.column": "enfocar un estado en una de las columnas",
   "keyboard_shortcuts.compose": "enfocar el área de texto de redacción",
   "keyboard_shortcuts.description": "Descripción",
-  "keyboard_shortcuts.direct": "para abrir la columna de mensajes directos",
+  "keyboard_shortcuts.direct": "abrir la columna de mensajes",
   "keyboard_shortcuts.down": "mover hacia abajo en la lista",
   "keyboard_shortcuts.enter": "abrir estado",
   "keyboard_shortcuts.favourite": "añadir a favoritos",
@@ -366,7 +366,7 @@
   "navigation_bar.bookmarks": "Marcadores",
   "navigation_bar.community_timeline": "Historia local",
   "navigation_bar.compose": "Escribir un nuevo toot",
-  "navigation_bar.direct": "Mensajes directos",
+  "navigation_bar.direct": "Mensajes",
   "navigation_bar.discover": "Descubrir",
   "navigation_bar.domain_blocks": "Dominios ocultos",
   "navigation_bar.edit_profile": "Editar perfil",
@@ -385,7 +385,7 @@
   "navigation_bar.search": "Buscar",
   "navigation_bar.security": "Seguridad",
   "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.",
-  "notification.admin.report": "{name} informó {target}",
+  "notification.admin.report": "{name} denunció a {target}",
   "notification.admin.sign_up": "{name} se unio",
   "notification.favourite": "{name} marcó tu estado como favorito",
   "notification.follow": "{name} te empezó a seguir",
@@ -397,8 +397,8 @@
   "notification.status": "{name} acaba de publicar",
   "notification.update": "{name} editó una publicación",
   "notifications.clear": "Limpiar notificaciones",
-  "notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
-  "notifications.column_settings.admin.report": "Nuevos informes:",
+  "notifications.clear_confirmation": "¿Seguro de querer borrar permanentemente todas tus notificaciones?",
+  "notifications.column_settings.admin.report": "Nuevas denuncias:",
   "notifications.column_settings.admin.sign_up": "Registros nuevos:",
   "notifications.column_settings.alert": "Notificaciones de escritorio",
   "notifications.column_settings.favourite": "Favoritos:",
@@ -413,7 +413,7 @@
   "notifications.column_settings.reblog": "Retoots:",
   "notifications.column_settings.show": "Mostrar en columna",
   "notifications.column_settings.sound": "Reproducir sonido",
-  "notifications.column_settings.status": "Nuevos toots:",
+  "notifications.column_settings.status": "Nuevas publicaciones:",
   "notifications.column_settings.unread_notifications.category": "Notificaciones sin leer",
   "notifications.column_settings.unread_notifications.highlight": "Destacar notificaciones no leídas",
   "notifications.column_settings.update": "Ediciones:",
@@ -445,14 +445,14 @@
   "poll_button.remove_poll": "Eliminar encuesta",
   "privacy.change": "Ajustar privacidad",
   "privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
-  "privacy.direct.short": "Sólo cuentas mencionadas",
+  "privacy.direct.short": "Solo personas mencionadas",
   "privacy.private.long": "Sólo mostrar a seguidores",
   "privacy.private.short": "Solo seguidores",
   "privacy.public.long": "Visible para todos",
   "privacy.public.short": "Público",
   "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
   "privacy.unlisted.short": "No listado",
-  "privacy_policy.last_updated": "Ultima vez actualizado {date}",
+  "privacy_policy.last_updated": "Actualizado por última vez {date}",
   "privacy_policy.title": "Política de Privacidad",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "Cargando…",
@@ -487,55 +487,55 @@
   "report.next": "Siguiente",
   "report.placeholder": "Comentarios adicionales",
   "report.reasons.dislike": "No me gusta",
-  "report.reasons.dislike_description": "No es algo que desee ver",
+  "report.reasons.dislike_description": "No es algo que quieres ver",
   "report.reasons.other": "Es algo más",
   "report.reasons.other_description": "El problema no encaja en otras categorías",
   "report.reasons.spam": "Es spam",
-  "report.reasons.spam_description": "Enlaces maliciosos, Interacciones falsas, o respuestas repetitivas",
-  "report.reasons.violation": "Viola las reglas del servidor",
-  "report.reasons.violation_description": "Es consciente de que infringe normas específicas",
-  "report.rules.subtitle": "Selecciona todos los que apliquen",
-  "report.rules.title": "¿Qué reglas se están violando?",
-  "report.statuses.subtitle": "Seleccione todos lo que aplican",
-  "report.statuses.title": "¿Hay alguna publicación que respalde este informe?",
-  "report.submit": "Publicar",
-  "report.target": "Reportando",
-  "report.thanks.take_action": "Aqui hay algunas opciones para controlar lo que ves en Mastodon:",
+  "report.reasons.spam_description": "Enlaces maliciosos, interacciones falsas, o respuestas repetitivas",
+  "report.reasons.violation": "Infringe las reglas del servidor",
+  "report.reasons.violation_description": "Eres consciente de que infringe normas específicas",
+  "report.rules.subtitle": "Selecciona todas las que apliquen",
+  "report.rules.title": "¿Cuáles reglas se están infringiendo?",
+  "report.statuses.subtitle": "Seleccione todas las que apliquen",
+  "report.statuses.title": "¿Hay alguna publicación que respalde esta denuncia?",
+  "report.submit": "Enviar",
+  "report.target": "Denunciando a {target}",
+  "report.thanks.take_action": "Aquí están tus opciones para controlar lo que ves en Mastodon:",
   "report.thanks.take_action_actionable": "Mientras revisamos esto, puedes tomar medidas contra @{name}:",
   "report.thanks.title": "¿No quieres ver esto?",
-  "report.thanks.title_actionable": "Gracias por informar, estudiaremos esto.",
+  "report.thanks.title_actionable": "Gracias por denunciar, revisaremos esto.",
   "report.unfollow": "Dejar de seguir @{name}",
-  "report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu sección de noticias, deja de seguirlo.",
+  "report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu inicio, deja de seguirla.",
   "report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)",
-  "report_notification.categories.other": "Otros",
+  "report_notification.categories.other": "Otro",
   "report_notification.categories.spam": "Spam",
   "report_notification.categories.violation": "Infracción de regla",
-  "report_notification.open": "Abrir informe",
+  "report_notification.open": "Abrir denuncia",
   "search.placeholder": "Buscar",
   "search.search_or_paste": "Buscar o pegar URL",
   "search_popout.search_format": "Formato de búsqueda avanzada",
   "search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.",
   "search_popout.tips.hashtag": "etiqueta",
-  "search_popout.tips.status": "status",
-  "search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, usuario y hashtag",
+  "search_popout.tips.status": "publicación",
+  "search_popout.tips.text": "El texto simple devuelve nombres, usuarios y etiquetas coincidentes",
   "search_popout.tips.user": "usuario",
   "search_results.accounts": "Gente",
   "search_results.all": "Todos",
   "search_results.hashtags": "Etiquetas",
-  "search_results.nothing_found": "No se pudo encontrar nada para estos términos de busqueda",
-  "search_results.statuses": "Toots",
-  "search_results.statuses_fts_disabled": "Buscar toots por su contenido no está disponible en este servidor de Mastodon.",
+  "search_results.nothing_found": "No se pudo encontrar nada para estos términos de búsqueda",
+  "search_results.statuses": "Publicaciones",
+  "search_results.statuses_fts_disabled": "La búsqueda de publicaciones por su contenido no está disponible en este servidor de Mastodon.",
   "search_results.title": "Buscar {q}",
   "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
-  "server_banner.about_active_users": "Usuarios activos en el servidor durante los últimos 30 días (Usuarios Activos Mensuales)",
+  "server_banner.about_active_users": "Personas utilizando este servidor durante los últimos 30 días (Usuarios Activos Mensuales)",
   "server_banner.active_users": "usuarios activos",
   "server_banner.administered_by": "Administrado por:",
-  "server_banner.introduction": "{domain} es parte de la red social descentralizada liderada por {mastodon}.",
+  "server_banner.introduction": "{domain} es parte de la red social descentralizada gestionada por {mastodon}.",
   "server_banner.learn_more": "Saber más",
   "server_banner.server_stats": "Estadísticas del servidor:",
   "sign_in_banner.create_account": "Crear cuenta",
   "sign_in_banner.sign_in": "Iniciar sesión",
-  "sign_in_banner.text": "Inicia sesión en este servidor para seguir perfiles o etiquetas, guardar, compartir y responder a mensajes. También puedes interactuar desde otra cuenta en un servidor diferente.",
+  "sign_in_banner.text": "Inicia sesión para seguir perfiles o etiquetas, marcar favorito, compartir y responder a publicaciones, o interactua desde tu cuenta en un servidor diferente.",
   "status.admin_account": "Abrir interfaz de moderación para @{name}",
   "status.admin_status": "Abrir este estado en la interfaz de moderación",
   "status.block": "Bloquear a @{name}",
@@ -545,7 +545,7 @@
   "status.copy": "Copiar enlace al estado",
   "status.delete": "Borrar",
   "status.detailed_status": "Vista de conversación detallada",
-  "status.direct": "Mensaje directo a @{name}",
+  "status.direct": "Enviar mensaje a @{name}",
   "status.edit": "Editar",
   "status.edited": "Editado {date}",
   "status.edited_x_times": "Editado {count, plural, one {{count} time} other {{count} veces}}",
@@ -553,7 +553,7 @@
   "status.favourite": "Favorito",
   "status.filter": "Filtrar esta publicación",
   "status.filtered": "Filtrado",
-  "status.hide": "Ocultar publicación",
+  "status.hide": "Ocultar toot",
   "status.history.created": "{name} creó {date}",
   "status.history.edited": "{name} editado {date}",
   "status.load_more": "Cargar más",
@@ -585,11 +585,11 @@
   "status.show_more_all": "Mostrar más para todo",
   "status.show_original": "Mostrar original",
   "status.translate": "Traducir",
-  "status.translated_from_with": "Traducido de {lang} usando {provider}",
+  "status.translated_from_with": "Traducido del {lang} usando {provider}",
   "status.uncached_media_warning": "No disponible",
   "status.unmute_conversation": "Dejar de silenciar conversación",
   "status.unpin": "Dejar de fijar",
-  "subscribed_languages.lead": "Sólo los mensajes en los idiomas seleccionados aparecerán en su inicio y otras líneas de tiempo después del cambio. Seleccione ninguno para recibir mensajes en todos los idiomas.",
+  "subscribed_languages.lead": "Solo las publicaciones en los idiomas seleccionados aparecerán en tu inicio y enlistará las líneas de tiempo después del cambio. Selecciona ninguno para recibir publicaciones en todos los idiomas.",
   "subscribed_languages.save": "Guardar cambios",
   "subscribed_languages.target": "Cambiar idiomas suscritos para {target}",
   "suggestions.dismiss": "Descartar sugerencia",
@@ -619,7 +619,7 @@
   "upload_error.poll": "Subida de archivos no permitida con encuestas.",
   "upload_form.audio_description": "Describir para personas con problemas auditivos",
   "upload_form.description": "Describir para los usuarios con dificultad visual",
-  "upload_form.description_missing": "Ninguna descripción añadida",
+  "upload_form.description_missing": "Sin descripción añadida",
   "upload_form.edit": "Editar",
   "upload_form.thumbnail": "Cambiar miniatura",
   "upload_form.undo": "Borrar",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 3a73e1a0d..53dd4c387 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -38,7 +38,7 @@
   "account.follows.empty": "Este usuario todavía no sigue a nadie.",
   "account.follows_you": "Te sigue",
   "account.go_to_profile": "Ir al perfil",
-  "account.hide_reblogs": "Ocultar retuts de @{name}",
+  "account.hide_reblogs": "Ocultar impulsos de @{name}",
   "account.joined_short": "Se unió",
   "account.languages": "Cambiar idiomas suscritos",
   "account.link_verified_on": "La propiedad de este enlace fue verificada el {date}",
@@ -55,7 +55,7 @@
   "account.report": "Reportar a @{name}",
   "account.requested": "Esperando aprobación. Clica para cancelar la solicitud de seguimiento",
   "account.share": "Compartir el perfil de @{name}",
-  "account.show_reblogs": "Mostrar retuts de @{name}",
+  "account.show_reblogs": "Mostrar impulsos de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicaciones}}",
   "account.unblock": "Desbloquear a @{name}",
   "account.unblock_domain": "Mostrar {domain}",
@@ -64,7 +64,7 @@
   "account.unfollow": "Dejar de seguir",
   "account.unmute": "Dejar de silenciar a @{name}",
   "account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
-  "account.unmute_short": "Dejar de silenciar",
+  "account.unmute_short": "Desilenciar",
   "account_note.placeholder": "Clic para añadir nota",
   "admin.dashboard.daily_retention": "Tasa de retención de usuarios por día después del registro",
   "admin.dashboard.monthly_retention": "Tasa de retención de usuarios por mes después del registro",
@@ -100,7 +100,7 @@
   "column.about": "Acerca de",
   "column.blocks": "Usuarios bloqueados",
   "column.bookmarks": "Marcadores",
-  "column.community": "Línea local",
+  "column.community": "Cronología local",
   "column.direct": "Mensajes directos",
   "column.directory": "Buscar perfiles",
   "column.domain_blocks": "Dominios bloqueados",
@@ -111,7 +111,7 @@
   "column.mutes": "Usuarios silenciados",
   "column.notifications": "Notificaciones",
   "column.pins": "Publicaciones fijadas",
-  "column.public": "Línea federada",
+  "column.public": "Cronología federada",
   "column_back_button.label": "Atrás",
   "column_header.hide_settings": "Ocultar configuración",
   "column_header.moveLeft_settings": "Mover columna a la izquierda",
@@ -145,8 +145,8 @@
   "compose_form.sensitive.marked": "{count, plural, one {Material marcado como sensible} other {Material marcado como sensible}}",
   "compose_form.sensitive.unmarked": "{count, plural, one {Material no marcado como sensible} other {Material no marcado como sensible}}",
   "compose_form.spoiler.marked": "Texto oculto tras la advertencia",
-  "compose_form.spoiler.unmarked": "Texto no oculto",
-  "compose_form.spoiler_placeholder": "Advertencia de contenido",
+  "compose_form.spoiler.unmarked": "Añadir advertencia de contenido",
+  "compose_form.spoiler_placeholder": "Escribe aquí tu advertencia",
   "confirmation_modal.cancel": "Cancelar",
   "confirmations.block.block_and_report": "Bloquear y Reportar",
   "confirmations.block.confirm": "Bloquear",
@@ -275,11 +275,11 @@
   "hashtag.column_settings.tag_mode.all": "Cualquiera de estos",
   "hashtag.column_settings.tag_mode.any": "Cualquiera de estos",
   "hashtag.column_settings.tag_mode.none": "Ninguno de estos",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionales en esta columna",
   "hashtag.follow": "Seguir etiqueta",
   "hashtag.unfollow": "Dejar de seguir etiqueta",
   "home.column_settings.basic": "Básico",
-  "home.column_settings.show_reblogs": "Mostrar retoots",
+  "home.column_settings.show_reblogs": "Mostrar impulsos",
   "home.column_settings.show_replies": "Mostrar respuestas",
   "home.hide_announcements": "Ocultar anuncios",
   "home.show_announcements": "Mostrar anuncios",
@@ -309,13 +309,13 @@
   "keyboard_shortcuts.enter": "abrir estado",
   "keyboard_shortcuts.favourite": "añadir a favoritos",
   "keyboard_shortcuts.favourites": "abrir la lista de favoritos",
-  "keyboard_shortcuts.federated": "Abrir la línea de tiempo federada",
+  "keyboard_shortcuts.federated": "Abrir la cronología federada",
   "keyboard_shortcuts.heading": "Keyboard Shortcuts",
-  "keyboard_shortcuts.home": "Abrir línea de tiempo",
-  "keyboard_shortcuts.hotkey": "Tecla caliente",
-  "keyboard_shortcuts.legend": "para mostrar esta leyenda",
-  "keyboard_shortcuts.local": "Abrir línea de tiempo local",
-  "keyboard_shortcuts.mention": "para mencionar al autor",
+  "keyboard_shortcuts.home": "Abrir cronología principal",
+  "keyboard_shortcuts.hotkey": "Tecla rápida",
+  "keyboard_shortcuts.legend": "Mostrar esta leyenda",
+  "keyboard_shortcuts.local": "Abrir cronología local",
+  "keyboard_shortcuts.mention": "mencionar al autor",
   "keyboard_shortcuts.muted": "abrir la lista de usuarios silenciados",
   "keyboard_shortcuts.my_profile": "abrir tu perfil",
   "keyboard_shortcuts.notifications": "abrir la columna de notificaciones",
@@ -364,7 +364,7 @@
   "navigation_bar.about": "Acerca de",
   "navigation_bar.blocks": "Usuarios bloqueados",
   "navigation_bar.bookmarks": "Marcadores",
-  "navigation_bar.community_timeline": "Línea de tiempo local",
+  "navigation_bar.community_timeline": "Cronología local",
   "navigation_bar.compose": "Escribir nueva publicación",
   "navigation_bar.direct": "Mensajes directos",
   "navigation_bar.discover": "Descubrir",
@@ -381,7 +381,7 @@
   "navigation_bar.personal": "Personal",
   "navigation_bar.pins": "Publicaciones fijadas",
   "navigation_bar.preferences": "Preferencias",
-  "navigation_bar.public_timeline": "Línea de tiempo federada",
+  "navigation_bar.public_timeline": "Cronología federada",
   "navigation_bar.search": "Buscar",
   "navigation_bar.security": "Seguridad",
   "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.",
@@ -393,7 +393,7 @@
   "notification.mention": "{name} te ha mencionado",
   "notification.own_poll": "Tu encuesta ha terminado",
   "notification.poll": "Una encuesta en la que has votado ha terminado",
-  "notification.reblog": "{name} ha retooteado tu publicación",
+  "notification.reblog": "{name} ha impulsado tu publicación",
   "notification.status": "{name} acaba de publicar",
   "notification.update": "{name} editó una publicación",
   "notifications.clear": "Limpiar notificaciones",
@@ -418,7 +418,7 @@
   "notifications.column_settings.unread_notifications.highlight": "Destacar notificaciones no leídas",
   "notifications.column_settings.update": "Ediciones:",
   "notifications.filter.all": "Todos",
-  "notifications.filter.boosts": "Retoots",
+  "notifications.filter.boosts": "Impulsos",
   "notifications.filter.favourites": "Favoritos",
   "notifications.filter.follows": "Seguidores",
   "notifications.filter.mentions": "Menciones",
@@ -444,7 +444,7 @@
   "poll_button.add_poll": "Añadir una encuesta",
   "poll_button.remove_poll": "Eliminar encuesta",
   "privacy.change": "Ajustar privacidad",
-  "privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
+  "privacy.direct.long": "Visible solo para usuarios mencionados",
   "privacy.direct.short": "Sólo cuentas mencionadas",
   "privacy.private.long": "Sólo mostrar a seguidores",
   "privacy.private.short": "Solo seguidores",
@@ -452,7 +452,7 @@
   "privacy.public.short": "Público",
   "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
   "privacy.unlisted.short": "No listado",
-  "privacy_policy.last_updated": "Ultima vez actualizado {date}",
+  "privacy_policy.last_updated": "Actualizado por última vez {date}",
   "privacy_policy.title": "Política de Privacidad",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "Cargando…",
@@ -540,8 +540,8 @@
   "status.admin_status": "Abrir este estado en la interfaz de moderación",
   "status.block": "Bloquear a @{name}",
   "status.bookmark": "Añadir marcador",
-  "status.cancel_reblog_private": "Deshacer retoot",
-  "status.cannot_reblog": "Esta publicación no puede retootearse",
+  "status.cancel_reblog_private": "Deshacer impulso",
+  "status.cannot_reblog": "Esta publicación no se puede impulsar",
   "status.copy": "Copiar enlace al estado",
   "status.delete": "Borrar",
   "status.detailed_status": "Vista de conversación detallada",
@@ -616,13 +616,13 @@
   "upload_area.title": "Arrastra y suelta para subir",
   "upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Límite de subida de archivos excedido.",
-  "upload_error.poll": "Subida de archivos no permitida con encuestas.",
+  "upload_error.poll": "No se permite la subida de archivos con encuestas.",
   "upload_form.audio_description": "Describir para personas con problemas auditivos",
-  "upload_form.description": "Describir para los usuarios con dificultad visual",
-  "upload_form.description_missing": "Ninguna descripción añadida",
+  "upload_form.description": "Describir para personas con discapacidad visual",
+  "upload_form.description_missing": "No se ha añadido ninguna descripción",
   "upload_form.edit": "Describir",
   "upload_form.thumbnail": "Cambiar miniatura",
-  "upload_form.undo": "Borrar",
+  "upload_form.undo": "Eliminar",
   "upload_form.video_description": "Describir para personas con problemas auditivos o visuales",
   "upload_modal.analyzing_picture": "Analizando imagen…",
   "upload_modal.apply": "Aplicar",
@@ -645,5 +645,5 @@
   "video.mute": "Silenciar sonido",
   "video.pause": "Pausar",
   "video.play": "Reproducir",
-  "video.unmute": "Dejar de silenciar sonido"
+  "video.unmute": "Desilenciar sonido"
 }
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index 81d325c48..19064ec04 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -61,7 +61,7 @@
   "account.unblock_domain": "Tee {domain} nähtavaks",
   "account.unblock_short": "Eemalda blokeering",
   "account.unendorse": "Ära kuva profiilil",
-  "account.unfollow": "Ära jälgi",
+  "account.unfollow": "Jälgid",
   "account.unmute": "Ära vaigista @{name}",
   "account.unmute_notifications": "Ära vaigista teateid kasutajalt @{name}",
   "account.unmute_short": "Lõpeta vaigistus",
@@ -125,7 +125,7 @@
   "community.column_settings.remote_only": "Ainult kaug",
   "compose.language.change": "Muuda keelt",
   "compose.language.search": "Otsi keeli...",
-  "compose_form.direct_message_warning_learn_more": "Vaata veel",
+  "compose_form.direct_message_warning_learn_more": "Vaata täpsemalt",
   "compose_form.encryption_warning": "Postitused Mastodonis ei ole otsast-otsani krüpteeritud. Ärge jagage mingeid delikaatseid andmeid Mastodoni kaudu.",
   "compose_form.hashtag_warning": "Seda postitust ei kuvata ühegi sildi all, sest see ei ole leitav avastustoimingute kaudu. Ainult avalikud postitused on sildi järgi otsitavad.",
   "compose_form.lock_disclaimer": "Teie konto ei ole {locked}. Igaüks saab teid jälgida ja näha teie ainult-jälgijatele postitusi.",
@@ -137,15 +137,15 @@
   "compose_form.poll.remove_option": "Eemalda see valik",
   "compose_form.poll.switch_to_multiple": "Muuda küsitlust lubamaks mitut valikut",
   "compose_form.poll.switch_to_single": "Muuda küsitlust lubamaks ainult ühte valikut",
-  "compose_form.publish": "Avalda",
-  "compose_form.publish_form": "Avalda",
+  "compose_form.publish": "Postita",
+  "compose_form.publish_form": "Postita",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.save_changes": "Salvesta muudatused",
   "compose_form.sensitive.hide": "Märgista meedia tundlikuks",
   "compose_form.sensitive.marked": "Meedia on sensitiivseks märgitud",
   "compose_form.sensitive.unmarked": "Meedia ei ole sensitiivseks märgitud",
   "compose_form.spoiler.marked": "Tekst on hoiatuse taha peidetud",
-  "compose_form.spoiler.unmarked": "Tekst ei ole peidetud",
+  "compose_form.spoiler.unmarked": "Märgi sisu tundlikuks",
   "compose_form.spoiler_placeholder": "Kirjutage oma hoiatus siia",
   "confirmation_modal.cancel": "Katkesta",
   "confirmations.block.block_and_report": "Blokeeri ja teata",
@@ -178,7 +178,7 @@
   "conversation.with": "Koos {names}",
   "copypaste.copied": "Kopeeritud",
   "copypaste.copy": "Kopeeri",
-  "directory.federated": "Teatud fediversumist",
+  "directory.federated": "Tuntud födiversumist",
   "directory.local": "Ainult domeenilt {domain}",
   "directory.new_arrivals": "Uustulijad",
   "directory.recently_active": "Hiljuti aktiivne",
@@ -197,7 +197,7 @@
   "emoji_button.custom": "Mugandatud",
   "emoji_button.flags": "Lipud",
   "emoji_button.food": "Toit & jook",
-  "emoji_button.label": "Sisesta emoji",
+  "emoji_button.label": "Lisa emoji",
   "emoji_button.nature": "Loodus",
   "emoji_button.not_found": "Ei ole emojosi!! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "Objektid",
@@ -234,7 +234,7 @@
   "error.unexpected_crash.next_steps_addons": "Proovige need välja lülitada ja leht uuesti laadida. Kui sellest pole abi, võib olla võimalik Mastodoni kasutada mingi teise brauseri või rakendusega.",
   "errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale",
   "errors.unexpected_crash.report_issue": "Teavita veast",
-  "explore.search_results": "Otsingutulemused",
+  "explore.search_results": "Otsitulemused",
   "explore.title": "Avasta",
   "filter_modal.added.context_mismatch_explanation": "See filtrikategooria ei rakendu selles kontekstis, kuidas te postitusele jõudsite. Kui tahate postitust ka selles kontekstis filtreerida, võite muuta filtrit.",
   "filter_modal.added.context_mismatch_title": "Konteksti mittesobivus!",
@@ -251,7 +251,7 @@
   "filter_modal.select_filter.search": "Otsi või loo",
   "filter_modal.select_filter.subtitle": "Kasuta olemasolevat kategooriat või loo uus",
   "filter_modal.select_filter.title": "Filtreeri seda postitust",
-  "filter_modal.title.status": "Filtreeri postitust",
+  "filter_modal.title.status": "Postituse filtreerimine",
   "follow_recommendations.done": "Valmis",
   "follow_recommendations.heading": "Jälgi inimesi, kelle postituse tahaksite näha! Mõned soovitused on siin.",
   "follow_recommendations.lead": "Postitused inimestelt, keda te jälgite ilmuvad ajalises järjekorras teie kodu ajajoonel. Ärge kartke eksida, alati saate inimeste jälgimist ka lõpetada!",
@@ -261,10 +261,10 @@
   "footer.about": "Teave",
   "footer.directory": "Profiilikataloog",
   "footer.get_app": "Tõmba äpp",
-  "footer.invite": "Kutsu inimesi",
+  "footer.invite": "Liituma kutsumine",
   "footer.keyboard_shortcuts": "Klaviatuuri otseteed",
-  "footer.privacy_policy": "Privaatsuspoliitika",
-  "footer.source_code": "Vaata lähtekoodi",
+  "footer.privacy_policy": "Isikuandmete kaitse",
+  "footer.source_code": "Lähtekood",
   "generic.saved": "Salvestatud",
   "getting_started.heading": "Alustamine",
   "hashtag.column_header.tag_mode.all": "ja {additional}",
@@ -374,7 +374,7 @@
   "navigation_bar.favourites": "Lemmikud",
   "navigation_bar.filters": "Vaigistatud sõnad",
   "navigation_bar.follow_requests": "Jälgimistaotlused",
-  "navigation_bar.follows_and_followers": "Jälgitud ja jälgijad",
+  "navigation_bar.follows_and_followers": "Jälgitavad ja jälgijad",
   "navigation_bar.lists": "Nimistud",
   "navigation_bar.logout": "Logi välja",
   "navigation_bar.mutes": "Vaigistatud kasutajad",
@@ -453,7 +453,7 @@
   "privacy.unlisted.long": "Kõgile nähtav, aga ei ilmu avastamise vaadetes",
   "privacy.unlisted.short": "Määramata",
   "privacy_policy.last_updated": "Viimati uuendatud {date}",
-  "privacy_policy.title": "Privaatsuspoliitika",
+  "privacy_policy.title": "Isikuandmete kaitse",
   "refresh": "Värskenda",
   "regeneration_indicator.label": "Laeb…",
   "regeneration_indicator.sublabel": "Teie kodu voog on ettevalmistamisel!",
@@ -522,8 +522,8 @@
   "search_results.accounts": "Inimesed",
   "search_results.all": "Kõik",
   "search_results.hashtags": "Sildid",
-  "search_results.nothing_found": "Ei leidnud midagi nende otsinguterminitega",
-  "search_results.statuses": "Tuudid",
+  "search_results.nothing_found": "Otsisõnadele vastavat sisu ei leitud",
+  "search_results.statuses": "Postitused",
   "search_results.statuses_fts_disabled": "Postituste otsimine nende sisu järgi ei ole sellel Mastodoni serveril sisse lülitatud.",
   "search_results.title": "{q} otsing",
   "search_results.total": "{count, number} {count, plural, one {tulemus} other {tulemust}}",
@@ -531,13 +531,13 @@
   "server_banner.active_users": "aktiivsed kasutajad",
   "server_banner.administered_by": "Administraator:",
   "server_banner.introduction": "{domain} on osa detsentraliseeritud sotsiaalvõrgustikust, mida võimaldab {mastodon}.",
-  "server_banner.learn_more": "Vaata veel",
+  "server_banner.learn_more": "Vaata täpsemalt",
   "server_banner.server_stats": "Serveri statistika:",
   "sign_in_banner.create_account": "Loo konto",
   "sign_in_banner.sign_in": "Logi sisse",
   "sign_in_banner.text": "Logi sisse, et jälgida profiile või silte, märkida lemmikuks, jagada ja vastata postitustele või kasutada suhtlemiseks kontot teises serveris.",
-  "status.admin_account": "Ava moderaatoriliides kasutajale @{name}",
-  "status.admin_status": "Ava see staatus moderaatoriliites",
+  "status.admin_account": "Ava @{name} moderaatorivaates",
+  "status.admin_status": "Ava postitus moderaatorivaates",
   "status.block": "Blokeeri @{name}",
   "status.bookmark": "Järjehoidja",
   "status.cancel_reblog_private": "Lõpeta jagamine",
@@ -546,10 +546,10 @@
   "status.delete": "Kustuta",
   "status.detailed_status": "Detailne vestluskuva",
   "status.direct": "Saada otsesõnum @{name}'ile",
-  "status.edit": "Redigeeri",
+  "status.edit": "Muuda",
   "status.edited": "{date} muudetud",
   "status.edited_x_times": "Muudetud {count, plural, one{{count} kord} other {{count} korda}}",
-  "status.embed": "Sängita",
+  "status.embed": "Manustamine",
   "status.favourite": "Lemmik",
   "status.filter": "Filtreeri seda postitust",
   "status.filtered": "Filtreeritud",
@@ -603,12 +603,12 @@
   "time_remaining.minutes": "{number, plural, one {# minut} other {# minutit}} jäänud",
   "time_remaining.moments": "Hetked jäänud",
   "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekundit}} jäänud",
-  "timeline_hint.remote_resource_not_displayed": "{resource} teisest serveritest ei kuvata.",
+  "timeline_hint.remote_resource_not_displayed": "{resource} teistest serveritest ei kuvata.",
   "timeline_hint.resources.followers": "Jälgijaid",
-  "timeline_hint.resources.follows": "Jälgib",
-  "timeline_hint.resources.statuses": "Vanemad postitused",
+  "timeline_hint.resources.follows": "Jälgimisi",
+  "timeline_hint.resources.statuses": "Eelnevaid postitusi",
   "trends.counter_by_accounts": "{count, plural, one {{counter} inimene} other {{counter} inimest}} viimase {days, plural, one {päeva} other {{days} päeva}} jooksul",
-  "trends.trending_now": "Vestluste suunad",
+  "trends.trending_now": "Hetkel populaarne",
   "ui.beforeunload": "Teie mustand läheb kaotsi, kui lahkute Mastodonist.",
   "units.short.billion": "{count} mld",
   "units.short.million": "{count} mln",
@@ -620,7 +620,7 @@
   "upload_form.audio_description": "Kirjelda kuulmispuudega inimeste jaoks",
   "upload_form.description": "Kirjelda vaegnägijatele",
   "upload_form.description_missing": "Kirjeldus puudub",
-  "upload_form.edit": "Redigeeri",
+  "upload_form.edit": "Muuda",
   "upload_form.thumbnail": "Muuda pisipilti",
   "upload_form.undo": "Kustuta",
   "upload_form.video_description": "Kirjelda kuulmis- või nägemispuudega inimeste jaoks",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 6ead03c3d..13382d67a 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -4,7 +4,7 @@
   "about.disclaimer": "ماستودون نرم‌افزار آزاد، متن باز و یک شرکت غیر انتفاعی با مسئولیت محدود طبق قوانین آلمان است.",
   "about.domain_blocks.no_reason_available": "دلیلی موجود نیست",
   "about.domain_blocks.preamble": "ماستودون عموماً می‌گذارد محتوا را از از هر کارساز دیگری در دنیای شبکه‌های اجتماعی غیرمتمرکز دیده و با آنان برهم‌کنش داشته باشید. این‌ها استثناهایی هستند که روی این کارساز خاص وضع شده‌اند.",
-  "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
+  "about.domain_blocks.silenced.explanation": "عموماً نمایه‌ها و محتوا از این کارساز را نمی‌بینید، مگر این که به طور خاص دنبالشان گشته یا با پی گیری، داوطلب دیدنشان شوید.",
   "about.domain_blocks.silenced.title": "محدود",
   "about.domain_blocks.suspended.explanation": "هیچ داده‌ای از این کارساز پردازش، ذخیره یا مبادله نخواهد شد، که هرگونه برهم‌کنش یا ارتباط با کاربران این کارساز را غیرممکن خواهد کرد.",
   "about.domain_blocks.suspended.title": "معلق",
@@ -81,9 +81,9 @@
   "autosuggest_hashtag.per_week": "{count} در هفته",
   "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
   "bundle_column_error.copy_stacktrace": "رونوشت از گزارش خطا",
-  "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
+  "bundle_column_error.error.body": "صفحهٔ درخواستی نتوانست پرداخت شود. ممکن است به خاطر اشکالی در کدمان یا مشکل سازگاری مرورگر باشد.",
   "bundle_column_error.error.title": "وای، نه!",
-  "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
+  "bundle_column_error.network.body": "هنگام تلاش برای بار کردن این صفحه خطایی رخ داد. ممکن است مشکلی موقّتی در این کارساز یا اینترنتتان باشد.",
   "bundle_column_error.network.title": "خطای شبکه",
   "bundle_column_error.retry": "تلاش دوباره",
   "bundle_column_error.return": "بازگشت به خانه",
@@ -236,14 +236,14 @@
   "errors.unexpected_crash.report_issue": "گزارش مشکل",
   "explore.search_results": "نتایج جست‌وجو",
   "explore.title": "کاوش",
-  "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
+  "filter_modal.added.context_mismatch_explanation": "این دستهٔ پالایه به بافتاری که در آن به این فرسته دسترسی دارید اعمال نمی‌شود. اگر می‌خواهید فرسته در این بافتار هم پالوده شود، باید پالایه را ویرایش کنید.",
   "filter_modal.added.context_mismatch_title": "بافتار نامطابق!",
-  "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
+  "filter_modal.added.expired_explanation": "این دستهٔ پالایه منقضی شده است. برای اعمالش باید تاریخ انقضا را عوض کنید.",
   "filter_modal.added.expired_title": "پالایهٔ منقضی!",
-  "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
+  "filter_modal.added.review_and_configure": "برای بازبینی و پیکربندی بیش‌تر این دستهٔ پالایه، به {settings_link} بروید.",
   "filter_modal.added.review_and_configure_title": "تنظیمات پالایه",
   "filter_modal.added.settings_link": "صفحهٔ تنظیمات",
-  "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
+  "filter_modal.added.short_explanation": "این فرسته به دستهٔ پالایهٔ زیر افزوده شد: {title}.",
   "filter_modal.added.title": "پالایه افزوده شد!",
   "filter_modal.select_filter.context_mismatch": "به این بافتار اعمال نمی‌شود",
   "filter_modal.select_filter.expired": "منقضی‌شده",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 883adf211..91a2bbbfd 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -2,7 +2,7 @@
   "about.blocks": "Moderoidut palvelimet",
   "about.contact": "Yhteystiedot:",
   "about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
-  "about.domain_blocks.no_reason_available": "Syy ei saatavilla",
+  "about.domain_blocks.no_reason_available": "Syytä ei ole ilmoitettu",
   "about.domain_blocks.preamble": "Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle.",
   "about.domain_blocks.silenced.explanation": "Et yleensä näe profiileja ja sisältöä tältä palvelimelta, ellet nimenomaisesti etsi tai valitse sitä seuraamalla.",
   "about.domain_blocks.silenced.title": "Rajoitettu",
@@ -22,7 +22,7 @@
   "account.cancel_follow_request": "Peruuta seurantapyyntö",
   "account.direct": "Yksityisviesti käyttäjälle @{name}",
   "account.disable_notifications": "Lopeta @{name}:n julkaisuista ilmoittaminen",
-  "account.domain_blocked": "Verkko-osoite piilotettu",
+  "account.domain_blocked": "Verkko-osoite estetty",
   "account.edit_profile": "Muokkaa profiilia",
   "account.enable_notifications": "Ilmoita @{name}:n julkaisuista",
   "account.endorse": "Suosittele profiilissasi",
@@ -37,26 +37,26 @@
   "account.following_counter": "{count, plural, one {{counter} seurattu} other {{counter} seurattua}}",
   "account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.",
   "account.follows_you": "Seuraa sinua",
-  "account.go_to_profile": "Mene profiiliin",
-  "account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}",
+  "account.go_to_profile": "Avaa profiili",
+  "account.hide_reblogs": "Piilota käyttäjän @{name} buustaukset",
   "account.joined_short": "Liittynyt",
   "account.languages": "Vaihda tilattuja kieliä",
-  "account.link_verified_on": "Tämän linkin omistaja tarkistettiin {date}",
-  "account.locked_info": "Tämän tilin yksityisyyden tila on asetettu lukituksi. Omistaja arvioi manuaalisesti, kuka voi seurata niitä.",
+  "account.link_verified_on": "Linkin omistus tarkistettiin {date}",
+  "account.locked_info": "Tilin yksityisyystilaksi on määritetty lukittu ja tilin omistaja arvioi erikseen, kuka voi seurata häntä.",
   "account.media": "Media",
   "account.mention": "Mainitse @{name}",
   "account.moved_to": "{name} on ilmoittanut uudeksi tilikseen",
   "account.mute": "Mykistä @{name}",
-  "account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}",
+  "account.mute_notifications": "Mykistä käyttäjän @{name} ilmoitukset",
   "account.muted": "Mykistetty",
   "account.open_original_page": "Avaa alkuperäinen sivu",
   "account.posts": "Viestit",
   "account.posts_with_replies": "Viestit ja vastaukset",
-  "account.report": "Raportoi @{name}",
+  "account.report": "Ilmoita käyttäjästä @{name}",
   "account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö klikkaamalla",
   "account.share": "Jaa käyttäjän @{name} profiili",
   "account.show_reblogs": "Näytä buustaukset käyttäjältä @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} viesti} other {{counter} viestiä}}",
   "account.unblock": "Salli @{name}",
   "account.unblock_domain": "Salli {domain}",
   "account.unblock_short": "Poista esto",
@@ -90,7 +90,7 @@
   "bundle_column_error.routing.body": "Pyydettyä sivua ei löytynyt. Oletko varma, että osoitepalkin URL-osoite on oikein?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Sulje",
-  "bundle_modal_error.message": "Jokin meni vikaan komponenttia ladattaessa.",
+  "bundle_modal_error.message": "Jotain meni pieleen komponenttia ladattaessa.",
   "bundle_modal_error.retry": "Yritä uudelleen",
   "closed_registrations.other_server_instructions": "Koska Mastodon on hajautettu, voit luoda tilin toiselle palvelimelle ja silti olla vuorovaikutuksessa tämän kanssa.",
   "closed_registrations_modal.description": "Tilin luominen palvelimeen {domain} ei ole tällä hetkellä mahdollista, mutta huomioi, että et tarvitse tiliä erityisesti palvelimeen {domain} käyttääksesi Mastodonia.",
@@ -103,14 +103,14 @@
   "column.community": "Paikallinen aikajana",
   "column.direct": "Yksityisviestit",
   "column.directory": "Selaa profiileja",
-  "column.domain_blocks": "Piilotetut verkkotunnukset",
+  "column.domain_blocks": "Estetytr verkkotunnukset",
   "column.favourites": "Suosikit",
   "column.follow_requests": "Seuraamispyynnöt",
   "column.home": "Koti",
   "column.lists": "Listat",
   "column.mutes": "Mykistetyt käyttäjät",
   "column.notifications": "Ilmoitukset",
-  "column.pins": "Kiinnitetyt julkaisut",
+  "column.pins": "Kiinnitetyt viestit",
   "column.public": "Yleinen aikajana",
   "column_back_button.label": "Takaisin",
   "column_header.hide_settings": "Piilota asetukset",
@@ -141,9 +141,9 @@
   "compose_form.publish_form": "Julkaise",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.save_changes": "Tallenna muutokset",
-  "compose_form.sensitive.hide": "{count, plural, one {Merkitse media arkaluontoiseksi} other {Merkitse media arkaluontoiseksi}}",
-  "compose_form.sensitive.marked": "{count, plural, one {Media on merkitty arkaluontoiseksi} other {Media on merkitty arkaluontoiseksi}}",
-  "compose_form.sensitive.unmarked": "{count, plural, one {Mediaa ei ole merkitty arkaluontoiseksi} other {Mediaa ei ole merkitty arkaluontoiseksi}}",
+  "compose_form.sensitive.hide": "{count, plural, one {Merkitse media arkaluontoiseksi} other {Merkitse mediat arkaluontoiseksi}}",
+  "compose_form.sensitive.marked": "{count, plural, one {Media on merkitty arkaluontoiseksi} other {Mediat on merkitty arkaluontoiseksi}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Mediaa ei ole merkitty arkaluontoiseksi} other {Medioja ei ole merkitty arkaluontoiseksi}}",
   "compose_form.spoiler.marked": "Poista sisältövaroitus",
   "compose_form.spoiler.unmarked": "Lisää sisältövaroitus",
   "compose_form.spoiler_placeholder": "Kirjoita varoituksesi tähän",
@@ -210,11 +210,11 @@
   "empty_column.account_suspended": "Tilin käyttäminen keskeytetty",
   "empty_column.account_timeline": "Ei viestejä täällä.",
   "empty_column.account_unavailable": "Profiilia ei löydy",
-  "empty_column.blocks": "Et ole vielä estänyt yhtään käyttäjää.",
+  "empty_column.blocks": "Et ole vielä estänyt käyttäjiä.",
   "empty_column.bookmarked_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
   "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!",
   "empty_column.direct": "Sinulla ei ole vielä yksityisviestejä. Kun lähetät tai vastaanotat sellaisen, se näkyy tässä.",
-  "empty_column.domain_blocks": "Yhtään verkko-osoitetta ei ole vielä estetty.",
+  "empty_column.domain_blocks": "Verkkotunnuksia ei ole vielä estetty.",
   "empty_column.explore_statuses": "Mikään ei ole nyt trendi. Tarkista myöhemmin!",
   "empty_column.favourited_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
   "empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä viestiä suosikkeihinsa. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
@@ -230,7 +230,7 @@
   "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti tai manuaalisesti seuraa muiden palvelimien käyttäjiä niin saat sisältöä",
   "error.unexpected_crash.explanation": "Sivua ei voi näyttää oikein, johtuen bugista tai ongelmasta selaimen yhteensopivuudessa.",
   "error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.",
-  "error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos tämä ei auta, saatat yhä pystyä käyttämään Mastodonia toisen selaimen tai sovelluksen kautta.",
+  "error.unexpected_crash.next_steps": "Kokeile sivun päivitystä. Jos se ei auta, voi Mastodonin käyttö silti olla mahdollista eri selaimella tai natiivilla sovelluksella.",
   "error.unexpected_crash.next_steps_addons": "Yritä poistaa ne käytöstä ja päivittää sivu. Jos se ei auta, voit silti käyttää Mastodonia eri selaimen tai sovelluksen kautta.",
   "errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle",
   "errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",
@@ -257,7 +257,7 @@
   "follow_recommendations.lead": "Seuraamiesi julkaisut näkyvät aikajärjestyksessä kotisyötteessä. Älä pelkää seurata vahingossa, voit lopettaa seuraamisen yhtä helposti!",
   "follow_request.authorize": "Valtuuta",
   "follow_request.reject": "Hylkää",
-  "follow_requests.unlocked_explanation": "Vaikka tiliäsi ei ole lukittu, {domain}:n ylläpitäjien mielestä saatat haluta tarkistaa nämä seurauspyynnöt manuaalisesti.",
+  "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelun {domain} ylläpito on arvioinut, että voi olla halukas tarkistamaan nämä seurauspyynnöt erikseen.",
   "footer.about": "Tietoja",
   "footer.directory": "Profiilihakemisto",
   "footer.get_app": "Hanki sovellus",
@@ -294,7 +294,7 @@
   "interaction_modal.title.favourite": "Suosikin {name} viesti",
   "interaction_modal.title.follow": "Seuraa {name}",
   "interaction_modal.title.reblog": "Tehosta {name} viestiä",
-  "interaction_modal.title.reply": "Vastaa {name} viestiin",
+  "interaction_modal.title.reply": "Vastaa käyttäjän {name} viestiin",
   "intervals.full.days": "{number, plural, one {# päivä} other {# päivää}}",
   "intervals.full.hours": "{number, plural, one {# tunti} other {# tuntia}}",
   "intervals.full.minutes": "{number, plural, one {# minuutti} other {# minuuttia}}",
@@ -310,7 +310,7 @@
   "keyboard_shortcuts.favourite": "Lisää suosikkeihin",
   "keyboard_shortcuts.favourites": "Avaa lista suosikeista",
   "keyboard_shortcuts.federated": "Avaa yleinen aikajana",
-  "keyboard_shortcuts.heading": "Näppäinkomennot",
+  "keyboard_shortcuts.heading": "Pikanäppäimet",
   "keyboard_shortcuts.home": "Avaa kotiaikajana",
   "keyboard_shortcuts.hotkey": "Pikanäppäin",
   "keyboard_shortcuts.legend": "Näytä tämä selite",
@@ -352,7 +352,7 @@
   "lists.replies_policy.title": "Näytä vastaukset:",
   "lists.search": "Etsi seuraamistasi henkilöistä",
   "lists.subheading": "Omat listasi",
-  "load_pending": "{count, plural, one {# uusi kappale} other {# uutta kappaletta}}",
+  "load_pending": "{count, plural, one {# uusi kohde} other {# uutta kohdetta}}",
   "loading_indicator.label": "Ladataan...",
   "media_gallery.toggle_visible": "{number, plural, one {Piilota kuva} other {Piilota kuvat}}",
   "missing_indicator.label": "Ei löytynyt",
@@ -413,7 +413,7 @@
   "notifications.column_settings.reblog": "Buustit:",
   "notifications.column_settings.show": "Näytä sarakkeessa",
   "notifications.column_settings.sound": "Äänimerkki",
-  "notifications.column_settings.status": "Uudet julkaisut:",
+  "notifications.column_settings.status": "Uudet viestit:",
   "notifications.column_settings.unread_notifications.category": "Lukemattomat ilmoitukset",
   "notifications.column_settings.unread_notifications.highlight": "Korosta lukemattomat ilmoitukset",
   "notifications.column_settings.update": "Muokkaukset:",
@@ -470,7 +470,7 @@
   "relative_time.today": "tänään",
   "reply_indicator.cancel": "Peruuta",
   "report.block": "Estä",
-  "report.block_explanation": "Et näe heidän viestejään. He eivät voi nähdä viestejäsi tai seurata sinua. He voivat kertoa, että heidät on estetty.",
+  "report.block_explanation": "Et näe heidän viestejään, eivätkä he voi nähdä viestejäsi tai seurata sinua. He näkevät, että heidät on estetty.",
   "report.categories.other": "Muu",
   "report.categories.spam": "Roskaposti",
   "report.categories.violation": "Sisältö rikkoo yhden tai useamman palvelimen sääntöjä",
@@ -501,12 +501,12 @@
   "report.submit": "Lähetä",
   "report.target": "Raportoidaan {target}",
   "report.thanks.take_action": "Tässä on vaihtoehtosi hallita näkemääsi Mastodonissa:",
-  "report.thanks.take_action_actionable": "Kun tarkistamme tämän, voit ryhtyä toimiin @{name} vastaan:",
+  "report.thanks.take_action_actionable": "Sillä välin kun tarkistamme tätä, voit ryhtyä toimenpiteisiin käyttäjää @{name} vastaan:",
   "report.thanks.title": "Etkö halua nähdä tätä?",
   "report.thanks.title_actionable": "Kiitos raportista, tutkimme asiaa.",
   "report.unfollow": "Lopeta seuraaminen @{name}",
   "report.unfollow_explanation": "Seuraat tätä tiliä. Jotta et enää näkisi heidän kirjoituksiaan, lopeta niiden seuraaminen.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} viestiä}} liitteenä",
+  "report_notification.attached_statuses": "{count, plural, one {{count} viesti} other {{count} viestiä}} liitteenä",
   "report_notification.categories.other": "Muu",
   "report_notification.categories.spam": "Roskaposti",
   "report_notification.categories.violation": "Sääntöjen rikkominen",
@@ -526,7 +526,7 @@
   "search_results.statuses": "Viestit",
   "search_results.statuses_fts_disabled": "Viestien haku sisällön perusteella ei ole käytössä tällä Mastodon-palvelimella.",
   "search_results.title": "Etsi {q}",
-  "search_results.total": "{count, number} {count, plural, one {tulos} other {tulokset}}",
+  "search_results.total": "{count, number} {count, plural, one {tulos} other {tulosta}}",
   "server_banner.about_active_users": "Palvelinta käyttäneet ihmiset viimeisen 30 päivän aikana (kuukauden aktiiviset käyttäjät)",
   "server_banner.active_users": "aktiiviset käyttäjät",
   "server_banner.administered_by": "Ylläpitäjä:",
@@ -548,9 +548,9 @@
   "status.direct": "Yksityisviesti käyttäjälle @{name}",
   "status.edit": "Muokkaa",
   "status.edited": "Muokattu {date}",
-  "status.edited_x_times": "Muokattu {count, plural, one {{count} aika} other {{count} kertaa}}",
+  "status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}",
   "status.embed": "Upota",
-  "status.favourite": "Tykkää",
+  "status.favourite": "Lisää suosikkeihin",
   "status.filter": "Suodata tämä viesti",
   "status.filtered": "Suodatettu",
   "status.hide": "Piilota toot",
@@ -572,7 +572,7 @@
   "status.reblogs.empty": "Kukaan ei ole vielä buustannut tätä viestiä. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
   "status.redraft": "Poista ja palauta muokattavaksi",
   "status.remove_bookmark": "Poista kirjanmerkki",
-  "status.replied_to": "Vastaus käyttäjälle {name}",
+  "status.replied_to": "Vastasit käyttäjälle {name}",
   "status.reply": "Vastaa",
   "status.replyAll": "Vastaa ketjuun",
   "status.report": "Raportoi @{name}",
@@ -607,7 +607,7 @@
   "timeline_hint.resources.followers": "Seuraajat",
   "timeline_hint.resources.follows": "seurattua",
   "timeline_hint.resources.statuses": "Vanhemmat julkaisut",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} viimeinen {days, plural, one {päivä} other {{days} päivää}}",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} viimeisten {days, plural, one {päivän} other {{days} päivän}}",
   "trends.trending_now": "Suosittua nyt",
   "ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.",
   "units.short.billion": "{count} mrd.",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 02691e029..bc4231bf8 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -3,7 +3,7 @@
   "about.contact": "Contact :",
   "about.disclaimer": "Mastodon est un logiciel libre, open-source et une marque déposée de Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Raison non disponible",
-  "about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateurs de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.",
+  "about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateur⋅rice⋅s de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.",
   "about.domain_blocks.silenced.explanation": "Vous ne verrez généralement pas les profils et le contenu de ce serveur, à moins que vous ne les recherchiez explicitement ou que vous ne choisissiez de les suivre.",
   "about.domain_blocks.silenced.title": "Limité",
   "about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les utilisateurs de ce serveur.",
@@ -72,7 +72,7 @@
   "admin.dashboard.retention.cohort": "Mois d'inscription",
   "admin.dashboard.retention.cohort_size": "Nouveaux utilisateurs",
   "alert.rate_limited.message": "Veuillez réessayer après {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Débit limité",
+  "alert.rate_limited.title": "Nombre de requêtes limité",
   "alert.unexpected.message": "Une erreur inattendue s’est produite.",
   "alert.unexpected.title": "Oups !",
   "announcement.announcement": "Annonce",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index dfafb89d5..8aa06ffe7 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -304,7 +304,7 @@
   "keyboard_shortcuts.column": "Cuir am fòcas air colbh",
   "keyboard_shortcuts.compose": "Cuir am fòcas air raon teacsa an sgrìobhaidh",
   "keyboard_shortcuts.description": "Tuairisgeul",
-  "keyboard_shortcuts.direct": "a dh’fhosgladh colbh nan teachdaireachdan dìreach",
+  "keyboard_shortcuts.direct": "Fosgail colbh nan teachdaireachdan dìreach",
   "keyboard_shortcuts.down": "Gluais sìos air an liosta",
   "keyboard_shortcuts.enter": "Fosgail post",
   "keyboard_shortcuts.favourite": "Cuir post ris na h-annsachdan",
@@ -385,7 +385,7 @@
   "navigation_bar.search": "Lorg",
   "navigation_bar.security": "Tèarainteachd",
   "not_signed_in_indicator.not_signed_in": "Feumaidh tu clàradh a-steach mus fhaigh thu cothrom air a’ ghoireas seo.",
-  "notification.admin.report": "Rinn {name} mu {target}",
+  "notification.admin.report": "Rinn {name} gearan mu {target}",
   "notification.admin.sign_up": "Chlàraich {name}",
   "notification.favourite": "Is annsa le {name} am post agad",
   "notification.follow": "Tha {name} ’gad leantainn a-nis",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 05f5229f3..2e1f4684f 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -104,7 +104,7 @@
   "column.direct": "Mensaxes directas",
   "column.directory": "Procurar perfís",
   "column.domain_blocks": "Dominios agochados",
-  "column.favourites": "Favoritos",
+  "column.favourites": "Favoritas",
   "column.follow_requests": "Peticións de seguimento",
   "column.home": "Inicio",
   "column.lists": "Listaxes",
@@ -125,7 +125,7 @@
   "community.column_settings.remote_only": "Só remoto",
   "compose.language.change": "Elixe o idioma",
   "compose.language.search": "Buscar idiomas...",
-  "compose_form.direct_message_warning_learn_more": "Coñecer máis",
+  "compose_form.direct_message_warning_learn_more": "Saber máis",
   "compose_form.encryption_warning": "As publicacións en Mastodon non están cifradas de extremo-a-extremo. Non compartas información sensible en Mastodon.",
   "compose_form.hashtag_warning": "Esta publicación non aparecerá baixo ningún cancelo (hashtag) porque non está listada. Só se poden procurar publicacións públicas por cancelos.",
   "compose_form.lock_disclaimer": "A túa conta non está {locked}. Todas poden seguirte para ollar os teus toots só para seguidoras.",
@@ -136,7 +136,7 @@
   "compose_form.poll.option_placeholder": "Opción {number}",
   "compose_form.poll.remove_option": "Eliminar esta opción",
   "compose_form.poll.switch_to_multiple": "Mudar a enquisa para permitir múltiples escollas",
-  "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa escolla",
+  "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa opción",
   "compose_form.publish": "Publicar",
   "compose_form.publish_form": "Publicar",
   "compose_form.publish_loud": "{publish}!",
@@ -167,7 +167,7 @@
   "confirmations.mute.explanation": "Isto agochará as súas publicacións ou as que a mencionen, mais poderá ler as túas publicacións e ser seguidora túa.",
   "confirmations.mute.message": "Tes a certeza de querer acalar a {name}?",
   "confirmations.redraft.confirm": "Eliminar e reescribir",
-  "confirmations.redraft.message": "Tes a certeza de querer eliminar esta publicación e reescribila? Perderás os compartidos e favoritos, e as respostas á publicación orixinal ficarán orfas.",
+  "confirmations.redraft.message": "Tes a certeza de querer eliminar esta publicación e reescribila? Perderás as comparticións e favoritas, e as respostas á publicación orixinal ficarán orfas.",
   "confirmations.reply.confirm": "Responder",
   "confirmations.reply.message": "Ao responder sobrescribirás a mensaxe que estás a compor. Tes a certeza de que queres continuar?",
   "confirmations.unfollow.confirm": "Deixar de seguir",
@@ -291,7 +291,7 @@
   "interaction_modal.on_this_server": "Neste servidor",
   "interaction_modal.other_server_instructions": "Copia e pega este URL no campo de busca da túa app Mastodon favorita ou na interface web do teu servidor Mastodon.",
   "interaction_modal.preamble": "Como Mastodon é descentralizado, é posible usar unha conta existente noutro servidor Mastodon, ou nunha plataforma compatible, se non dispós dunha conta neste servidor.",
-  "interaction_modal.title.favourite": "Marcar coma favorito a publicación de {name}",
+  "interaction_modal.title.favourite": "Marcar coma favorita a publicación de {name}",
   "interaction_modal.title.follow": "Seguir a {name}",
   "interaction_modal.title.reblog": "Promover a publicación de {name}",
   "interaction_modal.title.reply": "Responder á publicación de {name}",
@@ -307,8 +307,8 @@
   "keyboard_shortcuts.direct": "para abrir a columna de mensaxes directas",
   "keyboard_shortcuts.down": "Para mover cara abaixo na listaxe",
   "keyboard_shortcuts.enter": "Para abrir publicación",
-  "keyboard_shortcuts.favourite": "Para engadir a favoritos",
-  "keyboard_shortcuts.favourites": "Para abrir a listaxe dos favoritos",
+  "keyboard_shortcuts.favourite": "Marcar como favorita",
+  "keyboard_shortcuts.favourites": "Para abrir a listaxe das favoritas",
   "keyboard_shortcuts.federated": "Para abrir a cronoloxía federada",
   "keyboard_shortcuts.heading": "Atallos do teclado",
   "keyboard_shortcuts.home": "Para abrir a cronoloxía inicial",
@@ -371,7 +371,7 @@
   "navigation_bar.domain_blocks": "Dominios agochados",
   "navigation_bar.edit_profile": "Editar perfil",
   "navigation_bar.explore": "Descubrir",
-  "navigation_bar.favourites": "Favoritos",
+  "navigation_bar.favourites": "Favoritas",
   "navigation_bar.filters": "Palabras silenciadas",
   "navigation_bar.follow_requests": "Peticións de seguimento",
   "navigation_bar.follows_and_followers": "Seguindo e seguidoras",
@@ -401,7 +401,7 @@
   "notifications.column_settings.admin.report": "Novas denuncias:",
   "notifications.column_settings.admin.sign_up": "Novas usuarias:",
   "notifications.column_settings.alert": "Notificacións de escritorio",
-  "notifications.column_settings.favourite": "Favoritos:",
+  "notifications.column_settings.favourite": "Favoritas:",
   "notifications.column_settings.filter_bar.advanced": "Amosar todas as categorías",
   "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido",
   "notifications.column_settings.filter_bar.show_bar": "Amosar barra de filtros",
@@ -419,7 +419,7 @@
   "notifications.column_settings.update": "Edicións:",
   "notifications.filter.all": "Todo",
   "notifications.filter.boosts": "Compartidos",
-  "notifications.filter.favourites": "Favoritos",
+  "notifications.filter.favourites": "Favoritas",
   "notifications.filter.follows": "Seguimentos",
   "notifications.filter.mentions": "Mencións",
   "notifications.filter.polls": "Resultados da enquisa",
@@ -514,7 +514,7 @@
   "search.placeholder": "Procurar",
   "search.search_or_paste": "Busca ou insire URL",
   "search_popout.search_format": "Formato de procura avanzada",
-  "search_popout.tips.full_text": "Texto simple devolve toots que ti escribiches, promoviches, marcaches favoritos, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e cancelos.",
+  "search_popout.tips.full_text": "Texto simple devolve publicacións que ti escribiches, promoveches, marcaches como favoritas, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e cancelos.",
   "search_popout.tips.hashtag": "cancelo",
   "search_popout.tips.status": "publicación",
   "search_popout.tips.text": "Texto simple devolve coincidencias con nomes públicos, nomes de usuaria e cancelos",
@@ -535,7 +535,7 @@
   "server_banner.server_stats": "Estatísticas do servidor:",
   "sign_in_banner.create_account": "Crear conta",
   "sign_in_banner.sign_in": "Acceder",
-  "sign_in_banner.text": "Inicia sesión para seguir perfís ou etiquetas, marcar como favorito, responder a publicacións ou interactuar con outro servidor desde a túa conta.",
+  "sign_in_banner.text": "Inicia sesión para seguir perfís ou etiquetas, marcar como favorita, responder a publicacións ou interactuar con outro servidor desde a túa conta.",
   "status.admin_account": "Abrir interface de moderación para @{name}",
   "status.admin_status": "Abrir esta publicación na interface de moderación",
   "status.block": "Bloquear a @{name}",
@@ -550,7 +550,7 @@
   "status.edited": "Editado {date}",
   "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}",
   "status.embed": "Incrustar",
-  "status.favourite": "Favorito",
+  "status.favourite": "Favorita",
   "status.filter": "Filtrar esta publicación",
   "status.filtered": "Filtrado",
   "status.hide": "Agochar publicación",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index 2ab83fd37..c8e23e399 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -237,35 +237,35 @@
   "explore.search_results": "सर्च रिजल्ट्स",
   "explore.title": "एक्स्प्लोर",
   "filter_modal.added.context_mismatch_explanation": "यह फ़िल्टर श्रेणी उस संदर्भ पर लागू नहीं होती जिसमें आपने इस पोस्ट को एक्सेस किया है। यदि आप चाहते हैं कि इस संदर्भ में भी पोस्ट को फ़िल्टर किया जाए, तो आपको फ़िल्टर को एडिट करना होगा।",
-  "filter_modal.added.context_mismatch_title": "Context mismatch!",
-  "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
-  "filter_modal.added.expired_title": "Expired filter!",
-  "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
-  "filter_modal.added.review_and_configure_title": "Filter settings",
-  "filter_modal.added.settings_link": "settings page",
-  "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
-  "filter_modal.added.title": "Filter added!",
-  "filter_modal.select_filter.context_mismatch": "does not apply to this context",
-  "filter_modal.select_filter.expired": "expired",
-  "filter_modal.select_filter.prompt_new": "New category: {name}",
-  "filter_modal.select_filter.search": "Search or create",
-  "filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
-  "filter_modal.select_filter.title": "Filter this post",
-  "filter_modal.title.status": "Filter a post",
-  "follow_recommendations.done": "Done",
-  "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
-  "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
+  "filter_modal.added.context_mismatch_title": "कंटेंट मिसमैच!",
+  "filter_modal.added.expired_explanation": "यह फ़िल्टर श्रेणी समाप्त हो गई है, इसे लागू करने के लिए आपको समाप्ति तिथि बदलनी होगी।",
+  "filter_modal.added.expired_title": "एक्सपीरेड फ़िल्टर!",
+  "filter_modal.added.review_and_configure": "इस फ़िल्टर श्रेणी की समीक्षा करने और आगे कॉन्फ़िगर करने के लिए,{settings_link} पर जाएँ",
+  "filter_modal.added.review_and_configure_title": "फ़िल्टर सेटिंग्स",
+  "filter_modal.added.settings_link": "सेटिंग्स पेज",
+  "filter_modal.added.short_explanation": "इस पोस्ट को निम्न फ़िल्टर श्रेणी में जोड़ा गया है:{title}",
+  "filter_modal.added.title": "फ़िल्टर एडेड",
+  "filter_modal.select_filter.context_mismatch": "इस संदर्भ में लागू नहीं होता",
+  "filter_modal.select_filter.expired": "एक्सपीरेड",
+  "filter_modal.select_filter.prompt_new": "नई श्रेणी:{name}",
+  "filter_modal.select_filter.search": "खोजें या बनाएं",
+  "filter_modal.select_filter.subtitle": "किसी मौजूदा श्रेणी का उपयोग करें या एक नया बनाएं",
+  "filter_modal.select_filter.title": "इस पोस्ट को फ़िल्टर करें",
+  "filter_modal.title.status": "किसी पोस्ट को फ़िल्टर करें",
+  "follow_recommendations.done": "पूर्ण",
+  "follow_recommendations.heading": "उन लोगों का अनुसरण करें जिनकी पोस्ट आप देखना चाहते हैं! यहाँ कुछ सुझाव हैं।",
+  "follow_recommendations.lead": "आपके द्वारा फ़ॉलो किए जाने वाले लोगों के पोस्ट आपके होम फ़ीड पर कालानुक्रमिक क्रम में दिखाई देंगे। गलतियाँ करने से न डरें, आप किसी भी समय लोगों को उतनी ही आसानी से अनफ़ॉलो कर सकते हैं!",
   "follow_request.authorize": "अधिकार दें",
   "follow_request.reject": "अस्वीकार करें",
   "follow_requests.unlocked_explanation": "हालाँकि आपका खाता लॉक नहीं है, फिर भी {domain} डोमेन स्टाफ ने सोचा कि आप इन खातों के मैन्युअल अनुरोधों की समीक्षा करना चाहते हैं।",
-  "footer.about": "About",
-  "footer.directory": "Profiles directory",
-  "footer.get_app": "Get the app",
+  "footer.about": "अबाउट",
+  "footer.directory": "प्रोफाइल्स डायरेक्टरी",
+  "footer.get_app": "अप्प प्राप्त करें",
   "footer.invite": "लोगों को आमंत्रित करें",
-  "footer.keyboard_shortcuts": "Keyboard shortcuts",
-  "footer.privacy_policy": "Privacy policy",
-  "footer.source_code": "View source code",
-  "generic.saved": "Saved",
+  "footer.keyboard_shortcuts": "कीबोर्ड शॉर्टकट",
+  "footer.privacy_policy": "प्राइवेसी पालिसी",
+  "footer.source_code": "सोर्स कोड देखें",
+  "generic.saved": "सेव्ड",
   "getting_started.heading": "पहले कदम रखें",
   "hashtag.column_header.tag_mode.all": "और {additional}",
   "hashtag.column_header.tag_mode.any": "या {additional}",
@@ -276,25 +276,25 @@
   "hashtag.column_settings.tag_mode.any": "इनमें से कोई भी",
   "hashtag.column_settings.tag_mode.none": "इनमें से कोई भी नहीं",
   "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
-  "hashtag.follow": "Follow hashtag",
-  "hashtag.unfollow": "Unfollow hashtag",
+  "hashtag.follow": "हैशटैग को फॉलो करें",
+  "hashtag.unfollow": "हैशटैग को उनफ़ोल्लोव करें",
   "home.column_settings.basic": "बुनियादी",
   "home.column_settings.show_reblogs": "बूस्ट दिखाए",
   "home.column_settings.show_replies": "जवाबों को दिखाए",
   "home.hide_announcements": "घोषणाएँ छिपाएँ",
   "home.show_announcements": "घोषणाएं दिखाएं",
-  "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
-  "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
-  "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
-  "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
-  "interaction_modal.on_another_server": "On a different server",
+  "interaction_modal.description.favourite": "मास्टोडन पर एक अकाउंट के साथ, आप इस पोस्ट को पसंदीदा बना सकते हैं ताकि लेखक को यह पता चल सके कि आप इसकी सराहना करते हैं और इसे बाद के लिए सहेज सकते हैं।",
+  "interaction_modal.description.follow": "मास्टोडन पर एक अकाउंट के साथ, आप अपने होम फीड में उनकी पोस्ट प्राप्त करने के लिए {name} का अनुसरण कर सकते हैं",
+  "interaction_modal.description.reblog": "मास्टोडन पर एक अकाउंट के साथ, आप इस पोस्ट को अपने फोल्लोवेर्स के साथ साझा करने के लिए बढ़ा सकते हैं।",
+  "interaction_modal.description.reply": "मास्टोडन पर एक अकाउंट के साथ, आप इस पोस्ट का जवाब दे सकते हैं।",
+  "interaction_modal.on_another_server": "एक अलग सर्वर पर",
   "interaction_modal.on_this_server": "इस सर्वर पे",
-  "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
-  "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
-  "interaction_modal.title.favourite": "Favourite {name}'s post",
-  "interaction_modal.title.follow": "Follow {name}",
-  "interaction_modal.title.reblog": "Boost {name}'s post",
-  "interaction_modal.title.reply": "Reply to {name}'s post",
+  "interaction_modal.other_server_instructions": "इस URL को अपने पसंदीदा Mastodon ऐप या अपने Mastodon सर्वर के वेब इंटरफ़ेस के खोज फ़ील्ड में कॉपी और पेस्ट करें।",
+  "interaction_modal.preamble": "चूंकि मास्टोडन डेसेंट्रलीसेड है, यदि आपके पास इस पर कोई अकाउंट नहीं है, तो आप किसी अन्य मास्टोडन सर्वर या संगत प्लेटफ़ॉर्म द्वारा होस्ट किए गए अपने मौजूदा अकाउंट का उपयोग कर सकते हैं।",
+  "interaction_modal.title.favourite": "पसंदीदा {name} की पोस्ट",
+  "interaction_modal.title.follow": "फॉलो {name}",
+  "interaction_modal.title.reblog": "बूस्ट {name} की पोस्ट",
+  "interaction_modal.title.reply": "{name} की पोस्ट पे रिप्लाई करें",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -304,7 +304,7 @@
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "कंपोज़ टेक्स्ट-एरिया पर ध्यान केंद्रित करने के लिए",
   "keyboard_shortcuts.description": "विवरण",
-  "keyboard_shortcuts.direct": "to open direct messages column",
+  "keyboard_shortcuts.direct": "डायरेक्ट मैसेज कॉलम खोलने के लिए",
   "keyboard_shortcuts.down": "सूची में शामिल करने के लिए",
   "keyboard_shortcuts.enter": "स्टेटस खोलने के लिए",
   "keyboard_shortcuts.favourite": "पसंदीदा के लिए",
@@ -333,21 +333,21 @@
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
   "keyboard_shortcuts.up": "to move up in the list",
   "lightbox.close": "बंद करें",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "कंप्रेस इमेज व्यू बॉक्स",
+  "lightbox.expand": "एक्सपैंड इमेज व्यू बॉक्स",
   "lightbox.next": "अगला",
   "lightbox.previous": "पिछला",
-  "limited_account_hint.action": "Show profile anyway",
-  "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
-  "lists.account.add": "Add to list",
+  "limited_account_hint.action": "फिर भी प्रोफाइल दिखाओ",
+  "limited_account_hint.title": "यह प्रोफ़ाइल {domain} के मॉडरेटर द्वारा छिपाई गई है.",
+  "lists.account.add": "ऐड तो लिस्ट",
   "lists.account.remove": "सूची से निकालें",
   "lists.delete": "सूची हटाएँ",
   "lists.edit": "सूची संपादित करें",
-  "lists.edit.submit": "Change title",
+  "lists.edit.submit": "शीर्षक बदलें",
   "lists.new.create": "सूची जोड़ें",
   "lists.new.title_placeholder": "नये सूची का शीर्षक",
-  "lists.replies_policy.followed": "Any followed user",
-  "lists.replies_policy.list": "Members of the list",
+  "lists.replies_policy.followed": "अन्य फोल्लोवेद यूजर",
+  "lists.replies_policy.list": "सूची के सदस्य",
   "lists.replies_policy.none": "कोई नहीं",
   "lists.replies_policy.title": "Show replies to:",
   "lists.search": "Search among people you follow",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index fdd3b8fc7..74211279a 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -7,7 +7,7 @@
   "about.domain_blocks.silenced.explanation": "Þú munt almennt ekki sjá notandasnið og efni af þessum netþjóni nema þú flettir því upp sérstaklega eða veljir að fylgjast með því.",
   "about.domain_blocks.silenced.title": "Takmarkað",
   "about.domain_blocks.suspended.explanation": "Engin gögn frá þessum vefþjóni verða unnin, geymd eða skipst á, sem gerir samskipti við notendur frá þessum vefþjóni ómöguleg.",
-  "about.domain_blocks.suspended.title": "Í bið",
+  "about.domain_blocks.suspended.title": "Í frysti",
   "about.not_available": "Þessar upplýsingar hafa ekki verið gerðar aðgengilegar á þessum netþjóni.",
   "about.powered_by": "Dreifhýstur samskiptamiðill keyrður með {mastodon}",
   "about.rules": "Reglur netþjónsins",
@@ -32,9 +32,9 @@
   "account.follow": "Fylgjast með",
   "account.followers": "Fylgjendur",
   "account.followers.empty": "Ennþá fylgist enginn með þessum notanda.",
-  "account.followers_counter": "{count, plural, one {{counter} fylgjandi} other {{counter} fylgjendur}}",
+  "account.followers_counter": "{count, plural, one {Fylgjandi: {counter}} other {Fylgjendur: {counter}}}",
   "account.following": "Fylgist með",
-  "account.following_counter": "{count, plural, one {{counter} fylgist með} other {{counter} fylgjast með}}",
+  "account.following_counter": "{count, plural, one {Fylgist með: {counter}} other {Fylgist með: {counter}}}",
   "account.follows.empty": "Þessi notandi fylgist ennþá ekki með neinum.",
   "account.follows_you": "Fylgir þér",
   "account.go_to_profile": "Fara í notandasnið",
@@ -56,7 +56,7 @@
   "account.requested": "Bíður eftir samþykki. Smelltu til að hætta við beiðni um að fylgjast með",
   "account.share": "Deila notandasniði fyrir @{name}",
   "account.show_reblogs": "Sýna endurbirtingar frá @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} færsla} other {{counter} færslur}}",
+  "account.statuses_counter": "{count, plural, one {Færsla: {counter}} other {Færslur: {counter}}}",
   "account.unblock": "Aflétta útilokun af @{name}",
   "account.unblock_domain": "Aflétta útilokun lénsins {domain}",
   "account.unblock_short": "Hætta að loka á",
@@ -207,7 +207,7 @@
   "emoji_button.search_results": "Leitarniðurstöður",
   "emoji_button.symbols": "Tákn",
   "emoji_button.travel": "Ferðalög og staðir",
-  "empty_column.account_suspended": "Notandaaðgangur í bið",
+  "empty_column.account_suspended": "Notandaaðgangur í frysti",
   "empty_column.account_timeline": "Engar færslur hér!",
   "empty_column.account_unavailable": "Notandasnið ekki tiltækt",
   "empty_column.blocks": "Þú hefur ekki ennþá útilokað neina notendur.",
@@ -258,7 +258,7 @@
   "follow_request.authorize": "Heimila",
   "follow_request.reject": "Hafna",
   "follow_requests.unlocked_explanation": "Jafnvel þótt aðgangurinn þinn sé ekki læstur, hafa umsjónarmenn {domain} ímyndað sér að þú gætir viljað yfirfara handvirkt fylgjendabeiðnir frá þessum notendum.",
-  "footer.about": "Um hugbúnaðinn",
+  "footer.about": "Nánari upplýsingar",
   "footer.directory": "Notandasniðamappa",
   "footer.get_app": "Ná í forritið",
   "footer.invite": "Bjóða fólki",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index b4f6fa120..e3b2a436c 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -1,6 +1,6 @@
 {
-  "about.blocks": "Moderated servers",
-  "about.contact": "Contact:",
+  "about.blocks": "Модерацияланған серверлер",
+  "about.contact": "Байланыс:",
   "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Reason not available",
   "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index a0566376d..30a1bfe94 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -191,7 +191,7 @@
   "dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.",
   "dismissable_banner.public_timeline": "이 게시물들은 이 서버와 이 서버가 알고있는 분산화된 네트워크의 다른 서버에서 사람들이 게시한 최근 공개 게시물들입니다.",
   "embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.",
-  "embed.preview": "다음과 같이 표시됩니다:",
+  "embed.preview": "이렇게 표시됩니다:",
   "emoji_button.activity": "활동",
   "emoji_button.clear": "지우기",
   "emoji_button.custom": "사용자 지정",
@@ -212,18 +212,18 @@
   "empty_column.account_unavailable": "프로필 사용 불가",
   "empty_column.blocks": "아직 아무도 차단하지 않았습니다.",
   "empty_column.bookmarked_statuses": "아직 북마크에 저장한 게시물이 없습니다. 게시물을 북마크 지정하면 여기에 나타납니다.",
-  "empty_column.community": "로컬 타임라인에 아무 것도 없습니다. 아무거나 적어 보세요!",
+  "empty_column.community": "로컬 타임라인에 아무것도 없습니다. 아무거나 적어 보세요!",
   "empty_column.direct": "아직 다이렉트 메시지가 없습니다. 다이렉트 메시지를 보내거나 받은 경우, 여기에 표시 됩니다.",
   "empty_column.domain_blocks": "아직 차단한 도메인이 없습니다.",
   "empty_column.explore_statuses": "아직 유행하는 것이 없습니다. 나중에 다시 확인하세요!",
   "empty_column.favourited_statuses": "아직 마음에 들어한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.",
   "empty_column.favourites": "아직 아무도 이 게시물을 마음에 들어하지 않았습니다. 누군가 좋아요를 하면 여기에 나타납니다.",
-  "empty_column.follow_recommendations": "당신을 위한 제안이 생성될 수 없는 것 같습니다. 알 수도 있는 사람을 검색하거나 유행하는 해시태그를 둘러볼 수 있습니다.",
+  "empty_column.follow_recommendations": "나를 위한 추천을 만들 수 없는 것 같습니다. 알 수도 있는 사람을 검색하거나 유행하는 해시태그를 둘러볼 수 있습니다.",
   "empty_column.follow_requests": "아직 팔로우 요청이 없습니다. 요청을 받았을 때 여기에 나타납니다.",
   "empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.",
   "empty_column.home": "당신의 홈 타임라인은 비어있습니다! 더 많은 사람들을 팔로우 하여 채워보세요. {suggestions}",
   "empty_column.home.suggestions": "몇몇의 제안 보기",
-  "empty_column.list": "리스트에 아직 아무 것도 없습니다.",
+  "empty_column.list": "리스트에 아직 아무것도 없습니다. 리스트의 누군가가 게시물을 올리면 여기에 나타납니다.",
   "empty_column.lists": "아직 리스트가 없습니다. 리스트를 만들면 여기에 나타납니다.",
   "empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.",
   "empty_column.notifications": "아직 알림이 없습니다. 다른 사람들이 당신에게 반응했을 때, 여기에서 볼 수 있습니다.",
@@ -231,7 +231,7 @@
   "error.unexpected_crash.explanation": "버그 혹은 브라우저 호환성 문제로 이 페이지를 올바르게 표시할 수 없습니다.",
   "error.unexpected_crash.explanation_addons": "이 페이지는 올바르게 보여질 수 없습니다. 브라우저 애드온이나 자동 번역 도구 등으로 인해 발생된 에러일 수 있습니다.",
   "error.unexpected_crash.next_steps": "페이지를 새로고침 해보세요. 그래도 해결되지 않는 경우, 다른 브라우저나 네이티브 앱으로도 마스토돈을 이용하실 수 있습니다.",
-  "error.unexpected_crash.next_steps_addons": "그것들을 끄고 페이지를 새로고침 해보세요. 그래도 해결되지 않는 경우, 다른 브라우저나 네이티브 앱으로도 마스토돈을 이용하실 수 있습니다.",
+  "error.unexpected_crash.next_steps_addons": "그걸 끄고 페이지를 새로고침 해보세요. 그래도 해결되지 않으면, 다른 브라우저나 네이티브 앱으로 마스토돈을 이용해 보실 수 있습니다.",
   "errors.unexpected_crash.copy_stacktrace": "에러 내용을 클립보드에 복사",
   "errors.unexpected_crash.report_issue": "문제 신고",
   "explore.search_results": "검색 결과",
@@ -257,7 +257,7 @@
   "follow_recommendations.lead": "당신이 팔로우 하는 사람들의 게시물이 시간순으로 정렬되어 당신의 홈 피드에 표시될 것입니다. 실수를 두려워 하지 마세요, 언제든지 쉽게 팔로우 취소를 할 수 있습니다!",
   "follow_request.authorize": "허가",
   "follow_request.reject": "거부",
-  "follow_requests.unlocked_explanation": "당신의 계정이 잠기지 않았다고 할 지라도, {domain}의 스탭은 당신이 이 계정들로부터의 팔로우 요청을 수동으로 확인하길 원한다고 생각했습니다.",
+  "follow_requests.unlocked_explanation": "귀하의 계정이 잠긴 계정이 아닐지라도, {domain} 스태프는 이 계정들의 팔로우 요청을 수동으로 처리해 주시면 좋겠다고 생각했습니다.",
   "footer.about": "정보",
   "footer.directory": "프로필 책자",
   "footer.get_app": "앱 다운로드하기",
diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json
index ad0b6f814..02ac43d57 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -131,7 +131,7 @@
   "compose_form.lock_disclaimer": "Ajimêrê te ne {locked}. Herkes dikare te bişopîne da ku şandiyên te yên tenê ji şopînerên re têne xuyakirin bibînin.",
   "compose_form.lock_disclaimer.lock": "girtî ye",
   "compose_form.placeholder": "Çi di hişê te derbas dibe?",
-  "compose_form.poll.add_option": "Hilbijarekî tevlî bike",
+  "compose_form.poll.add_option": "Hilbijartinekî tevlî bike",
   "compose_form.poll.duration": "Dema rapirsî yê",
   "compose_form.poll.option_placeholder": "{number} Hilbijêre",
   "compose_form.poll.remove_option": "Vê hilbijarê rake",
@@ -167,7 +167,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î? Bijarte û ş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î û ji 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",
@@ -195,7 +195,7 @@
   "emoji_button.activity": "Çalakî",
   "emoji_button.clear": "Pak bike",
   "emoji_button.custom": "Kesanekirî",
-  "emoji_button.flags": "Nîşankirî",
+  "emoji_button.flags": "Al",
   "emoji_button.food": "Xwarin û vexwarin",
   "emoji_button.label": "Emoji têxe",
   "emoji_button.nature": "Sirûştî",
@@ -216,7 +216,7 @@
   "empty_column.direct": "Hîn peyamên te yên rasterast tune ne. Dema ku tu yekî bişînî an jî wergirî, ew ê li vir xuya bibe.",
   "empty_column.domain_blocks": "Hîn tu navperên ku hatine astengkirin tune ne.",
   "empty_column.explore_statuses": "Tiştek niha di rojevê de tune. Paşê vegere!",
-  "empty_column.favourited_statuses": "Hîn tu peyamên te yên bijarte tune ne. Dema ku te yekî bijart, ew ê li vir xuya bibe.",
+  "empty_column.favourited_statuses": "Hîn tu peyamên te yên bijare tunene. Gava ku te yekî bijart, ew ê li vir xûya bike.",
   "empty_column.favourites": "Hîn tu kes vê peyamê nebijartiye. Gava ku hin kes bijartin, ew ê li vir xûya bikin.",
   "empty_column.follow_recommendations": "Wusa dixuye ku ji bo we tu pêşniyar nehatine çêkirin. Hûn dikarin lêgerînê bikarbînin da ku li kesên ku hûn nas dikin bigerin an hashtagên trendî bigerin.",
   "empty_column.follow_requests": "Hê jî daxwaza şopandinê tunne ye. Dema daxwazek hat, yê li vir were nîşan kirin.",
@@ -230,8 +230,8 @@
   "empty_column.public": "Li vir tiştekî tuneye! Ji raya giştî re tiştekî binivîsîne, an ji bo tijîkirinê ji rajekerên din bikarhêneran bi destan bişopînin",
   "error.unexpected_crash.explanation": "Ji ber xeletîyeke di koda me da an jî ji ber mijara lihevhatina gerokan, ev rûpel rast nehat nîşandan.",
   "error.unexpected_crash.explanation_addons": "Ev rûpel bi awayekî rast nehat nîşandan. Ev çewtî mimkûn e ji ber lêzêdekirina gerokan an jî amûrên wergera xweberî pêk tê.",
-  "error.unexpected_crash.next_steps": "Nûkirina rûpelê biceribîne. Heke ev bi kêr neyê, dibe ku te hîn jî bi rêya gerokeke cuda an jî sepana xwecîhê Mastodonê bi kar bîne.",
-  "error.unexpected_crash.next_steps_addons": "Ne çalak kirin û nûkirina rûpelê biceribîne. Heke ev bi kêr neyê, dibe ku te hîn jî bi rêya gerokeke cuda an jî sepana xwecîhê Mastodonê bi kar bîne.",
+  "error.unexpected_crash.next_steps": "Nûkirina rûpelê biceribîne. Heke ev bi kêr neyê, dibe ku te hîn jî bi riya gerokeke cuda an jî sepana xwecîhê Mastodonê bi kar bîne.",
+  "error.unexpected_crash.next_steps_addons": "Ne çalak kirin û nûkirina rûpelê biceribîne. Heke ev bi kêr neyê, dibe ku te hîn jî bi riya gerokeke cuda an jî sepana xwecîhê Mastodonê bi kar bîne.",
   "errors.unexpected_crash.copy_stacktrace": "Şopa gemara (stacktrace) tûrikê ra jê bigire",
   "errors.unexpected_crash.report_issue": "Pirsgirêkekê ragihîne",
   "explore.search_results": "Encamên lêgerînê",
@@ -289,7 +289,7 @@
   "interaction_modal.description.reply": "Bi ajimêrekê li ser Mastodon, tu dikarî bersiva vê şandiyê bidî.",
   "interaction_modal.on_another_server": "Li ser rajekareke cuda",
   "interaction_modal.on_this_server": "Li ser ev rajekar",
-  "interaction_modal.other_server_instructions": "Vê girêdanê jê bigire û pêve bike di zeviya lêgerînê de ji sepana xwe ya Mastodon a bijarte yan jî navrûyê bikarhêneriyê ya tevnê ji rajekarê Mastodon.",
+  "interaction_modal.other_server_instructions": "Vê girêdanê jê bigire û pêve bike di zeviya lêgerînê de ji sepana xwe ya Mastodon a bijartekirî yan jî navrûyê bikarhêneriyê ya tevnê ji rajekarê Mastodon.",
   "interaction_modal.preamble": "Ji ber ku Mastodon nenavendî ye, tu dikarî ajimêrê xwe ya heyî ku ji aliyê rajekarek din a Mastodon an platformek lihevhatî ve hatî pêşkêşkirin bi kar bînî ku ajimêrê te li ser vê yekê tune be.",
   "interaction_modal.title.favourite": "Şandiyê {name} bijarte bike",
   "interaction_modal.title.follow": "{name} bişopîne",
@@ -308,7 +308,7 @@
   "keyboard_shortcuts.down": "Di lîsteyê de dakêşe jêr",
   "keyboard_shortcuts.enter": "Şandiyê veke",
   "keyboard_shortcuts.favourite": "Şandiya bijarte",
-  "keyboard_shortcuts.favourites": "Lîsteyên bijarte veke",
+  "keyboard_shortcuts.favourites": "Rêzokê bijarteyan veke",
   "keyboard_shortcuts.federated": "Demnameya giştî veke",
   "keyboard_shortcuts.heading": "Kurterêyên klavyeyê",
   "keyboard_shortcuts.home": "Demnameyê veke",
@@ -535,7 +535,7 @@
   "server_banner.server_stats": "Amarên rajekar:",
   "sign_in_banner.create_account": "Ajimêr biafirîne",
   "sign_in_banner.sign_in": "Têkeve",
-  "sign_in_banner.text": "Têkeve ji bo şopandina profîlan an hashtagan, bijarte, parvekirin û bersivdana şandiyan, an ji ajimêrê xwe li ser rajekarek cuda têkilî deyine.",
+  "sign_in_banner.text": "Têkeve ji bo şopandina profîlan an hashtagan, bijartekirin, parvekirin û bersivdana şandiyan, an ji ajimêrê xwe li ser rajekarek cuda têkilî deyine.",
   "status.admin_account": "Ji bo @{name} navrûya venihêrtinê veke",
   "status.admin_status": "Vê şandîyê di navrûya venihêrtinê de veke",
   "status.block": "@{name} asteng bike",
@@ -550,7 +550,7 @@
   "status.edited": "Di {date} de hate serrastkirin",
   "status.edited_x_times": "{count, plural, one {{count} car} other {{count} car}} hate serrastkirin",
   "status.embed": "Hedimandî",
-  "status.favourite": "Bijarte",
+  "status.favourite": "Bijarte bike",
   "status.filter": "Vê şandiyê parzûn bike",
   "status.filtered": "Parzûnkirî",
   "status.hide": "Şandiyê veşêre",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index f8c8f2f42..bff4aaedd 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -36,35 +36,35 @@
   "account.following": "Following",
   "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
   "account.follows.empty": "This user doesn't follow anyone yet.",
-  "account.follows_you": "Follows you",
-  "account.go_to_profile": "Go to profile",
+  "account.follows_you": "Seka jus",
+  "account.go_to_profile": "Eiti į profilį",
   "account.hide_reblogs": "Hide boosts from @{name}",
-  "account.joined_short": "Joined",
+  "account.joined_short": "Prisijungė",
   "account.languages": "Change subscribed languages",
   "account.link_verified_on": "Ownership of this link was checked on {date}",
   "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
   "account.media": "Media",
   "account.mention": "Mention @{name}",
   "account.moved_to": "{name} has indicated that their new account is now:",
-  "account.mute": "Mute @{name}",
-  "account.mute_notifications": "Mute notifications from @{name}",
+  "account.mute": "Užtildyti @{name}",
+  "account.mute_notifications": "Užtildyti žinutes iš @{name}",
   "account.muted": "Užtildytas",
   "account.open_original_page": "Open original page",
   "account.posts": "Toots",
   "account.posts_with_replies": "Toots and replies",
-  "account.report": "Report @{name}",
+  "account.report": "Pranešti apie @{name}",
   "account.requested": "Awaiting approval",
   "account.share": "Share @{name}'s profile",
   "account.show_reblogs": "Show boosts from @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
   "account.unblock": "Unblock @{name}",
   "account.unblock_domain": "Unhide {domain}",
-  "account.unblock_short": "Unblock",
+  "account.unblock_short": "Atblokuoti",
   "account.unendorse": "Don't feature on profile",
   "account.unfollow": "Nebesekti",
   "account.unmute": "Unmute @{name}",
   "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account.unmute_short": "Unmute",
+  "account.unmute_short": "Atitildyti",
   "account_note.placeholder": "Click to add a note",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index f96b648ad..3949654f5 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -2,7 +2,7 @@
   "about.blocks": "Moderētie serveri",
   "about.contact": "Kontakts:",
   "about.disclaimer": "Mastodon ir bezmaksas atvērtā pirmkoda programmatūra un Mastodon gGmbH preču zīme.",
-  "about.domain_blocks.no_reason_available": "Iemesls nav pieejams",
+  "about.domain_blocks.no_reason_available": "Iemesls nav norādīts",
   "about.domain_blocks.preamble": "Mastodon parasti ļauj apskatīt saturu un mijiedarboties ar lietotājiem no jebkura cita federācijas servera. Šie ir izņēmumi, kas veikti šajā konkrētajā serverī.",
   "about.domain_blocks.silenced.explanation": "Parasti tu neredzēsi profilus un saturu no šī servera, ja vien tu nepārprotami izvēlēsies to pārskatīt vai sekot.",
   "about.domain_blocks.silenced.title": "Ierobežotās",
@@ -23,55 +23,55 @@
   "account.direct": "Privāta ziņa @{name}",
   "account.disable_notifications": "Pārtraukt man paziņot, kad @{name} publicē ierakstu",
   "account.domain_blocked": "Domēns ir bloķēts",
-  "account.edit_profile": "Labot profilu",
+  "account.edit_profile": "Rediģēt profilu",
   "account.enable_notifications": "Paziņot man, kad @{name} publicē ierakstu",
-  "account.endorse": "Izcelts profilā",
+  "account.endorse": "Izcelt profilā",
   "account.featured_tags.last_status_at": "Beidzamā ziņa {date}",
-  "account.featured_tags.last_status_never": "Publikāciju nav",
-  "account.featured_tags.title": "{name} piedāvātie haštagi",
+  "account.featured_tags.last_status_never": "Ierakstu nav",
+  "account.featured_tags.title": "{name} izceltie tēmturi",
   "account.follow": "Sekot",
   "account.followers": "Sekotāji",
   "account.followers.empty": "Šim lietotājam vēl nav sekotāju.",
-  "account.followers_counter": "{count, plural, one {{counter} Sekotājs} other {{counter} Sekotāji}}",
+  "account.followers_counter": "{count, plural, zero {{counter} sekotāju} one {{counter} sekotājs} other {{counter} sekotāji}}",
   "account.following": "Seko",
   "account.following_counter": "{count, plural, one {{counter} Sekojamais} other {{counter} Sekojamie}}",
   "account.follows.empty": "Šis lietotājs pagaidām nevienam neseko.",
   "account.follows_you": "Seko tev",
-  "account.go_to_profile": "Dodieties uz profilu",
+  "account.go_to_profile": "Doties uz profilu",
   "account.hide_reblogs": "Paslēpt pastiprinātos ierakstus no lietotāja @{name}",
   "account.joined_short": "Pievienojās",
   "account.languages": "Mainīt abonētās valodas",
   "account.link_verified_on": "Šīs saites piederība ir pārbaudīta {date}",
   "account.locked_info": "Šī konta privātuma statuss ir slēgts. Īpašnieks izskatīs, kurš viņam drīkst sekot.",
   "account.media": "Multivide",
-  "account.mention": "Piemin @{name}",
+  "account.mention": "Pieminēt @{name}",
   "account.moved_to": "{name} norādīja, ka viņu jaunais konts tagad ir:",
   "account.mute": "Apklusināt @{name}",
   "account.mute_notifications": "Nerādīt paziņojumus no @{name}",
-  "account.muted": "Noklusināts",
+  "account.muted": "Apklusināts",
   "account.open_original_page": "Atvērt oriģinālo lapu",
-  "account.posts": "Ziņas",
-  "account.posts_with_replies": "Ziņas un atbildes",
-  "account.report": "Ziņot par lietotāju @{name}",
+  "account.posts": "Ieraksti",
+  "account.posts_with_replies": "Ieraksti un atbildes",
+  "account.report": "Sūdzēties par @{name}",
   "account.requested": "Gaidām apstiprinājumu. Nospied lai atceltu sekošanas pieparasījumu",
   "account.share": "Dalīties ar @{name} profilu",
   "account.show_reblogs": "Parādīt @{name} pastiprinātos ierakstus",
-  "account.statuses_counter": "{count, plural, one {{counter} ziņa} other {{counter} ziņas}}",
+  "account.statuses_counter": "{count, plural, zero {{counter} ierakstu} one {{counter} ieraksts} other {{counter} ieraksti}}",
   "account.unblock": "Atbloķēt lietotāju @{name}",
   "account.unblock_domain": "Atbloķēt domēnu {domain}",
   "account.unblock_short": "Atbloķēt",
-  "account.unendorse": "Neattēlot profilā",
+  "account.unendorse": "Neizcelt profilā",
   "account.unfollow": "Pārstāt sekot",
   "account.unmute": "Noņemt apklusinājumu @{name}",
-  "account.unmute_notifications": "Rādīt paziņojumus no lietotāja @{name}",
-  "account.unmute_short": "Ieslēgt skaņu",
+  "account.unmute_notifications": "Rādīt paziņojumus no @{name}",
+  "account.unmute_short": "Noņemt apklusinājumu",
   "account_note.placeholder": "Noklikšķiniet, lai pievienotu piezīmi",
   "admin.dashboard.daily_retention": "Lietotāju saglabāšanas rādītājs dienā pēc reģistrēšanās",
   "admin.dashboard.monthly_retention": "Lietotāju saglabāšanas rādītājs mēnesī pēc reģistrēšanās",
   "admin.dashboard.retention.average": "Vidēji",
   "admin.dashboard.retention.cohort": "Reģistrēšanās mēnesis",
   "admin.dashboard.retention.cohort_size": "Jauni lietotāji",
-  "alert.rate_limited.message": "Lūdzu, mēģini vēlreiz pāc {retry_time, time, medium}.",
+  "alert.rate_limited.message": "Lūdzu, mēģini vēlreiz pēc {retry_time, time, medium}.",
   "alert.rate_limited.title": "Biežums ierobežots",
   "alert.unexpected.message": "Radās negaidīta kļūda.",
   "alert.unexpected.title": "Ups!",
@@ -81,26 +81,26 @@
   "autosuggest_hashtag.per_week": "{count} nedēļā",
   "boost_modal.combo": "Nospied {combo}, lai nākamreiz šo izlaistu",
   "bundle_column_error.copy_stacktrace": "Kopēt kļūdu ziņojumu",
-  "bundle_column_error.error.body": "Pieprasīto lapu nevarēja atveidot. Tas varētu būt saistīts ar kļūdu mūsu kodā vai pārlūkprogrammas saderības problēma.",
-  "bundle_column_error.error.title": "Ak, nē!",
+  "bundle_column_error.error.body": "Pieprasīto lapu nevarēja atveidot. Tas varētu būt saistīts ar kļūdu mūsu kodā, vai tā ir pārlūkprogrammas saderības problēma.",
+  "bundle_column_error.error.title": "Ak vai!",
   "bundle_column_error.network.body": "Mēģinot ielādēt šo lapu, radās kļūda. Tas varētu būt saistīts ar īslaicīgu interneta savienojuma vai šī servera problēmu.",
   "bundle_column_error.network.title": "Tīkla kļūda",
-  "bundle_column_error.retry": "Mēģini vēlreiz",
+  "bundle_column_error.retry": "Mēģināt vēlreiz",
   "bundle_column_error.return": "Atgriezties",
   "bundle_column_error.routing.body": "Pieprasīto lapu nevarēja atrast. Vai esi pārliecināts, ka URL adreses joslā ir pareizs?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Aizvērt",
   "bundle_modal_error.message": "Kaut kas nogāja greizi, ielādējot šo komponenti.",
-  "bundle_modal_error.retry": "Mēģini vēlreiz",
+  "bundle_modal_error.retry": "Mēģināt vēlreiz",
   "closed_registrations.other_server_instructions": "Tā kā Mastodon ir decentralizēts, tu vari izveidot kontu citā serverī un joprojām mijiedarboties ar šo.",
-  "closed_registrations_modal.description": "Pašlaik nav iespējams izveidot kontu domēnā {domain}, taču, lūdzu, ņem vērā, ka, lai izmantotu Mastodon, tev nav nepieciešams konts tieši domēnā {domain}.",
+  "closed_registrations_modal.description": "Pašlaik nav iespējams izveidot kontu domēnā {domain}, taču ņem vērā, ka tev nav nepieciešams konts tieši domēnā {domain}, lai izmantotu Mastodon.",
   "closed_registrations_modal.find_another_server": "Atrast citu serveri",
-  "closed_registrations_modal.preamble": "Mastodon ir decentralizēts, tāpēc neatkarīgi no tā, kur tu izveido savu kontu, varēsit sekot līdzi un sazināties ar ikvienu šajā serverī. Tu pat vari vadīt to pats!",
+  "closed_registrations_modal.preamble": "Mastodon ir decentralizēts, tāpēc neatkarīgi no tā, kur tu izveido savu kontu, varēsi sekot līdzi un sazināties ar ikvienu šajā serverī. Tu pat vari vadīt to pats!",
   "closed_registrations_modal.title": "Reģistrēšanās Mastodon",
   "column.about": "Par",
   "column.blocks": "Bloķētie lietotāji",
   "column.bookmarks": "Grāmatzīmes",
-  "column.community": "Vietējā ziņu līnija",
+  "column.community": "Vietējā laika līnija",
   "column.direct": "Privātie ziņojumi",
   "column.directory": "Pārlūkot profilus",
   "column.domain_blocks": "Bloķētie domēni",
@@ -111,11 +111,11 @@
   "column.mutes": "Apklusinātie lietotāji",
   "column.notifications": "Paziņojumi",
   "column.pins": "Piespraustie ziņojumi",
-  "column.public": "Apvienotā ziņu lenta",
+  "column.public": "Apvienotā laika līnija",
   "column_back_button.label": "Atpakaļ",
   "column_header.hide_settings": "Paslēpt iestatījumus",
-  "column_header.moveLeft_settings": "Pārvietot kolonu pa kreisi",
-  "column_header.moveRight_settings": "Pārvietot kolonu pa labi",
+  "column_header.moveLeft_settings": "Pārvietot kolonnu pa kreisi",
+  "column_header.moveRight_settings": "Pārvietot kolonnu pa labi",
   "column_header.pin": "Piespraust",
   "column_header.show_settings": "Rādīt iestatījumus",
   "column_header.unpin": "Atspraust",
@@ -127,7 +127,7 @@
   "compose.language.search": "Meklēt valodas...",
   "compose_form.direct_message_warning_learn_more": "Uzzināt vairāk",
   "compose_form.encryption_warning": "Ziņas vietnē Mastodon nav pilnībā šifrētas. Nedalies ar sensitīvu informāciju caur Mastodon.",
-  "compose_form.hashtag_warning": "Ziņojumu nebūs iespējams atrast zem haštagiem jo tas nav publisks. Tikai publiskos ziņojumus ir iespējams meklēt pēc tiem.",
+  "compose_form.hashtag_warning": "Šo ziņu nebūs iespējams atrast tēmturos, jo tā ir nerindota. Tēmturos ir redzamas tikai publiskas ziņas.",
   "compose_form.lock_disclaimer": "Tavs konts nav {locked}. Ikviens var Tev sekot lai apskatītu tikai sekotājiem paredzētos ziņojumus.",
   "compose_form.lock_disclaimer.lock": "slēgts",
   "compose_form.placeholder": "Kas tev padomā?",
@@ -135,41 +135,41 @@
   "compose_form.poll.duration": "Aptaujas ilgums",
   "compose_form.poll.option_placeholder": "Izvēle Nr. {number}",
   "compose_form.poll.remove_option": "Noņemt šo izvēli",
-  "compose_form.poll.switch_to_multiple": "Maini aptaujas veidu, lai atļautu vairākas izvēles",
-  "compose_form.poll.switch_to_single": "Maini aptaujas veidu, lai atļautu vienu izvēli",
+  "compose_form.poll.switch_to_multiple": "Mainīt aptaujas veidu, lai atļautu vairākas izvēles",
+  "compose_form.poll.switch_to_single": "Mainīt aptaujas veidu, lai atļautu vienu izvēli",
   "compose_form.publish": "Publicēt",
   "compose_form.publish_form": "Publicēt",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.save_changes": "Saglabāt izmaiņas",
   "compose_form.sensitive.hide": "{count, plural, one {Atzīmēt multividi kā sensitīvu} other {Atzīmēt multivides kā sensitīvas}}",
   "compose_form.sensitive.marked": "{count, plural, one {Multivide ir atzīmēta kā sensitīva} other {Multivides ir atzīmētas kā sensitīvas}}",
-  "compose_form.sensitive.unmarked": "{count, plural, one {Multivide nav atzīmēts kā sensitīva} other {Multivides nav atzīmētas kā sensitīvas}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Multivide nav atzīmēta kā sensitīva} other {Multivides nav atzīmētas kā sensitīvas}}",
   "compose_form.spoiler.marked": "Noņemt satura brīdinājumu",
   "compose_form.spoiler.unmarked": "Pievienot satura brīdinājumu",
   "compose_form.spoiler_placeholder": "Ieraksti savu brīdinājumu šeit",
   "confirmation_modal.cancel": "Atcelt",
-  "confirmations.block.block_and_report": "Bloķēt un ziņot",
+  "confirmations.block.block_and_report": "Bloķēt un sūdzēties",
   "confirmations.block.confirm": "Bloķēt",
-  "confirmations.block.message": "Vai tiešām vēlies bloķēt lietotāju {name}?",
+  "confirmations.block.message": "Vai tiešām vēlies bloķēt {name}?",
   "confirmations.cancel_follow_request.confirm": "Atsaukt pieprasījumu",
   "confirmations.cancel_follow_request.message": "Vai tiešām vēlies atsaukt pieprasījumu sekot {name}?",
   "confirmations.delete.confirm": "Dzēst",
-  "confirmations.delete.message": "Vai tiešām vēlaties dzēst šo ziņu?",
+  "confirmations.delete.message": "Vai tiešām vēlies dzēst šo ziņu?",
   "confirmations.delete_list.confirm": "Dzēst",
   "confirmations.delete_list.message": "Vai tiešam vēlies neatgriezeniski dzēst šo sarakstu?",
-  "confirmations.discard_edit_media.confirm": "Izmest",
-  "confirmations.discard_edit_media.message": "Vai tev ir nesaglabātas izmaiņas multivides aprakstā vai priekšskatījumā, vai tomēr atmest tās?",
+  "confirmations.discard_edit_media.confirm": "Atmest",
+  "confirmations.discard_edit_media.message": "Tev ir nesaglabātas izmaiņas multivides aprakstā vai priekšskatījumā. Vēlies tās atmest?",
   "confirmations.domain_block.confirm": "Bloķēt visu domēnu",
-  "confirmations.domain_block.message": "Vai tu tiešām, tiešam vēlies bloķēt visu domēnu {domain}? Lielākajā daļā gadījumu pietiek ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.",
+  "confirmations.domain_block.message": "Vai tu tiešām vēlies bloķēt visu domēnu {domain}? Parasti pietiek, ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.",
   "confirmations.logout.confirm": "Iziet",
   "confirmations.logout.message": "Vai tiešām vēlies izrakstīties?",
   "confirmations.mute.confirm": "Apklusināt",
   "confirmations.mute.explanation": "Šādi no viņiem tiks slēptas ziņas un ziņas, kurās viņi tiek pieminēti, taču viņi joprojām varēs redzēt tavas ziņas un sekot tev.",
   "confirmations.mute.message": "Vai tiešām vēlies apklusināt {name}?",
   "confirmations.redraft.confirm": "Dzēst un pārrakstīt",
-  "confirmations.redraft.message": "Vai tiešām vēlies dzēst un pārrakstīt šo ierakstu? Favorīti un paceltie ieraksti tiks dzēsti, kā arī atbildes tiks atsaistītas no šī ieraksta.",
+  "confirmations.redraft.message": "Vai tiešām vēlies dzēst un pārrakstīt šo ierakstu? Favorīti un pastiprinātie ieraksti tiks dzēsti, un atbildes tiks atsaistītas no šī ieraksta.",
   "confirmations.reply.confirm": "Atbildēt",
-  "confirmations.reply.message": "Atbildot tagad tava ziņa ko šobrīd raksti tiks pārrakstīta. Vai tiešām vēlies turpināt?",
+  "confirmations.reply.message": "Ja tagad atbildēsi, tavs ziņas uzmetums tiks dzēsts. Vai tiešām vēlies turpināt?",
   "confirmations.unfollow.confirm": "Pārstāt sekot",
   "confirmations.unfollow.message": "Vai tiešam vairs nevēlies sekot lietotājam {name}?",
   "conversation.delete": "Dzēst sarunu",
@@ -181,16 +181,16 @@
   "directory.federated": "No pazīstamas federācijas",
   "directory.local": "Tikai no {domain}",
   "directory.new_arrivals": "Jaunpienācēji",
-  "directory.recently_active": "Nesen aktīvs",
+  "directory.recently_active": "Nesen aktīvie",
   "disabled_account_banner.account_settings": "Konta iestatījumi",
-  "disabled_account_banner.text": "Jūsu konts {disabledAccount} pašlaik ir atspējots.",
+  "disabled_account_banner.text": "Tavs konts {disabledAccount} pašlaik ir atspējots.",
   "dismissable_banner.community_timeline": "Šīs ir jaunākās publiskās ziņas no personām, kuru kontus mitina {domain}.",
   "dismissable_banner.dismiss": "Atcelt",
   "dismissable_banner.explore_links": "Par šiem jaunumiem šobrīd runā cilvēki šajā un citos decentralizētā tīkla serveros.",
   "dismissable_banner.explore_statuses": "Šīs ziņas no šī un citiem decentralizētajā tīkla serveriem šobrīd gūst panākumus šajā serverī.",
   "dismissable_banner.explore_tags": "Šie tēmturi šobrīd kļūst arvien populārāki cilvēku vidū šajā un citos decentralizētā tīkla serveros.",
   "dismissable_banner.public_timeline": "Šīs ir jaunākās publiskās ziņas no cilvēkiem šajā un citos decentralizētā tīkla serveros, par kuriem šis serveris zina.",
-  "embed.instructions": "Iestrādā šo ziņu savā mājaslapā, kopējot zemāk redzmo kodu.",
+  "embed.instructions": "Iestrādā šo ziņu savā mājaslapā, kopējot zemāk redzamo kodu.",
   "embed.preview": "Tas izskatīsies šādi:",
   "emoji_button.activity": "Aktivitāte",
   "emoji_button.clear": "Notīrīt",
@@ -210,24 +210,24 @@
   "empty_column.account_suspended": "Konta darbība ir apturēta",
   "empty_column.account_timeline": "Šeit ziņojumu nav!",
   "empty_column.account_unavailable": "Profils nav pieejams",
-  "empty_column.blocks": "Patreiz tu neesi nevienu bloķējis.",
-  "empty_column.bookmarked_statuses": "Patreiz tev nav neviena grāmatzīmēm pievienota ieraksta. Kad tādu pievienosi, tas parādīsies šeit.",
-  "empty_column.community": "Vietējā ziņu lenta ir tukša. Uzraksti kaut ko publiski, lai viss notiktu!",
-  "empty_column.direct": "Patrez tev nav privātu ziņu. Tiklīdz tādu nosūtīsi vai saņemsi, tās parādīsies šeit.",
+  "empty_column.blocks": "Pašreiz tu neesi nevienu bloķējis.",
+  "empty_column.bookmarked_statuses": "Pašreiz tev nav neviena grāmatzīmēm pievienota ieraksta. Kad tādu pievienosi, tas parādīsies šeit.",
+  "empty_column.community": "Vietējā laika līnija ir tukša. Uzraksti kaut ko publiski, lai viss notiktu!",
+  "empty_column.direct": "Pašreiz tev nav privātu ziņu. Tiklīdz tādu nosūtīsi vai saņemsi, tās parādīsies šeit.",
   "empty_column.domain_blocks": "Vēl nav neviena bloķēta domēna.",
   "empty_column.explore_statuses": "Pašlaik nekā aktuāla nav. Pārbaudi vēlāk!",
   "empty_column.favourited_statuses": "Patreiz tev nav neviena izceltā ieraksta. Kad kādu izcelsi, tas parādīsies šeit.",
-  "empty_column.favourites": "Neviens šo ziņojumu vel nav izcēlis. Kad būs, tie parādīsies šeit.",
-  "empty_column.follow_recommendations": "Šķiet, ka tev nevarēja ģenerēt ieteikumus. Vari mēģināt izmantot meklēšanu, lai meklētu cilvēkus, kurus tu varētu pazīt, vai izpētīt populārākās atsauces.",
+  "empty_column.favourites": "Neviens šo ziņojumu vel nav izcēlis. Kad kāds to izdarīs, tas parādīsies šeit.",
+  "empty_column.follow_recommendations": "Neizdevās ģenerēt tev pielāgotus ieteikumus. Vari mēģināt izmantot meklēšanu, lai meklētu cilvēkus, kurus tu varētu pazīt, vai izpētīt populārākos tēmturus.",
   "empty_column.follow_requests": "Šobrīd neviens nav pieteicies tev sekot. Kad kāds pieteiksies tas parādīsies šeit.",
   "empty_column.hashtag": "Ar šo tēmturi nekas nav atrodams.",
-  "empty_column.home": "Tava vietējā ziņu lenta ir tukša! Lai to aizpildītu, piesekojies vairāk cilvēkiem. {suggestions}",
+  "empty_column.home": "Tava mājas laika līnija ir tukša! Lai to aizpildītu, pieseko vairāk cilvēkiem. {suggestions}",
   "empty_column.home.suggestions": "Apskatīt dažus ieteikumus",
-  "empty_column.list": "Šis saraksts patreiz ir tukšs. Kad šī saraksta dalībnieki publicēs jaunas ziņas, tās parādīsies šeit.",
-  "empty_column.lists": "Patreiz tev nav neviena saraksta. Kad tādu izveidosi, tas parādīsies šeit.",
+  "empty_column.list": "Šis saraksts pašreiz ir tukšs. Kad šī saraksta dalībnieki publicēs jaunas ziņas, tās parādīsies šeit.",
+  "empty_column.lists": "Pašreiz tev nav neviena saraksta. Kad tādu izveidosi, tas parādīsies šeit.",
   "empty_column.mutes": "Neviens lietotājs vēl nav apklusināts.",
   "empty_column.notifications": "Tev vēl nav paziņojumu. Kad citi cilvēki ar tevi mijiedarbosies, tu to redzēsi šeit.",
-  "empty_column.public": "Šeit vēl nekā nav! Ieraksti ko publiski vai sāc sekot lietotājiem no citiem serveriem, lai veidotu saturu",
+  "empty_column.public": "Šeit vēl nekā nav! Ieraksti ko publiski vai pieseko lietotājiem no citiem serveriem",
   "error.unexpected_crash.explanation": "Koda kļūdas vai pārlūkprogrammas saderības problēmas dēļ šo lapu nevarēja parādīt pareizi.",
   "error.unexpected_crash.explanation_addons": "Šo lapu nevarēja parādīt pareizi. Šo kļūdu, iespējams, izraisīja pārlūkprogrammas papildinājums vai automātiskās tulkošanas rīki.",
   "error.unexpected_crash.next_steps": "Mēģini atsvaidzināt lapu. Ja tas nepalīdz, iespējams, varēsi lietot Mastodon, izmantojot citu pārlūkprogrammu vai vietējo lietotni.",
@@ -242,7 +242,7 @@
   "filter_modal.added.expired_title": "Filtrs beidzies!",
   "filter_modal.added.review_and_configure": "Lai pārskatītu un tālāk konfigurētu šo filtru kategoriju, dodies uz {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Filtra iestatījumi",
-  "filter_modal.added.settings_link": "iestatījumu lapa",
+  "filter_modal.added.settings_link": "iestatījumu lapu",
   "filter_modal.added.short_explanation": "Šī ziņa ir pievienota šai filtra kategorijai: {title}.",
   "filter_modal.added.title": "Filtrs pievienots!",
   "filter_modal.select_filter.context_mismatch": "neattiecas uz šo kontekstu",
@@ -252,7 +252,7 @@
   "filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu",
   "filter_modal.select_filter.title": "Filtrēt šo ziņu",
   "filter_modal.title.status": "Filtrēt ziņu",
-  "follow_recommendations.done": "Izpildīts",
+  "follow_recommendations.done": "Darīts",
   "follow_recommendations.heading": "Seko cilvēkiem, no kuriem vēlies redzēt ziņas! Šeit ir daži ieteikumi.",
   "follow_recommendations.lead": "Ziņas no cilvēkiem, kuriem seko, mājas plūsmā tiks parādītas hronoloģiskā secībā. Nebaidies kļūdīties, tu tikpat viegli vari pārtraukt sekot cilvēkiem jebkurā laikā!",
   "follow_request.authorize": "Autorizēt",
@@ -275,18 +275,18 @@
   "hashtag.column_settings.tag_mode.all": "Visi no šiem",
   "hashtag.column_settings.tag_mode.any": "Kāds no šiem",
   "hashtag.column_settings.tag_mode.none": "Neviens no šiem",
-  "hashtag.column_settings.tag_toggle": "Iekļaut šai kolonnai papildu tagus",
-  "hashtag.follow": "Seko mirkļbirkai",
-  "hashtag.unfollow": "Pārstāj sekot mirkļbirkai",
+  "hashtag.column_settings.tag_toggle": "Pievienot kolonnai papildu tēmturus",
+  "hashtag.follow": "Sekot tēmturim",
+  "hashtag.unfollow": "Pārstāt sekot tēmturim",
   "home.column_settings.basic": "Pamata",
   "home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus",
   "home.column_settings.show_replies": "Rādīt atbildes",
   "home.hide_announcements": "Slēpt paziņojumus",
   "home.show_announcements": "Rādīt paziņojumus",
-  "interaction_modal.description.favourite": "Izmantojot kontu pakalpojumā Mastodon, vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē un saglabā vēlākai lasīšanai.",
-  "interaction_modal.description.follow": "Izmantojot Mastodon kontu, tu vari sekot lietotājam {name}, lai saņemtu viņa ziņas savā mājas plūsmā.",
-  "interaction_modal.description.reblog": "Izmantojot Mastodon kontu, tu vari pastiprināt šo ierakstu, lai kopīgotu to ar saviem sekotājiem.",
-  "interaction_modal.description.reply": "Izmantojot kontu Mastodon, tu vari atbildēt uz šo ziņu.",
+  "interaction_modal.description.favourite": "Ar Mastodon kontu tu vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē, un saglabātu to vēlākai lasīšanai.",
+  "interaction_modal.description.follow": "Ar Mastodon kontu tu vari sekot {name}, lai saņemtu viņu ziņas savā mājas plūsmā.",
+  "interaction_modal.description.reblog": "Ar Mastodon kontu tu vari pastiprināt šo ierakstu, lai kopīgotu to ar saviem sekotājiem.",
+  "interaction_modal.description.reply": "Ar Mastodon kontu tu vari atbildēt uz šo ziņu.",
   "interaction_modal.on_another_server": "Citā serverī",
   "interaction_modal.on_this_server": "Šajā serverī",
   "interaction_modal.other_server_instructions": "Nokopē un ielīmē šo URL savas Mastodon lietotnes vai Mastodon tīmekļa vietnes meklēšanas laukā.",
@@ -309,12 +309,12 @@
   "keyboard_shortcuts.enter": "Atvērt ziņu",
   "keyboard_shortcuts.favourite": "Pievienot izlasei",
   "keyboard_shortcuts.favourites": "Atvērt izlašu sarakstu",
-  "keyboard_shortcuts.federated": "Atvērt apvienoto ziņu lenti",
-  "keyboard_shortcuts.heading": "Klaviatūras saīsnes",
-  "keyboard_shortcuts.home": "Atvērt vietējo ziņu lenti",
+  "keyboard_shortcuts.federated": "Atvērt apvienoto laika līniju",
+  "keyboard_shortcuts.heading": "Īsinājumtaustiņi",
+  "keyboard_shortcuts.home": "Atvērt mājas laika līniju",
   "keyboard_shortcuts.hotkey": "Ātrais taustiņš",
   "keyboard_shortcuts.legend": "Parādīt šo leģendu",
-  "keyboard_shortcuts.local": "Atvērt vietējo ziņu lenti",
+  "keyboard_shortcuts.local": "Atvērt vietējo laika līniju",
   "keyboard_shortcuts.mention": "Pieminēt autoru",
   "keyboard_shortcuts.muted": "Atvērt apklusināto lietotāju sarakstu",
   "keyboard_shortcuts.my_profile": "Atvērt savu profilu",
@@ -325,17 +325,17 @@
   "keyboard_shortcuts.reply": "Atbildēt",
   "keyboard_shortcuts.requests": "Atvērt sekošanas pieprasījumu sarakstu",
   "keyboard_shortcuts.search": "Fokusēt meklēšanas joslu",
-  "keyboard_shortcuts.spoilers": "Rādīt/slēpt CW lauku",
+  "keyboard_shortcuts.spoilers": "Rādīt/slēpt satura brīdinājumu lauku",
   "keyboard_shortcuts.start": "Atvērt kolonnu “Darba sākšana”",
-  "keyboard_shortcuts.toggle_hidden": "Rādīt/slēpt tekstu aiz CW",
+  "keyboard_shortcuts.toggle_hidden": "Rādīt/slēpt tekstu aiz satura brīdinājuma",
   "keyboard_shortcuts.toggle_sensitivity": "Rādīt/slēpt multividi",
-  "keyboard_shortcuts.toot": "Sāc jaunu ziņu",
-  "keyboard_shortcuts.unfocus": "Atfokusēt teksta veidošanu/meklēšanu",
+  "keyboard_shortcuts.toot": "Sākt jaunu ziņu",
+  "keyboard_shortcuts.unfocus": "Atfokusēt veidojamā teksta/meklēšanas lauku",
   "keyboard_shortcuts.up": "Pārvietot sarakstā uz augšu",
   "lightbox.close": "Aizvērt",
   "lightbox.compress": "Saspiest attēla skata lodziņu",
   "lightbox.expand": "Izvērst attēla skata lodziņu",
-  "lightbox.next": "Tālāk",
+  "lightbox.next": "Nākamais",
   "lightbox.previous": "Iepriekšējais",
   "limited_account_hint.action": "Tik un tā rādīt profilu",
   "limited_account_hint.title": "{domain} moderatori ir paslēpuši šo profilu.",
@@ -346,25 +346,25 @@
   "lists.edit.submit": "Mainīt virsrakstu",
   "lists.new.create": "Pievienot sarakstu",
   "lists.new.title_placeholder": "Jaunais saraksta nosaukums",
-  "lists.replies_policy.followed": "Jebkurš sekots lietotājs",
-  "lists.replies_policy.list": "Saraksta dalībnieki",
+  "lists.replies_policy.followed": "Jebkuram sekotajam lietotājam",
+  "lists.replies_policy.list": "Saraksta dalībniekiem",
   "lists.replies_policy.none": "Nevienam",
-  "lists.replies_policy.title": "Rādīt atbildes uz:",
+  "lists.replies_policy.title": "Rādīt atbildes:",
   "lists.search": "Meklēt starp cilvēkiem, kuriem tu seko",
   "lists.subheading": "Tavi saraksti",
   "load_pending": "{count, plural, one {# jauna lieta} other {# jaunas lietas}}",
   "loading_indicator.label": "Ielādē...",
-  "media_gallery.toggle_visible": "{number, plural, one {Slēpt # attēlu} other {Slēpt # attēlus}}",
+  "media_gallery.toggle_visible": "{number, plural, one {Slēpt attēlu} other {Slēpt attēlus}}",
   "missing_indicator.label": "Nav atrasts",
   "missing_indicator.sublabel": "Šo resursu nevarēja atrast",
-  "moved_to_account_banner.text": "Jūsu konts {disabledAccount} pašlaik ir atspējots, jo esat pārcēlies uz kontu {movedToAccount}.",
+  "moved_to_account_banner.text": "Tavs konts {disabledAccount} pašlaik ir atspējots, jo pārcēlies uz kontu {movedToAccount}.",
   "mute_modal.duration": "Ilgums",
   "mute_modal.hide_notifications": "Slēpt paziņojumus no šī lietotāja?",
-  "mute_modal.indefinite": "Nenoteikts",
+  "mute_modal.indefinite": "Beztermiņa",
   "navigation_bar.about": "Par",
   "navigation_bar.blocks": "Bloķētie lietotāji",
   "navigation_bar.bookmarks": "Grāmatzīmes",
-  "navigation_bar.community_timeline": "Vietējā ziņu lenta",
+  "navigation_bar.community_timeline": "Vietējā laika līnija",
   "navigation_bar.compose": "Veidot jaunu ziņu",
   "navigation_bar.direct": "Privātie ziņojumi",
   "navigation_bar.discover": "Atklāt",
@@ -372,33 +372,33 @@
   "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.filters": "Apklusinātie vārdi",
   "navigation_bar.follow_requests": "Sekošanas pieprasījumi",
   "navigation_bar.follows_and_followers": "Sekojamie un sekotāji",
   "navigation_bar.lists": "Saraksti",
   "navigation_bar.logout": "Iziet",
   "navigation_bar.mutes": "Apklusinātie lietotāji",
-  "navigation_bar.personal": "Personīgi",
+  "navigation_bar.personal": "Personīgie",
   "navigation_bar.pins": "Piespraustās ziņas",
   "navigation_bar.preferences": "Iestatījumi",
-  "navigation_bar.public_timeline": "Apvienotā ziņu lenta",
+  "navigation_bar.public_timeline": "Apvienotā laika līnija",
   "navigation_bar.search": "Meklēt",
   "navigation_bar.security": "Drošība",
   "not_signed_in_indicator.not_signed_in": "Lai piekļūtu šim resursam, tev ir jāpierakstās.",
-  "notification.admin.report": "{name} ziņoja par {target}",
-  "notification.admin.sign_up": "{name} ir pierakstījies",
-  "notification.favourite": "{name} izcēla tavu ziņu",
+  "notification.admin.report": "{name} sūdzējās par {target}",
+  "notification.admin.sign_up": "{name} pierakstījās",
+  "notification.favourite": "{name} patika tava ziņa",
   "notification.follow": "{name} uzsāka tev sekot",
-  "notification.follow_request": "{name} vēlas tev sekot",
+  "notification.follow_request": "{name} nosūtīja tev sekošanas pieprasījumu",
   "notification.mention": "{name} pieminēja tevi",
-  "notification.own_poll": "Tava aptauja ir pabeigta",
-  "notification.poll": "Aprauja, kurā tu piedalījies, ir pabeigta",
+  "notification.own_poll": "Tava aptauja ir noslēgusies",
+  "notification.poll": "Aptauja, kurā tu piedalījies, ir noslēgusies",
   "notification.reblog": "{name} pastiprināja tavu ierakstu",
   "notification.status": "{name} tikko publicēja",
-  "notification.update": "{name} ir rediģējis rakstu",
+  "notification.update": "{name} rediģēja ierakstu",
   "notifications.clear": "Notīrīt paziņojumus",
   "notifications.clear_confirmation": "Vai tiešām vēlies neatgriezeniski notīrīt visus savus paziņojumus?",
-  "notifications.column_settings.admin.report": "Jauni ziņojumi:",
+  "notifications.column_settings.admin.report": "Jaunas sūdzības:",
   "notifications.column_settings.admin.sign_up": "Jaunas pierakstīšanās:",
   "notifications.column_settings.alert": "Darbvirsmas paziņojumi",
   "notifications.column_settings.favourite": "Izlases:",
@@ -406,14 +406,14 @@
   "notifications.column_settings.filter_bar.category": "Ātro filtru josla",
   "notifications.column_settings.filter_bar.show_bar": "Rādīt filtru joslu",
   "notifications.column_settings.follow": "Jauni sekotāji:",
-  "notifications.column_settings.follow_request": "Jauni sekotāju pieprasījumi:",
+  "notifications.column_settings.follow_request": "Jauni sekošanas pieprasījumi:",
   "notifications.column_settings.mention": "Pieminējumi:",
   "notifications.column_settings.poll": "Aptaujas rezultāti:",
   "notifications.column_settings.push": "Uznirstošie paziņojumi",
   "notifications.column_settings.reblog": "Pastiprinātie ieraksti:",
   "notifications.column_settings.show": "Rādīt kolonnā",
   "notifications.column_settings.sound": "Atskaņot skaņu",
-  "notifications.column_settings.status": "Jaunas ziņas:",
+  "notifications.column_settings.status": "Jauni ieraksti:",
   "notifications.column_settings.unread_notifications.category": "Nelasītie paziņojumi",
   "notifications.column_settings.unread_notifications.highlight": "Iezīmēt nelasītos paziņojumus",
   "notifications.column_settings.update": "Labojumi:",
@@ -431,19 +431,19 @@
   "notifications.permission_denied_alert": "Darbvirsmas paziņojumus nevar iespējot, jo pārlūkprogrammai atļauja tika iepriekš atteikta",
   "notifications.permission_required": "Darbvirsmas paziņojumi nav pieejami, jo nav piešķirta nepieciešamā atļauja.",
   "notifications_permission_banner.enable": "Iespējot darbvirsmas paziņojumus",
-  "notifications_permission_banner.how_to_control": "Lai saņemtu paziņojumus, kad Mastodon nav atvērts, iespējo darbvirsmas paziņojumus. Vari precīzi kontrolēt, kāda veida mijiedarbības ģenerē darbvirsmas paziņojumus, izmantojot iepriekš redzamo pogu {icon}, ja tie ir iespējoti.",
+  "notifications_permission_banner.how_to_control": "Lai saņemtu paziņojumus, kad Mastodon nav atvērts, iespējo darbvirsmas paziņojumus. Vari precīzi kontrolēt, kāda veida mijiedarbības ģenerē darbvirsmas paziņojumus, izmantojot augstāk redzamo pogu {icon}, kad tie būs iespējoti.",
   "notifications_permission_banner.title": "Nekad nepalaid neko garām",
-  "picture_in_picture.restore": "Novietot apakšā",
+  "picture_in_picture.restore": "Novietot atpakaļ",
   "poll.closed": "Pabeigta",
   "poll.refresh": "Atsvaidzināt",
-  "poll.total_people": "{count, plural, one {# persona} other {# cilvēki}}",
-  "poll.total_votes": "{count, plural, one {# balsojums} other {# balsojumi}}",
+  "poll.total_people": "{count, plural, zero {# cilvēku} one {# persona} other {# cilvēki}}",
+  "poll.total_votes": "{count, plural, zero {# balsojumu} one {# balsojums} other {# balsojumi}}",
   "poll.vote": "Balsot",
   "poll.voted": "Tu balsoji par šo atbildi",
-  "poll.votes": "{votes, plural, one {# balss} other {# balsis}}",
+  "poll.votes": "{votes, plural, zero {# balsu} one {# balss} other {# balsis}}",
   "poll_button.add_poll": "Pievienot aptauju",
   "poll_button.remove_poll": "Noņemt aptauju",
-  "privacy.change": "Mainīt ziņas privātumu",
+  "privacy.change": "Mainīt ieraksta privātumu",
   "privacy.direct.long": "Redzama tikai pieminētajiem lietotājiem",
   "privacy.direct.short": "Tikai minētie cilvēki",
   "privacy.private.long": "Redzama tikai sekotājiem",
@@ -453,7 +453,7 @@
   "privacy.unlisted.long": "Redzama visiem, bet izslēgta no satura atklāšanas funkcijām",
   "privacy.unlisted.short": "Nerindota",
   "privacy_policy.last_updated": "Pēdējo reizi atjaunināta {date}",
-  "privacy_policy.title": "Privātuma Politika",
+  "privacy_policy.title": "Privātuma politika",
   "refresh": "Atsvaidzināt",
   "regeneration_indicator.label": "Ielādē…",
   "regeneration_indicator.sublabel": "Tiek gatavota tava plūsma!",
@@ -470,63 +470,63 @@
   "relative_time.today": "šodien",
   "reply_indicator.cancel": "Atcelt",
   "report.block": "Bloķēt",
-  "report.block_explanation": "Tu neredzēsi viņu ziņas. Viņi nevarēs redzēt tavas ziņas vai sekot tev. Viņi varēs pateikt, ka ir bloķēti.",
+  "report.block_explanation": "Tu neredzēsi viņu ziņas. Viņi nevarēs redzēt tavas ziņas vai sekot tev. Viņi varēs saprast, ka ir bloķēti.",
   "report.categories.other": "Citi",
   "report.categories.spam": "Spams",
   "report.categories.violation": "Saturs pārkāpj vienu vai vairākus servera noteikumus",
   "report.category.subtitle": "Izvēlieties labāko atbilstību",
   "report.category.title": "Pastāsti mums, kas notiek ar šo {type}",
-  "report.category.title_account": "profils",
-  "report.category.title_status": "ziņa",
-  "report.close": "Izpildīts",
-  "report.comment.title": "Vai ir vēl kas, tavuprāt, mums būtu jāzina?",
+  "report.category.title_account": "profilu",
+  "report.category.title_status": "ierakstu",
+  "report.close": "Darīts",
+  "report.comment.title": "Vai, tavuprāt, mums vēl būtu kas jāzina?",
   "report.forward": "Pārsūtīt {target}",
-  "report.forward_hint": "Konts ir no cita servera. Vai nosūtīt anonimizētu ziņojuma kopiju arī tam?",
+  "report.forward_hint": "Konts ir no cita servera. Vai nosūtīt anonimizētu sūdzības kopiju arī tam?",
   "report.mute": "Apklusināt",
-  "report.mute_explanation": "Tu neredzēsi viņu ziņas. Viņi joprojām var tev sekot un redzēt tavas ziņas un nezinās, ka viņiem ir izslēgta skaņa.",
-  "report.next": "Nākamais",
+  "report.mute_explanation": "Tu neredzēsi viņu ziņas. Viņi joprojām var tev sekot un redzēt tavas ziņas un nezinās, ka viņi ir apklusināti.",
+  "report.next": "Tālāk",
   "report.placeholder": "Papildu komentāri",
   "report.reasons.dislike": "Man tas nepatīk",
   "report.reasons.dislike_description": "Tas nav kaut kas, ko tu vēlies redzēt",
   "report.reasons.other": "Tas ir kaut kas cits",
-  "report.reasons.other_description": "Šis jautājums neietilpst citās kategorijās",
+  "report.reasons.other_description": "Šī sūdzība neatbilst pārējām kategorijām",
   "report.reasons.spam": "Tas ir spams",
   "report.reasons.spam_description": "Ļaunprātīgas saites, viltus iesaistīšana vai atkārtotas atbildes",
   "report.reasons.violation": "Tas pārkāpj servera noteikumus",
-  "report.reasons.violation_description": "Tu zini, ka tas pārkāpj īpašus noteikumus",
+  "report.reasons.violation_description": "Tu zini, ka tas pārkāpj konkrētus noteikumus",
   "report.rules.subtitle": "Atlasi visus atbilstošos",
   "report.rules.title": "Kuri noteikumi tiek pārkāpti?",
   "report.statuses.subtitle": "Atlasi visus atbilstošos",
-  "report.statuses.title": "Vai ir kādas ziņas, kas atbalsta šo ziņojumu?",
+  "report.statuses.title": "Vai ir kādas ziņas, kas atbalsta šo sūdzību?",
   "report.submit": "Iesniegt",
-  "report.target": "Ziņošana par: {target}",
+  "report.target": "Sūdzība par {target}",
   "report.thanks.take_action": "Tālāk ir norādītas iespējas, kā kontrolēt Mastodon redzamo saturu:",
   "report.thanks.take_action_actionable": "Kamēr mēs to izskatām, tu vari veikt darbības pret @{name}:",
   "report.thanks.title": "Vai nevēlies to redzēt?",
   "report.thanks.title_actionable": "Paldies, ka ziņoji, mēs to izskatīsim.",
   "report.unfollow": "Pārtraukt sekošanu @{name}",
-  "report.unfollow_explanation": "Tu seko šim kontam. Lai vairs neredzētu viņu ziņas savā ziņu plūsmā, pārtrauc viņiem sekot.",
-  "report_notification.attached_statuses": "Pievienoti {count, plural,one {{count} sūtījums} other {{count} sūtījumi}}",
+  "report.unfollow_explanation": "Tu seko šim kontam. Lai vairs neredzētu viņu ziņas savā mājas plūsmā, pārtrauc viņiem sekot.",
+  "report_notification.attached_statuses": "{count, plural, zero {Pievienota {count} ierakstu} one {Pievienots {count} ieraksts} other {Pievienoti {count} ieraksti}}",
   "report_notification.categories.other": "Cita",
   "report_notification.categories.spam": "Spams",
   "report_notification.categories.violation": "Noteikumu pārkāpums",
-  "report_notification.open": "Atvērt ziņojumu",
+  "report_notification.open": "Atvērt sūdzību",
   "search.placeholder": "Meklēšana",
-  "search.search_or_paste": "Meklēt vai iekopēt URL",
+  "search.search_or_paste": "Meklē vai iekopē URL",
   "search_popout.search_format": "Paplašināts meklēšanas formāts",
-  "search_popout.tips.full_text": "Vienkāršs teksts atgriež ziņas, kuras esi rakstījis, atzīmējis kā favorītus, pastiprinājis vai pieminējis, kā arī atbilstošie lietotājvārdi, parādāmie vārdi un tēmturi.",
-  "search_popout.tips.hashtag": "mirkļbirka",
-  "search_popout.tips.status": "ziņa",
-  "search_popout.tips.text": "Vienkāršs teksts atgriež atbilstošus parādāmos vārdus, lietotājvārdus un mirkļbirkas",
+  "search_popout.tips.full_text": "Vienkāršs teksts atgriež ierakstus, kurus rakstīji, atzīmēji kā favorītus, pastiprināji vai pieminēji, kā arī atbilstošus lietotājvārdus, parādāmos vārdus un tēmturus.",
+  "search_popout.tips.hashtag": "tēmturis",
+  "search_popout.tips.status": "ieraksts",
+  "search_popout.tips.text": "Vienkāršs teksts atgriež atbilstošus parādāmos vārdus, lietotājvārdus un tēmturus",
   "search_popout.tips.user": "lietotājs",
   "search_results.accounts": "Cilvēki",
   "search_results.all": "Visi",
   "search_results.hashtags": "Tēmturi",
   "search_results.nothing_found": "Nevarēja atrast neko šiem meklēšanas vienumiem",
-  "search_results.statuses": "Ziņas",
+  "search_results.statuses": "Ieraksti",
   "search_results.statuses_fts_disabled": "Šajā Mastodon serverī nav iespējota ziņu meklēšana pēc to satura.",
   "search_results.title": "Meklēt {q}",
-  "search_results.total": "{count, number} {count, plural, one {rezultāts} other {rezultāti}}",
+  "search_results.total": "{count, number} {count, plural, zero {rezultātu} one {rezultāts} other {rezultāti}}",
   "server_banner.about_active_users": "Cilvēki, kas izmantojuši šo serveri pēdējo 30 dienu laikā (aktīvie lietotāji mēnesī)",
   "server_banner.active_users": "aktīvie lietotāji",
   "server_banner.administered_by": "Administrē:",
@@ -535,12 +535,12 @@
   "server_banner.server_stats": "Servera statistika:",
   "sign_in_banner.create_account": "Izveidot kontu",
   "sign_in_banner.sign_in": "Pierakstīties",
-  "sign_in_banner.text": "Pieraksties, lai sekotu profiliem vai atsaucēm, pievienotu izlasei, kopīgotu ziņas un atbildētu uz tām vai mijiedarbotos no sava konta citā serverī.",
+  "sign_in_banner.text": "Pieraksties, lai sekotu profiliem vai atsaucēm, pievienotu ziņas izlasei, kopīgotu ziņas un atbildētu uz tām vai mijiedarbotos no sava konta citā serverī.",
   "status.admin_account": "Atvērt @{name} moderēšanas saskarni",
   "status.admin_status": "Atvērt šo ziņu moderācijas saskarnē",
   "status.block": "Bloķēt @{name}",
   "status.bookmark": "Grāmatzīme",
-  "status.cancel_reblog_private": "Nepastiprināt",
+  "status.cancel_reblog_private": "Noņemt pastiprinājumu",
   "status.cannot_reblog": "Nevar pastiprināt šo ierakstu",
   "status.copy": "Kopēt saiti uz ziņu",
   "status.delete": "Dzēst",
@@ -548,14 +548,14 @@
   "status.direct": "Privāta ziņa @{name}",
   "status.edit": "Rediģēt",
   "status.edited": "Rediģēts {date}",
-  "status.edited_x_times": "Rediģēts {count, plural, one {{count} reize} other {{count} reizes}}",
+  "status.edited_x_times": "Rediģēts {count, plural, one {{count} reizi} other {{count} reizes}}",
   "status.embed": "Iestrādāt",
   "status.favourite": "Patīk",
   "status.filter": "Filtrē šo ziņu",
   "status.filtered": "Filtrēts",
-  "status.hide": "Slēpt",
-  "status.history.created": "{name} izveidots {date}",
-  "status.history.edited": "{name} rediģēts {date}",
+  "status.hide": "Slēpt ierakstu",
+  "status.history.created": "{name} izveidoja {date}",
+  "status.history.edited": "{name} rediģēja {date}",
   "status.load_more": "Ielādēt vairāk",
   "status.media_hidden": "Medijs ir paslēpts",
   "status.mention": "Pieminēt @{name}",
@@ -575,7 +575,7 @@
   "status.replied_to": "Atbildēja {name}",
   "status.reply": "Atbildēt",
   "status.replyAll": "Atbildēt uz tematu",
-  "status.report": "Ziņot par @{name}",
+  "status.report": "Sūdzēties par @{name}",
   "status.sensitive_warning": "Sensitīvs saturs",
   "status.share": "Kopīgot",
   "status.show_filter_reason": "Tomēr rādīt",
@@ -585,53 +585,53 @@
   "status.show_more_all": "Rādīt vairāk visiem",
   "status.show_original": "Rādīt oriģinālu",
   "status.translate": "Tulkot",
-  "status.translated_from_with": "Tulkots no {lang} izmantojot {provider}",
+  "status.translated_from_with": "Tulkots no {lang}, izmantojot {provider}",
   "status.uncached_media_warning": "Nav pieejams",
-  "status.unmute_conversation": "Atvērt sarunu",
+  "status.unmute_conversation": "Noņemt sarunas apklusinājumu",
   "status.unpin": "Noņemt no profila",
-  "subscribed_languages.lead": "Pēc izmaiņu veikšanas tavā mājas lapā un saraksta laika skalās tiks rādītas tikai ziņas atlasītajās valodās. Neatlasi nevienu, lai saņemtu ziņas visās valodās.",
+  "subscribed_languages.lead": "Pēc izmaiņu veikšanas tavā mājas un sarakstu laika līnijā tiks rādītas tikai ziņas atlasītajās valodās. Neatlasi nevienu, lai saņemtu ziņas visās valodās.",
   "subscribed_languages.save": "Saglabāt izmaiņas",
   "subscribed_languages.target": "Mainīt abonētās valodas priekš {target}",
   "suggestions.dismiss": "Noraidīt ieteikumu",
   "suggestions.header": "Jūs varētu interesēt arī…",
-  "tabs_bar.federated_timeline": "Federētā",
+  "tabs_bar.federated_timeline": "Apvienotā",
   "tabs_bar.home": "Sākums",
   "tabs_bar.local_timeline": "Vietējā",
   "tabs_bar.notifications": "Paziņojumi",
-  "time_remaining.days": "Atlikušas {number, plural, one {# diena} other {# dienas}}",
-  "time_remaining.hours": "Atlikušas {number, plural, one {# stunda} other {# stundas}}",
-  "time_remaining.minutes": "Atlikušas {number, plural, one {# minūte} other {# minūtes}}",
+  "time_remaining.days": "{number, plural, one {Atlikusi # diena} other {Atlikušas # dienas}}",
+  "time_remaining.hours": "{number, plural, one {Atlikusi # stunda} other {Atlikušas # stundas}}",
+  "time_remaining.minutes": "{number, plural, one {Atlikusi # minūte} other {Atlikušas # minūtes}}",
   "time_remaining.moments": "Atlikuši daži mirkļi",
-  "time_remaining.seconds": "Atlikušas {number, plural, one {# sekunde} other {# sekundes}}",
+  "time_remaining.seconds": "{number, plural, one {Atlikusi # sekunde} other {Atlikušas # sekundes}}",
   "timeline_hint.remote_resource_not_displayed": "{resource} no citiem serveriem nav parādīti.",
   "timeline_hint.resources.followers": "Sekotāji",
-  "timeline_hint.resources.follows": "Seko",
-  "timeline_hint.resources.statuses": "Vecākas ziņas",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} cilvēki}} par {days, plural, one {dienu} other {{days} dienām}}",
-  "trends.trending_now": "Šobrīd tendences",
-  "ui.beforeunload": "Ja pametīsit Mastodonu, jūsu melnraksts tiks zaudēts.",
-  "units.short.billion": "{count}M",
-  "units.short.million": "{count}M",
+  "timeline_hint.resources.follows": "Sekojošie",
+  "timeline_hint.resources.statuses": "Vecāki ieraksti",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} cilvēki}} par {days, plural, one {# dienu} other {{days} dienām}}",
+  "trends.trending_now": "Aktuālās tendences",
+  "ui.beforeunload": "Ja pametīsiet Mastodon, jūsu melnraksts tiks zaudēts.",
+  "units.short.billion": "{count}Mjd",
+  "units.short.million": "{count}Mjn",
   "units.short.thousand": "{count}Tk",
   "upload_area.title": "Velc un nomet, lai augšupielādētu",
   "upload_button.label": "Pievienot bildi, video vai audio datni",
   "upload_error.limit": "Sasniegts datņu augšupielādes ierobežojums.",
   "upload_error.poll": "Datņu augšupielādes aptaujās nav atļautas.",
-  "upload_form.audio_description": "Aprakstiet cilvēkiem ar dzirdes zudumu",
-  "upload_form.description": "Aprakstiet vājredzīgajiem",
+  "upload_form.audio_description": "Pievieno aprakstu cilvēkiem ar dzirdes zudumu",
+  "upload_form.description": "Pievieno aprakstu vājredzīgajiem",
   "upload_form.description_missing": "Apraksts nav pievienots",
   "upload_form.edit": "Rediģēt",
   "upload_form.thumbnail": "Nomainīt sīktēlu",
   "upload_form.undo": "Dzēst",
-  "upload_form.video_description": "Aprakstiet cilvēkiem ar dzirdes vai redzes traucējumiem",
+  "upload_form.video_description": "Pievieno aprakstu cilvēkiem ar dzirdes vai redzes traucējumiem",
   "upload_modal.analyzing_picture": "Analizē attēlu…",
-  "upload_modal.apply": "Apstiprināt",
+  "upload_modal.apply": "Pielietot",
   "upload_modal.applying": "Pielieto…",
   "upload_modal.choose_image": "Izvēlēties attēlu",
-  "upload_modal.description_placeholder": "Raibais runcis rīgā ratu rumbā rūc",
+  "upload_modal.description_placeholder": "Raibais runcis Rīgā ratu rumbā rūc",
   "upload_modal.detect_text": "Noteikt tekstu no attēla",
   "upload_modal.edit_media": "Rediģēt mediju",
-  "upload_modal.hint": "Noklikšķiniet vai velciet apli priekšskatījumā, lai izvēlētos fokusa punktu, kas vienmēr būs redzams visos sīktēlos.",
+  "upload_modal.hint": "Noklikšķini vai velc apli priekšskatījumā, lai izvēlētos fokusa punktu, kas vienmēr būs redzams visos sīktēlos.",
   "upload_modal.preparing_ocr": "Sagatavo OCR…",
   "upload_modal.preview_label": "Priekšskatīt ({ratio})",
   "upload_progress.label": "Augšupielādē...",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index 3bcd5280f..a936c8dba 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -5,9 +5,9 @@
   "about.domain_blocks.no_reason_available": "കാരണം ലഭ്യമല്",
   "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
   "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
-  "about.domain_blocks.silenced.title": "Limited",
+  "about.domain_blocks.silenced.title": "പരിമിതമായത്",
   "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
-  "about.domain_blocks.suspended.title": "Suspended",
+  "about.domain_blocks.suspended.title": "താൽക്കാലികമായി നിർത്തിവെച്ചിരിക്കുന്നു",
   "about.not_available": "This information has not been made available on this server.",
   "about.powered_by": "Decentralized social media powered by {mastodon}",
   "about.rules": "സെർവ്വർ നിയമങ്ങൾ",
@@ -33,14 +33,14 @@
   "account.followers": "പിന്തുടരുന്നവർ",
   "account.followers.empty": "ഈ ഉപയോക്താവിനെ ആരും ഇതുവരെ പിന്തുടരുന്നില്ല.",
   "account.followers_counter": "{count, plural, one {{counter} പിന്തുടരുന്നവർ} other {{counter} പിന്തുടരുന്നവർ}}",
-  "account.following": "Following",
+  "account.following": "പിന്തുടരുന്നു",
   "account.following_counter": "{count, plural, one {{counter} പിന്തുടരുന്നു} other {{counter} പിന്തുടരുന്നു}}",
   "account.follows.empty": "ഈ ഉപയോക്താവ് ആരേയും ഇതുവരെ പിന്തുടരുന്നില്ല.",
   "account.follows_you": "നിങ്ങളെ പിന്തുടരുന്നു",
-  "account.go_to_profile": "Go to profile",
+  "account.go_to_profile": "പ്രൊഫൈലിലേക്ക് പോകാം",
   "account.hide_reblogs": "@{name} ബൂസ്റ്റ് ചെയ്തവ മറയ്കുക",
-  "account.joined_short": "Joined",
-  "account.languages": "Change subscribed languages",
+  "account.joined_short": "ജോയിൻ ചെയ്‌തിരിക്കുന്നു",
+  "account.languages": "സബ്‌സ്‌ക്രൈബ് ചെയ്‌ത ഭാഷകൾ മാറ്റുക",
   "account.link_verified_on": "ഈ ലിങ്കിന്റെ ഉടമസ്തത {date} ഇൽ ഉറപ്പാക്കിയതാണ്",
   "account.locked_info": "ഈ അംഗത്വത്തിന്റെ സ്വകാര്യതാ നിലപാട് അനുസരിച്ച് പിന്തുടരുന്നവരെ തിരഞ്ഞെടുക്കാനുള്ള വിവേചനാധികാരം ഉടമസ്ഥനിൽ നിഷിപ്തമായിരിക്കുന്നു.",
   "account.media": "മീഡിയ",
@@ -59,12 +59,12 @@
   "account.statuses_counter": "{count, plural, one {{counter} ടൂട്ട്} other {{counter} ടൂട്ടുകൾ}}",
   "account.unblock": "@{name} തടഞ്ഞത് മാറ്റുക",
   "account.unblock_domain": "{domain} എന്ന മേഖല വെളിപ്പെടുത്തുക",
-  "account.unblock_short": "Unblock",
+  "account.unblock_short": "അൺബ്ലോക്കു ചെയ്യുക",
   "account.unendorse": "പ്രൊഫൈലിൽ പ്രകടമാക്കരുത്",
   "account.unfollow": "പിന്തുടരുന്നത് നിര്‍ത്തുക",
   "account.unmute": "നിശ്ശബ്ദമാക്കുന്നത് നിർത്തുക @{name}",
   "account.unmute_notifications": "@{name} യിൽ നിന്നുള്ള അറിയിപ്പുകൾ പ്രസിദ്ധപ്പെടുത്തുക",
-  "account.unmute_short": "Unmute",
+  "account.unmute_short": "അൺമ്യൂട്ട് ചെയ്യുക",
   "account_note.placeholder": "കുറിപ്പ് ചേർക്കാൻ ക്ലിക്കുചെയ്യുക",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
@@ -76,8 +76,8 @@
   "alert.unexpected.message": "അപ്രതീക്ഷിതമായി എന്തോ സംഭവിച്ചു.",
   "alert.unexpected.title": "ശ്ശോ!",
   "announcement.announcement": "അറിയിപ്പ്",
-  "attachments_list.unprocessed": "(unprocessed)",
-  "audio.hide": "Hide audio",
+  "attachments_list.unprocessed": "(പ്രോസസ്സ് ചെയ്യാത്തത്)",
+  "audio.hide": "ശബ്ദം ഒഴിവാക്കുക",
   "autosuggest_hashtag.per_week": "ആഴ്ച തോറും {count}",
   "boost_modal.combo": "അടുത്ത തവണ ഇത് ഒഴിവാക്കുവാൻ {combo} ഞെക്കാവുന്നതാണ്",
   "bundle_column_error.copy_stacktrace": "Copy error report",
@@ -92,9 +92,9 @@
   "bundle_modal_error.close": "അടയ്ക്കുക",
   "bundle_modal_error.message": "ഈ വെബ്പേജ് പ്രദർശിപ്പിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു.",
   "bundle_modal_error.retry": "വീണ്ടും ശ്രമിക്കുക",
-  "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
-  "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
-  "closed_registrations_modal.find_another_server": "Find another server",
+  "closed_registrations.other_server_instructions": "Mastodon വികേന്ദ്രീകൃത സംവിധാനം ആയതിനാൽ, നിങ്ങൾക്ക് മറ്റൊരു സെർവറിൽ ഒരു അക്കൗണ്ട് ഉണ്ടാക്കിയും ഇതുമായി ആശയവിനിമയം നടത്താൻ സാധിക്കുന്നതാണ്.",
+  "closed_registrations_modal.description": "{domain} ഇൽ ഇപ്പോൾ അക്കൗണ്ട് ഉണ്ടാക്കാൻ സാധിക്കുന്നതല്ല, Mastodon ഉപയോഗിക്കുന്നതിനായി നിങ്ങൾക്ക് {domain}-ൽ പ്രത്യേകമായി ഒരു അക്കൗണ്ട് ആവശ്യമില്ല എന്നത് ദയവായി ഓർക്കുക.",
+  "closed_registrations_modal.find_another_server": "മറ്റൊരു സെർവർ കണ്ടെത്തുക",
   "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
   "closed_registrations_modal.title": "Signing up on Mastodon",
   "column.about": "അപ്ലിക്കേഷനെക്കുറിച്ച്",
@@ -124,9 +124,9 @@
   "community.column_settings.media_only": "മാധ്യമങ്ങൾ മാത്രം",
   "community.column_settings.remote_only": "Remote only",
   "compose.language.change": "ഭാഷ മാറ്റുക",
-  "compose.language.search": "Search languages...",
+  "compose.language.search": "ഭാഷകൾ തിരയുക...",
   "compose_form.direct_message_warning_learn_more": "കൂടുതൽ പഠിക്കുക",
-  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
+  "compose_form.encryption_warning": "Mastodon-ലെ പോസ്റ്റുകൾ എൻഡ്-ടു-എൻഡ് എൻക്രിപ്റ്റ് ചെയ്തവയല്ല. അതിനാൽ Mastodon-ൽ പ്രധാനപ്പെട്ട വിവരങ്ങളൊന്നും പങ്കിടരുത്.",
   "compose_form.hashtag_warning": "ഈ ടൂട്ട് പട്ടികയിൽ ഇല്ലാത്തതിനാൽ ഒരു ചർച്ചാവിഷയത്തിന്റെ പട്ടികയിലും പെടുകയില്ല. പരസ്യമായ ടൂട്ടുകൾ മാത്രമേ ചർച്ചാവിഷയം അടിസ്ഥാനമാക്കി തിരയുവാൻ സാധിക്കുകയുള്ളു.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "ലോക്കുചെയ്തു",
@@ -176,14 +176,14 @@
   "conversation.mark_as_read": "വായിച്ചതായി അടയാളപ്പെടുത്തുക",
   "conversation.open": "സംഭാഷണം കാണുക",
   "conversation.with": "{names} കൂടെ",
-  "copypaste.copied": "Copied",
-  "copypaste.copy": "Copy",
+  "copypaste.copied": "പകർത്തി",
+  "copypaste.copy": "പകര്‍ത്തുക",
   "directory.federated": "അറിയപ്പെടുന്ന ഫെഡിവേഴ്‌സ്ൽ നിന്ന്",
   "directory.local": "{domain} ൽ നിന്ന് മാത്രം",
   "directory.new_arrivals": "പുതിയ വരവുകൾ",
   "directory.recently_active": "അടുത്തിടെയായി സജീവമായ",
   "disabled_account_banner.account_settings": "Account settings",
-  "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
+  "disabled_account_banner.text": "നിങ്ങളുടെ {disabledAccount} എന്ന അക്കൗണ്ട് ഇപ്പോൾ പ്രവർത്തനരഹിതമാണ്.",
   "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
   "dismissable_banner.dismiss": "Dismiss",
   "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@@ -222,10 +222,10 @@
   "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
   "empty_column.hashtag": "ഈ ഹാഷ്‌ടാഗിൽ ഇതുവരെ ഒന്നുമില്ല.",
   "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
-  "empty_column.home.suggestions": "See some suggestions",
+  "empty_column.home.suggestions": "ചില നിർദ്ദേശങ്ങൾ കാണുക",
   "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
   "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
-  "empty_column.mutes": "You haven't muted any users yet.",
+  "empty_column.mutes": "നിങ്ങൾ ഇതുവരെ ഒരു ഉപയോക്താക്കളെയും തടഞ്ഞിട്ടില്ല.",
   "empty_column.notifications": "നിങ്ങൾക്ക് ഇതുവരെ ഒരു അറിയിപ്പുകളും ഇല്ല. മറ്റുള്ളവരുമായി ഇടപെട്ട് സംഭാഷണത്തിന് തുടക്കം കുറിക്കു.",
   "empty_column.public": "ഇവിടെ ഒന്നുമില്ലല്ലോ! ഇവിടെ നിറയ്ക്കാൻ എന്തെങ്കിലും പരസ്യമായി എഴുതുകയോ മറ്റ് ഉപഭോക്താക്കളെ പിന്തുടരുകയോ ചെയ്യുക",
   "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
@@ -235,7 +235,7 @@
   "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
   "errors.unexpected_crash.report_issue": "പ്രശ്നം അറിയിക്കുക",
   "explore.search_results": "Search results",
-  "explore.title": "Explore",
+  "explore.title": "പര്യവേക്ഷണം നടത്തുക",
   "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
   "filter_modal.added.context_mismatch_title": "Context mismatch!",
   "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
@@ -247,7 +247,7 @@
   "filter_modal.added.title": "Filter added!",
   "filter_modal.select_filter.context_mismatch": "does not apply to this context",
   "filter_modal.select_filter.expired": "expired",
-  "filter_modal.select_filter.prompt_new": "New category: {name}",
+  "filter_modal.select_filter.prompt_new": "പുതിയ വിഭാഗം: {name}",
   "filter_modal.select_filter.search": "Search or create",
   "filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
   "filter_modal.select_filter.title": "Filter this post",
@@ -288,7 +288,7 @@
   "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
   "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
   "interaction_modal.on_another_server": "On a different server",
-  "interaction_modal.on_this_server": "On this server",
+  "interaction_modal.on_this_server": "ഈ സെർവറീൽ",
   "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
   "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
   "interaction_modal.title.favourite": "Favourite {name}'s post",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 528726c13..e3dcf46a1 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -1,15 +1,15 @@
 {
-  "about.blocks": "Pelayan yang dimoderasi",
+  "about.blocks": "Pelayan yang disederhanakan",
   "about.contact": "Hubungi:",
   "about.disclaimer": "Mastodon ialah perisian sumber terbuka percuma, dan merupakan tanda dagangan Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Sebab tidak tersedia",
   "about.domain_blocks.preamble": "Secara amnya, Mastodon membenarkan anda melihat kandungan daripada dan berinteraksi dengan pengguna daripada mana-mana pelayan dalam dunia persekutuan. Berikut ialah pengecualian yang telah dibuat pada pelayan ini secara khususnya.",
   "about.domain_blocks.silenced.explanation": "Secara amnya, anda tidak akan melihat profil dan kandungan daripada pelayan ini, kecuali anda mencarinya secara khusus atau ikut serta dengan mengikutinya.",
   "about.domain_blocks.silenced.title": "Terhad",
-  "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
-  "about.domain_blocks.suspended.title": "Digantungkan",
+  "about.domain_blocks.suspended.explanation": "Tiada data daripada pelayan ini yang akan diproses, disimpan atau ditukar, menjadikan sebarang interaksi atau perhubungan dengan pengguna daripada pelayan ini adalah mustahil.",
+  "about.domain_blocks.suspended.title": "Digantung",
   "about.not_available": "Maklumat ini belum tersedia pada pelayan ini.",
-  "about.powered_by": "Media sosial terpencar dikuasakan oleh {mastodon}",
+  "about.powered_by": "Media sosial terpencar yang dikuasakan oleh {mastodon}",
   "about.rules": "Peraturan pelayan",
   "account.account_note_header": "Catatan",
   "account.add_or_remove_from_list": "Tambah atau Buang dari senarai",
@@ -21,25 +21,25 @@
   "account.browse_more_on_origin_server": "Layari selebihnya di profil asal",
   "account.cancel_follow_request": "Menarik balik permintaan mengikut",
   "account.direct": "Mesej terus @{name}",
-  "account.disable_notifications": "Berhenti memaklumi saya apabila @{name} mengirim hantaran",
+  "account.disable_notifications": "Berhenti maklumkan saya apabila @{name} mengirim hantaran",
   "account.domain_blocked": "Domain disekat",
   "account.edit_profile": "Sunting profil",
   "account.enable_notifications": "Maklumi saya apabila @{name} mengirim hantaran",
   "account.endorse": "Tampilkan di profil",
   "account.featured_tags.last_status_at": "Hantaran terakhir pada {date}",
   "account.featured_tags.last_status_never": "Tiada hantaran",
-  "account.featured_tags.title": "Tanda pagar terpilih {name}",
+  "account.featured_tags.title": "Tanda pagar pilihan {name}",
   "account.follow": "Ikuti",
   "account.followers": "Pengikut",
   "account.followers.empty": "Belum ada yang mengikuti pengguna ini.",
   "account.followers_counter": "{count, plural, one {{counter} Pengikut} other {{counter} Pengikut}}",
-  "account.following": "Following",
+  "account.following": "Mengikuti",
   "account.following_counter": "{count, plural, one {{counter} Diikuti} other {{counter} Diikuti}}",
   "account.follows.empty": "Pengguna ini belum mengikuti sesiapa.",
   "account.follows_you": "Mengikuti anda",
   "account.go_to_profile": "Pergi ke profil",
   "account.hide_reblogs": "Sembunyikan galakan daripada @{name}",
-  "account.joined_short": "Joined",
+  "account.joined_short": "Menyertai",
   "account.languages": "Tukar bahasa yang dilanggan",
   "account.link_verified_on": "Pemilikan pautan ini telah disemak pada {date}",
   "account.locked_info": "Status privasi akaun ini dikunci. Pemiliknya menyaring sendiri siapa yang boleh mengikutinya.",
@@ -53,10 +53,10 @@
   "account.posts": "Hantaran",
   "account.posts_with_replies": "Hantaran dan balasan",
   "account.report": "Laporkan @{name}",
-  "account.requested": "Menunggu kelulusan. Klik untuk batalkan permintaan ikutan",
+  "account.requested": "Menunggu kelulusan. Klik untuk batalkan permintaan ikut",
   "account.share": "Kongsi profil @{name}",
   "account.show_reblogs": "Tunjukkan galakan daripada @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Hantaran} other {{counter} Hantaran}}",
+  "account.statuses_counter": "{count, plural, other {{counter} kiriman}}",
   "account.unblock": "Nyahsekat @{name}",
   "account.unblock_domain": "Nyahsekat domain {domain}",
   "account.unblock_short": "Nyahsekat",
@@ -64,12 +64,12 @@
   "account.unfollow": "Nyahikut",
   "account.unmute": "Nyahbisukan @{name}",
   "account.unmute_notifications": "Nyahbisukan pemberitahuan daripada @{name}",
-  "account.unmute_short": "Buka suara",
-  "account_note.placeholder": "Klik untuk tambah catatan",
-  "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
-  "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
+  "account.unmute_short": "Nyahbisu",
+  "account_note.placeholder": "Klik untuk menambah catatan",
+  "admin.dashboard.daily_retention": "Kadar pengekalan pengguna mengikut hari selepas mendaftar",
+  "admin.dashboard.monthly_retention": "Kadar pengekalan pengguna mengikut bulan selepas mendaftar",
   "admin.dashboard.retention.average": "Purata",
-  "admin.dashboard.retention.cohort": "Sign-up month",
+  "admin.dashboard.retention.cohort": "Bulan pendaftaran",
   "admin.dashboard.retention.cohort_size": "Pengguna baru",
   "alert.rate_limited.message": "Sila cuba semula selepas {retry_time, time, medium}.",
   "alert.rate_limited.title": "Kadar terhad",
@@ -83,7 +83,7 @@
   "bundle_column_error.copy_stacktrace": "Salin laporan ralat",
   "bundle_column_error.error.body": "Halaman yang diminta gagal dipaparkan. Ini mungkin disebabkan oleh pepijat dalam kod kami, atau masalah keserasian pelayar.",
   "bundle_column_error.error.title": "Alamak!",
-  "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
+  "bundle_column_error.network.body": "Terdapat suatu ralat apabila cuba memuatkan halaman ini. Keadaan ini mungkin berlaku disebabkan oleh masalah pada sambungan internet anda atau pelayan ini.",
   "bundle_column_error.network.title": "Ralat rangkaian",
   "bundle_column_error.retry": "Cuba lagi",
   "bundle_column_error.return": "Kembali ke halaman utama",
@@ -158,7 +158,7 @@
   "confirmations.delete_list.confirm": "Padam",
   "confirmations.delete_list.message": "Adakah anda pasti anda ingin memadam senarai ini secara kekal?",
   "confirmations.discard_edit_media.confirm": "Singkir",
-  "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
+  "confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?",
   "confirmations.domain_block.confirm": "Sekat keseluruhan domain",
   "confirmations.domain_block.message": "Adakah anda betul-betul, sungguh-sungguh pasti anda ingin menyekat keseluruhan {domain}? Selalunya, beberapa sekatan atau pembisuan tersasar sudah memadai dan lebih diutamakan. Anda tidak akan nampak kandungan daripada domain tersebut di mana-mana garis masa awam mahupun pemberitahuan anda. Pengikut anda daripada domain tersebut juga akan dibuang.",
   "confirmations.logout.confirm": "Log keluar",
@@ -440,7 +440,7 @@
   "poll.total_votes": "{count, plural, other {# undian}}",
   "poll.vote": "Undi",
   "poll.voted": "Anda mengundi jawapan ini",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, other {# undi}}",
   "poll_button.add_poll": "Tambah undian",
   "poll_button.remove_poll": "Buang undian",
   "privacy.change": "Ubah privasi hantaran",
@@ -458,11 +458,11 @@
   "regeneration_indicator.label": "Memuatkan…",
   "regeneration_indicator.sublabel": "Suapan rumah anda sedang disediakan!",
   "relative_time.days": "{number}h",
-  "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
-  "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
+  "relative_time.full.days": "{number, plural, other {# hari}} yang lalu",
+  "relative_time.full.hours": "{number, plural, other {# jam}} yang lalu",
   "relative_time.full.just_now": "sebentar tadi",
-  "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
+  "relative_time.full.minutes": "{number, plural, other {# minit}} yang lalu",
+  "relative_time.full.seconds": "{number, plural, other {# saat}} yang lalu",
   "relative_time.hours": "{number}j",
   "relative_time.just_now": "sekarang",
   "relative_time.minutes": "{number}m",
@@ -491,7 +491,7 @@
   "report.reasons.other": "Inilah sesuatu yang lain",
   "report.reasons.other_description": "Isu ini tidak sesuai untuk kategori lain",
   "report.reasons.spam": "Inilah spam",
-  "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
+  "report.reasons.spam_description": "Pautan berbahaya, keterlibatan palsu atau balasan berulang",
   "report.reasons.violation": "Ini melanggar peraturan pelayan",
   "report.reasons.violation_description": "Anda menyedari bahawa ini melanggar peraturan yang tertentu",
   "report.rules.subtitle": "Pilih semua yang berkenaan",
@@ -506,7 +506,7 @@
   "report.thanks.title_actionable": "Terima kasih untuk laporan anda, kami akan menyemaknya.",
   "report.unfollow": "Nyahikut @{name}",
   "report.unfollow_explanation": "Anda sedang mengikuti akaun ini. Untuk memadam siaran mereka daripada suapan berita anda, nyahikutkan mereka.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
+  "report_notification.attached_statuses": "{count, plural, other {{count} hantaran}} dilampirkan",
   "report_notification.categories.other": "Lain-lain",
   "report_notification.categories.spam": "Spam",
   "report_notification.categories.violation": "Langgaran peraturan",
@@ -548,7 +548,7 @@
   "status.direct": "Mesej terus @{name}",
   "status.edit": "Sunting",
   "status.edited": "Disunting {date}",
-  "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
+  "status.edited_x_times": "Disunting {count, plural, other {{count} kali}}",
   "status.embed": "Benaman",
   "status.favourite": "Kegemaran",
   "status.filter": "Tapiskan hantaran ini",
@@ -607,7 +607,7 @@
   "timeline_hint.resources.followers": "Pengikut",
   "timeline_hint.resources.follows": "Ikutan",
   "timeline_hint.resources.statuses": "Hantaran lebih lama",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
+  "trends.counter_by_accounts": "{count, plural, other {{counter} orang}} dalam {days, plural, other {{days} hari}} yang lalu",
   "trends.trending_now": "Sohor kini",
   "ui.beforeunload": "Rangka anda akan terhapus jika anda meninggalkan Mastodon.",
   "units.short.billion": "{count}B",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index ac76f1b82..446e0cd22 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -126,7 +126,7 @@
   "compose.language.change": "Cambiar de lenga",
   "compose.language.search": "Recercar de lengas...",
   "compose_form.direct_message_warning_learn_more": "Ne saber mai",
-  "compose_form.encryption_warning": "Las pubicacions sus Mastodon son pas chifradas del cap a la fin. Partegetz pas d’informacions sensiblas sus Mastodon.",
+  "compose_form.encryption_warning": "Las publicacions sus Mastodon son pas chifradas del cap a la fin. Partegetz pas d’informacions sensiblas sus Mastodon.",
   "compose_form.hashtag_warning": "Aqueste tut serà pas ligat a cap d’etiqueta estant qu’es pas listat. Òm pòt pas cercar que los tuts publics per etiqueta.",
   "compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo mond pòt vos sègre e veire los estatuts reservats als seguidors.",
   "compose_form.lock_disclaimer.lock": "clavat",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 4a4c2f159..69ab4fb9b 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -236,7 +236,7 @@
   "errors.unexpected_crash.report_issue": "Raportează o problemă",
   "explore.search_results": "Rezultatele căutării",
   "explore.title": "Explorează",
-  "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
+  "filter_modal.added.context_mismatch_explanation": "Această categorie de filtre nu se aplică în contextul în care ați accesat acestă postare. Dacă doriți ca postarea să fie filtrată și în acest context, va trebui să editați filtrul.",
   "filter_modal.added.context_mismatch_title": "Nepotrivire contextuală!",
   "filter_modal.added.expired_explanation": "Această categorie de filtre a expirat, va trebui să modifici data de expirare pentru ca aceasta să se aplice.",
   "filter_modal.added.expired_title": "Filtru expirat!",
@@ -450,7 +450,7 @@
   "privacy.private.short": "Doar abonați",
   "privacy.public.long": "Vizibil pentru toți",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Vizibil pentru toți dar fără funcții de descoperire",
   "privacy.unlisted.short": "Nelistat",
   "privacy_policy.last_updated": "Ultima actualizare în data de {date}",
   "privacy_policy.title": "Politică de confidențialitate",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 011c2d9ba..506622e7f 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -607,7 +607,7 @@
   "timeline_hint.resources.followers": "подписчиков",
   "timeline_hint.resources.follows": "подписки",
   "timeline_hint.resources.statuses": "прошлые посты",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} человек} few {{counter} человека} many {{counter} человек} other {{counter} человека}} на протяжении {days, plural, =1 {последнего дня} one {последнего {days} дня} few {последних {days} дней} many {последних {days} дней} other {последних {days} дней}}",
+  "trends.counter_by_accounts": "{count, plural, few {{counter} человека} other {{counter} человек}} за {days, plural, one {последний день} few {последние {days} дня} other {последние {days} дней}}",
   "trends.trending_now": "Самое актуальное",
   "ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.",
   "units.short.billion": "{count} млрд",
diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json
index ae464a50f..deb2aca76 100644
--- a/app/javascript/mastodon/locales/sco.json
+++ b/app/javascript/mastodon/locales/sco.json
@@ -3,10 +3,10 @@
   "about.contact": "Contack:",
   "about.disclaimer": "Mastodon is free, open-soorced saftware, an a trademairk o Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Raison no available",
-  "about.domain_blocks.preamble": "Mastodon generally alloos ye tae view content fae an interact wi uisers fae onie ither server in the fediverse.",
-  "about.domain_blocks.silenced.explanation": "Ye'll generally no see profiles an content fae this server, unless ye explicitly luik it up or opt intae it bi follaein.",
+  "about.domain_blocks.preamble": "On the hail, Mastodon lats ye view content frae an interack wi uisers fae onie ither server in the fediverse.",
+  "about.domain_blocks.silenced.explanation": "Ye'll generally no see profiles an content frae this server, unless ye explicitly luik it up or opt intae it bi follaein.",
   "about.domain_blocks.silenced.title": "Limitit",
-  "about.domain_blocks.suspended.explanation": "Nae data fae this server wull bi processed, stored or exchynged, makkin onie interaction or communication wi uisers fae this server no possible.",
+  "about.domain_blocks.suspended.explanation": "Nae data frae this server wull bi processed, stored or exchynged, makkin onie interaction or communication wi uisers frae this server no possible.",
   "about.domain_blocks.suspended.title": "Suspendit",
   "about.not_available": "This information haesnae been made available on this server.",
   "about.powered_by": "Decentralised social media pooert bi {mastodon}",
@@ -15,15 +15,15 @@
   "account.add_or_remove_from_list": "Add or Remuive frae lists",
   "account.badges.bot": "Bot",
   "account.badges.group": "Group",
-  "account.block": "Block @{name}",
-  "account.block_domain": "Block domain {domain}",
-  "account.blocked": "Blockit",
-  "account.browse_more_on_origin_server": "Brouse mair oan the oreeginal profile",
+  "account.block": "Dingie @{name}",
+  "account.block_domain": "Dingie domain {domain}",
+  "account.blocked": "Dingied",
+  "account.browse_more_on_origin_server": "Luik mair oan the oreeginal profile",
   "account.cancel_follow_request": "Resile follae requeest",
-  "account.direct": "Direct message @{name}",
+  "account.direct": "Direck message @{name}",
   "account.disable_notifications": "Stap notifyin me whan @{name} posts",
-  "account.domain_blocked": "Domain blockit",
-  "account.edit_profile": "Eedit profile",
+  "account.domain_blocked": "Domain dingied",
+  "account.edit_profile": "Edit profile",
   "account.enable_notifications": "Notify me whan @{name} posts",
   "account.endorse": "Shaw oan profile",
   "account.featured_tags.last_status_at": "Last post oan {date}",
@@ -31,13 +31,13 @@
   "account.featured_tags.title": "{name}'s hielichtit hashtags",
   "account.follow": "Follae",
   "account.followers": "Follaers",
-  "account.followers.empty": "Naebdy follaes this uiser yet.",
+  "account.followers.empty": "Naebody follaes this uiser yit.",
   "account.followers_counter": "{count, plural, one {{counter} Follaer} other {{counter} Follaers}}",
   "account.following": "Follaein",
   "account.following_counter": "{count, plural, one {{counter} Follaein} other {{counter} Follaein}}",
   "account.follows.empty": "This uiser disnae follae oniebody yit.",
   "account.follows_you": "Follaes ye",
-  "account.go_to_profile": "Gan tae profile",
+  "account.go_to_profile": "Gang tae profile",
   "account.hide_reblogs": "Dinnae shaw heezes fae @{name}",
   "account.joined_short": "Jynt",
   "account.languages": "Chynge subscribed leids",
@@ -47,7 +47,7 @@
   "account.mention": "Menshie@{name}",
   "account.moved_to": "{name} haes sayed thit their new accoont is noo:",
   "account.mute": "Wheesht@{name}",
-  "account.mute_notifications": "Wheesht notifications fae @{name}",
+  "account.mute_notifications": "Wheesht notifications frae @{name}",
   "account.muted": "Whesht",
   "account.open_original_page": "Open the furst page",
   "account.posts": "Posts",
@@ -55,7 +55,7 @@
   "account.report": "Clype @{name}",
   "account.requested": "Haudin fir approval. Chap tae cancel follae request",
   "account.share": "Share @{name}'s profile",
-  "account.show_reblogs": "Shaw boosts fae @{name}",
+  "account.show_reblogs": "Shaw heezes frae @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}",
   "account.unblock": "Undingie @{name}",
   "account.unblock_domain": "Undingie domain {domain}",
@@ -63,22 +63,22 @@
   "account.unendorse": "Dinnae pit on profile",
   "account.unfollow": "Unfollae",
   "account.unmute": "Unwheesht @{name}",
-  "account.unmute_notifications": "Unwheesht notes fae @{name}",
+  "account.unmute_notifications": "Unwheesht notes frae @{name}",
   "account.unmute_short": "Unwheesht",
   "account_note.placeholder": "Chap tae eik note",
   "admin.dashboard.daily_retention": "Uiser retention rate bi day efter signin-up",
-  "admin.dashboard.monthly_retention": "Uiser restention rate bi month efter signin-up",
+  "admin.dashboard.monthly_retention": "Uiser retention rate bi month efter signin-up",
   "admin.dashboard.retention.average": "Average",
   "admin.dashboard.retention.cohort": "Signin-up month",
   "admin.dashboard.retention.cohort_size": "New uisers",
   "alert.rate_limited.message": "Please hae anither shot efter {retry_time, time, medium}.",
   "alert.rate_limited.title": "Rate limitit",
   "alert.unexpected.message": "A error thit wisnae expectit happent.",
-  "alert.unexpected.title": "Crivens!",
+  "alert.unexpected.title": "Crivvens!",
   "announcement.announcement": "Annooncement",
   "attachments_list.unprocessed": "(No processed)",
   "audio.hide": "Stow audio",
-  "autosuggest_hashtag.per_week": "{count} per week",
+  "autosuggest_hashtag.per_week": "{count} a week",
   "boost_modal.combo": "Ye kin chap {combo} tae dingie this neist tim",
   "bundle_column_error.copy_stacktrace": "Copy error report",
   "bundle_column_error.error.body": "The requestit page cuidnae be rennert. Hit cuid be doon tae a bug in wir code, or a brooser compatability issue.",
@@ -95,7 +95,7 @@
   "closed_registrations.other_server_instructions": "Seein Mastodon is decentralized ye kin mak a accoont on anither server an stull interact wi this ane.",
   "closed_registrations_modal.description": "Makkin a accoont on {domain} isnae possible the noo, but mind ye dinnae need a accoont on {domain} specific for tae uise Mastodon.",
   "closed_registrations_modal.find_another_server": "Fin anither server",
-  "closed_registrations_modal.preamble": "Mastodon is decentralized, sae nae maitter whaur ye mak yer accoont, ye'll be able tae follae an interact wi oniebody on this server. Ye kin even sel-host it!",
+  "closed_registrations_modal.preamble": "Mastodon is decentralized, sae nae maitter whaur ye mak yer accoont, ye'll can follae an interack wi oniebody on this server. Ye kin even sel-host it!",
   "closed_registrations_modal.title": "Signin up on Mastodon",
   "column.about": "Aboot",
   "column.blocks": "Dingied uisers",
@@ -115,7 +115,7 @@
   "column_back_button.label": "Back",
   "column_header.hide_settings": "Hide settins",
   "column_header.moveLeft_settings": "Shift column tae the left",
-  "column_header.moveRight_settings": "Shift coloumn tae the richt",
+  "column_header.moveRight_settings": "Shift column tae the richt",
   "column_header.pin": "Preen",
   "column_header.show_settings": "Shaw settins",
   "column_header.unpin": "Unpreen",
@@ -126,9 +126,9 @@
   "compose.language.change": "Chynge Leid",
   "compose.language.search": "Seirch leids...",
   "compose_form.direct_message_warning_learn_more": "Lairn mair",
-  "compose_form.encryption_warning": "Posts on Mastodon urnae en-tae-en encryptit. Dinnae share onie sensitive information ower Mastodon.",
+  "compose_form.encryption_warning": "Posts on Mastodon isnae en-tae-en encryptit. Dinnae share onie sensitive information ower Mastodon.",
   "compose_form.hashtag_warning": "This post wulnae be listit unner onie hashtag seein it is no listit. Ainly public posts kin be seirchit oot bi hashtag.",
-  "compose_form.lock_disclaimer": "Yer accoont isnae {locked}. Awbody kin follae ye folir tae luik at yer follaer-ainly posts.",
+  "compose_form.lock_disclaimer": "Yer accoont isnae {locked}. Awbody kin follae ye for tae luik at yer follaer-ainly posts.",
   "compose_form.lock_disclaimer.lock": "lockit",
   "compose_form.placeholder": "Whit's on yer mind?",
   "compose_form.poll.add_option": "Pit in a chyce",
@@ -167,11 +167,11 @@
   "confirmations.mute.explanation": "This'll hide posts fae them an posts mentionin them, but it'll stull alloo them tae see yer posts an follae ye.",
   "confirmations.mute.message": "Ye sure thit ye'r wantin tae wheesht {name}?",
   "confirmations.redraft.confirm": "Delete an stert anew",
-  "confirmations.redraft.message": "Ye sure thit ye'r wantin tae delete this post an stert again? Favourites an boosts'll be lost, an the replies tae the original post'll be orphant.",
+  "confirmations.redraft.message": "Ye shuir thit ye'r wantin tae delete this post an stert again? Favourites an boosts'll be lost, an the replies tae the original post'll be orphant.",
   "confirmations.reply.confirm": "Reply",
   "confirmations.reply.message": "Replyin noo'll owerwrite the message ye'r screivin the noo. Ur ye sure thit ye'r wantin tae dae that?",
   "confirmations.unfollow.confirm": "Unfollae",
-  "confirmations.unfollow.message": "Ye sure thit ye'r wantin tae unfollae {name}?",
+  "confirmations.unfollow.message": "Ye shuir thit ye'r wantin tae unfollae {name}?",
   "conversation.delete": "Delete the conversation",
   "conversation.mark_as_read": "Mairk as seen",
   "conversation.open": "Luik at conversation",
@@ -184,7 +184,7 @@
   "directory.recently_active": "Active recent",
   "disabled_account_banner.account_settings": "Accoont settins",
   "disabled_account_banner.text": "Yer accoont {disabledAccount} is disabilt the noo.",
-  "dismissable_banner.community_timeline": "Here the maist recent public posts fae fowk thit's accoonts ur hostit bi {domain}.",
+  "dismissable_banner.community_timeline": "Here the maist recent public posts fae fowk thit's accoonts is hostit bi {domain}.",
   "dismissable_banner.dismiss": "Pit awa",
   "dismissable_banner.explore_links": "Thir news stories is bein talked aboot bi fowk on this an ither servers o the decentralized netwirk richt noo.",
   "dismissable_banner.explore_statuses": "Thir posts fae this an ither servers in this decentralized netwirk ur gainin traction on this server richt noo.",
@@ -226,12 +226,12 @@
   "empty_column.list": "There naethin in this list yit. Whan memmers o this list publish new posts, ye'll see them here.",
   "empty_column.lists": "Ye dinnae hae onie lists yit. Ance ye mak ane, it'll shaw up here.",
   "empty_column.mutes": "Ye'v no wheesht onie uisers yit.",
-  "empty_column.notifications": "Ye dinnae hae onie notes yit. Whan ither fowk interack wi ye, ye'll see it here.",
+  "empty_column.notifications": "Ye dinnae hae onie notes yit. Whan ither fowk interacks wi ye, ye'll see it here.",
   "empty_column.public": "There naethin here! Scrieve socht public, or follae uisers fae ither servers fir tae full it up",
   "error.unexpected_crash.explanation": "Doon tae a bug in wir code or a brooser compatibility maitter, this page cuidnae get displayed richt.",
   "error.unexpected_crash.explanation_addons": "This page cannae be displayit richt. This error is maist lik tae be doon tae a brooser add-on or autimatic owersettin tools.",
   "error.unexpected_crash.next_steps": "Gie refreshin the page a shot. Gin thon disnae help ye, ye kin mibbie stull be able tae uise Mastodon throu anither brooser or native app.",
-  "error.unexpected_crash.next_steps_addons": "Try oot pittin them aff an rejiggin the page. Gin thonndisnae wirk, ye kin mibbie be able tae uise Mastodon on a different brooser or native app.",
+  "error.unexpected_crash.next_steps_addons": "Try oot pittin them aff an rejiggin the page. Gin thon disnae wirk, ye kin mibbie uise Mastodon on a different brooser or native app.",
   "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace tae yer clipboord",
   "errors.unexpected_crash.report_issue": "Sen in a issue",
   "explore.search_results": "Seirch finnins",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 7b026e4d5..2dc44367d 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -158,7 +158,7 @@
   "confirmations.delete_list.confirm": "Vymaž",
   "confirmations.delete_list.message": "Si si istý/á, že chceš natrvalo vymazať tento zoznam?",
   "confirmations.discard_edit_media.confirm": "Zahoď",
-  "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
+  "confirmations.discard_edit_media.message": "Máte neuložené zmeny v popise alebo náhľade média, zahodiť ich aj tak?",
   "confirmations.domain_block.confirm": "Skry celú doménu",
   "confirmations.domain_block.message": "Si si naozaj istý/á, že chceš blokovať celú doménu {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať pár konkrétnych užívateľov, čo sa doporučuje. Neuvidíš obsah z tejto domény v žiadnej verejnej časovej osi, ani v oznámeniach. Tvoji následovníci pochádzajúci z tejto domény budú odstránení.",
   "confirmations.logout.confirm": "Odhlás sa",
@@ -183,13 +183,13 @@
   "directory.new_arrivals": "Nové príchody",
   "directory.recently_active": "Nedávno aktívne",
   "disabled_account_banner.account_settings": "Nastavenia účtu",
-  "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
-  "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
-  "dismissable_banner.dismiss": "Dismiss",
-  "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
-  "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
+  "disabled_account_banner.text": "Vaše konto {disabledAccount} je momentálne vypnuté.",
+  "dismissable_banner.community_timeline": "Toto sú najnovšie verejné príspevky od ľudí, ktorých účty sú hostované na {domain}.",
+  "dismissable_banner.dismiss": "Zrušiť",
+  "dismissable_banner.explore_links": "O týchto správach práve teraz hovoria ľudia na tomto a ďalších serveroch decentralizovanej siete.",
+  "dismissable_banner.explore_statuses": "Tieto príspevky z tohto a ďalších serverov v decentralizovanej sieti získavajú na tomto serveri práve teraz na sile.",
+  "dismissable_banner.explore_tags": "Tieto hashtagy práve teraz získavajú popularitu medzi ľuďmi na tomto a ďalších serveroch decentralizovanej siete.",
+  "dismissable_banner.public_timeline": "Toto sú najnovšie verejné príspevky od ľudí z tohto a ďalších serverov decentralizovanej siete, o ktorých tento server vie.",
   "embed.instructions": "Umiestni kód uvedený nižšie pre pridanie tohto statusu na tvoju web stránku.",
   "embed.preview": "Tu je ako to bude vyzerať:",
   "emoji_button.activity": "Aktivita",
@@ -215,7 +215,7 @@
   "empty_column.community": "Lokálna časová os je prázdna. Napíšte niečo, aby sa to tu začalo hýbať!",
   "empty_column.direct": "Ešte nemáš žiadne priame správy. Keď nejakú pošleš, alebo dostaneš, ukáže sa tu.",
   "empty_column.domain_blocks": "Žiadne domény ešte niesú skryté.",
-  "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
+  "empty_column.explore_statuses": "Momentálne nie je nič trendové. Pozrite sa neskôr!",
   "empty_column.favourited_statuses": "Nemáš obľúbené ešte žiadne príspevky. Keď si nejaký obľúbiš, bude zobrazený práve tu.",
   "empty_column.favourites": "Tento toot si ešte nikto neobľúbil. Ten kto si ho obľúbi, bude zobrazený tu.",
   "empty_column.follow_recommendations": "Zdá sa že pre Vás nemohli byť vygenerované žiadne návrhy. Môžete skúsiť použiť vyhľadávanie aby ste našli ľudi ktorých poznáte, alebo preskúmať trendujúce heštegy.",
@@ -236,22 +236,22 @@
   "errors.unexpected_crash.report_issue": "Nahlás problém",
   "explore.search_results": "Výsledky hľadania",
   "explore.title": "Objavuj",
-  "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
-  "filter_modal.added.context_mismatch_title": "Context mismatch!",
-  "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
-  "filter_modal.added.expired_title": "Expired filter!",
-  "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
+  "filter_modal.added.context_mismatch_explanation": "Táto kategória filtrov sa nevzťahuje na kontext, v ktorom ste získali prístup k tomuto príspevku. Ak chcete, aby sa príspevok filtroval aj v tomto kontexte, budete musieť filter upraviť.",
+  "filter_modal.added.context_mismatch_title": "Nesúlad kontextu!",
+  "filter_modal.added.expired_explanation": "Platnosť tejto kategórie filtra vypršala, aby sa použila, je potrebné zmeniť dátum vypršania platnosti.",
+  "filter_modal.added.expired_title": "Vypršala platnosť filtra!",
+  "filter_modal.added.review_and_configure": "Ak chcete skontrolovať a ďalej konfigurovať túto kategóriu filtrov, prejdite na odkaz {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Nastavenie triedenia",
-  "filter_modal.added.settings_link": "settings page",
-  "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
+  "filter_modal.added.settings_link": "stránka s nastaveniami",
+  "filter_modal.added.short_explanation": "Tento príspevok bol pridaný do nasledujúcej kategórie filtrov: {title}.",
   "filter_modal.added.title": "Triedenie pridané!",
-  "filter_modal.select_filter.context_mismatch": "does not apply to this context",
+  "filter_modal.select_filter.context_mismatch": "sa na tento kontext nevzťahuje",
   "filter_modal.select_filter.expired": "vypršalo",
-  "filter_modal.select_filter.prompt_new": "New category: {name}",
-  "filter_modal.select_filter.search": "Search or create",
-  "filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
-  "filter_modal.select_filter.title": "Filter this post",
-  "filter_modal.title.status": "Filter a post",
+  "filter_modal.select_filter.prompt_new": "Nová kategória: {name}",
+  "filter_modal.select_filter.search": "Vyhľadávať alebo vytvoriť",
+  "filter_modal.select_filter.subtitle": "Použite existujúcu kategóriu alebo vytvorte novú",
+  "filter_modal.select_filter.title": "Filtrovanie tohto príspevku",
+  "filter_modal.title.status": "Filtrovanie príspevku",
   "follow_recommendations.done": "Hotovo",
   "follow_recommendations.heading": "Následuj ľudí od ktorých by si chcel/a vidieť príspevky! Tu sú nejaké návrhy.",
   "follow_recommendations.lead": "Príspevky od ľudi ktorých sledujete sa zobrazia v chronologickom poradí na Vašej nástenke. Nebojte sa spraviť chyby, vždy môžete zrušiť sledovanie konkrétnych ľudí!",
@@ -259,8 +259,8 @@
   "follow_request.reject": "Odmietni",
   "follow_requests.unlocked_explanation": "Síce Váš učet nie je uzamknutý, ale {domain} tím si myslel že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.",
   "footer.about": "O",
-  "footer.directory": "Profiles directory",
-  "footer.get_app": "Get the app",
+  "footer.directory": "Adresár profilov",
+  "footer.get_app": "Stiahnuť aplikáciu",
   "footer.invite": "Pozvi ľudí",
   "footer.keyboard_shortcuts": "Klávesové skratky",
   "footer.privacy_policy": "Zásady súkromia",
@@ -283,14 +283,14 @@
   "home.column_settings.show_replies": "Ukáž odpovede",
   "home.hide_announcements": "Skry oboznámenia",
   "home.show_announcements": "Ukáž oboznámenia",
-  "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
-  "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
-  "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
-  "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
+  "interaction_modal.description.favourite": "S účtom na Mastodone môžete tento príspevok obľúbiť, aby ste dali autorovi vedieť, že ho oceňujete, a uložiť si ho na neskôr.",
+  "interaction_modal.description.follow": "Ak máte konto na Mastodone, môžete sledovať {name} a dostávať príspevky do svojho domovského kanála.",
+  "interaction_modal.description.reblog": "Ak máte účet na Mastodone, môžete tento príspevok posilniť a zdieľať ho s vlastnými sledovateľmi.",
+  "interaction_modal.description.reply": "Ak máte účet na Mastodone, môžete reagovať na tento príspevok.",
   "interaction_modal.on_another_server": "Na inom serveri",
   "interaction_modal.on_this_server": "Na tomto serveri",
-  "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
-  "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
+  "interaction_modal.other_server_instructions": "Skopírujte a vložte túto adresu URL do vyhľadávacieho poľa vašej obľúbenej aplikácie Mastodon alebo do webového rozhrania vášho servera Mastodon.",
+  "interaction_modal.preamble": "Keďže Mastodon je decentralizovaný, ak nemáte účet na tomto serveri, môžete použiť svoj existujúci účet hostovaný na inom serveri Mastodon alebo kompatibilnej platforme.",
   "interaction_modal.title.favourite": "Obľúbiť si {name}ov/in príspevok",
   "interaction_modal.title.follow": "Nasleduj {name}",
   "interaction_modal.title.reblog": "Vyzdvihni {name}ov/in príspevok",
@@ -338,7 +338,7 @@
   "lightbox.next": "Ďalšie",
   "lightbox.previous": "Predchádzajúci",
   "limited_account_hint.action": "Ukáž profil aj tak",
-  "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
+  "limited_account_hint.title": "Tento profil bol skrytý moderátormi stránky {domain}.",
   "lists.account.add": "Pridaj do zoznamu",
   "lists.account.remove": "Odober zo zoznamu",
   "lists.delete": "Vymaž list",
@@ -357,7 +357,7 @@
   "media_gallery.toggle_visible": "Zapni/Vypni viditeľnosť",
   "missing_indicator.label": "Nenájdené",
   "missing_indicator.sublabel": "Tento zdroj sa ešte nepodarilo nájsť",
-  "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
+  "moved_to_account_banner.text": "Vaše konto {disabledAccount} je momentálne zablokované, pretože ste sa presunuli na {movedToAccount}.",
   "mute_modal.duration": "Trvanie",
   "mute_modal.hide_notifications": "Skry oznámenia od tohto používateľa?",
   "mute_modal.indefinite": "Bez obmedzenia",
@@ -384,7 +384,7 @@
   "navigation_bar.public_timeline": "Federovaná časová os",
   "navigation_bar.search": "Hľadaj",
   "navigation_bar.security": "Zabezbečenie",
-  "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
+  "not_signed_in_indicator.not_signed_in": "Ak chcete získať prístup k tomuto zdroju, musíte sa prihlásiť.",
   "notification.admin.report": "{name} nahlásil/a {target}",
   "notification.admin.sign_up": "{name} sa zaregistroval/a",
   "notification.favourite": "{name} si obľúbil/a tvoj príspevok",
@@ -431,7 +431,7 @@
   "notifications.permission_denied_alert": "Oboznámenia na ploche nemôžu byť zapnuté, pretože požiadavka prehliadača o to, bola už skôr zamietnutá",
   "notifications.permission_required": "Oboznámenia na ploche sú nedostupné, pretože potrebné povolenia neboli udelené.",
   "notifications_permission_banner.enable": "Povoliť oboznámenia na plochu",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
+  "notifications_permission_banner.how_to_control": "Ak chcete dostávať upozornenia, keď Mastodon nie je otvorený, povoľte upozornenia na ploche. Po ich zapnutí môžete presne kontrolovať, ktoré typy interakcií generujú upozornenia na ploche, a to prostredníctvom tlačidla {icon} vyššie.",
   "notifications_permission_banner.title": "Nikdy nezmeškaj jedinú vec",
   "picture_in_picture.restore": "Vrátiť späť",
   "poll.closed": "Uzatvorená",
@@ -450,7 +450,7 @@
   "privacy.private.short": "Iba pre sledujúcich",
   "privacy.public.long": "Viditeľné pre všetkých",
   "privacy.public.short": "Verejné",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Viditeľné pre všetkých, ale odmietnuté funkcie zisťovania",
   "privacy.unlisted.short": "Verejne, ale nezobraziť v osi",
   "privacy_policy.last_updated": "Posledná úprava {date}",
   "privacy_policy.title": "Zásady súkromia",
@@ -470,33 +470,33 @@
   "relative_time.today": "dnes",
   "reply_indicator.cancel": "Zrušiť",
   "report.block": "Blokuj",
-  "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": "Ich príspevky neuvidíte. Nebudú môcť vidieť vaše príspevky ani vás sledovať. Budú môcť zistiť, že sú zablokovaní.",
   "report.categories.other": "Ostatné",
   "report.categories.spam": "Spam",
-  "report.categories.violation": "Content violates one or more server rules",
-  "report.category.subtitle": "Choose the best match",
-  "report.category.title": "Tell us what's going on with this {type}",
+  "report.categories.violation": "Obsah porušuje jedno alebo viacero pravidiel servera",
+  "report.category.subtitle": "Vyberte si najlepšiu voľbu",
+  "report.category.title": "Povedzte nám, čo sa deje s týmto {type}",
   "report.category.title_account": "profilom",
   "report.category.title_status": "príspevkom",
   "report.close": "Hotovo",
-  "report.comment.title": "Is there anything else you think we should know?",
+  "report.comment.title": "Je ešte niečo, čo by sme podľa vás mali vedieť?",
   "report.forward": "Posuň ku {target}",
   "report.forward_hint": "Tento účet je z iného serveru. Chceš poslať anonymnú kópiu hlásenia aj tam?",
   "report.mute": "Nevšímaj si",
-  "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": "Ich príspevky neuvidíte. Stále vás môžu sledovať a vidieť vaše príspevky a nebudú vedieť, že sú stlmené.",
   "report.next": "Ďalej",
   "report.placeholder": "Ďalšie komentáre",
   "report.reasons.dislike": "Nepáči sa mi",
   "report.reasons.dislike_description": "Nieje to niečo, čo chceš vidieť",
   "report.reasons.other": "Je to niečo iné",
-  "report.reasons.other_description": "The issue does not fit into other categories",
+  "report.reasons.other_description": "Tento problém nepatrí do iných kategórií",
   "report.reasons.spam": "Je to spam",
-  "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
+  "report.reasons.spam_description": "Škodlivé odkazy, falošné zapojenie alebo opakované odpovede",
   "report.reasons.violation": "Porušuje pravidlá servera",
-  "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.reasons.violation_description": "Ste si vedomí, že porušuje špecifické pravidlá",
+  "report.rules.subtitle": "Vyberte všetky, ktoré sa vzťahujú",
+  "report.rules.title": "Ktoré pravidlá sa porušujú?",
+  "report.statuses.subtitle": "Vyberte všetky, ktoré sa vzťahujú",
   "report.statuses.title": "Are there any posts that back up this report?",
   "report.submit": "Odošli",
   "report.target": "Nahlás {target}",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index ea23d2ad3..bb9b4ee0f 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -1,649 +1,649 @@
 {
-  "about.blocks": "Moderated servers",
-  "about.contact": "Contact:",
-  "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
-  "about.domain_blocks.no_reason_available": "Reason not available",
-  "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
-  "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
-  "about.domain_blocks.silenced.title": "Limited",
-  "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
-  "about.domain_blocks.suspended.title": "Suspended",
-  "about.not_available": "This information has not been made available on this server.",
-  "about.powered_by": "Decentralized social media powered by {mastodon}",
-  "about.rules": "Server rules",
-  "account.account_note_header": "Note",
-  "account.add_or_remove_from_list": "Add or Remove from lists",
+  "about.blocks": "Moderirani serveri",
+  "about.contact": "Kontakt:",
+  "about.disclaimer": "Mastodon je besplatan softver otvorenog koda i zaštićeni znak kompanije Mastodon gGmbH.",
+  "about.domain_blocks.no_reason_available": "Razlog nije naveden",
+  "about.domain_blocks.preamble": "Mastodon vam generalno omogućava da vidite sadržaj i komunicirate sa korisnicima sa bilo kog drugog servera u fediverzumu. Ovo su izuzeci koji su napravljeni na ovom serveru.",
+  "about.domain_blocks.silenced.explanation": "U načelu nećete videti profile i sadržaj sa ovog servera, osim ako ga eksplicitno ne potražite ili se uključite tako što ćete ga pratiti.",
+  "about.domain_blocks.silenced.title": "Ograničen",
+  "about.domain_blocks.suspended.explanation": "Podaci sa ovog servera neće se obrađivati, čuvati ili razmenjivati, što onemogućava bilo kakvu interakciju ili komunikaciju sa korisnicima sa ovog servera.",
+  "about.domain_blocks.suspended.title": "Suspendovan",
+  "about.not_available": "Ove informacije nisu dostupne na ovom serveru.",
+  "about.powered_by": "Decentralizovana društvena medija koju pokreće {mastodon}",
+  "about.rules": "Pravila servera",
+  "account.account_note_header": "Napomena",
+  "account.add_or_remove_from_list": "Dodaj ili ukloni sa lista",
   "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
-  "account.block": "Blokiraj korisnika @{name}",
-  "account.block_domain": "Sakrij sve sa domena {domain}",
-  "account.blocked": "Blocked",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
-  "account.cancel_follow_request": "Withdraw follow request",
-  "account.direct": "Direct Message @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Domain hidden",
-  "account.edit_profile": "Izmeni profil",
-  "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Feature on profile",
-  "account.featured_tags.last_status_at": "Last post on {date}",
-  "account.featured_tags.last_status_never": "No posts",
-  "account.featured_tags.title": "{name}'s featured hashtags",
-  "account.follow": "Zaprati",
-  "account.followers": "Pratioca",
-  "account.followers.empty": "No one follows this user yet.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following": "Following",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
-  "account.follows.empty": "This user doesn't follow anyone yet.",
-  "account.follows_you": "Prati Vas",
-  "account.go_to_profile": "Go to profile",
-  "account.hide_reblogs": "Sakrij podrške koje daje korisnika @{name}",
-  "account.joined_short": "Joined",
-  "account.languages": "Change subscribed languages",
-  "account.link_verified_on": "Ownership of this link was checked on {date}",
-  "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
-  "account.media": "Mediji",
+  "account.badges.group": "Grupa",
+  "account.block": "Blokiraj @{name}",
+  "account.block_domain": "Blokiraj domen {domain}",
+  "account.blocked": "Blokiran",
+  "account.browse_more_on_origin_server": "Pregledajte još na originalnom profilu",
+  "account.cancel_follow_request": "Povuci zahtev za praćenje",
+  "account.direct": "Direktna poruka @{name}",
+  "account.disable_notifications": "Zaustavi obaveštavanje za objave korisnika @{name}",
+  "account.domain_blocked": "Domen je blokiran",
+  "account.edit_profile": "Uredi profil",
+  "account.enable_notifications": "Obavesti me kada @{name} objavi",
+  "account.endorse": "Istakni na profilu",
+  "account.featured_tags.last_status_at": "Poslednja objava {date}",
+  "account.featured_tags.last_status_never": "Nema objava",
+  "account.featured_tags.title": "Istaknute heš oznake korisnika {name}",
+  "account.follow": "Prati",
+  "account.followers": "Pratioci",
+  "account.followers.empty": "Još uvek niko ne prati ovog korisnika.",
+  "account.followers_counter": "{count, plural, one {{counter} pratilac} few {{counter} pratioca} other {{counter} pratilaca}}",
+  "account.following": "Prati",
+  "account.following_counter": "{count, plural, one {{counter} prati} few {{counter} prati} other {{counter} prati}}",
+  "account.follows.empty": "Ovaj korisnik još uvek nikog ne prati.",
+  "account.follows_you": "Prati vas",
+  "account.go_to_profile": "Idi na profil",
+  "account.hide_reblogs": "Sakrij podržavanja od @{name}",
+  "account.joined_short": "Pridružio se",
+  "account.languages": "Promeni pretplaćene jezike",
+  "account.link_verified_on": "Vlasništvo nad ovom vezom je provereno {date}",
+  "account.locked_info": "Status privatnosti ovog naloga je podešen na zaključano. Vlasnik ručno pregleda ko ga može pratiti.",
+  "account.media": "Multimedija",
   "account.mention": "Pomeni korisnika @{name}",
-  "account.moved_to": "{name} has indicated that their new account is now:",
-  "account.mute": "Ućutkaj korisnika @{name}",
-  "account.mute_notifications": "Isključi obaveštenja od korisnika @{name}",
-  "account.muted": "Muted",
-  "account.open_original_page": "Open original page",
-  "account.posts": "Statusa",
-  "account.posts_with_replies": "Toots with replies",
+  "account.moved_to": "Korisnik {name} je naznačio da je njegov novi nalog sada:",
+  "account.mute": "Ignoriši korisnika @{name}",
+  "account.mute_notifications": "Ignoriši obaveštenja od @{name}",
+  "account.muted": "Ignorisan",
+  "account.open_original_page": "Otvori originalnu stranicu",
+  "account.posts": "Objave",
+  "account.posts_with_replies": "Objave i odgovori",
   "account.report": "Prijavi @{name}",
-  "account.requested": "Čekam odobrenje. Kliknite da poništite zahtev za praćenje",
+  "account.requested": "Čekanje odobrenja. Kliknite za otkazivanje zahteva za praćenje",
   "account.share": "Podeli profil korisnika @{name}",
-  "account.show_reblogs": "Prikaži podrške od korisnika @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.show_reblogs": "Prikaži podržavanja od korisnika @{name}",
+  "account.statuses_counter": "{count, plural, one {{counter} objavio} few {{counter} objavio} other {{counter} objavio}}",
   "account.unblock": "Odblokiraj korisnika @{name}",
   "account.unblock_domain": "Odblokiraj domen {domain}",
-  "account.unblock_short": "Unblock",
-  "account.unendorse": "Don't feature on profile",
+  "account.unblock_short": "Odblokiraj",
+  "account.unendorse": "Ne ističi na profilu",
   "account.unfollow": "Otprati",
-  "account.unmute": "Ukloni ućutkavanje korisniku @{name}",
-  "account.unmute_notifications": "Uključi nazad obaveštenja od korisnika @{name}",
-  "account.unmute_short": "Unmute",
-  "account_note.placeholder": "Click to add a note",
-  "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
-  "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
-  "admin.dashboard.retention.average": "Average",
-  "admin.dashboard.retention.cohort": "Sign-up month",
-  "admin.dashboard.retention.cohort_size": "New users",
-  "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Rate limited",
-  "alert.unexpected.message": "An unexpected error occurred.",
-  "alert.unexpected.title": "Oops!",
-  "announcement.announcement": "Announcement",
-  "attachments_list.unprocessed": "(unprocessed)",
-  "audio.hide": "Hide audio",
-  "autosuggest_hashtag.per_week": "{count} per week",
+  "account.unmute": "Ne ignoriši @{name}",
+  "account.unmute_notifications": "Ne ignoriši obaveštenja od @{name}",
+  "account.unmute_short": "Ne ignoriši",
+  "account_note.placeholder": "Kliknite da dodate napomenu",
+  "admin.dashboard.daily_retention": "Stopa zadržavanja korisnika po danima nakon registracije",
+  "admin.dashboard.monthly_retention": "Stopa zadržavanja korisnika po mesecima nakon registracije",
+  "admin.dashboard.retention.average": "Prosek",
+  "admin.dashboard.retention.cohort": "Mesec pristupanja",
+  "admin.dashboard.retention.cohort_size": "Novi korisnici",
+  "alert.rate_limited.message": "Pokušajte ponovo posle {retry_time, time, medium}.",
+  "alert.rate_limited.title": "Ograničenje zahteva",
+  "alert.unexpected.message": "Došlo je do neočekivane greške.",
+  "alert.unexpected.title": "Ups!",
+  "announcement.announcement": "Najava",
+  "attachments_list.unprocessed": "(neobrađeno)",
+  "audio.hide": "Sakrij audio",
+  "autosuggest_hashtag.per_week": "{count} nedeljno",
   "boost_modal.combo": "Možete pritisnuti {combo} da preskočite ovo sledeći put",
-  "bundle_column_error.copy_stacktrace": "Copy error report",
-  "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
-  "bundle_column_error.error.title": "Oh, no!",
-  "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
-  "bundle_column_error.network.title": "Network error",
+  "bundle_column_error.copy_stacktrace": "Kopiraj izveštaj o grešci",
+  "bundle_column_error.error.body": "Nije moguće prikazati traženu stranicu. Razlog može biti greška u našem kodu ili problem sa kompatibilnošću pretraživača.",
+  "bundle_column_error.error.title": "O, ne!",
+  "bundle_column_error.network.body": "Došlo je do greške pri pokušaju učitavanja ove stranice. Razlog može biti trenutni problem sa vašom internet vezom ili sa ovim serverom.",
+  "bundle_column_error.network.title": "Greška na mreži",
   "bundle_column_error.retry": "Pokušajte ponovo",
-  "bundle_column_error.return": "Go back home",
-  "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?",
+  "bundle_column_error.return": "Idi na početak",
+  "bundle_column_error.routing.body": "Nije moguće pronaći traženu stranicu. Da li ste sigurni da je URL u adresnom polju ispravan?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Zatvori",
   "bundle_modal_error.message": "Nešto nije bilo u redu pri učitavanju ove komponente.",
   "bundle_modal_error.retry": "Pokušajte ponovo",
-  "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
-  "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
-  "closed_registrations_modal.find_another_server": "Find another server",
-  "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
-  "closed_registrations_modal.title": "Signing up on Mastodon",
-  "column.about": "About",
+  "closed_registrations.other_server_instructions": "Pošto je Mastodon decentralizovan, možete napraviti nalog na drugom serveru ali i dalje komunicirati sa ovim.",
+  "closed_registrations_modal.description": "Kreiranje naloga na {domain} trenutno nije moguće, ali imajte u vidu da vam ne treba nalog zasebno na {domain} da biste koristili Mastodon.",
+  "closed_registrations_modal.find_another_server": "Pronađite drugi server",
+  "closed_registrations_modal.preamble": "Mastodon je decentralizovan, tako da bez obzira gde kreirate svoj nalog, moći ćete da pratite i komunicirate sa bilo kim na ovom serveru. Možete čak i sami da ga hostujete!",
+  "closed_registrations_modal.title": "Registracija za Mastodon",
+  "column.about": "Osnovni podaci",
   "column.blocks": "Blokirani korisnici",
-  "column.bookmarks": "Bookmarks",
-  "column.community": "Lokalna lajna",
-  "column.direct": "Direct messages",
-  "column.directory": "Browse profiles",
-  "column.domain_blocks": "Hidden domains",
-  "column.favourites": "Omiljeni",
+  "column.bookmarks": "Obeleživači",
+  "column.community": "Lokalna vremenska linija",
+  "column.direct": "Direktne poruke",
+  "column.directory": "Pregledaj profile",
+  "column.domain_blocks": "Blokirani domeni",
+  "column.favourites": "Omiljeno",
   "column.follow_requests": "Zahtevi za praćenje",
   "column.home": "Početna",
   "column.lists": "Liste",
-  "column.mutes": "Ućutkani korisnici",
+  "column.mutes": "Ignorisani korisnici",
   "column.notifications": "Obaveštenja",
-  "column.pins": "Prikačeni tutovi",
-  "column.public": "Federisana lajna",
+  "column.pins": "Zakačene objave",
+  "column.public": "Združena vremenska linija",
   "column_back_button.label": "Nazad",
-  "column_header.hide_settings": "Sakrij postavke",
-  "column_header.moveLeft_settings": "Pomeri kolonu ulevo",
-  "column_header.moveRight_settings": "Pomeri kolonu udesno",
-  "column_header.pin": "Prikači",
-  "column_header.show_settings": "Prikaži postavke",
+  "column_header.hide_settings": "Sakrij podešavanja",
+  "column_header.moveLeft_settings": "Premesti kolonu ulevo",
+  "column_header.moveRight_settings": "Premesti kolonu udesno",
+  "column_header.pin": "Zakači",
+  "column_header.show_settings": "Prikaži podešavanja",
   "column_header.unpin": "Otkači",
-  "column_subheading.settings": "Postavke",
-  "community.column_settings.local_only": "Local only",
-  "community.column_settings.media_only": "Media only",
-  "community.column_settings.remote_only": "Remote only",
-  "compose.language.change": "Change language",
-  "compose.language.search": "Search languages...",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
-  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
-  "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
-  "compose_form.lock_disclaimer": "Vaš nalog nije {locked}. Svako može da Vas zaprati i da vidi objave namenjene samo Vašim pratiocima.",
+  "column_subheading.settings": "Podešavanja",
+  "community.column_settings.local_only": "Samo lokalno",
+  "community.column_settings.media_only": "Samo multimedija",
+  "community.column_settings.remote_only": "Samo udaljeno",
+  "compose.language.change": "Promeni jezik",
+  "compose.language.search": "Pretraga jezika...",
+  "compose_form.direct_message_warning_learn_more": "Saznajte više",
+  "compose_form.encryption_warning": "Objave na Mastodon-u nisu potpuno šifrovane. Nemojte deliti nikakve osetljive informacije preko Mastodon-a.",
+  "compose_form.hashtag_warning": "Ova objava neće biti navedena ni pod jednom heš oznakom jer je nenavedena. Samo javne objave mogu se pretraživati po heš oznakama.",
+  "compose_form.lock_disclaimer": "Vaš nalog nije {locked}. Svako može da vas prati i da vidi vaše objave namenjene samo za vaše pratioce.",
   "compose_form.lock_disclaimer.lock": "zaključan",
-  "compose_form.placeholder": "Šta Vam je na umu?",
-  "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
-  "compose_form.publish": "Publish",
-  "compose_form.publish_form": "Publish",
+  "compose_form.placeholder": "O čemu razmišljate?",
+  "compose_form.poll.add_option": "Dodajte izbor",
+  "compose_form.poll.duration": "Trajanje ankete",
+  "compose_form.poll.option_placeholder": "Izbor {number}",
+  "compose_form.poll.remove_option": "Ukloni ovaj izbor",
+  "compose_form.poll.switch_to_multiple": "Promenite anketu da biste omogućili više izbora",
+  "compose_form.poll.switch_to_single": "Promenite anketu da biste omogućili jedan izbor",
+  "compose_form.publish": "Objavi",
+  "compose_form.publish_form": "Objavi",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Save changes",
-  "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
-  "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
-  "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
-  "compose_form.spoiler.marked": "Text is hidden behind warning",
-  "compose_form.spoiler.unmarked": "Text is not hidden",
-  "compose_form.spoiler_placeholder": "Ovde upišite upozorenje",
-  "confirmation_modal.cancel": "Poništi",
-  "confirmations.block.block_and_report": "Block & Report",
+  "compose_form.save_changes": "Sačuvaj promene",
+  "compose_form.sensitive.hide": "{count, plural, one {Označi multimediju kao osetljivu} few {Označi multimediju kao osetljivu} other {Označi multimediju kao osetljivu}}",
+  "compose_form.sensitive.marked": "{count, plural, one {Multimedija je označena kao osetljiva} few {Multimedija je označena kao osetljiva} other {Multimedija je označena kao osetljiva}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Multimedija nije označena kao osetljiva} few {Multimedija nije označena kao osetljiva} other {Multimedija nije označena kao osetljiva}}",
+  "compose_form.spoiler.marked": "Ukloni upozorenje o sadržaju",
+  "compose_form.spoiler.unmarked": "Dodaj upozorenje o sadržaju",
+  "compose_form.spoiler_placeholder": "Ovde napišite upozorenje",
+  "confirmation_modal.cancel": "Otkaži",
+  "confirmations.block.block_and_report": "Blokiraj i prijavi",
   "confirmations.block.confirm": "Blokiraj",
   "confirmations.block.message": "Da li ste sigurni da želite da blokirate korisnika {name}?",
-  "confirmations.cancel_follow_request.confirm": "Withdraw request",
-  "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
-  "confirmations.delete.confirm": "Obriši",
-  "confirmations.delete.message": "Da li ste sigurni da želite obrišete ovaj status?",
-  "confirmations.delete_list.confirm": "Obriši",
-  "confirmations.delete_list.message": "Da li ste sigurni da želite da bespovratno obrišete ovu listu?",
-  "confirmations.discard_edit_media.confirm": "Discard",
-  "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
-  "confirmations.domain_block.confirm": "Sakrij ceo domen",
-  "confirmations.domain_block.message": "Da li ste stvarno, stvarno sigurno da želite da blokirate ceo domen {domain}? U većini slučajeva, par dobrih blokiranja ili ućutkavanja su dovoljna i preporučljiva.",
-  "confirmations.logout.confirm": "Log out",
-  "confirmations.logout.message": "Are you sure you want to log out?",
-  "confirmations.mute.confirm": "Ućutkaj",
-  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
-  "confirmations.mute.message": "Da li stvarno želite da ućutkate korisnika {name}?",
-  "confirmations.redraft.confirm": "Delete & redraft",
-  "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
-  "confirmations.reply.confirm": "Reply",
-  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+  "confirmations.cancel_follow_request.confirm": "Povuci zahtev",
+  "confirmations.cancel_follow_request.message": "Da li ste sigurni da želite da povučete zahtev da pratite {name}?",
+  "confirmations.delete.confirm": "Izbriši",
+  "confirmations.delete.message": "Da li ste sigurni da želite izrišete ovu objavu?",
+  "confirmations.delete_list.confirm": "Izbriši",
+  "confirmations.delete_list.message": "Da li ste sigurni da želite da trajno izbrišete ovu listu?",
+  "confirmations.discard_edit_media.confirm": "Odbaci",
+  "confirmations.discard_edit_media.message": "Imate nesačuvane promene u opisu ili pregledu medija, da li ipak hoćete da ih odbacite?",
+  "confirmations.domain_block.confirm": "Blokiraj ceo domen",
+  "confirmations.domain_block.message": "Da li ste zaista sigurni da želite da blokirate ceo domen {domain}? U većini slučajeva, dovoljno je i poželjno nekoliko ciljanih blokiranja ili ignorisanja. Nećete videti sadržaj sa tog domena ni u jednoj javnoj vremenskoj liniji ili u vašim obaveštenjima. Vaši pratioci sa tog domena će biti uklonjeni.",
+  "confirmations.logout.confirm": "Odjavi se",
+  "confirmations.logout.message": "Da li se sigurni da želite da se odjavite?",
+  "confirmations.mute.confirm": "Ignoriši",
+  "confirmations.mute.explanation": "Ovo će sakriti objave od korisnika i objave koje ga pominju, ali će mu i dalje biti dozvoljeno da vidi vaše objave i da vas prati.",
+  "confirmations.mute.message": "Da li stvarno želite da ignorišete korisnika {name}?",
+  "confirmations.redraft.confirm": "Izbriši i prepravi",
+  "confirmations.redraft.message": "Da li ste sigurni da želite da izbrišete ovu objavu i da je prepravite? Podržavanja i oznake kao omiljenih će biti izgubljeni, a odgovori će ostati bez originalne objave.",
+  "confirmations.reply.confirm": "Odgovori",
+  "confirmations.reply.message": "Odgovaranjem ćete obrisati poruku koju sastavljate. Da li sigurni da želite da nastavite?",
   "confirmations.unfollow.confirm": "Otprati",
   "confirmations.unfollow.message": "Da li ste sigurni da želite da otpratite korisnika {name}?",
-  "conversation.delete": "Delete conversation",
-  "conversation.mark_as_read": "Mark as read",
-  "conversation.open": "View conversation",
-  "conversation.with": "With {names}",
-  "copypaste.copied": "Copied",
-  "copypaste.copy": "Copy",
-  "directory.federated": "From known fediverse",
-  "directory.local": "From {domain} only",
-  "directory.new_arrivals": "New arrivals",
-  "directory.recently_active": "Recently active",
-  "disabled_account_banner.account_settings": "Account settings",
-  "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
-  "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
-  "dismissable_banner.dismiss": "Dismiss",
-  "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
-  "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
-  "embed.instructions": "Ugradi ovaj status na Vaš veb sajt kopiranjem koda ispod.",
-  "embed.preview": "Ovako će da izgleda:",
+  "conversation.delete": "Izbriši razgovor",
+  "conversation.mark_as_read": "Označi kao pročitano",
+  "conversation.open": "Prikaži razgovor",
+  "conversation.with": "Sa {names}",
+  "copypaste.copied": "Kopirano",
+  "copypaste.copy": "Kopiraj",
+  "directory.federated": "Sa znanog fideverzuma",
+  "directory.local": "Samo sa {domain}",
+  "directory.new_arrivals": "Novopridošli",
+  "directory.recently_active": "Nedavno aktivni",
+  "disabled_account_banner.account_settings": "Podešavanja naloga",
+  "disabled_account_banner.text": "Vaš nalog {disabledAccount} je trenutno onemogućen.",
+  "dismissable_banner.community_timeline": "Ovo su najnovije javne objave ljudi čije naloge hostuje {domain}.",
+  "dismissable_banner.dismiss": "Odbaci",
+  "dismissable_banner.explore_links": "O ovim vestima upravo sada razgovaraju ljudi na ovom i drugim serverima decentralizovane mreže.",
+  "dismissable_banner.explore_statuses": "Ove objave sa ovog i drugih servera u decentralizovanoj mreži postaju sve popularnije na ovom serveru.",
+  "dismissable_banner.explore_tags": "Ove heš oznake postaju sve popularnije među ljudima na ovom i drugim serverima decentralizovane mreže.",
+  "dismissable_banner.public_timeline": "Ovo su najnovije javne objave ljudi na ovom i drugim serverima decentralizovane mreže za koje ovaj server zna.",
+  "embed.instructions": "Ugradite ovu objavu na svoj veb sajt kopiranjem koda ispod.",
+  "embed.preview": "Evo kako će to izgledati:",
   "emoji_button.activity": "Aktivnost",
-  "emoji_button.clear": "Clear",
-  "emoji_button.custom": "Proizvoljno",
-  "emoji_button.flags": "Zastave",
-  "emoji_button.food": "Hrana & piće",
-  "emoji_button.label": "Ubaci smajli",
+  "emoji_button.clear": "Obriši",
+  "emoji_button.custom": "Prilagođeno",
+  "emoji_button.flags": "Zastavice",
+  "emoji_button.food": "Hrana i piće",
+  "emoji_button.label": "Ubaci emodži",
   "emoji_button.nature": "Priroda",
-  "emoji_button.not_found": "Nema smajlija!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "Nema pronađih odgovarajućih emodžija",
   "emoji_button.objects": "Objekti",
   "emoji_button.people": "Ljudi",
   "emoji_button.recent": "Najčešće korišćeni",
   "emoji_button.search": "Pretraga...",
   "emoji_button.search_results": "Rezultati pretrage",
   "emoji_button.symbols": "Simboli",
-  "emoji_button.travel": "Putovanja & mesta",
-  "empty_column.account_suspended": "Account suspended",
-  "empty_column.account_timeline": "No toots here!",
-  "empty_column.account_unavailable": "Profile unavailable",
-  "empty_column.blocks": "You haven't blocked any users yet.",
-  "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
-  "empty_column.community": "Lokalna lajna je prazna. Napišite nešto javno da lajna produva!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
-  "empty_column.domain_blocks": "There are no hidden domains yet.",
-  "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
-  "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
-  "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
-  "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
-  "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
-  "empty_column.hashtag": "Trenutno nema ništa na ovom heštegu.",
-  "empty_column.home": "Vaša lajna je prazna! Posetite {public} ili koristite pretragu da počnete i upoznajete nove ljude.",
-  "empty_column.home.suggestions": "See some suggestions",
-  "empty_column.list": "U ovoj listi još nema ničega. Kada članovi liste objave nove statuse, oni će se pojavljivati ovde.",
-  "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
-  "empty_column.mutes": "You haven't muted any users yet.",
-  "empty_column.notifications": "Trenutno nemate obaveštenja. Družite se malo da započnete razgovore.",
-  "empty_column.public": "Ovde nema ničega! Napišite nešto javno, ili nađite korisnike sa drugih instanci koje ćete zapratiti da popunite ovu prazninu",
-  "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
-  "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
-  "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
-  "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
-  "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
-  "errors.unexpected_crash.report_issue": "Report issue",
-  "explore.search_results": "Search results",
-  "explore.title": "Explore",
-  "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
-  "filter_modal.added.context_mismatch_title": "Context mismatch!",
-  "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
-  "filter_modal.added.expired_title": "Expired filter!",
-  "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
-  "filter_modal.added.review_and_configure_title": "Filter settings",
-  "filter_modal.added.settings_link": "settings page",
-  "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
-  "filter_modal.added.title": "Filter added!",
-  "filter_modal.select_filter.context_mismatch": "does not apply to this context",
-  "filter_modal.select_filter.expired": "expired",
-  "filter_modal.select_filter.prompt_new": "New category: {name}",
-  "filter_modal.select_filter.search": "Search or create",
-  "filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
-  "filter_modal.select_filter.title": "Filter this post",
-  "filter_modal.title.status": "Filter a post",
-  "follow_recommendations.done": "Done",
-  "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
-  "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
+  "emoji_button.travel": "Putovanja i mesta",
+  "empty_column.account_suspended": "Nalog je suspendovan",
+  "empty_column.account_timeline": "Nema objava ovde!",
+  "empty_column.account_unavailable": "Profil je nedostupan",
+  "empty_column.blocks": "Još uvek niste blokirali nijednog korisnika.",
+  "empty_column.bookmarked_statuses": "Još uvek nemate objava dodanih u obeleživače. Kada dodate neku, pojaviće se ovde.",
+  "empty_column.community": "Lokalna vremenska linija je prazna. Napišite nešto javno da započnete!",
+  "empty_column.direct": "Još uvek nemate nijednu direktnu poruku. Kada pošaljete ili primite neku, pojaviće se ovde.",
+  "empty_column.domain_blocks": "Još uvek nema blokiranih domena.",
+  "empty_column.explore_statuses": "Trenutno ništa nije u trendu. Proverite ponovo kasnije!",
+  "empty_column.favourited_statuses": "Još uvek nemate objava označenih kao omiljene. Kada označite neku, pojaviće se ovde.",
+  "empty_column.favourites": "Niko još nije označio ovu objavu kao omiljenu. Kada neko to uradi, pojaviće se ovde.",
+  "empty_column.follow_recommendations": "Izgleda da ne mogu da se generišu bilo kakvi predlozi za vas. Možete pokušati da koristite pretragu kako biste potražili ljude koje možda poznajete ili istražili popularne heš oznake.",
+  "empty_column.follow_requests": "Još uvek nemate zahteva za praćenje. Kada primite zahtev, pojaviće se ovde.",
+  "empty_column.hashtag": "Još uvek nema ničega u ovoj heš oznaci.",
+  "empty_column.home": "Vaša početna vremenska linija je prazna! Pratite više ljudi da biste je popunili. {suggestions}",
+  "empty_column.home.suggestions": "Pogledajte neke predloge",
+  "empty_column.list": "U ovoj listi još nema ničega. Kada članovi ove liste objave nešto novo, pojaviće se ovde.",
+  "empty_column.lists": "Još uvek nemate nijednu listu. Kada napravite jednu, pojaviće se ovde.",
+  "empty_column.mutes": "Još uvek ne ignorišete nijednog korisnika.",
+  "empty_column.notifications": "Još uvek nemate nikakva obaveštenja. Kada drugi ljudi budu u interakciji sa vama, videćete to ovde.",
+  "empty_column.public": "Ovde nema ničega! Napišite nešto javno ili ručno pratite korisnike sa drugih servera da biste ovo popunili",
+  "error.unexpected_crash.explanation": "Zbog greške u našem kodu ili problema sa kompatibilnošću pregledača, ova stranica se nije mogla pravilno prikazati.",
+  "error.unexpected_crash.explanation_addons": "Ova stranica se nije mogla pravilno prikazati. Ovu grešku verovatno uzrokuju dodaci pregledača ili alati za automatsko prevođenje.",
+  "error.unexpected_crash.next_steps": "Pokušajte da osvežite stranicu. Ako to ne pomogne, možda ćete i dalje moći da koristite Mastodon putem drugog pregledača ili matične aplikacije.",
+  "error.unexpected_crash.next_steps_addons": "Pokušajte da ih onemogućite i osvežite stranicu. Ako to ne pomogne, možda ćete i dalje moći da koristite Mastodon preko drugog pregledača ili matične aplikacije.",
+  "errors.unexpected_crash.copy_stacktrace": "Kopiraj „stacktrace” u klipbord",
+  "errors.unexpected_crash.report_issue": "Prijavi problem",
+  "explore.search_results": "Rezultati pretrage",
+  "explore.title": "Istraži",
+  "filter_modal.added.context_mismatch_explanation": "Ova kategorija filtera se ne odnosi na kontekst u kojem ste pristupili ovoj objavi. Ako želite da se objava filtrira i u ovom kontekstu, morate urediti filter.",
+  "filter_modal.added.context_mismatch_title": "Kontekst se ne podudara!",
+  "filter_modal.added.expired_explanation": "Ova kategorija filtera je istekla, morate promeniti datum isteka da bi se primenjivala.",
+  "filter_modal.added.expired_title": "Filter je istekao!",
+  "filter_modal.added.review_and_configure": "Za pregled i dalju konfiguraciju ove kategorije filtera, idite na {settings_link}.",
+  "filter_modal.added.review_and_configure_title": "Podešavanja filtera",
+  "filter_modal.added.settings_link": "stranica podešavanja",
+  "filter_modal.added.short_explanation": "Ova objava je dodata u sledeću kategoriju filtera: {title}.",
+  "filter_modal.added.title": "Filter je dodat!",
+  "filter_modal.select_filter.context_mismatch": "ne odnosi se na ovaj kontekst",
+  "filter_modal.select_filter.expired": "isteklo",
+  "filter_modal.select_filter.prompt_new": "Nova kategorija: {name}",
+  "filter_modal.select_filter.search": "Pretraži ili kreiraj",
+  "filter_modal.select_filter.subtitle": "Koristite postojeću kategoriju ili kreirajte novu",
+  "filter_modal.select_filter.title": "Filtriraj ovu objavu",
+  "filter_modal.title.status": "Filtriraj objavu",
+  "follow_recommendations.done": "Gotovo",
+  "follow_recommendations.heading": "Pratite ljude čije objave želite da vidite! Evo nekih predloga.",
+  "follow_recommendations.lead": "Objave korisnika koje pratite će se pojavljivati hronološkim redosledom na početnoj stranici. Ne plašite se grešaka, možete otpratiti korisnike u bilo kom trenutku!",
   "follow_request.authorize": "Odobri",
   "follow_request.reject": "Odbij",
-  "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
-  "footer.about": "About",
-  "footer.directory": "Profiles directory",
-  "footer.get_app": "Get the app",
-  "footer.invite": "Invite people",
-  "footer.keyboard_shortcuts": "Keyboard shortcuts",
-  "footer.privacy_policy": "Privacy policy",
-  "footer.source_code": "View source code",
-  "generic.saved": "Saved",
-  "getting_started.heading": "Da počnete",
-  "hashtag.column_header.tag_mode.all": "and {additional}",
-  "hashtag.column_header.tag_mode.any": "or {additional}",
-  "hashtag.column_header.tag_mode.none": "without {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
-  "hashtag.column_settings.tag_mode.all": "All of these",
-  "hashtag.column_settings.tag_mode.any": "Any of these",
-  "hashtag.column_settings.tag_mode.none": "None of these",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
-  "hashtag.follow": "Follow hashtag",
-  "hashtag.unfollow": "Unfollow hashtag",
+  "follow_requests.unlocked_explanation": "Iako vaš nalog nije zaključan, osoblje {domain} smatra da biste možda želeli da ručno pregledate zahteve za praćenje sa ovih naloga.",
+  "footer.about": "Osnovni podaci",
+  "footer.directory": "Direktorijum profila",
+  "footer.get_app": "Preuzmite aplikaciju",
+  "footer.invite": "Pozovi osobe",
+  "footer.keyboard_shortcuts": "Tasterske prečice",
+  "footer.privacy_policy": "Politika privatnosti",
+  "footer.source_code": "Prikaži izvorni kod",
+  "generic.saved": "Sačuvano",
+  "getting_started.heading": "Prvi koraci",
+  "hashtag.column_header.tag_mode.all": "i {additional}",
+  "hashtag.column_header.tag_mode.any": "ili {additional}",
+  "hashtag.column_header.tag_mode.none": "bez {additional}",
+  "hashtag.column_settings.select.no_options_message": "Nisu pronađeni predlozi",
+  "hashtag.column_settings.select.placeholder": "Unesite heš oznake…",
+  "hashtag.column_settings.tag_mode.all": "Sve ove",
+  "hashtag.column_settings.tag_mode.any": "Bilo koje od ovih",
+  "hashtag.column_settings.tag_mode.none": "Nijedan od ovih",
+  "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovu kolonu",
+  "hashtag.follow": "Prati heš oznaku",
+  "hashtag.unfollow": "Otprati heš oznaku",
   "home.column_settings.basic": "Osnovno",
-  "home.column_settings.show_reblogs": "Prikaži i podržavanja",
+  "home.column_settings.show_reblogs": "Prikaži podržavanja",
   "home.column_settings.show_replies": "Prikaži odgovore",
-  "home.hide_announcements": "Hide announcements",
-  "home.show_announcements": "Show announcements",
-  "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
-  "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
-  "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
-  "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
-  "interaction_modal.on_another_server": "On a different server",
-  "interaction_modal.on_this_server": "On this server",
-  "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
-  "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
-  "interaction_modal.title.favourite": "Favourite {name}'s post",
-  "interaction_modal.title.follow": "Follow {name}",
-  "interaction_modal.title.reblog": "Boost {name}'s post",
-  "interaction_modal.title.reply": "Reply to {name}'s post",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
-  "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
-  "keyboard_shortcuts.back": "da odete nazad",
-  "keyboard_shortcuts.blocked": "to open blocked users list",
-  "keyboard_shortcuts.boost": "da podržite",
-  "keyboard_shortcuts.column": "da se prebacite na status u jednoj od kolona",
-  "keyboard_shortcuts.compose": "da se prebacite na pisanje novog tuta",
+  "home.hide_announcements": "Sakrij najave",
+  "home.show_announcements": "Prijaži najave",
+  "interaction_modal.description.favourite": "Sa nalogom na Mastodon-u, možete označiti ovu objavu kao omiljenu kako biste dali do znanja autoru da vam se sviđa i sačuvali je za kasnije.",
+  "interaction_modal.description.follow": "Sa nalogom na Mastodon-u, možete pratiti korisnika {name} kako biste primali njegove objave na početnoj stranici.",
+  "interaction_modal.description.reblog": "Sa nalogom na Mastodon-u, možete podržati ovu objavu kako bite je podelili sa svojim pratiocima.",
+  "interaction_modal.description.reply": "Sa nalogom na Mastodon-u, možete odgovoriti na ovu objavu.",
+  "interaction_modal.on_another_server": "Na drugom serveru",
+  "interaction_modal.on_this_server": "Na ovom serveru",
+  "interaction_modal.other_server_instructions": "Kopirajte i nalepite ovu URL adresu u polje pretrage svoje omiljene Mastodon aplikacije ili veb okruženje svog Mastodon servera.",
+  "interaction_modal.preamble": "Pošto je Mastodon decentralizovan, možete koristiti svoj postojeći nalog koji hostuje drugi Mastodon server ili kompatibilna platforma ako nemate nalog na ovom.",
+  "interaction_modal.title.favourite": "Označi objavu korisnika {name} kao omiljenu",
+  "interaction_modal.title.follow": "Prati {name}",
+  "interaction_modal.title.reblog": "Podrži objavu korisnika {name}",
+  "interaction_modal.title.reply": "Odgovori na objavu korisnika {name}",
+  "intervals.full.days": "{number, plural, one {# dan} few {# dana} other {# dana}}",
+  "intervals.full.hours": "{number, plural, one {# sat} few {# sata} other {# sati}}",
+  "intervals.full.minutes": "{number, plural, one {# minut} few {# minuta} other {# minuta}}",
+  "keyboard_shortcuts.back": "Idi nazad",
+  "keyboard_shortcuts.blocked": "Otvori listu blokiranih korisnika",
+  "keyboard_shortcuts.boost": "Podrži objavu",
+  "keyboard_shortcuts.column": "Fokusiraj kolonu",
+  "keyboard_shortcuts.compose": "Fokusiraj polje za sastavljanje objave",
   "keyboard_shortcuts.description": "Opis",
-  "keyboard_shortcuts.direct": "to open direct messages column",
-  "keyboard_shortcuts.down": "da se pomerite na dole u listi",
-  "keyboard_shortcuts.enter": "da otvorite status",
-  "keyboard_shortcuts.favourite": "da označite kao omiljeno",
-  "keyboard_shortcuts.favourites": "to open favourites list",
-  "keyboard_shortcuts.federated": "to open federated timeline",
-  "keyboard_shortcuts.heading": "Prečice na tastaturi",
-  "keyboard_shortcuts.home": "to open home timeline",
+  "keyboard_shortcuts.direct": "za otvaranje kolone direktnih poruka",
+  "keyboard_shortcuts.down": "Premesti nadole u listi",
+  "keyboard_shortcuts.enter": "Otvori objavu",
+  "keyboard_shortcuts.favourite": "Označi objavu kao omiljenu",
+  "keyboard_shortcuts.favourites": "Otvori listu omiljenih",
+  "keyboard_shortcuts.federated": "Otvori združenu vremensku liniju",
+  "keyboard_shortcuts.heading": "Tasterske prečice",
+  "keyboard_shortcuts.home": "Otvori početnu vremensku liniju",
   "keyboard_shortcuts.hotkey": "Prečica",
-  "keyboard_shortcuts.legend": "da prikažete ovaj podsetnik",
-  "keyboard_shortcuts.local": "to open local timeline",
-  "keyboard_shortcuts.mention": "da pomenete autora",
-  "keyboard_shortcuts.muted": "to open muted users list",
-  "keyboard_shortcuts.my_profile": "to open your profile",
-  "keyboard_shortcuts.notifications": "to open notifications column",
-  "keyboard_shortcuts.open_media": "to open media",
-  "keyboard_shortcuts.pinned": "to open pinned toots list",
-  "keyboard_shortcuts.profile": "to open author's profile",
-  "keyboard_shortcuts.reply": "da odgovorite",
-  "keyboard_shortcuts.requests": "to open follow requests list",
-  "keyboard_shortcuts.search": "da se prebacite na pretragu",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
-  "keyboard_shortcuts.start": "to open \"get started\" column",
-  "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
-  "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
-  "keyboard_shortcuts.toot": "da započnete skroz novi tut",
-  "keyboard_shortcuts.unfocus": "da ne budete više na pretrazi/pravljenju novog tuta",
-  "keyboard_shortcuts.up": "da se pomerite na gore u listi",
+  "keyboard_shortcuts.legend": "Prikaži ovu legendu",
+  "keyboard_shortcuts.local": "Otvori lokalnu vremensku liniju",
+  "keyboard_shortcuts.mention": "Pomeni autora",
+  "keyboard_shortcuts.muted": "Otvori listu ignorisanih korisnika",
+  "keyboard_shortcuts.my_profile": "Otvorite svoj profil",
+  "keyboard_shortcuts.notifications": "Otvori kolonu obaveštenja",
+  "keyboard_shortcuts.open_media": "Otvori multimediju",
+  "keyboard_shortcuts.pinned": "Otvori listu zakačenih objava",
+  "keyboard_shortcuts.profile": "Otvori profil autora",
+  "keyboard_shortcuts.reply": "Odgovori na objavu",
+  "keyboard_shortcuts.requests": "Otvori listu zahteva za praćenje",
+  "keyboard_shortcuts.search": "Fokusiraj traku pretrage",
+  "keyboard_shortcuts.spoilers": "Prikaži/sakrij polje teksta upozorenja o sadržaju (CW)",
+  "keyboard_shortcuts.start": "Otvori kolonu „prvi koraci”",
+  "keyboard_shortcuts.toggle_hidden": "Prikaži/sakrij tekst iza CW-a",
+  "keyboard_shortcuts.toggle_sensitivity": "Prikaži/sakrij multimediju",
+  "keyboard_shortcuts.toot": "Započni novu objavu",
+  "keyboard_shortcuts.unfocus": "Ukloni fokus sa polja za unos teksta/pretrage",
+  "keyboard_shortcuts.up": "Premesti nagore u listi",
   "lightbox.close": "Zatvori",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
-  "lightbox.next": "Sledeći",
-  "lightbox.previous": "Prethodni",
-  "limited_account_hint.action": "Show profile anyway",
-  "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
+  "lightbox.compress": "Komprimuj okvir za prikaz slike",
+  "lightbox.expand": "Proširi okvir za prikaz slike",
+  "lightbox.next": "Sledeće",
+  "lightbox.previous": "Prethodno",
+  "limited_account_hint.action": "Ipak prikaži profil",
+  "limited_account_hint.title": "Ovaj profil su sakrili moderatori {domain}.",
   "lists.account.add": "Dodaj na listu",
   "lists.account.remove": "Ukloni sa liste",
-  "lists.delete": "Obriši listu",
-  "lists.edit": "Izmeni listu",
-  "lists.edit.submit": "Change title",
+  "lists.delete": "Izbriši listu",
+  "lists.edit": "Uredi listu",
+  "lists.edit.submit": "Promeni naslov",
   "lists.new.create": "Dodaj listu",
   "lists.new.title_placeholder": "Naslov nove liste",
-  "lists.replies_policy.followed": "Any followed user",
-  "lists.replies_policy.list": "Members of the list",
-  "lists.replies_policy.none": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.followed": "Svaki praćeni korisnik",
+  "lists.replies_policy.list": "Članovi liste",
+  "lists.replies_policy.none": "Niko",
+  "lists.replies_policy.title": "Prikaži odgovore na:",
   "lists.search": "Pretraži među ljudima koje pratite",
   "lists.subheading": "Vaše liste",
-  "load_pending": "{count, plural, one {# new item} other {# new items}}",
-  "loading_indicator.label": "Učitavam...",
-  "media_gallery.toggle_visible": "Uključi/isključi vidljivost",
+  "load_pending": "{count, plural, one {# nova stavka} few {# nove stavke} other {# novih stavki}}",
+  "loading_indicator.label": "Učitavanje...",
+  "media_gallery.toggle_visible": "{number, plural, one {Sakrij sliku} few {Sakrij slike} other {Sakrij slike}}",
   "missing_indicator.label": "Nije pronađeno",
-  "missing_indicator.sublabel": "This resource could not be found",
-  "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
-  "mute_modal.duration": "Duration",
-  "mute_modal.hide_notifications": "Sakrij obaveštenja od ovog korisnika?",
-  "mute_modal.indefinite": "Indefinite",
-  "navigation_bar.about": "About",
+  "missing_indicator.sublabel": "Ovaj resurs nije moguće pronaći",
+  "moved_to_account_banner.text": "Vaš nalog {disabledAccount} je trenutno onemogućen jer ste prešli na {movedToAccount}.",
+  "mute_modal.duration": "Trajanje",
+  "mute_modal.hide_notifications": "Sakriti obaveštenja od ovog korisnika?",
+  "mute_modal.indefinite": "Neodređen",
+  "navigation_bar.about": "Osnovni podaci",
   "navigation_bar.blocks": "Blokirani korisnici",
-  "navigation_bar.bookmarks": "Bookmarks",
-  "navigation_bar.community_timeline": "Lokalna lajna",
-  "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
-  "navigation_bar.discover": "Discover",
-  "navigation_bar.domain_blocks": "Hidden domains",
-  "navigation_bar.edit_profile": "Izmeni profil",
-  "navigation_bar.explore": "Explore",
-  "navigation_bar.favourites": "Omiljeni",
-  "navigation_bar.filters": "Muted words",
+  "navigation_bar.bookmarks": "Obeleživači",
+  "navigation_bar.community_timeline": "Lokalna vremenska linija",
+  "navigation_bar.compose": "Sastavi novu objavu",
+  "navigation_bar.direct": "Direktne poruke",
+  "navigation_bar.discover": "Otkrij",
+  "navigation_bar.domain_blocks": "Blokirani domeni",
+  "navigation_bar.edit_profile": "Uredi profil",
+  "navigation_bar.explore": "Istraži",
+  "navigation_bar.favourites": "Omiljeno",
+  "navigation_bar.filters": "Ignorisane reči",
   "navigation_bar.follow_requests": "Zahtevi za praćenje",
-  "navigation_bar.follows_and_followers": "Follows and followers",
+  "navigation_bar.follows_and_followers": "Praćenja i pratioci",
   "navigation_bar.lists": "Liste",
   "navigation_bar.logout": "Odjava",
-  "navigation_bar.mutes": "Ućutkani korisnici",
-  "navigation_bar.personal": "Personal",
-  "navigation_bar.pins": "Prikačeni tutovi",
+  "navigation_bar.mutes": "Ignorisani korisnici",
+  "navigation_bar.personal": "Lično",
+  "navigation_bar.pins": "Zakačene objave",
   "navigation_bar.preferences": "Podešavanja",
-  "navigation_bar.public_timeline": "Federisana lajna",
-  "navigation_bar.search": "Search",
-  "navigation_bar.security": "Security",
-  "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
-  "notification.admin.report": "{name} reported {target}",
-  "notification.admin.sign_up": "{name} signed up",
-  "notification.favourite": "{name} je stavio Vaš status kao omiljeni",
-  "notification.follow": "{name} Vas je zapratio",
-  "notification.follow_request": "{name} has requested to follow you",
-  "notification.mention": "{name} Vas je pomenuo",
-  "notification.own_poll": "Your poll has ended",
-  "notification.poll": "A poll you have voted in has ended",
-  "notification.reblog": "{name} je podržao(la) Vaš status",
-  "notification.status": "{name} just posted",
-  "notification.update": "{name} edited a post",
-  "notifications.clear": "Očisti obaveštenja",
-  "notifications.clear_confirmation": "Da li ste sigurno da trajno želite da očistite Vaša obaveštenja?",
-  "notifications.column_settings.admin.report": "New reports:",
-  "notifications.column_settings.admin.sign_up": "New sign-ups:",
+  "navigation_bar.public_timeline": "Združena vremenska linija",
+  "navigation_bar.search": "Pretraga",
+  "navigation_bar.security": "Bezbednost",
+  "not_signed_in_indicator.not_signed_in": "Morate da se prijavite da pristupite ovom resursu.",
+  "notification.admin.report": "{name} je prijavio {target}",
+  "notification.admin.sign_up": "{name} se registrovao",
+  "notification.favourite": "{name} je označio vašu objavu kao omiljenu",
+  "notification.follow": "{name} vas je zapratio",
+  "notification.follow_request": "{name} je zatražio da vas prati",
+  "notification.mention": "{name} vas je pomenuo",
+  "notification.own_poll": "Vaša anketa je završena",
+  "notification.poll": "Završena je anketa u kojoj ste glasali",
+  "notification.reblog": "{name} je podržao vašu objavu",
+  "notification.status": "{name} je upravo objavio",
+  "notification.update": "{name} je uredio objavu",
+  "notifications.clear": "Obriši obaveštenja",
+  "notifications.clear_confirmation": "Da li ste sigurni da želite trajno da obrišete sva vaša obaveštenja?",
+  "notifications.column_settings.admin.report": "Nove prijave:",
+  "notifications.column_settings.admin.sign_up": "Nove ragistracije:",
   "notifications.column_settings.alert": "Obaveštenja na radnoj površini",
   "notifications.column_settings.favourite": "Omiljeni:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
-  "notifications.column_settings.filter_bar.show_bar": "Show filter bar",
+  "notifications.column_settings.filter_bar.advanced": "Prikaži sve kategorije",
+  "notifications.column_settings.filter_bar.category": "Traka za brzi filter",
+  "notifications.column_settings.filter_bar.show_bar": "Prikaži traku sa filterima",
   "notifications.column_settings.follow": "Novi pratioci:",
-  "notifications.column_settings.follow_request": "New follow requests:",
+  "notifications.column_settings.follow_request": "Novi zahtevi za praćenje:",
   "notifications.column_settings.mention": "Pominjanja:",
-  "notifications.column_settings.poll": "Poll results:",
-  "notifications.column_settings.push": "Guraj obaveštenja",
-  "notifications.column_settings.reblog": "Podrški:",
+  "notifications.column_settings.poll": "Rezultati ankete:",
+  "notifications.column_settings.push": "Prosleđena obaveštenja",
+  "notifications.column_settings.reblog": "Podržavanja:",
   "notifications.column_settings.show": "Prikaži u koloni",
-  "notifications.column_settings.sound": "Puštaj zvuk",
-  "notifications.column_settings.status": "New toots:",
-  "notifications.column_settings.unread_notifications.category": "Unread notifications",
-  "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
-  "notifications.column_settings.update": "Edits:",
-  "notifications.filter.all": "All",
-  "notifications.filter.boosts": "Boosts",
-  "notifications.filter.favourites": "Favourites",
-  "notifications.filter.follows": "Follows",
-  "notifications.filter.mentions": "Mentions",
-  "notifications.filter.polls": "Poll results",
-  "notifications.filter.statuses": "Updates from people you follow",
-  "notifications.grant_permission": "Grant permission.",
-  "notifications.group": "{count} notifications",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_people": "{count, plural, one {# person} other {# people}}",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll.voted": "You voted for this answer",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
-  "privacy.change": "Podesi status privatnosti",
-  "privacy.direct.long": "Objavi samo korisnicima koji su pomenuti",
-  "privacy.direct.short": "Direct",
-  "privacy.private.long": "Objavi samo pratiocima",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all",
+  "notifications.column_settings.sound": "Reprodukuj zvuk",
+  "notifications.column_settings.status": "Nove objave:",
+  "notifications.column_settings.unread_notifications.category": "Nepročitana obaveštenja",
+  "notifications.column_settings.unread_notifications.highlight": "Istakni nepročitana obaveštenja",
+  "notifications.column_settings.update": "Uređivanja:",
+  "notifications.filter.all": "Sve",
+  "notifications.filter.boosts": "Podržavanja",
+  "notifications.filter.favourites": "Omiljeno",
+  "notifications.filter.follows": "Praćenja",
+  "notifications.filter.mentions": "Pominjanja",
+  "notifications.filter.polls": "Rezultati ankete",
+  "notifications.filter.statuses": "Ažuriranja od ljudi koje pratite",
+  "notifications.grant_permission": "Odobri dozvolu.",
+  "notifications.group": "{count} obaveštenja",
+  "notifications.mark_as_read": "Označi svako obaveštenje kao pročitano",
+  "notifications.permission_denied": "Obaveštenja na radnoj površini nisu dostupna zbog prethodno odbijenog zahteva za dozvolom pregledača",
+  "notifications.permission_denied_alert": "Obaveštenja na radnoj površini ne mogu biti omogućena, jer je dozvola pregledača ranije bila odbijena",
+  "notifications.permission_required": "Obaveštenja na radnoj površini nisu dostupna jer potrebna dozvola nije dodeljena.",
+  "notifications_permission_banner.enable": "Omogućiti obaveštenja na radnoj površini",
+  "notifications_permission_banner.how_to_control": "Da biste primali obaveštenja kada Mastodon nije otvoren, omogućite obaveštenja na radnoj površini. Kada su obaveštenja na radnoj površini omogućena vrste interakcija koje ona generišu mogu se podešavati pomoću dugmeta {icon}.",
+  "notifications_permission_banner.title": "Nikada ništa ne propustite",
+  "picture_in_picture.restore": "Vrati to nazad",
+  "poll.closed": "Zatvoreno",
+  "poll.refresh": "Osveži",
+  "poll.total_people": "{count, plural, one {# osoba} few {# osobe} other {# osoba}}",
+  "poll.total_votes": "{count, plural, one {# glas} few {# glasa} other {# glasova}}",
+  "poll.vote": "Glasajte",
+  "poll.voted": "Glasali ste za ovaj odgovor",
+  "poll.votes": "{votes, plural, one {# glas} few {# glasa} other {# glasova}}",
+  "poll_button.add_poll": "Dodaj anketu",
+  "poll_button.remove_poll": "Ukloni anketu",
+  "privacy.change": "Promeni privatnost objave",
+  "privacy.direct.long": "Vidljivo samo za pomenute korisnike",
+  "privacy.direct.short": "Samo pomenute osobe",
+  "privacy.private.long": "Vidljivo samo za pratioce",
+  "privacy.private.short": "Samo pratioci",
+  "privacy.public.long": "Vidljivo za sve",
   "privacy.public.short": "Javno",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Vidljivo za sve, ali isključeno iz funkcije otkrivanja",
   "privacy.unlisted.short": "Neizlistano",
-  "privacy_policy.last_updated": "Last updated {date}",
-  "privacy_policy.title": "Privacy Policy",
-  "refresh": "Refresh",
-  "regeneration_indicator.label": "Loading…",
-  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
-  "relative_time.days": "{number}d",
-  "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
-  "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
-  "relative_time.full.just_now": "just now",
-  "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
-  "relative_time.hours": "{number}h",
+  "privacy_policy.last_updated": "Poslednje ažuriranje {date}",
+  "privacy_policy.title": "Politika privatnosti",
+  "refresh": "Osveži",
+  "regeneration_indicator.label": "Učitavanje…",
+  "regeneration_indicator.sublabel": "Vaša početna stranica se priprema!",
+  "relative_time.days": "{number} dan.",
+  "relative_time.full.days": "Pre {number, plural, one {# dan} few {# dana} other {# dana}}",
+  "relative_time.full.hours": "pre {number, plural, one {# sat} few {# sata} other {# sati}}",
+  "relative_time.full.just_now": "upravo sad",
+  "relative_time.full.minutes": "pre {number, plural, one {# minut} few {# minuta} other {# minuta}}",
+  "relative_time.full.seconds": "pre {number, plural, one {# sekundu} few {# sekunde} other {# sekundi}}",
+  "relative_time.hours": "{number} čas.",
   "relative_time.just_now": "sada",
-  "relative_time.minutes": "{number}m",
-  "relative_time.seconds": "{number}s",
-  "relative_time.today": "today",
-  "reply_indicator.cancel": "Poništi",
-  "report.block": "Block",
-  "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
-  "report.categories.other": "Other",
+  "relative_time.minutes": "{number} min.",
+  "relative_time.seconds": "{number} sek.",
+  "relative_time.today": "danas",
+  "reply_indicator.cancel": "Otkaži",
+  "report.block": "Blokiraj",
+  "report.block_explanation": "Nećete videti objave korisnika. Ni on neće videti vaše objave niti će moći da vas prati. Takođe može da zna da je blokiran.",
+  "report.categories.other": "Ostalo",
   "report.categories.spam": "Spam",
-  "report.categories.violation": "Content violates one or more server rules",
-  "report.category.subtitle": "Choose the best match",
-  "report.category.title": "Tell us what's going on with this {type}",
-  "report.category.title_account": "profile",
-  "report.category.title_status": "post",
-  "report.close": "Done",
-  "report.comment.title": "Is there anything else you think we should know?",
-  "report.forward": "Forward to {target}",
-  "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
-  "report.mute": "Mute",
-  "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
-  "report.next": "Next",
+  "report.categories.violation": "Sadržaj krši jedno ili više pravila servera",
+  "report.category.subtitle": "Odaberite najpribližnije",
+  "report.category.title": "Recite nam šta je problem sa ovim {type}",
+  "report.category.title_account": "profilom",
+  "report.category.title_status": "objavom",
+  "report.close": "Gotovo",
+  "report.comment.title": "Da li ima nešto dodatno što treba da znamo?",
+  "report.forward": "Proslediti {target}",
+  "report.forward_hint": "Nalog je sa drugog servera. Poslati anonimnu kopiju prijave i tamo?",
+  "report.mute": "Ignoriši",
+  "report.mute_explanation": "Nećete videti objave korisnika. On i i dalje može da vas prati i vidi vaše objave i neće znati da je ignorisan.",
+  "report.next": "Sledeće",
   "report.placeholder": "Dodatni komentari",
-  "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": "Ne sviđa mi se",
+  "report.reasons.dislike_description": "Ovo nije nešto što želiš da vidite",
+  "report.reasons.other": "Nešto drugo",
+  "report.reasons.other_description": "Problem se ne uklapa u druge kategorije",
+  "report.reasons.spam": "Ovo je spam",
+  "report.reasons.spam_description": "Zlonamerne veze, lažno angažovanje ili odgovori koji se ponavljaju",
+  "report.reasons.violation": "Krši pravila servera",
+  "report.reasons.violation_description": "Svesni ste da krši neka određena pravila",
+  "report.rules.subtitle": "Izaberi sve što važi",
+  "report.rules.title": "Koja pravila su prekršena?",
+  "report.statuses.subtitle": "Izaberi sve što važi",
+  "report.statuses.title": "Da li postoje bilo kakve objave koje podržavaju ovu prijavu?",
   "report.submit": "Pošalji",
   "report.target": "Prijavljujem {target}",
-  "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
-  "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
-  "report.thanks.title": "Don't want to see this?",
-  "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
-  "report.unfollow": "Unfollow @{name}",
-  "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
-  "report_notification.categories.other": "Other",
+  "report.thanks.take_action": "Ovo su Vaše opcije da kontrolišete šta vidite na Mastodon-u:",
+  "report.thanks.take_action_actionable": "Dok mi pregledamo ovo, možete primeniti sledeće radnje protiv @{name}:",
+  "report.thanks.title": "Ne želite da vidite ovo?",
+  "report.thanks.title_actionable": "Hvala na prijavi, pregledaćemo je.",
+  "report.unfollow": "Otprati @{name}",
+  "report.unfollow_explanation": "Pratite ovaj nalog. Da ne biste više videli njegove objave na početnoj stranici, otpratite ga.",
+  "report_notification.attached_statuses": "{count, plural, one {{count} objava} few {{count} objave} other {{count} objava}} u prilogu",
+  "report_notification.categories.other": "Ostalo",
   "report_notification.categories.spam": "Spam",
-  "report_notification.categories.violation": "Rule violation",
-  "report_notification.open": "Open report",
+  "report_notification.categories.violation": "Kršenje pravila",
+  "report_notification.open": "Otvori prijavu",
   "search.placeholder": "Pretraga",
-  "search.search_or_paste": "Search or paste URL",
+  "search.search_or_paste": "Pretražite ili unesite adresu",
   "search_popout.search_format": "Napredni format pretrage",
-  "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
-  "search_popout.tips.hashtag": "hešteg",
-  "search_popout.tips.status": "status",
-  "search_popout.tips.text": "Traženjem običnog teksta ćete dobiti sva pronađena imena, sva korisnička imena i sve nađene heštegove",
+  "search_popout.tips.full_text": "Jednostavan tekst vraća objave koje ste napisali, dodali u omiljene, podržali ili u kojima ste bili pomenuti, kao i podudaranje korisničkih imena, prikazana imena i heš oznake.",
+  "search_popout.tips.hashtag": "heš oznaka",
+  "search_popout.tips.status": "objava",
+  "search_popout.tips.text": "Jednostavan tekst vraća podudaranje imena za prikaz, korisnička imena i heš oznake",
   "search_popout.tips.user": "korisnik",
-  "search_results.accounts": "People",
-  "search_results.all": "All",
-  "search_results.hashtags": "Hashtags",
-  "search_results.nothing_found": "Could not find anything for these search terms",
-  "search_results.statuses": "Toots",
-  "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
-  "search_results.title": "Search for {q}",
+  "search_results.accounts": "Ljudi",
+  "search_results.all": "Sve",
+  "search_results.hashtags": "Heš oznake",
+  "search_results.nothing_found": "Nije moguće pronaći ništa za ove termine za pretragu",
+  "search_results.statuses": "Objave",
+  "search_results.statuses_fts_disabled": "Pretraga objava po sadržaju nije omogućena na ovom Mastodon serveru.",
+  "search_results.title": "Pretraži {q}",
   "search_results.total": "{count, number} {count, plural, one {rezultat} few {rezultata} other {rezultata}}",
-  "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
-  "server_banner.active_users": "active users",
-  "server_banner.administered_by": "Administered by:",
-  "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
-  "server_banner.learn_more": "Learn more",
-  "server_banner.server_stats": "Server stats:",
-  "sign_in_banner.create_account": "Create account",
-  "sign_in_banner.sign_in": "Sign in",
-  "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
-  "status.admin_account": "Open moderation interface for @{name}",
-  "status.admin_status": "Open this status in the moderation interface",
-  "status.block": "Block @{name}",
-  "status.bookmark": "Bookmark",
-  "status.cancel_reblog_private": "Unboost",
-  "status.cannot_reblog": "Ovaj status ne može da se podrži",
-  "status.copy": "Copy link to status",
-  "status.delete": "Obriši",
-  "status.detailed_status": "Detailed conversation view",
-  "status.direct": "Direct message @{name}",
-  "status.edit": "Edit",
-  "status.edited": "Edited {date}",
-  "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
-  "status.embed": "Ugradi na sajt",
+  "server_banner.about_active_users": "Ljudi koji su koristili ovaj server u prethodnih 30 dana (mesečno aktivnih korisnika)",
+  "server_banner.active_users": "aktivnih korisnika",
+  "server_banner.administered_by": "Administrirano od strane:",
+  "server_banner.introduction": "{domain} je deo decentralizovane društvene mreže koju pokreće {mastodon}.",
+  "server_banner.learn_more": "Saznajte više",
+  "server_banner.server_stats": "Statistike servera:",
+  "sign_in_banner.create_account": "Napravi nalog",
+  "sign_in_banner.sign_in": "Prijavi se",
+  "sign_in_banner.text": "Prijavite se da pratite profile ili heštegove, stavite objave kao omiljene, delite i odgovarate na njih ili komunicirate sa svog naloga sa drugog servera.",
+  "status.admin_account": "Otvori moderatorsko okruženje za @{name}",
+  "status.admin_status": "Otvori ovu objavu u moderatorskom okruženju",
+  "status.block": "Blokiraj @{name}",
+  "status.bookmark": "Dodaj u obeleživače",
+  "status.cancel_reblog_private": "Ukloni podršku",
+  "status.cannot_reblog": "Ova objava se ne može podržati",
+  "status.copy": "Kopiraj vezu u objavu",
+  "status.delete": "Izbriši",
+  "status.detailed_status": "Detaljan prikaz razgovora",
+  "status.direct": "Direktna poruka @{name}",
+  "status.edit": "Uredi",
+  "status.edited": "Uređeno {date}",
+  "status.edited_x_times": "Uređeno {count, plural, one {{count} put} other {{count} puta}}",
+  "status.embed": "Ugradi",
   "status.favourite": "Omiljeno",
-  "status.filter": "Filter this post",
-  "status.filtered": "Filtered",
-  "status.hide": "Hide toot",
-  "status.history.created": "{name} created {date}",
-  "status.history.edited": "{name} edited {date}",
+  "status.filter": "Filtriraj ovu objavu",
+  "status.filtered": "Filtrirano",
+  "status.hide": "Sakrij objavu",
+  "status.history.created": "{name} napisao/la {date}",
+  "status.history.edited": "{name} uredio/la {date}",
   "status.load_more": "Učitaj još",
   "status.media_hidden": "Multimedija sakrivena",
-  "status.mention": "Pomeni korisnika @{name}",
+  "status.mention": "Pomeni @{name}",
   "status.more": "Još",
-  "status.mute": "Mute @{name}",
-  "status.mute_conversation": "Ućutkaj prepisku",
-  "status.open": "Proširi ovaj status",
-  "status.pin": "Prikači na profil",
-  "status.pinned": "Pinned toot",
-  "status.read_more": "Read more",
+  "status.mute": "Ignoriši @{name}",
+  "status.mute_conversation": "Ignoriši razgovor",
+  "status.open": "Proširi ovu objavu",
+  "status.pin": "Zakači na profil",
+  "status.pinned": "Zakačene objave",
+  "status.read_more": "Pročitajte više",
   "status.reblog": "Podrži",
-  "status.reblog_private": "Boost with original visibility",
-  "status.reblogged_by": "{name} podržao(la)",
-  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
-  "status.redraft": "Delete & re-draft",
-  "status.remove_bookmark": "Remove bookmark",
-  "status.replied_to": "Replied to {name}",
+  "status.reblog_private": "Podrži sa originalnom vidljivošću",
+  "status.reblogged_by": "{name} je podržao/la",
+  "status.reblogs.empty": "Još uvek niko nije podržao ovu objavu. Kada bude podržana, pojaviće se ovde.",
+  "status.redraft": "Izbriši i preoblikuj",
+  "status.remove_bookmark": "Ukloni obeleživač",
+  "status.replied_to": "Odgovor za {name}",
   "status.reply": "Odgovori",
   "status.replyAll": "Odgovori na diskusiju",
-  "status.report": "Prijavi korisnika @{name}",
+  "status.report": "Prijavi @{name}",
   "status.sensitive_warning": "Osetljiv sadržaj",
   "status.share": "Podeli",
-  "status.show_filter_reason": "Show anyway",
+  "status.show_filter_reason": "Ipak prikaži",
   "status.show_less": "Prikaži manje",
-  "status.show_less_all": "Show less for all",
+  "status.show_less_all": "Prikaži manje za sve",
   "status.show_more": "Prikaži više",
-  "status.show_more_all": "Show more for all",
-  "status.show_original": "Show original",
-  "status.translate": "Translate",
-  "status.translated_from_with": "Translated from {lang} using {provider}",
-  "status.uncached_media_warning": "Not available",
-  "status.unmute_conversation": "Uključi prepisku",
+  "status.show_more_all": "Prikaži više za sve",
+  "status.show_original": "Prikaži orginal",
+  "status.translate": "Prevedi",
+  "status.translated_from_with": "Prevedeno sa {lang} koristeći {provider}",
+  "status.uncached_media_warning": "Nije dostupno",
+  "status.unmute_conversation": "Ne ignoriši razgovor",
   "status.unpin": "Otkači sa profila",
-  "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
-  "subscribed_languages.save": "Save changes",
-  "subscribed_languages.target": "Change subscribed languages for {target}",
-  "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
-  "tabs_bar.federated_timeline": "Federisano",
+  "subscribed_languages.lead": "Samo objave na označenim jezicima će se pojavljivati na početnoj liniji i na listama posle ove izmene. Odaberite ništa da primate objave na svim jezicima.",
+  "subscribed_languages.save": "Sačuvaj izmene",
+  "subscribed_languages.target": "Promeni jezike na koje je {target} prijavljen",
+  "suggestions.dismiss": "Odbaci predlog",
+  "suggestions.header": "Možda će vas zanimati…",
+  "tabs_bar.federated_timeline": "Združeno",
   "tabs_bar.home": "Početna",
   "tabs_bar.local_timeline": "Lokalno",
   "tabs_bar.notifications": "Obaveštenja",
-  "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
-  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
-  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
-  "time_remaining.moments": "Moments remaining",
-  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
-  "trends.trending_now": "Trending now",
-  "ui.beforeunload": "Ako napustite Mastodont, izgubićete napisani nacrt.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
-  "upload_area.title": "Prevucite ovde da otpremite",
-  "upload_button.label": "Dodaj multimediju",
-  "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
-  "upload_form.audio_description": "Describe for people with hearing loss",
-  "upload_form.description": "Opiši za slabovide osobe",
-  "upload_form.description_missing": "No description added",
-  "upload_form.edit": "Edit",
-  "upload_form.thumbnail": "Change thumbnail",
-  "upload_form.undo": "Opozovi",
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
-  "upload_modal.analyzing_picture": "Analyzing picture…",
-  "upload_modal.apply": "Apply",
-  "upload_modal.applying": "Applying…",
-  "upload_modal.choose_image": "Choose image",
-  "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
-  "upload_modal.detect_text": "Detect text from picture",
-  "upload_modal.edit_media": "Edit media",
-  "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
-  "upload_modal.preview_label": "Preview ({ratio})",
-  "upload_progress.label": "Otpremam...",
-  "upload_progress.processing": "Processing…",
+  "time_remaining.days": "Ostalo {number, plural, one {# dan} few {# dana} other {# dana}}",
+  "time_remaining.hours": "Ostalo {number, plural, one {# sat} few {# sata} other {# sati}}",
+  "time_remaining.minutes": "Ostalo {number, plural, one {# minut} few {# minuta} other {# minuta}}",
+  "time_remaining.moments": "Još nekoliko trenutaka",
+  "time_remaining.seconds": "Ostalo {number, plural, one {# sekund} few {# sekunde} other {# sekundi}}",
+  "timeline_hint.remote_resource_not_displayed": "{resource} sa drugih servera se ne prikazuju.",
+  "timeline_hint.resources.followers": "Pratioci",
+  "timeline_hint.resources.follows": "Praćeni",
+  "timeline_hint.resources.statuses": "Starije objave",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} osoba} few {{counter} osobe} other {{counter} osoba}} u proteklih {days, plural, one {dan} few {{days} dana} other {{days} dana}}",
+  "trends.trending_now": "U trendu sada",
+  "ui.beforeunload": "Vaš nacrt će biti izgubljen ako napustite Mastodon.",
+  "units.short.billion": "{count} mlrd.",
+  "units.short.million": "{count} mil.",
+  "units.short.thousand": "{count} hilj.",
+  "upload_area.title": "Prevucite i otpustite za otpremanje",
+  "upload_button.label": "Dodaj slike, video ili audio datoteku",
+  "upload_error.limit": "Dostignuto je ograničenje za otpremanje datoteka.",
+  "upload_error.poll": "Otpremanje datoteka nije dozvoljeno sa anketama.",
+  "upload_form.audio_description": "Opišite za osobe sa oštećenim sluhom",
+  "upload_form.description": "Opišite za osobe sa oštećenim vidom",
+  "upload_form.description_missing": "Nema dodatog opisa",
+  "upload_form.edit": "Uredi",
+  "upload_form.thumbnail": "Promeni sličicu",
+  "upload_form.undo": "Izbriši",
+  "upload_form.video_description": "Opišite za osobe sa oštećenim sluhom ili vidom",
+  "upload_modal.analyzing_picture": "Analiziranje slike…",
+  "upload_modal.apply": "Primeni",
+  "upload_modal.applying": "Primena…",
+  "upload_modal.choose_image": "Odaberite sliku",
+  "upload_modal.description_placeholder": "Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos",
+  "upload_modal.detect_text": "Otkrij tekst sa slike",
+  "upload_modal.edit_media": "Uredi miltimediju",
+  "upload_modal.hint": "Kliknite ili prevucite kružić na pregledu za izbor tačke fokusa koja će uvek biti vidljiva na svim sličicama.",
+  "upload_modal.preparing_ocr": "Priprema OCR-a…",
+  "upload_modal.preview_label": "Pregled ({ratio})",
+  "upload_progress.label": "Otpremanje...",
+  "upload_progress.processing": "Obrada…",
   "video.close": "Zatvori video",
-  "video.download": "Download file",
-  "video.exit_fullscreen": "Napusti ceo ekran",
+  "video.download": "Preuzimanje datoteke",
+  "video.exit_fullscreen": "Izađi iz režima celog ekrana",
   "video.expand": "Proširi video",
   "video.fullscreen": "Ceo ekran",
   "video.hide": "Sakrij video",
-  "video.mute": "Ugasi zvuk",
+  "video.mute": "Isključi zvuk",
   "video.pause": "Pauziraj",
-  "video.play": "Pusti",
-  "video.unmute": "Vrati zvuk"
+  "video.play": "Reprodukuj",
+  "video.unmute": "Uključi zvuk"
 }
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 4f7c95066..5660c94ac 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -1,9 +1,9 @@
 {
   "about.blocks": "Модерирани сервери",
   "about.contact": "Контакт:",
-  "about.disclaimer": "Мастодон је беслатан софтвер отвореног кода и заштићени знак компаније Mastodon gGmbH.",
+  "about.disclaimer": "Mastodon је бесплатан софтвер отвореног кода и заштићени знак компаније Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Разлог није наведен",
-  "about.domain_blocks.preamble": "Мастодон Вам дозвољава да видите и комуницирате са корисницима са других сервера у федиверсу. Ово су изузеци који су направљени на овом серверу.",
+  "about.domain_blocks.preamble": "Мастодон вам генерално омогућава да видите садржај и комуницирате са корисницима са било ког другог сервера у федиверзуму. Ово су изузеци који су направљени на овом серверу.",
   "about.domain_blocks.silenced.explanation": "У начелу нећете видети профиле и садржај са овог сервера, осим ако га експлицитно не потражите или се укључите тако што ћете га пратити.",
   "about.domain_blocks.silenced.title": "Ограничен",
   "about.domain_blocks.suspended.explanation": "Подаци са овог сервера неће се обрађивати, чувати или размењивати, што онемогућава било какву интеракцију или комуникацију са корисницима са овог сервера.",
@@ -16,64 +16,64 @@
   "account.badges.bot": "Бот",
   "account.badges.group": "Група",
   "account.block": "Блокирај @{name}",
-  "account.block_domain": "Сакриј све са домена {domain}",
+  "account.block_domain": "Блокирај домен {domain}",
   "account.blocked": "Блокиран",
-  "account.browse_more_on_origin_server": "Погледајте још на оригиналном профилу",
+  "account.browse_more_on_origin_server": "Прегледајте још на оригиналном профилу",
   "account.cancel_follow_request": "Повуци захтев за праћење",
   "account.direct": "Директна порука @{name}",
-  "account.disable_notifications": "Прекини обавештавање за објаве корисника @{name}",
-  "account.domain_blocked": "Домен блокиран",
+  "account.disable_notifications": "Заустави обавештавање за објаве корисника @{name}",
+  "account.domain_blocked": "Домен је блокиран",
   "account.edit_profile": "Уреди профил",
   "account.enable_notifications": "Обавести ме када @{name} објави",
-  "account.endorse": "Истакнуто на профилу",
+  "account.endorse": "Истакни на профилу",
   "account.featured_tags.last_status_at": "Последња објава {date}",
   "account.featured_tags.last_status_never": "Нема објава",
-  "account.featured_tags.title": "Истакнути хештегови корисника {name}",
-  "account.follow": "Запрати",
+  "account.featured_tags.title": "Истакнуте хеш ознаке корисника {name}",
+  "account.follow": "Прати",
   "account.followers": "Пратиоци",
-  "account.followers.empty": "Тренутно нико не прати овог корисника.",
+  "account.followers.empty": "Још увек нико не прати овог корисника.",
   "account.followers_counter": "{count, plural, one {{counter} пратилац} few {{counter} пратиоца} other {{counter} пратилаца}}",
-  "account.following": "Праћени",
+  "account.following": "Прати",
   "account.following_counter": "{count, plural, one {{counter} прати} few {{counter} прати} other {{counter} прати}}",
-  "account.follows.empty": "Корисник тренутно не прати никога.",
-  "account.follows_you": "Прати Вас",
+  "account.follows.empty": "Овај корисник још увек никог не прати.",
+  "account.follows_you": "Прати вас",
   "account.go_to_profile": "Иди на профил",
-  "account.hide_reblogs": "Сакриј подршке корисника @{name}",
+  "account.hide_reblogs": "Сакриј подржавања од @{name}",
   "account.joined_short": "Придружио се",
   "account.languages": "Промени претплаћене језике",
   "account.link_verified_on": "Власништво над овом везом је проверено {date}",
   "account.locked_info": "Статус приватности овог налога је подешен на закључано. Власник ручно прегледа ко га може пратити.",
-  "account.media": "Медији",
+  "account.media": "Мултимедија",
   "account.mention": "Помени корисника @{name}",
   "account.moved_to": "Корисник {name} је назначио да је његов нови налог сада:",
-  "account.mute": "Ућуткај корисника @{name}",
-  "account.mute_notifications": "Искључи обавештења од корисника @{name}",
-  "account.muted": "Ућуткан",
+  "account.mute": "Игнориши корисника @{name}",
+  "account.mute_notifications": "Игнориши обавештења од @{name}",
+  "account.muted": "Игнорисан",
   "account.open_original_page": "Отвори оригиналну страницу",
   "account.posts": "Објаве",
   "account.posts_with_replies": "Објаве и одговори",
   "account.report": "Пријави @{name}",
-  "account.requested": "Чекам одобрење. Кликните да поништите захтев за праћење",
+  "account.requested": "Чекање одобрења. Кликните за отказивање захтева за праћење",
   "account.share": "Подели профил корисника @{name}",
-  "account.show_reblogs": "Прикажи подршке од корисника @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} објава} few {{counter} објаве} other {{counter} објава}}",
+  "account.show_reblogs": "Прикажи подржавања од корисника @{name}",
+  "account.statuses_counter": "{count, plural, one {{counter} објавио} few {{counter} објавио} other {{counter} објавио}}",
   "account.unblock": "Одблокирај корисника @{name}",
   "account.unblock_domain": "Одблокирај домен {domain}",
   "account.unblock_short": "Одблокирај",
   "account.unendorse": "Не истичи на профилу",
   "account.unfollow": "Отпрати",
-  "account.unmute": "Уклони ућуткавање кориснику @{name}",
-  "account.unmute_notifications": "Укључи назад обавештења од корисника @{name}",
-  "account.unmute_short": "Искључи ућуткивање",
+  "account.unmute": "Не игнориши @{name}",
+  "account.unmute_notifications": "Не игнориши обавештења од @{name}",
+  "account.unmute_short": "Не игнориши",
   "account_note.placeholder": "Кликните да додате напомену",
   "admin.dashboard.daily_retention": "Стопа задржавања корисника по данима након регистрације",
   "admin.dashboard.monthly_retention": "Стопа задржавања корисника по месецима након регистрације",
   "admin.dashboard.retention.average": "Просек",
   "admin.dashboard.retention.cohort": "Месец приступања",
   "admin.dashboard.retention.cohort_size": "Нови корисници",
-  "alert.rate_limited.message": "Молимо покушајте поново после {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Ограничена брзина",
-  "alert.unexpected.message": "Појавила се неочекивана грешка.",
+  "alert.rate_limited.message": "Покушајте поново после {retry_time, time, medium}.",
+  "alert.rate_limited.title": "Ограничење захтева",
+  "alert.unexpected.message": "Дошло је до неочекиване грешке.",
   "alert.unexpected.title": "Упс!",
   "announcement.announcement": "Најава",
   "attachments_list.unprocessed": "(необрађено)",
@@ -81,125 +81,125 @@
   "autosuggest_hashtag.per_week": "{count} недељно",
   "boost_modal.combo": "Можете притиснути {combo} да прескочите ово следећи пут",
   "bundle_column_error.copy_stacktrace": "Копирај извештај о грешци",
-  "bundle_column_error.error.body": "Тражена страница није могла да буде приказана. Разлог може бити грешка у нашем коду или проблем са компатибилношћу претраживача.",
+  "bundle_column_error.error.body": "Није могуће приказати тражену страницу. Разлог може бити грешка у нашем коду или проблем са компатибилношћу претраживача.",
   "bundle_column_error.error.title": "О, не!",
-  "bundle_column_error.network.body": "Дошло је до грешке при покушају учитавања ове странице. Разлог може бити тренутни проблем са Вашом интернет везом или са овим сервером.",
+  "bundle_column_error.network.body": "Дошло је до грешке при покушају учитавања ове странице. Разлог може бити тренутни проблем са вашом интернет везом или са овим сервером.",
   "bundle_column_error.network.title": "Грешка на мрежи",
   "bundle_column_error.retry": "Покушајте поново",
   "bundle_column_error.return": "Иди на почетак",
-  "bundle_column_error.routing.body": "Тражена страница није пронађена. Да ли сте сигурни да је УРЛ у пољу за адресу исправан?",
+  "bundle_column_error.routing.body": "Није могуће пронаћи тражену страницу. Да ли сте сигурни да је URL у адресном пољу исправан?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Затвори",
   "bundle_modal_error.message": "Нешто није било у реду при учитавању ове компоненте.",
   "bundle_modal_error.retry": "Покушајте поново",
-  "closed_registrations.other_server_instructions": "Пошто је Мастодон децентрализован, можете направити налог на другом серверу али и даље комуницирати са овим.",
-  "closed_registrations_modal.description": "Прављење налога на {domain} тренутно није могуће, али имајте у виду да Вам не треба налог засебно на {domain} да бисте користили Мастодон.",
+  "closed_registrations.other_server_instructions": "Пошто је Mastodon децентрализован, можете направити налог на другом серверу али и даље комуницирати са овим.",
+  "closed_registrations_modal.description": "Креирање налога на {domain} тренутно није могуће, али имајте у виду да вам не треба налог засебно на {domain} да бисте користили Mastodon.",
   "closed_registrations_modal.find_another_server": "Пронађите други сервер",
-  "closed_registrations_modal.preamble": "Мастодон је децентрализован, тако да без обзира где креирате свој налог, моћи ћете да пратите и комуницирате са било ким на овом серверу. Можете чак и сами да га хостујете!",
-  "closed_registrations_modal.title": "Пријављивање на Мастодон",
-  "column.about": "О",
+  "closed_registrations_modal.preamble": "Mastodon је децентрализован, тако да без обзира где креирате свој налог, моћи ћете да пратите и комуницирате са било ким на овом серверу. Можете чак и сами да га хостујете!",
+  "closed_registrations_modal.title": "Регистрација за Mastodon",
+  "column.about": "Основни подаци",
   "column.blocks": "Блокирани корисници",
   "column.bookmarks": "Обележивачи",
   "column.community": "Локална временска линија",
   "column.direct": "Директне поруке",
-  "column.directory": "Претражи профиле",
-  "column.domain_blocks": "Скривени домени",
-  "column.favourites": "Омиљене",
+  "column.directory": "Прегледај профиле",
+  "column.domain_blocks": "Блокирани домени",
+  "column.favourites": "Омиљено",
   "column.follow_requests": "Захтеви за праћење",
   "column.home": "Почетна",
   "column.lists": "Листе",
-  "column.mutes": "Ућуткани корисници",
+  "column.mutes": "Игнорисани корисници",
   "column.notifications": "Обавештења",
-  "column.pins": "Прикачене трубе",
+  "column.pins": "Закачене објаве",
   "column.public": "Здружена временска линија",
   "column_back_button.label": "Назад",
-  "column_header.hide_settings": "Сакриј поставке",
-  "column_header.moveLeft_settings": "Помери колону улево",
-  "column_header.moveRight_settings": "Помери колону удесно",
-  "column_header.pin": "Прикачи",
-  "column_header.show_settings": "Прикажи поставке",
+  "column_header.hide_settings": "Сакриј подешавања",
+  "column_header.moveLeft_settings": "Премести колону улево",
+  "column_header.moveRight_settings": "Премести колону удесно",
+  "column_header.pin": "Закачи",
+  "column_header.show_settings": "Прикажи подешавања",
   "column_header.unpin": "Откачи",
-  "column_subheading.settings": "Поставке",
+  "column_subheading.settings": "Подешавања",
   "community.column_settings.local_only": "Само локално",
-  "community.column_settings.media_only": "Само Медији",
+  "community.column_settings.media_only": "Само мултимедија",
   "community.column_settings.remote_only": "Само удаљено",
   "compose.language.change": "Промени језик",
   "compose.language.search": "Претрага језика...",
   "compose_form.direct_message_warning_learn_more": "Сазнајте више",
-  "compose_form.encryption_warning": "Објаве на Мастодону нису end-to-end енкриптоване. Немојте делити никакве осетљиве информације преко Мастодона.",
-  "compose_form.hashtag_warning": "Ова труба неће бити излистана под било којом тарабом јер је сакривена. Само јавне трубе могу бити претражене тарабом.",
-  "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да Вас запрати и да види објаве намењене само Вашим пратиоцима.",
+  "compose_form.encryption_warning": "Објаве на Mastodon-у нису потпуно шифроване. Немојте делити никакве осетљиве информације преко Mastodon-а.",
+  "compose_form.hashtag_warning": "Ова објава неће бити наведена ни под једном хеш ознаком јер је ненаведена. Само јавне објаве могу се претраживати по хеш ознакама.",
+  "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да вас прати и да види ваше објаве намењене само за ваше пратиоце.",
   "compose_form.lock_disclaimer.lock": "закључан",
-  "compose_form.placeholder": "Шта Вам је на уму?",
+  "compose_form.placeholder": "О чему размишљате?",
   "compose_form.poll.add_option": "Додајте избор",
   "compose_form.poll.duration": "Трајање анкете",
   "compose_form.poll.option_placeholder": "Избор {number}",
-  "compose_form.poll.remove_option": "Одстрани овај избор",
+  "compose_form.poll.remove_option": "Уклони овај избор",
   "compose_form.poll.switch_to_multiple": "Промените анкету да бисте омогућили више избора",
   "compose_form.poll.switch_to_single": "Промените анкету да бисте омогућили један избор",
   "compose_form.publish": "Објави",
   "compose_form.publish_form": "Објави",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Сачувај измене",
-  "compose_form.sensitive.hide": "Означи мултимедију као осетљиву",
-  "compose_form.sensitive.marked": "Медији су означени као осетљиви",
-  "compose_form.sensitive.unmarked": "Медији су означени као не-осетљиви",
-  "compose_form.spoiler.marked": "Текст је сакривен иза упозорења",
-  "compose_form.spoiler.unmarked": "Текст није сакривен",
-  "compose_form.spoiler_placeholder": "Овде упишите упозорење",
-  "confirmation_modal.cancel": "Поништи",
-  "confirmations.block.block_and_report": "Блокирај и Пријави",
+  "compose_form.save_changes": "Сачувај промене",
+  "compose_form.sensitive.hide": "{count, plural, one {Означи мултимедију као осетљиву} few {Означи мултимедију као осетљиву} other {Означи мултимедију као осетљиву}}",
+  "compose_form.sensitive.marked": "{count, plural, one {Мултимедија је означена као осетљива} few {Мултимедија је означена као осетљива} other {Мултимедија је означена као осетљива}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Мултимедија није означена као осетљива} few {Мултимедија није означена као осетљива} other {Мултимедија није означена као осетљива}}",
+  "compose_form.spoiler.marked": "Уклони упозорење о садржају",
+  "compose_form.spoiler.unmarked": "Додај упозорење о садржају",
+  "compose_form.spoiler_placeholder": "Овде напишите упозорење",
+  "confirmation_modal.cancel": "Откажи",
+  "confirmations.block.block_and_report": "Блокирај и пријави",
   "confirmations.block.confirm": "Блокирај",
   "confirmations.block.message": "Да ли сте сигурни да желите да блокирате корисника {name}?",
   "confirmations.cancel_follow_request.confirm": "Повуци захтев",
   "confirmations.cancel_follow_request.message": "Да ли сте сигурни да желите да повучете захтев да пратите {name}?",
-  "confirmations.delete.confirm": "Обриши",
-  "confirmations.delete.message": "Да ли сте сигурни да желите обришете овај статус?",
-  "confirmations.delete_list.confirm": "Обриши",
-  "confirmations.delete_list.message": "Да ли сте сигурни да желите да бесповратно обришете ову листу?",
+  "confirmations.delete.confirm": "Избриши",
+  "confirmations.delete.message": "Да ли сте сигурни да желите изришете ову објаву?",
+  "confirmations.delete_list.confirm": "Избриши",
+  "confirmations.delete_list.message": "Да ли сте сигурни да желите да трајно избришете ову листу?",
   "confirmations.discard_edit_media.confirm": "Одбаци",
-  "confirmations.discard_edit_media.message": "Имате несачуване промене у опису или предпрегледу медија, да ли ипак хоћете да их одбаците?",
-  "confirmations.domain_block.confirm": "Сакриј цео домен",
-  "confirmations.domain_block.message": "Да ли сте заиста сигурни да желите да блокирате цео домен {domain}? У већини случајева, неколико добро промишљених блокирања или ућуткавања су довољна и препоручљива.",
+  "confirmations.discard_edit_media.message": "Имате несачуване промене у опису или прегледу медија, да ли ипак хоћете да их одбаците?",
+  "confirmations.domain_block.confirm": "Блокирај цео домен",
+  "confirmations.domain_block.message": "Да ли сте заиста сигурни да желите да блокирате цео домен {domain}? У већини случајева, довољно је и пожељно неколико циљаних блокирања или игнорисања. Нећете видети садржај са тог домена ни у једној јавној временској линији или у вашим обавештењима. Ваши пратиоци са тог домена ће бити уклоњени.",
   "confirmations.logout.confirm": "Одјави се",
   "confirmations.logout.message": "Да ли се сигурни да желите да се одјавите?",
-  "confirmations.mute.confirm": "Ућуткај",
-  "confirmations.mute.explanation": "Ово ће сакрити објаве од њих и објаве које их помињу, али ће им и даље дозволити да виде ваше постове и да вас запрате.",
-  "confirmations.mute.message": "Да ли стварно желите да ућуткате корисника {name}?",
+  "confirmations.mute.confirm": "Игнориши",
+  "confirmations.mute.explanation": "Ово ће сакрити објаве од корисника и објаве које га помињу, али ће му и даље бити дозвољено да види ваше објаве и да вас прати.",
+  "confirmations.mute.message": "Да ли стварно желите да игноришете корисника {name}?",
   "confirmations.redraft.confirm": "Избриши и преправи",
-  "confirmations.redraft.message": "Да ли сте сигурни да желите да избришете овај статус и да га преправите? Сва стављања у омиљене трубе, као и подршке ће бити изгубљене, а одговори на оригинални пост ће бити поништени.",
+  "confirmations.redraft.message": "Да ли сте сигурни да желите да избришете ову објаву и да је преправите? Подржавања и ознаке као омиљених ће бити изгубљени, а одговори ће остати без оригиналне објаве.",
   "confirmations.reply.confirm": "Одговори",
-  "confirmations.reply.message": "Одговарањем ћете обрисати поруку коју састављате. Јесте ли сигурни да желите да наставите?",
+  "confirmations.reply.message": "Одговарањем ћете обрисати поруку коју састављате. Да ли сигурни да желите да наставите?",
   "confirmations.unfollow.confirm": "Отпрати",
   "confirmations.unfollow.message": "Да ли сте сигурни да желите да отпратите корисника {name}?",
-  "conversation.delete": "Обриши преписку",
+  "conversation.delete": "Избриши разговор",
   "conversation.mark_as_read": "Означи као прочитано",
-  "conversation.open": "Прикажи преписку",
+  "conversation.open": "Прикажи разговор",
   "conversation.with": "Са {names}",
   "copypaste.copied": "Копирано",
   "copypaste.copy": "Копирај",
-  "directory.federated": "Са знаних здружених инстанци",
+  "directory.federated": "Са знаног фидеверзума",
   "directory.local": "Само са {domain}",
   "directory.new_arrivals": "Новопридошли",
   "directory.recently_active": "Недавно активни",
   "disabled_account_banner.account_settings": "Подешавања налога",
   "disabled_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен.",
-  "dismissable_banner.community_timeline": "Ово су најновије јавне објаве корисника чије налоге хостује {domain}.",
+  "dismissable_banner.community_timeline": "Ово су најновије јавне објаве људи чије налоге хостује {domain}.",
   "dismissable_banner.dismiss": "Одбаци",
   "dismissable_banner.explore_links": "О овим вестима управо сада разговарају људи на овом и другим серверима децентрализоване мреже.",
-  "dismissable_banner.explore_statuses": "Ове објаве са овог и других сервера у децентрализованој мрежи постају све популарнији на овом серверу.",
-  "dismissable_banner.explore_tags": "Ови хештагови постају све популарнији међу корисницима на овом и другим серверима децентрализоване мреже.",
-  "dismissable_banner.public_timeline": "Ово су најновије јавне објаве корисника на овом и другим серверима децентрализоване мреже који су овом серверу познати.",
-  "embed.instructions": "Угради овај статус на Ваш веб сајт копирањем кода испод.",
-  "embed.preview": "Овако ће да изгледа:",
+  "dismissable_banner.explore_statuses": "Ове објаве са овог и других сервера у децентрализованој мрежи постају све популарније на овом серверу.",
+  "dismissable_banner.explore_tags": "Ове хеш ознаке постају све популарније међу људима на овом и другим серверима децентрализоване мреже.",
+  "dismissable_banner.public_timeline": "Ово су најновије јавне објаве људи на овом и другим серверима децентрализоване мреже за које овај сервер зна.",
+  "embed.instructions": "Уградите ову објаву на свој веб сајт копирањем кода испод.",
+  "embed.preview": "Ево како ће то изгледати:",
   "emoji_button.activity": "Активност",
-  "emoji_button.clear": "Очисти",
-  "emoji_button.custom": "Произвољно",
-  "emoji_button.flags": "Заставе",
+  "emoji_button.clear": "Обриши",
+  "emoji_button.custom": "Прилагођено",
+  "emoji_button.flags": "Заставице",
   "emoji_button.food": "Храна и пиће",
   "emoji_button.label": "Убаци емоџи",
   "emoji_button.nature": "Природа",
-  "emoji_button.not_found": "Нема емоџија!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "Нема пронађих одговарајућих емоџија",
   "emoji_button.objects": "Објекти",
   "emoji_button.people": "Људи",
   "emoji_button.recent": "Најчешће коришћени",
@@ -207,142 +207,142 @@
   "emoji_button.search_results": "Резултати претраге",
   "emoji_button.symbols": "Симболи",
   "emoji_button.travel": "Путовања и места",
-  "empty_column.account_suspended": "Налог суспендован",
-  "empty_column.account_timeline": "Овде нема труба!",
+  "empty_column.account_suspended": "Налог је суспендован",
+  "empty_column.account_timeline": "Нема објава овде!",
   "empty_column.account_unavailable": "Профил је недоступан",
-  "empty_column.blocks": "Још увек немате блокираних корисника.",
-  "empty_column.bookmarked_statuses": "Још увек немате обележене трубе. Када их обележите, појавиће се овде.",
+  "empty_column.blocks": "Још увек нисте блокирали ниједног корисника.",
+  "empty_column.bookmarked_statuses": "Још увек немате објава доданих у обележиваче. Када додате неку, појавиће се овде.",
   "empty_column.community": "Локална временска линија је празна. Напишите нешто јавно да започнете!",
-  "empty_column.direct": "Још увек немаш ниједну директну поруку. Када је пошаљеш или примиш, она ће се појавити овде.",
-  "empty_column.domain_blocks": "Још увек нема сакривених домена.",
-  "empty_column.explore_statuses": "Тренутно ништа није у тренду. Провери поново касније!",
-  "empty_column.favourited_statuses": "Још увек немате труба које су вам се свиделе. Када вам се једна свиди, појавиће се овде.",
-  "empty_column.favourites": "Још увек се никоме није свидела ова труба. Када се некоме свиди, појавиће се овде.",
-  "empty_column.follow_recommendations": "Изгледа да не може да се генерише било какав предлог за тебе. Можеш да покушаш да користиш претрагу да пронађеш особе које можда познајеш или истражиш популарне хештегове.",
+  "empty_column.direct": "Још увек немате ниједну директну поруку. Када пошаљете или примите неку, појавиће се овде.",
+  "empty_column.domain_blocks": "Још увек нема блокираних домена.",
+  "empty_column.explore_statuses": "Тренутно ништа није у тренду. Проверите поново касније!",
+  "empty_column.favourited_statuses": "Још увек немате објава означених као омиљене. Када означите неку, појавиће се овде.",
+  "empty_column.favourites": "Нико још није означио ову објаву као омиљену. Када неко то уради, појавиће се овде.",
+  "empty_column.follow_recommendations": "Изгледа да не могу да се генеришу било какви предлози за вас. Можете покушати да користите претрагу како бисте потражили људе које можда познајете или истражили популарне хеш ознаке.",
   "empty_column.follow_requests": "Још увек немате захтева за праћење. Када примите захтев, појавиће се овде.",
-  "empty_column.hashtag": "Тренутно нема ништа на овој означеној тараби.",
-  "empty_column.home": "Ваша временска линија је празна! Посетите {public} или користите претрагу да почнете и да упознате нове људе.",
+  "empty_column.hashtag": "Још увек нема ничега у овој хеш ознаци.",
+  "empty_column.home": "Ваша почетна временска линија је празна! Пратите више људи да бисте је попунили. {suggestions}",
   "empty_column.home.suggestions": "Погледајте неке предлоге",
-  "empty_column.list": "У овој листи још нема ничега. Када чланови листе објаве нове статусе, они ће се појавити овде.",
+  "empty_column.list": "У овој листи још нема ничега. Када чланови ове листе објаве нешто ново, појавиће се овде.",
   "empty_column.lists": "Још увек немате ниједну листу. Када направите једну, појавиће се овде.",
-  "empty_column.mutes": "Још увек немате ућутканих корисника.",
-  "empty_column.notifications": "Тренутно немате обавештења. Дружите се мало да започнете разговор.",
-  "empty_column.public": "Овде нема ничега! Напишите нешто јавно, или нађите кориснике са других инстанци које ћете запратити да попуните ову празнину",
+  "empty_column.mutes": "Још увек не игноришете ниједног корисника.",
+  "empty_column.notifications": "Још увек немате никаква обавештења. Када други људи буду у интеракцији са вама, видећете то овде.",
+  "empty_column.public": "Овде нема ничега! Напишите нешто јавно или ручно пратите кориснике са других сервера да бисте ово попунили",
   "error.unexpected_crash.explanation": "Због грешке у нашем коду или проблема са компатибилношћу прегледача, ова страница се није могла правилно приказати.",
   "error.unexpected_crash.explanation_addons": "Ова страница се није могла правилно приказати. Ову грешку вероватно узрокују додаци прегледача или алати за аутоматско превођење.",
-  "error.unexpected_crash.next_steps": "Покушајте да освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Мастодон путем другог прегледача или матичне апликације.",
+  "error.unexpected_crash.next_steps": "Покушајте да освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Mastodon путем другог прегледача или матичне апликације.",
   "error.unexpected_crash.next_steps_addons": "Покушајте да их онемогућите и освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Mastodon преко другог прегледача или матичне апликације.",
-  "errors.unexpected_crash.copy_stacktrace": "Копирај \"stacktrace\" у клипборд",
+  "errors.unexpected_crash.copy_stacktrace": "Копирај „stacktrace” у клипборд",
   "errors.unexpected_crash.report_issue": "Пријави проблем",
   "explore.search_results": "Резултати претраге",
   "explore.title": "Истражи",
-  "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
-  "filter_modal.added.context_mismatch_title": "Context mismatch!",
-  "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
-  "filter_modal.added.expired_title": "Expired filter!",
-  "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
+  "filter_modal.added.context_mismatch_explanation": "Ова категорија филтера се не односи на контекст у којем сте приступили овој објави. Ако желите да се објава филтрира и у овом контексту, морате уредити филтер.",
+  "filter_modal.added.context_mismatch_title": "Контекст се не подудара!",
+  "filter_modal.added.expired_explanation": "Ова категорија филтера је истекла, морате променити датум истека да би се примењивала.",
+  "filter_modal.added.expired_title": "Филтер је истекао!",
+  "filter_modal.added.review_and_configure": "За преглед и даљу конфигурацију ове категорије филтера, идите на {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Подешавања филтера",
-  "filter_modal.added.settings_link": "settings page",
-  "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
-  "filter_modal.added.title": "Filter added!",
-  "filter_modal.select_filter.context_mismatch": "does not apply to this context",
+  "filter_modal.added.settings_link": "страница подешавања",
+  "filter_modal.added.short_explanation": "Ова објава је додата у следећу категорију филтера: {title}.",
+  "filter_modal.added.title": "Филтер је додат!",
+  "filter_modal.select_filter.context_mismatch": "не односи се на овај контекст",
   "filter_modal.select_filter.expired": "истекло",
-  "filter_modal.select_filter.prompt_new": "New category: {name}",
-  "filter_modal.select_filter.search": "Search or create",
-  "filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
+  "filter_modal.select_filter.prompt_new": "Нова категорија: {name}",
+  "filter_modal.select_filter.search": "Претражи или креирај",
+  "filter_modal.select_filter.subtitle": "Користите постојећу категорију или креирајте нову",
   "filter_modal.select_filter.title": "Филтрирај ову објаву",
   "filter_modal.title.status": "Филтрирај објаву",
-  "follow_recommendations.done": "Завршено",
-  "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
-  "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
+  "follow_recommendations.done": "Готово",
+  "follow_recommendations.heading": "Пратите људе чије објаве желите да видите! Ево неких предлога.",
+  "follow_recommendations.lead": "Објаве корисника које пратите ће се појављивати хронолошким редоследом на почетној страници. Не плашите се грешака, можете отпратити кориснике у било ком тренутку!",
   "follow_request.authorize": "Одобри",
   "follow_request.reject": "Одбиј",
-  "follow_requests.unlocked_explanation": "Иако ваш налог није закључан, особље {domain} је помислило да бисте можда желели ручно да прегледате захтеве за праћење са ових налога.",
-  "footer.about": "О",
+  "follow_requests.unlocked_explanation": "Иако ваш налог није закључан, особље {domain} сматра да бисте можда желели да ручно прегледате захтеве за праћење са ових налога.",
+  "footer.about": "Основни подаци",
   "footer.directory": "Директоријум профила",
   "footer.get_app": "Преузмите апликацију",
-  "footer.invite": "Pozovite korisnike",
-  "footer.keyboard_shortcuts": "Пречице на тастатури",
+  "footer.invite": "Позови особе",
+  "footer.keyboard_shortcuts": "Тастерске пречице",
   "footer.privacy_policy": "Политика приватности",
-  "footer.source_code": "View source code",
+  "footer.source_code": "Прикажи изворни код",
   "generic.saved": "Сачувано",
-  "getting_started.heading": "Да почнете",
+  "getting_started.heading": "Први кораци",
   "hashtag.column_header.tag_mode.all": "и {additional}",
   "hashtag.column_header.tag_mode.any": "или {additional}",
   "hashtag.column_header.tag_mode.none": "без {additional}",
   "hashtag.column_settings.select.no_options_message": "Нису пронађени предлози",
-  "hashtag.column_settings.select.placeholder": "Унеси хештег…",
+  "hashtag.column_settings.select.placeholder": "Унесите хеш ознаке…",
   "hashtag.column_settings.tag_mode.all": "Све оve",
   "hashtag.column_settings.tag_mode.any": "Било које од ових",
-  "hashtag.column_settings.tag_mode.none": "Ништа од ових",
-  "hashtag.column_settings.tag_toggle": "Укључи и додатне ознаке за ову колону",
-  "hashtag.follow": "Follow hashtag",
-  "hashtag.unfollow": "Unfollow hashtag",
+  "hashtag.column_settings.tag_mode.none": "Ниједан од ових",
+  "hashtag.column_settings.tag_toggle": "Укључи додатне ознаке за ову колону",
+  "hashtag.follow": "Прати хеш ознаку",
+  "hashtag.unfollow": "Отпрати хеш ознаку",
   "home.column_settings.basic": "Основно",
-  "home.column_settings.show_reblogs": "Прикажи и подржавања",
+  "home.column_settings.show_reblogs": "Прикажи подржавања",
   "home.column_settings.show_replies": "Прикажи одговоре",
   "home.hide_announcements": "Сакриј најаве",
   "home.show_announcements": "Пријажи најаве",
-  "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
-  "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
-  "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
-  "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
-  "interaction_modal.on_another_server": "On a different server",
-  "interaction_modal.on_this_server": "On this server",
-  "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
-  "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
-  "interaction_modal.title.favourite": "Favourite {name}'s post",
-  "interaction_modal.title.follow": "Follow {name}",
-  "interaction_modal.title.reblog": "Boost {name}'s post",
-  "interaction_modal.title.reply": "Reply to {name}'s post",
-  "intervals.full.days": "{number, plural, one {# дан} other {# дана}}",
-  "intervals.full.hours": "{number, plural, one {# сат} other {# сати}}",
-  "intervals.full.minutes": "{number, plural, one {# минут} other {# минута}}",
-  "keyboard_shortcuts.back": "да одете назад",
-  "keyboard_shortcuts.blocked": "да отворите листу блокираних корисника",
-  "keyboard_shortcuts.boost": "да подржите",
-  "keyboard_shortcuts.column": "да се пребаците на статус у једној од колона",
-  "keyboard_shortcuts.compose": "да се пребаците на писање новог тута",
+  "interaction_modal.description.favourite": "Са налогом на Mastodon-у, можете означити ову објаву као омиљену како бисте дали до знања аутору да вам се свиђа и сачували је за касније.",
+  "interaction_modal.description.follow": "Са налогом на Mastodon-у, можете пратити корисника {name} како бисте примали његове објаве на почетној страници.",
+  "interaction_modal.description.reblog": "Са налогом на Mastodon-у, можете подржати ову објаву како бите је поделили са својим пратиоцима.",
+  "interaction_modal.description.reply": "Са налогом на Mastodon-у, можете одговорити на ову објаву.",
+  "interaction_modal.on_another_server": "На другом серверу",
+  "interaction_modal.on_this_server": "На овом серверу",
+  "interaction_modal.other_server_instructions": "Копирајте и налепите ову URL адресу у поље претраге своје омиљене Mastodon апликације или веб окружење свог Mastodon сервера.",
+  "interaction_modal.preamble": "Пошто је Mastodon децентрализован, можете користити свој постојећи налог који хостује други Mastodon сервер или компатибилна платформа ако немате налог на овом.",
+  "interaction_modal.title.favourite": "Означи објаву корисника {name} као омиљену",
+  "interaction_modal.title.follow": "Прати {name}",
+  "interaction_modal.title.reblog": "Подржи објаву корисника {name}",
+  "interaction_modal.title.reply": "Одговори на објаву корисника {name}",
+  "intervals.full.days": "{number, plural, one {# дан} few {# дана} other {# дана}}",
+  "intervals.full.hours": "{number, plural, one {# сат} few {# сата} other {# сати}}",
+  "intervals.full.minutes": "{number, plural, one {# минут} few {# минута} other {# минута}}",
+  "keyboard_shortcuts.back": "Иди назад",
+  "keyboard_shortcuts.blocked": "Отвори листу блокираних корисника",
+  "keyboard_shortcuts.boost": "Подржи објаву",
+  "keyboard_shortcuts.column": "Фокусирај колону",
+  "keyboard_shortcuts.compose": "Фокусирај поље за састављање објаве",
   "keyboard_shortcuts.description": "Опис",
-  "keyboard_shortcuts.direct": "to open direct messages column",
-  "keyboard_shortcuts.down": "да се померите на доле у листи",
-  "keyboard_shortcuts.enter": "да отворите статус",
-  "keyboard_shortcuts.favourite": "да означите као омиљено",
-  "keyboard_shortcuts.favourites": "да отворите листу фаворита",
-  "keyboard_shortcuts.federated": "да отворите здружену временску линију",
-  "keyboard_shortcuts.heading": "Пречице на тастатури",
-  "keyboard_shortcuts.home": "да отворите временску линију почетне",
+  "keyboard_shortcuts.direct": "за отварање колоне директних порука",
+  "keyboard_shortcuts.down": "Премести надоле у листи",
+  "keyboard_shortcuts.enter": "Отвори објаву",
+  "keyboard_shortcuts.favourite": "Означи објаву као омиљену",
+  "keyboard_shortcuts.favourites": "Отвори листу омиљених",
+  "keyboard_shortcuts.federated": "Отвори здружену временску линију",
+  "keyboard_shortcuts.heading": "Тастерске пречице",
+  "keyboard_shortcuts.home": "Отвори почетну временску линију",
   "keyboard_shortcuts.hotkey": "Пречица",
-  "keyboard_shortcuts.legend": "да прикажете овај подсетник",
-  "keyboard_shortcuts.local": "да отворите локалну временску линију",
-  "keyboard_shortcuts.mention": "да поменете аутора",
-  "keyboard_shortcuts.muted": "да отворите листу ућутканих корисника",
-  "keyboard_shortcuts.my_profile": "Погледајте ваш профил",
-  "keyboard_shortcuts.notifications": "да отворите колону обавештења",
-  "keyboard_shortcuts.open_media": "за отварање медија",
-  "keyboard_shortcuts.pinned": "да отворите листу закачених труба",
-  "keyboard_shortcuts.profile": "Погледајте профил аутора",
-  "keyboard_shortcuts.reply": "да одговорите",
-  "keyboard_shortcuts.requests": "да отворите листу примљених захтева за праћење",
-  "keyboard_shortcuts.search": "да се пребаците на претрагу",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
-  "keyboard_shortcuts.start": "да отворите колону \"почнимо\"",
-  "keyboard_shortcuts.toggle_hidden": "да прикажете/сакријте текст иза CW-а",
-  "keyboard_shortcuts.toggle_sensitivity": "за приказивање/сакривање медија",
+  "keyboard_shortcuts.legend": "Прикажи ову легенду",
+  "keyboard_shortcuts.local": "Отвори локалну временску линију",
+  "keyboard_shortcuts.mention": "Помени аутора",
+  "keyboard_shortcuts.muted": "Отвори листу игнорисаних корисника",
+  "keyboard_shortcuts.my_profile": "Отворите свој профил",
+  "keyboard_shortcuts.notifications": "Отвори колону обавештења",
+  "keyboard_shortcuts.open_media": "Отвори мултимедију",
+  "keyboard_shortcuts.pinned": "Отвори листу закачених објава",
+  "keyboard_shortcuts.profile": "Отвори профил аутора",
+  "keyboard_shortcuts.reply": "Одговори на објаву",
+  "keyboard_shortcuts.requests": "Отвори листу захтева за праћење",
+  "keyboard_shortcuts.search": "Фокусирај траку претраге",
+  "keyboard_shortcuts.spoilers": "Прикажи/сакриј поље текста упозорења о садржају (CW)",
+  "keyboard_shortcuts.start": "Отвори колону „први кораци”",
+  "keyboard_shortcuts.toggle_hidden": "Прикажи/сакриј текст иза CW-а",
+  "keyboard_shortcuts.toggle_sensitivity": "Прикажи/сакриј мултимедију",
   "keyboard_shortcuts.toot": "Започни нову објаву",
-  "keyboard_shortcuts.unfocus": "да одфокусирате/не будете више на претрази/прављењу нове трубе",
-  "keyboard_shortcuts.up": "да се померите на горе у листи",
+  "keyboard_shortcuts.unfocus": "Уклони фокус са поља за унос текста/претраге",
+  "keyboard_shortcuts.up": "Премести нагоре у листи",
   "lightbox.close": "Затвори",
-  "lightbox.compress": "Умањи преглед слике",
-  "lightbox.expand": "Увећај преглед слике",
-  "lightbox.next": "Следећи",
-  "lightbox.previous": "Претходни",
+  "lightbox.compress": "Компримуј оквир за приказ слике",
+  "lightbox.expand": "Прошири оквир за приказ слике",
+  "lightbox.next": "Следеће",
+  "lightbox.previous": "Претходно",
   "limited_account_hint.action": "Ипак прикажи профил",
   "limited_account_hint.title": "Овај профил су сакрили модератори {domain}.",
   "lists.account.add": "Додај на листу",
   "lists.account.remove": "Уклони са листе",
-  "lists.delete": "Обриши листу",
-  "lists.edit": "Измени листу",
+  "lists.delete": "Избриши листу",
+  "lists.edit": "Уреди листу",
   "lists.edit.submit": "Промени наслов",
   "lists.new.create": "Додај листу",
   "lists.new.title_placeholder": "Наслов нове листе",
@@ -353,33 +353,33 @@
   "lists.search": "Претражи међу људима које пратите",
   "lists.subheading": "Ваше листе",
   "load_pending": "{count, plural, one {# нова ставка} few {# нове ставке} other {# нових ставки}}",
-  "loading_indicator.label": "Учитавам...",
-  "media_gallery.toggle_visible": "Укључи/искључи видљивост",
+  "loading_indicator.label": "Учитавање...",
+  "media_gallery.toggle_visible": "{number, plural, one {Сакриј слику} few {Сакриј слике} other {Сакриј слике}}",
   "missing_indicator.label": "Није пронађено",
-  "missing_indicator.sublabel": "Овај ресурс није пронађен",
-  "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
+  "missing_indicator.sublabel": "Овај ресурс није могуће пронаћи",
+  "moved_to_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен јер сте прешли на {movedToAccount}.",
   "mute_modal.duration": "Трајање",
-  "mute_modal.hide_notifications": "Сакриј обавештења од овог корисника?",
+  "mute_modal.hide_notifications": "Сакрити обавештења од овог корисника?",
   "mute_modal.indefinite": "Неодређен",
-  "navigation_bar.about": "О",
+  "navigation_bar.about": "Основни подаци",
   "navigation_bar.blocks": "Блокирани корисници",
-  "navigation_bar.bookmarks": "Маркери",
+  "navigation_bar.bookmarks": "Обележивачи",
   "navigation_bar.community_timeline": "Локална временска линија",
-  "navigation_bar.compose": "Саставите нову трубу",
+  "navigation_bar.compose": "Састави нову објаву",
   "navigation_bar.direct": "Директне поруке",
   "navigation_bar.discover": "Откриј",
-  "navigation_bar.domain_blocks": "Сакривени домени",
+  "navigation_bar.domain_blocks": "Блокирани домени",
   "navigation_bar.edit_profile": "Уреди профил",
   "navigation_bar.explore": "Истражи",
-  "navigation_bar.favourites": "Омиљене",
-  "navigation_bar.filters": "Пригушене речи",
+  "navigation_bar.favourites": "Омиљено",
+  "navigation_bar.filters": "Игнорисане речи",
   "navigation_bar.follow_requests": "Захтеви за праћење",
   "navigation_bar.follows_and_followers": "Праћења и пратиоци",
   "navigation_bar.lists": "Листе",
   "navigation_bar.logout": "Одјава",
-  "navigation_bar.mutes": "Ућуткани корисници",
+  "navigation_bar.mutes": "Игнорисани корисници",
   "navigation_bar.personal": "Лично",
-  "navigation_bar.pins": "Прикачене трубе",
+  "navigation_bar.pins": "Закачене објаве",
   "navigation_bar.preferences": "Подешавања",
   "navigation_bar.public_timeline": "Здружена временска линија",
   "navigation_bar.search": "Претрага",
@@ -387,19 +387,19 @@
   "not_signed_in_indicator.not_signed_in": "Морате да се пријавите да приступите овом ресурсу.",
   "notification.admin.report": "{name} је пријавио {target}",
   "notification.admin.sign_up": "{name} се регистровао",
-  "notification.favourite": "{name} је ставио/ла Ваш статус као омиљени",
-  "notification.follow": "{name} Вас је запратио/ла",
-  "notification.follow_request": "{name} је затражио да Вас запрати",
-  "notification.mention": "{name} Вас је поменуо/ла",
+  "notification.favourite": "{name} је означио вашу објаву као омиљену",
+  "notification.follow": "{name} вас је запратио",
+  "notification.follow_request": "{name} је затражио да вас прати",
+  "notification.mention": "{name} вас је поменуо",
   "notification.own_poll": "Ваша анкета је завршена",
   "notification.poll": "Завршена је анкета у којој сте гласали",
-  "notification.reblog": "{name} је подржао/ла Ваш статус",
-  "notification.status": "{name} управо објавио",
-  "notification.update": "{name} је изменио објаву",
-  "notifications.clear": "Очисти обавештења",
-  "notifications.clear_confirmation": "Да ли сте сигурно да трајно желите да очистите Ваша обавештења?",
+  "notification.reblog": "{name} је подржао вашу објаву",
+  "notification.status": "{name} је управо објавио",
+  "notification.update": "{name} је уредио објаву",
+  "notifications.clear": "Обриши обавештења",
+  "notifications.clear_confirmation": "Да ли сте сигурни да желите трајно да обришете сва ваша обавештења?",
   "notifications.column_settings.admin.report": "Нове пријаве:",
-  "notifications.column_settings.admin.sign_up": "Нове пријаве:",
+  "notifications.column_settings.admin.sign_up": "Нове рагистрације:",
   "notifications.column_settings.alert": "Обавештења на радној површини",
   "notifications.column_settings.favourite": "Омиљени:",
   "notifications.column_settings.filter_bar.advanced": "Прикажи све категорије",
@@ -409,18 +409,18 @@
   "notifications.column_settings.follow_request": "Нови захтеви за праћење:",
   "notifications.column_settings.mention": "Помињања:",
   "notifications.column_settings.poll": "Резултати анкете:",
-  "notifications.column_settings.push": "Гурај обавештења",
-  "notifications.column_settings.reblog": "Подршки:",
+  "notifications.column_settings.push": "Прослеђена обавештења",
+  "notifications.column_settings.reblog": "Подржавања:",
   "notifications.column_settings.show": "Прикажи у колони",
-  "notifications.column_settings.sound": "Пуштај звук",
-  "notifications.column_settings.status": "Нови тутови:",
+  "notifications.column_settings.sound": "Репродукуј звук",
+  "notifications.column_settings.status": "Нове објаве:",
   "notifications.column_settings.unread_notifications.category": "Непрочитана обавештења",
   "notifications.column_settings.unread_notifications.highlight": "Истакни непрочитана обавештења",
-  "notifications.column_settings.update": "Измене:",
+  "notifications.column_settings.update": "Уређивања:",
   "notifications.filter.all": "Све",
-  "notifications.filter.boosts": "Подршки",
-  "notifications.filter.favourites": "Омиљене",
-  "notifications.filter.follows": "Праћени",
+  "notifications.filter.boosts": "Подржавања",
+  "notifications.filter.favourites": "Омиљено",
+  "notifications.filter.follows": "Праћења",
   "notifications.filter.mentions": "Помињања",
   "notifications.filter.polls": "Резултати анкете",
   "notifications.filter.statuses": "Ажурирања од људи које пратите",
@@ -431,82 +431,82 @@
   "notifications.permission_denied_alert": "Обавештења на радној површини не могу бити омогућена, јер је дозвола прегледача раније била одбијена",
   "notifications.permission_required": "Обавештења на радној површини нису доступна јер потребна дозвола није додељена.",
   "notifications_permission_banner.enable": "Омогућити обавештења на радној површини",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Ништа не пропустите",
+  "notifications_permission_banner.how_to_control": "Да бисте примали обавештења када Mastodon није отворен, омогућите обавештења на радној површини. Kада су обавештења на радној површини омогућена врсте интеракција које она генеришу могу се подешавати помоћу дугмета {icon}.",
+  "notifications_permission_banner.title": "Никада ништа не пропустите",
   "picture_in_picture.restore": "Врати то назад",
   "poll.closed": "Затворено",
   "poll.refresh": "Освежи",
   "poll.total_people": "{count, plural, one {# особа} few {# особе} other {# особа}}",
-  "poll.total_votes": "{count, plural, one {# гласање} few {# гласања} other {# гласања}}",
+  "poll.total_votes": "{count, plural, one {# глас} few {# гласа} other {# гласова}}",
   "poll.vote": "Гласајте",
   "poll.voted": "Гласали сте за овај одговор",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, one {# глас} few {# гласа} other {# гласова}}",
   "poll_button.add_poll": "Додај анкету",
   "poll_button.remove_poll": "Уклони анкету",
-  "privacy.change": "Подеси статус приватности",
-  "privacy.direct.long": "Објави само корисницима који су поменути",
-  "privacy.direct.short": "Само за поменуте",
-  "privacy.private.long": "Објави само пратиоцима",
+  "privacy.change": "Промени приватност објаве",
+  "privacy.direct.long": "Видљиво само за поменуте кориснике",
+  "privacy.direct.short": "Само поменуте особе",
+  "privacy.private.long": "Видљиво само за пратиоце",
   "privacy.private.short": "Само пратиоци",
-  "privacy.public.long": "Видљиво свима",
+  "privacy.public.long": "Видљиво за све",
   "privacy.public.short": "Јавно",
-  "privacy.unlisted.long": "Видљиво свима, али искључено из могућности откривања",
+  "privacy.unlisted.long": "Видљиво за све, али искључено из функције откривања",
   "privacy.unlisted.short": "Неизлистано",
-  "privacy_policy.last_updated": "Последња измена {date}",
+  "privacy_policy.last_updated": "Последње ажурирање {date}",
   "privacy_policy.title": "Политика приватности",
   "refresh": "Освежи",
   "regeneration_indicator.label": "Учитавање…",
   "regeneration_indicator.sublabel": "Ваша почетна страница се припрема!",
-  "relative_time.days": "{number}д",
-  "relative_time.full.days": "пре {number, plural, one {# дана} other {# дана}}",
-  "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
+  "relative_time.days": "{number} дан.",
+  "relative_time.full.days": "Пре {number, plural, one {# дан} few {# дана} other {# дана}}",
+  "relative_time.full.hours": "пре {number, plural, one {# сат} few {# сата} other {# сати}}",
   "relative_time.full.just_now": "управо сад",
-  "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
-  "relative_time.hours": "{number}х",
+  "relative_time.full.minutes": "пре {number, plural, one {# минут} few {# минута} other {# минута}}",
+  "relative_time.full.seconds": "пре {number, plural, one {# секунду} few {# секунде} other {# секунди}}",
+  "relative_time.hours": "{number} час.",
   "relative_time.just_now": "сада",
-  "relative_time.minutes": "{number}м",
-  "relative_time.seconds": "{number}с",
+  "relative_time.minutes": "{number} мин.",
+  "relative_time.seconds": "{number} сек.",
   "relative_time.today": "данас",
-  "reply_indicator.cancel": "Поништи",
+  "reply_indicator.cancel": "Откажи",
   "report.block": "Блокирај",
-  "report.block_explanation": "Нећете видети његове/њене објаве. Ни он/она неће видети Ваше објаве нити ће моћи да Вас прате. Такође може да зна да је блокиран(а).",
+  "report.block_explanation": "Нећете видети објаве корисника. Ни он неће видети ваше објаве нити ће моћи да вас прати. Такође може да зна да је блокиран.",
   "report.categories.other": "Остало",
   "report.categories.spam": "Спам",
   "report.categories.violation": "Садржај крши једно или више правила сервера",
   "report.category.subtitle": "Одаберите најприближније",
   "report.category.title": "Реците нам шта је проблем са овим {type}",
   "report.category.title_account": "профилом",
-  "report.category.title_status": "постом",
+  "report.category.title_status": "објавом",
   "report.close": "Готово",
   "report.comment.title": "Да ли има нешто додатно што треба да знамо?",
   "report.forward": "Проследити {target}",
   "report.forward_hint": "Налог је са другог сервера. Послати анонимну копију пријаве и тамо?",
-  "report.mute": "Ућуткај",
-  "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
-  "report.next": "Next",
+  "report.mute": "Игнориши",
+  "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.dislike": "Не свиђа ми се",
+  "report.reasons.dislike_description": "Ово није нешто што желиш да видите",
+  "report.reasons.other": "Нешто друго",
+  "report.reasons.other_description": "Проблем се не уклапа у друге категорије",
   "report.reasons.spam": "Ово је спам",
-  "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
+  "report.reasons.spam_description": "Злонамерне везе, лажно ангажовање или одговори који се понављају",
   "report.reasons.violation": "Крши правила сервера",
   "report.reasons.violation_description": "Свесни сте да крши нека одређена правила",
-  "report.rules.subtitle": "Select all that apply",
-  "report.rules.title": "Which rules are being violated?",
-  "report.statuses.subtitle": "Select all that apply",
+  "report.rules.subtitle": "Изабери све што важи",
+  "report.rules.title": "Која правила су прекршена?",
+  "report.statuses.subtitle": "Изабери све што важи",
   "report.statuses.title": "Да ли постоје било какве објаве које подржавају ову пријаву?",
   "report.submit": "Пошаљи",
   "report.target": "Пријављујем {target}",
-  "report.thanks.take_action": "Ово су Ваше опције да контролишете шта видите на Мастодону:",
-  "report.thanks.take_action_actionable": "Док ми гледамо, можете применити следеће радње против @{name}:",
+  "report.thanks.take_action": "Ово су Ваше опције да контролишете шта видите на Mastodon-у:",
+  "report.thanks.take_action_actionable": "Док ми прегледамо ово, можете применити следеће радње против @{name}:",
   "report.thanks.title": "Не желите да видите ово?",
   "report.thanks.title_actionable": "Хвала на пријави, прегледаћемо је.",
   "report.unfollow": "Отпрати @{name}",
-  "report.unfollow_explanation": "Пратиш овај налог. Да не би више видео њихове објаве у својом основном низу објава, престани да их пратиш.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} објава} other {{count} објаве}} у прилогу",
+  "report.unfollow_explanation": "Пратите овај налог. Да не бисте више видели његове објаве на почетној страници, отпратите га.",
+  "report_notification.attached_statuses": "{count, plural, one {{count} објава} few {{count} објаве} other {{count} објава}} у прилогу",
   "report_notification.categories.other": "Остало",
   "report_notification.categories.spam": "Спам",
   "report_notification.categories.violation": "Кршење правила",
@@ -514,68 +514,68 @@
   "search.placeholder": "Претрага",
   "search.search_or_paste": "Претражите или унесите адресу",
   "search_popout.search_format": "Напредни формат претраге",
-  "search_popout.tips.full_text": "Једноставан текст враћа статусе које сте написали, фаворизовали, подржали или били поменути, као и подударање корисничких имена, приказаних имена, и тараба.",
-  "search_popout.tips.hashtag": "хештег",
-  "search_popout.tips.status": "статус",
-  "search_popout.tips.text": "Тражењем обичног текста ћете добити сва пронађена имена, сва корисничка имена и све нађене хештегове",
+  "search_popout.tips.full_text": "Једноставан текст враћа објаве које сте написали, додали у омиљене, подржали или у којима сте били поменути, као и подударање корисничких имена, приказана имена и хеш ознаке.",
+  "search_popout.tips.hashtag": "хеш ознака",
+  "search_popout.tips.status": "објава",
+  "search_popout.tips.text": "Једноставан текст враћа подударање имена за приказ, корисничка имена и хеш ознаке",
   "search_popout.tips.user": "корисник",
   "search_results.accounts": "Људи",
   "search_results.all": "Све",
-  "search_results.hashtags": "Тарабе",
-  "search_results.nothing_found": "Нема ништа за овај термин претраге",
-  "search_results.statuses": "Трубе",
-  "search_results.statuses_fts_disabled": "Претрага објава по садржају није омогућена на овом Мастодон серверу.",
+  "search_results.hashtags": "Хеш ознаке",
+  "search_results.nothing_found": "Није могуће пронаћи ништа за ове термине за претрагу",
+  "search_results.statuses": "Објаве",
+  "search_results.statuses_fts_disabled": "Претрага објава по садржају није омогућена на овом Mastodon серверу.",
   "search_results.title": "Претражи {q}",
   "search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}",
   "server_banner.about_active_users": "Људи који су користили овај сервер у претходних 30 дана (месечно активних корисника)",
   "server_banner.active_users": "активних корисника",
   "server_banner.administered_by": "Администрирано од стране:",
-  "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
+  "server_banner.introduction": "{domain} је део децентрализоване друштвене мреже коју покреће {mastodon}.",
   "server_banner.learn_more": "Сазнајте више",
   "server_banner.server_stats": "Статистике сервера:",
   "sign_in_banner.create_account": "Направи налог",
   "sign_in_banner.sign_in": "Пријави се",
   "sign_in_banner.text": "Пријавите се да пратите профиле или хештегове, ставите објаве као омиљене, делите и одговарате на њих или комуницирате са свог налога са другог сервера.",
-  "status.admin_account": "Отвори модераторски интерфејс за @{name}",
-  "status.admin_status": "Отвори овај статус у модераторском интерфејсу",
+  "status.admin_account": "Отвори модераторско окружење за @{name}",
+  "status.admin_status": "Отвори ову објаву у модераторском окружењу",
   "status.block": "Блокирај @{name}",
-  "status.bookmark": "Обележи",
+  "status.bookmark": "Додај у обележиваче",
   "status.cancel_reblog_private": "Уклони подршку",
-  "status.cannot_reblog": "Овај статус не може да се подржи",
-  "status.copy": "Копирај везу на статус",
-  "status.delete": "Обриши",
-  "status.detailed_status": "Детаљни преглед разговора",
+  "status.cannot_reblog": "Ова објава се не може подржати",
+  "status.copy": "Копирај везу у објаву",
+  "status.delete": "Избриши",
+  "status.detailed_status": "Детаљан приказ разговора",
   "status.direct": "Директна порука @{name}",
-  "status.edit": "Измени",
-  "status.edited": "Измењено {date}",
-  "status.edited_x_times": "Измењено {count, plural, one {{count} пут} other {{count} пута}}",
-  "status.embed": "Угради на сајт",
+  "status.edit": "Уреди",
+  "status.edited": "Уређено {date}",
+  "status.edited_x_times": "Уређено {count, plural, one {{count} пут} other {{count} пута}}",
+  "status.embed": "Угради",
   "status.favourite": "Омиљено",
   "status.filter": "Филтрирај ову објаву",
   "status.filtered": "Филтрирано",
-  "status.hide": "Сакриј тут",
+  "status.hide": "Сакриј објаву",
   "status.history.created": "{name} написао/ла {date}",
-  "status.history.edited": "{name} изменио/ла {date}",
+  "status.history.edited": "{name} уредио/ла {date}",
   "status.load_more": "Учитај још",
   "status.media_hidden": "Мултимедија сакривена",
-  "status.mention": "Помени корисника @{name}",
+  "status.mention": "Помени @{name}",
   "status.more": "Још",
-  "status.mute": "Ућуткај @{name}",
-  "status.mute_conversation": "Ућуткај преписку",
-  "status.open": "Прошири овај статус",
+  "status.mute": "Игнориши @{name}",
+  "status.mute_conversation": "Игнориши разговор",
+  "status.open": "Прошири ову објаву",
   "status.pin": "Закачи на профил",
-  "status.pinned": "Закачена труба",
+  "status.pinned": "Закачене објаве",
   "status.read_more": "Прочитајте више",
   "status.reblog": "Подржи",
-  "status.reblog_private": "Подржи да види првобитна публика",
-  "status.reblogged_by": "{name} подржао/ла",
-  "status.reblogs.empty": "Још увек нико није подржао ову трубу. Када буде подржана, појавиће се овде.",
-  "status.redraft": "Избриши и преправи",
+  "status.reblog_private": "Подржи са оригиналном видљивошћу",
+  "status.reblogged_by": "{name} је подржао/ла",
+  "status.reblogs.empty": "Још увек нико није подржао ову објаву. Када буде подржана, појавиће се овде.",
+  "status.redraft": "Избриши и преобликуј",
   "status.remove_bookmark": "Уклони обележивач",
   "status.replied_to": "Одговор за {name}",
   "status.reply": "Одговори",
   "status.replyAll": "Одговори на дискусију",
-  "status.report": "Пријави корисника @{name}",
+  "status.report": "Пријави @{name}",
   "status.sensitive_warning": "Осетљив садржај",
   "status.share": "Подели",
   "status.show_filter_reason": "Ипак прикажи",
@@ -587,63 +587,63 @@
   "status.translate": "Преведи",
   "status.translated_from_with": "Преведено са {lang} користећи {provider}",
   "status.uncached_media_warning": "Није доступно",
-  "status.unmute_conversation": "Укључи преписку",
+  "status.unmute_conversation": "Не игнориши разговор",
   "status.unpin": "Откачи са профила",
   "subscribed_languages.lead": "Само објаве на означеним језицима ће се појављивати на почетној линији и на листама после ове измене. Одаберите ништа да примате објаве на свим језицима.",
   "subscribed_languages.save": "Сачувај измене",
   "subscribed_languages.target": "Промени језике на које је {target} пријављен",
   "suggestions.dismiss": "Одбаци предлог",
-  "suggestions.header": "Можда ће Вас занимати…",
-  "tabs_bar.federated_timeline": "Федерисано",
+  "suggestions.header": "Можда ће вас занимати…",
+  "tabs_bar.federated_timeline": "Здружено",
   "tabs_bar.home": "Почетна",
   "tabs_bar.local_timeline": "Локално",
   "tabs_bar.notifications": "Обавештења",
   "time_remaining.days": "Остало {number, plural, one {# дан} few {# дана} other {# дана}}",
   "time_remaining.hours": "Остало {number, plural, one {# сат} few {# сата} other {# сати}}",
   "time_remaining.minutes": "Остало {number, plural, one {# минут} few {# минута} other {# минута}}",
-  "time_remaining.moments": "Преостао тренутак",
+  "time_remaining.moments": "Још неколико тренутака",
   "time_remaining.seconds": "Остало {number, plural, one {# секунд} few {# секунде} other {# секунди}}",
   "timeline_hint.remote_resource_not_displayed": "{resource} са других сервера се не приказују.",
   "timeline_hint.resources.followers": "Пратиоци",
   "timeline_hint.resources.follows": "Праћени",
-  "timeline_hint.resources.statuses": "Старији тут",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
+  "timeline_hint.resources.statuses": "Старије објаве",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} особа} few {{counter} особе} other {{counter} особа}} у протеклих {days, plural, one {дан} few {{days} дана} other {{days} дана}}",
   "trends.trending_now": "У тренду сада",
-  "ui.beforeunload": "Ако напустите Мастодон, изгубићете написани нацрт.",
-  "units.short.billion": "{count}Б",
-  "units.short.million": "{count}М",
-  "units.short.thousand": "{count}К",
-  "upload_area.title": "Превуците овде да отпремите",
-  "upload_button.label": "Додај мултимедију (JPEG, PNG, GIF, WebM, MP4, MOV)",
-  "upload_error.limit": "Достигнуто ограничење величине за отпремање.",
+  "ui.beforeunload": "Ваш нацрт ће бити изгубљен ако напустите Mastodon.",
+  "units.short.billion": "{count} млрд.",
+  "units.short.million": "{count} мил.",
+  "units.short.thousand": "{count} хиљ.",
+  "upload_area.title": "Превуците и отпустите за отпремање",
+  "upload_button.label": "Додај слике, видео или аудио датотеку",
+  "upload_error.limit": "Достигнуто је ограничење за отпремање датотека.",
   "upload_error.poll": "Отпремање датотека није дозвољено са анкетама.",
-  "upload_form.audio_description": "Опишите за људе са оштећењем слуха",
+  "upload_form.audio_description": "Опишите за особе са оштећеним слухом",
   "upload_form.description": "Опишите за особе са оштећеним видом",
-  "upload_form.description_missing": "Нема описа",
+  "upload_form.description_missing": "Нема додатог описа",
   "upload_form.edit": "Уреди",
-  "upload_form.thumbnail": "Промени приказ слика",
-  "upload_form.undo": "Обриши",
-  "upload_form.video_description": "Опишите за људе са оштећењем слуха или вида",
-  "upload_modal.analyzing_picture": "Анализа слике…",
+  "upload_form.thumbnail": "Промени сличицу",
+  "upload_form.undo": "Избриши",
+  "upload_form.video_description": "Опишите за особе са оштећеним слухом или видом",
+  "upload_modal.analyzing_picture": "Анализирање слике…",
   "upload_modal.apply": "Примени",
-  "upload_modal.applying": "Примењујем…",
-  "upload_modal.choose_image": "Изабери слику",
+  "upload_modal.applying": "Примена…",
+  "upload_modal.choose_image": "Одаберите слику",
   "upload_modal.description_placeholder": "Љубазни фењерџија чађавог лица хоће да ми покаже штос",
   "upload_modal.detect_text": "Откриј текст са слике",
-  "upload_modal.edit_media": "Уреди милтимедијум",
-  "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
+  "upload_modal.edit_media": "Уреди милтимедију",
+  "upload_modal.hint": "Кликните или превуците кружић на прегледу за избор тачке фокуса која ће увек бити видљива на свим сличицама.",
   "upload_modal.preparing_ocr": "Припрема OCR-а…",
   "upload_modal.preview_label": "Преглед ({ratio})",
-  "upload_progress.label": "Отпремам...",
+  "upload_progress.label": "Отпремање...",
   "upload_progress.processing": "Обрада…",
   "video.close": "Затвори видео",
   "video.download": "Преузимање датотеке",
-  "video.exit_fullscreen": "Напусти цео екран",
+  "video.exit_fullscreen": "Изађи из режима целог екрана",
   "video.expand": "Прошири видео",
   "video.fullscreen": "Цео екран",
   "video.hide": "Сакриј видео",
-  "video.mute": "Угаси звук",
+  "video.mute": "Искључи звук",
   "video.pause": "Паузирај",
-  "video.play": "Пусти",
-  "video.unmute": "Врати звук"
+  "video.play": "Репродукуј",
+  "video.unmute": "Укључи звук"
 }
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index ea69b1e39..6c3788d51 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -95,7 +95,7 @@
   "closed_registrations.other_server_instructions": "เนื่องจาก Mastodon เป็นแบบกระจายศูนย์ คุณสามารถสร้างบัญชีในเซิร์ฟเวอร์อื่นและยังคงโต้ตอบกับเซิร์ฟเวอร์นี้",
   "closed_registrations_modal.description": "ไม่สามารถสร้างบัญชีใน {domain} ได้ในปัจจุบัน แต่โปรดจำไว้ว่าคุณไม่จำเป็นต้องมีบัญชีใน {domain} โดยเฉพาะเพื่อใช้ Mastodon",
   "closed_registrations_modal.find_another_server": "ค้นหาเซิร์ฟเวอร์อื่น",
-  "closed_registrations_modal.preamble": "Mastodon เป็นแบบกระจายศูนย์ ดังนั้นไม่ว่าคุณจะสร้างบัญชีของคุณที่ใด คุณจะสามารถติดตามและโต้ตอบกับใครก็ได้ในเซิร์ฟเวอร์นี้ คุณยังสามารถโฮสต์เซิร์ฟเวอร์ด้วยตนเองได้อีกด้วย!",
+  "closed_registrations_modal.preamble": "Mastodon เป็นแบบกระจายศูนย์ ดังนั้นไม่ว่าคุณจะสร้างบัญชีของคุณที่ใด คุณจะสามารถติดตามและโต้ตอบกับใครก็ตามในเซิร์ฟเวอร์นี้ คุณยังสามารถโฮสต์บัญชีด้วยตนเองได้อีกด้วย!",
   "closed_registrations_modal.title": "การลงทะเบียนใน Mastodon",
   "column.about": "เกี่ยวกับ",
   "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
@@ -184,12 +184,12 @@
   "directory.recently_active": "ใช้งานล่าสุด",
   "disabled_account_banner.account_settings": "การตั้งค่าบัญชี",
   "disabled_account_banner.text": "มีการปิดใช้งานบัญชีของคุณ {disabledAccount} ในปัจจุบัน",
-  "dismissable_banner.community_timeline": "ด้านล่างนี้เป็นโพสต์สาธารณะล่าสุดจากผู้คนที่มีบัญชีอยู่บน {domain}",
+  "dismissable_banner.community_timeline": "นี่คือโพสต์สาธารณะล่าสุดจากผู้คนที่บัญชีได้รับการโฮสต์โดย {domain}",
   "dismissable_banner.dismiss": "ปิด",
   "dismissable_banner.explore_links": "เรื่องข่าวเหล่านี้กำลังได้รับการพูดถึงโดยผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ในตอนนี้",
   "dismissable_banner.explore_statuses": "โพสต์เหล่านี้จากเซิร์ฟเวอร์นี้และอื่น ๆ ในเครือข่ายแบบกระจายศูนย์กำลังได้รับความสนใจในเซิร์ฟเวอร์นี้ในตอนนี้",
   "dismissable_banner.explore_tags": "แฮชแท็กเหล่านี้กำลังได้รับความสนใจในหมู่ผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ในตอนนี้",
-  "dismissable_banner.public_timeline": "ด้านล่างนี้เป็นโพสต์สาธารณะล่าสุดจากผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ที่เซิร์ฟเวอร์นี้รู้จัก",
+  "dismissable_banner.public_timeline": "นี่คือโพสต์สาธารณะล่าสุดจากผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ที่เซิร์ฟเวอร์นี้ทราบเกี่ยวกับ",
   "embed.instructions": "ฝังโพสต์นี้ในเว็บไซต์ของคุณโดยคัดลอกโค้ดด้านล่าง",
   "embed.preview": "นี่คือลักษณะที่จะปรากฏ:",
   "emoji_button.activity": "กิจกรรม",
@@ -230,8 +230,8 @@
   "empty_column.public": "ไม่มีสิ่งใดที่นี่! เขียนบางอย่างเป็นสาธารณะ หรือติดตามผู้ใช้จากเซิร์ฟเวอร์อื่น ๆ ด้วยตนเองเพื่อเติมเส้นเวลาให้เต็ม",
   "error.unexpected_crash.explanation": "เนื่องจากข้อบกพร่องในโค้ดของเราหรือปัญหาความเข้ากันได้ของเบราว์เซอร์ จึงไม่สามารถแสดงหน้านี้ได้อย่างถูกต้อง",
   "error.unexpected_crash.explanation_addons": "ไม่สามารถแสดงหน้านี้ได้อย่างถูกต้อง ข้อผิดพลาดนี้เป็นไปได้ว่าเกิดจากส่วนเสริมของเบราว์เซอร์หรือเครื่องมือการแปลอัตโนมัติ",
-  "error.unexpected_crash.next_steps": "ลองรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ได้ผ่านเบราว์เซอร์อื่นหรือแอป",
-  "error.unexpected_crash.next_steps_addons": "ลองปิดใช้งานส่วนเสริมหรือเครื่องมือแล้วรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ได้ผ่านเบราว์เซอร์อื่นหรือแอป",
+  "error.unexpected_crash.next_steps": "ลองรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ได้ผ่านเบราว์เซอร์อื่นหรือแอปเนทีฟ",
+  "error.unexpected_crash.next_steps_addons": "ลองปิดใช้งานส่วนเสริมหรือเครื่องมือแล้วรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ได้ผ่านเบราว์เซอร์อื่นหรือแอปเนทีฟ",
   "errors.unexpected_crash.copy_stacktrace": "คัดลอกการติดตามสแตกไปยังคลิปบอร์ด",
   "errors.unexpected_crash.report_issue": "รายงานปัญหา",
   "explore.search_results": "ผลลัพธ์การค้นหา",
@@ -475,7 +475,7 @@
   "report.categories.spam": "สแปม",
   "report.categories.violation": "เนื้อหาละเมิดหนึ่งกฎของเซิร์ฟเวอร์หรือมากกว่า",
   "report.category.subtitle": "เลือกที่ตรงกันที่สุด",
-  "report.category.title": "บอกเราว่าเกิดอะไรขึ้นกับ {type} นี้",
+  "report.category.title": "บอกเราถึงสิ่งที่กำลังเกิดขึ้นกับ {type} นี้",
   "report.category.title_account": "โปรไฟล์",
   "report.category.title_status": "โพสต์",
   "report.close": "เสร็จสิ้น",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index d52537e2c..ed1e1ad75 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -36,7 +36,7 @@
   "account.following": "Ви стежите",
   "account.following_counter": "{count, plural, one {{counter} підписка} few {{counter} підписки} many {{counter} підписок} other {{counter} підписки}}",
   "account.follows.empty": "Цей користувач ще ні на кого не підписався.",
-  "account.follows_you": "Підписані на вас",
+  "account.follows_you": "Підписується на вас",
   "account.go_to_profile": "Перейти до профілю",
   "account.hide_reblogs": "Сховати поширення від @{name}",
   "account.joined_short": "Дата приєднання",
@@ -48,7 +48,7 @@
   "account.moved_to": "{name} вказує, що їхній новий обліковий запис тепер:",
   "account.mute": "Приховати @{name}",
   "account.mute_notifications": "Не показувати сповіщення від @{name}",
-  "account.muted": "Нехтується",
+  "account.muted": "Приховується",
   "account.open_original_page": "Відкрити оригінальну сторінку",
   "account.posts": "Дописи",
   "account.posts_with_replies": "Дописи й відповіді",
@@ -108,7 +108,7 @@
   "column.follow_requests": "Запити на підписку",
   "column.home": "Головна",
   "column.lists": "Списки",
-  "column.mutes": "Нехтувані користувачі",
+  "column.mutes": "Приховані користувачі",
   "column.notifications": "Сповіщення",
   "column.pins": "Закріплені дописи",
   "column.public": "Глобальна стрічка",
@@ -163,7 +163,7 @@
   "confirmations.domain_block.message": "Ви точно, точно впевнені, що хочете заблокувати весь домен {domain}? У більшості випадків для нормальної роботи краще заблокувати або приховати лише деяких користувачів. Ви не зможете бачити контент з цього домену у будь-яких стрічках або ваших сповіщеннях. Ваші підписники з цього домену будуть відписані від вас.",
   "confirmations.logout.confirm": "Вийти",
   "confirmations.logout.message": "Ви впевнені, що хочете вийти?",
-  "confirmations.mute.confirm": "Нехтувати",
+  "confirmations.mute.confirm": "Приховати",
   "confirmations.mute.explanation": "Це сховає дописи від них і дописи зі згадками про них, проте вони все одно матимуть змогу бачити ваші дописи й підписуватися на вас.",
   "confirmations.mute.message": "Ви впевнені, що хочете приховати {name}?",
   "confirmations.redraft.confirm": "Видалити та виправити",
@@ -225,7 +225,7 @@
   "empty_column.home.suggestions": "Переглянути пропозиції",
   "empty_column.list": "Цей список порожній. Коли його учасники додадуть нові дописи, вони з'являться тут.",
   "empty_column.lists": "У вас ще немає списків. Коли ви їх створите, вони з'являться тут.",
-  "empty_column.mutes": "Ви ще не нехтуєте жодного користувача.",
+  "empty_column.mutes": "Ви ще не приховали жодного користувача.",
   "empty_column.notifications": "У вас ще немає сповіщень. Переписуйтесь з іншими користувачами, щоб почати розмову.",
   "empty_column.public": "Тут поки нічого немає! Опублікуйте щось, або вручну підпишіться на користувачів інших серверів, щоб заповнити стрічку",
   "error.unexpected_crash.explanation": "Через помилку у нашому коді або несумісність браузера, ця сторінка не може бути зображена коректно.",
@@ -316,7 +316,7 @@
   "keyboard_shortcuts.legend": "Показати легенду",
   "keyboard_shortcuts.local": "Відкрити локальну стрічку",
   "keyboard_shortcuts.mention": "Згадати автора",
-  "keyboard_shortcuts.muted": "Відкрити список нехтуваних користувачів",
+  "keyboard_shortcuts.muted": "Відкрити список прихованих користувачів",
   "keyboard_shortcuts.my_profile": "Відкрити ваш профіль",
   "keyboard_shortcuts.notifications": "Відкрити колонку сповіщень",
   "keyboard_shortcuts.open_media": "Відкрити медіа",
@@ -359,8 +359,8 @@
   "missing_indicator.sublabel": "Ресурс не знайдено",
   "moved_to_account_banner.text": "Ваш обліковий запис {disabledAccount} наразі вимкнений, оскільки вас перенесено до {movedToAccount}.",
   "mute_modal.duration": "Тривалість",
-  "mute_modal.hide_notifications": "Сховати сповіщення від користувача?",
-  "mute_modal.indefinite": "Не визначено",
+  "mute_modal.hide_notifications": "Сховати сповіщення цього користувача?",
+  "mute_modal.indefinite": "Назавжди",
   "navigation_bar.about": "Про застосунок",
   "navigation_bar.blocks": "Заблоковані користувачі",
   "navigation_bar.bookmarks": "Закладки",
@@ -377,7 +377,7 @@
   "navigation_bar.follows_and_followers": "Підписки та підписники",
   "navigation_bar.lists": "Списки",
   "navigation_bar.logout": "Вийти",
-  "navigation_bar.mutes": "Нехтувані користувачі",
+  "navigation_bar.mutes": "Приховані користувачі",
   "navigation_bar.personal": "Особисте",
   "navigation_bar.pins": "Закріплені дописи",
   "navigation_bar.preferences": "Налаштування",
@@ -387,7 +387,7 @@
   "not_signed_in_indicator.not_signed_in": "Для доступу до цього ресурсу вам потрібно увійти.",
   "notification.admin.report": "Скарга від {name} на {target}",
   "notification.admin.sign_up": "{name} приєдналися",
-  "notification.favourite": "{name} вподобали ваш допис",
+  "notification.favourite": "Ваш допис подобається {name}",
   "notification.follow": "{name} підписалися на вас",
   "notification.follow_request": "{name} відправили запит на підписку",
   "notification.mention": "{name} згадали вас",
@@ -483,7 +483,7 @@
   "report.forward": "Надіслати до {target}",
   "report.forward_hint": "Це обліковий запис з іншого сервера. Відправити анонімізовану копію скарги й туди?",
   "report.mute": "Приховати",
-  "report.mute_explanation": "Ви не побачите їхніх дописів. Вони все ще можуть стежити за вами, бачити ваші дописи та не знатимуть про нехтування.",
+  "report.mute_explanation": "Ви не побачите їхніх дописів. Вони все ще можуть стежити за вами, бачити ваші дописи, але не знатимуть що їх приховано.",
   "report.next": "Далі",
   "report.placeholder": "Додаткові коментарі",
   "report.reasons.dislike": "Мені це не подобається",
@@ -506,7 +506,7 @@
   "report.thanks.title_actionable": "Дякуємо за скаргу, ми розглянемо її.",
   "report.unfollow": "Відписатися від @{name}",
   "report.unfollow_explanation": "Ви підписані на цього користувача. Щоб більше не бачити їхні дописи у вашій стрічці, відпишіться від них.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} допис} few {{count} дописи} other {{counter} дописів}} прикріплено",
+  "report_notification.attached_statuses": "{count, plural, one {{count} допис} few {{count} дописи} many {{count} дописів} other {{count} дописи}} прикріплено",
   "report_notification.categories.other": "Інше",
   "report_notification.categories.spam": "Спам",
   "report_notification.categories.violation": "Порушення правил",
@@ -539,7 +539,7 @@
   "status.admin_account": "Відкрити інтерфейс модерації для @{name}",
   "status.admin_status": "Відкрити цей допис в інтерфейсі модерації",
   "status.block": "Заблокувати @{name}",
-  "status.bookmark": "Додати в закладки",
+  "status.bookmark": "Додати до закладок",
   "status.cancel_reblog_private": "Скасувати поширення",
   "status.cannot_reblog": "Цей допис не може бути поширений",
   "status.copy": "Копіювати посилання на допис",
@@ -561,14 +561,14 @@
   "status.mention": "Згадати @{name}",
   "status.more": "Більше",
   "status.mute": "Приховати @{name}",
-  "status.mute_conversation": "Ігнорувати діалог",
+  "status.mute_conversation": "Ігнорувати розмову",
   "status.open": "Розгорнути допис",
   "status.pin": "Закріпити у профілі",
   "status.pinned": "Закріплений допис",
   "status.read_more": "Дізнатися більше",
   "status.reblog": "Поширити",
   "status.reblog_private": "Поширити для початкової аудиторії",
-  "status.reblogged_by": "{name} поширив",
+  "status.reblogged_by": "{name} поширює",
   "status.reblogs.empty": "Ніхто ще не поширив цей допис. Коли хтось це зроблять, вони будуть зображені тут.",
   "status.redraft": "Видалити та виправити",
   "status.remove_bookmark": "Видалити закладку",
@@ -587,7 +587,7 @@
   "status.translate": "Перекласти",
   "status.translated_from_with": "Перекладено з {lang} за допомогою {provider}",
   "status.uncached_media_warning": "Недоступно",
-  "status.unmute_conversation": "Не ігнорувати діалог",
+  "status.unmute_conversation": "Не ігнорувати розмову",
   "status.unpin": "Відкріпити від профілю",
   "subscribed_languages.lead": "Лише дописи вибраними мовами з'являтимуться на вашій домівці та у списку стрічок після змін. Виберіть «none», щоб отримувати повідомлення всіма мовами.",
   "subscribed_languages.save": "Зберегти зміни",
diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json
index ad048dccb..d9881abeb 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -1,13 +1,13 @@
 {
-  "about.blocks": "Moderated servers",
-  "about.contact": "Contact:",
+  "about.blocks": "معتدل سرورز",
+  "about.contact": "رابطہ:",
   "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
-  "about.domain_blocks.no_reason_available": "Reason not available",
+  "about.domain_blocks.no_reason_available": "وجوہات نہیں دستیاب",
   "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
   "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
-  "about.domain_blocks.silenced.title": "Limited",
+  "about.domain_blocks.silenced.title": "محدود",
   "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
-  "about.domain_blocks.suspended.title": "Suspended",
+  "about.domain_blocks.suspended.title": "معطل شدہ",
   "about.not_available": "This information has not been made available on this server.",
   "about.powered_by": "Decentralized social media powered by {mastodon}",
   "about.rules": "Server rules",
@@ -27,7 +27,7 @@
   "account.enable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع کریں",
   "account.endorse": "مشکص پر نمایاں کریں",
   "account.featured_tags.last_status_at": "Last post on {date}",
-  "account.featured_tags.last_status_never": "No posts",
+  "account.featured_tags.last_status_never": "کوئی مراسلہ نہیں",
   "account.featured_tags.title": "{name}'s featured hashtags",
   "account.follow": "پیروی کریں",
   "account.followers": "پیروکار",
@@ -39,7 +39,7 @@
   "account.follows_you": "آپ کا پیروکار ہے",
   "account.go_to_profile": "Go to profile",
   "account.hide_reblogs": "@{name} سے فروغ چھپائیں",
-  "account.joined_short": "Joined",
+  "account.joined_short": "شمولیت",
   "account.languages": "Change subscribed languages",
   "account.link_verified_on": "اس لنک کی ملکیت کی توثیق {date} پر کی گئی تھی",
   "account.locked_info": "اس اکاونٹ کا اخفائی ضابطہ مقفل ہے۔ صارف کی پیروی کون کر سکتا ہے اس کا جائزہ وہ خود لیتا ہے.",
@@ -97,11 +97,11 @@
   "closed_registrations_modal.find_another_server": "Find another server",
   "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
   "closed_registrations_modal.title": "Signing up on Mastodon",
-  "column.about": "About",
+  "column.about": "متعلق",
   "column.blocks": "مسدود صارفین",
   "column.bookmarks": "بُک مارکس",
   "column.community": "مقامی زمانی جدول",
-  "column.direct": "Direct messages",
+  "column.direct": "براہ راست پیغامات",
   "column.directory": "مشخصات کا مطالعہ کریں",
   "column.domain_blocks": "پوشیدہ ڈومین",
   "column.favourites": "پسندیدہ",
@@ -123,8 +123,8 @@
   "community.column_settings.local_only": "صرف مقامی",
   "community.column_settings.media_only": "وسائل فقط",
   "community.column_settings.remote_only": "صرف خارجی",
-  "compose.language.change": "Change language",
-  "compose.language.search": "Search languages...",
+  "compose.language.change": "زبان تبدیل کریں",
+  "compose.language.search": "زبان تلاش کریں...",
   "compose_form.direct_message_warning_learn_more": "مزید جانیں",
   "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "چونکہ یہ ٹوٹ غیر مندرجہ ہے لہذا یہ کسی بھی ہیش ٹیگ کے تحت درج نہیں کیا جائے گا. ہیش ٹیگ کے تحت صرف \nعمومی ٹوٹ تلاش کئے جا سکتے ہیں.",
@@ -137,10 +137,10 @@
   "compose_form.poll.remove_option": "یہ انتخاب ہٹا دیں",
   "compose_form.poll.switch_to_multiple": "متعدد انتخاب کی اجازت دینے کے لیے پول تبدیل کریں",
   "compose_form.poll.switch_to_single": "کسی ایک انتخاب کے لیے پول تبدیل کریں",
-  "compose_form.publish": "Publish",
-  "compose_form.publish_form": "Publish",
+  "compose_form.publish": "اشاعت کردہ",
+  "compose_form.publish_form": "اشاعت کریں",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Save changes",
+  "compose_form.save_changes": "تبدیلیاں محفوظ کریں",
   "compose_form.sensitive.hide": "وسائل کو حساس نشاندہ کریں",
   "compose_form.sensitive.marked": "وسائل حساس نشاندہ ہے",
   "compose_form.sensitive.unmarked": "{count, plural, one {میڈیا کو حساس کے طور پر نشان زد نہیں کیا گیا ہے} other {میڈیا کو حساس کے طور پر نشان زد نہیں کیا گیا ہے}}",
@@ -177,7 +177,7 @@
   "conversation.open": "گفتگو دیکھیں",
   "conversation.with": "{names} کے ساتھ",
   "copypaste.copied": "Copied",
-  "copypaste.copy": "Copy",
+  "copypaste.copy": "کاپی کریں",
   "directory.federated": "معروف فیڈی ورس سے",
   "directory.local": "صرف {domain} سے",
   "directory.new_arrivals": "نئے آنے والے",
@@ -185,7 +185,7 @@
   "disabled_account_banner.account_settings": "Account settings",
   "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
   "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
-  "dismissable_banner.dismiss": "Dismiss",
+  "dismissable_banner.dismiss": "برخاست کریں",
   "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
   "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
   "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index ac3dbae5e..1b9b34454 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -554,8 +554,8 @@
   "status.filter": "Lọc tút này",
   "status.filtered": "Bộ lọc",
   "status.hide": "Ẩn tút",
-  "status.history.created": "{name} tạo lúc {date}",
-  "status.history.edited": "{name} sửa lúc {date}",
+  "status.history.created": "{name} tạo vào {date}",
+  "status.history.edited": "{name} sửa vào {date}",
   "status.load_more": "Tải thêm",
   "status.media_hidden": "Đã ẩn",
   "status.mention": "Nhắc đến @{name}",
@@ -572,7 +572,7 @@
   "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.replied_to": "Trả lời đến {name}",
+  "status.replied_to": "{name} viết tiếp",
   "status.reply": "Trả lời",
   "status.replyAll": "Trả lời người đăng tút",
   "status.report": "Báo cáo @{name}",
diff --git a/app/javascript/mastodon/locales/whitelist_de.json b/app/javascript/mastodon/locales/whitelist_de.json
index 448cc9e77..c311ad048 100644
--- a/app/javascript/mastodon/locales/whitelist_de.json
+++ b/app/javascript/mastodon/locales/whitelist_de.json
@@ -1,7 +1,4 @@
 [
-  "relative_time.seconds",
-  "relative_time.minutes",
-  "relative_time.hours",
   "account.badges.bot",
   "compose_form.publish_loud",
   "search_results.hashtags"
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index a07d622e6..3d9c0ee1a 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -372,7 +372,7 @@
   "navigation_bar.edit_profile": "修改个人资料",
   "navigation_bar.explore": "探索",
   "navigation_bar.favourites": "喜欢",
-  "navigation_bar.filters": "隐藏关键词",
+  "navigation_bar.filters": "忽略的关键词",
   "navigation_bar.follow_requests": "关注请求",
   "navigation_bar.follows_and_followers": "关注管理",
   "navigation_bar.lists": "列表",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 0b6fc762f..6c967f414 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -27,7 +27,7 @@
   "account.enable_notifications": "當 @{name} 發文時通知我",
   "account.endorse": "在個人檔案中推薦對方",
   "account.featured_tags.last_status_at": "上次帖文於 {date}",
-  "account.featured_tags.last_status_never": "沒有帖文",
+  "account.featured_tags.last_status_never": "暫無文章",
   "account.featured_tags.title": "{name} 的精選標籤",
   "account.follow": "關注",
   "account.followers": "追蹤者",
@@ -42,7 +42,7 @@
   "account.joined_short": "加入於",
   "account.languages": "變更訂閱語言",
   "account.link_verified_on": "已於 {date} 檢查此連結的所有權",
-  "account.locked_info": "此帳號的隱私狀態被設為鎖定。該擁有者會手動審核追蹤者。",
+  "account.locked_info": "這位使用者將私隱設定為「不公開」,會手動審批誰能關注他/她。",
   "account.media": "媒體",
   "account.mention": "提及 @{name}",
   "account.moved_to": "{name} 表示現在的新帳號是:",
@@ -74,14 +74,14 @@
   "alert.rate_limited.message": "請在 {retry_time, time, medium} 後重試",
   "alert.rate_limited.title": "已限速",
   "alert.unexpected.message": "發生意外錯誤。",
-  "alert.unexpected.title": "噢!",
+  "alert.unexpected.title": "失敗!",
   "announcement.announcement": "公告",
   "attachments_list.unprocessed": "(未處理)",
   "audio.hide": "隱藏音訊",
   "autosuggest_hashtag.per_week": "每週 {count} 次",
   "boost_modal.combo": "你下次可以按 {combo} 來跳過",
   "bundle_column_error.copy_stacktrace": "複製錯誤報告",
-  "bundle_column_error.error.body": "無法提供請求的頁面。這可能是因為代碼出現錯誤或瀏覽器出現相容問題。",
+  "bundle_column_error.error.body": "無法提供請求的頁面。這可能是因為代碼出現錯誤或瀏覽器出現兼容問題。",
   "bundle_column_error.error.title": "大鑊!",
   "bundle_column_error.network.body": "嘗試載入此頁面時發生錯誤。這可能是因為您的網路連線或此伺服器暫時出現問題。",
   "bundle_column_error.network.title": "網絡錯誤",
@@ -263,7 +263,7 @@
   "footer.get_app": "取得應用程式",
   "footer.invite": "邀請他人",
   "footer.keyboard_shortcuts": "鍵盤快速鍵",
-  "footer.privacy_policy": "隱私權政策",
+  "footer.privacy_policy": "私隱政策",
   "footer.source_code": "查看原始碼",
   "generic.saved": "已儲存",
   "getting_started.heading": "開始使用",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index aa5a0512a..a8d6cb25e 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -211,22 +211,22 @@
   "empty_column.account_timeline": "這裡還沒有嘟文!",
   "empty_column.account_unavailable": "無法取得個人檔案",
   "empty_column.blocks": "您還沒有封鎖任何使用者。",
-  "empty_column.bookmarked_statuses": "您還沒建立任何書籤。當您建立書籤時,它將於此顯示。",
+  "empty_column.bookmarked_statuses": "您還沒有建立任何書籤。當您建立書籤時,它將於此顯示。",
   "empty_column.community": "本站時間軸是空的。快公開嘟些文搶頭香啊!",
   "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。",
   "empty_column.domain_blocks": "尚未封鎖任何網域。",
   "empty_column.explore_statuses": "目前沒有熱門討論,請稍候再回來看看!",
-  "empty_column.favourited_statuses": "您還沒加過任何嘟文至最愛。當您收藏嘟文時,它將於此顯示。",
+  "empty_column.favourited_statuses": "您還沒有加過任何嘟文至最愛。當您收藏嘟文時,它將於此顯示。",
   "empty_column.favourites": "還沒有人加過這則嘟文至最愛。當有人收藏嘟文時,它將於此顯示。",
   "empty_column.follow_recommendations": "似乎未能為您產生任何建議。您可以嘗試使用搜尋來尋找您可能認識的人,或是探索熱門主題標籤。",
-  "empty_column.follow_requests": "您尚未收到任何跟隨請求。這裡將會顯示收到的跟隨請求。",
+  "empty_column.follow_requests": "您還沒有收到任何跟隨請求。這裡將會顯示收到的跟隨請求。",
   "empty_column.hashtag": "這個主題標籤下什麼也沒有。",
   "empty_column.home": "您的首頁時間軸是空的!前往 {suggestions} 或使用搜尋功能來認識其他人。",
   "empty_column.home.suggestions": "檢視部份建議",
   "empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出了新的嘟文時,它們就會顯示於此。",
   "empty_column.lists": "您還沒有建立任何列表。當您建立列表時,它將於此顯示。",
   "empty_column.mutes": "您尚未靜音任何使用者。",
-  "empty_column.notifications": "您尚未收到任何通知,和別人互動開啟對話吧。",
+  "empty_column.notifications": "您還沒有收到任何通知,當您和別人開始互動時,它將於此顯示。",
   "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己跟隨其他伺服器的使用者後就會有嘟文出現了",
   "error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。",
   "error.unexpected_crash.explanation_addons": "此頁面無法被正常顯示,這可能是由瀏覽器附加元件或網頁自動翻譯工具造成的。",
diff --git a/app/javascript/mastodon/reducers/status_lists.js b/app/javascript/mastodon/reducers/status_lists.js
index a7c56cc19..106f64d32 100644
--- a/app/javascript/mastodon/reducers/status_lists.js
+++ b/app/javascript/mastodon/reducers/status_lists.js
@@ -25,7 +25,7 @@ import {
   TRENDS_STATUSES_EXPAND_SUCCESS,
   TRENDS_STATUSES_EXPAND_FAIL,
 } from '../actions/trends';
-import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
 import {
   FAVOURITE_SUCCESS,
   UNFAVOURITE_SUCCESS,
@@ -43,22 +43,22 @@ const initialState = ImmutableMap({
   favourites: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   bookmarks: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   pins: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   trending: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
 });
 
@@ -67,7 +67,7 @@ const normalizeList = (state, listType, statuses, next) => {
     map.set('next', next);
     map.set('loaded', true);
     map.set('isLoading', false);
-    map.set('items', ImmutableList(statuses.map(item => item.id)));
+    map.set('items', ImmutableOrderedSet(statuses.map(item => item.id)));
   }));
 };
 
@@ -75,20 +75,22 @@ const appendToList = (state, listType, statuses, next) => {
   return state.update(listType, listMap => listMap.withMutations(map => {
     map.set('next', next);
     map.set('isLoading', false);
-    map.set('items', map.get('items').concat(statuses.map(item => item.id)));
+    map.set('items', map.get('items').union(statuses.map(item => item.id)));
   }));
 };
 
 const prependOneToList = (state, listType, status) => {
-  return state.update(listType, listMap => listMap.withMutations(map => {
-    map.set('items', map.get('items').unshift(status.get('id')));
-  }));
+  return state.updateIn([listType, 'items'], (list) => {
+    if (list.includes(status.get('id'))) {
+      return list;
+    } else {
+      return ImmutableOrderedSet([status.get('id')]).union(list);
+    }
+  });
 };
 
 const removeOneFromList = (state, listType, status) => {
-  return state.update(listType, listMap => listMap.withMutations(map => {
-    map.set('items', map.get('items').filter(item => item !== status.get('id')));
-  }));
+  return state.updateIn([listType, 'items'], (list) => list.delete(status.get('id')));
 };
 
 export default function statusLists(state = initialState, action) {
@@ -139,7 +141,7 @@ export default function statusLists(state = initialState, action) {
     return removeOneFromList(state, 'pins', action.status);
   case ACCOUNT_BLOCK_SUCCESS:
   case ACCOUNT_MUTE_SUCCESS:
-    return state.updateIn(['trending', 'items'], ImmutableList(), list => list.filterNot(statusId => action.statuses.getIn([statusId, 'account']) === action.relationship.id));
+    return state.updateIn(['trending', 'items'], ImmutableOrderedSet(), list => list.filterNot(statusId => action.statuses.getIn([statusId, 'account']) === action.relationship.id));
   default:
     return state;
   }
diff --git a/app/javascript/mastodon/reducers/user_lists.js b/app/javascript/mastodon/reducers/user_lists.js
index f19c1e2e9..88b51fb63 100644
--- a/app/javascript/mastodon/reducers/user_lists.js
+++ b/app/javascript/mastodon/reducers/user_lists.js
@@ -22,7 +22,7 @@ import {
   FOLLOW_REQUESTS_EXPAND_FAIL,
   FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
   FOLLOW_REQUEST_REJECT_SUCCESS,
-  } from '../actions/accounts';
+} from '../actions/accounts';
 import {
   REBLOGS_FETCH_SUCCESS,
   FAVOURITES_FETCH_SUCCESS,
diff --git a/app/javascript/skins/glitch/contrast/names.yml b/app/javascript/skins/glitch/contrast/names.yml
index 570e30d3b..5e7357439 100644
--- a/app/javascript/skins/glitch/contrast/names.yml
+++ b/app/javascript/skins/glitch/contrast/names.yml
@@ -2,6 +2,10 @@ en:
   skins:
     glitch:
       contrast: High contrast
+cs:
+  skins:
+    glitch:
+      contrast: Vysoký kontrast
 es:
   skins:
     glitch:
diff --git a/app/javascript/skins/glitch/mastodon-light/names.yml b/app/javascript/skins/glitch/mastodon-light/names.yml
index 891271e6e..a2c20548f 100644
--- a/app/javascript/skins/glitch/mastodon-light/names.yml
+++ b/app/javascript/skins/glitch/mastodon-light/names.yml
@@ -2,6 +2,10 @@ en:
   skins:
     glitch:
       mastodon-light: Mastodon (light)
+cs:
+  skins:
+    glitch:
+      mastodon-light: Mastodon (světlý)
 es:
   skins:
     glitch:
diff --git a/app/javascript/skins/vanilla/contrast/names.yml b/app/javascript/skins/vanilla/contrast/names.yml
index da8974742..51d23f72d 100644
--- a/app/javascript/skins/vanilla/contrast/names.yml
+++ b/app/javascript/skins/vanilla/contrast/names.yml
@@ -2,6 +2,10 @@ en:
   skins:
     vanilla:
       contrast: High contrast
+cs:
+  skins:
+    vanilla:
+      contrast: Vysoký kontrast
 es:
   skins:
     vanilla:
diff --git a/app/javascript/skins/vanilla/mastodon-light/names.yml b/app/javascript/skins/vanilla/mastodon-light/names.yml
index 5e41d1051..fc6721e15 100644
--- a/app/javascript/skins/vanilla/mastodon-light/names.yml
+++ b/app/javascript/skins/vanilla/mastodon-light/names.yml
@@ -2,6 +2,10 @@ en:
   skins:
     vanilla:
       mastodon-light: Mastodon (light)
+cs:
+  skins:
+    vanilla:
+      mastodon-light: Mastodon (světlý)
 es:
   skins:
     glitch:
diff --git a/app/javascript/skins/vanilla/win95/names.yml b/app/javascript/skins/vanilla/win95/names.yml
index 2083084a2..53b771c5e 100644
--- a/app/javascript/skins/vanilla/win95/names.yml
+++ b/app/javascript/skins/vanilla/win95/names.yml
@@ -2,3 +2,7 @@ en:
   skins:
     vanilla:
       win95: Masto95
+cs:
+  skins:
+    vanilla:
+      win95: Windows 95
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 8a2f64526..3650e3ec8 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -2217,6 +2217,7 @@ $ui-header-height: 55px;
   z-index: 2;
   justify-content: space-between;
   align-items: center;
+  overflow: hidden;
 
   &__logo {
     display: inline-flex;
@@ -2233,10 +2234,15 @@ $ui-header-height: 55px;
     align-items: center;
     gap: 10px;
     padding: 0 10px;
+    overflow: hidden;
 
     .button {
       flex: 0 0 auto;
     }
+
+    .button-tertiary {
+      flex-shrink: 1;
+    }
   }
 }
 
@@ -7138,10 +7144,12 @@ noscript {
 
       .verified {
         border: 1px solid rgba($valid-value-color, 0.5);
+        margin-top: -1px;
 
         &:first-child {
           border-top-left-radius: 4px;
           border-top-right-radius: 4px;
+          margin-top: 0;
         }
 
         &:last-child {
@@ -7973,7 +7981,8 @@ noscript {
   width: 600px;
   background: $ui-base-color;
   border-radius: 8px;
-  overflow: hidden;
+  overflow-x: hidden;
+  overflow-y: auto;
   position: relative;
   display: block;
   padding: 20px;
diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb
index ebae12973..4dfbfc665 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -222,7 +222,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
     return if tag['href'].blank?
 
     account = account_from_uri(tag['href'])
-    account = ActivityPub::FetchRemoteAccountService.new.call(tag['href']) if account.nil?
+    account = ActivityPub::FetchRemoteAccountService.new.call(tag['href'], request_id: @options[:request_id]) if account.nil?
 
     return if account.nil?
 
diff --git a/app/lib/activitypub/activity/update.rb b/app/lib/activitypub/activity/update.rb
index 5b3238ece..e7c3bc9bf 100644
--- a/app/lib/activitypub/activity/update.rb
+++ b/app/lib/activitypub/activity/update.rb
@@ -18,7 +18,7 @@ class ActivityPub::Activity::Update < ActivityPub::Activity
   def update_account
     return reject_payload! if @account.uri != object_uri
 
-    ActivityPub::ProcessAccountService.new.call(@account.username, @account.domain, @object, signed_with_known_key: true)
+    ActivityPub::ProcessAccountService.new.call(@account.username, @account.domain, @object, signed_with_known_key: true, request_id: @options[:request_id])
   end
 
   def update_status
@@ -28,6 +28,6 @@ class ActivityPub::Activity::Update < ActivityPub::Activity
 
     return if @status.nil?
 
-    ActivityPub::ProcessStatusUpdateService.new.call(@status, @object)
+    ActivityPub::ProcessStatusUpdateService.new.call(@status, @object, request_id: @options[:request_id])
   end
 end
diff --git a/app/lib/advanced_text_formatter.rb b/app/lib/advanced_text_formatter.rb
index dcaf34b91..21e81d4d1 100644
--- a/app/lib/advanced_text_formatter.rb
+++ b/app/lib/advanced_text_formatter.rb
@@ -19,6 +19,8 @@ class AdvancedTextFormatter < TextFormatter
     end
   end
 
+  attr_reader :content_type
+
   # @param [String] text
   # @param [Hash] options
   # @option options [Boolean] :multiline
@@ -27,7 +29,7 @@ class AdvancedTextFormatter < TextFormatter
   # @option options [Array<Account>] :preloaded_accounts
   # @option options [String] :content_type
   def initialize(text, options = {})
-    content_type = options.delete(:content_type)
+    @content_type = options.delete(:content_type)
     super(text, options)
 
     @text = format_markdown(text) if content_type == 'text/markdown'
@@ -50,50 +52,50 @@ class AdvancedTextFormatter < TextFormatter
     html.html_safe # rubocop:disable Rails/OutputSafety
   end
 
-  # Differs from `TextFormatter` by skipping HTML tags and entities
-  def entities
-    @entities ||= begin
-      gaps = []
-      total_offset = 0
-
-      escaped = text.gsub(/<[^>]*>|&#[0-9]+;/) do |match|
-        total_offset += match.length - 1
-        end_offset = Regexp.last_match.end(0)
-        gaps << [end_offset - total_offset, total_offset]
-        ' '
-      end
-
-      Extractor.extract_entities_with_indices(escaped, extract_url_without_protocol: false).map do |entity|
-        start_pos, end_pos = entity[:indices]
-        offset_idx = gaps.rindex { |gap| gap.first <= start_pos }
-        offset = offset_idx.nil? ? 0 : gaps[offset_idx].last
-        entity.merge(indices: [start_pos + offset, end_pos + offset])
+  # Differs from TextFormatter by operating on the parsed HTML tree
+  def rewrite
+    if @tree.nil?
+      src = text.gsub(Sanitize::REGEX_UNSUITABLE_CHARS, '')
+      @tree = Nokogiri::HTML5.fragment(src)
+      document = @tree.document
+
+      @tree.xpath('.//text()[not(ancestor::a | ancestor::code)]').each do |text_node|
+        # Iterate over text elements and build up their replacements.
+        content = text_node.content
+        replacement = Nokogiri::XML::NodeSet.new(document)
+        processed_index = 0
+        Extractor.extract_entities_with_indices(
+          content,
+          extract_url_without_protocol: false
+        ) do |entity|
+          # Iterate over entities in this text node.
+          advance = entity[:indices].first - processed_index
+          if advance.positive?
+            # Text node for content which precedes entity.
+            replacement << Nokogiri::XML::Text.new(
+              content[processed_index, advance],
+              document
+            )
+          end
+          replacement << Nokogiri::HTML5.fragment(yield(entity))
+          processed_index = entity[:indices].last
+        end
+        if processed_index < content.size
+          # Text node for remaining content.
+          replacement << Nokogiri::XML::Text.new(
+            content[processed_index, content.size - processed_index],
+            document
+          )
+        end
+        text_node.replace(replacement)
       end
     end
+
+    Sanitize.node!(@tree, Sanitize::Config::MASTODON_OUTGOING).to_html
   end
 
   private
 
-  # Differs from `TextFormatter` in that it keeps HTML; but it sanitizes at the end to remain safe
-  def rewrite
-    entities.sort_by! do |entity|
-      entity[:indices].first
-    end
-
-    result = ''.dup
-
-    last_index = entities.reduce(0) do |index, entity|
-      indices = entity[:indices]
-      result << text[index...indices.first]
-      result << yield(entity)
-      indices.last
-    end
-
-    result << text[last_index..-1]
-
-    Sanitize.fragment(result, Sanitize::Config::MASTODON_OUTGOING)
-  end
-
   def format_markdown(html)
     html = markdown_formatter.render(html)
     html.delete("\r").delete("\n")
diff --git a/app/lib/delivery_failure_tracker.rb b/app/lib/delivery_failure_tracker.rb
index 7c4e28eb7..66c1fd8c0 100644
--- a/app/lib/delivery_failure_tracker.rb
+++ b/app/lib/delivery_failure_tracker.rb
@@ -65,8 +65,13 @@ class DeliveryFailureTracker
       domains - UnavailableDomain.all.pluck(:domain)
     end
 
-    def warning_domains_map
-      warning_domains.index_with { |domain| redis.scard(exhausted_deliveries_key_by(domain)) }
+    def warning_domains_map(domains = nil)
+      if domains.nil?
+        warning_domains.index_with { |domain| redis.scard(exhausted_deliveries_key_by(domain)) }
+      else
+        domains -= UnavailableDomain.where(domain: domains).pluck(:domain)
+        domains.index_with { |domain| redis.scard(exhausted_deliveries_key_by(domain)) }.filter { |_, days| days.positive? }
+      end
     end
 
     private
diff --git a/app/models/account_migration.rb b/app/models/account_migration.rb
index 16276158d..fa8cb6013 100644
--- a/app/models/account_migration.rb
+++ b/app/models/account_migration.rb
@@ -59,7 +59,7 @@ class AccountMigration < ApplicationRecord
 
   def set_target_account
     self.target_account = ResolveAccountService.new.call(acct, skip_cache: true)
-  rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error
+  rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error, Addressable::URI::InvalidURIError
     # Validation will take care of it
   end
 
diff --git a/app/models/concerns/domain_materializable.rb b/app/models/concerns/domain_materializable.rb
index 88337f8c0..0eac6878e 100644
--- a/app/models/concerns/domain_materializable.rb
+++ b/app/models/concerns/domain_materializable.rb
@@ -3,11 +3,24 @@
 module DomainMaterializable
   extend ActiveSupport::Concern
 
+  include Redisable
+
   included do
     after_create_commit :refresh_instances_view
   end
 
   def refresh_instances_view
-    Instance.refresh unless domain.nil? || Instance.where(domain: domain).exists?
+    return if domain.nil? || Instance.exists?(domain: domain)
+
+    Instance.refresh
+    count_unique_subdomains!
+  end
+
+  def count_unique_subdomains!
+    second_and_top_level_domain = PublicSuffix.domain(domain, ignore_private: true)
+    with_redis do |redis|
+      redis.pfadd("unique_subdomains_for:#{second_and_top_level_domain}", domain)
+      redis.expire("unique_subdomains_for:#{second_and_top_level_domain}", 1.minute.seconds)
+    end
   end
 end
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index da2a91493..5a4a974be 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -54,7 +54,7 @@ class CustomFilter < ApplicationRecord
   end
 
   def irreversible=(value)
-    self.action = value ? :hide : :warn
+    self.action = ActiveModel::Type::Boolean.new.cast(value) ? :hide : :warn
   end
 
   def irreversible?
diff --git a/app/models/form/redirect.rb b/app/models/form/redirect.rb
index 795fdd057..3cd5731e6 100644
--- a/app/models/form/redirect.rb
+++ b/app/models/form/redirect.rb
@@ -32,7 +32,7 @@ class Form::Redirect
 
   def set_target_account
     @target_account = ResolveAccountService.new.call(acct, skip_cache: true)
-  rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error
+  rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error, Addressable::URI::InvalidURIError
     # Validation will take care of it
   end
 
diff --git a/app/models/user.rb b/app/models/user.rb
index 0eb975dec..209bfa521 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -525,7 +525,7 @@ class User < ApplicationRecord
   end
 
   def invite_text_required?
-    Setting.require_invite_text && !invited? && !external? && !bypass_invite_request_check?
+    Setting.require_invite_text && !open_registrations? && !invited? && !external? && !bypass_invite_request_check?
   end
 
   def trigger_webhooks
diff --git a/app/services/activitypub/fetch_featured_collection_service.rb b/app/services/activitypub/fetch_featured_collection_service.rb
index 50a187ad9..a746ef4d6 100644
--- a/app/services/activitypub/fetch_featured_collection_service.rb
+++ b/app/services/activitypub/fetch_featured_collection_service.rb
@@ -46,9 +46,9 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
       next unless item.is_a?(String) || item['type'] == 'Note'
 
       uri = value_or_id(item)
-      next if ActivityPub::TagManager.instance.local_uri?(uri)
+      next if ActivityPub::TagManager.instance.local_uri?(uri) || invalid_origin?(uri)
 
-      status = ActivityPub::FetchRemoteStatusService.new.call(uri, on_behalf_of: local_follower)
+      status = ActivityPub::FetchRemoteStatusService.new.call(uri, on_behalf_of: local_follower, expected_actor_uri: @account.uri, request_id: @options[:request_id])
       next unless status&.account_id == @account.id
 
       status.id
diff --git a/app/services/activitypub/fetch_remote_account_service.rb b/app/services/activitypub/fetch_remote_account_service.rb
index ca7a8c6ca..7aba8269e 100644
--- a/app/services/activitypub/fetch_remote_account_service.rb
+++ b/app/services/activitypub/fetch_remote_account_service.rb
@@ -2,7 +2,7 @@
 
 class ActivityPub::FetchRemoteAccountService < ActivityPub::FetchRemoteActorService
   # Does a WebFinger roundtrip on each call, unless `only_key` is true
-  def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true)
+  def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil)
     actor = super
     return actor if actor.nil? || actor.is_a?(Account)
 
diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb
index db09c38d8..a25fa54c4 100644
--- a/app/services/activitypub/fetch_remote_actor_service.rb
+++ b/app/services/activitypub/fetch_remote_actor_service.rb
@@ -10,7 +10,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
   SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze
 
   # Does a WebFinger roundtrip on each call, unless `only_key` is true
-  def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true)
+  def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil)
     return if domain_not_allowed?(uri)
     return ActivityPub::TagManager.instance.uri_to_actor(uri) if ActivityPub::TagManager.instance.local_uri?(uri)
 
@@ -35,7 +35,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
 
     check_webfinger! unless only_key
 
-    ActivityPub::ProcessAccountService.new.call(@username, @domain, @json, only_key: only_key, verified_webfinger: !only_key)
+    ActivityPub::ProcessAccountService.new.call(@username, @domain, @json, only_key: only_key, verified_webfinger: !only_key, request_id: request_id)
   rescue Error => e
     Rails.logger.debug "Fetching actor #{uri} failed: #{e.message}"
     raise unless suppress_errors
diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb
index 803098245..21b9242f8 100644
--- a/app/services/activitypub/fetch_remote_status_service.rb
+++ b/app/services/activitypub/fetch_remote_status_service.rb
@@ -4,7 +4,8 @@ class ActivityPub::FetchRemoteStatusService < BaseService
   include JsonLdHelper
 
   # Should be called when uri has already been checked for locality
-  def call(uri, id: true, prefetched_body: nil, on_behalf_of: nil)
+  def call(uri, id: true, prefetched_body: nil, on_behalf_of: nil, expected_actor_uri: nil, request_id: nil)
+    @request_id = request_id
     @json = begin
       if prefetched_body.nil?
         fetch_resource(uri, id, on_behalf_of)
@@ -30,6 +31,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
     end
 
     return if activity_json.nil? || object_uri.nil? || !trustworthy_attribution?(@json['id'], actor_uri)
+    return if expected_actor_uri.present? && actor_uri != expected_actor_uri
     return ActivityPub::TagManager.instance.uri_to_resource(object_uri, Status) if ActivityPub::TagManager.instance.local_uri?(object_uri)
 
     actor = account_from_uri(actor_uri)
@@ -40,7 +42,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
     # activity as an update rather than create
     activity_json['type'] = 'Update' if equals_or_includes_any?(activity_json['type'], %w(Create)) && Status.where(uri: object_uri, account_id: actor.id).exists?
 
-    ActivityPub::Activity.factory(activity_json, actor).perform
+    ActivityPub::Activity.factory(activity_json, actor, request_id: request_id).perform
   end
 
   private
@@ -52,7 +54,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
 
   def account_from_uri(uri)
     actor = ActivityPub::TagManager.instance.uri_to_resource(uri, Account)
-    actor = ActivityPub::FetchRemoteAccountService.new.call(uri, id: true) if actor.nil? || actor.possibly_stale?
+    actor = ActivityPub::FetchRemoteAccountService.new.call(uri, id: true, request_id: @request_id) if actor.nil? || actor.possibly_stale?
     actor
   end
 
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 99bcb3835..2da9096c7 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -6,6 +6,9 @@ class ActivityPub::ProcessAccountService < BaseService
   include Redisable
   include Lockable
 
+  SUBDOMAINS_RATELIMIT = 10
+  DISCOVERIES_PER_REQUEST = 400
+
   # Should be called with confirmed valid JSON
   # and WebFinger-resolved username and domain
   def call(username, domain, json, options = {})
@@ -15,9 +18,12 @@ class ActivityPub::ProcessAccountService < BaseService
     @json        = json
     @uri         = @json['id']
     @username    = username
-    @domain      = domain
+    @domain      = TagManager.instance.normalize_domain(domain)
     @collections = {}
 
+    # The key does not need to be unguessable, it just needs to be somewhat unique
+    @options[:request_id] ||= "#{Time.now.utc.to_i}-#{username}@#{domain}"
+
     with_lock("process_account:#{@uri}") do
       @account            = Account.remote.find_by(uri: @uri) if @options[:only_key]
       @account          ||= Account.find_remote(@username, @domain)
@@ -25,7 +31,18 @@ class ActivityPub::ProcessAccountService < BaseService
       @old_protocol       = @account&.protocol
       @suspension_changed = false
 
-      create_account if @account.nil?
+      if @account.nil?
+        with_redis do |redis|
+          return nil if redis.pfcount("unique_subdomains_for:#{PublicSuffix.domain(@domain, ignore_private: true)}") >= SUBDOMAINS_RATELIMIT
+
+          discoveries = redis.incr("discovery_per_request:#{@options[:request_id]}")
+          redis.expire("discovery_per_request:#{@options[:request_id]}", 5.minutes.seconds)
+          return nil if discoveries > DISCOVERIES_PER_REQUEST
+        end
+
+        create_account
+      end
+
       update_account
       process_tags
 
@@ -150,7 +167,7 @@ class ActivityPub::ProcessAccountService < BaseService
   end
 
   def check_featured_collection!
-    ActivityPub::SynchronizeFeaturedCollectionWorker.perform_async(@account.id, { 'hashtag' => @json['featuredTags'].blank? })
+    ActivityPub::SynchronizeFeaturedCollectionWorker.perform_async(@account.id, { 'hashtag' => @json['featuredTags'].blank?, 'request_id' => @options[:request_id] })
   end
 
   def check_featured_tags_collection!
@@ -254,7 +271,7 @@ class ActivityPub::ProcessAccountService < BaseService
 
   def moved_account
     account   = ActivityPub::TagManager.instance.uri_to_resource(@json['movedTo'], Account)
-    account ||= ActivityPub::FetchRemoteAccountService.new.call(@json['movedTo'], id: true, break_on_redirect: true)
+    account ||= ActivityPub::FetchRemoteAccountService.new.call(@json['movedTo'], id: true, break_on_redirect: true, request_id: @options[:request_id])
     account
   end
 
diff --git a/app/services/activitypub/process_status_update_service.rb b/app/services/activitypub/process_status_update_service.rb
index a0605b1a3..fad19f87f 100644
--- a/app/services/activitypub/process_status_update_service.rb
+++ b/app/services/activitypub/process_status_update_service.rb
@@ -5,7 +5,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
   include Redisable
   include Lockable
 
-  def call(status, json)
+  def call(status, json, request_id: nil)
     raise ArgumentError, 'Status has unsaved changes' if status.changed?
 
     @json                      = json
@@ -15,6 +15,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
     @account                   = status.account
     @media_attachments_changed = false
     @poll_changed              = false
+    @request_id                = request_id
 
     # Only native types can be updated at the moment
     return @status if !expected_type? || already_updated_more_recently?
@@ -191,7 +192,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
       next if href.blank?
 
       account   = ActivityPub::TagManager.instance.uri_to_resource(href, Account)
-      account ||= ActivityPub::FetchRemoteAccountService.new.call(href)
+      account ||= ActivityPub::FetchRemoteAccountService.new.call(href, request_id: @request_id)
 
       next if account.nil?
 
diff --git a/app/views/admin/settings/discovery/show.html.haml b/app/views/admin/settings/discovery/show.html.haml
index 3983b563b..25b34acef 100644
--- a/app/views/admin/settings/discovery/show.html.haml
+++ b/app/views/admin/settings/discovery/show.html.haml
@@ -26,6 +26,9 @@
   .fields-group
     = f.input :timeline_preview, as: :boolean, wrapper: :with_label
 
+  .fields-group
+    = f.input :noindex, as: :boolean, wrapper: :with_label, label: t('admin.settings.default_noindex.title'), hint: t('admin.settings.default_noindex.desc_html')
+
   %h4= t('admin.settings.discovery.follow_recommendations')
 
   .fields-group
diff --git a/config/application.rb b/config/application.rb
index 76db3b9b8..1db6d0900 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -71,6 +71,7 @@ module Mastodon
       :af,
       :ar,
       :ast,
+      :be,
       :bg,
       :bn,
       :br,
diff --git a/config/database.yml b/config/database.yml
index 127a78abf..bfb53f21b 100644
--- a/config/database.yml
+++ b/config/database.yml
@@ -2,6 +2,7 @@ default: &default
   adapter: postgresql
   pool: <%= ENV["DB_POOL"] || ENV['MAX_THREADS'] || 5 %>
   timeout: 5000
+  connect_timeout: 15
   encoding: unicode
   sslmode: <%= ENV['DB_SSLMODE'] || "prefer" %>
 
diff --git a/config/locales-glitch/cs.yml b/config/locales-glitch/cs.yml
new file mode 100644
index 000000000..08c56ef3e
--- /dev/null
+++ b/config/locales-glitch/cs.yml
@@ -0,0 +1,41 @@
+---
+cs:
+  admin:
+    custom_emojis:
+      batch_copy_error: 'Při kopírování některých emoji došlo k chybě: %{message}'
+      batch_error: 'Došlo k chybě: %{message}'
+    settings:
+      captcha_enabled:
+        desc_html: Tato funkce používá externí skripty služby hCaptcha, což může být problém z hlediska bezpečí a ochrany dat. Také to může <strong>některým (hlavně postiženým) lidem registrační proces výrazně zkomplikovat</strong>. Z tohoto důvodu prosím raději zvažte jiné možnosti, jako je schvalování registrací nebo registrace pouze pro zvané.<br>Uživatelům pozvaným skrze omezenou pozvánku se CAPTCHA nezobrazí.
+        title: Vyžadovat po nových uživatelích opsání textu z obrázku (CAPTCHA)
+      enable_keybase:
+        desc_html: Uživatelé budou moci potvrdit svou identitu pomocí Keybase
+        title: Zapnout potvrzování pomocí Keybase
+      flavour_and_skin:
+        title: Rozhraní a styl
+      other:
+        preamble: Různá nastavení glitch-soc, která se nevešla do jiných kategorií.
+        title: Jiné
+      outgoing_spoilers:
+        desc_html: Při federování příspěvků se přidá toto varování o obsahu příspěvkům, které žádné nemají. To může být užitečné, pokud je váš server zaměřen na specifický obsah, pro který by jiné servery mohly varování o obsahu vyžadovat. Připojená média budou označena jako citlivá.
+        title: Varování o obsahu pro odesílané příspěvky
+      hide_followers_count:
+        desc_html: Nezobrazovat na uživatelských profilech počet sledujících
+        title: Schovat počet sledujících
+      show_reblogs_in_public_timelines:
+        desc_html: Veřejné boosty veřejných příspěvků se zobrazí na místní a federované časové ose.
+        title: Zobrazovat ve veřejných časových osách boosty
+      show_replies_in_public_timelines:
+        desc_html: Na místní a federované časové ose se kromě odpovědí autora na vlastní příspěvky (vláken) zobrazí i ostatní veřejné odpovědi.
+        title: Zobrazovat ve veřejných časových osách odpovědi
+      trending_status_cw:
+        desc_html: Zobrazovat v rámci trendů (pokud jsou zapnuté) i příspěvky s varováním o obsahu. Změny tohoto nastavení se neprojeví retroaktivně.
+        title: Povolit v trendech příspěvky s varováním o obsahu
+  auth:
+    captcha_confirmation:
+      hint_html: Už jen poslední krok! Pro potvrzení svého účtu opište prosím text z obrázku (CAPTCHA). Pokud máte dotazy nebo potřebujete s potvrzením pomoct, můžete <a href="/about/more">kontaktovat administrátora</a>.
+      title: Ověření uživatele
+  generic:
+    use_this: Použít
+  settings:
+    flavours: Rozhraní
diff --git a/config/locales-glitch/simple_form.cs.yml b/config/locales-glitch/simple_form.cs.yml
new file mode 100644
index 000000000..f655fed9f
--- /dev/null
+++ b/config/locales-glitch/simple_form.cs.yml
@@ -0,0 +1,27 @@
+---
+cs:
+  simple_form:
+    glitch_only: glitch-soc
+    hints:
+      defaults:
+        fields: Na svém profilu můžete mít zobrazeno několik položek (max. %{count}) jako tabulku
+        setting_default_content_type_html: Předpokládat, že nové příspěvky jsou napsané v HTML, pokud není uvedeno jinak
+        setting_default_content_type_markdown: Předpokládat, že nové příspěvky používají pro formátování Markdown, pokud není uvedeno jinak
+        setting_default_content_type_plain: Předpokládat, že nové příspěvky nejsou nijak formátované, pokud není uvedeno jinak (standardní chování Mastodonu)
+        setting_default_language: Jazyk vašich příspěvků lze detekovat automaticky, ale není to vždycky přesné
+        setting_hide_followers_count: Počet vašich sledujících se nebude nikomu zobrazovat, ani vám. Některé aplikace mohou zobrazit negativní počet sledujících.
+        setting_skin: Aplikuje barevný styl na zvolené rozhraní Mastodonu
+    labels:
+      defaults:
+        setting_default_content_type: Výchozí formát příspěvků
+        setting_default_content_type_html: HTML
+        setting_default_content_type_markdown: Markdown
+        setting_default_content_type_plain: Prostý text
+        setting_favourite_modal: Před oblíbením příspěvku zobrazit potvrzovací dialog (pouze pro rozhraní Glitch)
+        setting_hide_followers_count: Skrýt počet vašich sledujících
+        setting_skin: Styl
+        setting_system_emoji_font: Použít výchozí emoji systému (pouze pro rozhraní Glitch)
+      notification_emails:
+        trending_tag: Nový populární hashtag vyžaduje schválení
+        trending_link: Nový populární odkaz vyžaduje schválení
+        trending_status: Nový populární příspěvek vyžaduje schválení
diff --git a/config/locales/activerecord.ast.yml b/config/locales/activerecord.ast.yml
index 75d2c8bae..2d532071a 100644
--- a/config/locales/activerecord.ast.yml
+++ b/config/locales/activerecord.ast.yml
@@ -18,7 +18,7 @@ ast:
         account:
           attributes:
             username:
-              invalid: ha contener namás lletres, númberos y guiones baxos
+              invalid: ha contener namás lletres, númberos ya guiones baxos
               reserved: ta acutáu
         admin/webhook:
           attributes:
@@ -38,7 +38,6 @@ ast:
         user_role:
           attributes:
             permissions_as_keys:
-              dangerous: incluyir los permisos que nun son seguros pal rol base
               elevated: nun se puen incluyir los permisos que'l to rol nun poseye
               own_role: nun se pue camudar col to rol actual
             position:
diff --git a/config/locales/activerecord.es-MX.yml b/config/locales/activerecord.es-MX.yml
index 534d99117..1c0313e5a 100644
--- a/config/locales/activerecord.es-MX.yml
+++ b/config/locales/activerecord.es-MX.yml
@@ -28,7 +28,7 @@ es-MX:
         doorkeeper/application:
           attributes:
             website:
-              invalid: no es una URL válida
+              invalid: no es un URL válido
         import:
           attributes:
             data:
diff --git a/config/locales/activerecord.fr-QC.yml b/config/locales/activerecord.fr-QC.yml
index 0ffa90ef2..aed5d290a 100644
--- a/config/locales/activerecord.fr-QC.yml
+++ b/config/locales/activerecord.fr-QC.yml
@@ -3,15 +3,15 @@ fr-QC:
   activerecord:
     attributes:
       poll:
-        expires_at: Date butoir
+        expires_at: Échéance
         options: Choix
       user:
         agreement: Contrat de service
-        email: Adresse de courriel
-        locale: Langue
+        email: Adresse courriel
+        locale: Localisation
         password: Mot de passe
       user/account:
-        username: Nom d’utilisateur·ice
+        username: Nom d’utilisateur·rice
       user/invite_request:
         text: Raison
     errors:
@@ -19,24 +19,24 @@ fr-QC:
         account:
           attributes:
             username:
-              invalid: seulement des lettres, des nombres et des tirets bas
+              invalid: doit ne contenir que des lettres, des nombres et des tirets bas
               reserved: est réservé
         admin/webhook:
           attributes:
             url:
-              invalid: n’est pas une URL valide
+              invalid: n’est pas un URL valide
         doorkeeper/application:
           attributes:
             website:
-              invalid: n’est pas une URL valide
+              invalid: n’est pas un URL valide
         import:
           attributes:
             data:
-              malformed: est mal formé
+              malformed: est malformé
         status:
           attributes:
             reblog:
-              taken: du message existe déjà
+              taken: de la publication existe déjà
         user:
           attributes:
             email:
diff --git a/config/locales/activerecord.lv.yml b/config/locales/activerecord.lv.yml
index 649cdeedd..097a29621 100644
--- a/config/locales/activerecord.lv.yml
+++ b/config/locales/activerecord.lv.yml
@@ -36,12 +36,12 @@ lv:
         status:
           attributes:
             reblog:
-              taken: ziņa jau pastāv
+              taken: ziņai jau pastāv
         user:
           attributes:
             email:
-              blocked: lieto neatļautu epasta pakalpojuma sniedzēju
-              unreachable: šķiet, ka neeksistē
+              blocked: lieto neatļautu e-pasta pakalpojuma sniedzēju
+              unreachable: šķietami neeksistē
             role_id:
               elevated: nevar būt augstāka par tavu pašreizējo lomu
         user_role:
@@ -49,7 +49,7 @@ lv:
             permissions_as_keys:
               dangerous: ietver atļaujas, kas nav drošas pamata lomai
               elevated: nevar ietvert atļaujas, kas nepieder tavai pašreizējai lomai
-              own_role: nevar mainīt pert tavu pašreizējo lomu
+              own_role: nevar mainīt pret tavu pašreizējo lomu
             position:
               elevated: nevar būt augstāka par tavu pašreizējo lomu
-              own_role: nevar mainīt pert tavu pašreizējo lomu
+              own_role: nevar mainīt pret tavu pašreizējo lomu
diff --git a/config/locales/activerecord.ms.yml b/config/locales/activerecord.ms.yml
index c681e324b..6b84248de 100644
--- a/config/locales/activerecord.ms.yml
+++ b/config/locales/activerecord.ms.yml
@@ -24,13 +24,32 @@ ms:
         admin/webhook:
           attributes:
             url:
-              invalid: bukan merupakan URL yang sah
+              invalid: bukanlah URL yang sah
         doorkeeper/application:
           attributes:
             website:
-              invalid: bukan merupakan URL yang sah
+              invalid: bukanlah URL yang sah
+        import:
+          attributes:
+            data:
+              malformed: tersalah bentuk
+        status:
+          attributes:
+            reblog:
+              taken: hantaran sudah wujud
         user:
           attributes:
             email:
               blocked: menggunakan pembekal e-mel yang tidak dibenarkan
               unreachable: nampaknya tidak wujud
+            role_id:
+              elevated: tidak boleh lebih tinggi daripada peranan semasa anda
+        user_role:
+          attributes:
+            permissions_as_keys:
+              dangerous: termasuklah keizinan yang tidak selamat untuk peranan asas
+              elevated: tidak boleh memasukkan kebenaran yang tidak dimiliki oleh peranan semasa anda
+              own_role: tidak boleh diubah dengan peranan semasa anda
+            position:
+              elevated: tidak boleh lebih tinggi daripada peranan semasa anda
+              own_role: tidak boleh diubah dengan peranan semasa anda
diff --git a/config/locales/activerecord.ro.yml b/config/locales/activerecord.ro.yml
index f752e4961..33be0258b 100644
--- a/config/locales/activerecord.ro.yml
+++ b/config/locales/activerecord.ro.yml
@@ -21,6 +21,18 @@ ro:
             username:
               invalid: doar litere, numere și sublinieri
               reserved: este rezervat
+        admin/webhook:
+          attributes:
+            url:
+              invalid: nu este un URL valid
+        doorkeeper/application:
+          attributes:
+            website:
+              invalid: nu este un URL valid
+        import:
+          attributes:
+            data:
+              malformed: este malformat
         status:
           attributes:
             reblog:
@@ -30,3 +42,14 @@ ro:
             email:
               blocked: utilizează un furnizor de e-mail neautorizat
               unreachable: pare să nu existe
+            role_id:
+              elevated: nu poate fi mai mare decât rolul curent
+        user_role:
+          attributes:
+            permissions_as_keys:
+              dangerous: include permisiuni care nu sunt sigure pentru rolul de bază
+              elevated: nu poate include permisiuni pe care rolul dvs. nu le deține
+              own_role: nu poate fi schimbat cu rolul curent
+            position:
+              elevated: nu poate fi mai mare decât rolul curent
+              own_role: nu poate fi schimbat cu rolul curent
diff --git a/config/locales/activerecord.sco.yml b/config/locales/activerecord.sco.yml
index dfba33c3f..084c3370b 100644
--- a/config/locales/activerecord.sco.yml
+++ b/config/locales/activerecord.sco.yml
@@ -11,7 +11,7 @@ sco:
         locale: Locale
         password: Passwird
       user/account:
-        username: Uisername
+        username: Uisernemm
       user/invite_request:
         text: Raison
     errors:
diff --git a/config/locales/activerecord.sk.yml b/config/locales/activerecord.sk.yml
index eb8d75d48..33f53a88e 100644
--- a/config/locales/activerecord.sk.yml
+++ b/config/locales/activerecord.sk.yml
@@ -5,13 +5,51 @@ sk:
       poll:
         expires_at: Trvá do
         options: Voľby
+      user:
+        agreement: Dohoda o poskytovaní služieb
+        email: Emailová adresa
+        locale: Jazyk
+        password: Heslo
+      user/account:
+        username: Meno používateľa
+      user/invite_request:
+        text: Dôvod
     errors:
       models:
         account:
           attributes:
             username:
               invalid: iba písmená, číslice a podčiarkovníky
+              reserved: je obsadené
+        admin/webhook:
+          attributes:
+            url:
+              invalid: nie je platnou URL
+        doorkeeper/application:
+          attributes:
+            website:
+              invalid: nie je platnou URL
+        import:
+          attributes:
+            data:
+              malformed: je deformovaný
         status:
           attributes:
             reblog:
               taken: príspevku už existuje
+        user:
+          attributes:
+            email:
+              blocked: používa nepovoleného poskytovateľa e-mailu
+              unreachable: zdá sa, že neexistuje
+            role_id:
+              elevated: nemôže byť vyššia ako vaša súčasná rola
+        user_role:
+          attributes:
+            permissions_as_keys:
+              dangerous: zahrnúť povolenia, ktoré nie sú bezpečné pre základnú rolu
+              elevated: nemôže obsahovať povolenia, ktoré vaša aktuálna rola nemá
+              own_role: nie je možné zmeniť s vašou aktuálnou rolou
+            position:
+              elevated: nemôže byť vyššia ako vaša súčasná rola
+              own_role: nie je možné zmeniť s vašou aktuálnou rolou
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index e51c74bd5..97bbac031 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -1061,6 +1061,7 @@ ar:
     edit:
       add_keyword: إضافة كلمة مفتاحية
       keywords: الكلمات المفتاحية
+      statuses: المنشورات الفردية
       title: تعديل عامل التصفية
     errors:
       invalid_context: لم تقم بتحديد أي مجال أو أنّ المجال غير صالح
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index 5033a4cbd..2236aaf88 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -2,14 +2,10 @@
 ast:
   about:
     about_mastodon_html: 'La rede social del futuru: ¡ensin anuncios nin vixilancia, con un diseñu éticu ya descentralizáu! Controla los tos datos con Mastodon.'
-    contact_missing: Nun s'afitó
     contact_unavailable: N/D
-    hosted_on: Mastodon ta agospiáu en %{domain}
+    hosted_on: 'Mastodon ta agospiáu en: %{domain}'
     title: Tocante a
   accounts:
-    followers:
-      one: Siguidor
-      other: Siguidores
     last_active: Última actividá
     nothing_here: "¡Equí nun hai nada!"
     posts:
@@ -22,7 +18,6 @@ ast:
     account_moderation_notes:
       create: Dexar la nota
     accounts:
-      are_you_sure: "¿De xuru?"
       avatar: Avatar
       by_domain: Dominiu
       disabled: Conxelóse
@@ -41,16 +36,19 @@ ast:
         pending: Pendiente
       most_recent_activity: L'actividá más recién
       most_recent_ip: La IP más recién
+      perform_full_suspension: Suspender
       protocol: Protocolu
-      reject: Refugar
       resend_confirmation:
-        already_confirmed: Esti usuariu xá ta confirmáu
+        already_confirmed: Esti perfil xá ta confirmáu
         send: Volver unviar el mensaxe de confirmación
+      role: Rol
+      search: Buscar
       search_same_email_domain: Otros perfiles col mesmu dominiu de corréu electrónicu
       search_same_ip: Otros perfiles cola mesma IP
       show:
         created_reports: Informes fechos
       statuses: Artículos
+      suspend: Suspender
       title: Cuentes
       username: Nome d'usuariu
       web: Web
@@ -81,6 +79,8 @@ ast:
       empty: Nun s'atopó nengún rexistru.
     announcements:
       destroyed_msg: "¡L'anunciu desanicióse correutamente!"
+      edit:
+        title: Edición d'un anunciu
       empty: Nun s'atopó nengún anunciu.
       live: En direuto
       new:
@@ -97,7 +97,13 @@ ast:
       by_domain: Dominiu
       copy: Copiar
       copy_failed_msg: Nun se pudo facer una copia llocal d'esi fustaxe
+      created_msg: "¡El fustaxe creóse correutamente!"
+      delete: Desaniciar
+      disable: Desactivar
+      disabled: Desactivóse
       emoji: Fustaxe
+      enable: Activar
+      enabled: Activóse
       list: Llistar
       no_emoji_selected: Nun camudó nengún fustaxe darréu que nun se seleicionó nengún
       not_permitted: Nun tienes permisu pa facer esta aición
@@ -138,6 +144,9 @@ ast:
         title: Apellaciones
     domain_blocks:
       domain: Dominiu
+      new:
+        severity:
+          suspend: Suspender
       not_permitted: Nun tienes permisu pa facer esta aición
       private_comment: Comentariu priváu
       public_comment: Comentariu públicu
@@ -157,6 +166,8 @@ ast:
       by_domain: Dominiu
       content_policies:
         comment: Nota interna
+        policies:
+          suspend: Suspender
         policy: Política
         reason: Motivu públicu
       empty: Nun s'atopó nengún dominiu.
@@ -166,11 +177,6 @@ ast:
       private_comment: Comentariu priváu
       public_comment: Comentariu públicu
       title: Federación
-    invites:
-      filter:
-        available: Disponible
-        expired: Caducó
-      title: Invitaciones
     ip_blocks:
       expires_in:
         '1209600': 2 selmanes
@@ -182,7 +188,6 @@ ast:
     relationships:
       title: 'Rellaciones de: %{acct}'
     relays:
-      save_and_enable: Guardar ya activar
       status: Estáu
     reports:
       account:
@@ -191,7 +196,6 @@ ast:
           other: "%{count} notes"
       actions_description_html: Decidi qué aición tomar pa resolver esti informe. Si tomes una aición punitiva escontra la cuenta de la que s'informó, va unviase un avisu per corréu electrónicu a esa cuenta, esceuto cuando se seleiciona la categoría <strong>Puxarra</strong>.
       add_to_report: Amestar más al informe
-      are_you_sure: "¿De xuru?"
       category: Categoría
       category_description_html: El motivu pol que s'informó d'esta cuenta y/o conteníu cítase na comunicación cola cuenta de la que s'informó
       comment_description_html: 'Pa fornir más información, %{name} escribió:'
@@ -208,7 +212,6 @@ ast:
       quick_actions_description_html: 'Toma una aición rápida o baxa pa ver el conteníu del que s''informó:'
       report: 'Informe #%{id}'
       reported_by: Perfil qu'informó
-      resolved: Resolvióse
       resolved_msg: "¡L'informe resolvióse correutamente!"
       skip_to_actions: Saltar a les aiciones
       status: Estáu
@@ -219,10 +222,15 @@ ast:
       unresolved: Ensin resolver
       view_profile: Ver el perfil
     roles:
+      add_new: Amestar un rol
+      assigned_users:
+        one: "%{count} perfil"
+        other: "%{count} perfiles"
       categories:
         administration: Alministración
         devops: DevOps
         invites: Invitaciones
+      edit: Edición del rol «%{name}»
       everyone: Permisos predeterminaos
       permissions_count:
         one: "%{count} permisu"
@@ -230,16 +238,22 @@ ast:
       privileges:
         manage_announcements: Xestionar los anuncios
         manage_appeals: Xestionar les apellaciones
-        manage_blocks: Xestionar los bloqueos
+        manage_custom_emojis: Xestionar los fustaxes personalizaos
+        manage_federation: Xestionar la federación
+        manage_invites: Xestionar les invitaciones
         manage_reports: Xestionar los informes
         manage_roles: Xestionar los roles
         manage_rules: Xestionar les regles
         manage_settings: Xestionar la configuración
         manage_taxonomies: Xestionar les taxonomíes
+        manage_users: Xestionar los perfiles
+        manage_webhooks: Xestionar los webhooks
+        view_dashboard: Ver el panel
         view_devops: DevOps
       title: Roles
     rules:
       add_new: Amestar la regla
+      title: Regles del sirvidor
     settings:
       about:
         manage_rules: Xestionar les regles del sirvidor
@@ -285,7 +299,6 @@ ast:
         sensitive: "%{name} marcó la cuenta de %{target} como sensible"
         suspend: "%{name} suspendió la cuenta de: %{target}"
       appeal_approved: Apellóse
-      appeal_pending: Apellación pendiente
     system_checks:
       elasticsearch_running_check:
         message_html: Nun se pudo conectar con Elasticsearch. Revisa que tea n'execución o desactiva la busca de testos completos
@@ -362,17 +375,12 @@ ast:
     your_token: El pase d'accesu
   auth:
     change_password: Contraseña
-    delete_account: Desaniciu de la cuenta
     delete_account_html: Si quies desaniciar la cuenta, pues facelo <a href="%{path}">equí</a>. Va pidísete que confirmes l'aición.
-    description:
-      suffix: "¡Con una cuenta, vas ser a siguir a persones, espublizar anovamientos ya intercambiar mensaxes con usuarios de cualesquier sirvidor de Mastodon ya más!"
     didnt_get_confirmation: "¿Nun recibiesti les instrucciones de confirmación?"
     dont_have_your_security_key: "¿Nun tienes una llave de seguranza?"
     forgot_password: "¿Escaeciesti la contraseña?"
     login: Aniciar la sesión
     logout: Zarrar la sesión
-    migrate_account: Mudase a otra cuenta
-    migrate_account_html: Si deseyes redirixir esta cuenta a otra, pues <a href="%{path}">configuralo equí</a>.
     privacy_policy_agreement_html: Lleí ya acepto la <a href="%{privacy_policy_path}" target="_blank">política de privacidá</a>
     providers:
       cas: CAS
@@ -422,7 +430,6 @@ ast:
     warning:
       email_contact_html: Si entá nun aportó, pues unviar un mensaxe a <a href="mailto:%{email}">%{email}</a> pa consiguir más ayuda
       email_reconfirmation_html: Si nun recibiesti'l mensaxe de confirmación, pues <a href="%{path}">volver solicitalu</a>
-      irreversible: Nun vas ser a restaurar o volver activar la cuenta
       more_details_html: Pa consiguir más detalles, mira la <a href="%{terms_path}">política de privacidá</a>.
   disputes:
     strikes:
@@ -439,7 +446,7 @@ ast:
       your_appeal_pending: Unviesti una apellación
       your_appeal_rejected: Refugóse la to apellación
   errors:
-    '400': The request you submitted was invalid or malformed.
+    '400': La solicitú qu'unviesti nun yera válida o yera incorreuta.
     '403': Nun tienes permisu pa ver esta páxina.
     '404': La páxina que busques nun ta equí.
     '406': Esta páxina nun ta disponible nel formatu solicitáu.
@@ -449,13 +456,13 @@ ast:
       title: La verificación de seguranza falló
     '429': Ficiéronse milenta solicitúes
     '500':
+      content: Sentímoslo, mas prodúxose dalgún error nel sirvidor.
       title: La páxina nun ye correuta
     '503': Nun se pudo sirvir la páxina pola mor d'un fallu temporal del sirvidor.
     noscript_html: Pa usar l'aplicación web de Mastodon, activa JavaScript. Tamién pues probar una de les <a href="%{apps_path}">aplicaciones natives</a> de Mastodon pa la to plataforma.
   exports:
     archive_takeout:
       date: Data
-      download: Baxar l'archivu
       hint_html: Pues solicitar un archivu colos tos <strong>artículos ya ficheros xubíos</strong>. Los datos esportaos van tar nel formatu ActivityPub, llexible pa cualesquier software que seya compatible. Pues solicitar un archivu cada 7 díes.
       in_progress: Compilando l'archivu...
       request: Solicitar l'archivu
@@ -465,10 +472,8 @@ ast:
     csv: CSV
     domain_blocks: Dominios bloquiaos
     lists: Llistes
-    mutes: Xente que silenciesti
     storage: Almacenamientu multimedia
   featured_tags:
-    add_new: Amestar
     hint_html: "<strong>¿Qué son les etiquetes destacaes?</strong> Apaecen de forma bien visible nel perfil públicu ya permite que les persones restolen los tos artículos públicos per duana d'eses etiquetes. Son una gran ferramienta pa tener un rexistru de trabayos creativos o de proyeutos a plazu llongu."
   filters:
     contexts:
@@ -490,8 +495,6 @@ ast:
         one: "%{count} artículu"
         other: "%{count} artículos"
       title: Peñeres
-    new:
-      title: Amestar una peñera nueva
   footer:
     trending_now: En tendencia
   generic:
@@ -502,7 +505,6 @@ ast:
     all_matching_items_selected_html:
       one: Seleicionóse <strong>%{count}</strong> elementu que concasa cola busca.
       other: Seleicionáronse <strong>%{count}</strong> elementos que concasen cola busca.
-    changes_saved_msg: "¡Los cambeos guardáronse correutamente!"
     copy: Copiar
     delete: Desaniciar
     deselect: Deseleicionar too
@@ -520,10 +522,8 @@ ast:
       blocking: Llista de perfiles bloquiaos
       domain_blocking: Llista de dominios bloquiaos
       following: Llista de siguidores
-      muting: Llista de xente silenciao
     upload: Xubir
   invites:
-    delete: Desactivar
     expired: Caducó
     expires_in:
       '1800': 30 minutos
@@ -538,12 +538,8 @@ ast:
     max_uses:
       one: 1 usu
       other: "%{count} usos"
-    max_uses_prompt: Nun hai llende
-    prompt: Xenera ya comparti enllaces con otros pa da-yos accesu a esti sirividor
     table:
       expires_at: Data de caducidá
-      uses: Usos
-    title: Convidar a persones
   lists:
     errors:
       limit: Algamesti la cantidá máxima de llistes
@@ -556,11 +552,9 @@ ast:
       images_and_video: Nun se pue axuntar nengún videu a un artículu que xá contién imáxenes
       too_many: Nun se puen axuntar más de 4 ficheros
   migrations:
-    acct: nome_usuariu@dominiu de la cuenta nueva
     errors:
       missing_also_known_as: nun ye un nomatu d'esta cuenta
       move_to_self: nun pue ser la cuenta actual
-    incoming_migrations: Mudase dende otra cuenta
     warning:
       followers: Esta aición va mover tolos siguidores de la cuenta actual a la nueva
   notification_mailer:
@@ -570,10 +564,8 @@ ast:
     favourite:
       body: "%{name} marcó como favoritu'l to artículu:"
       subject: "%{name} marcó'l to artículu como favoritu"
-      title: Favoritu nuevu
     follow:
       body: "¡Agora %{name} siguete!"
-      title: Siguidor nuevu
     follow_request:
       body: "%{name} solicitó siguite"
       title: Solicitú de siguimientu nueva
@@ -584,7 +576,6 @@ ast:
     reblog:
       body: "%{name} compartió'l to artículu:"
       subject: "%{name} compartió'l to artículu"
-      title: Compartición nueva de barritu
     update:
       subject: "%{name} editó un artículu"
   notifications:
@@ -647,7 +638,6 @@ ast:
       uc_browser: UC Browser
       weibo: Weibo
     current_session: Sesión actual
-    description: "%{browser} en %{platform}"
     ip: IP
     platforms:
       adobe_air: Adobe Air
@@ -672,7 +662,6 @@ ast:
     authorized_apps: Aplicaciones autorizaes
     back: Volver a Mastodon
     development: Desendolcu
-    edit_profile: Editar el perfil
     export: Esportación de datos
     featured_tags: Etiquetes destacaes
     import: Importación
@@ -695,7 +684,6 @@ ast:
       video:
         one: "%{count} videu"
         other: "%{count} vídeos"
-    boosted_from_html: Compartióse'l barritu dende %{acct_link}
     default_language: La mesma que la de la interfaz
     errors:
       in_reply_not_found: L'artículu al que tentes de responder paez que nun esiste.
@@ -713,14 +701,10 @@ ast:
         one: "%{count} votu"
         other: "%{count} votos"
     show_more: Amosar más
-    sign_in_to_participate: Anicia la sesión pa participar na conversación
     title: "%{name}: «%{quote}»"
     visibilities:
       direct: Mensaxe direutu
-      private: Namái siguidores
-      private_long: Namái s'amuesen a los siguidores
       public_long: Tol mundu pue velos
-      unlisted: Nun llistar
       unlisted_long: Tol mundu pue velos, mas nun apaecen nes llinies de tiempu públiques
   statuses_cleanup:
     exceptions: Esceiciones
@@ -734,8 +718,6 @@ ast:
       '63113904': 2 años
       '7889238': 3 meses
   stream_entries:
-    pinned: Barritu fixáu
-    reblogged: compartió
     sensitive_content: Conteníu sensible
   tags:
     does_not_match_previous_name: nun concasa col nome anterior
@@ -744,12 +726,9 @@ ast:
     default: Mastodon (escuridá)
     mastodon-light: Mastodon (claridá)
   two_factor_authentication:
-    disable: Desactivar
     enabled: L'autenticación en dos pasos ta activada
     enabled_success: L'autenticación en dos pasos activóse correutamente
-    generate_recovery_codes: Xenerar códigos de recuperación
     lost_recovery_codes: Los códigos de recuperación permítente recuperar l'accesu a la cuenta si pierdes el teléfonu. Si tamién pierdes estos códigos, pues volver xeneralos equí. Los códigos de recuperación antiguos van anulase.
-    recovery_codes: Códigos de recuperación
     recovery_codes_regenerated: Los códigos de recuperación volvieron xenerase correutamente
     webauthn: Llaves de seguranza
   user_mailer:
@@ -762,6 +741,7 @@ ast:
       explanation:
         disable: Xá nun pues usar la cuenta mas el perfil ya otros datos siguen intautos. Pues solicitar una copia de seguranza de los datos, camudar la configuración de la cuenta o desaniciar la cuenta.
       reason: 'Motivu:'
+      statuses: 'Artículos citaos:'
       subject:
         disable: Conxelóse la to cuenta %{acct}
         suspend: Suspendióse la cuenta %{acct}
@@ -778,7 +758,6 @@ ast:
   users:
     follow_limit_reached: Nun pues siguir a más de %{limit} persones
     invalid_otp_token: El códigu de l'autenticación en dos pasos nun ye válidu
-    otp_lost_help_html: Si pierdes l'accesu, contauta con %{email}
     seamless_external_login: Aniciesti la sesión pente un serviciu esternu, polo que la configuración de la contraseña ya de la direición de corréu electrónicu nun tán disponibles.
   verification:
     explanation_html: 'Pues <strong>verificate como la persona propietaria de los enllaces nos metadatos del to perfil</strong>. Pa ello, el sitiu web enllaciáu ha contener un enllaz al to perfil de Mastodon. Esti enllaz <strong>ha</strong> tener l''atributu <code>rel="me"</code>. El testu del enllaz nun importa. Equí tienes un exemplu:'
diff --git a/config/locales/be.yml b/config/locales/be.yml
index 3d79037c0..152f92ccc 100644
--- a/config/locales/be.yml
+++ b/config/locales/be.yml
@@ -1,10 +1,10 @@
 ---
 be:
   about:
-    about_mastodon_html: 'Сацыяльная сетка будучыні: без рэкламы, без карпаратыўнага назірання, этычны дызайн і дэцэнтралізацыя! Валодайце сваімі дадзенымі з Mastodon'
+    about_mastodon_html: 'Сацыяльная сетка будучыні: без рэкламы, без карпаратыўнага назірання, этычны дызайн і дэцэнтралізацыя! Валодайце сваімі данымі з Mastodon!'
     contact_missing: Не зададзены
     contact_unavailable: Недаступна
-    hosted_on: Mastodon знаходзіцца на %{domain}
+    hosted_on: Mastodon месціцца на %{domain}
     title: Пра нас
   accounts:
     follow: Падпісацца
@@ -19,7 +19,7 @@ be:
     link_verified_on: Права ўласнасці на гэтую спасылку праверана %{date}
     nothing_here: Тут нічога няма!
     pin_errors:
-      following: Вы павінны быць падпісаны на чалавека, якога вы жадаеце ўхваліць
+      following: Вы павінны быць падпісаны на чалавека, якога жадаеце рэкамендаваць
     posts:
       few: Допісы
       many: Допісаў
@@ -109,6 +109,11 @@ be:
       pending: Чакае праверкі
       perform_full_suspension: Выключыць
       previous_strikes: Ранейшыя скаргі
+      previous_strikes_description_html:
+        few: Гэты ўліковы запіс мае <strong>%{count}</strong> скаргі.
+        many: Гэты ўліковы запіс мае <strong>%{count}</strong> скарг.
+        one: Гэты ўліковы запіс мае <strong>адну</strong> скаргу.
+        other: Гэты ўліковы запіс мае <strong>%{count}</strong> скаргаў.
       promote: Павысіць
       protocol: Пратакол
       public: Публічны
@@ -157,7 +162,7 @@ be:
       undo_sensitized: Прыбраць прымусовую пазнаку далікатнасці
       undo_silenced: Адмяніць ліміт
       undo_suspension: Разблакаваць карыстальніка
-      unsilenced_msg: Блакіроўка акаунта карыстальніка  %{username} знятая
+      unsilenced_msg: З уліковага запісу %{username} зняты абмежаванні
       unsubscribe: Адпісацца
       unsuspended_msg: Уліковы запіс %{username} адноўлены
       username: Імя карыстальніка
@@ -173,7 +178,7 @@ be:
         change_email_user: Змяніць E-mail карыстальніка
         change_role_user: Змяніць ролю карыстальніка
         confirm_user: Пацвердзіць карыстальніка
-        create_account_warning: Стварыць папярэджванне
+        create_account_warning: Стварыць папярэджанне
         create_announcement: Стварыць аб'яву
         create_canonical_email_block: Стварыць блакіроўку электроннай пошты
         create_custom_emoji: Стварыць адвольны эмодзі
@@ -261,7 +266,7 @@ be:
         enable_custom_emoji_html: "%{name} уключыў эмодзі %{target}"
         enable_sign_in_token_auth_user_html: "%{name} уключыў(ла) такенную e-mail праверку для %{target}"
         enable_user_html: "%{name} уключыў уваход для карыстальніка %{target}"
-        memorialize_account_html: "%{name} перакючыў(ла) %{target} аккаўнт у старонку мемарыялізацыі"
+        memorialize_account_html: Карыстальнік %{name} пераключыў уліковы запіс %{target} у старонку памяці
         promote_user_html: "%{name} павысіў карыстальніка %{target}"
         reject_appeal_html: "%{name} адхіліў запыт на абскарджанне %{target}"
         reject_user_html: "%{name} адхіліў рэгістрацыю з %{target}"
@@ -351,6 +356,21 @@ be:
         many: "<strong>%{count}</strong> апеляцый у чарзе"
         one: "<strong>%{count}</strong> апеляцыя ў чарзе"
         other: "<strong>%{count}</strong> апеляцыі ў чарзе"
+      pending_reports_html:
+        few: "<strong>%{count}</strong> справаздачы ў апрацоўцы"
+        many: "<strong>%{count}</strong> справаздач у апрацоўцы"
+        one: "<strong>%{count}</strong> справаздача ў апрацоўцы"
+        other: "<strong>%{count}</strong>  справаздачы ў апрацоўцы"
+      pending_tags_html:
+        few: "<strong>%{count}</strong> хэштэгі ў чарзе"
+        many: "<strong>%{count}</strong> хэштэгаў у чарзе"
+        one: "<strong>%{count}</strong> хэштэг у чарзе"
+        other: "<strong>%{count}</strong> хэштэга ў чарзе"
+      pending_users_html:
+        few: "<strong>%{count}</strong> карыстальнікі ў чарзе"
+        many: "<strong>%{count}</strong> карыстальнікаў у чарзе"
+        one: "<strong>%{count}</strong> карыстальнік у чарзе"
+        other: "<strong>%{count}</strong> карыстальніка ў чарзе"
       resolved_reports: скарг разгледжана
       software: Праграмнае забеспячэнне
       sources: Крыніцы рэгістрацыі
@@ -426,7 +446,7 @@ be:
     export_domain_blocks:
       import:
         description_html: Вы збіраецеся імпартаваць спіс даменных блокаў. Калі ласка, праглядзіце гэты спіс вельмі ўважліва, асабліва калі вы асабіста не з'яўляецеся аўтарам гэтага спісу.
-        existing_relationships_warning: Існуюць наступныя сувязі
+        existing_relationships_warning: Наяўныя зносіны
         private_comment_description_html: 'Каб дапамагчы вам адсочваць, адкуль паходзяць імпартаваныя блокі, імпартаваныя блокі будуць створаны з наступным прыватным каментарыем: <q>%{comment}</q>'
         private_comment_template: Імпартавана з %{source} %{date}
         title: Імпарт блакіровак дамену
@@ -443,6 +463,11 @@ be:
       unsuppress: Аднавіць рэкамендацыі падпісак
     instances:
       availability:
+        description_html:
+          few: Калі дастаўка на дамен не атрымоўваецца праз <strong>%{count} іншыя дні</strong>, далейшыя спробы дастаўкі не будуць зроблены, пакуль не будзе атрымана дастаўка <em>з</em> дамена.
+          many: Калі дастаўка на дамен не атрымоўваецца праз <strong>%{count} іншых дзён</strong>, далейшыя спробы дастаўкі не будуць зроблены, пакуль не будзе атрымана дастаўка <em>з</em> дамена.
+          one: Калі дастаўка на дамен не атрымоўваецца праз <strong>%{count} дзень</strong>, далейшыя спробы дастаўкі не будуць зроблены, пакуль не будзе атрымана дастаўка <em>з</em> дамена.
+          other: Калі дастаўка на дамен не атрымоўваецца праз <strong>%{count} іншага дня</strong>, далейшыя спробы дастаўкі не будуць зроблены, пакуль не будзе атрымана дастаўка <em>з</em> дамена.
         failure_threshold_reached: Парог памылак дасягнуты %{date}.
         failures_recorded:
           few: Памылковых спроб за %{count} розныя дні.
@@ -486,8 +511,14 @@ be:
         unavailable: Недаступна
       delivery_available: Дастаўка даступна
       delivery_error_days: Дзён памылак дастаўкі
+      delivery_error_hint: Калі дастаўка немагчымая на працягу %{count} дзён, яна будзе аўтаматычна пазначана як недастаўленая.
       destroyed_msg: Даныя з %{domain} цяпер стаяць у чарзе на неадкладнае выдаленне.
       empty: Даменаў не знойдзена.
+      known_accounts:
+        few: "%{count} вядомых уліковых запісы"
+        many: "%{count} вядомых уліковых запісаў"
+        one: "%{count} вядомых уліковых запісаў"
+        other: "%{count} вядомых уліковых запісаў"
       moderation:
         all: Усе
         limited: Абмежаваныя
@@ -498,11 +529,17 @@ be:
       purge_description_html: Калі вам здаецца, што гэты дамен больш не будзе працаваць, вы можаце выдаліць усе даныя ўліковых запісаў і звязаныя з даменам даныя з вашага сховішча. Гэта можа заняць нейкі час.
       title: Федэрацыя
       total_blocked_by_us: Заблакіравана намі
+      total_followed_by_them: Іхнія падпіскі
+      total_followed_by_us: Нашыя падпіскі
       total_reported: Скаргі на іх
+      total_storage: Медыя дадаткі
+      totals_time_period_hint_html: Паказаныя агульныя значэнні ніжэй утрымліваюць дадзеныя за ўвесь час.
     invites:
       deactivate_all: Дэактываваць усё
       filter:
         all: Усе
+        available: Даступна
+        expired: Пратэрмінавана
         title: Фільтр
       title: Запрашэнні
     ip_blocks:
@@ -518,15 +555,24 @@ be:
         '94670856': 3 гады
       new:
         title: Стварыць новае IP правіла
+      no_ip_block_selected: Ніякія правілы IP не былі змененыя, таму што ні адно з іх не было выбрана
       title: IP правілы
+    relationships:
+      title: Зносіны %{acct}
     relays:
       add_new: Дадаць новы рэтранслятар
       delete: Выдаліць
+      description_html: "<strong>Федэрацыйны рэтранслятар</strong> - гэта прамежкавы сервер, які абменьваецца вялікімі аб'ёмамі публічных паведамленняў паміж серверамі, якія падпісваюцца і публікуюць на ім. <strong>Гэта можа дапамагчы малым і сярэднім серверам выяўляць кантэнт з fediverse</strong>, для чаго лакальным карыстальнікам у адваротным выпадку трэба было б уручную сачыць за іншымі людзьмі на аддаленых серверах."
       disable: Адключыць
       disabled: Адключана
       enable: Уключыць
+      enable_hint: Пасля ўключэння ваш сервер падпішацца на ўсе публічныя паведамленні з гэтага рэтранслятара і пачне адпраўляць на яго агульнадаступныя паведамленні бягучага серверу.
       enabled: Уключана
+      inbox_url: URL рэтранслятара
+      pending: Чаканне зацвярджэння рэтранслятара
       save_and_enable: Захаваць і ўключыць
+      setup: Наладзіць злучэнне з рэтранслятарам
+      signatures_not_enabled: Рэтранслятары не будуць працаваць належным чынам, калі ўключаны бяспечны рэжым або рэжым абмежаванай федэрацыі
       status: Стан
       title: Рэтранслятары
     report_notes:
@@ -534,26 +580,64 @@ be:
       destroyed_msg: Скарга паспяхова выдалена!
       today_at: Сёння а %{time}
     reports:
+      account:
+        notes:
+          few: "%{count} нататкі"
+          many: "%{count} нататак"
+          one: "%{count} нататка"
+          other: "%{count} нататкі"
       action_log: Журнал аўдыту
+      action_taken_by: Дзеянне выканана
       actions:
+        delete_description_html: Публікацыі, пра якія паведамляецца, будуць выдалены, а папярэджанне будзе запісана, каб дапамагчы вам эскаліраваць наступныя парушэнні з боку таго ж уліковага запісу.
+        mark_as_sensitive_description_html: Медыя кантэнт у паведамленнях, пра якія паведамляецца, будуць пазначаны як канфідэнцыяльныя, і будзе запісана папярэджанне, каб дапамагчы вам эскаліраваць наступныя парушэнні з боку таго ж уліковага запісу.
+        other_description_html: Глядзіце дадатковыя параметры для кіравання паводзінамі ўліковага запісу і настройкі сувязі з уліковым запісам, пра які паведамляецца.
+        resolve_description_html: Ніякіх дзеянняў супраць уліковага запісу, пра які паведамляецца, не будзе, папярэджэнне не зафіксавана, і скарга будзе закрыта.
+        silence_description_html: Профіль будзе бачны толькі тым, хто ўжо сочыць за ім або шукае яго ўручную, што значна абмяжоўвае яго ахоп. Заўсёды можна вярнуць.
         suspend_description_html: Профіль і яго змесціва стане недаступным да моманту канчатковага выдалення. Камунікацыя з уліковым запісам будзе немагчымай. Можна скасаваць на працягу 30 дзён.
+      actions_description_html: Вырашыце, якія дзеянні распачаць, каб вырашыць гэтую скаргу. Калі вы прымеце меры пакарання ў дачыненні да ўліковага запісу, пра які паведамляецца, ім будзе адпраўлена апавяшчэнне па электроннай пошце, за выключэннем выпадкаў, калі выбрана катэгорыя <strong>Спам</strong>.
+      add_to_report: Дадаць яшчэ дэталяў да скаргі
       are_you_sure: Вы ўпэўнены?
       assign_to_self: Прызначыць мне
       assigned: Прызначаны мадэратар
+      by_target_domain: Дамен уліковага запісу, на які падаецца скарга
       category: Катэгорыя
+      category_description_html: Прычына паведамлення аб гэтым уліковым запісе і/або кантэнце будзе згадана ў сувязі з уліковым запісам, на які пададзена скарга
       comment:
         none: Пуста
+      comment_description_html: 'Каб даць больш інфармацыі, %{name} напісаў:'
+      created_at: Створана
       delete_and_resolve: Выдаліць допісы
+      forwarded: Пераслана
+      forwarded_to: Пераслана на %{domain}
+      mark_as_resolved: Пазначыць як вырашаную
+      mark_as_sensitive: Пазначыць як далікатны
+      mark_as_unresolved: Пазначыць як нявырашаную
       no_one_assigned: Ніводны
       notes:
         create: Дадаць нататку
         create_and_resolve: Вырашыць з нататкай
         create_and_unresolve: Паўторна адкрыць з нататкай
         delete: Выдаліць
+        placeholder: Апішыце, якія дзеянні былі зроблены, або любыя іншыя звязаныя абнаўленні...
         title: Нататкі
+      notes_description_html: Праглядвайце і пакідайце нататкі іншым мадэратарам і сабе ў будучыні
+      quick_actions_description_html: 'Выканайце хуткае дзеянне або пракруціце ўніз, каб убачыць змесціва, на якое пададзена скарга:'
+      remote_user_placeholder: аддалены карыстальнік з %{instance}
+      reopen: Пераадкрыць скаргу
+      report: 'Скарга #%{id}'
+      reported_account: Уліковы запіс парушальніка
+      reported_by: Адпраўнік скаргі
       resolved: Вырашана
+      resolved_msg: Скарга была паспяхова вырашана!
+      skip_to_actions: Прапусціць дзеянні
       status: Стан
+      statuses: Змесціва, на якое паскардзіліся
+      statuses_description_html: Крыўднае змесціва будзе згадвацца ў зносінах з уліковым запісам, на які пададзена скарга
+      target_origin: Крыніца уліковага запісу на які пададзена скарга
       title: Скаргі
+      unassign: Скінуць
+      unresolved: Нявырашаныя
       updated_at: Абноўлена
       view_profile: Паглядзець профіль
     roles:
@@ -570,16 +654,20 @@ be:
         moderation: Мадэрацыя
         special: Спецыяльны
       delete: Выдаліць
+      description_html: З дапамогай <strong>роляў карыстальнікаў</strong> вы можаце наладзіць, да якіх функцый і абласцей Mastodon будуць мець доступ вашы карыстальнікі.
       edit: Рэдагаваць ролю "%{name}"
       everyone: Дазволы па змаўчанні
+      everyone_full_description_html: Гэта <strong>базавая роля</strong>, якая ўплывае на <strong>ўсіх карыстальнікаў</strong>, нават без прызначанай ролі. Усе астатнія ролі ўспадкоўваюць ад яго дазволы.
       permissions_count:
         few: "%{count} дазволы"
         many: "%{count} дазволаў"
         one: "%{count} дазвол"
-        other: "%{count} дазвола"
+        other: "%{count} дазволу"
       privileges:
         administrator: Адміністратар
+        administrator_description: Карыстальнікі з гэтым дазволам будуць абыходзіць усе абмежаванні
         delete_user_data: Выдаленне даных карыстальнікаў
+        delete_user_data_description: Дазваляе карыстальнікам без затрымкі выдаляць даныя іншых карыстальнікаў
         invite_users: Запрашэнне карыстальнікаў
         invite_users_description: Дазваляе запрашаць новых людзей на сервер
         manage_announcements: Кіраванне аб'явамі
@@ -590,21 +678,28 @@ be:
         manage_blocks_description: Дазваляе блакаваць пэўныя паштовыя правайдэры і IP адрасы
         manage_custom_emojis: Кіраванне адвольнымі эмодзі
         manage_custom_emojis_description: Дазваляе кіраваць адвольнымі эмодзі на серверы
+        manage_federation: Кіраваць федэрацыяй
+        manage_federation_description: Дазваляе карыстальнікам блакіраваць або дазваляць аб'яднанне з іншымі даменамі і кантраляваць магчымасць дастаўкі
         manage_invites: Кіраванне запрашэннямі
         manage_invites_description: Дазваляе праглядаць і дэактывоўваць запрашальныя спасылкі
         manage_reports: Кіраванне скаргамі
         manage_reports_description: Дазваляе разглядаць скаргі і прымаць захады мадэрацыі
         manage_roles: Кіраванне ролямі
+        manage_roles_description: Дазваляе карыстальнікам кіраваць і прызначаць ролі, ніжэйшыя за іх
         manage_rules: Кіраванне правіламі
         manage_rules_description: Дазваляе змяняць правілы сервера
         manage_settings: Кіраванне наладамі
         manage_settings_description: Дазваляе змяняць налады сервера
+        manage_taxonomies: Кіраванне катэгорыямі
+        manage_taxonomies_description: Дазваляе карыстальнікам праглядаць папулярны кантэнт і абнаўляць налады хэштэгаў
         manage_user_access: Кіраванне наладамі доступу карыстальнікаў
         manage_user_access_description: Дазваляе адключаць двухфактарную аўтэнтыфікацыю іншым карыстальнікам, змяняць іх паштовы адрас і скідваць пароль
         manage_users: Кіраванне карыстальнікамі
         manage_users_description: Дазваляе праглядаць звесткі іншых карыстальнікаў і іх мадэрацыю
-        manage_webhooks: Кіраванне webhook'амі
+        manage_webhooks: Кіраванне вэбхукамі
+        manage_webhooks_description: Дазваляе карыстальнікам наладжваць вэб-хукі для адміністрацыйных аперацый
         view_audit_log: Кіраванне журналам аўдыту
+        view_audit_log_description: Дазваляе карыстальнікам бачыць гісторыю адміністрацыйных аперацый на серверы
         view_dashboard: Прагляд панэлі кіравання
         view_dashboard_description: Дазваляе праглядаць панэль кіравання і розныя метрыкі
         view_devops: DevOps
@@ -613,37 +708,99 @@ be:
     rules:
       add_new: Дадаць правіла
       delete: Выдаліць
+      description_html: Большасць сцвярджаюць, што прачыталі ўмовы абслугоўвання і згаджаюцца з імі, але звычайна людзі не чытаюць іх да канца, пакуль не ўзнікне праблема. <strong>Таму зрабіце правілы вашага сервера простымі з першага погляду, прадставіўшы іх у выглядзе маркіраванага спісу.</strong> Старайцеся рабіць правілы кароткімі і простымі, але не разбіваць іх на шмат асобных пунктаў.
       edit: Рэдагаваць правіла
+      empty: Правілы сервера яшчэ не вызначаны.
       title: Правілы сервера
     settings:
       about:
+        manage_rules: Кіраваць правіламі сервера
+        preamble: Дайце падрабязную інфармацыю аб тым, як сервер працуе, мадэруецца, фінансуецца.
+        rules_hint: Існуе спецыяльная вобласць для правілаў, якіх вашы карыстальнікі павінны прытрымлівацца.
         title: Пра нас
       appearance:
         preamble: Наладзьце вэб-інтэрфейс Mastodon.
         title: Выгляд
+      branding:
+        preamble: Брэндынг вашага сервера адрознівае яго ад іншых сервераў у сетцы. Гэтая інфармацыя можа адлюстроўвацца ў розных асяроддзях, напрыклад, у вэб-інтэрфейсе Mastodon, уласных праграмах, у папярэднім праглядзе спасылак на іншых вэб-сайтах і ў праграмах абмену паведамленнямі і гэтак далей. Па гэтай прычыне лепш трымаць гэтую інфармацыю яснай, кароткай і сціслай.
+        title: Брэндынг
+      content_retention:
+        preamble: Кантралюйце, як створаны карыстальнікамі кантэнт захоўваецца ў Mastodon.
+        title: Утрыманне кантэнту
       discovery:
+        follow_recommendations: Выконвайце рэкамендацыі
+        preamble: Прадстаўленне цікавага кантэнту дапамагае прыцягнуць новых карыстальнікаў, якія могуць не ведаць нікога на Mastodon. Кантралюйце працу розных функцый выяўлення на вашым серверы.
+        profile_directory: Дырэкторыя профіляў
+        public_timelines: Публічная паслядоўнасць публікацый
+        title: Выяўленне
         trends: Актуальныя
       domain_blocks:
         all: Для ўсіх
         disabled: Нікому
         users: Лакальным карыстальнікам, якія ўвайшлі
       registrations:
+        preamble: Кантралюйце, хто можа ствараць уліковы запіс на вашым серверы.
         title: Рэгістрацыя
+      registrations_mode:
+        modes:
+          approved: Для рэгістрацыі патрабуецца пацвярджэнне
+          none: Нікому не магчыма зарэгістравацца
+          open: Любому магчыма зарэгістравацца
       title: Налады сервера
+    site_uploads:
+      delete: Выдаліць запампаваны файл
+      destroyed_msg: Загрузка сайту паспяхова выдалена!
     statuses:
       account: Аўтар
       application: Праграма
+      back_to_account: Назад да старонкі ўліковага запісу
+      back_to_report: Назад да старонкі справаздачы
+      batch:
+        remove_from_report: Выдаліць са справаздачы
+        report: Справаздача
       deleted: Выдалены
+      favourites: Упадабаныя
+      history: Гісторыя версій
+      in_reply_to: Адказваючы на
       language: Мова
       media:
         title: Медыя
-      metadata: Метададзеныя
+      metadata: Метаданыя
+      no_status_selected: Ніводная публікацыя не была зменена, бо ніводная не была выбрана
       open: Адкрыць допіс
+      original_status: Зыходны допіс
+      reblogs: Рэпосты
+      status_changed: Допіс зменены
+      title: Допісы уліковага запісу
+      trending: Папулярныя
       visibility: Бачнасць
+      with_media: З медыя
     strikes:
       actions:
+        delete_statuses: "%{name} выдаліў запісы %{target}"
+        disable: "%{name} замарозіў уліковы запіс %{target}"
+        mark_statuses_as_sensitive: "%{name} пазначыў запісы %{target} як уразлівыя"
+        none: "%{name} даслаў папярэджанне %{target}"
+        sensitive: "%{name} пазначыў уліковы запіс %{target} як уразлівы"
+        silence: "%{name} абмежаваў уліковы запіс %{target}"
         suspend: Уліковы запіс %{target} выключаны %{name}
+      appeal_approved: Абскарджана
+      appeal_pending: Апеляцыя разглядаецца
+    system_checks:
+      database_schema_check:
+        message_html: Ёсць незавершаныя міграцыі базы дадзеных. Калі ласка, запусціце іх, каб пераканацца, што дадатак паводзіць сябе належным чынам
+      elasticsearch_running_check:
+        message_html: Немагчыма падключыцца да Elasticsearch. Калі ласка, праверце, што ён запушчаны, або адключыце паўнатэкставы пошук
+      elasticsearch_version_check:
+        message_html: 'Несумяшчальная версія Elasticsearch: %{value}'
+        version_comparison: Elasticsearch %{running_version} выяўлены, але патрабуецца %{required_version}
+      rules_check:
+        action: Кіраваць правіламі сервера
+        message_html: Вы не вызначылі ніякіх правілаў сервера.
+      sidekiq_process_check:
+        message_html: Не працуе працэс Sidekiq для %{value} чаргі. Калі ласка праверце вашу канфігурацыю Sidekiq
     tags:
+      review: Стан праверкі
       updated_msg: Налады хэштэгаў паспяхова змененыя
     title: Адміністрацыя
     trends:
@@ -653,49 +810,159 @@ be:
       links:
         allow: Дазволіць спасылка
         allow_provider: Дазволіць выдаўца
+        description_html: Гэта спасылкі, якія зараз часта распаўсюджваюцца ўліковымі запісамі, з якіх ваш сервер бачыць паведамленні. Гэта можа дапамагчы вашым карыстальнікам даведацца, што адбываецца ў свеце. Ніякія спасылкі не будуць паказвацца публічна, пакуль вы не зацвердзіце аўтара. Вы таксама можаце дазволіць або адхіліць асобныя спасылкі.
+        disallow: Забараніць спасылку
+        disallow_provider: Дазволіць выдаўца
+        no_link_selected: Ніводная спасылка не была зменена, бо ніводная не была выбрана
+        publishers:
+          no_publisher_selected: Выдаўцы не былі зменены, таму што ніводзін не быў абраны
+        shared_by_over_week:
+          few: Абагулілі %{count} чалавекі за апошні тыдзень
+          many: Абагулілі %{count} чалавек за апошні тыдзень
+          one: Абагуліў адзін чалавек за апошні тыдзень
+          other: Абагулілі %{count} чалавек за апошні тыдзень
+        title: Актуальныя спасылкі
+        usage_comparison: Выкарыстоўвалася %{today} разоў сёння, у параўнанні з %{yesterday} учора
+      only_allowed: Толькі дазволенае
+      pending_review: Чакае праверкі
+      preview_card_providers:
+        allowed: Спасылкі ад гэтага выдаўца не будуць у трэндзе
+        description_html: Спасылкі з гэтых даменаў часта абагульняюцца на вашым серверы. Спасылкі не трапяць у публічныя трэнды, калі дамен спасылкі не ўхвалены. Вашае ўхваленне (ці адхіленне) распаўсюдзіцца на субдамены.
+        rejected: Спасылкі ад гэтага выдаўца не будуць у трэнде
+        title: Выдаўцы
+      rejected: Адхілена
       statuses:
         allow: Дазволіць допіс
         allow_account: Дазволіць аўтара
-        description_html: Гэта допісы, пра якія ведае ваш сервер, што на дадзены момант часта абагульваюцца і дадаюцца ў абранае. Гэта можа дапамагчы вашым новым і пастаянным карыстальнікам знайсці больш людзей, на якіх можна падпісацца. Ніякія допісы не будуць паказвацца публічна, пакуль вы не зацвердзіце аўтара, а аўтар не дазволіць прапанаваць свой уліковы запіс іншым. Вы таксама можаце дазволіць або адхіліць асобныя допісы.
+        description_html: Гэта допісы, пра якія ведае ваш сервер, што на дадзены момант часта абагульваюцца і падабаюцца людзям. Гэта можа дапамагчы вашым новым і пастаянным карыстальнікам знайсці больш людзей, на якіх можна падпісацца. Ніякія допісы не будуць паказвацца публічна, пакуль вы не зацвердзіце аўтара, а аўтар не дазволіць прапанаваць свой уліковы запіс іншым. Вы таксама можаце дазволіць або адхіліць асобныя допісы.
         disallow: Забараніць допіс
         disallow_account: Забараніць аўтара
+        no_status_selected: Ніводны папулярны допіс не быў зменены, бо ніводны не быў выбраны
+        not_discoverable: Аўтар вырашыў быць нябачным
+        shared_by:
+          few: Пашыраны або ўпадабаны %{friendly_count} разы
+          many: Пашыраны або ўпадабаны %{friendly_count} разоў
+          one: Пашыраны або ўпадабаны %{friendly_count} раз
+          other: Пашыраны або ўпадабаны %{friendly_count} разоў
         title: Актуальныя допісы
       tags:
+        current_score: Бягучы рэзультат %{score}
         dashboard:
+          tag_accounts_measure: унікальнае выкарыстанне
           tag_languages_dimension: Папулярныя мовы
           tag_servers_dimension: Папулярныя серверы
           tag_servers_measure: розныя серверы
           tag_uses_measure: усяго выкарыстанняў
+        description_html: Гэтыя хэштэгі зараз з'яўляюцца у мностве допісаў, якія бачыць ваш сервер. Гэта дапаможа вашым карыстальнікам даведацца аб чым зараз больш за ўсё размаўляюць людзі. Ніякі хэштэг не з'явіцца публічна пакуль вы яго не пацвердзіце.
+        listable: Можа быць прапанавана
+        no_tag_selected: Ніводны тэг не быў зменены, бо ніводны не быў выбраны
         not_listable: Не будзе прапанавана
+        not_trendable: Не з'явіцца ў трэндах
         not_usable: Немагчыма выкарыстаць
+        peaked_on_and_decaying: На піку %{date}, зараз спадае
+        title: Актуальныя хэштэгі
+        trendable: Можа з'явіцца сярод трэндаў
+        trending_rank: 'Папулярнае #%{rank}'
+        usable: Магчыма выкарыстаць
+        usage_comparison: Выкарыстоўвалася %{today} разоў сёння, у параўнанні з %{yesterday} учора
+        used_by_over_week:
+          few: Выкарысталі %{count} чалавекі за апошні тыдзень
+          many: Выкарысталі %{count} чалавек за апошні тыдзень
+          one: Выкарыстаў адзін чалавек за апошні тыдзень
+          other: Выкарысталі %{count} чалавек за апошні тыдзень
       title: Актуальныя
+      trending: Папулярныя
     warning_presets:
       add_new: Дадаць новы
       delete: Выдаліць
+      edit_preset: Рэдагаваць шаблон папярэджання
+      empty: Вы яшчэ не вызначылі ніякіх шаблонаў папярэджанняў.
+      title: Кіраванне шаблонамі папярэджанняў
     webhooks:
+      add_new: Дадаць канцавую кропку
       delete: Выдаліць
+      description_html: "<strong>Вэбхук</strong> дазваляе Mastodon адпраўляць <strong>апавяшчэнні ў рэальным часе</strong> аб выбраных падзеях у вашай уласнай праграме, каб яна магла <strong>аўтаматычна рэагаваць на іх</strong>."
+      disable: Адключыць
+      disabled: Адключана
+      edit: Рэдагаваць канцавую кропку
+      empty: У вас яшчэ няма сканфігураваных канчатковых кропак вэбхука.
+      enable: Уключыць
+      enabled: Уключана
+      enabled_events:
+        few: "%{count} актыўныя падзеі"
+        many: "%{count} актыўных падзей"
+        one: 1 актыўная падзея
+        other: "%{count} актыўнай падзеі"
+      events: Падзеі
+      new: Новая вэбхука
+      rotate_secret: Павярнуць сакрэт
+      secret: Падпісанне сакрэту
       status: Стан
+      title: Вэбхукі
+      webhook: Вэбхук
   admin_mailer:
     new_appeal:
       actions:
-        suspend: каб выключыць уліковы запіс
+        delete_statuses: выдаліць іх допісы
+        disable: замарозіць уліковы запіс
+        mark_statuses_as_sensitive: пазначыць іх допісы як далікатныя
+        none: папярэджанне
+        sensitive: пазначыць уліковы запіс як далікатны
+        silence: абмежаваць уліковы запіс
+        suspend: выключыць уліковы запіс
+      body: "%{target} абскарджвае рашэнне мадэратара %{action_taken_by} ад %{date}, якая была %{type}. Яны напісалі:"
+      next_steps: Вы можаце ўхваліць апеляцыю каб адмяніць рашэнне мадэратараў ці ігнараваць яе.
+      subject: "%{username} абскарджвае рашэнне мадэратараў на %{instance}"
+    new_pending_account:
+      body: Падрабязнасці новага ўліковага запісу прыведзены ніжэй. Вы можаце зацвердзіць або адхіліць гэтую заяўку.
+      subject: Новы ўліковы запіс для разгляду ў %{instance} (%{username})
     new_report:
+      body: "%{reporter} паскардзіўся на %{target}"
       body_remote: Нехта з %{domain} паскардзіўся на %{target}
+      subject: Новая скарга на %{instance} (#%{id})
+    new_trends:
+      body: 'Гэтыя элементы трэба праверыць, перш чым публікаваць:'
+      new_trending_links:
+        title: Папулярныя спасылкі
+      new_trending_statuses:
+        title: Папулярныя допісы
+      new_trending_tags:
+        no_approved_tags: Зараз няма зацверджаных папулярных хэштэгаў.
+        title: Папулярныя хэштэгі
+      subject: Новае ў папулярным для разгляду %{instance}
+  aliases:
+    add_new: Стварыць псеўданім
+    created_msg: Створаны новы псеўданім. Цяпер вы можаце пачаць пераход са старога ўліковага запісу.
+    deleted_msg: Псеўданім выдалены. Пераход з таго ўліковага запісу на гэты больш немагчымы.
+    empty: У вас няма псеўданімаў.
+    hint_html: Калі вы хочаце перайсці з іншага ўліковага запісу ў гэты, то тут вы можаце стварыць псеўданім, каб перамясціць падпісчыкаў са старога ўліковага запісу ў гэты. Гэта дзеянне з'яўляецца <strong>бясшкодным і зварачальным</strong>. <strong>Перанос уліковага запісу пачынаецца са старога ўліковага запісу</strong>.
+    remove: Адмацаваць псеўданім
   appearance:
     advanced_web_interface: Пашыраны вэб-інтэрфейс
     advanced_web_interface_hint: 'Калі вы хочаце выкарыстоўваць усю шырыню экрана, пашыраны вэб-інтэрфейс дазваляе вам наладзіць мноства розных слупкоў, каб бачыць столькі інфармацыі, колькі вам трэба: галоўная, апавяшчэнні, глабальная стужка, любая колькасць спісаў і хэштэгаў.'
     animations_and_accessibility: Анімацыі і даступнасць
     confirmation_dialogs: Дыялогавыя вокны пацвярджэння
+    discovery: Адкрыцці
     localization:
       body: Mastodon перакладаецца добраахвотнікамі.
       guide_link: https://be.crowdin.com/project/mastodon/be
       guide_link_text: Кожны можа зрабіць унёсак.
+    sensitive_content: Далікатны змест
     toot_layout: Макет допісу
   application_mailer:
+    notification_preferences: Змяніць налады эл. пошты
     salutation: "%{name},"
+    settings: 'Змяніць налады эл. пошты: %{link}'
+    view: 'Паглядзець:'
+    view_profile: Паглядзець профіль
+    view_status: Паглядзець допіс
   applications:
     created: Праграма паспяхова створана
     destroyed: Праграма паспяхова выдалена
+    regenerate_token: Стварыць новы токен доступу
+    token_regenerated: Новы токен доступу паспяхова створаны
+    warning: Будзьце вельмі асцярожныя з гэтымі данымі. Ніколі нікому не паведамляйце іх!
+    your_token: Ваш токен доступу
   auth:
     apply_for_account: Пакінуць заяўку
     change_password: Пароль
@@ -714,6 +981,7 @@ be:
     login: Увайсці
     logout: Выйсці
     migrate_account: Пераехаць на іншы ўліковы запіс
+    migrate_account_html: Калі вы хочаце перанакіраваць гэты ўліковы запіс на іншы, то можаце <a href="%{path}">наладзіць яго тут</a>.
     or_log_in_with: Або ўвайсці з дапамогай
     privacy_policy_agreement_html: Я азнаёміўся і пагаджаюся з <a href="%{privacy_policy_path}" target="_blank">палітыкай канфідэнцыйнасці</a>
     providers:
@@ -728,16 +996,25 @@ be:
       title: Некалькі базавых правілаў.
     security: Бяспека
     set_new_password: Прызначыць новы пароль
+    setup:
+      email_below_hint_html: Калі прыведзены ніжэй адрас эл. пошты няправільны, вы можаце змяніць яго тут і атрымаць новае пацвярджэнне па эл. пошце.
+      email_settings_hint_html: Ліст з пацвярджэннем быў адпраўлены на %{email}. Калі гэты адрас эл. пошты няправільны, вы можаце змяніць яго ў наладах уліковага запісу.
+      title: Налады
     sign_up:
       preamble: Маючы ўліковы запіс на гэтым серверы Mastodon, вы будзеце мець магчымасць падпісацца на кожнага чалавека ў сетцы, незалежна ад таго, на якім серверы размешчаны ягоны ўліковы запіс.
     status:
       account_status: Стан уліковага запісу
       confirming: Чакаецца пацвярджэнне з электроннай пошты.
+      functional: Ваш уліковы запіс поўнасцю працуе.
+      pending: Ваша заяўка разглядаецца нашым супрацоўнікам. Гэта можа заняць некаторы час. Вы атрымаеце электронны ліст, калі заяўка будзе ўхвалена.
+      redirecting_to: Ваш уліковы запіс неактыўны, бо ў цяперашні час ён перанакіроўваецца на %{acct}.
+      view_strikes: Праглядзець мінулыя папярэджанні для вашага ўліковага запісу
     too_fast: Форма адпраўлена занадта хутка, паспрабуйце яшчэ раз.
     use_security_key: Выкарыстаеце ключ бяспекі
   authorize_follow:
     already_following: Вы ўжо падпісаныя на гэты ўліковы запіс
     already_requested: Вы ўжо адправілі запыт на гэты ўліковы запіс
+    error: На жаль, падчас пошуку аддаленага ўліковага запісу здарылася памылка
     follow: Падпісацца
     follow_request: 'Вы адправілі запыт на падпіску:'
     following: 'Поспех! Цяпер вы падпісаны на:'
@@ -745,6 +1022,7 @@ be:
       close: Або, вы можаце проста закрыць гэтае акно.
       return: Паказаць профіль карыстальніка
       web: Перайсці ў вэб-версію
+    title: Падпісацца на %{acct}
   challenge:
     confirm: Працягнуць
     hint_html: "<strong>Парада:</strong> Мы не будзем запытваць ваш пароль зноўку на працягу наступнай гадзіны."
@@ -775,66 +1053,190 @@ be:
   deletes:
     challenge_not_passed: Уведзеная інфармацыя няправільная
     confirm_password: Увядзіце свой бягучы пароль, каб пацвердзіць сваю асобу
+    confirm_username: Увядзіце сваё імя карыстальніка для пацвярджэння працэдуры
     proceed: Выдаліць уліковы запіс
     success_msg: Ваш уліковы запіс быў паспяхова выдалены
+    warning:
+      before: 'Перш чым працягнуць, уважліва прачытайце гэтыя заўвагі:'
+      caches: Змесціва, кэшаванае іншымі серверамі, можа захавацца
+      data_removal: Вашы допісы і іншыя даныя будуць выдалены назаўсёды
+      email_change_html: Вы можаце <a href="%{path}">змяніць свой адрас электроннай пошты</a>, не выдаляючы ўліковы запіс
+      email_contact_html: Калі ліст усё яшчэ не дайшоў, вы можаце звярнуцца па дапамогу на эл. пошту <a href="mailto:%{email}">%{email}</a>
+      email_reconfirmation_html: Калі вы не атрымалі пацвярджэнне па электроннай пошце, вы можаце <a href="%{path}">запытаць яго зноў</a>
+      irreversible: Вы не зможаце аднавіць або паўторна актываваць свой уліковы запіс
+      more_details_html: Падрабязнасці глядзіце ў <a href="%{terms_path}">палітыцы прыватнасці</a>.
+      username_available: Ваша імя карыстальніка зноў стане даступным
+      username_unavailable: Ваша імя карыстальніка застанецца недаступным
   disputes:
     strikes:
+      action_taken: Выкананае дзеянне
+      appeal: Апеляцыя
+      appeal_approved: Гэтае папярэджанне паспяхова абскарджана і больш не дзейнічае
+      appeal_rejected: Апеляцыя была адхілена
+      appeal_submitted_at: Апеляцыя пададзена
+      appealed_msg: Ваша апеляцыя пададзена. У выпадку, калі яе зацвердзяць, вам паведамяць.
       appeals:
         submit: Падаць апеляцыю
+      approve_appeal: Зацвердзіць апеляцыю
+      associated_report: Звязаная скарга
+      created_at: Датаваны
+      description_html: Гэта дзеянні, выкананыя супраць вашага ўліковага запісу, і папярэджанні, якія адпраўлены вам супрацоўнікамі %{instance}.
+      recipient: Адрасавана
+      reject_appeal: Адхіліць апеляцыю
+      status: 'Допіс #%{id}'
+      status_removed: Допіс ужо выдалены з сістэмы
+      title: "%{action} ад %{date}"
       title_actions:
-        none: Папярэджванне
+        delete_statuses: Выдаленне допісу
+        disable: Замарозка уліковага запісу
+        mark_statuses_as_sensitive: Пазначыць допісы як далікатныя
+        none: Папярэджанне
+        sensitive: Пазначэнне ўліковага запісу як далікатнага
+        silence: Абмежаванне ўліковага запісу
         suspend: Выключэнне ўліковага запісу
+      your_appeal_approved: Ваша абскарджанне было ўхвалена
+      your_appeal_pending: Вы адправілі апеляцыю
+      your_appeal_rejected: Ваша абскарджанне было адхілена
+  domain_validator:
+    invalid_domain: не з'яўляецца сапраўдным даменным імем
   errors:
-    '400': The request you submitted was invalid or malformed.
-    '403': You don't have permission to view this page.
-    '404': The page you are looking for isn't here.
-    '406': This page is not available in the requested format.
-    '410': The page you were looking for doesn't exist here anymore.
-    '422': 
-    '429': Too many requests
-    '500': 
-    '503': The page could not be served due to a temporary server failure.
+    '400': Запыт, які вы адправілі, памылковы або няправільны.
+    '403': У вас няма дазволу на прагляд гэтай старонкі.
+    '404': Няма старонкі, якую вы шукаеце.
+    '406': Старонка недасяжная ў запатрабаваным фармаце.
+    '410': Старонка, якую вы шукаеце, больш не існуе.
+    '422':
+      content: Памылка праверкі бяспекі. Вы заблакіравалі cookies?
+      title: Памылка праверкі бяспекі
+    '429': Зашмат запытаў
+    '500':
+      content: Выбачце! Нешта пайшло не так на нашым баку.
+      title: Старонка няспраўная
+    '503': Старонку немагчыма адлюстраваць з-за часовага збою сервера.
+    noscript_html: Каб выкарыстоўваць вэб-праграму Mastodon, уключыце JavaScript. Акрамя таго, паспрабуйце адну з <a href="%{apps_path}">арыгінальных праграм</a> Mastodon для вашай платформы.
+  existing_username_validator:
+    not_found: не атрымалася знайсці лакальны ўліковы запіс з такім імем карыстальніка
+    not_found_multiple: не атрымалася знайсці %{usernames}
   exports:
     archive_takeout:
       date: Дата
+      download: Спампаваць ваш архіў
+      hint_html: Вы можаце зрабіць запыт архіва сваіх <strong>допісаў і запампаваных медыя</strong>. Экспартаваныя даныя будуць мець фармат ActivityPub, які можна прачытаць любым сумяшчальным праграмным забеспячэннем. Запыт архіва можна рабіць кожныя 7 дзён.
+      in_progress: Збіраем ваш архіў...
+      request: Запатрабаваць ваш архіў
       size: Памер
+    blocks: Спіс блакіроўкі
     bookmarks: Закладкі
     csv: CSV
+    domain_blocks: Блакіроўкі дамена
     lists: Спісы
+    mutes: Уліковыя запісы, якія вы ігнаруеце
+    storage: Медыясховішча
   featured_tags:
     add_new: Дадаць новы
+    errors:
+      limit: Вы ўжо дадалі максімальную колькасць хэштэгаў
   filters:
     contexts:
       account: Профілі
+      home: Стужка і спісы
       notifications: Апавяшчэнні
+      public: Публічныя стужкі
       thread: Размовы
     edit:
       add_keyword: Дадаць ключавое слова
       keywords: Ключавыя словы
+      statuses: Асобныя допісы
       title: Рэдагаваць фільтр
+    errors:
+      invalid_context: Дадзены кантэкст недастатковы альбо памылковы
     index:
+      contexts: Фільтры ў %{contexts}
       delete: Выдаліць
       empty: У вас няма фільтраў.
+      expires_in: Сканчаецца праз %{distance}
+      expires_on: Сканчаецца %{date}
+      keywords:
+        few: "%{count} ключавыя словы"
+        many: "%{count} ключавых слоў"
+        one: "%{count} ключавое слова"
+        other: "%{count} ключавога слова"
+      statuses:
+        few: "%{count} допісы"
+        many: "%{count} допісаў"
+        one: "%{count} допіс"
+        other: "%{count} допісу"
+      statuses_long:
+        few: "%{count} допісы схаваны"
+        many: "%{count} допісаў схавана"
+        one: "%{count} допіс схаваны"
+        other: "%{count} допісу схавана"
       title: Фільтры
     new:
       save: Захаваць новы фільтр
       title: Дадаць новы фільтр
+    statuses:
+      back_to_filter: Вярнуцца да фільтра
+      batch:
+        remove: Выдаліць з фільтра
+      index:
+        hint: Гэты фільтр прымяняецца для выбару асобных допісаў незалежна ад іншых крытэрыяў. Вы можаце дадаць больш допісаў у гэты фільтр з вэб-інтэрфейсу.
+        title: Адфільтраваныя допісы
+  footer:
+    trending_now: Актуальнае
   generic:
     all: Усе
+    all_items_on_page_selected_html:
+      few: На гэтай старонцы абраныя ўсе <strong>%{count}</strong> элементы.
+      many: На гэтай старонцы абраныя ўсе <strong>%{count}</strong> элементаў.
+      one: На гэтай старонцы абраны <strong>%{count}</strong> элемент.
+      other: На гэтай старонцы абраныя усі <strong>%{count}</strong> элементаў.
+    all_matching_items_selected_html:
+      few: Абраныя ўсе <strong>%{count}</strong> элементы, якія адпавядаюць вашаму пошуку.
+      many: Абраныя ўсе <strong>%{count}</strong> элементаў, якія адпавядаюць вашаму пошуку.
+      one: Абраны <strong>%{count}</strong> элемент, які адпавядае вашаму пошуку.
+      other: Абраныя <strong>%{count}</strong> элементаў, якія адпавядаюць вашаму пошуку.
+    changes_saved_msg: Змены паспяхова захаваны!
     copy: Скапіяваць
     delete: Выдаліць
+    deselect: Зняць вылучэнне з усіх
+    none: Нічога
     order_by: Парадак
     save_changes: Захаваць змены
+    select_all_matching_items:
+      few: Выберыце ўсе %{count} элементы, якія адпавядаюць вашаму пошуку.
+      many: Выберыце ўсе %{count} элементаў, якія адпавядаюць вашаму пошуку.
+      one: Выберыце %{count} элемент, які адпавядае вашаму пошуку.
+      other: Выберыце %{count} элементаў, якія адпавядаюць вашаму пошуку.
     today: сёння
+    validation_errors:
+      few: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце %{count} памылкі ніжэй
+      many: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце %{count} памылак ніжэй
+      one: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце памылку ніжэй
+      other: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце %{count} памылак ніжэй
+  html_validator:
+    invalid_markup: 'змяшчае несапраўдную разметку HTML: %{error}'
   imports:
+    errors:
+      invalid_csv_file: 'Несапраўдны файл CSV. Памылка: %{error}'
+      over_rows_processing_limit: колькасць радкоў большая за %{count}
     modes:
       merge: Аб'яднаць
       merge_long: Захаваць існуючыя запісы і дадаць новыя
       overwrite: Перазапісаць
+      overwrite_long: Замяніць бягучыя запісы на новыя
+    preface: Вы можаце імпартаваць даныя, экспартаваныя вамі з іншага сервера, напрыклад, спіс людзей, на якіх вы падпісаны або якіх блакуеце.
+    success: Вашы даныя паспяхова запампаваныя і будуць неўзабаве апрацаваны
     types:
+      blocking: Спіс заблакіраваных
       bookmarks: Закладкі
+      domain_blocking: Спіс заблакіраваных даменаў
+      following: Падпіскі
+      muting: Спіс ігнаравання
     upload: Запампаваць
   invites:
+    delete: Дэактываваць
+    expired: Пратэрмінавана
     expires_in:
       '1800': 30 хвілін
       '21600': 6 гадзін
@@ -844,8 +1246,21 @@ be:
       '86400': 1 дзень
     expires_in_prompt: Ніколі
     generate: Стварыць запрашальную спасылку
+    invited_by: 'Вас запрасіў(-ла):'
+    max_uses:
+      few: "%{count} выкарыстанні"
+      many: "%{count} выкарыстанняў"
+      one: 1 выкарыстанне
+      other: "%{count} выкарыстанняў"
     max_uses_prompt: Неабмежавана
+    prompt: Генерыруйце і абагульвайце паміж іншымі спасылкі для доступу да гэтага сервера
+    table:
+      expires_at: Дзее да
+      uses: Выкарыстанні
     title: Запрасіць людзей
+  lists:
+    errors:
+      limit: Вы дасягнулі макс. колькасці спісаў
   login_activities:
     authentication_methods:
       otp: праграма двухфактарнай аўтэнтыфікацыі
@@ -857,15 +1272,59 @@ be:
     failed_sign_in_html: Няўдалая спроба ўваходу праз %{method} з %{ip} (%{browser})
     successful_sign_in_html: Паспяховы ўваход праз %{method} з %{ip} (%{browser})
     title: Гісторыя ўваходаў
+  media_attachments:
+    validations:
+      images_and_video: Немагчыма прымацаваць відэа да допісу, які ўжо змяшчае выявы
+      not_ready: Няможна дадаць файлы, апрацоўка якіх яшчэ не скончылася. Паспрабуйце яшчэ раз праз хвілінку!
+      too_many: Няможна дадаць больш за 4 файлы
   migrations:
+    acct: Перамешчана ў
+    cancel: Скасаваць перанакіраванне
+    cancel_explanation: Скасаванне перанакіравання паўторна актывуе ваш бягучы ўліковы запіс, але не верне падпісчыкаў, якія былі перамешчаны на той уліковы запіс.
+    cancelled_msg: Перанакіраванне паспяхова скасавана.
     errors:
+      already_moved: ёсць тым жа ўліковым запісам, на які вы ўжо пераехалі
+      missing_also_known_as: гэта не псеўданім уліковага запісу
+      move_to_self: не можа быць бягучым уліковым запісам
       not_found: не знойдзена
     followers_count: Падпісчыкі на момант перамяшчэння
+    incoming_migrations: Пераязджаем з іншага ўліковага запісу
+    incoming_migrations_html: Каб перайсці з іншага ўліковага запісу ў гэты, спачатку трэба <a href="%{path}">стварыць псеўданім уліковага запісу</a>.
+    moved_msg: Ваш уліковы запіс перанакіроўваецца на %{acct}. Туды-ж будуць перамешчаны вашы падпісчыкі.
+    not_redirecting: Ваш уліковы запіс не перанакіроўваецца на іншы ўліковы запіс.
+    on_cooldown: Вы нядаўна перамяшчалі свой уліковы запіс. Гэтая мажлівасць зноў стане даступнай праз %{count} дзн.
     past_migrations: Колішнія перамяшчэнні
     proceed_with_move: Перамясціць падпісчыкаў
+    redirected_msg: Ваш уліковы запіс цяпер перанакіроўваецца на %{acct}.
+    redirecting_to: Ваш уліковы запіс перанакіроўваецца на %{acct}.
+    set_redirect: Задаць перанакіраванне
+    warning:
+      backreference_required: Спачатку трэба наладзіць зваротнае спасыланне новага ўліковага запісу на бягучы
+      before: 'Перш чым працягнуць, калі ласка, уважліва прачытайце гэтыя заўвагі:'
+      cooldown: Пасля «пераезду» будзе перыяд чакання, на працягу якога вы не зможаце зноў «пераехаць»
+      disabled_account: Пасля гэтага ваш бягучы ўліковы запіс не будзе цалкам даступны. Аднак у вас будзе доступ да экспарту даных, а таксама да паўторнай актывацыі.
+      followers: Гэтае дзеянне будзе «пераносіць» усіх падпісчыкаў з бягучага ўліковага запісу на новы
+      only_redirect_html: Альбо вы можаце <a href="%{path}"> толькі наладзіць перанакіраванне на ваш профіль</a>.
+      other_data: Ніякія іншыя даныя не будуць перамешчаны аўтаматычна
+      redirect: Профіль вашага бягучага ўліковага запісу будзе абноўлены з паведамленнем аб перанакіраванні і выключаны з пошуку
   moderation:
     title: Мадэрацыя
+  move_handler:
+    carry_blocks_over_text: Гэты карыстальнік «перанесены» з уліковага запісу %{acct}, які вы заблакавалі.
+    carry_mutes_over_text: Гэты карыстальнік «перанесены» з уліковага запісу %{acct}, які вы ігнаруеце.
+    copy_account_note_text: 'Гэты карыстальнік «перанесены» з %{acct}, вось вашы папярэднія заўвагі пра яго:'
+  navigation:
+    toggle_menu: Уключыць меню
   notification_mailer:
+    admin:
+      report:
+        subject: "%{name} падаў скаргу"
+      sign_up:
+        subject: "%{name} зарэгістраваўся"
+    favourite:
+      body: "%{name} упадабаў ваш пост:"
+      subject: "%{name} упадабаў ваш допіс"
+      title: Новае ўпадабанае
     follow:
       body: "%{name} цяпер падпісаны на вас!"
       subject: "%{name} цяпер падпісаны на вас"
@@ -873,14 +1332,26 @@ be:
     follow_request:
       action: Кіраванне запытамі на падпіску
       body: "%{name} хоча падпісацца на вас"
+      subject: 'Падпісчык у чарзе: %{name}'
       title: Новы запыт на падпіску
     mention:
       action: Адказаць
+      body: 'Вас згадаў %{name} у:'
+      subject: Вас згадаў %{name}
+      title: Новае згадванне
+    poll:
+      subject: Апытанне ад %{name} скончылася
     reblog:
+      body: "%{name} пашырыў ваш пост:"
       subject: "%{name} пашырыў ваш допіс"
+      title: Новае пашырэнне
     status:
       subject: Новы допіс ад %{name}
+    update:
+      subject: "%{name} адрэдагаваў допіс"
   notifications:
+    email_events: Падзеі для апавяшчэнняў эл. пошты
+    email_events_hint: 'Выберыце падзеі, аб якіх вы хочаце атрымліваць апавяшчэнні:'
     other_settings: Іншыя налады апавяшчэнняў
   number:
     human:
@@ -889,17 +1360,75 @@ be:
         units:
           billion: млрд
           million: млн
+          quadrillion: Q
           thousand: тыс.
           trillion: трлн
   otp_authentication:
+    code_hint: Каб пацвердзіць, увядзіце код, згенераваны праграмай-аўтэнтыфікатарам
+    description_html: Калі вы ўключыце <strong>двухфактарную аўтэнтыфікацыю</strong> праз праграму-аўтэнтыфікатар, то каб увайсці ва ўліковы запіс, вам трэба мець тэлефон, які будзе генераваць токены для ўводу.
     enable: Уключыць
+    instructions_html: "<strong>Скануйце гэты QR-код у Google Authenticator або ў аналагічнай TOTP-праграме на вашым тэлефоне</strong>. З гэтага моманту праграма будзе генераваць токены, якія вам трэба будзе ўводзіць пры ўваходзе ва ўліковы запіс."
+    manual_instructions: 'Калі вы не можаце сканаваць QR-код і трэба ўвесці яго ўручную, вось ключ у форме тэксту:'
+    setup: Наладзіць
+    wrong_code: Уведзены несапраўдны код! Час на прыладзе адпавядае часу на серверы?
   pagination:
+    newer: Навейшае
     next: Далей
+    older: Старэйшае
+    prev: Папярэдні
+    truncate: "&hellip;"
+  polls:
+    errors:
+      already_voted: Вы ўжо прагаласавалі ў апытанні
+      duplicate_options: змяшчае аднолькавыя варыянты
+      duration_too_long: гэта занадта далёка ў будучыні
+      duration_too_short: гэта занадта хутка
+      expired: Апытанне ўжо скончана
+      invalid_choice: Абраны варыянт апытання не існуе
+      over_character_limit: не можа быць даўжэй за %{max} сімвалаў кожны
+      too_few_options: павінна быць болей за адзін варыянт
+      too_many_options: колькасць варыянтаў не можа перавышаць %{max}
+  preferences:
+    other: Іншае
+    posting_defaults: Публікаваць па змаўчанні
+    public_timelines: Публічныя стужкі
+  privacy_policy:
+    title: Палітыка канфідэнцыйнасці
+  reactions:
+    errors:
+      limit_reached: Дасягнуты ліміт розных рэакцый
+      unrecognized_emoji: невядомае эмодзі
   relationships:
+    activity: Актыўнасць ул. запісу
+    dormant: Занядбаны
+    follow_selected_followers: Падпісацца на выбраных падпісчыкаў
+    followers: Падпісчыкі
+    following: Падпісаны
+    invited: Запрошаны
+    last_active: Апошняя актыўнасць
+    most_recent: Даўнасць
+    moved: Перанесены
+    mutual: Узаемныя
+    primary: Асноўны
+    relationship: Зносіны
     remove_selected_domains: Выдаліць усіх падпісчыкаў з выбраных даменаў
-    remove_selected_followers: Выдаліць выбраных карыстальнікаў
+    remove_selected_followers: Выдаліць выбраных падпісчыкаў
     remove_selected_follows: Адпісацца ад выбраных карыстальнікаў
     status: Стан уліковага запісу
+  remote_follow:
+    missing_resource: Не ўдалося знайсці патрэбны URL перанакіравання для вашага ўліковага запісу
+  reports:
+    errors:
+      invalid_rules: не спасылаецца на дзеючыя правілы
+  rss:
+    content_warning: 'Папярэджанне аб змесціве:'
+    descriptions:
+      account: Публічныя допісы ад @%{acct}
+      tag: 'Публічныя допісы з хэштэгам #%{hashtag}'
+  scheduled_statuses:
+    over_daily_limit: Вы перавысілі ліміт ў %{limit} запланаваных на сёння допісаў
+    over_total_limit: Вы перавысілі ліміт ў %{limit} запланаваных допісаў
+    too_soon: Запланаваная дата мусіць быць у будучыні
   sessions:
     activity: Апошняя актыўнасць
     browser: Браўзер
@@ -923,6 +1452,7 @@ be:
       weibo: Weibo
     current_session: Бягучая сесія
     description: "%{browser} на %{platform}"
+    explanation: Гэта вэб-браўзэры, з якіх выкананы ўваход у ваш уліковы запіс Mastodon.
     ip: IP
     platforms:
       adobe_air: Adobe AIR
@@ -944,6 +1474,7 @@ be:
   settings:
     account: Уліковы запіс
     account_settings: Налады ўліковага запісу
+    aliases: Псеўданімы ўліковага запісу
     appearance: Выгляд
     authorized_apps: Аўтарызаваныя праграмы
     back: Назад да Mastodon
@@ -951,14 +1482,16 @@ be:
     development: Распрацоўка
     edit_profile: Рэдагаваць профіль
     export: Экспарт даных
+    featured_tags: Выбраныя хэштэгі
     import: Імпарт
     import_and_export: Імпарт і экспарт
     migrate: Перамяшчэнне ўліковага запісу
     notifications: Апавяшчэнні
-    preferences: Параметры
+    preferences: Налады
     profile: Профіль
     relationships: Падпіскі і падпісчыкі
     statuses_cleanup: Аўтаматычнае выдаленне допісаў
+    strikes: Папярэджанні мадэратараў
     two_factor_authentication: Двухфактарная аўтэнтыфікацыя
     webauthn_authentication: Ключы бяспекі
   statuses:
@@ -968,6 +1501,7 @@ be:
         many: "%{count} аўдыяфайлаў"
         one: "%{count} аўдыяфайл"
         other: "%{count} аўдыяфайла"
+      description: 'Дадаткі: %{attached}'
       image:
         few: "%{count} выявы"
         many: "%{count} выяваў"
@@ -978,17 +1512,70 @@ be:
         many: "%{count} відэафайлаў"
         one: "%{count} відэафайл"
         other: "%{count} відэафайла"
+    boosted_from_html: Пашырыў уліковы запіс %{acct_link}
+    content_warning: 'Папярэджанне аб змесціве: %{warning}'
+    default_language: Такая, што і мова інтэрфэйсу
+    disallowed_hashtags:
+      few: 'змяшчае недазволеныя хэштэгі: %{tags}'
+      many: 'змяшчае недазволеныя хэштэгі: %{tags}'
+      one: 'змяшчае недазволены хэштэг: %{tags}'
+      other: 'утрымлівае недазволеныя хэштэгі: %{tags}'
     edited_at_html: Адрэдагавана %{date}
+    errors:
+      in_reply_not_found: Здаецца, допіс, на які вы спрабуеце адказаць, не існуе.
+    open_in_web: Адчыніць у вэб-версіі
     over_character_limit: перавышаная колькасць сімвалаў у %{max}
     pin_errors:
       direct: Допісы, бачныя толькі згаданым карыстальнікам, не могуць быць замацаваныя
+      limit: Вы ўжо замацавалі максімальную колькасць допісаў
       ownership: Немагчыма замацаваць чужы допіс
+      reblog: Немагчыма замацаваць пашырэнне
+    poll:
+      total_people:
+        few: "%{count} чалавекі"
+        many: "%{count} чалавек"
+        one: "%{count} чалавек"
+        other: "%{count} чалавека"
+      total_votes:
+        few: "%{count} галасы"
+        many: "%{count} галасоў"
+        one: "%{count} голас"
+        other: "%{count} голасу"
+      vote: Прагаласаваць
     show_more: Паказаць больш
+    show_newer: Паказаць навейшыя
+    show_older: Паказаць старэйшыя
+    show_thread: Паказаць ланцуг
     sign_in_to_participate: Зарэгіструйцеся каб удзельнічаць у абмеркаванні
     title: '%{name}: "%{quote}"'
     visibilities:
+      direct: Асабіста
+      private: Для падпісчыкаў
+      private_long: Паказваць толькі падпісчыкам
       public: Публічны
+      public_long: Усе могуць бачыць
+      unlisted: Не ў спісе
+      unlisted_long: Кожны можа ўбачыць гэты допіс, але ён не паказваецца ў публічных стужках
   statuses_cleanup:
+    enabled: Аўтаматычна выдаляць старыя допісы
+    enabled_hint: Аўтаматычна выдаляць вашыя допісы, калі яны дасягаюць вызначанага тэрміну, акрамя наступных выпадкаў
+    exceptions: Выключэнні
+    explanation: Выдаленне допісаў — гэта цяжкая аперацыя. Яна павольна выконваецца ў часы, калі сервер не загружаны іншай працай. Праз гэта вашыя допісы могуць быць выдаленыя праз пэўны час пасля вызначанага тэрміну.
+    ignore_favs: Ігнараваць упадабаныя
+    ignore_reblogs: Ігнараваць пашырэнні
+    interaction_exceptions: Выключэнні, заснаваныя на ўзаемадзеянні
+    keep_direct: Захаваць асабістыя паведамленні
+    keep_direct_hint: Не выдаляць асабістыя паведамленні
+    keep_media: Захоўваць допісы з медыя дадаткамі
+    keep_media_hint: Не выдаляць вашыя допісы, якія ўтрымліваюць медыя
+    keep_pinned: Захаваць замацаваныя допісы
+    keep_pinned_hint: Не выдаляць вашыя замацаваныя допісы
+    keep_polls: Працягнуць апытанне
+    keep_polls_hint: Не выдаляць вашыя апытанні
+    keep_self_bookmark: Захаваць допісы, якія вы дадалі ў закладкі
+    keep_self_bookmark_hint: Не выдаляе вашыя допісы, якія вы дадалі ў закладкі
+    keep_self_fav: Пакідаць упадабаныя вамі допісы
+    keep_self_fav_hint: Не выдаляе вашыя допісы, якія вы ўпадабалі
     min_age:
       '1209600': 2 тыдні
       '15778476': 6 месяцаў
@@ -998,8 +1585,20 @@ be:
       '604800': 1 тыдзень
       '63113904': 2 гады
       '7889238': 3 месяцы
+    min_age_label: Тэрмін даўнасці
+    min_favs: Захаваць допісы, якія ўпадабалі хаця б
+    min_favs_hint: Не выдаляе вашыя допісы, якія спадабаліся прынамсі вызначанай колькасці людзей. Пакіньце гэтае поле пустым, каб допісы выдаляліся незалежна ад гэтай колькасці
+    min_reblogs: Захаваць допісы, якія пашырылі хаця б
+    min_reblogs_hint: Не выдаляе вашыя допісы, якія пашырыла прынамсі вызначаная колькасць людзей. Пакіньце гэтае поле пустым, каб допісы выдаляліся незалежна ад гэтай колькасці
   stream_entries:
     pinned: Замацаваны допіс
+    reblogged: пашыраны
+    sensitive_content: Далікатны змест
+  strikes:
+    errors:
+      too_late: Запозна абскарджваць гэтае папярэджанне
+  tags:
+    does_not_match_previous_name: не супадае з папярэднім імям
   themes:
     contrast: Mastodon (высокі кантраст)
     default: Mastodon (цёмная)
@@ -1007,41 +1606,108 @@ be:
   time:
     formats:
       default: "%d.%m.%Y %H:%M"
+      month: "%b %Y"
       time: "%H:%M"
   two_factor_authentication:
     add: Дадаць
+    disable: Адключыць 2FA
+    disabled_success: Двухфактарная аўтэнтыфікацыя адключана
     edit: Рэдагаваць
+    enabled: Двухфактарная аўтэнтыфікацыя ўключана
+    enabled_success: Двухфактарная аўтэнтыфікацыя ўключана
     generate_recovery_codes: Стварыць коды аднаўлення
     lost_recovery_codes: Коды аднаўлення дазволяць вам аднавіць доступ да вашага ўліковага запісу ў выпадку страты тэлефона. Калі вы згубілі вашыя коды, вы можаце стварыць новыя тут. Старыя коды аднаўлення будуць ануляваныя.
+    methods: Двухфактарныя метады
+    otp: Праграма аўтэнтыфікацыі
     recovery_codes: Абнавіць коды аднаўлення
     recovery_codes_regenerated: Новыя коды аднаўлення паспяхова створаныя
     recovery_instructions_html: Калі раптам вы страціце доступ да вашага тэлефона, вы можаце скарыстацца адным з кодаў аднаўлення ніжэй каб аднавіць доступ да вашага ўліковага запісу. <strong>Захоўвайце іх у бяспечным месцы</strong>. Напрыклад, вы можаце раздрукаваць іх і захоўваць разам з іншымі важнымі дакументамі.
     webauthn: Ключы бяспекі
   user_mailer:
+    appeal_approved:
+      action: Перайсці ў свой уліковы запіс
+      explanation: Апеляцыя на папярэджанне супраць вашага ўліковага запісу ад %{strike_date}, якую вы падалі %{appeal_date}, была ўхвалена. Ваш уліковы запіс зноў на добрым рахунку.
+      subject: Вашая апеляцыя ад %{date} была ўхваленая
+      title: Абскарджанне ўхвалена
+    appeal_rejected:
+      explanation: Апеляцыя на папярэджанне супраць вашага ўліковага запісу ад %{strike_date}, якую вы падалі %{appeal_date}, была адхілена.
+      subject: Вашая апеляцыя ад %{date} была адхіленая
+      title: Абскарджанне адхілена
+    backup_ready:
+      explanation: Вы запатрабавалі поўнае рэзервовае капіраванне вашага ўліковага запісу Mastodon. Цяпер яго можна спампаваць!
+      subject: Ваш архіў гатовы да спампавання
+      title: Ваш архіў можна спампаваць
+    suspicious_sign_in:
+      change_password: змяніць свой пароль
+      details: 'Вось падрабязнасці ўваходу:'
+      explanation: Мы заўважылі ўваход у ваш уліковы запіс з новага IP-адрасу.
+      further_actions_html: Калі гэта былі не вы, раім вам неадкладна %{action}, а таксама ўключыць двухфактарную аўтэнтыфікацыю, каб захаваць бяспеку вашага ўліковага запісу.
+      subject: У вас уліковы запіс зайшлі з новага IP-адрасу
+      title: Новы ўваход
     warning:
+      appeal: Падаць апеляцыю
+      appeal_description: "Калі вы лічыце гэта памылкай, вы можаце падаць апеляцыю \nсупрацоўнікам %{instance}."
       categories:
         spam: Спам
+        violation: Кантэнт парушае наступныя правілы супольнасці
       explanation:
         delete_statuses: Было выяўлена, што некаторыя з вашых допісаў парушалі адно або больш правілаў супольнасці і былі выдаленыя мадэратарамі суполкі %{instance}.
+        disable: Вы больш не можаце выкарыстоўваць свой уліковы запіс, але ваш профіль і іншыя даныя застаюцца некранутымі. Вы можаце запытаць рэзервовае капіраванне вашых даных, змяніць налады ўліковага запісу або выдаліць свой уліковы запіс.
         mark_statuses_as_sensitive: Некаторыя вашыя допісы былі пазначаныя як далікатныя мадэратарамі суполкі %{instance}. Гэта значыць, што іншым людзям давядзецца спачатку націснуць на медыя допісу каб праглядзець яго. Вы можаце ўласнаручна пазначыць медыя як далікатныя перад тым, як апублікаваць іх у будучым.
+        sensitive: Адгэтуль усе вашыя запампаваныя медыя файлы будуць пазначаны як далікатныя і будуць схаваныя па-за папярэджаннем.
         silence: Вы ўсё яшчэ можаце карыстаецца вашым уліковым запісам, але толькі ўжо падпісаныя на вас людзі змогуць бачыць вашыя публікацыі на серверы. Вы таксама можаце быць адхілены ад удзелу ў розных пошукавых функцыях, аднак іншыя ўсё роўна могуць уласнаручна падпісацца на вас.
         suspend: Вы больш не можаце выкарыстоўваць свой уліковы запіс, а профіль і іншыя даныя сталі недаступнымі. Вы ўсё яшчэ можаце ўвайсці, каб запытаць архіў сваіх даных да моманту іх выдалення праз 30 дзён, але мы захаваем вашы базавыя даныя, каб не даць вам абысці выключэнне.
+      reason: 'Прычына:'
       statuses: 'Прычынныя допісы:'
       subject:
         delete_statuses: Вашыя допісы на %{acct} былі выдалены
+        disable: Ваш уліковы запіс %{acct} быў замарожаны
         mark_statuses_as_sensitive: Вашыя допісы на %{acct} былі пазначаныя як далікатныя
+        none: Папярэджанне для %{acct}
         sensitive: З гэтага моманту вашыя допісы на %{acct} будуць пазначаныя як далікатныя
+        silence: Ваш уліковы запіс %{acct} быў абмежаваны
         suspend: Ваш уліковы запіс %{acct} быў выключаны
       title:
         delete_statuses: Выдаленыя допісы
+        disable: Уліковы запіс замарожаны
         mark_statuses_as_sensitive: Допісы, пазначыная як далікатныя
         none: Папярэджанне
+        sensitive: Уліковыя запісы, пазначаныя як далікатныя
+        silence: Уліковы запіс абмежаваны
         suspend: Уліковы запіс выключаны
     welcome:
+      edit_profile_action: Наладзіць профіль
+      edit_profile_step: Вы можаце наладзіць свой профіль, запампаваўшы выяву профілю, змяніўшы адлюстраванае імя і іншае. Вы можаце праглядаць новых падпісчыкаў, перш чым ім будзе дазволена падпісацца на вас.
       explanation: Вось некаторыя парады каб пачаць
       final_action: Пачаць пісаць
       final_step: 'Пачынайце пісаць! Нават, калі ў вас няма падпісчыкаў, іншыя людзі змогуць пабачыць вашыя допісы, напрыклад, у лакальнай стужцы, або праз хэштэгі. Калі хочаце, вы можаце прадставіцца праз хэштэг #introductions.'
+      full_handle: Ваш поўны маркер
+      full_handle_hint: Гэта тое, што вы дасце сваім сябрам, каб яны маглі адпраўляць паведамленні або падпісацца на вас з іншага сервера.
       subject: Вітаем у Mastodon
       title: Рады вітаць вас, %{name}!
+  users:
+    follow_limit_reached: Вы не можаце падпісацца на большую колькасць людзей чым %{limit}
+    invalid_otp_token: Няправільны код двухфактарнай аўтэнтыфікацыі
+    otp_lost_help_html: Калі вы страцілі доступ да абодвух, вы можаце скарыстацца %{email}
+    seamless_external_login: Вы ўвайшлі праз знешні сэрвіс, таму налады пароля і эл. пошты недаступныя.
+    signed_in_as: 'Увайшлі як:'
+  verification:
+    explanation_html: 'Вы можаце <strong>пацвердзіць сябе як уладальніка спасылак у метададзеных вашага профілю</strong>. Для гэтага спасылка на вэб-сайт павінна ўтрымліваць спасылку на ваш профіль Mastodon. Зваротная спасылка <strong>павінна</strong> мець атрыбут <code>rel="me"</code>. Тэкставы змест спасылкі не мае значэння. Вось прыклад:'
+    verification: Верыфікацыя
   webauthn_credentials:
+    add: Дадаць новы ключ бяспекі
+    create:
+      error: Узнікла праблема з даданнем ключа бяспекі. Паспрабуйце яшчэ раз.
+      success: Ваш ключ бяспекі быў паспяхова дададзены.
     delete: Выдаліць
+    delete_confirmation: Сапраўды выдаліць гэты ключ бяспекі?
+    description_html: Калі вы ўключыце <strong>аўтэнтыфікацыю ключа бяспекі</strong>, для ўваходу вам спатрэбіцца выкарыстоўваць адзін з вашых ключоў бяспекі.
+    destroy:
+      error: Узнікла праблема з выдаленнем ключа бяспекі. Паспрабуйце яшчэ раз.
+      success: Ваш ключ бяспекі быў паспяхова выдалены.
+    invalid_credential: Няправільны ключ бяспекі
+    nickname_hint: Увядзіце псеўданім вашага новага ключа бяспекі
+    not_enabled: Вы яшчэ не ўключылі WebAuthn
+    not_supported: Гэты браўзер не падтрымлівае ключы бяспекі
+    otp_required: Каб выкарыстоўваць ключы бяспекі, спачатку ўключыце двухфактарную аўтэнтыфікацыю.
+    registered_on: Зарэгістраваны %{date}
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index f1587f940..1d210f156 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -1,7 +1,7 @@
 ---
 bg:
   about:
-    about_mastodon_html: Mastodon е <em>безплатен</em> сървър с <em>отворен код</em> за социални мрежи. Като <em>децентрализирана</em> алтернатива на комерсиалните платформи, той позволява избягването на риска от монополизация на твоята комуникация от единични компании. Изберете си сървър, на който се доверявате, и ще можете да контактувате с всички останали. Всеки може да пусне Mastodon и лесно да вземе участие в <em>социалната мрежа</em>.
+    about_mastodon_html: 'Социалната мрежа на бъдещето: Без реклами, без корпоративно наблюдение, с етичен дизайн и децентрализация! Притежавайте своите данни с Mastodon!'
     contact_missing: Не е зададено
     contact_unavailable: Не е приложимо
     hosted_on: Mastodon е хостван на %{domain}
@@ -267,6 +267,9 @@ bg:
       new:
         create: Добавяне на домейн
       title: Блокирани домейни на имейл
+    export_domain_blocks:
+      import:
+        existing_relationships_warning: Съществуващи последвания
     follow_recommendations:
       language: За език
       status: Състояние
@@ -375,6 +378,7 @@ bg:
       appearance:
         title: Външен вид
       discovery:
+        public_timelines: Публични инфопотоци
         title: Откриване
         trends: Актуални
       registrations:
@@ -399,6 +403,19 @@ bg:
       original_status: Първообразна публикация
       visibility: Видимост
     trends:
+      links:
+        description_html: Това са линкове, които в момента са често споделяни от акаунти, чиито публикации вашият сървър вижда. Може да помогне на вашите потребители да разберат какво се случва по света. Никой линк няма да се покаже публично, докато не одобрите автора. Можете също и да одобрявате или забранявате отделни линкове.
+        shared_by_over_week:
+          one: Споделено от един човек през последната седмица
+          other: Споделено от %{count} хора през последната седмица
+        usage_comparison: Споделено %{today} пъти днес, в сравнение с %{yesterday} пъти вчера
+      preview_card_providers:
+        description_html: Това са домейни, линковете от които са често споделяни на вашия сървър. Линковете няма да се показват в нашумели, докато домейнът на линка не бъде одобрен. Вашите одобрения (забрани) влияят и на поддомейни.
+      statuses:
+        description_html: Това са публикациите, за които вашият сървър знае, че в момента са често споделяни или харесвани. Би помогнало на вашите нови и завръщащи се потребители да открият повече хора, които да последват. Никоя от публикациите няма да бъде показан публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предложен. Можете също да позволявате и забранявате отделни публикации.
+        shared_by:
+          one: Споделено или харесано един път
+          other: Споделено или харесано %{friendly_count} пъти
       tags:
         dashboard:
           tag_accounts_measure: неповторими употреби
@@ -467,6 +484,7 @@ bg:
       title: Настройка
     status:
       account_status: Състояние на акаунта
+      functional: Вашият акаунт е в изправност.
     use_security_key: Употреба на ключ за сигурност
   authorize_follow:
     already_following: Вече следвате този акаунт
@@ -535,11 +553,12 @@ bg:
     archive_takeout:
       date: Дата
       download: Изтегляне на архива ви
+      hint_html: Можете да поръчате архив с вашите <strong>публикации и качена мултимедия</strong>. Експортираните данни ще бъдат във формат ActivityPub, който е четим от всеки съвместим софтуер. Можете да поръчате такъв архив на всеки 7 дни.
       size: Размер
     blocks: Вашите блокирания
     bookmarks: Отметки
     lists: Списъци
-    mutes: Заглушихте
+    mutes: Заглушавания
     storage: Съхранение на мултимедия
   featured_tags:
     add_new: Добавяне на нов
@@ -547,7 +566,9 @@ bg:
   filters:
     contexts:
       account: Профили
+      home: Начало и списъци
       notifications: Известия
+      public: Публични инфопотоци
       thread: Разговори
     edit:
       add_keyword: Добавяне на ключова дума
@@ -607,15 +628,16 @@ bg:
       '604800': 1 седмица
       '86400': 1 ден
     expires_in_prompt: Никога
-    generate: Поражда връзка за покана
+    generate: Генериране на линк за покана
     invited_by: 'Бяхте поканени от:'
     max_uses:
-      one: 1 употреба
-      other: "%{count} употреби"
+      one: 1 използване
+      other: "%{count} използвания"
     max_uses_prompt: Без ограничение
-    prompt: Пораждане и споделяне на връзки с други за даване на достъп до този сървър
+    prompt: Генериране на линкове, които можете да споделите, за да предоставите достъп до този сървър
     table:
-      expires_at: Изтича
+      expires_at: Изтича на
+      uses: Използвания
     title: Поканете хора
   lists:
     errors:
@@ -686,7 +708,10 @@ bg:
           thousand: хил
           trillion: трлн
   otp_authentication:
+    code_hint: Въведете кода, генериран от вашето приложение за удостоверяване, за да потвърдите
+    description_html: Ако включите <strong>двустепенното удостоверяване</strong> с помощта на приложение за удостоверяване, всеки път, когато влизате, ще трябва да разполагате с телефона си, който ще генерира код за влизане.
     enable: Включване
+    instructions_html: "<strong>Сканирайте този QR код с Google Authenticator или подобно приложение от своя телефон</strong>. Oтсега нататък, това приложение ще генерира код, който ще трябва да въвеждате при всяко влизане."
     manual_instructions: 'Ако не може да сканирате QR-кода и трябва да го въведете ръчно, то ето го:'
     setup: Настройване
     wrong_code: Въведеният код е невалиден! Времето на сървъра и времето на устройството правилни ли са?
@@ -709,8 +734,8 @@ bg:
       too_many_options: не може да съдържа повече от %{max} елемента
   preferences:
     other: Друго
-    posting_defaults: Публикуване по подразбиране
-    public_timelines: Публични часови оси
+    posting_defaults: По подразбиране за публикации
+    public_timelines: Публични инфопотоци
   privacy_policy:
     title: Политика за поверителност
   reactions:
@@ -718,14 +743,16 @@ bg:
       limit_reached: Ограничението на различни реакции е достигнат
   relationships:
     activity: Дейност на акаунта
-    dormant: Спящо
+    dormant: Неактивен
+    follow_selected_followers: Последване на избраните последователи
     followers: Последователи
+    following: Последвани
     invited: С покана
     last_active: Последна дейност
     most_recent: Най-наскоро
-    moved: Преместено
+    moved: Преместен
     mutual: Взаимни
-    primary: Основно
+    primary: Основен
     relationship: Отношение
     remove_selected_domains: Премахване на всички последователи от избраните домейни
     remove_selected_followers: Премахване на избраните последователи
@@ -757,11 +784,12 @@ bg:
       otter: Otter
       phantom_js: PhantomJS
       qq: Браузър QQ
-      safari: Сафари
+      safari: Safari
       uc_browser: Браузър UC
       weibo: Weibo
     current_session: Текуща сесия
     description: "%{browser} на %{platform}"
+    explanation: Това са уеб браузърите, от които в момента сте влезли с вашия Mastodon акаунт.
     ip: IP адрес
     platforms:
       adobe_air: Adobe Air
@@ -776,6 +804,7 @@ bg:
       windows: Windows
       windows_mobile: Windows Mobile
       windows_phone: Windows Phone
+    revoke: Анулирaне
     title: Сесии
     view_authentication_history: Преглед на историята на удостоверяване на акаунта ви
   settings:
@@ -785,17 +814,18 @@ bg:
     authorized_apps: Упълномощени приложения
     back: Обратно към Mastodon
     delete: Изтриване на акаунта
-    development: Развой
+    development: Разработка
     edit_profile: Редактирай профила си
     export: Експортиране на данни
     featured_tags: Актуални хаштагове
     import: Импортиране
-    import_and_export: Внос и износ
+    import_and_export: Импортиране и експортиране
     migrate: Миграция на акаунта
     notifications: Известия
     preferences: Предпочитания
     profile: Профил
     relationships: Последвания и последователи
+    statuses_cleanup: Автоматично изтриване на публикации
     two_factor_authentication: Двустепенно удостоверяване
     webauthn_authentication: Ключове за сигурност
   statuses:
@@ -817,7 +847,7 @@ bg:
       other: 'съдържа непозволени хаштагове: %{tags}'
     edited_at_html: Редактирано на %{date}
     errors:
-      in_reply_not_found: Публикацията, на която се опитвате да отговорите не изглежда да съществува.
+      in_reply_not_found: Изглежда, че публикацията, на която се опитвате да отговорите, не съществува.
     open_in_web: Отвори в уеб
     over_character_limit: прехвърлен лимит от %{max} символа
     pin_errors:
@@ -838,18 +868,27 @@ bg:
     visibilities:
       direct: Директно
       private: Покажи само на последователите си
-      private_long: Показване само на последователи
+      private_long: Видими само за последователи
       public: Публично
-      public_long: Всеки може да вижда
+      public_long: Всеки ги вижда
       unlisted: Публично, но не показвай в публичния канал
+      unlisted_long: Всеки ги вижда, но са скрити от публичните инфопотоци
   statuses_cleanup:
     enabled: Автоматично изтриване на стари публикации
     enabled_hint: Автоматично изтрива публикациите ви щом достигнат указания възрастов праг, освен ако не съвпадне с някое от изключенията долу
     exceptions: Изключения
     explanation: Тъй като изтриването на публикации е скъпа операция, това се прави бавно във времето, когато сървърът иначе не е зает. Поради тази причина публикациите ви може да се изтрият известно време след като достигнат възрастовия праг.
-    ignore_favs: Пренебрегване на любими
+    ignore_favs: Игнориране на харесвания
+    ignore_reblogs: Игнориране на споделяния
     interaction_exceptions: Изключения въз основа на взаимодействия
-    keep_pinned: Държа на закачените публикации
+    interaction_exceptions_explanation: Забележете, че няма гаранция, че публикации ще бъдат изтрити, ако паднат под прага на брой харесвания/споделяния, след като са го надвишили.
+    keep_direct: Запазване на директните съобщения
+    keep_direct_hint: Директните ви съобщения не се изтриват
+    keep_pinned: Запазване на закачените публикации
+    keep_self_bookmark: Запазване на публикации, добавени в отметки
+    keep_self_bookmark_hint: Не се изтриват ваши публикации, ако сте ги добавили към отметки
+    keep_self_fav: Запазване на харесаните публикации
+    keep_self_fav_hint: Не се изтриват публикации, които сте харесали
     min_age:
       '1209600': 2 седмици
       '15778476': 6 месеца
@@ -860,6 +899,10 @@ bg:
       '63113904': 2 години
       '7889238': 3 месеца
     min_age_label: Възрастов праг
+    min_favs: Запазване на публикации с поне толкова харесвания
+    min_favs_hint: Не се изтриват ваши публикации, харесани поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой харесвания
+    min_reblogs: Запазване на публикации с поне толкова споделяния
+    min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой споделяния
   stream_entries:
     pinned: Закачена публикация
     reblogged: споделено
@@ -880,10 +923,13 @@ bg:
     edit: Редактиране
     enabled: Двуфакторното удостоверяване е включено
     enabled_success: Двуфакторното удостоверяване е успешно включено
-    generate_recovery_codes: Пораждане на кодове за възстановяване
+    generate_recovery_codes: Генериране на кодове за възстановяване
     lost_recovery_codes: Кодовете за възстановяване ви позволяват да възвърнете достъпа до акаунта си, ако загубите телефона си. Ако загубите кодовете си за възстановяване, то може да ги породите тук. Старите ви кодове за възстановяване ще станат невалидни.
     methods: Двуфакторни начини
     otp: Приложение за удостоверяване
+    recovery_codes: Резервни кодове за възстановяване
+    recovery_codes_regenerated: Успешно генериране на кодовете за възстановяване
+    recovery_instructions_html: Ако изгубите достъп до телефона си, можете да използвате кодовете за възстановяване по-долу, за да достъпите акаунта си. <strong>Запазете тези кодове на сигурно място</strong>. Например, можете да ги принтирате и да ги съхранявате заедно с други важни документи.
     webauthn: Ключове за сигурност
   user_mailer:
     appeal_approved:
@@ -908,6 +954,7 @@ bg:
       edit_profile_action: Настройване на профила
       explanation: Ето няколко стъпки за начало
       final_action: Начало на публикуване
+      final_step: 'Публикувайте! Дори без последователи, вашите публични публикации ще бъдат видени от други, например в местния инфопоток или под хаштагове. Не забравяйте да се представите с хаштаг #introductions.'
       subject: Добре дошли в Mastodon
       title: Добре дошли на борда, %{name}!
   users:
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index a4dd62e61..d40d17a2e 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -24,7 +24,7 @@ ca:
     posts_tab_heading: Publicacions
   admin:
     account_actions:
-      action: Realitzar acció
+      action: Realitza l'acció
       title: Fer l'acció de moderació a %{acct}
     account_moderation_notes:
       create: Crea nota
@@ -191,7 +191,7 @@ ca:
         destroy_email_domain_block: Esborra el bloqueig de domini de l'adreça de correu
         destroy_instance: Purga Domini
         destroy_ip_block: Eliminar regla IP
-        destroy_status: Esborra el tut
+        destroy_status: Elimina la publicació
         destroy_unavailable_domain: Esborra domini no disponible
         destroy_user_role: Destrueix Rol
         disable_2fa_user: Desactiva 2FA
@@ -313,7 +313,7 @@ ca:
       copy_failed_msg: No s'ha pogut fer una còpia local d'aquest emoji
       create_new_category: Crea una categoria nova
       created_msg: Emoji creat amb èxit!
-      delete: Suprimeix
+      delete: Elimina
       destroyed_msg: Emojo s'ha destruït amb èxit!
       disable: Inhabilita
       disabled: Desactivat
@@ -415,7 +415,7 @@ ca:
         one: "%{count} intent en la darrera setmana"
         other: "%{count} intents de registre en la darrera setmana"
       created_msg: S'ha creat el bloc de domini de correu electrònic
-      delete: Suprimeix
+      delete: Elimina
       dns:
         types:
           mx: Registre MX
@@ -528,7 +528,7 @@ ca:
     ip_blocks:
       add_new: Crear regla
       created_msg: S’ha afegit amb èxit la nova regla IP
-      delete: Suprimeix
+      delete: Elimina
       expires_in:
         '1209600': 2 setmanes
         '15778476': 6 mesos
@@ -544,7 +544,7 @@ ca:
       title: relacions del %{acct}
     relays:
       add_new: Afegiu un nou relay
-      delete: Esborra
+      delete: Elimina
       description_html: Un <strong>relay de federació</strong> és un servidor intermediari que intercanvia grans volums de publicacions públiques entre servidors que se subscriuen i publiquen en ell. <strong>Pot ajudar a servidors petits i mitjans a descobrir contingut del fedivers</strong>, no fent necessari que els usuaris locals manualment segueixin altres persones de servidors remots.
       disable: Inhabilita
       disabled: Desactivat
@@ -588,7 +588,7 @@ ca:
         none: Cap
       comment_description_html: 'Per a donar més informació, %{name} ha escrit:'
       created_at: Reportat
-      delete_and_resolve: Esborra les publicacions
+      delete_and_resolve: Elimina les publicacions
       forwarded: Reenviat
       forwarded_to: Reenviat a %{domain}
       mark_as_resolved: Marca com a resolt
@@ -599,7 +599,7 @@ ca:
         create: Afegir una nota
         create_and_resolve: Resol amb una nota
         create_and_unresolve: Reobre amb una nota
-        delete: Esborra
+        delete: Elimina
         placeholder: Descriu les accions que s'han pres o qualsevol altra actualització relacionada…
         title: Notes
       notes_description_html: Veu i deixa notes als altres moderadors i a tu mateix
@@ -632,7 +632,7 @@ ca:
         invites: Invitacions
         moderation: Moderació
         special: Especial
-      delete: Esborra
+      delete: Elimina
       description_html: Amb <strong>rols d'usuari</strong>, pots personalitzar quines funcions i àrees de Mastodon els teus usuaris poden accedir.
       edit: Editar el rol %{name}
       everyone: Permisos per defecte
@@ -684,7 +684,7 @@ ca:
       title: Rols
     rules:
       add_new: Afegir norma
-      delete: Suprimeix
+      delete: Elimina
       description_html: Tot i que molts diuen que han llegit les normes i estan d'acord amb els termes del servei, normalment no les llegeixen fins que surgeix un problema. <strong>Fes que sigui més fàcil veure les normes del teu servidor d'una ullada proporcionant-les en una llista de punts.</strong> Intenta mantenir les normes individuals curtes i senzilles però sense dividir-les en massa parts separades.
       edit: Edita la norma
       empty: Encara no s'han definit les normes del servidor.
@@ -744,10 +744,10 @@ ca:
         title: Contingut multimèdia
       metadata: Metadada
       no_status_selected: No s’han canviat els estatus perquè cap no ha estat seleccionat
-      open: Obrir tut
-      original_status: Tut original
+      open: Obre la publicació
+      original_status: Publicació original
       reblogs: Impulsos
-      status_changed: El tut ha canviat
+      status_changed: Publicació canviada
       title: Estats del compte
       trending: Tendència
       visibility: Visibilitat
@@ -807,7 +807,7 @@ ca:
         title: Mitjans
       rejected: Rebutjat
       statuses:
-        allow: Permet tut
+        allow: Permet publicació
         allow_account: Permet autor
         description_html: Aquests són tuts que el teu servidor veu i que ara mateix s'estan compartint i afavorint molt. Poden ajudar als teus nous usuaris i als que retornen a trobar més gent a qui seguir. Cap tut es mostra públicament fins que no aprovis l'autor i l'autor permeti que el seu compte sigui suggerit a altres. També pots acceptar o rebutjar tuts individualment.
         disallow: Rebutja tut
@@ -845,7 +845,7 @@ ca:
       trending: Tendència
     warning_presets:
       add_new: Afegir-ne un de nou
-      delete: Esborra
+      delete: Elimina
       edit_preset: Edita l'avís predeterminat
       empty: Encara no has definit cap preavís.
       title: Gestiona les configuracions predefinides dels avisos
@@ -918,7 +918,7 @@ ca:
       guide_link: https://crowdin.com/project/mastodon
       guide_link_text: Tothom hi pot contribuir.
     sensitive_content: Contingut sensible
-    toot_layout: Disseny del tut
+    toot_layout: Disseny de les publicacions
   application_mailer:
     notification_preferences: Canvia les preferències de correu
     salutation: "%{name},"
@@ -936,7 +936,7 @@ ca:
   auth:
     apply_for_account: Sol·licitar un compte
     change_password: Contrasenya
-    delete_account: Suprimeix el compte
+    delete_account: Elimina el compte
     delete_account_html: Si vols suprimir el compte pots <a href="%{path}">fer-ho aquí</a>. Se't demanarà confirmació.
     description:
       prefix_invited_by_user: "@%{name} t'ha invitat a unir-te a aquest servidor de Mastodon!"
@@ -1026,7 +1026,7 @@ ca:
     challenge_not_passed: La informació que has introduït no és correcta
     confirm_password: Introdueix la contrasenya actual per a verificar la identitat
     confirm_username: Escriu el teu nom d'usuari per a confirmar el procediment
-    proceed: Suprimeix el compte
+    proceed: Elimina el compte
     success_msg: El compte s'ha eliminat correctament
     warning:
       before: 'Abans de procedir si us plau llegeix amb cura aquestes notes:'
@@ -1055,11 +1055,11 @@ ca:
       description_html: Aquestes son accions preses contra el teu compte i avisos que se t'han enviat per l'equip de %{instance}.
       recipient: Dirigida a
       reject_appeal: Rebutja l'apel·lació
-      status: 'Tut #%{id}'
+      status: 'Publicació #%{id}'
       status_removed: Tut ja esborrat del sistema
       title: "%{action} del %{date}"
       title_actions:
-        delete_statuses: Eliminació del tut
+        delete_statuses: Eliminació de publicació
         disable: Congelació del compte
         mark_statuses_as_sensitive: Marcatge de les publicacions com a sensibles
         none: Avís
@@ -1127,7 +1127,7 @@ ca:
       invalid_context: Cap o el context proporcionat no és vàlid
     index:
       contexts: Filtres en %{contexts}
-      delete: Esborra
+      delete: Elimina
       empty: No hi tens cap filtre.
       expires_in: Expira en %{distance}
       expires_on: Expira el %{date}
@@ -1136,7 +1136,7 @@ ca:
         other: "%{count} paraules clau"
       statuses:
         one: "%{count} publicació"
-        other: "%{count} tuts"
+        other: "%{count} publicacions"
       statuses_long:
         one: "%{count} publicació individual ocultada"
         other: "%{count} publicacions individuals ocultades"
@@ -1163,7 +1163,7 @@ ca:
       other: Tots <strong>%{count}</strong> articles coincidents amb la teva cerca estan seleccionats.
     changes_saved_msg: Els canvis s'han desat correctament!
     copy: Copiar
-    delete: Esborra
+    delete: Elimina
     deselect: Desfer selecció
     none: Cap
     order_by: Ordena per
@@ -1350,7 +1350,7 @@ ca:
       too_many_options: no pot contenir més de %{max} opcions
   preferences:
     other: Altre
-    posting_defaults: Valors predeterminats del tut
+    posting_defaults: Valors per defecte de publicació
     public_timelines: Línies de temps públiques
   privacy_policy:
     title: Política de Privacitat
@@ -1383,7 +1383,7 @@ ca:
   rss:
     content_warning: 'Avís de contingut:'
     descriptions:
-      account: Tuts des de @%{acct}
+      account: Publicacions des de @%{acct}
       tag: 'Publicacions etiquetades #%{hashtag}'
   scheduled_statuses:
     over_daily_limit: Has superat el límit de %{limit} publicacions programades per a avui
@@ -1540,7 +1540,7 @@ ca:
     min_reblogs: Mantenir les publicacions impulsades més de
     min_reblogs_hint: No suprimeix cap de les teves publicacions que s'hagin impulsat més que aquest nombre de vegades. Deixa-ho en blanc per a suprimir les publicacions independentment del nombre d'impulsos que tinguin.
   stream_entries:
-    pinned: Tut fixat
+    pinned: Publicació fixada
     reblogged: ha impulsat
     sensitive_content: Contingut sensible
   strikes:
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index a63be45e4..94e529afa 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -27,7 +27,7 @@ cy:
       many: Postiadau
       one: Postiad
       other: Postiadau
-      two: Postiadu
+      two: Postiadau
       zero: Postiadau
     posts_tab_heading: Postiadau
   admin:
@@ -69,7 +69,7 @@ cy:
       disable_sign_in_token_auth: Analluogi dilysu tocynnau e-bost
       disable_two_factor_authentication: Diffodd 2FA
       disabled: Wedi rhewi
-      display_name: Enw arddangos
+      display_name: Enw sgrin
       domain: Parth
       edit: Golygu
       email: E-bost
@@ -203,7 +203,7 @@ cy:
         destroy_email_domain_block: Dileu gwaharddiad parth e-bost
         destroy_instance: Clirio Parth
         destroy_ip_block: Dileu rheol IP
-        destroy_status: Dileu Statws
+        destroy_status: Dileu Postiad
         destroy_unavailable_domain: Dileu Parth Ddim ar Gael
         destroy_user_role: Dinistrio Rôl
         disable_2fa_user: Diffodd 2FA
@@ -224,17 +224,17 @@ cy:
         resolve_report: Datrus Adroddiad
         sensitive_account: Cyfrif Grym-Sensitif
         silence_account: Cyfyngu Cyfrif
-        suspend_account: Gwahardd Cyfrif Dros Dro
+        suspend_account: Atal Cyfrif Dros Dro
         unassigned_report: Dadneilltuo Adroddiad
         unblock_email_account: Dadflocio cyfeiriad e-bost
         unsensitive_account: Dadwneud Cyfrif Grym-Sensitif
         unsilence_account: Dad-gyfyngu Cyfrif
-        unsuspend_account: Tynnu Gwahardd Cyfrif Dros Dro
+        unsuspend_account: Tynnu Ataliad Cyfrif Dros Dro
         update_announcement: Diweddaru Cyhoeddiad
         update_custom_emoji: Diweddaru Emoji Cyfaddas
         update_domain_block: Diweddaru'r Blocio Parth
         update_ip_block: Diweddaru rheol IP
-        update_status: Diweddaru Statws
+        update_status: Diweddaru Postiad
         update_user_role: Diweddaru Rôl
       actions:
         approve_appeal_html: Mae %{name} wedi cymeradwyo penderfyniad cymedroli gan %{target}
@@ -243,10 +243,10 @@ cy:
         change_email_user_html: Mae %{name} wedi newid cyfeiriad e-bost defnyddiwr %{target}
         change_role_user_html: Mae %{name} wedi newid rôl %{target}
         confirm_user_html: Mae %{name}  wedi cadarnhau cyfeiriad e-bost defnyddiwr %{target}
-        create_account_warning_html: Anfonodd %{name} rybudd at %{target}
+        create_account_warning_html: Mae %{name} wedi anfon rhybudd at %{target}
         create_announcement_html: Mae %{name} wedi creu cyhoeddiad newydd %{target}
         create_canonical_email_block_html: Mae %{name} wedi rhwystro e-bost gyda'r hash %{target}
-        create_custom_emoji_html: "%{name} wedi llwytho emoji newydd %{target}"
+        create_custom_emoji_html: Mae %{name} wedi llwytho emoji newydd %{target}
         create_domain_allow_html: Mae %{name} wedi caniatáu ffedereiddio â pharth %{target}
         create_domain_block_html: Mae %{name} wedi rhwystro parth %{target}
         create_email_domain_block_html: Mae %{name}  wedi rhwystro parth e-bost %{target}
@@ -637,7 +637,7 @@ cy:
       comment_description_html: 'I ddarparu rhagor o wybodaeth, ysgrifennodd %{name}:'
       created_at: Adroddwyd
       delete_and_resolve: Dileu postiadau
-      forwarded: Wedi'i Anfon Ymlaen
+      forwarded: Wedi'i anfon ymlaen
       forwarded_to: Wedi'i anfon ymlaen i %{domain}
       mark_as_resolved: Nodi fel wedi'i ddatrys
       mark_as_sensitive: Marcio fel sensitif
@@ -682,7 +682,7 @@ cy:
         administration: Gweinyddiaeth
         devops: DevOps
         invites: Gwahoddiadau
-        moderation: Cymedroil
+        moderation: Cymedroli
         special: Arbennig
       delete: 'Dileu:'
       description_html: Gyda <strong>rolau defnyddwyr</strong>, gallwch chi gyfaddasu pa swyddogaethau a meysydd o Mastodon y gall eich defnyddwyr gael mynediad iddyn nhw.
@@ -724,7 +724,7 @@ cy:
         manage_settings: Rheoli Gosodiadau
         manage_settings_description: Yn caniatáu i ddefnyddwyr newid gosodiadau gwefan
         manage_taxonomies: Rheoli Tacsonomeg
-        manage_taxonomies_description: Yn caniatáu i ddefnyddwyr adolygu cynnwys sy'n tueddu a diweddaru gosodiadau hashnodau
+        manage_taxonomies_description: Yn caniatáu i ddefnyddwyr adolygu cynnwys sy'n trendio a diweddaru gosodiadau hashnodau
         manage_user_access: Rheoli Mynediad Defnyddwyr
         manage_user_access_description: Yn caniatáu i ddefnyddwyr analluogi dilysu dau ffactor defnyddwyr eraill, newid eu cyfeiriad e-bost, ac ailosod eu cyfrinair
         manage_users: Rheoli Defnyddwyr
@@ -764,9 +764,9 @@ cy:
         follow_recommendations: Dilyn yr argymhellion
         preamble: Mae amlygu cynnwys diddorol yn allweddol ar gyfer derbyn defnyddwyr newydd nad ydynt efallai'n gyfarwydd ag unrhyw un Mastodon. Rheolwch sut mae nodweddion darganfod amrywiol yn gweithio ar eich gweinydd.
         profile_directory: Cyfeiriadur proffiliau
-        public_timelines: Llinellau amser cyhoeddus
+        public_timelines: Ffrydiau cyhoeddus
         title: Darganfod
-        trends: Pynciau Llosg
+        trends: Trendiau
       domain_blocks:
         all: I bawb
         disabled: I neb
@@ -799,13 +799,13 @@ cy:
       media:
         title: Cyfryngau
       metadata: Metaddata
-      no_status_selected: Heb newid statws gan na ddewiswyd dim un
-      open: Agor post
-      original_status: Post gwreiddiol
+      no_status_selected: Heb newid postiad gan na ddewiswyd dim un
+      open: Agor postiad
+      original_status: Postiad gwreiddiol
       reblogs: Ailflogiadau
-      status_changed: Post wedi'i newid
+      status_changed: Postiad wedi'i newid
       title: Postiadau cyfrif
-      trending: Trendio
+      trending: Yn trendio
       visibility: Gwelededd
       with_media: Gyda chyfryngau
     strikes:
@@ -856,23 +856,23 @@ cy:
           other: Wedi'i rannu gan %{count} o bobl dros yr wythnos ddiwethaf
           two: Wedi'i rannu gan %{count} o bobl dros yr wythnos ddiwethaf
           zero: Wedi'i rannu gan %{count} o bobl dros yr wythnos ddiwethaf
-        title: Dolenni sy'n tueddu
+        title: Dolenni sy'n trendio
         usage_comparison: Wedi'i rannu %{today} gwaith heddiw, o'i gymharu â %{yesterday} ddoe
       only_allowed: Derbyniwyd yn unig
       pending_review: Yn aros am adolygiad
       preview_card_providers:
         allowed: Gall dolenni gan y cyhoeddwr hwn greu tuedd
-        description_html: Mae'r rhain yn barthau lle mae dolenni'n cael eu rhannu'n aml ar eich gweinydd. Ni fydd dolenni'n dueddu'n gyhoeddus oni bai bod parth y ddolen yn cael ei gymeradwyo. Mae eich cymeradwyaeth (neu eich gwrthodiad) yn ymestyn i is-barthau.
+        description_html: Mae'r rhain yn barthau lle mae dolenni'n cael eu rhannu'n aml ar eich gweinydd. Ni fydd dolenni'n trendio'n gyhoeddus oni bai bod parth y ddolen yn cael ei gymeradwyo. Mae eich cymeradwyaeth (neu eich gwrthodiad) yn ymestyn i is-barthau.
         rejected: Ni fydd dolenni gan y cyhoeddwr hwn yn creu tuedd
         title: Cyhoeddwyr
       rejected: Gwrthodwyd
       statuses:
-        allow: Caniatáu post
+        allow: Caniatáu postiad
         allow_account: Caniatáu awdur
         description_html: Mae'r rhain yn bostiadau y mae eich gweinydd yn gwybod amdanyn nhw sy'n cael eu rhannu a'u ffafrio llawer ar hyn o bryd. Gall helpu eich defnyddwyr newydd a'ch defnyddwyr sy'n dychwelyd i ddod o hyd i fwy o bobl i'w dilyn. Ni chaiff unrhyw bostiadau eu dangos yn gyhoeddus nes i chi gymeradwyo'r awdur, ac mae'r awdur yn caniatáu i'w cyfrif gael ei awgrymu i eraill. Gallwch hefyd ganiatáu neu wrthod postiadau unigol.
-        disallow: Gwrthod post
+        disallow: Gwrthod postiad
         disallow_account: Gwrthod awdur
-        no_status_selected: Heb newid unrhyw negeseuon tuedd gan na chafodd yr un ohonyn nhw eu dewis
+        no_status_selected: Heb newid unrhyw bostiadau'n trendio gan na chafodd yr un ohonyn nhw eu dewis
         not_discoverable: Nid yw'r awdur wedi dewis bod yn ddarganfyddadwy
         shared_by:
           few: Wedi'i rannu a'i ffefrynnu %{friendly_count} gwaith
@@ -894,12 +894,12 @@ cy:
         listable: Mae modd ei awgrymu
         no_tag_selected: Heb newid unrhyw dagiau gan na chafodd yr un ohonyn nhw eu dewis
         not_listable: Ni fydd yn cael ei awgrymu
-        not_trendable: Ni fydd yn ymddangos o dan bynciau llosg
+        not_trendable: Ni fydd yn ymddangos o dan trendiau
         not_usable: Nid oes modd ei ddefnyddio
         peaked_on_and_decaying: Ar ei anterth ar %{date}, bellach yn lleihau
-        title: Hashnodau tueddiadau
-        trendable: Gall ymddangos o dan bynciau llosg
-        trending_rank: 'Yn tueddu #%{rank}'
+        title: Hashnodau trendiau
+        trendable: Gall ymddangos o dan trendiau
+        trending_rank: 'Yn trendio #%{rank}'
         usable: Mae modd ei ddefnyddio
         usage_comparison: Wedi'i ddefnyddio %{today} gwaith heddiw, o'i gymharu â %{yesterday} ddoe
         used_by_over_week:
@@ -909,7 +909,7 @@ cy:
           other: Wedi'i ddefnyddio gan %{count} o bobl dros yr wythnos ddiwethaf
           two: Wedi'i ddefnyddio gan %{count} o bobl dros yr wythnos ddiwethaf
           zero: Wedi'i ddefnyddio gan %{count} o bobl dros yr wythnos ddiwethaf
-      title: Pynciau Llosg
+      title: Trendiau
       trending: Trendio
     warning_presets:
       add_new: Ychwanegu newydd
@@ -964,7 +964,7 @@ cy:
     new_trends:
       body: 'Mae angen adolygu''r eitemau canlynol cyn y mae modd eu dangos yn gyhoeddus:'
       new_trending_links:
-        title: Dolenni llosg
+        title: Dolenni sy'n trendio
       new_trending_statuses:
         title: Postiadau sy'n trendio
       new_trending_tags:
@@ -981,7 +981,7 @@ cy:
     remove: Dadgysylltu'r enw arall
   appearance:
     advanced_web_interface: Rhyngwyneb gwe uwch
-    advanced_web_interface_hint: 'Os ydych chi am ddefnyddio lled eich sgrin gyfan, mae''r rhyngwyneb gwe datblygedig yn caniatáu i chi ffurfweddu llawer o wahanol golofnau i weld faint bynnag o wybodaeth ar yr un pryd ag y dymunwch: Cartref, hysbysiadau, llinell amser ffederaleiddiwyd, faint bynnag o restrau a hashnodau.'
+    advanced_web_interface_hint: 'Os ydych chi am ddefnyddio lled eich sgrin gyfan, mae''r rhyngwyneb gwe datblygedig yn caniatáu i chi ffurfweddu llawer o wahanol golofnau i weld faint bynnag o wybodaeth ar yr un pryd ag y dymunwch: Cartref, hysbysiadau, ffrydiau ffederaleiddiwyd, faint bynnag o restrau a hashnodau.'
     animations_and_accessibility: Animeiddiadau a hygyrchedd
     confirmation_dialogs: Deialogau cadarnhau
     discovery: Darganfod
@@ -997,7 +997,7 @@ cy:
     settings: 'Newid gosodiadau e-bost: %{link}'
     view: 'Gweld:'
     view_profile: Gweld proffil
-    view_status: Gweld statws
+    view_status: Gweld postiad
   applications:
     created: Cais wedi ei greu'n llwyddiannus
     destroyed: Cais wedi ei ddileu'n llwyddiannus
@@ -1082,7 +1082,7 @@ cy:
       with_month_name: "%b %d %Y"
   datetime:
     distance_in_words:
-      about_x_hours: "%{count}awr"
+      about_x_hours: "%{count}a"
       about_x_months: "%{count}mis"
       about_x_years: "%{count}b"
       almost_x_years: "%{count}b"
@@ -1131,7 +1131,7 @@ cy:
       status_removed: Postiad sydd eisoes wedi'i dynnu o'r system
       title: "%{action} gan %{date}"
       title_actions:
-        delete_statuses: Dileu post
+        delete_statuses: Dileu postiad
         disable: Rhewi cyfrif
         mark_statuses_as_sensitive: Marcio postiadau fel rhai sensitif
         none: Rhybudd
@@ -1186,7 +1186,7 @@ cy:
       account: Proffilau
       home: Cartref a rhestrau
       notifications: Hysbysiadau
-      public: Llinellau amser cyhoeddus
+      public: Ffrydiau cyhoeddus
       thread: Sgyrsiau
     edit:
       add_keyword: Ychwanegu allweddair
@@ -1236,7 +1236,7 @@ cy:
         hint: Mae'r hidlydd hwn yn berthnasol i ddethol postiadau unigol waeth beth fo'r meini prawf eraill. Gallwch ychwanegu mwy o bostiadau at yr hidlydd hwn o'r rhyngwyneb gwe.
         title: Postiadau wedi'u hidlo
   footer:
-    trending_now: Pynciau llosg
+    trending_now: Trendiau
   generic:
     all: Popeth
     all_items_on_page_selected_html:
@@ -1375,7 +1375,7 @@ cy:
     title: Cymedroil
   move_handler:
     carry_blocks_over_text: Symudodd y defnyddiwr hwn o %{acct}, yr oeddech wedi'i rwystro.
-    carry_mutes_over_text: Wnaeth y defnyddiwr symud o %{acct}, a oeddech chi wedi'i anwybyddu.
+    carry_mutes_over_text: Symudodd y defnyddiwr hwn o %{acct}, lle roeddech chi wedi'i dewi.
     copy_account_note_text: 'Symudodd y defnyddiwr hwn o %{acct}, dyma oedd eich nodiadau blaenorol amdanynt:'
   navigation:
     toggle_menu: Toglo'r ddewislen
@@ -1386,8 +1386,8 @@ cy:
       sign_up:
         subject: Mae %{name} wedi cofrestru
     favourite:
-      body: 'Cafodd eich statws ei hoffi gan %{name}:'
-      subject: Hoffodd %{name} eich statws
+      body: 'Cafodd eich postiad ei hoffi gan %{name}:'
+      subject: Hoffodd %{name} eich postiad
       title: Ffefryn newydd
     follow:
       body: Mae %{name} bellach yn eich dilyn!
@@ -1404,7 +1404,7 @@ cy:
       subject: Cawsoch eich crybwyll gan %{name}
       title: Crywbylliad newydd
     poll:
-      subject: Mae arolwg barn gan %{name} wedi dod i ben
+      subject: Mae arolwg gan %{name} wedi dod i ben
     reblog:
       body: 'Cafodd eich postiad ei hybu gan %{name}:'
       subject: Rhoddodd %{name} hwb i'ch postiad
@@ -1443,11 +1443,11 @@ cy:
     truncate: "&hellip;"
   polls:
     errors:
-      already_voted: Rydych chi barod wedi pleidleisio ar y pleidlais hon
+      already_voted: Rydych chi eisoes wedi pleidleisio ar yr arolwg hwn
       duplicate_options: yn cynnwys eitemau dyblyg
       duration_too_long: yn rhy bell yn y dyfodol
       duration_too_short: yn rhy fuan
-      expired: Mae'r arolwg barn eisoes wedi dod i ben
+      expired: Mae'r arolwg eisoes wedi dod i ben
       invalid_choice: Nid yw'r dewis pleidlais hyn yn bodoli
       over_character_limit: ni all fod yn hwy na %{max} nod yr un
       too_few_options: rhaid cael mwy nag un eitem
@@ -1616,7 +1616,7 @@ cy:
         one: "%{count} bleidlais"
         other: "%{count} pleidlais"
         two: "%{count} pleidlais"
-        zero: "%{count} o pleidleisiau"
+        zero: "%{count} o bleidleisiau"
       vote: Pleidlais
     show_more: Dangos mwy
     show_newer: Dangos y diweddaraf
@@ -1631,7 +1631,7 @@ cy:
       public: Cyhoeddus
       public_long: Gall pawb weld
       unlisted: Heb ei restru
-      unlisted_long: Gall pawb weld, ond heb eu rhestru ar linellau amser cyhoeddus
+      unlisted_long: Gall pawb weld, ond heb eu rhestru ar ffrydiau cyhoeddus
   statuses_cleanup:
     enabled: Dileu hen bostiadau'n awtomatig
     enabled_hint: Yn dileu eich postiadau yn awtomatig ar ôl iddyn nhw gyrraedd trothwy oed penodedig, oni bai eu bod yn cyfateb i un o'r eithriadau isod
@@ -1640,15 +1640,15 @@ cy:
     ignore_favs: Anwybyddu ffefrynnau
     ignore_reblogs: Anwybyddu hybiau
     interaction_exceptions: Eithriadau yn seiliedig ar ryngweithio
-    interaction_exceptions_explanation: Sylwch nad oes unrhyw sicrwydd y bydd postiadau'n cael eu dileu os ydyn nhw'n mynd o dan y trothwy ffefrynnau neu fwstio ar ôl mynd drostyn nhw unwaith.
+    interaction_exceptions_explanation: Sylwch nad oes unrhyw sicrwydd y bydd postiadau'n cael eu dileu os ydyn nhw'n mynd o dan y trothwy ffefrynnau neu hybu ar ôl mynd drostyn nhw unwaith.
     keep_direct: Cadw negeseuon uniongyrchol
     keep_direct_hint: Nid yw'n dileu unrhyw un o'ch negeseuon uniongyrchol
     keep_media: Cadw postiadau gydag atodiadau cyfryngau
     keep_media_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd ag atodiadau cyfryngau
     keep_pinned: Cadw postiadau wedi'u pinio
     keep_pinned_hint: Nid yw'n dileu unrhyw un o'ch postiadau wedi'u pinio
-    keep_polls: Cadw polau
-    keep_polls_hint: Nid yw'n dileu unrhyw un o'ch polau
+    keep_polls: Cadw arolygon
+    keep_polls_hint: Nid yw'n dileu unrhyw un o'ch arolygon
     keep_self_bookmark: Cadw y postiadau wedi'u cadw fel nodau tudalen
     keep_self_bookmark_hint: Nid yw'n dileu eich postiadau eich hun os ydych wedi rhoi nod tudalen arnyn nhw
     keep_self_fav: Cadw'r postiadau yr oeddech yn eu ffefrynnu
@@ -1663,7 +1663,7 @@ cy:
       '63113904': 2 flynedd
       '7889238': 3 mis
     min_age_label: Trothwy oedran
-    min_favs: Cadw postiadau ffafriwyd m o leiaf
+    min_favs: Cadw postiadau ffafriwyd am o leiaf
     min_favs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi derbyn o leiaf y swm hwn o ffefrynnau. Gadewch yn wag i ddileu postiadau waeth beth fo'u ffefrynnau
     min_reblogs: Cadw postiadau wedi eu hybu o leiaf
     min_reblogs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi cael eu hybu o leiaf y nifer hwn o weithiau. Gadewch yn wag i ddileu postiadau waeth beth fo'u nifer o hybiadau
@@ -1751,13 +1751,13 @@ cy:
         none: Rhybudd
         sensitive: Cyfrif wedi'i nodi'n sensitif
         silence: Cyfrif cyfyngedig
-        suspend: Cyfrif wedi'i rewi
+        suspend: Cyfrif wedi'i atal
     welcome:
       edit_profile_action: Sefydlu proffil
       edit_profile_step: Gallwch addasu'ch proffil trwy lwytho llun proffil, newid eich enw dangos a mwy. Gallwch ddewis i adolygu dilynwyr newydd cyn iddyn nhw gael caniatâd i'ch dilyn.
       explanation: Dyma ambell nodyn i'ch helpu i ddechrau
       final_action: Dechrau postio
-      final_step: 'Dechreuwch bostio! Hyd yn oed heb ddilynwyr, efallai y bydd eraill yn gweld eich postiadau cyhoeddus, er enghraifft ar y llinell amser leol neu mewn hashnodau. Efallai y byddwch am gyflwyno eich hun ar yr hashnod #cyflwyniadau neu/a #introductions.'
+      final_step: 'Dechreuwch bostio! Hyd yn oed heb ddilynwyr, efallai y bydd eraill yn gweld eich postiadau cyhoeddus, er enghraifft ar y ffrwd leol neu mewn hashnodau. Efallai y byddwch am gyflwyno eich hun ar yr hashnod #cyflwyniadau neu/a #introductions.'
       full_handle: Eich enw llawn
       full_handle_hint: Dyma beth fyddech chi'n ei ddweud wrth eich ffrindiau fel y gallant anfon neges neu eich dilyn o weinydd arall.
       subject: Croeso i Mastodon
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 054562fe6..c66a01153 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -10,7 +10,7 @@ da:
     follow: Følg
     followers:
       one: Følger
-      other: Følgere
+      other: tilhængere
     following: Følger
     instance_actor_flash: Denne konto er en virtuel aktør repræsenterende selve serveren og ikke en individuel bruger. Den anvendes til fællesformål og bør ikke suspenderes.
     last_active: senest aktiv
@@ -373,6 +373,8 @@ da:
       add_new: Tillade federering med domæne
       created_msg: Domæne er blevet tilladt for federering
       destroyed_msg: Domæne er blevet forbudt for federering
+      export: Eksportér
+      import: Importér
       undo: Forbyd federering med domæne
     domain_blocks:
       add_new: Tilføj ny domæneblokering
@@ -382,6 +384,8 @@ da:
       edit: Redigér domæneblokering
       existing_domain_block: "%{name} er allerede pålagt strengere restriktioner."
       existing_domain_block_html: Der har allerede pålagt %{name} strengere begrænsninger, så dette kræver først en <a href="%{unblock_url}">afblokering</a>.
+      export: Eksportér
+      import: Importér
       new:
         create: Opret blokering
         hint: Domæneblokeringen vil ikke forhindre oprettelse af kontoposter i databasen, men vil retroaktivt og automatisk føje særlige moderationsmetoder til disse konti.
@@ -425,6 +429,8 @@ da:
       resolved_through_html: Opløst via %{domain}
       title: Blokerede e-maildomæner
     export_domain_allows:
+      new:
+        title: Importeret domæne tillader
       no_file: Ingen fil valgt
     export_domain_blocks:
       import:
@@ -435,6 +441,7 @@ da:
         title: Import af domæneblokeringer
       new:
         title: Import af domæneblokeringer
+      no_file: Ingen fill udvalgt
     follow_recommendations:
       description_html: "<strong>Følg-anbefalinger hjælpe nye brugere til hurtigt at finde interessant indhold</strong>. Når en bruger ikke har interageret nok med andre til at generere personlige følg-anbefalinger, anbefales disse konti i stedet. De revurderes dagligt baseret på en blanding af konti med de flest nylige engagementer og fleste lokale følger-antal for et givet sprog."
       language: For sprog
@@ -1261,7 +1268,7 @@ da:
       other_data: Ingen øvrige data flyttes automatisk
       redirect: Din nuværende kontoprofil opdateres med en omdirigeringsnotits og ekskluderes fra søgninger
   moderation:
-    title: Moderatering
+    title: Moderation
   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.
@@ -1410,6 +1417,7 @@ da:
     platforms:
       adobe_air: Adobe Air
       android: Android
+      blackberry: BlackBerry
       chrome_os: ChromeOS
       firefox_os: Firefox OS
       ios: iOS
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 47dcb29d6..8a12a3047 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -45,13 +45,13 @@ de:
         submit: E-Mail-Adresse ändern
         title: E-Mail-Adresse für %{username} ändern
       change_role:
-        changed_msg: Benutzer*innen-Rechte erfolgreich aktualisiert!
+        changed_msg: Rolle erfolgreich geändert!
         label: Rolle ändern
-        no_role: Keine Benutzer*innen-Rechte
-        title: Benutzer*innen-Rechte für %{username} bearbeiten
+        no_role: Keine Rolle
+        title: Rolle für %{username} ändern
       confirm: Bestätigen
       confirmed: Bestätigt
-      confirming: Verifiziert
+      confirming: Bestätigung
       custom: Angepasst
       delete: Daten löschen
       deleted: Gelöscht
@@ -147,8 +147,8 @@ de:
       subscribe: Abonnieren
       suspend: Sperren
       suspended: Gesperrt
-      suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. Du kannst das Konto aufheben, um es wieder brauchbar zu machen, aber es wird keine Daten wiederherstellen, die es davor hatte.
-      suspension_reversible_hint_html: Das Konto wurde gesperrt und die Daten werden am %{date} vollständig gelöscht. Bis dahin kann das Konto ohne irgendwelche negativen Auswirkungen wiederhergestellt werden. Wenn du alle Daten des Kontos sofort entfernen möchtest, kannst du dies nachfolgend tun.
+      suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. Du kannst das Konto entsperren, um es wieder nutzbar zu machen, aber es wird keine Daten wiederherstellen, die es davor hatte.
+      suspension_reversible_hint_html: Das Konto wurde gesperrt und die Daten werden am %{date} vollständig gelöscht. Bis dahin kann das Konto ohne irgendwelche negativen Auswirkungen wiederhergestellt werden. Wenn du alle Daten des Kontos sofort entfernen möchtest, kannst du das nachfolgend tun.
       title: Konten
       unblock_email: E-Mail-Adresse entsperren
       unblocked_email_msg: E-Mail-Adresse von %{username} erfolgreich entsperrt
@@ -177,17 +177,17 @@ de:
         create_canonical_email_block: E-Mail-Sperre erstellen
         create_custom_emoji: Eigene Emojis erstellen
         create_domain_allow: Domain erlauben
-        create_domain_block: Domain blockieren
-        create_email_domain_block: E-Mail-Domainsperre erstellen
+        create_domain_block: Domain sperren
+        create_email_domain_block: E-Mail-Domain-Sperre erstellen
         create_ip_block: IP-Regel erstellen
         create_unavailable_domain: Nicht verfügbare Domain erstellen
         create_user_role: Rolle erstellen
         demote_user: Benutzer*in herabstufen
         destroy_announcement: Ankündigung löschen
-        destroy_canonical_email_block: E-Mail-Blockade löschen
+        destroy_canonical_email_block: E-Mail-Sperre entfernen
         destroy_custom_emoji: Eigenes Emojis löschen
         destroy_domain_allow: Erlaube das Löschen von Domains
-        destroy_domain_block: Domainsperre löschen
+        destroy_domain_block: Domain-Sperre entfernen
         destroy_email_domain_block: E-Mail-Domain-Sperre löschen
         destroy_instance: Domain-Daten entfernen
         destroy_ip_block: IP-Regel löschen
@@ -220,7 +220,7 @@ de:
         unsuspend_account: Konto nicht mehr sperren
         update_announcement: Ankündigung aktualisieren
         update_custom_emoji: Eigenes Emoji aktualisieren
-        update_domain_block: Domainsperre aktualisieren
+        update_domain_block: Domain-Sperre aktualisieren
         update_ip_block: IP-Regel aktualisieren
         update_status: Beitrag aktualisieren
         update_user_role: Rolle aktualisieren
@@ -236,9 +236,9 @@ de:
         create_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} gesperrt"
         create_custom_emoji_html: "%{name} hat neues Emoji hochgeladen: %{target}"
         create_domain_allow_html: "%{name} hat die Domain %{target} gewhitelistet"
-        create_domain_block_html: "%{name} hat die Domain %{target} blockiert"
+        create_domain_block_html: "%{name} hat die Domain %{target} gesperrt"
         create_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} gesperrt"
-        create_ip_block_html: "%{name} hat eine Regel für IP %{target} erstellt"
+        create_ip_block_html: "%{name} hat eine IP-Regel für %{target} erstellt"
         create_unavailable_domain_html: "%{name} hat die Lieferung an die Domain %{target} eingestellt"
         create_user_role_html: "%{name} hat die Rolle %{target} erstellt"
         demote_user_html: "%{name} hat %{target} heruntergestuft"
@@ -246,10 +246,10 @@ de:
         destroy_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} entsperrt"
         destroy_custom_emoji_html: "%{name} hat das Emoji gelöscht: %{target}"
         destroy_domain_allow_html: "%{name} hat die Domain %{target} von der Whitelist entfernt"
-        destroy_domain_block_html: "%{name} hat die Domain %{target} entblockt"
+        destroy_domain_block_html: "%{name} hat die Domain %{target} entsperrt"
         destroy_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} entsperrt"
         destroy_instance_html: "%{name} hat die Daten der Domain %{target} entfernt"
-        destroy_ip_block_html: "%{name} hat eine Regel für IP %{target} gelöscht"
+        destroy_ip_block_html: "%{name} hat eine IP-Regel für %{target} entfernt"
         destroy_status_html: "%{name} hat einen Beitrag von %{target} entfernt"
         destroy_unavailable_domain_html: "%{name} setzte die Lieferung an die Domain %{target} fort"
         destroy_user_role_html: "%{name} hat die Rolle %{target} gelöscht"
@@ -279,7 +279,7 @@ de:
         unsuspend_account_html: "%{name} hat die Kontosperre von %{target} aufgehoben"
         update_announcement_html: "%{name} aktualisierte Ankündigung %{target}"
         update_custom_emoji_html: "%{name} hat das Emoji geändert: %{target}"
-        update_domain_block_html: "%{name} hat den Domain-Block für %{target} aktualisiert"
+        update_domain_block_html: "%{name} hat die Domain-Sperre für %{target} aktualisiert"
         update_ip_block_html: "%{name} hat die Regel für IP %{target} geändert"
         update_status_html: "%{name} hat einen Beitrag von %{target} aktualisiert"
         update_user_role_html: "%{name} hat die Rolle %{target} geändert"
@@ -377,55 +377,55 @@ de:
       import: Importieren
       undo: Von der Whitelist entfernen
     domain_blocks:
-      add_new: Neue Domainblockade hinzufügen
-      created_msg: Die Domain ist jetzt blockiert bzw. eingeschränkt
-      destroyed_msg: Die Domainsperre wurde rückgängig gemacht
+      add_new: Neue Domain-Sperre hinzufügen
+      created_msg: Die Domain ist jetzt gesperrt bzw. eingeschränkt
+      destroyed_msg: Die Domain-Sperre wurde aufgehoben
       domain: Domain
-      edit: Domainsperre bearbeiten
+      edit: Domain-Sperre bearbeiten
       existing_domain_block: Du hast %{name} bereits stärker eingeschränkt.
       existing_domain_block_html: Du hast bereits strengere Beschränkungen für die Domain %{name} verhängt. Du musst diese erst <a href="%{unblock_url}">aufheben</a>.
       export: Exportieren
       import: Importieren
       new:
-        create: Blockade einrichten
+        create: Sperre einrichten
         hint: Die Domainsperre wird nicht verhindern, dass Konteneinträge in der Datenbank erstellt werden, sondern rückwirkend und automatisch alle Moderationsmethoden auf diese Konten anwenden.
         severity:
           desc_html: "<strong>Stummschaltung</strong> wird die Beiträge von Konten unter dieser Domain für alle unsichtbar machen, die den Konten nicht folgen. Eine <strong>Sperre</strong> wird alle Inhalte, Medien und Profildaten für Konten dieser Domain von deinem Server entfernen. Verwende <strong>keine,</strong> um nur Mediendateien abzulehnen."
           noop: Kein
           silence: Stummschaltung
           suspend: Sperren
-        title: Neue Domainsperre
-      no_domain_block_selected: Keine Domains blockiert, weil keine ausgewählt wurde
-      not_permitted: Du bist nicht berechtigt, diese Aktion durchzuführen
-      obfuscate: Domainname verschleiern
-      obfuscate_hint: Den Domainnamen in der Liste teilweise verschleiern, wenn die Liste der Domänenbeschränkungen aktiviert ist
-      private_comment: Privater Kommentar
+        title: Neue Domain-Sperre
+      no_domain_block_selected: Keine Domains gesperrt, weil keine ausgewählt wurde(n)
+      not_permitted: Dir ist es nicht erlaubt, diese Handlung durchzuführen
+      obfuscate: Domain-Name verschleiern
+      obfuscate_hint: Den Domain-Namen öffentlich nur teilweise bekannt geben, sofern die Liste der Domain-Beschränkungen aktiviert ist
+      private_comment: Private bzw. nicht-öffentliche Notiz
       private_comment_hint: Kommentar zu dieser Domain-Beschränkung für die interne Nutzung durch die Moderator*innen.
-      public_comment: Öffentlicher Kommentar
-      public_comment_hint: Kommentar zu dieser Domain-Beschränkung für die allgemeine Öffentlichkeit, wenn das Veröffentlichen der Blockliste aktiviert ist.
+      public_comment: Öffentliche Notiz
+      public_comment_hint: Öffentlicher Hinweis zu dieser Domain-Beschränkung, sofern das Veröffentlichen von Sperrlisten grundsätzlich aktiviert ist.
       reject_media: Mediendateien ablehnen
       reject_media_hint: Entfernt lokal gespeicherte Mediendateien und verhindert deren künftiges Herunterladen. Für Sperren irrelevant
       reject_reports: Meldungen ablehnen
-      reject_reports_hint: Ignoriere alle Meldungen von dieser Domain. Irrelevant für Sperrungen
-      undo: Domainsperre rückgängig machen
-      view: Domainsperre ansehen
+      reject_reports_hint: Alle Meldungen von dieser Domain ignorieren. Irrelevant für Sperrungen.
+      undo: Domain-Sperre aufheben
+      view: Domain-Sperre ansehen
     email_domain_blocks:
       add_new: Neue hinzufügen
       attempts_over_week:
-        one: "%{count} Registrierungsversuch in der letzten Woche"
-        other: "%{count} Registrierungsversuche in der letzten Woche"
+        one: "%{count} Registrierungsversuch in der vergangenen Woche"
+        other: "%{count} Registrierungsversuche in der vergangenen Woche"
       created_msg: E-Mail-Domain erfolgreich gesperrt
-      delete: Löschen
+      delete: Entfernen
       dns:
         types:
-          mx: MX-Record
+          mx: MX-RR-Eintrag
       domain: Domain
       new:
         create: E-Mail-Domain hinzufügen
         resolve: Domain auflösen
         title: Neue E-Mail-Domain sperren
-      no_email_domain_block_selected: Keine E-Mail-Domainsperren wurden geändert, da keine ausgewählt wurden
-      resolved_dns_records_hint_html: Der Domain-Name wird an die folgenden MX-Domains aufgelöst, die letztendlich für die Annahme von E-Mails verantwortlich sind. Das Blockieren einer MX-Domain blockiert Anmeldungen von jeder E-Mail-Adresse, welche dieselbe MX-Domain verwendet, auch wenn der sichtbare Domainname anders ist. <strong>Achte darauf, große E-Mail-Anbieter nicht zu blockieren.</strong>
+      no_email_domain_block_selected: Keine E-Mail-Domain-Sperren wurden geändert, da keine ausgewählt wurden
+      resolved_dns_records_hint_html: Der Domain-Name wird an die folgenden MX-Domains aufgelöst, die letztendlich für die Annahme von E-Mails zuständig sind. Das Sperren einer MX-Domain sperrt Anmeldungen aller E-Mail-Adressen, die dieselbe MX-Domain verwenden, auch wenn die sichtbare Domain anders lautet. <strong>Achte daher darauf, große E-Mail-Anbieter versehentlich nicht auszusperren.</strong>
       resolved_through_html: Durch %{domain} aufgelöst
       title: Gesperrte E-Mail-Domains
     export_domain_allows:
@@ -434,13 +434,13 @@ de:
       no_file: Keine Datei ausgewählt
     export_domain_blocks:
       import:
-        description_html: Du bist dabei, eine Liste von Domainsperren zu importieren. Bitte überprüfe diese Liste sehr sorgfältig, insbesondere wenn du sie nicht selbst erstellt hast.
+        description_html: Du bist dabei, eine Liste von Domain-Sperren zu importieren. Bitte überprüfe diese Liste sehr sorgfältig, insbesondere dann, wenn du sie nicht selbst erstellt hast.
         existing_relationships_warning: Bestehende Folgebeziehungen
-        private_comment_description_html: 'Damit du nachvollziehen kannst, woher die importierten Sperren stammen, werden diese mit dem folgenden privaten Kommentar erstellt: <q>%{comment}</q>'
+        private_comment_description_html: 'Damit du später nachvollziehen kannst, woher die importierten Sperren stammen, kannst du diesem Eintrag eine private Notiz hinzufügen: <q>%{comment}</q>'
         private_comment_template: Importiert von %{source} am %{date}
-        title: Domainsperren importieren
+        title: Domain-Sperren importieren
       new:
-        title: Domainsperren importieren
+        title: Domain-Sperren importieren
       no_file: Keine Datei ausgewählt
     follow_recommendations:
       description_html: "<strong>Folgeempfehlungen helfen neuen Nutzer*innen, interessante Inhalte schnell zu finden</strong>. Wenn ein*e Nutzer*in noch nicht genug mit anderen interagiert hat, um personalisierte Folgeempfehlungen zu erhalten, werden stattdessen diese Profile verwendet. Sie werden täglich, basierend auf einer Mischung aus am meisten interagierenden Konten und jenen mit den meisten Followern für eine bestimmte Sprache, neu berechnet."
@@ -453,8 +453,8 @@ de:
     instances:
       availability:
         description_html:
-          one: Wenn die Auslieferung an die Domain seit <strong>%{count} Tag</strong> ohne Erfolg ist, werden keine weiteren Versandversuche unternommen, es sei denn, es ist eine Lieferung <em>von</em> der Domain.
-          other: Wenn die Auslieferung an die Domain seit <strong>%{count} Tagen</strong> ohne Erfolg ist, werden keine weiteren Versandversuche unternommen, es sei denn, es ist eine Lieferung <em>von</em> der Domain.
+          one: Wenn die Zustellung an die Domain seit <strong>%{count} Tag</strong> erfolglos bleibt, werden keine weiteren Zustellungsversuche unternommen, es sei denn, eine Zustellung <em>von</em> dieser Domain wird empfangen.
+          other: Wenn die Zustellung an die Domain seit <strong>%{count} Tagen</strong> erfolglos bleibt, werden keine weiteren Zustellungsversuche unternommen, es sei denn, eine Zustellung <em>von</em> dieser Domain wird empfangen.
         failure_threshold_reached: Fehlschlag-Schwelle am %{date} erreicht.
         failures_recorded:
           one: Fehlgeschlagener Versuch am %{count}. Tag.
@@ -511,7 +511,7 @@ de:
       purge: Löschen
       purge_description_html: Wenn du glaubst, dass diese Domain endgültig offline ist, kannst du alle Account-Datensätze und zugehörigen Daten aus dieser Domain löschen. Das kann eine Weile dauern.
       title: Externe Instanzen
-      total_blocked_by_us: Von uns blockiert
+      total_blocked_by_us: Von uns gesperrt
       total_followed_by_them: Gefolgt von denen
       total_followed_by_us: Gefolgt von uns
       total_reported: Beschwerden über sie
@@ -528,7 +528,7 @@ de:
     ip_blocks:
       add_new: Regel erstellen
       created_msg: Neue IP-Regel erfolgreich hinzugefügt
-      delete: Löschen
+      delete: Entfernen
       expires_in:
         '1209600': 2 Wochen
         '15778476': 6 Monate
@@ -538,7 +538,7 @@ de:
         '94670856': 3 Jahre
       new:
         title: Neue IP-Regel erstellen
-      no_ip_block_selected: Keine IP-Regeln wurden geändert, weil keine ausgewählt wurden
+      no_ip_block_selected: Keine IP-Regeln wurden geändert, weil keine ausgewählt wurde(n)
       title: IP-Regeln
     relationships:
       title: Beziehungen von %{acct}
@@ -624,8 +624,8 @@ de:
     roles:
       add_new: Rolle hinzufügen
       assigned_users:
-        one: "%{count} Account"
-        other: "%{count} Accounts"
+        one: "%{count} Konto"
+        other: "%{count} Konten"
       categories:
         administration: Administration
         devops: DevOps
@@ -652,11 +652,11 @@ de:
         manage_appeals: Einsprüche verwalten
         manage_appeals_description: Erlaubt es Benutzer*innen, Entscheidungen der Moderator*innen zu widersprechen
         manage_blocks: Sperrungen verwalten
-        manage_blocks_description: Erlaubt Benutzer*innen, E-Mail-Provider und IP-Adressen zu blockieren
+        manage_blocks_description: Erlaubt Benutzer*innen das Sperren von E-Mail-Providern und IP-Adressen
         manage_custom_emojis: Eigene Emojis verwalten
         manage_custom_emojis_description: Erlaubt es Benutzer*innen, eigene Emojis auf dem Server zu verwalten
         manage_federation: Föderation verwalten
-        manage_federation_description: Erlaubt es Benutzer*innen, den Zusammenschluss mit anderen Domains zu blockieren oder zuzulassen und die Zustellbarkeit zu kontrollieren
+        manage_federation_description: Erlaubt es Benutzer*innen, Domains anderer Mastodon-Instanzen zu sperren oder zuzulassen – und die Zustellbarkeit zu steuern.
         manage_invites: Einladungen verwalten
         manage_invites_description: Erlaubt es Benutzer*innen, Einladungslinks zu durchsuchen und zu deaktivieren
         manage_reports: Meldungen verwalten
@@ -728,7 +728,7 @@ de:
       delete: Hochgeladene Datei löschen
       destroyed_msg: Upload erfolgreich gelöscht!
     statuses:
-      account: Autor
+      account: Autor*in
       application: Anwendung
       back_to_account: Zurück zum Konto
       back_to_report: Zurück zur Seite mit den Meldungen
@@ -813,7 +813,7 @@ de:
         disallow: Beitrag verbieten
         disallow_account: Autor*in verweigern
         no_status_selected: Keine angesagten Beiträge wurden geändert, da keine ausgewählt wurden
-        not_discoverable: Der Autor hat sich nicht dafür entschieden, entdeckt zu werden
+        not_discoverable: Autor*in hat sich dafür entschieden, nicht entdeckt zu werden
         shared_by:
           one: Einmal geteilt oder favorisiert
           other: "%{friendly_count}-mal geteilt oder favorisiert"
@@ -897,7 +897,7 @@ de:
         title: Angesagte Beiträge
       new_trending_tags:
         no_approved_tags: Derzeit gibt es keine genehmigten trendenen Hashtags.
-        requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten trendenen Hashtag übertreffen, der derzeit "%{lowest_tag_name}" mit einer Punktzahl von %{lowest_tag_score} ist.'
+        requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten angesagten Hashtag übertreffen, der derzeit #%{lowest_tag_name} mit einer Punktzahl von %{lowest_tag_score} ist.'
         title: Angesagte Hashtags
       subject: Neue Trends zur Überprüfung auf %{instance}
   aliases:
@@ -911,7 +911,7 @@ de:
     advanced_web_interface: Erweitertes Webinterface
     advanced_web_interface_hint: Wenn du mehr aus deiner Bildschirmbreite herausholen möchtest, kannst du mit dem erweiterten Webinterface weitere Spalten hinzufügen und dadurch mehr Informationen auf einmal sehen, z. B. deine Startseite, die Mitteilungen, die föderierte Timeline sowie beliebig viele deiner Listen und Hashtags.
     animations_and_accessibility: Animationen und Barrierefreiheit
-    confirmation_dialogs: Bestätigungsfenster
+    confirmation_dialogs: Bestätigungsdialoge
     discovery: Entdecken
     localization:
       body: Mastodon wird von Freiwilligen übersetzt.
@@ -930,28 +930,28 @@ de:
     created: Anwendung erfolgreich erstellt
     destroyed: Anwendung erfolgreich gelöscht
     regenerate_token: Zugangs-Token neu erstellen
-    token_regenerated: Zugangs-Token neu erstellt
+    token_regenerated: Zugriffstoken erfolgreich neu erstellt
     warning: Sei mit diesen Daten sehr vorsichtig. Teile sie mit niemandem!
     your_token: Dein Zugangs-Token
   auth:
     apply_for_account: Konto beantragen
     change_password: Passwort
     delete_account: Konto löschen
-    delete_account_html: Falls du dein Konto löschen willst, kannst du <a href="%{path}">hier damit fortfahren</a>. Du wirst um Bestätigung gebeten werden.
+    delete_account_html: Falls du dein Konto endgültig löschen möchtest, kannst du das <a href="%{path}">hier vornehmen</a>. Du musst dies zusätzlich bestätigen.
     description:
       prefix_invited_by_user: "@%{name} lädt dich ein, diesem Server von Mastodon beizutreten!"
       prefix_sign_up: Registriere dich noch heute bei Mastodon!
       suffix: Mit einem Konto kannst du Profilen folgen, neue Beiträge veröffentlichen, Nachrichten mit Personen von jedem Mastodon-Server austauschen und vieles mehr!
-    didnt_get_confirmation: Keine Bestätigungs-Mail erhalten?
+    didnt_get_confirmation: Keine Bestätigungsanweisungen erhalten?
     dont_have_your_security_key: Hast du keinen Sicherheitsschlüssel?
     forgot_password: Passwort vergessen?
     invalid_reset_password_token: Das Token zum Zurücksetzen des Passworts ist ungültig oder abgelaufen. Bitte fordere ein neues an.
     link_to_otp: Gib einen Zwei-Faktor-Code von deinem Handy oder einen Wiederherstellungscode ein
-    link_to_webauth: Verwende deinen Sicherheitsschlüssel
+    link_to_webauth: Verwende dein Sicherheitsschlüsselgerät
     log_in_with: Anmelden mit
     login: Anmelden
     logout: Abmelden
-    migrate_account: Auf ein anderes Konto umziehen
+    migrate_account: Zu einem anderen Konto umziehen
     migrate_account_html: Wenn du dieses Konto auf ein anderes umleiten möchtest, kannst du es <a href="%{path}">hier konfigurieren</a>.
     or_log_in_with: Oder anmelden mit
     privacy_policy_agreement_html: Ich habe die <a href="%{privacy_policy_path}" target="_blank">Datenschutzerklärung</a> gelesen und stimme ihr zu
@@ -960,7 +960,7 @@ de:
       saml: SAML
     register: Registrieren
     registration_closed: "%{instance} akzeptiert keine neuen Mitglieder"
-    resend_confirmation: Bestätigungs-Mail erneut versenden
+    resend_confirmation: Bestätigungsanweisungen erneut senden
     reset_password: Passwort zurücksetzen
     rules:
       preamble: Diese werden von den %{domain}-Moderator*innen festgelegt und erzwungen.
@@ -976,10 +976,10 @@ de:
       title: Okay, lass uns mit %{domain} anfangen.
     status:
       account_status: Kontostatus
-      confirming: Warte auf die Bestätigung der E-Mail.
+      confirming: Auf die Bestätigung deiner E-Mail-Adresse wird gewartet.
       functional: Dein Konto ist voll funktionsfähig.
       pending: Die Prüfung deiner Bewerbung steht noch aus. Dies kann einige Zeit in Anspruch nehmen. Sobald deine Bewerbung genehmigt wurde, erhältst du eine E-Mail.
-      redirecting_to: Dein Konto ist inaktiv, da es derzeit zu %{acct} umgeleitet wird.
+      redirecting_to: Dein Konto ist inaktiv, weil es zu %{acct} umgezogen ist.
       view_strikes: Vorherige Verstöße deines Kontos ansehen
     too_fast: Formular zu schnell gesendet, versuche es erneut.
     use_security_key: Sicherheitsschlüssel verwenden
@@ -992,7 +992,7 @@ de:
     following: 'Erfolg! Du folgst nun:'
     post_follow:
       close: Oder du schließt einfach dieses Fenster.
-      return: Das Benutzerprofil anzeigen
+      return: Benutzerprofil anzeigen
       web: In der Benutzeroberfläche öffnen
     title: "%{acct} folgen"
   challenge:
@@ -1031,14 +1031,14 @@ de:
     warning:
       before: 'Bevor du fortfährst, lies bitte diese Punkte sorgfältig durch:'
       caches: Inhalte, die von anderen Servern zwischengespeichert wurden, können weiterhin bestehen
-      data_removal: Deine Beiträge und andere Daten werden dauerhaft entfernt
+      data_removal: Deine Beiträge und alle anderen Daten werden für immer entfernt
       email_change_html: Du kannst <a href="%{path}">deine E-Mail-Adresse ändern</a>, ohne dein Konto zu löschen
       email_contact_html: Wenn die Bestätigungs-E-Mail immer noch nicht ankam, kannst du eine E-Mail an <a href="mailto:%{email}">%{email}</a> senden, um weitere Hilfe zu erhalten
       email_reconfirmation_html: Wenn du die Bestätigungs-E-Mail nicht erhalten hast, kannst du sie <a href="%{path}">erneut anfordern</a>
-      irreversible: Du kannst dein Konto nicht reaktivieren
+      irreversible: Du kannst dein Konto nicht mehr wiederherstellen oder reaktivieren
       more_details_html: Weitere Details findest du in der <a href="%{terms_path}">Datenschutzerklärung</a>.
       username_available: Dein Profilname wird wieder verfügbar sein
-      username_unavailable: Dein Profilname wird weiterhin nicht mehr verfügbar sein
+      username_unavailable: Dein Profilname wird auch nach dem Löschen für andere nicht zugänglich sein
   disputes:
     strikes:
       action_taken: Maßnahme ergriffen
@@ -1078,7 +1078,7 @@ de:
     '406': Diese Seite ist im gewünschten Format nicht verfügbar.
     '410': Die Seite, nach der du gesucht hast, existiert hier nicht mehr.
     '422':
-      content: Sicherheitsüberprüfung fehlgeschlagen. Blockierst du Cookies?
+      content: Sicherheitsüberprüfung fehlgeschlagen. Sperrst du Cookies aus?
       title: Sicherheitsüberprüfung fehlgeschlagen
     '429': Du wurdest gedrosselt
     '500':
@@ -1094,13 +1094,13 @@ de:
       date: Datum
       download: Dein Archiv herunterladen
       hint_html: Du kannst ein Archiv deiner <strong>Beiträge, Listen, hochgeladenen Medien usw.</strong> anfordern. Die exportierten Daten werden im ActivityPub-Format gespeichert und können mit geeigneter Software ausgewertet und angezeigt werden. Du kannst alle 7 Tage ein Archiv erstellen lassen.
-      in_progress: Persönliches Archiv wird erstellt …
+      in_progress: Persönliches Archiv wird erstellt …
       request: Dein Archiv anfordern
       size: Größe
-    blocks: Blockierte Accounts
+    blocks: Gesperrte Accounts
     bookmarks: Lesezeichen
     csv: CSV
-    domain_blocks: Blockierte Domains
+    domain_blocks: Gesperrte Domains
     lists: Listen
     mutes: Stummgeschaltete Accounts
     storage: Medienspeicher
@@ -1147,7 +1147,7 @@ de:
     statuses:
       back_to_filter: Zurück zum Filter
       batch:
-        remove: Vom Filter entfernen
+        remove: Filter entfernen
       index:
         hint: Dieser Filter wird verwendet, um einzelne Beiträge unabhängig von anderen Kriterien auszuwählen. Du kannst mehr Beiträge zu diesem Filter über das Webinterface hinzufügen.
         title: Gefilterte Beiträge
@@ -1186,12 +1186,12 @@ de:
       merge_long: Behalte existierende Datensätze und füge neue hinzu
       overwrite: Überschreiben
       overwrite_long: Ersetze aktuelle Datensätze mit neuen
-    preface: Daten, die du aus einem anderen Server exportiert hast, kannst du hier importieren. Beispielsweise die Liste derjenigen, denen du folgst oder die du blockiert hast.
+    preface: Daten, die du von einem anderen Server exportiert hast, kannst du hierher importieren. Das betrifft beispielsweise die Listen von Profilen, denen du folgst oder die du gesperrt hast.
     success: Deine Daten wurden erfolgreich hochgeladen und werden in Kürze verarbeitet
     types:
-      blocking: Blockierliste
+      blocking: Sperrliste
       bookmarks: Lesezeichen
-      domain_blocking: Domainsperrliste
+      domain_blocking: Domain-Sperrliste
       following: Folgeliste
       muting: Stummschaltungsliste
     upload: Liste importieren
@@ -1270,7 +1270,7 @@ de:
   moderation:
     title: Moderation
   move_handler:
-    carry_blocks_over_text: Dieses Konto ist von %{acct}, das du blockiert hast, umgezogen.
+    carry_blocks_over_text: Dieses Konto ist von %{acct}, das du gesperrt hast, umgezogen.
     carry_mutes_over_text: Dieses Konto ist von %{acct}, das du stummgeschaltet hast, umgezogen.
     copy_account_note_text: 'Dieses Konto ist von %{acct} umgezogen. Hier deine damals verfassten Notizen zum Profil:'
   navigation:
@@ -1427,7 +1427,7 @@ de:
       windows: Windows
       windows_mobile: Windows Mobile
       windows_phone: Windows Phone
-    revoke: Schließen
+    revoke: Widerrufen
     revoke_success: Sitzung erfolgreich geschlossen
     title: Sitzungen
     view_authentication_history: Authentifizierungsverlauf deines Kontos anzeigen
@@ -1506,25 +1506,25 @@ de:
       unlisted_long: Für alle sichtbar, aber in öffentlichen Timelines nicht aufgelistet
   statuses_cleanup:
     enabled: Automatisch alte Beiträge löschen
-    enabled_hint: Löscht automatisch deine Beiträge, sobald sie einen bestimmten Altersgrenzwert erreicht haben, es sei denn, sie entsprechen einer der folgenden Ausnahmen
+    enabled_hint: Löscht automatisch deine Beiträge, sobald sie die angegebene Altersgrenze erreicht haben, es sei denn, sie entsprechen einer der unten angegebenen Ausnahmen
     exceptions: Ausnahmen
     explanation: Damit Mastodon nicht durch das Löschen von Beiträgen ausgebremst wird, wartet der Server damit, bis wenig los ist. Aus diesem Grund werden deine Beiträge ggf. erst einige Zeit nach Erreichen der Altersgrenze gelöscht.
     ignore_favs: Favoriten ignorieren
     ignore_reblogs: Geteilte Beiträge ignorieren
     interaction_exceptions: Ausnahmen basierend auf Interaktionen
-    interaction_exceptions_explanation: Beachte, dass es keine Garantie für das Löschen von Beiträgen gibt, wenn sie nach einem Übertritt des Favoriten- oder Boost-Schwellenwert wieder unter diesen fallen.
+    interaction_exceptions_explanation: Beachte, dass Beiträge nicht gelöscht werden, sobald deine Grenzwerte für Favoriten oder geteilte Beiträge einmal überschritten worden sind – auch dann nicht, wenn diese Schwellenwerte mittlerweile nicht mehr erreicht werden.
     keep_direct: Direktnachrichten behalten
-    keep_direct_hint: Löscht keine deiner Direktnachrichten
-    keep_media: Beiträge mit Medienanhängen behalten
-    keep_media_hint: Löscht keinen deiner Beiträge mit Medienanhängen
+    keep_direct_hint: Löscht keine deiner privaten Nachrichten
+    keep_media: Beiträge mit angehängten Medien-Dateien behalten
+    keep_media_hint: Löscht keinen deiner Beiträge mit angehängten Medien-Dateien
     keep_pinned: Angeheftete Beiträge behalten
-    keep_pinned_hint: Löscht keinen deiner angehefteten Beiträge
+    keep_pinned_hint: Löscht keinen deiner angehefteten Beiträge im Profil
     keep_polls: Umfragen behalten
     keep_polls_hint: Löscht keine deiner Umfragen
     keep_self_bookmark: Als Lesezeichen markierte Beiträge behalten
-    keep_self_bookmark_hint: Löscht deine eigenen Beiträge nicht, wenn du sie als Lesezeichen markiert hast
-    keep_self_fav: Behalte die von dir favorisierten Beiträge
-    keep_self_fav_hint: Löscht deine eigenen Beiträge nicht, wenn du sie favorisiert hast
+    keep_self_bookmark_hint: Löscht keinen deiner Beiträge, die du als Lesezeichen gesetzt hast
+    keep_self_fav: Behalte favorisierte Beiträge
+    keep_self_fav_hint: Löscht keinen deiner Beiträge, die du favorisiert hast
     min_age:
       '1209600': 2 Wochen
       '15778476': 6 Monate
@@ -1535,10 +1535,10 @@ de:
       '63113904': 2 Jahre
       '7889238': 3 Monate
     min_age_label: Altersgrenze
-    min_favs: Behalte Beiträge, die häufiger favorisiert wurden als ...
-    min_favs_hint: Löscht keine deiner Beiträge, die mindestens diese Anzahl an Favoriten erhalten haben. Lass das Feld leer, um Beiträge unabhängig von ihrer Anzahl an Favoriten zu löschen
-    min_reblogs: Behalte Beiträge, die häufiger geteilt wurden als ...
-    min_reblogs_hint: Löscht keine deiner Beiträge, die mindestens so oft geteilt wurden. Lass das Feld leer, um Beiträge unabhängig von der Anzahl der geteilten Beiträge zu löschen
+    min_favs: Behalte Beiträge, die häufiger favorisiert wurden als …
+    min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an Favoriten – zu löschen
+    min_reblogs: Behalte Beiträge, die öfter geteilt wurden als
+    min_reblogs_hint: Löscht keine Beiträge, die mindestens so oft geteilt worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an geteilten Beiträgen – zu löschen
   stream_entries:
     pinned: Angehefteter Beitrag
     reblogged: teilte
@@ -1559,7 +1559,7 @@ de:
       time: "%H:%M"
   two_factor_authentication:
     add: Hinzufügen
-    disable: Deaktivieren
+    disable: Zwei-Faktor-Authentisierung (2FA) deaktivieren
     disabled_success: Zwei-Faktor-Authentisierung (2FA) erfolgreich deaktiviert
     edit: Bearbeiten
     enabled: Zwei-Faktor-Authentisierung (2FA) ist aktiviert
@@ -1569,7 +1569,7 @@ de:
     methods: Methoden der Zwei-Faktor-Authentisierung (2FA)
     otp: Authentifizierungs-App
     recovery_codes: Wiederherstellungscodes sichern
-    recovery_codes_regenerated: Wiederherstellungscodes erfolgreich neu generiert
+    recovery_codes_regenerated: Wiederherstellungscodes erfolgreich neu erstellt
     recovery_instructions_html: Wenn du den Zugang zu deinem Telefon verlieren solltest, kannst du einen untenstehenden Wiederherstellungscode benutzen, um wieder auf dein Konto zugreifen zu können. <strong>Bewahre die Wiederherstellungscodes gut auf.</strong> Du könntest sie beispielsweise ausdrucken und bei deinen restlichen wichtigen Dokumenten aufbewahren.
     webauthn: Sicherheitsschlüssel
   user_mailer:
@@ -1590,7 +1590,7 @@ de:
       change_password: dein Passwort zu ändern
       details: 'Hier sind die Details des Versuchs:'
       explanation: Wir haben eine Anmeldung zu deinem Konto von einer neuen IP-Adresse festgestellt.
-      further_actions_html: Wenn du das nicht warst, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentifizierung (2FA) für dein Konto zu aktivieren, um es abzusichern.
+      further_actions_html: Wenn du das nicht warst, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentisierung (2FA) für dein Konto zu aktivieren, um es abzusichern.
       subject: Es wurde auf dein Konto von einer neuen IP-Adresse zugegriffen
       title: Eine neue Anmeldung
     warning:
@@ -1605,7 +1605,7 @@ de:
         mark_statuses_as_sensitive: Ein oder mehrere deiner Beiträge wurden von den Moderator*innen der Instanz %{instance} mit einer Inhaltswarnung versehen. Das bedeutet, dass Besucher*innen diese Medien in den Beiträgen zunächst antippen müssen, um die Vorschau anzuzeigen. Beim Verfassen der nächsten Beiträge kannst du auch selbst eine Inhaltswarnung für hochgeladene Medien festlegen.
         sensitive: Von nun an werden alle deine hochgeladenen Mediendateien mit einer Inhaltswarnung versehen und hinter einer Warnung versteckt.
         silence: Solange dein Konto limitiert ist, können nur die Leute, die dir bereits folgen, deine Beiträge auf dem Server sehen, und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen.
-        suspend: Du kannst dein Konto nicht mehr verwenden, und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um ein Backup deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst.
+        suspend: Du kannst dein Konto nicht mehr verwenden und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um eine Sicherung deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst.
       reason: 'Grund:'
       statuses: 'Zitierte Beiträge:'
       subject:
diff --git a/config/locales/devise.ast.yml b/config/locales/devise.ast.yml
index b007f4ae0..f48c70e2d 100644
--- a/config/locales/devise.ast.yml
+++ b/config/locales/devise.ast.yml
@@ -7,7 +7,6 @@ ast:
       send_paranoid_instructions: Si la direición de corréu electrónicu esiste na nuesa base de datos, nunos minutos vas recibir un mensaxe coles instrucciones pa saber cómo confirmala. Revisa la carpeta Puxarra si nun recibiesti esti mensaxe.
     failure:
       already_authenticated: Xá aniciesti la sesión.
-      inactive: La cuenta entá nun s'activó.
       last_attempt: Quédate un intentu más enantes de bloquiar la cuenta.
       locked: La cuenta ta bloquiada.
       pending: La cuenta sigue en revisión.
@@ -93,7 +92,6 @@ ast:
   errors:
     messages:
       already_confirmed: xá se confirmó, prueba a aniciar la sesión
-      not_found: nun s'alcontró
       not_saved:
         one: '1 error torgó que «%{resource}» se guardare:'
         other: "%{count} errores torgaron que «%{resource}» se guardaren:"
diff --git a/config/locales/devise.ca.yml b/config/locales/devise.ca.yml
index 3e7745cd0..b19a04619 100644
--- a/config/locales/devise.ca.yml
+++ b/config/locales/devise.ca.yml
@@ -10,74 +10,74 @@ ca:
     failure:
       already_authenticated: Ja estàs registrat.
       inactive: El teu compte encara no s'ha activat.
-      invalid: "%{authentication_keys} o la contrasenya no són vàlids."
-      last_attempt: Tens un intent més abans que es bloquegi el teu compte.
-      locked: El compte s'ha bloquejat.
-      not_found_in_database: "%{authentication_keys} o la contrasenya no són vàlids."
+      invalid: "%{authentication_keys} o contrasenya no són vàlids."
+      last_attempt: Tens un intent més abans no es bloqui el teu compte.
+      locked: El teu compte s'ha blocat.
+      not_found_in_database: "%{authentication_keys} o contrasenya no són vàlids."
       pending: El teu compte encara està en revisió.
-      timeout: La sessió ha expirat. Torna a iniciar la sessió per a continuar.
+      timeout: La sessió ha expirat. Torna a iniciar-la per a continuar.
       unauthenticated: Cal iniciar sessió o registrar-se abans de continuar.
-      unconfirmed: Has de confirmar l'adreça de correu electrònic abans de continuar.
+      unconfirmed: Has de confirmar l'adreça-e abans de continuar.
     mailer:
       confirmation_instructions:
-        action: Verifica l'adreça de correu
+        action: Verifica l'adreça-e
         action_with_app: Confirma i torna a %{app}
         explanation: Has creat un compte a %{host} amb aquesta adreça de correu electrònic. Estàs a un sol clic d'activar-lo. Si no ho has fet tu, ignora aquest correu electrònic.
-        explanation_when_pending: Has sol·licitat una invitació a %{host} amb aquesta adreça de correu electrònic. Revisarem la sol·licitud quan confirmis la teva adreça de correu electrònic. Pots iniciar la sessió per canviar els detalls o eliminar el teu compte, però no pots accedir a la majoria de les funcions fins que s'hagi aprovat. Si es rebutja la sol·licitud, les teves dades s’eliminaran, de manera que no se t’exigirà cap acció més. Si tu no has fet aquesta sol·licitud, ignora aquest correu electrònic.
+        explanation_when_pending: Has sol·licitat una invitació a %{host} amb aquesta adreça-e. Revisarem la sol·licitud quan la confirmis. Pots iniciar la sessió per canviar els detalls o eliminar el compte, però no pots accedir a la majoria de les funcions fins que s'hagi aprovat. Si es rebutja la sol·licitud, les teves dades s’eliminaran, de manera que no se t’exigirà cap acció més. Si tu no has fet aquesta sol·licitud, ignora aquest correu-e.
         extra_html: Si us plau, consulta també a <a href="%{terms_path}"> les regles del servidor</a> i a <a href="%{policy_path}"> les nostres condicions de servei</a>.
-        subject: 'Mastodon: instruccions de confirmació per a %{instance}'
-        title: Verifica l'adreça de correu
+        subject: 'Mastodon: Instruccions de confirmació de %{instance}'
+        title: Verifica l'adreça-e
       email_changed:
-        explanation: 'L''adreça de correu del teu compte s''està canviant a:'
-        extra: Si no has canviat el teu correu electrònic, és probable que algú hagi accedit al teu compte. Si us plau, canvia la contrasenya immediatament o posa't en contacte amb l'administrador del servidor si no pots accedir al teu compte.
-        subject: 'Mastodon: s''ha canviat l''adreça electrònica'
-        title: Nova adreça de correu electrònic
+        explanation: 'L''adreça-e del teu compte es canvia a:'
+        extra: Si no has canviat el teu correu-e és probable que algú hagi accedit al teu compte. Si us plau, canvia la contrasenya immediatament o posa't en contacte amb l'administrador del servidor si no pots accedir al teu compte.
+        subject: 'Mastodon: s''ha canviat l''adreça-e'
+        title: Nova adreça-e
       password_change:
         explanation: S'ha canviat la contrasenya del teu compte.
-        extra: Si no has canviat la teva contrasenya, és probable que algú hagi accedit al teu compte. Si us plau, canvia la contrasenya immediatament o posa't en contacte amb l'administrador del servidor si no pots accedir al teu compte.
+        extra: Si no has canviat la teva contrasenya, és probable que algú hagi accedit al teu compte. Si us plau, canvia-la immediatament o posa't en contacte amb l'administrador del servidor si no pots accedir al teu compte.
         subject: 'Mastodon: contrasenya canviada'
         title: Contrasenya canviada
       reconfirmation_instructions:
-        explanation: Confirma la nova adreça per canviar el teu correu electrònic.
-        extra: Si tu no has iniciat aquest canvi, ignora aquest correu electrònic. L'adreça de correu electrònic del compte de Mastodon no canviarà fins que no accedeixis a l'enllaç que hi ha a dalt.
-        subject: 'Mastodon: confirma l''adreça electrònica per a %{instance}'
-        title: Verifica l'adreça de correu electrònic
+        explanation: Confirma la nova adreça per canviar el teu correu-e.
+        extra: Si no has iniciat aquest canvi, ignora aquest correu-e. L'adreça de correu-e del compte de Mastodon no canviarà fins que no accedeixis a l'enllaç que hi ha a dalt.
+        subject: 'Mastodon: confirma l''adreça-e per a %{instance}'
+        title: Verifica l'adreça de correu-e
       reset_password_instructions:
         action: Canvia la contrasenya
         explanation: Has sol·licitat una contrasenya nova per al teu compte.
-        extra: Si no l'has sol·licitat, ignora aquest correu electrònic. La teva contrasenya no canviarà fins que no accedeixis a l'enllaç que hi ha a dalt i en creïs una de nova.
-        subject: 'Mastodon: instruccions per reiniciar la contrasenya'
+        extra: Si no l'has sol·licitada, ignora aquest correu electrònic. La teva contrasenya no canviarà fins que no accedeixis a l'enllaç que hi ha a dalt i en creïs una de nova.
+        subject: 'Mastodon: Instruccions per a reiniciar contrasenya'
         title: Contrasenya restablerta
       two_factor_disabled:
-        explanation: L'autenticació de doble factor per al teu compte s'ha desactivat. Ara només pots iniciar la sessió fent servir la teva adreça de correu electrònic i la contrasenya.
-        subject: 'Mastodon: autenticació de doble factor desactivada'
-        title: AF2 desactivat
+        explanation: L'autenticació de doble factor per al teu compte s'ha desactivat. Ara només pots iniciar la sessió fent servir la teva adreça de correu-e i la contrasenya.
+        subject: 'Mastodon: Autenticació de doble factor desactivada'
+        title: A2F desactivada
       two_factor_enabled:
-        explanation: L'autenticació de doble factor s'ha habilitat per al teu compte. Per a iniciar la sessió, es requerirà un token generat per l'aplicació TOTP que hagis emparellat.
-        subject: 'Mastodon: autenticació de doble factor activada'
-        title: AF2 activat
+        explanation: L'autenticació de doble factor s'ha habilitat per al teu compte. Per a iniciar la sessió es requerirà un token generat per l'aplicació TOTP que hi hagis emparellat.
+        subject: 'Mastodon: Autenticació de doble factor activada'
+        title: A2F activada
       two_factor_recovery_codes_changed:
         explanation: Els codis de recuperació anteriors ja no són vàlids i se n'han generat de nous.
         subject: 'Mastodon: codis de recuperació de doble factor regenerats'
         title: Codis de recuperació A2F canviats
       unlock_instructions:
-        subject: 'Mastodon: instruccions per desbloquejar'
+        subject: 'Mastodon: Instruccions per a desblocar'
       webauthn_credential:
         added:
-          explanation: S'ha afegit la següent clau de seguretat al vostre compte
+          explanation: La següent clau de seguretat s'ha afegit al teu compte
           subject: 'Mastodon: nova clau de seguretat'
           title: S'ha afegit una nova clau de seguretat
         deleted:
           explanation: La següent clau de seguretat s'ha esborrat del teu compte
-          subject: 'Mastodon: clau de seguretat esborrada'
+          subject: 'Mastodon: Clau de seguretat esborrada'
           title: Una de les teves claus de seguretat ha estat esborrada
       webauthn_disabled:
         explanation: S'ha desactivat l'autenticació amb claus de seguretat per al teu compte. Ara només pots iniciar la sessió usant el token generat per l'aplicació TOTP.
-        subject: 'Mastodon: s''ha desactivat l''autenticació amb claus de seguretat'
+        subject: 'Mastodon: S''ha desactivat l''autenticació amb claus de seguretat'
         title: Claus de seguretat desactivades
       webauthn_enabled:
         explanation: S'ha activat l'autenticació amb claus de seguretat. Ja pots usar la teva clau de seguretat per a iniciar sessió.
-        subject: 'Mastodon: autenticació amb clau de seguretat activada'
+        subject: 'Mastodon: Autenticació amb clau de seguretat activada'
         title: Claus de seguretat activades
     omniauth_callbacks:
       failure: No s'ha pogut autenticar des de %{kind} degut a "%{reason}".
@@ -98,9 +98,9 @@ ca:
       update_needs_confirmation: Has actualitzat el teu compte amb èxit, però necessitem verificar la teva nova adreça de correu. Si us plau comprova el correu i segueixi l'enllaç per confirmar la nova adreça de correu. Si us plau verifica la teva carpeta de correu brossa si no reps aquest correu.
       updated: El teu compte ha estat actualitzat amb èxit.
     sessions:
-      already_signed_out: Has tancat la sessió amb èxit.
-      signed_in: T'has registrat amb èxit.
-      signed_out: Has tancat la sessió amb èxit.
+      already_signed_out: Sessió finalitzada correctament.
+      signed_in: Sessió iniciada correctament.
+      signed_out: Sessió finalitzada correctament.
     unlocks:
       send_instructions: En pocs minuts rebràs un correu electrònic amb instruccions sobre com desbloquejar el teu compte. Si us plau verifica la teva carpeta de correu brossa si no has rebut aquest correu.
       send_paranoid_instructions: Si el teu compte existeix, rebràs en pocs minuts un correu electrònic amb instruccions sobre com desbloquejar-lo. Verifica la carpeta de correu brossa si no has rebut aquest correu.
@@ -111,7 +111,7 @@ ca:
       confirmation_period_expired: cal fer la confirmació dins de %{period}, si us plau sol·licita-ho de nou
       expired: ha expirat, si us plau demana'n una altra
       not_found: no s'ha trobat
-      not_locked: no està bloquejada
+      not_locked: no està blocada
       not_saved:
         one: '1 error ha impedit desar aquest %{resource}:'
         other: "%{count} errors han impedit desar aquest %{resource}:"
diff --git a/config/locales/devise.cs.yml b/config/locales/devise.cs.yml
index be39a8f17..32a1ed2c6 100644
--- a/config/locales/devise.cs.yml
+++ b/config/locales/devise.cs.yml
@@ -20,15 +20,15 @@ cs:
       confirmation_instructions:
         action: Potvrdit e-mailovou adresu
         action_with_app: Potvrdit a vrátit se do %{app}
-        explanation: S touto e-mailovou adresou jste si již účet na serveru %{host} vytvořili. K jeho aktivaci vám zbývá jedno kliknutí. Pokud jste to nebyli vy, považujte tento e-mail za bezpředmětný.
-        explanation_when_pending: Pro tuto e-mailovou adresu bylo požádáno o pozvánku na %{host}. Jakmile svou e-mailovou adresu potvrdíte, vaši žádost posoudíme. Můžete se přihlásit, změnit podrobnosti svého účtu nebo ho smazat, ale do schválení účtu nebudete mít k většině funkcí přístup. Pokud bude vaše žádost zamítnuta, vaše data budou odstraněna, a nebude od vás vyžadována žádná další akce. Pokud jste to nebyli vy, považujte tento e-mail za bezpředmětný.
-        extra_html: Přečtěte si prosím také <a href="%{terms_path}">pravidla tohoto serveru</a> a <a href="%{policy_path}">naše podmínky používání</a>.
+        explanation: S touto e-mailovou adresou jste si vytvořili účet na serveru %{host}. K jeho aktivaci vám zbývá jedno kliknutí. Pokud jste to nebyli vy, považujte tento e-mail za bezpředmětný.
+        explanation_when_pending: S touto e-mailovou adresu jste požádali o pozváku na %{host}. Jakmile svou e-mailovou adresu potvrdíte, vaši žádost posoudíme. Můžete se přihlásit ke změně podrobností svého účtu nebo jeho smazání, ale do schválení účtu nebudete mít k většině funkcí přístup. Pokud bude vaše žádost zamítnuta, vaše data budou odstraněna, a nebude od vás vyžadována žádná další akce. Pokud jste to nebyli vy, považujte tento e-mail za bezpředmětný.
+        extra_html: Přečtěte si prosím také <a href="%{terms_path}">pravidla tohoto serveru</a> a <a href="%{policy_path}">naše podmínky užití</a>.
         subject: 'Mastodon: Potvrzení účtu na serveru %{instance}'
         title: Potvrďte e-mailovou adresu
       email_changed:
         explanation: 'E-mailová adresa vašeho účtu byla změněna na:'
         extra: Pokud jste si e-mailovou adresu neměnili, je pravděpodobné, že někdo jiný získal přístup k vašemu účtu. Změňte si prosím okamžitě heslo, nebo, pokud se nemůžete na účet přihlásit, kontaktujte administrátora serveru.
-        subject: 'Mastodon: E-mailová adresa změněna'
+        subject: 'Mastodon: E-mailová adresa byla změněna'
         title: Nová e-mailová adresa
       password_change:
         explanation: Heslo k vašemu účtu bylo změněno.
@@ -36,7 +36,7 @@ cs:
         subject: 'Mastodon: Heslo bylo změněno'
         title: Heslo bylo změněno
       reconfirmation_instructions:
-        explanation: Potvrďte novou adresu pro změnu e-mailu.
+        explanation: Pro změnu e-mailu potvrďte novou adresu.
         extra: Pokud jste si tuto změnu nevyžádali vy, považujte tento e-mail za bezpředmětný. Pokud výše uvedenou adresu nenavštívíte, e-mailová adresa změněna nebude.
         subject: 'Mastodon: Potvrďte e-mail pro %{instance}'
         title: Ověřit e-mailovou adresu
@@ -47,43 +47,43 @@ cs:
         subject: 'Mastodon: Instrukce pro obnovení hesla'
         title: Obnovení hesla
       two_factor_disabled:
-        explanation: Dvoufázové ověřování bylo pro váš účet vypnuto. Pro přihlášení je nyní stačí pouze e-mailová adresa a heslo.
-        subject: 'Mastodon: Dvoufázové ověřování vypnuto'
-        title: 2FA vypnuto
+        explanation: Dvoufázové ověřování bylo pro váš účet vypnuto. Pro přihlášení vám nyní stačí pouze e-mailová adresa a heslo.
+        subject: 'Mastodon: Dvoufázové ověření bylo vypnuto'
+        title: 2FA bylo vypnuto
       two_factor_enabled:
         explanation: Dvoufázové ověřování bylo pro váš účet zapnuto. Pro přihlášení bude vyžadován token vygenerovaný spárovanou TOTP aplikací.
-        subject: 'Mastodon: Dvoufázové ověřování zapnuto'
-        title: 2FA zapnuto
+        subject: 'Mastodon: Dvoufázové ověření bylo zapnuto'
+        title: 2FA bylo zapnuto
       two_factor_recovery_codes_changed:
         explanation: Předchozí záložní kódy byly zrušeny a byly vygenerovány nové.
-        subject: 'Mastodon: Dvoufázové záložní kódy znovu vygenerovány'
-        title: Záložní kódy pro 2FA změněny
+        subject: 'Mastodon: Dvoufázové záložní kódy byly znovu vygenerovány'
+        title: Záložní kódy pro 2FA byly změněny
       unlock_instructions:
         subject: 'Mastodon: Instrukce pro odemčení účtu'
       webauthn_credential:
         added:
-          explanation: Následující bezpečnostní klíč byl přidán k vašemu účtu
+          explanation: K vašemu účtu byl přidán následující bezpečnostní klíč
           subject: 'Mastodon: Nový bezpečnostní klíč'
           title: Byl přidán nový bezpečnostní klíč
         deleted:
-          explanation: Následující bezpečnostní klíč byl odstraněn z vašeho účtu
+          explanation: Z vašeho účtu byl odstraněn následující bezpečnostní klíč
           subject: 'Mastodon: Bezpečnostní klíč byl smazán'
           title: Jeden z vašich bezpečnostních klíčů byl smazán
       webauthn_disabled:
         explanation: Pro váš účet bylo vypnuto ověření bezpečnostními klíči. Přihlášení je nyní možné pouze s tokenem vygenerovaným spárovanou TOTP aplikací.
-        subject: 'Mastodon: Přihlašování bezpečnostními klíči vypnuto'
-        title: Bezpečnostní klíče zakázány
+        subject: 'Mastodon: Přihlašování bezpečnostními klíči bylo vypnuto'
+        title: Bezpečnostní klíče byly zakázány
       webauthn_enabled:
         explanation: Pro váš účet bylo povoleno ověření bezpečnostními klíči. Nyní můžete svůj bezpečnostní klíč použít pro přihlášení.
-        subject: 'Mastodon: Přihlašování bezpečnostními klíči povoleno'
-        title: Bezpečnostní klíče povoleny
+        subject: 'Mastodon: Přihlašování bezpečnostními klíči bylo povoleno'
+        title: Bezpečnostní klíče byly povoleny
     omniauth_callbacks:
       failure: Nelze vás ověřit z %{kind}, protože „%{reason}“.
       success: Úspěšně ověřeno z účtu %{kind}.
     passwords:
       no_token: Tuto stránku nemůžete navštívit, pokud nepřicházíte z e-mailu pro obnovení hesla. Pokud z něj přicházíte, ujistěte se, že jste použili celou URL adresu z e-mailu.
-      send_instructions: Pokud je vaše e-mailová adresa v naší databázi, obdržíte za několik minut e-mail s odkazem pro obnovení vašeho hesla. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“.
-      send_paranoid_instructions: Pokud je vaše e-mailová adresa v naší databázi, obdržíte za několik minut e-mail s odkazem pro obnovení vašeho hesla. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“.
+      send_instructions: Pokud je vaše e-mailová adresa v naší databázi, za několik minut obdržíte e-mail s odkazem pro obnovení vašeho hesla. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“.
+      send_paranoid_instructions: Pokud je vaše e-mailová adresa v naší databázi, za několik minut obdržíte e-mail s odkazem pro obnovení vašeho hesla. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“.
       updated: Vaše heslo bylo úspěšně změněno. Nyní jste přihlášeni.
       updated_not_active: Vaše heslo bylo úspěšně změněno.
     registrations:
@@ -101,7 +101,7 @@ cs:
       signed_out: Odhlášení proběhlo úspěšně.
     unlocks:
       send_instructions: Za několik minut obdržíte e-mail s instrukcemi pro odemčení vašeho účtu. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“.
-      send_paranoid_instructions: Pokud váš účet existuje, obdržíte za několik minut e-mail s instrukcemi pro odemčení vašeho účtu. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“.
+      send_paranoid_instructions: Pokud váš účet existuje, za několik minut obdržíte e-mail s instrukcemi pro odemčení vašeho účtu. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“.
       unlocked: Váš účet byl úspěšně odemčen. Pro pokračování se prosím přihlaste.
   errors:
     messages:
@@ -113,5 +113,5 @@ cs:
       not_saved:
         few: "%{count} chyby zabránily uložení tohoto %{resource}:"
         many: "%{count} chyb zabránilo uložení tohoto %{resource}:"
-        one: 'Jedna chyba zabránila uložení tohoto %{resource}:'
+        one: '1 chyba zabránila uložení tohoto %{resource}:'
         other: "%{count} chyb zabránilo uložení tohoto %{resource}:"
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index 41af24bd8..894744af0 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -55,9 +55,9 @@ de:
         subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung aktiviert'
         title: 2FA aktiviert
       two_factor_recovery_codes_changed:
-        explanation: Die vorherigen Wiederherstellungscodes wurden ungültig gemacht und es wurden neue generiert.
-        subject: 'Mastodon: Zwei-Faktor-Wiederherstellungscodes neu generiert'
-        title: 2FA Wiederherstellungscodes geändert
+        explanation: Die vorherigen Wiederherstellungscodes wurden ungültig gemacht und es wurden neue erstellt.
+        subject: 'Mastodon: Zwei-Faktor-Wiederherstellungscodes neu erstellt'
+        title: 2FA-Wiederherstellungscodes geändert
       unlock_instructions:
         subject: 'Mastodon: Konto entsperren'
       webauthn_credential:
diff --git a/config/locales/devise.eo.yml b/config/locales/devise.eo.yml
index 07a115cc7..68a90171c 100644
--- a/config/locales/devise.eo.yml
+++ b/config/locales/devise.eo.yml
@@ -12,7 +12,7 @@ eo:
       last_attempt: Vi ankoraŭ povas provi unufoje antaŭ ol via konto estos ŝlosita.
       locked: Via konto estas ŝlosita.
       not_found_in_database: Nevalida %{authentication_keys} aŭ pasvorto.
-      pending: Via konto ankoraŭ estas kontrolanta.
+      pending: Via konto ankoraŭ estas kontrolata.
       timeout: Via seanco eksvalidiĝis. Bonvolu ensaluti denove por daŭrigi.
       unauthenticated: Vi devas ensaluti aŭ registriĝi antaŭ ol daŭrigi.
       unconfirmed: Vi devas konfirmi vian retadreson antaŭ ol daŭrigi.
@@ -34,7 +34,7 @@ eo:
         explanation: La pasvorto de via konto estis ŝanĝita.
         extra: Se vi ne ŝanĝis vian pasvorton, iu verŝajne aliris al via konto. Bonvolu ŝanĝi vian pasvorton tuj aŭ kontakti la administranton de la servilo, se vi estas blokita ekster via konto.
         subject: 'Mastodon: Pasvorto ŝanĝita'
-        title: Pasvorto ŝanĝita
+        title: Pasvorto estas ŝanĝita
       reconfirmation_instructions:
         explanation: Retajpu la novan adreson por ŝanĝi vian retpoŝtadreson.
         extra: Se ĉi tiu ŝanĝo ne estis komencita de vi, bonvolu ignori ĉi tiun retmesaĝon. La retadreso por la Mastodon-konto ne ŝanĝiĝos se vi ne aliras la supran ligilon.
@@ -49,7 +49,7 @@ eo:
       two_factor_disabled:
         explanation: Dufaktora aŭtentigo por via konto malebligis. Ensalutado nun eblas per nur retpoŝtadreso kaj pasvorto.
         subject: 'Mastodon: dufaktora aŭtentigo malebligita'
-        title: la du-etapa aŭtentigo estas malŝaltita
+        title: 2FA estas malŝaltita
       two_factor_enabled:
         explanation: Dufaktora aŭtentigo sukcese ebligita por via akonto. Vi bezonos ĵetonon kreitan per parigitan aplikaĵon por ensaluti.
         subject: 'Mastodon: Dufaktora aŭtentigo ebligita'
diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml
index 302b532ce..4142eaec8 100644
--- a/config/locales/devise.et.yml
+++ b/config/locales/devise.et.yml
@@ -21,7 +21,7 @@ et:
         action: Kinnita e-postiaadress
         action_with_app: Kinnita ja naase %{app}
         explanation: Te olete loonud %{host} konto selle e-postiaadressiga. Te olete ühe kliki kaugusel selle aktiveerimisest. Kui see polnud teie, palun eirake seda kirja.
-        explanation_when_pending: Te esitasite taotluse liituda %{host} kasutajaks selle e-postiaadressiga. Siis, kui te kinnitate oma e-posti aadressi, vaatame me teie taotluse üle. Võite logida sisse, et oma andmeid muuta või konto kustutada, aga te ei saa ligi enamustele tegevustele enne, kui teie kontole on luba antud. Kui teie taotlus tagasi lükatakse, kustutatakse teie andmed, seega pole mingit järgevat tegevust teie poolt vaja. Kui see polnud teie, siis palun eirake seda kirja.
+        explanation_when_pending: Te esitasite taotluse liituda %{host} kasutajaks selle e-postiaadressiga. Palun kinnitage oma e-posti aadress ja siis vaatame me teie taotluse üle. Võite logida sisse, et oma andmeid muuta või konto kustutada, aga te ei saa ligi enamustele tegevustele enne, kui teie konto on kinnitatud moderaatorite poolt. Kui teie taotlus tagasi lükatakse, kustutatakse teie andmed, seega pole mingit järgevat tegevust teie poolt vaja. Kui see polnud teie, siis palun eirake seda kirja. Kui konto on kinnitatud, siis saate selle kohta eraldi e-kirja.
         extra_html: Palun tutvuge <a href="%{terms_path}">meie serveri reeglitega</a> ning <a href="%{policy_path}">meie kasutustingimustega</a>.
         subject: 'Mastodon: %{instance} kinnitamisjuhised'
         title: Kinnita e-postiaadress
diff --git a/config/locales/devise.fr-QC.yml b/config/locales/devise.fr-QC.yml
index 5a7e1cd9e..8c1a94dab 100644
--- a/config/locales/devise.fr-QC.yml
+++ b/config/locales/devise.fr-QC.yml
@@ -2,11 +2,11 @@
 fr-QC:
   devise:
     confirmations:
-      confirmed: Votre adresse de courriel a été validée.
-      send_instructions: Vous allez recevoir par courriel les instructions nécessaires à la confirmation de votre compte dans quelques minutes. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables.
-      send_paranoid_instructions: Si votre adresse électronique existe dans notre base de données, vous allez bientôt recevoir un courriel contenant les instructions de confirmation de votre compte. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables.
+      confirmed: Votre adresse de courriel a été validée avec succès.
+      send_instructions: Vous allez recevoir un courriel avec des instructions nécessaires à la confirmation de votre adresse dans quelques minutes. Veuillez vérifier votre dossier de pourriels si vous n'avez pas reçu ce message.
+      send_paranoid_instructions: Si votre adresse courriel existe dans notre base de données, vous allez recevoir un courriel contenant les instructions de confirmation de votre adresse. Veuillez vérifier votre dossier de pourriels si vous n'avez pas reçu ce message.
     failure:
-      already_authenticated: Vous êtes déjà connecté⋅e.
+      already_authenticated: Vous êtes déjà connecté·e.
       inactive: Votre compte n’est pas encore activé.
       invalid: "%{authentication_keys} ou mot de passe invalide."
       last_attempt: Vous avez droit à une dernière tentative avant que votre compte ne soit verrouillé.
@@ -20,46 +20,46 @@ fr-QC:
       confirmation_instructions:
         action: Vérifier l’adresse courriel
         action_with_app: Confirmer et retourner à %{app}
-        explanation: Vous avez créé un compte sur %{host} avec cette adresse courriel. Vous êtes à un clic de l’activer. Si ce n’était pas vous, veuillez ignorer ce courriel.
-        explanation_when_pending: Vous avez demandé à vous inscrire à %{host} avec cette adresse de courriel. Une fois que vous aurez confirmé cette adresse, nous étudierons votre demande. Vous ne pourrez pas vous connecter d’ici-là. Si votre demande est refusée, vos données seront supprimées du serveur, aucune action supplémentaire de votre part n’est donc requise. Si vous n’êtes pas à l’origine de cette demande, veuillez ignorer ce message.
-        extra_html: Merci de consultez également <a href="%{terms_path}">les règles du serveur</a> et <a href="%{policy_path}">nos conditions d’utilisation</a>.
-        subject: 'Mastodon : Merci de confirmer votre inscription sur %{instance}'
-        title: Vérifiez l’adresse courriel
+        explanation: Vous avez créé un compte sur %{host} avec cette adresse courriel. Vous êtes à un clic de l’activer. Si ce n'était pas vous, veuiller ignorer ce courriel.
+        explanation_when_pending: Vous avez demandé à vous inscrire à %{host} avec cette adresse courriel. Une fois que vous aurez confirmé cette adresse, nous étudierons votre demande. Vous pouvez vous connecter pour changer vos détails ou supprimer votre compte, mais vous ne pouvez pas accéder à la plupart des fonctionalités du compte avant que votre compte ne soit approuvé. Si votre demande est rejetée, vos données seront supprimées, donc aucune action supplémentaire ne sera requise de votre part. Si ce n'était pas vous, veuiller ignorer ce courriel.
+        extra_html: Veuillez également consulter <a href="%{terms_path}">les règles du serveur</a> et <a href="%{policy_path}">nos conditions d’utilisation</a>.
+        subject: 'Mastodon: Instructions de confirmation pour %{instance}'
+        title: Vérifier l’adresse courriel
       email_changed:
-        explanation: 'L’adresse courriel de votre compte est en cours de modification pour devenir :'
-        extra: Si vous n’avez pas changé votre adresse courriel, il est probable que quelqu’un ait eu accès à votre compte. Veuillez changer votre mot de passe immédiatement ou contacter l’administrateur·rice du serveur si vous êtes bloqué·e hors de votre compte.
-        subject: 'Mastodon : Courriel modifié'
+        explanation: 'L’adresse courriel de votre compte est en cours de modification pour devenir:'
+        extra: Si vous n’avez pas changé votre adresse courriel, il est probable que quelqu’un ait eu accès à votre compte. Veuillez changer votre mot de passe immédiatement ou contacter l’administrateur·rice du serveur si vous êtes bloqué hors de votre compte.
+        subject: 'Mastodon: Courriel modifié'
         title: Nouvelle adresse courriel
       password_change:
         explanation: Le mot de passe de votre compte a été changé.
-        extra: Si vous n’avez pas changé votre mot de passe, il est probable que quelqu’un ait eu accès à votre compte. Veuillez changer votre mot de passe immédiatement ou contacter l’administrateur·rice du serveur si vous êtes bloqué·e hors de votre compte.
-        subject: 'Mastodon : Votre mot de passe a été modifié avec succès'
+        extra: Si vous n’avez pas changé votre mot de passe, il est probable que quelqu’un ait eu accès à votre compte. Veuillez changer votre mot de passe immédiatement ou contacter l’administrateur·rice du serveur si vous êtes bloqué hors de votre compte.
+        subject: 'Mastodon: Mot de passe modifié'
         title: Mot de passe modifié
       reconfirmation_instructions:
         explanation: Confirmez la nouvelle adresse pour changer votre courriel.
         extra: Si ce changement n’a pas été initié par vous, veuillez ignorer ce courriel. L’adresse courriel du compte Mastodon ne changera pas tant que vous n’aurez pas cliqué sur le lien ci-dessus.
-        subject: 'Mastodon : Confirmez l’adresse courriel pour %{instance}'
+        subject: 'Mastodon: Confirmer l’adresse courriel pour %{instance}'
         title: Vérifier l’adresse courriel
       reset_password_instructions:
-        action: Modifier le mot de passe
+        action: Changer votre mot de passe
         explanation: Vous avez demandé un nouveau mot de passe pour votre compte.
-        extra: Si vous ne l’avez pas demandé, veuillez ignorer ce courriel. Votre mot de passe ne changera pas tant que vous n’aurez pas cliqué sur le lien ci-dessus et que vous n’en aurez pas créé un nouveau.
-        subject: 'Mastodon : Instructions pour changer votre mot de passe'
+        extra: Si vous ne avez pas demandé ceci, veuillez ignorer ce courriel. Votre mot de passe ne changera pas tant que vous n’aurez pas cliqué sur le lien ci-dessus et n’en aurez pas créé un nouveau.
+        subject: 'Mastodon: Instructions pour changer votre mot de passe'
         title: Réinitialisation du mot de passe
       two_factor_disabled:
         explanation: L'authentification à deux facteurs pour votre compte a été désactivée. La connexion est maintenant possible en utilisant uniquement l'adresse courriel et le mot de passe.
-        subject: 'Mastodon : authentification à deux facteurs désactivée'
-        title: 2FA désactivée
+        subject: 'Mastodon: authentification à deux facteurs désactivée'
+        title: A2F désactivée
       two_factor_enabled:
         explanation: L'authentification à deux facteurs a été activée pour votre compte. Un jeton généré par l'application appairée TOTP sera nécessaire pour vous connecter.
-        subject: 'Mastodon : authentification à deux facteurs activée'
+        subject: 'Mastodon: authentification à deux facteurs activée'
         title: A2F activée
       two_factor_recovery_codes_changed:
         explanation: Les codes de récupération précédents ont été invalidés et de nouveaux ont été générés.
-        subject: 'Mastodon : codes de récupération à deux facteurs régénérés'
-        title: Codes de récupération 2FA modifiés
+        subject: 'Mastodon: codes de récupération à deux facteurs régénérés'
+        title: Codes de récupération A2F modifiés
       unlock_instructions:
-        subject: 'Mastodon : Instructions pour déverrouiller votre compte'
+        subject: 'Mastodon: Instructions pour déverrouiller votre compte'
       webauthn_credential:
         added:
           explanation: La clé de sécurité suivante a été ajoutée à votre compte
@@ -78,38 +78,38 @@ fr-QC:
         subject: 'Mastodon: Authentification de la clé de sécurité activée'
         title: Clés de sécurité activées
     omniauth_callbacks:
-      failure: 'Nous n’avons pas pu vous authentifier via %{kind} : ''%{reason}''.'
-      success: Authentifié avec succès via %{kind}.
+      failure: Nous n’avons pas pu vous authentifier via %{kind} car « %{reason} ».
+      success: Authentifié·e avec succès via %{kind}.
     passwords:
-      no_token: Vous ne pouvez accéder à cette page sans passer par un courriel de réinitialisation de mot de passe. Si vous êtes passé⋅e par un courriel de ce type, assurez-vous d’utiliser l’URL complète.
-      send_instructions: Vous allez recevoir les instructions de réinitialisation du mot de passe dans quelques instants. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables.
-      send_paranoid_instructions: Si votre adresse électronique existe dans notre base de données, vous allez recevoir un lien de réinitialisation par courriel. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables.
-      updated: Votre mot de passe a été modifié avec succès, vous êtes maintenant connecté.
+      no_token: Vous ne pouvez accéder à cette page sans venir d'un courriel de réinitialisation de mot de passe. Si vous êtes passé par un courriel de ce type, assurez-vous d’utiliser l’URL complet.
+      send_instructions: Si votre adresse courriel existe dans notre base de données, vous allez recevoir les instructions de réinitialisation du mot de passe à votre adresse dans quelques instants. Veuillez vérifier votre dossier de pourriel si vous n'avez reçu ce message.
+      send_paranoid_instructions: Si votre adresse courriel existe dans notre base de données, vous allez recevoir les instructions de réinitialisation du mot de passe à votre adresse dans quelques instants. Veuillez vérifier votre dossier de pourriel si vous n'avez reçu ce message.
+      updated: Votre mot de passe a été modifié avec succès. Vous êtes maintenant connecté·e.
       updated_not_active: Votre mot de passe a été modifié avec succès.
     registrations:
-      destroyed: Au revoir ! Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt.
-      signed_up: Bienvenue ! Vous êtes connecté.
+      destroyed: Au revoir! Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt.
+      signed_up: Bienvenue! Vous êtes connecté·e.
       signed_up_but_inactive: Vous êtes bien enregistré·e. Vous ne pouvez cependant pas vous connecter car votre compte n’est pas encore activé.
       signed_up_but_locked: Vous êtes bien enregistré·e. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé.
       signed_up_but_pending: Un message avec un lien de confirmation a été envoyé à votre adresse courriel. Après avoir cliqué sur le lien, nous examinerons votre demande. Vous serez informé·e si elle a été approuvée.
-      signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse courriel. Ouvrez ce lien pour activer votre compte. Veuillez vérifier votre dossier d'indésirables si vous ne recevez pas le courriel.
-      update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier de spams.
+      signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse courriel. Ouvrez ce lien pour activer votre compte. Veuillez vérifier votre dossier de pourriels si vous n'avez pas reçu le courriel.
+      update_needs_confirmation: Votre compte a été mis à jour avec succès, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour valider votre nouvelle adresse. Veuillez vérifier votre dossier de pourriels si vous ne recevez pas le courriel.
       updated: Votre compte a été modifié avec succès.
     sessions:
-      already_signed_out: Déconnecté·e avec succès.
-      signed_in: Connecté·e.
-      signed_out: Déconnecté·e.
+      already_signed_out: Déconnexion réussie.
+      signed_in: Connexion réussie.
+      signed_out: Déconnexion réussie.
     unlocks:
-      send_instructions: Vous allez recevoir les instructions nécessaires au déverrouillage de votre compte dans quelques instants. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables.
-      send_paranoid_instructions: Si votre compte existe, vous allez bientôt recevoir un courriel contenant les instructions pour le déverrouiller. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables.
-      unlocked: Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté.
+      send_instructions: Vous allez recevoir un courriel avec des instructions nécessaires au déverrouillage de votre compte dans quelques minutes. Veuillez vérifier votre dossier de pourriels si vous ne recevez pas ce courriel.
+      send_paranoid_instructions: Si votre compte existe, vous allez recevoir un courriel avec les instructions pour le déverrouiller dans quelques minutes. Veuillez vérifier votre dossier d'indésirables si vous ne recevez pas ce courriel.
+      unlocked: Votre compte a été déverrouillé avec succès. Veuillez vous connecter pour continuer.
   errors:
     messages:
       already_confirmed: a déjà été validée, veuillez essayer de vous connecter
-      confirmation_period_expired: à confirmer dans les %{period}, merci de faire une nouvelle demande
-      expired: a expiré, merci d’en faire une nouvelle demande
+      confirmation_period_expired: à confirmer dans les %{period}, veuillez en faire une nouvelle demande
+      expired: a expiré, veuillez en faire une nouvelle demande
       not_found: n’a pas été trouvé
       not_locked: n’était pas verrouillé
       not_saved:
-        one: 'Une erreur a empêché ce·tte %{resource} d’être sauvegardé·e :'
+        one: '1 erreur a empêché ce·tte %{resource} d’être sauvegardé·e:'
         other: "%{count} erreurs ont empêché %{resource} d’être sauvegardé⋅e :"
diff --git a/config/locales/devise.it.yml b/config/locales/devise.it.yml
index 3aba63a9c..5ea3aeac4 100644
--- a/config/locales/devise.it.yml
+++ b/config/locales/devise.it.yml
@@ -3,113 +3,113 @@ it:
   devise:
     confirmations:
       confirmed: Il tuo indirizzo email è stato confermato con successo.
-      send_instructions: Riceverai in pochi minuti una email con istruzioni per confermare il tuo account al tuo indirizzo email.
-      send_paranoid_instructions: Se il tuo indirizzo email è presente nel nostro database, riceverai in pochi minuti una email con istruzioni per confermare il tuo account al tuo indirizzo email.
+      send_instructions: Riceverai un'email con le istruzioni per confermare il tuo indirizzo email in pochi minuti. Sei pregato di controllare la tua cartella dello spam, se non hai ricevuto quest'email.
+      send_paranoid_instructions: Se il tuo indirizzo email esiste nel nostro database, riceverai un'email con le istruzioni su come confermare il tuo indirizzo email in pochi minuti. Sei pregato di controllare la tua cartella dello spam se non hai ricevuto quest'email.
     failure:
-      already_authenticated: Hai già effettuato l'accesso.
-      inactive: Non hai ancora attivato il tuo account.
+      already_authenticated: Sei già connesso.
+      inactive: Il tuo profilo non è ancora attivo.
       invalid: "%{authentication_keys} o password non valida."
-      last_attempt: Hai un altro tentativo prima che il tuo account venga bloccato.
-      locked: Il tuo account è stato bloccato.
+      last_attempt: Hai un altro tentativo, prima che il tuo profilo venga bloccato.
+      locked: Il tuo profilo è bloccato.
       not_found_in_database: "%{authentication_keys} o password non valida."
-      pending: Il tuo account è ancora in fase di approvazione.
-      timeout: La tua sessione è terminata. Per favore, effettua l'accesso o registrati per continuare.
-      unauthenticated: Devi effettuare l'accesso o registrarti per continuare.
-      unconfirmed: Devi confermare il tuo indirizzo email per continuare.
+      pending: Il tuo profilo è ancora in revisione.
+      timeout: La tua sessione è scaduta. Sei pregato di accedere nuovamente per continuare.
+      unauthenticated: Devi accedere o registrarti, per continuare.
+      unconfirmed: Devi confermare il tuo indirizzo email prima di continuare.
     mailer:
       confirmation_instructions:
-        action: Verifica indirizzo email
+        action: Verifica l'indirizzo email
         action_with_app: Conferma e torna a %{app}
         explanation: Hai creato un account su %{host} con questo indirizzo email. Sei lontano solo un clic dall'attivarlo. Se non sei stato tu, per favore ignora questa email.
-        explanation_when_pending: Hai richiesto un invito a %{host} con questo indirizzo email. Una volta confermato il tuo indirizzo e-mail, analizzeremo la tua richiesta. Non potrai eseguire l'accesso fino a quel momento. Se la tua richiesta sarà rifiutata, i tuoi dati saranno rimossi, quindi nessun'altra azione ti sarà richiesta. Se non fossi stato tu, per favore ignora questa email.
-        extra_html: Per favore controlla<a href="%{terms_path}">le regole del server</a> e <a href="%{policy_path}">i nostri termini di servizio</a>.
+        explanation_when_pending: Hai richiesto un invito a %{host} con questo indirizzo email. Una volta confermato, revisioneremo la tua richiesta. Puoi accedere per modificare i tuoi dettagli o eliminare il tuo profilo, ma non puoi accedere a gran parte delle funzioni finché il tuo profilo non è approvato. Se la tua richiesta viene rifiutata, i tuoi dati saranno rimossi e non ti sarà richiesta alcuna ulteriore azione. Se non sei stato tu, sei pregato di ignorare quest'email.
+        extra_html: Sei anche pregato di dare un'occhiata <a href="%{terms_path}">alle regole del server</a> e <a href="%{policy_path}">ai nostri termini di servizio</a>.
         subject: 'Mastodon: Istruzioni di conferma per %{instance}'
-        title: Verifica indirizzo email
+        title: Verifica l'indirizzo email
       email_changed:
-        explanation: 'L''indirizzo email del tuo account sta per essere cambiato in:'
-        extra: Se non hai cambiato la tua email, è probabile che qualcuno abbia ottenuto l'accesso al tuo account. Cambia immediatamente la tua password e contatta l'amministratore del server se non puoi più accedere al tuo account.
+        explanation: 'L''indirizzo email per il tuo profilo sarà modificato in:'
+        extra: Se non hai cambiato la tua email, è probabile che qualcuno abbia ottenuto l'accesso al tuo profilo. Sei pregato di cambiare immediatamente la tua password o di contattare l'admin del server, se non riesci più ad accedere al tuo profilo.
         subject: 'Mastodon: Email cambiata'
         title: Nuovo indirizzo email
       password_change:
-        explanation: La password del tuo account è stata cambiata.
-        extra: Se non hai cambiato la password, è probabile che qualcuno abbia ottenuto l'accesso al tuo account. Cambia immediatamente la tua password e contatta l'amministratore del server se non puoi più accedere al tuo account.
-        subject: 'Mastodon: Password modificata'
+        explanation: La password del tuo profilo è stata cambiata.
+        extra: Se non hai cambiato la tua password, è probabile che qualcuno abbia ottenuto l'accesso al tuo profilo. Sei pregato di cambiarla immediatamente o di contattare l'admin del server, se non riesci più ad accedere al tuo profilo.
+        subject: 'Mastodon: Password cambiata'
         title: Password cambiata
       reconfirmation_instructions:
         explanation: Conferma il nuovo indirizzo per cambiare la tua email.
-        extra: Se questo cambiamento non è stato chiesto da te, ignora questa email. L'indirizzo email per l'account Mastodon non verrà cambiato finché non accedi dal link qui sopra.
+        extra: Se questa modifica non è stata avviata da te, sei pregato di ignorare quest'email. L'indirizzo email per il profilo di Mastodon non cambierà finché non accedrai al link sopra.
         subject: 'Mastodon: Email di conferma per %{instance}'
-        title: Verifica indirizzo email
+        title: Verifica l'indirizzo email
       reset_password_instructions:
-        action: Cambia password
-        explanation: Hai richiesto una nuova password per il tuo account.
-        extra: Se questo cambiamento non è stato chiesto da te, ignora questa email. La tua password non verrà cambiata finché non accedi tramite il link qui sopra e ne crei una nuova.
-        subject: 'Mastodon: Istruzioni per il reset della password'
-        title: Ripristino password
+        action: Modifica la password
+        explanation: Hai richiesto una nuova password per il tuo profilo.
+        extra: Se non lo hai richiesto, sei pregato di ignorare quest'email. La tua password non cambierà finché non accedrai al link riportato sopra e ne creerai una nuova.
+        subject: 'Mastodon: Istruzioni di ripristino della password'
+        title: Ripristino della password
       two_factor_disabled:
-        explanation: L'autenticazione a due fattori per il tuo account è stata disattivata. Il login è ora possibile utilizzando solo l'indirizzo e-mail e la password.
-        subject: 'Mastodon: Autenticazione a due fattori disattivata'
-        title: 2FA disabilitata
+        explanation: L'autenticazione a due fattori per il tuo profilo è stata disabilitata. L'accesso è ora possibile utilizzando solo l'indirizzo email e la password.
+        subject: 'Mastodon: Autenticazione a due fattori disabilitata'
+        title: A2F disabilitata
       two_factor_enabled:
-        explanation: L'autenticazione a due fattori è stata attivata per il tuo account. Un token generato dall'app TOTP collegata sarà richiesto per il login.
-        subject: 'Mastodon: Autenticazione a due fattori attivata'
-        title: 2FA abilitata
+        explanation: L'autenticazione a due fattori è stata abilitata per il tuo profilo. Un token, generato dall'app TOTP collegata, sarà richiesto per l'accesso.
+        subject: 'Mastodon: Autenticazione a due fattori abilitata'
+        title: A2F abilitata
       two_factor_recovery_codes_changed:
-        explanation: I precedenti codici di recupero sono stati annullati e ne sono stati generati di nuovi.
-        subject: 'Mastodon: codici di recupero a due fattori ri-generati'
-        title: Codici di recupero 2FA modificati
+        explanation: I precedenti codici di recupero sono stati annullati e dei nuovi sono stati generati.
+        subject: 'Mastodon: Codici di recupero a due fattori rigenerati'
+        title: Codici di recupero A2F cambiati
       unlock_instructions:
         subject: 'Mastodon: Istruzioni di sblocco'
       webauthn_credential:
         added:
-          explanation: La seguente chiave di sicurezza è stata aggiunta al tuo account
+          explanation: La seguente chiave di sicurezza è stata aggiunta al tuo profilo
           subject: 'Mastodon: Nuova chiave di sicurezza'
-          title: È stata aggiunta una nuova chiave di sicurezza
+          title: Una nuova chiave di sicurezza è stata aggiunta
         deleted:
-          explanation: La seguente chiave di sicurezza è stata cancellata dal tuo account
-          subject: 'Mastodon: Chiave di sicurezza cancellata'
-          title: Una delle tue chiavi di sicurezza è stata cancellata
+          explanation: La seguente chiave di sicurezza è stata eliminata dal tuo profilo
+          subject: 'Mastodon: Chiave di sicurezza eliminata'
+          title: Una delle tue chiavi di sicurezza è stata eliminata
       webauthn_disabled:
-        explanation: L'autenticazione con le chiavi di sicurezza è stata disabilitata per il tuo account. L'accesso è ora possibile utilizzando solo il codice generato dall'app TOTP abbinata.
+        explanation: L'autenticazione con le chiavi di sicurezza è stata disabilitata per il tuo profilo. L'accesso è ora possibile utilizzando solo il token, generato dall'app TOTP associata.
         subject: 'Mastodon: Autenticazione con chiavi di sicurezza disabilitata'
-        title: Chiavi di sicurezza disattivate
+        title: Chiavi di sicurezza disabilitate
       webauthn_enabled:
-        explanation: L'autenticazione con chiave di sicurezza è stata attivata per il tuo account. La chiave di sicurezza può ora essere utilizzata per l'accesso.
-        subject: 'Mastodon: Autenticazione della chiave di sicurezza abilitata'
-        title: Chiave di sicurezza abilitata
+        explanation: L'autenticazione con chiavi di sicurezza è stata abilitata per il tuo profilo. La tua chiave di sicurezza è ora utilizzabile per l'accesso.
+        subject: 'Mastodon: Autenticazione con chiavi di sicurezza abilitata'
+        title: Chiavi di sicurezza abilitate
     omniauth_callbacks:
       failure: Impossibile autenticarti da %{kind} perché "%{reason}".
-      success: Autenticato con successo con account %{kind}.
+      success: Autenticato correttamente dal profilo %{kind}.
     passwords:
-      no_token: Non puoi accedere a questa pagina senza essere stato reindirizzato da una mail di reset password. Se arrivi da una mail di reset password, per favore controlla di aver copiato per intero l'URL fornito.
-      send_instructions: Se la tua mail è presente nel nostro database, riceverai in pochi minuti un link per recuperare la tua password al tuo indirizzo mail.
-      send_paranoid_instructions: Se la tua mail è presente nel nostro database, riceverai in pochi minuti un link per recuperare la tua password al tuo indirizzo mail.
-      updated: La tua password è stata modificata con successo. Abbiamo già effettuato l'accesso per te.
-      updated_not_active: La tua password è stata modificata con successo.
+      no_token: Non puoi accedere a questa pagina senza provenire da un'email di ripristino della password. Se provieni da un'email di ripristino della password, sei pregato di assicurarti di aver utilizzato l'URL completo fornito.
+      send_instructions: Se il tuo indirizzo email esiste nel nostro database, riceverai un link di recupero della password al tuo indirizzo email in pochi minuti. Sei pregato di controllare la tua cartella dello spam, se non hai ricevuto quest'email.
+      send_paranoid_instructions: Se il tuo indirizzo email esiste nel nostro database, riceverai un link di recupero della password al tuo indirizzo email, in pochi minuti. Sei pregato di controllare la tua cartella dello spam, se non hai ricevuto quest'email.
+      updated: La tua password è stata modificata correttamente. Sei ora connesso.
+      updated_not_active: La tua password è stata modificata correttamente.
     registrations:
-      destroyed: Addio! Il tuo account è stato cancellato. Speriamo di rivederti presto.
+      destroyed: Addio! Il tuo profilo è stato eliminato correttamente. Speriamo di rivederti presto.
       signed_up: Benvenuto! Ti sei registrato con successo.
-      signed_up_but_inactive: Ti sei registrato con successo. Purtroppo però non possiamo farti accedere perché non hai ancora attivato il tuo account.
-      signed_up_but_locked: Ti sei registrato con successo. Purtroppo però non possiamo farti accedere perché il tuo account è bloccato.
-      signed_up_but_pending: Un messaggio con un collegamento per la conferma è stato inviato al tuo indirizzo email. Dopo aver cliccato il collegamento, esamineremo la tua richiesta. Ti sarà notificato se verrà approvata.
-      signed_up_but_unconfirmed: Un messaggio con un link di conferma è stato inviato al tuo indirizzo email. Per favore, visita il link per attivare il tuo account.
-      update_needs_confirmation: Il tuo account è stato aggiornato correttamente, tuttavia è necessario verificare il tuo nuovo indirizzo e-mail. Controlla la tua casella di posta elettronica e segui il link di conferma per confermare il tuo nuovo indirizzo e-mail. Controlla la cartella posta indesiderata se non trovi l'email.
-      updated: Il tuo account è stato aggiornato con successo.
+      signed_up_but_inactive: Ti sei registrato con successo. Tuttavia, non siamo riusciti a farti accedere perché il tuo profilo non è ancora stato attivato.
+      signed_up_but_locked: Ti sei registrato con successo. Tuttavia, non siamo riusciti a farti accedere perché il tuo profilo è bloccato.
+      signed_up_but_pending: Un messaggio con un link di conferma è stato inviato al tuo indirizzo email. Una volta che avrai cliccato il link, revisioneremo la tua richiesta. Sarai notificato, se verrà approvata.
+      signed_up_but_unconfirmed: Un messaggio con un link di conferma è stato inviato al tuo indirizzo email. Sei pregato di seguire il link per attivare il tuo profilo. Sei pregato di controllare la tua cartella dello spam, se non hai ricevuto quest'email.
+      update_needs_confirmation: Hai aggiornato correttamente il tuo profilo, ma dobbiamo verificare il tuo nuovo indirizzo email. Sei pregato di controllare la tua email e di seguire il link di conferma, per confermare il tuo nuovo indirizzo email. Sei pregato di controllare la tua cartella dello spam, se non hai ricevuto quest'email.
+      updated: Il tuo profilo è stato aggiornato con successo.
     sessions:
-      already_signed_out: Sei uscito correttamente dal tuo account.
-      signed_in: Accesso eseguito correttamente.
-      signed_out: Sei uscito correttamente dal tuo account.
+      already_signed_out: Disconnesso correttamente.
+      signed_in: Connesso correttamente.
+      signed_out: Disconnesso correttamente.
     unlocks:
-      send_instructions: Riceverai in pochi minuti una email con istruzioni su come sbloccare il tuo account.
-      send_paranoid_instructions: Se il tuo account esiste, riceverai in pochi minuti una email con istruzioni su come sbloccarlo.
-      unlocked: Il tuo account è stato sbloccato con successo. Per favore, esegui l'accesso per continuare.
+      send_instructions: Riceverai un'email con le istruzioni su come sbloccare il tuo profilo in pochi minuti. Sei pregato di controllare la tua cartella dello spam, se non hai ricevuto quest'email.
+      send_paranoid_instructions: Se il tuo profilo esiste, riceverai un'email con le istruzioni su come sbloccarlo in pochi minuti. Sei pregato di controllare la tua cartella dello spam, se non hai ricevuto quest'email.
+      unlocked: Il tuo profilo è stato sbloccato correttamente. Sei pregato di accedere per continuare.
   errors:
     messages:
-      already_confirmed: era già stata confermata; per favore, prova ad eseguire l'accesso
-      confirmation_period_expired: deve essere confermata entro %{period}; per favore, richiedine una nuova
-      expired: è terminata; per favore, richiedine una nuova
+      already_confirmed: è già stata confermata, sei pregato di provare ad accedere
+      confirmation_period_expired: dev'essere confermata entro %{period}, sei pregato di richiederne una nuova
+      expired: è scaduta, sei pregato di richiederne una nuova
       not_found: non trovato
-      not_locked: non era stato bloccato
+      not_locked: non era bloccato
       not_saved:
-        one: '1 errore ha impedito che %{resource} venisse salvato:'
-        other: "%{count} errori hanno impedito che %{resource} venisse salvato:"
+        one: '1 errore ha impedito il salvataggio di questa %{resource}:'
+        other: "%{count} errori hanno impedito il salvataggio di %{resource}:"
diff --git a/config/locales/devise.lv.yml b/config/locales/devise.lv.yml
index 365ecdabe..e61e1b7fd 100644
--- a/config/locales/devise.lv.yml
+++ b/config/locales/devise.lv.yml
@@ -3,8 +3,8 @@ lv:
   devise:
     confirmations:
       confirmed: Tava e-pasta adrese ir veiksmīgi apstiprināta.
-      send_instructions: Pēc dažām minūtēm jūs saņemsi e-pastu ar norādījumiem, kā apstiprināt savu e -pasta adresi. Lūdzu, pārbaudi surogātpasta mapi, ja neesi saņēmis šo e-pastu.
-      send_paranoid_instructions: Ja tava e-pasta adrese ir mūsu datu bāzē, pēc dažām minūtēm saņemsi e-pastu ar norādījumiem, kā apstiprināt savu e-pasta adresi. Lūdzu, pārbaudi surogātpasta mapi, ja neesi saņēmis šo e-pastu.
+      send_instructions: Pēc dažām minūtēm saņemsi e-pastu ar norādījumiem, kā apstiprināt savu e-pasta adresi. Lūdzu, pārbaudi spama mapi, ja neesi saņēmis šo e-pastu.
+      send_paranoid_instructions: Ja tava e-pasta adrese ir mūsu datu bāzē, pēc dažām minūtēm saņemsi e-pastu ar norādījumiem, kā apstiprināt savu e-pasta adresi. Lūdzu, pārbaudi spama mapi, ja neesi saņēmis šo e-pastu.
     failure:
       already_authenticated: Jau esi pierakstījies.
       inactive: Tavs konts vēl nav aktivizēts.
@@ -19,10 +19,10 @@ lv:
     mailer:
       confirmation_instructions:
         action: Apstiprini savu e-pasta adresi
-        action_with_app: Apstiprini un atgriezies %{app}
+        action_with_app: Apstiprināt un atgriezties %{app}
         explanation: Ar šo e-pasta adresi esi izveidojis kontu vietnē %{host}. Tu esi viena klikšķa attālumā no tā aktivizēšanas. Ja tas nebiji tu, lūdzu, ignorē šo e-pasta ziņojumu.
-        explanation_when_pending: Tu pieteicies uzaicinājumam uz %{host} ar šo e-pasta adresi. Kad būsi apstiprinājis savu e-pasta adresi, mēs izskatīsim pieteikumu. Tu vari pieteikties, lai mainītu savu informāciju vai dzēstu savu kontu, taču nevari piekļūt lielākajai daļai funkciju, kamēr tavs konts nav apstiprināts. Ja tavs pieteikums tiks noraidīts, tavi dati tiks noņemti, tāpēc tev nebūs jāveic nekādas darbības. Ja tas nebiji tu, lūdzu, ignorē šo e-pasta ziņojumu.
-        extra_html: Lūdzu, pārbaudi arī <a href="%{terms_path}">servera nosacījumus</a> un <a href="%{policy_path}"> mūsu pakalpojumu sniegšanas noteikumi</a>.
+        explanation_when_pending: Tu pieteicies uzaicinājumam uz %{host} ar šo e-pasta adresi. Kad būsi apstiprinājis savu e-pasta adresi, mēs izskatīsim pieteikumu. Tu vari pierakstīties, lai mainītu savu informāciju vai dzēstu savu kontu, taču nevari piekļūt lielākajai daļai funkciju, kamēr tavs konts nav apstiprināts. Ja tavs pieteikums tiks noraidīts, tavi dati tiks noņemti, tāpēc tev nebūs jāveic nekādas darbības. Ja tas nebiji tu, lūdzu, ignorē šo e-pasta ziņojumu.
+        extra_html: Lūdzu, pārskati arī <a href="%{terms_path}">servera noteikumus</a> un <a href="%{policy_path}"> mūsu pakalpojumu sniegšanas noteikumus</a>.
         subject: 'Mastodon: Apstiprināšanas norādījumi %{instance}'
         title: Apstiprini savu e-pasta adresi
       email_changed:
@@ -51,27 +51,27 @@ lv:
         subject: 'Mastodon: Divfaktoru autentifikācija atspējota'
         title: 2FA atspējota
       two_factor_enabled:
-        explanation: Tavam kontam ir iespējota divfaktoru autentifikācija. Lai pieteiktos, būs nepieciešams marķieris, ko ģenerējusi pārī savienotā TOTP lietotne.
+        explanation: Tavam kontam ir iespējota divfaktoru autentifikācija. Lai pieteiktos, būs nepieciešams kods, ko ģenerējusi pārī savienotā TOTP lietotne.
         subject: 'Mastodon: Divfaktoru autentifikācija iespējota'
         title: 2FA iespējota
       two_factor_recovery_codes_changed:
         explanation: Iepriekšējie atkopšanas kodi ir atzīti par nederīgiem un ģenerēti jauni.
-        subject: 'Mastodon: Divfaktoru autkopšanas kodi pārģenerēti'
+        subject: 'Mastodon: Divfaktoru atkopšanas kodi pārģenerēti'
         title: 2FA atkopšanas kodi mainīti
       unlock_instructions:
         subject: 'Mastodon: Norādījumi atbloķēšanai'
       webauthn_credential:
         added:
           explanation: Tavam kontam ir pievienota šāda drošības atslēga
-          subject: 'Mastodon: Jaunā drošības atslēga'
+          subject: 'Mastodon: Jauna drošības atslēga'
           title: Tika pievienota jauna drošības atslēga
         deleted:
           explanation: Tālāk norādītā drošības atslēga ir izdzēsta no tava konta
           subject: 'Mastodon: Drošības atslēga izdzēsta'
           title: Viena no tavām drošības atslēgām tika izdzēsta
       webauthn_disabled:
-        explanation: Tavam kontam ir atspējota autentifikācija ar drošības atslēgām. Pieteikšanās tagad ir iespējama, izmantojot tikai marķieri, ko ģenerējusi pārī savienotā TOTP lietotne.
-        subject: 'Mastodon: Atutentifikācija ar drošības atslēgām ir atspējota'
+        explanation: Tavam kontam ir atspējota autentifikācija ar drošības atslēgām. Pieteikšanās tagad ir iespējama, izmantojot tikai kodu, ko ģenerējusi pārī savienotā TOTP lietotne.
+        subject: 'Mastodon: Autentifikācija ar drošības atslēgām ir atspējota'
         title: Drošības atslēgas atspējotas
       webauthn_enabled:
         explanation: Tavam kontam ir iespējota drošības atslēgas autentifikācija. Tavu drošības atslēgu tagad var izmantot, lai pieteiktos.
@@ -82,8 +82,8 @@ lv:
       success: Veiksmīgi autentificēts no %{kind} konta.
     passwords:
       no_token: Tu nevari piekļūt šai lapai, ja neesi saņēmis paroles atiestatīšanas e-pasta ziņojumu. Ja ienāci no paroles atiestatīšanas e-pasta, lūdzu, pārliecinies, vai izmanto visu norādīto URL.
-      send_instructions: Ja tava e pasta adrese ir mūsu datu bāzē, pēc dažām minūtēm uz savu e-pasta adresi saņemsi paroles atkopšanas saiti. Lūdzu, pārbaudi surogātpasta mapi, ja neesi saņēmis šo e-pastu.
-      send_paranoid_instructions: Ja tava e pasta adrese ir mūsu datu bāzē, pēc dažām minūtēm uz savu e-pasta adresi saņemsi paroles atkopšanas saiti. Lūdzu, pārbaudi surogātpasta mapi, ja neesi saņēmis šo e-pastu.
+      send_instructions: Ja tava e-pasta adrese ir mūsu datu bāzē, pēc dažām minūtēm uz savu e-pasta adresi saņemsi paroles atkopšanas saiti. Lūdzu, pārbaudi spama mapi, ja neesi saņēmis šo e-pastu.
+      send_paranoid_instructions: Ja tava e-pasta adrese ir mūsu datu bāzē, pēc dažām minūtēm uz savu e-pasta adresi saņemsi paroles atkopšanas saiti. Lūdzu, pārbaudi spama mapi, ja neesi saņēmis šo e-pastu.
       updated: Tava parole ir veiksmīgi nomainīta. Tagad tu esi pierakstījies.
       updated_not_active: Tava parole ir veiksmīgi nomainīta.
     registrations:
@@ -92,16 +92,16 @@ lv:
       signed_up_but_inactive: Tava reģistrācija bija veiksmīga. Tomēr mēs nevarējām tevi pierakstīt, jo tavs konts vēl nav aktivizēts.
       signed_up_but_locked: Tava reģistrācija bija veiksmīga. Tomēr mēs nevarējām tevi pierakstīt, jo tavs konts ir bloķēts.
       signed_up_but_pending: Uz tavu e-pasta adresi ir nosūtīts ziņojums ar apstiprinājuma saiti. Pēc noklikšķināšanas uz saites mēs izskatīsim tavu pieteikumu. Tu tiksi informēts, ja tas tiks apstiprināts.
-      signed_up_but_unconfirmed: Uz tavu e-pasta adresi ir nosūtīts ziņojums ar apstiprinājuma saiti. Lūdzu, seko saitei, lai aktivizētu savu kontu. Lūdzu, pārbaudi surogātpasta mapi, ja neesi saņēmis šo e-pastu.
-      update_needs_confirmation: Tu veiksmīgi atjaunināji savu kontu, taču mums ir jāverificē teva jaunā e-pasta adrese. Lūdzu, pārbaudi savu e-pastu un seko apstiprinājuma saitei, lai apstiprinātu savu jauno e-pasta adresi. Lūdzu, pārbaudi surogātpasta mapi, ja neesi saņēmis šo e-pastu.
+      signed_up_but_unconfirmed: Uz tavu e-pasta adresi ir nosūtīts ziņojums ar apstiprinājuma saiti. Lūdzu, seko saitei, lai aktivizētu savu kontu. Lūdzu, pārbaudi spama mapi, ja neesi saņēmis šo e-pastu.
+      update_needs_confirmation: Tu veiksmīgi atjaunināji savu kontu, taču mums ir jāverificē teva jaunā e-pasta adrese. Lūdzu, pārbaudi savu e-pastu un seko apstiprinājuma saitei, lai apstiprinātu savu jauno e-pasta adresi. Lūdzu, pārbaudi spama mapi, ja neesi saņēmis šo e-pastu.
       updated: Tavs konts ir veiksmīgi atjaunināts.
     sessions:
       already_signed_out: Veiksmīgi izrakstījies.
       signed_in: Veiksmīgi pierakstījies.
       signed_out: Veiksmīgi izrakstījies.
     unlocks:
-      send_instructions: Pēc dažām minūtēm tu saņemsi e-pastu ar norādījumiem, kā atbloķēt savu kontu. Lūdzu, pārbaudi surogātpasta mapi, ja neesi saņēmis šo e-pastu.
-      send_paranoid_instructions: Ja tavs konts eksistē, dažu minūšu laikā tu saņemsi e-pastu ar norādījumiem, kā to atbloķēt. Lūdzu, pārbaudi surogātpasta mapi, ja neesi saņēmis šo e-pastu.
+      send_instructions: Pēc dažām minūtēm tu saņemsi e-pastu ar norādījumiem, kā atbloķēt savu kontu. Lūdzu, pārbaudi spama mapi, ja neesi saņēmis šo e-pastu.
+      send_paranoid_instructions: Ja tavs konts eksistē, dažu minūšu laikā tu saņemsi e-pastu ar norādījumiem, kā to atbloķēt. Lūdzu, pārbaudi spama mapi, ja neesi saņēmis šo e-pastu.
       unlocked: Tavs konts ir veiksmīgi atbloķēts. Lūdzu, pieraksties, lai turpinātu.
   errors:
     messages:
diff --git a/config/locales/devise.ms.yml b/config/locales/devise.ms.yml
index f0f6274f5..c1165e47d 100644
--- a/config/locales/devise.ms.yml
+++ b/config/locales/devise.ms.yml
@@ -9,33 +9,77 @@ ms:
       already_authenticated: Anda sudah daftar masuk.
       inactive: Akaun anda belum diaktifkan.
       invalid: "%{authentication_keys} atau kata laluan tidak sah."
+      last_attempt: Anda mempunyai satu lagi percubaan sebelum akaun anda dikunci.
+      locked: Akaun anda dikunci.
+      not_found_in_database: "%{authentication_keys} atau kata laluan tidak sah."
       pending: Akaun anda masih dalam semakan.
+      timeout: Sesi anda telah tamat. Sila daftar masuk semula.
       unauthenticated: Anda perlu daftar masuk atau mendaftar sebelum meneruskan.
       unconfirmed: Anda perlu menyesahkan alamat e-mel anda sebelum meneruskan.
     mailer:
       confirmation_instructions:
         action: Sahkan alamat e-mel
+        action_with_app: Sahkan dan kembali ke %{app}
         explanation: Anda telah mencipta akaun pada %{host} dengan alamat e-mel ini. Anda satu klik sahaja daripada mengaktifkannya. Jika anda tidak mencipta akaun tersebut, sila abaikan e-mel ini.
+        explanation_when_pending: Anda telah memohon untuk undangan ke %{host} dengan alamat e-mel ini. Setelah anda mengesahkan alamat e-mel anda, kami akan menyemak permohonan tersebut. Anda boleh melog masuk untuk mengubah butiran atau menghapuskan akaun anda, tetapi anda tidak boleh mencapai kebanyakan fungsi sehinggalah akaun anda diluluskan. Jika permohonan anda ditolak, data anda akan dibuang dan tiada tindakan lanjut diperlukan. Jika ini bukan anda, sila abaikan e-mel ini.
+        extra_html: Sila periksa <a href="%{terms_path}">peraturan pelayan</a> serta <a href="%{policy_path}">terma perkhidmatan kami juga</a>.
+        subject: 'Mastodon: Arahan pengesahan untuk %{instance}'
         title: Sahkan alamat e-mel
       email_changed:
         explanation: 'Alamat e-mel untuk akaun anda sedang diubah kepada:'
+        extra: Jika anda tidak mengubah alamat e-mel anda, berkemungkinan seseorang telah memperoleh capaian kepada akaun anda. Sila ubah kata laluan anda dengan segera atau hubungi pentadbir pelayan jika anda dikunci daripada akaun anda.
         subject: 'Mastodon: E-mel ditukar'
         title: Alamat e-mel baru
       password_change:
         explanation: Kata laluan untuk akaun anda telah ditukar.
+        extra: Jika anda tidak mengubah kata laluan anda, berkemungkinan seseorang telah memperoleh capaian kepada akaun anda. Sila ubah kata laluan anda dengan segera atau hubungi pentadbir pelayan jika anda dikunci daripada akaun anda.
         subject: 'Mastodon: Kata laluan diubah'
         title: Kata laluan ditukar
       reconfirmation_instructions:
         explanation: Sahkan alamat baru untuk menukarkan e-mel anda.
+        extra: Jika perubahan ini tidak anda lakukan, sila abaikan e-mel ini. Alamat e-mel untuk akaun Mastodon tidak akan berubah sehinggalah anda mencapai pautan di atas.
+        subject: 'Mastodon: Sahkan e-mel untuk %{instance}'
         title: Sahkan alamat e-mel
       reset_password_instructions:
         action: Tukar kata laluan
         explanation: Anda meminta kata laluan baru untuk akaun anda.
+        extra: Jika anda tidak membuat permintaan ini, sila abaikan e-mel ini. Kata laluan anda tidak akan berubah sehinggalah anda mencapai pautan di atas dan membuat yang baharu.
+        subject: 'Mastodon: Arahan set semula kata laluan'
         title: Set semula kata laluan
       two_factor_disabled:
+        explanation: Pengesahan dwifaktor untuk akaun anda telah dilumpuhkan. Log masuk kini dibenarkan dengan hanya menggunakan alamat e-mel dan kata laluan.
+        subject: 'Mastodon: Pengesahan dwifaktor dilumpuhkan'
         title: 2FA dinyahaktifkan
       two_factor_enabled:
+        explanation: Pengesahan dwifaktor untuk akaun anda telah didayakan. Satu token yang dijanakan oleh aplikasi TOTP diperlukan untuk melog masuk.
+        subject: 'Mastodon: Pengesahan dwifaktor didayakan'
         title: 2FA diaktifkan
+      two_factor_recovery_codes_changed:
+        explanation: Kod pemulihan lama tidak lagi sah dan kod baharu telah dijanakan.
+        subject: 'Mastodon: Kod pemulihan dwifaktor dijanakan semula'
+        title: Kod pemulihan 2FA diubah
+      unlock_instructions:
+        subject: 'Mastodon: Arahan membuka kunci'
+      webauthn_credential:
+        added:
+          explanation: Kunci keselamatan berikut telah ditambahkan kepada akaun anda
+          subject: 'Mastodon: Kunci keselamatan baharu'
+          title: Kunci keselamatan baharu telah ditambahkan
+        deleted:
+          explanation: Kunci keselamatan berikut telah dihapuskan daripada akaun anda
+          subject: 'Mastodon: Kunci keselamatan dihapuskan'
+          title: Salah satu daripada kunci keselamatan anda telah dihapuskan
+      webauthn_disabled:
+        explanation: Pengesahan dengan kunci keselamatan untuk akaun anda telah dilumpuhkan. Log masuk kini dibenarkan dengan hanya menggunakan token yang dijanakan oleh aplikasi TOTP.
+        subject: 'Mastodon: Pengesahan dengan kunci keselamatan dilumpuhkan'
+        title: Kunci keselamatan dilumpuhkan
+      webauthn_enabled:
+        explanation: Pengesahan kunci keselamatan untuk akaun anda kini didayakan. Kunci keselamatan anda kini boleh digunakan untuk melog masuk.
+        subject: 'Mastodon: Pengesahan kunci keselamatan didayakan'
+        title: Kunci keselamatan didayakan
+    omniauth_callbacks:
+      failure: Tidak dapat mengesahkan anda daripada %{kind} disebabkan oleh “%{reason}”.
+      success: Berjaya disahkan daripada akaun %{kind}.
     passwords:
       updated: Kata laluan anda telah berjaya ditukar. Anda telah didaftar masuk.
       updated_not_active: Kata laluan anda telah berjaya ditukar.
diff --git a/config/locales/devise.sco.yml b/config/locales/devise.sco.yml
index f5a449d97..8563b4ee2 100644
--- a/config/locales/devise.sco.yml
+++ b/config/locales/devise.sco.yml
@@ -55,7 +55,7 @@ sco:
         subject: 'Mastodon: Twa-factor authentication turnt on'
         title: 2FA turnt on
       two_factor_recovery_codes_changed:
-        explanation: The last recovery codes hae been pit in the bucket an new anes makkit.
+        explanation: The last recovery codes haes been pit in the bucket an new anes makkit.
         subject: 'Mastodon: Twa-factor recovery codes re-jigged'
         title: 2FA recovery codes chynged
       unlock_instructions:
diff --git a/config/locales/devise.sk.yml b/config/locales/devise.sk.yml
index be85887ce..e11c7f1db 100644
--- a/config/locales/devise.sk.yml
+++ b/config/locales/devise.sk.yml
@@ -21,6 +21,7 @@ sk:
         action: Potvrď emailovú adresu
         action_with_app: Potvrď a vráť sa na %{app}
         explanation: S touto emailovou adresou si si vytvoril/a účet na %{host}. Si iba jeden klik od jeho aktivácie. Pokiaľ si to ale nebol/a ty, prosím ignoruj tento email.
+        explanation_when_pending: S touto e-mailovou adresou ste požiadali o pozvánku na %{host}. Po potvrdení vašej e-mailovej adresy vašu žiadosť skontrolujeme. Môžete sa prihlásiť, aby ste zmenili svoje údaje alebo vymazali svoje konto, ale kým nebude vaše konto schválené, nebudete mať prístup k väčšine funkcií. Ak bude vaša žiadosť zamietnutá, vaše údaje budú odstránené, takže sa od vás nebudú vyžadovať žiadne ďalšie kroky. Ak ste to neboli vy, tento e-mail ignorujte.
         extra_html: Prosím, pozri sa aj na <a href="%{terms_path}"> pravidlá tohto servera,</a> a <a href="%{policy_path}"> naše užívaťeľské podiemky</a>.
         subject: 'Mastodon: Potvrdzovacie pokyny pre %{instance}'
         title: Potvrď emailovú adresu
@@ -59,6 +60,23 @@ sk:
         title: Obnovovacie kódy pre dvoj-faktorové overovanie zmenené
       unlock_instructions:
         subject: 'Mastodon: Pokyny na odomknutie účtu'
+      webauthn_credential:
+        added:
+          explanation: Do vášho konta bol pridaný nasledujúci bezpečnostný kľúč
+          subject: 'Mastodon: Nový bezpečnostný kľúč'
+          title: Bol pridaný nový bezpečnostný kľúč
+        deleted:
+          explanation: Z vášho účtu bol odstránený nasledujúci bezpečnostný kľúč
+          subject: 'Mastodon: Bezpečnostný kľúč odstránený'
+          title: Jeden z vašich bezpečnostných kľúčov bol odstránený
+      webauthn_disabled:
+        explanation: Overovanie pomocou bezpečnostných kľúčov bolo pre vaše konto vypnuté. Prihlásenie je teraz možné len pomocou tokenu vygenerovaného spárovanou aplikáciou TOTP.
+        subject: 'Mastodon: Overovanie s vypnutými bezpečnostnými kľúčmi'
+        title: Bezpečnostné kľúče sú vypnuté
+      webauthn_enabled:
+        explanation: Pre vaše konto bolo povolené overovanie bezpečnostným kľúčom. Váš bezpečnostný kľúč teraz môžete použiť na prihlásenie.
+        subject: 'Mastodon: Povolené overovanie bezpečnostného kľúča'
+        title: Povolené bezpečnostné kľúče
     omniauth_callbacks:
       failure: Nebolo možné ťa overiť z %{kind}, lebo "%{reason}".
       success: Úspešné overenie z účtu %{kind}.
diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml
index 13f46ce85..d85c0bcea 100644
--- a/config/locales/doorkeeper.ast.yml
+++ b/config/locales/doorkeeper.ast.yml
@@ -4,16 +4,8 @@ ast:
     attributes:
       doorkeeper/application:
         name: Nome de l'aplicación
-        redirect_uri: URI de redireición
         scopes: Ámbitos
         website: Sitiu web de l'aplicación
-    errors:
-      models:
-        doorkeeper/application:
-          attributes:
-            redirect_uri:
-              invalid_uri: ha ser una URI válida.
-              relative_uri: ha ser una URI absoluta.
   doorkeeper:
     applications:
       buttons:
@@ -22,12 +14,9 @@ ast:
         destroy: Destruyir
         edit: Editar
         submit: Unviar
-      confirmations:
-        destroy: "¿De xuru?"
       form:
         error: "¡Meca! Revisa los errores posibles del formulariu"
       help:
-        native_redirect_uri: Usa %{native_redirect_uri} pa pruebes llocales
         redirect_uri: Usa una llinia per URI
       index:
         empty: Nun tienes nenguna aplicación.
@@ -51,26 +40,21 @@ ast:
       new:
         prompt_html: "%{client_name}, que ye una aplicación de terceros, quier tener accesu a la cuenta. <strong>Si nun t'enfotes nella, nun habríes autorizala.</strong>"
       show:
-        title: Copia esti códigu d'autorización y apiégalu na aplicación.
+        title: Copia esti códigu d'autorización ya apiégalu na aplicación.
     authorized_applications:
       buttons:
         revoke: Revocar
-      confirmations:
-        revoke: "¿De xuru?"
       index:
         description_html: Estes son les aplicaciones que puen acceder a la cuenta cola API. Si equí hai aplicaciones que nun conoces o hai dalguna aplicación que nun funciona correutamente, pues revocar el so accesu.
         never_used: Enxamás s'usó
         scopes: Permisos
-        title: Les aplicaciones qu'autoricesti
     errors:
       messages:
         access_denied: El propietariu del recursu o'l sirvidor d'autorización negó la solicitú.
         invalid_token:
-          expired: Caducó'l pase d'accesu
           revoked: Revocóse'l pase d'accesu
           unknown: El pase d'accesu nun ye válidu
         server_error: El sirvidor d'autorización atopó una condición inesperada qu'evitó que cumpliera la solicitú.
-        temporarily_unavailable: Anguaño'l sirvidor d'autorizaciones nun ye a remanar la solicitú pola mor d'una sobrecarga temporal o caltenimientu del sirvidor.
         unauthorized_client: El veceru nun ta autorizáu pa facer esta solicitú con esti métodu.
         unsupported_response_type: El sirvidor d'autorización nun ye compatible con esti tipu de respuesta.
     grouped_scopes:
@@ -94,7 +78,6 @@ ast:
     scopes:
       admin:read: llee tolos datos del sirvidor
       admin:read:accounts: llee la información sensible de toles cuentes
-      admin:read:reports: llee la información sensible de tolos informes y cuentes informaes
       admin:write: modifica tolos datos del sirvidor
       crypto: usa'l cifráu de puntu a puntu
       follow: modifica les rellaciones de les cuentes
@@ -103,25 +86,22 @@ ast:
       read:accounts: mira la información de les cuentes
       read:blocks: mira les cuentes bloquiaes
       read:bookmarks: mira los marcadores
-      read:favourites: ver los tos favoritos
       read:filters: mira les peñeres
       read:follows: mira quién sigues
       read:lists: mira les llistes
-      read:mutes: ver quién silencies
       read:notifications: mira los avisos
       read:reports: mira los informes
       read:search: busca nel to nome
       read:statuses: mira tolos artículos
       write: modifica los datos de les cuentes
       write:accounts: modifica los perfiles
-      write:blocks: bloquia cuentes y dominios
-      write:bookmarks: amestar estaos a Marcadores
+      write:blocks: bloquia cuentes ya dominios
       write:favourites: artículos favoritos
       write:filters: crea peñeres
       write:follows: sigue a perfiles
       write:lists: crea llistes
       write:media: xube ficheros multimedia
-      write:mutes: desactiva los avisos de perfiles y de conversaciones
+      write:mutes: desactiva los avisos de perfiles ya de conversaciones
       write:notifications: borra los avisos
       write:reports: informa d'otres perfiles
       write:statuses: espubliza artículos
diff --git a/config/locales/doorkeeper.be.yml b/config/locales/doorkeeper.be.yml
index c14e7518b..3f031904a 100644
--- a/config/locales/doorkeeper.be.yml
+++ b/config/locales/doorkeeper.be.yml
@@ -5,7 +5,7 @@ be:
       doorkeeper/application:
         name: Назва праграмы
         redirect_uri: URI перанакіравання
-        scopes: Сферы ўжывання.
+        scopes: Дазволы
         website: Вэб-сайт праграмы
     errors:
       models:
@@ -31,7 +31,7 @@ be:
       form:
         error: Вой! Праверце вашу форму на магчымыя памылкі
       help:
-        native_redirect_uri: Карыстайце %{native_redirect_uri} для лакальных тэстаў
+        native_redirect_uri: Для лакальных тэстаў выкарыстоўвайце %{native_redirect_uri}
         redirect_uri: Выкарыстоўвайце адзін радок для кожнай спасылкі
         scopes: Падзяліце вобласці абмежаванняў прабеламі. Пакіньце поле пустым, каб выкарыстоўваць дыяпазоны па змаўчанні.
       index:
@@ -41,7 +41,7 @@ be:
         empty: У вас няма праграм.
         name: Назва
         new: Новая праграма
-        scopes: Межы агляду
+        scopes: Дазволы
         show: Паказаць
         title: Вашы праграмы
       new:
@@ -129,7 +129,7 @@ be:
         crypto: Скразное шыфраванне
         favourites: Упадабаныя
         filters: Фільтры
-        follow: Узаемасувязі
+        follow: Зносіны
         follows: Падпіскі
         lists: Спісы
         media: Мультымедыйныя ўкладанні
@@ -147,39 +147,39 @@ be:
       application:
         title: Неабходна OAuth аўтарызацыя
     scopes:
-      admin:read: чытаць усе дадзеныя на гэтым серверы
+      admin:read: чытаць усе даныя на серверы
       admin:read:accounts: бачыць канфідэнцыйную інфармацыю ўсіх акаўнтаў
       admin:read:reports: чытаць далікатную інфармацыю са скарг і ўліковых запісаў, на якія пададзена скарга
-      admin:write: змяняць усе дадзеныя на гэтым серверы
+      admin:write: змяняць усе даныя на серверы
       admin:write:accounts: мадэраваць уліковыя запісы
       admin:write:reports: мадэраваць скаргі
       crypto: выкарыстоўваць скразное шыфраванне
       follow: змяняць зносіны ўліковага запісу
       push: атрымліваць push-апавяшчэнні
-      read: чытаць усе дадзеныя свайго ўліковага запісу
+      read: чытаць усе даныя вашага ўліковага запісу
       read:accounts: бачыць інфармацыю аб уліковых запісах
-      read:blocks: бачыць свае блакіроўкі
-      read:bookmarks: бачыць свае закладкі
-      read:favourites: бачыць свае выбранае
-      read:filters: бачыць свае фільтры
-      read:follows: бачыць свае падпіскі
-      read:lists: бачыць свае спіскі
-      read:mutes: праглядзець спіс ігнараваных
-      read:notifications: глядзець вашы абвяшчэннi
-      read:reports: паглядзець вашыя скаргі
+      read:blocks: бачыць вашы блакіроўкі
+      read:bookmarks: бачыць вашы закладкі
+      read:favourites: бачыць ваш спіс упадабанага
+      read:filters: бачыць вашы фільтры
+      read:follows: бачыць вашы падпіскі
+      read:lists: бачыць вашы спісы
+      read:mutes: бачыць ваш спіс ігнараваных
+      read:notifications: бачыць вашы апавяшчэнні
+      read:reports: бачыць вашы скаргі
       read:search: шукаць ад вашага імя
       read:statuses: бачыць усе допісы
-      write: абнавіць усе дадзеныя свайго ўліковага запісу
-      write:accounts: змяніць ваш профіль
+      write: змяняць усе даныя вашага ўліковага запісу
+      write:accounts: змяняць ваш профіль
       write:blocks: блакіраваць уліковыя запісы і дамены
-      write:bookmarks: захаваныя допісы
-      write:conversations: ігнараваць і выдаліць размовы
-      write:favourites: упадабаныя допісы
+      write:bookmarks: дадаваць допісы ў закладкі
+      write:conversations: ігнараваць і выдаляць размовы
+      write:favourites: дадаваць допісы ва ўпадабанае
       write:filters: ствараць фільтры
-      write:follows: падпісвайцеся на людзей
-      write:lists: стварыць спiсы
-      write:media: запампаваць медыя-файлы
-      write:mutes: заглушыць людзей ды размовы
-      write:notifications: ачысціць вашы абвяшчэнні
-      write:reports: паскардзіцца на іншых людзей
-      write:statuses: апублікаваць запісы
+      write:follows: падпісвацца на людзей
+      write:lists: ствараць спiсы
+      write:media: запампоўваць медыяфайлы
+      write:mutes: ігнараваць людзей і размовы
+      write:notifications: выдаляць апавяшчэнні
+      write:reports: скардзіцца на іншых людзей
+      write:statuses: публікаваць допісы
diff --git a/config/locales/doorkeeper.bg.yml b/config/locales/doorkeeper.bg.yml
index ba52a2ac3..4fe8a8781 100644
--- a/config/locales/doorkeeper.bg.yml
+++ b/config/locales/doorkeeper.bg.yml
@@ -31,8 +31,8 @@ bg:
       form:
         error: О, не! Провери формата за възможни грешки
       help:
-        native_redirect_uri: Изполвай %{native_redirect_uri} за локални тестове
-        redirect_uri: Използвай един ред за всяко URI
+        native_redirect_uri: Изполвайте %{native_redirect_uri} за локални тестове
+        redirect_uri: Използвайте един ред за всяко URI
         scopes: Разделяй диапазоните с интервал. Остави празно, за да използваш диапазона по подразбиране.
       index:
         application: Приложение
@@ -74,7 +74,7 @@ bg:
         authorized_at: Упълномощено на %{date}
         description_html: Има приложения, можещи да имат достъп до акаунта ви, използвайки API. Ако тук има приложения, които не знаете, или работещи неправилно, то може да им откажете достъпа.
         last_used_at: Последно обновено на %{date}
-        never_used: Никога използвано
+        never_used: Не е използвано
         scopes: Разрешения
         superapp: Вътрешно
         title: Упълномощените ви приложения
@@ -153,10 +153,10 @@ bg:
       admin:write: промяна на всички данни на сървъра
       admin:write:accounts: извършване на действия за модериране на акаунти
       admin:write:reports: извършване на действия за модериране на докладвания
-      crypto: употреба на криптиране от край до край
-      follow: следването, блокирането, деблокирането и отмяната на следването на акаунтите
+      crypto: употреба на цялостно шифроване
+      follow: промяна на взаимоотношенията с други акаунти
       push: получаване на вашите изскачащи известия
-      read: четенето на данните от твоя акаунт
+      read: четене на всички данни от вашия акаунт
       read:accounts: преглед на информация за акаунти
       read:blocks: преглед на вашите блокирания
       read:bookmarks: преглед на вашите отметки
@@ -169,12 +169,12 @@ bg:
       read:reports: преглед на вашите докладвания
       read:search: търсене от ваше име
       read:statuses: преглед на всички публикации
-      write: промяна на всичките ви данни на акаунта
+      write: промяна на всички данни от вашия акаунт
       write:accounts: промяна на вашия профил
       write:blocks: блокиране на акаунти и домейни
       write:bookmarks: отмятане на състояния
       write:conversations: заглушаване и изтриване на разговорите
-      write:favourites: любими публикации
+      write:favourites: харесани публикации
       write:filters: създаване на филтри
       write:follows: последване на хора
       write:lists: създаване на списъци
diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml
index 4bf83bed3..a0ad2d622 100644
--- a/config/locales/doorkeeper.ca.yml
+++ b/config/locales/doorkeeper.ca.yml
@@ -4,7 +4,7 @@ ca:
     attributes:
       doorkeeper/application:
         name: Nom de l'aplicació
-        redirect_uri: URI per a redirecció
+        redirect_uri: Redirigeix la URI
         scopes: Àmbits
         website: Lloc web de l'aplicació
     errors:
@@ -25,19 +25,19 @@ ca:
         edit: Edita
         submit: Envia
       confirmations:
-        destroy: N'estàs segur?
+        destroy: Segur?
       edit:
         title: Edita l'aplicació
       form:
         error: Ep! Comprova el formulari per a possibles errors
       help:
-        native_redirect_uri: Usa %{native_redirect_uri} per a proves locals
+        native_redirect_uri: Fes servir %{native_redirect_uri} per a proves locals
         redirect_uri: Usa una línia per URI
-        scopes: Separa els àmbits amb espais. Deixa-ho en blanc per a usar els àmbits per defecte.
+        scopes: Separa els àmbits amb espais. En blanc per als àmbits per defecte.
       index:
         application: Aplicació
         callback_url: URL de retorn
-        delete: Suprimeix
+        delete: Elimina
         empty: No tens cap aplicació.
         name: Nom
         new: Nova aplicació
@@ -48,7 +48,7 @@ ca:
         title: Nova aplicació
       show:
         actions: Accions
-        application_id: Id de l'aplicació
+        application_id: Clau de client
         callback_urls: URL de retorn
         scopes: Àmbits
         secret: Clau secreta de client
@@ -56,7 +56,7 @@ ca:
     authorizations:
       buttons:
         authorize: Autoritza
-        deny: Desautoritza
+        deny: Denega
       error:
         title: S'ha produït un error
       new:
@@ -69,7 +69,7 @@ ca:
       buttons:
         revoke: Revoca
       confirmations:
-        revoke: N'estàs segur?
+        revoke: Segur?
       index:
         authorized_at: Autoritzada el %{date}
         description_html: Aquestes són les aplicacions que poden accedir al teu compte usant l'API. Si hi ha aplicacions que no reconeixes o hi ha una aplicació que no funciona bé, pots revocar-ne l'accés.
@@ -127,7 +127,7 @@ ca:
         bookmarks: Marcadors
         conversations: Converses
         crypto: Xifrat d'extrem a extrem
-        favourites: Favorits
+        favourites: Preferits
         filters: Filtres
         follow: Relacions
         follows: Seguits
@@ -145,9 +145,9 @@ ca:
           applications: Aplicacions
           oauth2_provider: Proveïdor OAuth2
       application:
-        title: Autorització OAuth requerida
+        title: Cal una autorització OAuth
     scopes:
-      admin:read: llegir totes les dades en el servidor
+      admin:read: llegeix totes les dades en el servidor
       admin:read:accounts: llegir informació confidencial de tots els comptes
       admin:read:reports: llegir informació confidencial de tots els informes i comptes reportats
       admin:write: modificar totes les dades en el servidor
@@ -157,29 +157,29 @@ ca:
       follow: modificar relacions dels comptes
       push: rebre notificacions push del teu compte
       read: llegir les dades del teu compte
-      read:accounts: veure informació dels comptes
-      read:blocks: veure els teus bloqueigs
-      read:bookmarks: veure els teus marcadors
-      read:favourites: veure els teus favorits
-      read:filters: veure els teus filtres
-      read:follows: veure els teus seguiments
-      read:lists: veure les teves llistes
-      read:mutes: veure els teus silenciats
-      read:notifications: veure les teves notificacions
-      read:reports: veure els teus informes
+      read:accounts: mira informació dels comptes
+      read:blocks: mira els teus bloqueigs
+      read:bookmarks: mira els teus marcadors
+      read:favourites: mira els teus preferits
+      read:filters: mira els teus filtres
+      read:follows: mira els teus seguiments
+      read:lists: mira les teves llistes
+      read:mutes: mira els teus silenciats
+      read:notifications: mira les teves notificacions
+      read:reports: mira els teus informes
       read:search: cerca en nom teu
-      read:statuses: veure tots les publicacions
-      write: modificar totes les dades del teu compte
+      read:statuses: mira tots les publicacions
+      write: modifica totes les dades del teu compte
       write:accounts: modifica el teu perfil
-      write:blocks: bloqueja comptes i dominis
-      write:bookmarks: marcar publicacions
+      write:blocks: bloca comptes i dominis
+      write:bookmarks: marca publicacions
       write:conversations: silencia i esborra converses
-      write:favourites: marcar publicacions
-      write:filters: crear filtres
-      write:follows: seguir usuaris
-      write:lists: crear llistes
-      write:media: pujar fitxers multimèdia
+      write:favourites: afavoreix publicacions
+      write:filters: crea filtres
+      write:follows: segueix gent
+      write:lists: crea llistes
+      write:media: puja fitxers multimèdia
       write:mutes: silencia usuaris i converses
       write:notifications: esborra les teves notificacions
-      write:reports: informe d’altres persones
-      write:statuses: publicar publicacions
+      write:reports: informa sobre altres persones
+      write:statuses: fes publicacions
diff --git a/config/locales/doorkeeper.el.yml b/config/locales/doorkeeper.el.yml
index 8c75eb854..31fe3a8aa 100644
--- a/config/locales/doorkeeper.el.yml
+++ b/config/locales/doorkeeper.el.yml
@@ -112,6 +112,7 @@ el:
         read/write: Πρόσβαση ανάγνωσης και εγγραφής
         write: Πρόσβαση μόνο για εγγραφή
       title:
+        accounts: Λογαριασμοί
         admin/accounts: Διαχείριση λογαριασμών
         admin/all: Όλες οι λειτουργίες διαχείρησης
         admin/reports: Διαχείριση αναφορών
diff --git a/config/locales/doorkeeper.es-AR.yml b/config/locales/doorkeeper.es-AR.yml
index 4a874a366..46210dbc4 100644
--- a/config/locales/doorkeeper.es-AR.yml
+++ b/config/locales/doorkeeper.es-AR.yml
@@ -60,7 +60,7 @@ es-AR:
       error:
         title: Ocurrió un error
       new:
-        prompt_html: "%{client_name} solicitaa permiso para acceder a tu cuenta. Es una aplicación de terceros. <strong>Si no confiás en ella, no deberías autorizarla.</strong>"
+        prompt_html: "%{client_name} solicita permiso para acceder a tu cuenta. Es una aplicación de terceros. <strong>Si no confiás en ella, no deberías autorizarla.</strong>"
         review_permissions: Revisar permisos
         title: Autorización requerida
       show:
diff --git a/config/locales/doorkeeper.et.yml b/config/locales/doorkeeper.et.yml
index 26210e037..5660832a1 100644
--- a/config/locales/doorkeeper.et.yml
+++ b/config/locales/doorkeeper.et.yml
@@ -22,12 +22,12 @@ et:
         authorize: Autoriseeri
         cancel: Katkesta
         destroy: Hävita
-        edit: Redigeeri
+        edit: Muuda
         submit: Saada
       confirmations:
         destroy: Olete kindel?
       edit:
-        title: Redigeeri rakendust
+        title: Avalduse muutmine
       form:
         error: Oih! Kontrollige oma vormi võimalikest vigadest
       help:
@@ -60,6 +60,7 @@ et:
       error:
         title: Ilmnes viga
       new:
+        prompt_html: "%{client_name} soovib luba kontole juurdepääsuks. See on kolmanda osapoole rakendus. <strong>Kui pole usaldusväärne, siis ei tohiks seda lubada.</strong>"
         review_permissions: Lubade ülevaade
         title: Autoriseerimine vajalik
       show:
@@ -71,6 +72,7 @@ et:
         revoke: Olete kindel?
       index:
         authorized_at: Autoriseeritud %{date}
+        description_html: Need on rakendused, millel on API kaudu juurdepääs kontole. Kui on rakendusi, mis on tundmatud või rakendus käitub halvasti, saab selle juurdepääsu tühistada.
         last_used_at: Viimati kasutatud %{date}
         never_used: Pole kasutatud
         scopes: Õigused
@@ -83,6 +85,10 @@ et:
         invalid_client: Kliendi autentimine ebaõnnestus, kuna tundmatu klient, puudulik autentimine või mitte toetatud autentimismeetod.
         invalid_grant: Antud autoriseerimisluba on vale, aegunud, tagasi võetud, ei kattu kasutatud ümbersuunamise URLid või oli antud teisele kliendile.
         invalid_redirect_uri: Antud ümbersuunamise URL ei ole õige.
+        invalid_request:
+          missing_param: 'Puudub nõutud parameeter: %{value}.'
+          request_not_authorized: Päring vajab autoriseerimist. Autoriseerimispäringuks vajalik parameeter puudub või on vigane.
+          unknown: Taotluses puudub nõutav parameeter, see sisaldab toetamata parameetri väärtust või on muul viisil valesti vormindatud.
         invalid_resource_owner: Antud ressursi omaniku andmed on valed või ressursi omanikku ei leitud
         invalid_scope: Soovitud ulatus on vale, tundmatu või vigane.
         invalid_token:
@@ -163,8 +169,8 @@ et:
       read:reports: näha Teie teavitusi
       read:search: otsida Teie nimel
       read:statuses: näha kõiki staatuseid
-      write: redigeerida kogu Teie konto andmeid
-      write:accounts: redigeerida Teie profiili
+      write: muuta kogu konto andmeid
+      write:accounts: muuta profiili
       write:blocks: blokeerida kontosid ja domeene
       write:bookmarks: lisada staatusele järjehoidjaid
       write:conversations: vaigista ja kustuta vestlused
diff --git a/config/locales/doorkeeper.fr-QC.yml b/config/locales/doorkeeper.fr-QC.yml
index 794a2c939..073d5a0ee 100644
--- a/config/locales/doorkeeper.fr-QC.yml
+++ b/config/locales/doorkeeper.fr-QC.yml
@@ -3,19 +3,19 @@ fr-QC:
   activerecord:
     attributes:
       doorkeeper/application:
-        name: Nom
-        redirect_uri: L’URL de redirection
-        scopes: Étendues
+        name: Nom de l'application
+        redirect_uri: URI de redirection
+        scopes: Permissions
         website: Site web de l’application
     errors:
       models:
         doorkeeper/application:
           attributes:
             redirect_uri:
-              fragment_present: ne peut contenir un fragment.
-              invalid_uri: doit être une URL valide.
-              relative_uri: doit être une URL absolue.
-              secured_uri: doit être une URL HTTP/SSL.
+              fragment_present: ne peut pas contenir de fragment.
+              invalid_uri: doit être un URI valide.
+              relative_uri: doit être un URI absolue.
+              secured_uri: doit être un URI HTTP/SSL.
   doorkeeper:
     applications:
       buttons:
@@ -25,15 +25,15 @@ fr-QC:
         edit: Modifier
         submit: Envoyer
       confirmations:
-        destroy: Voulez-vous vraiment faire ça ?
+        destroy: Êtes-vous sûr·e?
       edit:
         title: Modifier l’application
       form:
-        error: Oups ! Vérifier votre formulaire pour des erreurs possibles
+        error: Oups! Vérifiez votre formulaire pour des erreurs possibles
       help:
         native_redirect_uri: Utiliser %{native_redirect_uri} pour les tests locaux
-        redirect_uri: Utiliser une ligne par URL
-        scopes: Séparer les permissions avec des espaces. Laisser vide pour utiliser les portées par défaut.
+        redirect_uri: Utiliser une ligne par URI
+        scopes: Séparez les portées par des espaces. Laissez vide pour utiliser les portées par défaut.
       index:
         application: Application
         callback_url: URL de retour d’appel
@@ -48,11 +48,11 @@ fr-QC:
         title: Nouvelle application
       show:
         actions: Actions
-        application_id: ID de l’application
+        application_id: Clé du client
         callback_urls: URL du retour d’appel
         scopes: Permissions
-        secret: Secret
-        title: 'Application : %{name}'
+        secret: Secret du client
+        title: 'Application: %{name}'
     authorizations:
       buttons:
         authorize: Autoriser
@@ -60,7 +60,7 @@ fr-QC:
       error:
         title: Une erreur est survenue
       new:
-        prompt_html: "%{client_name} souhaite accéder à votre compte. Il s'agit d'une application tierce. <strong>Vous ne devriez pas l'y autoriser si vous ne lui faites pas confiance.</strong>"
+        prompt_html: "%{client_name} souhaite accéder à votre compte. Il s'agit d'une application tierce. <strong>Si vous ne lui faites pas confiance, vous ne devriez pas l'y autoriser.</strong>"
         review_permissions: Examiner les autorisations
         title: Autorisation requise
       show:
@@ -69,7 +69,7 @@ fr-QC:
       buttons:
         revoke: Révoquer
       confirmations:
-        revoke: Voulez-vous vraiment faire ça ?
+        revoke: Êtes-vous sûr·e?
       index:
         authorized_at: Autorisée le %{date}
         description_html: Ces applications peuvent accéder à votre compte via l'API. Si vous voyez ici des applications que vous ne reconnaissez pas ou qui ne fonctionnent pas normalement, vous pouvez en révoquer les accès.
@@ -80,11 +80,11 @@ fr-QC:
         title: Vos applications autorisées
     errors:
       messages:
-        access_denied: Le propriétaire de la ressource ou le serveur d’autorisation a refusé la requête.
-        credential_flow_not_configured: Le flux des identifiants du mot de passe du propriétaire de la ressource a échoué car Doorkeeper.configure.resource_owner_from_credentials n’est pas configuré.
+        access_denied: Le/la propriétaire de la ressource ou le serveur d’autorisation a refusé la requête.
+        credential_flow_not_configured: Le flux des identifiants du mot de passe du/de la propriétaire de la ressource a échoué car Doorkeeper.configure.resource_owner_from_credentials n’est pas configuré.
         invalid_client: L’authentification du client a échoué à cause d’un client inconnu, d’aucune authentification de client incluse ou d’une méthode d’authentification non prise en charge.
-        invalid_grant: L’autorisation accordée est invalide, expirée, annulée, ne concorde pas avec l’URL de redirection utilisée dans la requête d’autorisation, ou a été délivrée à un autre client.
-        invalid_redirect_uri: L’URL de redirection n’est pas valide.
+        invalid_grant: L’autorisation accordée est invalide, expirée, révoquée, ne concorde pas avec l’URI de redirection utilisée dans la requête d’autorisation, ou a été délivrée à un autre client.
+        invalid_redirect_uri: L’URI de redirection n’est pas valide.
         invalid_request:
           missing_param: 'Paramètre requis manquant: %{value}.'
           request_not_authorized: La requête doit être autorisée. Le paramètre requis pour l'autorisation de la requête est manquant ou non valide.
diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml
index de4efd121..eb3b018bd 100644
--- a/config/locales/doorkeeper.gl.yml
+++ b/config/locales/doorkeeper.gl.yml
@@ -160,7 +160,7 @@ gl:
       read:accounts: ver información das contas
       read:blocks: ver a quen bloqueas
       read:bookmarks: ver os marcadores
-      read:favourites: ver os favoritos
+      read:favourites: ver as favoritas
       read:filters: ver os filtros
       read:follows: ver a quen segues
       read:lists: ver as tuas listaxes
@@ -174,7 +174,7 @@ gl:
       write:blocks: bloquear contas e dominios
       write:bookmarks: marcar publicacións
       write:conversations: acalar e eliminar conversas
-      write:favourites: publicacións favoritas
+      write:favourites: marcar como favorita
       write:filters: crear filtros
       write:follows: seguir usuarias
       write:lists: crear listaxes
diff --git a/config/locales/doorkeeper.it.yml b/config/locales/doorkeeper.it.yml
index 15b1744d7..4c48196a6 100644
--- a/config/locales/doorkeeper.it.yml
+++ b/config/locales/doorkeeper.it.yml
@@ -3,19 +3,19 @@ it:
   activerecord:
     attributes:
       doorkeeper/application:
-        name: Nome applicazione
+        name: Nome dell'applicazione
         redirect_uri: URI di reindirizzamento
-        scopes: Scopi
-        website: Sito web applicazione
+        scopes: Ambiti
+        website: Sito web dell'applicazione
     errors:
       models:
         doorkeeper/application:
           attributes:
             redirect_uri:
               fragment_present: non può contenere un frammento.
-              invalid_uri: deve essere un URI valido.
-              relative_uri: deve essere un URI assoluto.
-              secured_uri: deve essere un URI HTTPS/SSL.
+              invalid_uri: dev'essere un URI valido.
+              relative_uri: dev'essere un URI assoluto.
+              secured_uri: dev'essere un URI HTTPS/SSL.
   doorkeeper:
     applications:
       buttons:
@@ -25,33 +25,33 @@ it:
         edit: Modifica
         submit: Invia
       confirmations:
-        destroy: Sei sicuro/a?
+        destroy: Sei sicuro?
       edit:
-        title: Modifica applicazione
+        title: Modifica la richiesta
       form:
-        error: Ooops! Controlla nel modulo la presenza di errori
+        error: Oops! Controlla il tuo modulo per la presenza di errori
       help:
-        native_redirect_uri: Usa %{native_redirect_uri} per test locali
+        native_redirect_uri: Usa %{native_redirect_uri} per i test locali
         redirect_uri: Usa una riga per URI
-        scopes: Dividi gli scopes con spazi. Lascia vuoto per utilizzare gli scopes di default.
+        scopes: Separa gli ambiti con gli spazi. Lascia vuoto per usare quelli predefiniti.
       index:
         application: Applicazione
-        callback_url: URL di callback
+        callback_url: URL di richiamata
         delete: Elimina
         empty: Non hai applicazioni.
         name: Nome
         new: Nuova applicazione
-        scopes: Visibilità
+        scopes: Ambiti
         show: Mostra
         title: Le tue applicazioni
       new:
         title: Nuova applicazione
       show:
         actions: Azioni
-        application_id: Id applicazione
-        callback_urls: Callback urls
-        scopes: Scopi
-        secret: Secret
+        application_id: Chiave del client
+        callback_urls: URL di richiamata
+        scopes: Ambiti
+        secret: Codice segreto del client
         title: 'Applicazione: %{name}'
     authorizations:
       buttons:
@@ -60,58 +60,58 @@ it:
       error:
         title: Si è verificato un errore
       new:
-        prompt_html: "%{client_name} vorrebbe l'autorizzazione ad accedere al tuo profilo. È un'applicazione di terze parti. <strong>Se non ti fidi, non dovresti autorizzarlo.</strong>"
-        review_permissions: Esamina le autorizzazioni
-        title: Autorizzazione richiesta
+        prompt_html: "%{client_name} vorrebbe l'autorizzazione ad accedere al tuo profilo. È un'applicazione di terze parti. <strong>Se non ti fidi, non dovresti autorizzarla.</strong>"
+        review_permissions: Revisiona le autorizzazioni
+        title: Autorizzazione necessaria
       show:
-        title: Copia questo codice di autorizzazione e incollalo nell'applicazione.
+        title: Copia questo codice d'autorizzazione e incollalo all'applicazione.
     authorized_applications:
       buttons:
-        revoke: Disabilita
+        revoke: Revoca
       confirmations:
-        revoke: Sei sicuro/a?
+        revoke: Sei sicuro?
       index:
         authorized_at: Autorizzato il %{date}
-        description_html: Queste sono le applicazioni che possono accedere al tuo profilo usando l'API. Se qui ci sono delle applicazioni che non riconosci, o un'applicazione si sta comportando erroneamente, puoi revocarne l'accesso.
-        last_used_at: Ultimo uso il %{date}
-        never_used: Mai usato
+        description_html: Queste sono le applicazioni che possono accedere al tuo profilo utilizzando l'API. Se qui ci sono delle applicazioni che non riconosci o se un'applicazione si sta comportando in modo errato, puoi revocarne l'accesso.
+        last_used_at: Ultimo utilizzo il %{date}
+        never_used: Mai usata
         scopes: Autorizzazioni
-        superapp: Interno
-        title: Applicazioni autorizzate
+        superapp: Interna
+        title: Le tue applicazioni autorizzate
     errors:
       messages:
-        access_denied: Il proprietario del servizio o il server di autorizzazione hanno rifiutato la richiesta.
-        credential_flow_not_configured: Il processo Resource Owner Password Credentials è fallito perché Doorkeeper.configure.resource_owner_from_credentials non è stato configurato.
-        invalid_client: Accesso al servizio fallito perché il servizio è sconosciuto, l'accesso al servizio non è stato incluso, o il metodo di accesso non è supportato.
-        invalid_grant: Il permesso d'autorizzazione è non valido, scaduto, disabilitato, non coincide con l'URI di reindirizzamento fornito nella richiesta di autorizzazione, o è stato rilasciato da un altro client.
-        invalid_redirect_uri: L'URI di reindirizzamento fornito non è valido.
+        access_denied: Il proprietario della risorsa o il server d'autorizzazione ha negato la richiesta.
+        credential_flow_not_configured: Il processo delle Credenziali Password del Proprietario della Risorsa è fallito a causa della mancata configurazione di Doorkeeper.configure.resource_owner_from_credentials.
+        invalid_client: Autenticazione del client fallita a causa di un client sconosciuto, di nessun'autenticazione del client inclusa o di un metodo d'autenticazione non supportato.
+        invalid_grant: L'autorizzazione fornita non è valida, è scaduta, è stata revocata, non corrisponde all'URI di reindirizzamento utilizzato nella richiesta d'autorizzazione o è stata emessa a un altro client.
+        invalid_redirect_uri: L'uri di reindirizzamento incluso non è valido.
         invalid_request:
-          missing_param: 'Manca il parametro obbligatorio: %{value}.'
-          request_not_authorized: La richiesta deve essere autorizzata. Il parametro richiesto per autorizzare la richiesta è mancante o non valido.
-          unknown: La richiesta manca di un parametro necessario, include un parametro non supportato, o è in qualche altro modo mal strutturata.
-        invalid_resource_owner: Le credenziali di accesso fornite per il proprietario non sono corrette, o il proprietario del servizio non è stato trovato
-        invalid_scope: Lo scope richiesto è invalido, sconosciuto, o malformulato.
+          missing_param: 'Parametro necessario mancante: %{value}.'
+          request_not_authorized: La richiesta dev'essere autorizzata. Il parametro necessario per autorizzare la richiesta è mancante o non valido.
+          unknown: La richiesta manca di un parametro necessario, include un valore del parametro non supportato o è altrimenti mal strutturata.
+        invalid_resource_owner: Le credenziali del proprietario della risorsa fornite non sono valide, o il proprietario della risorsa non è stato trovato
+        invalid_scope: L'ambito necessario non è valido, è sconosciuto o mal strutturato.
         invalid_token:
-          expired: Il token di accesso è scaduto
-          revoked: Il token di accesso è stato disabilitato
-          unknown: Il token di accesso non è valido
-        resource_owner_authenticator_not_configured: Impossibile trovare il proprietario del servizio perché Doorkeeper.configure.resource_owner_authenticator non è stato configurato.
-        server_error: Il server di autorizzazione ha riscontrato un errore imprevisto che non ha permesso di completare la tua richiesta.
-        temporarily_unavailable: Al momento il server di autorizzazione non può completare la tua richiesta a causa di un temporaneo sovraccarico o di manutenzione del server.
-        unauthorized_client: Il client non è autorizzato a eseguire questa operazione con questo metodo.
-        unsupported_grant_type: Questa modalità di trasmissione di autenticazione non è supportata da questo server.
-        unsupported_response_type: Il server di autorizzazione non supporta questo tipo di risposta.
+          expired: Il token d'accesso è scaduto
+          revoked: Il token d'accesso è stato revocato
+          unknown: Il token d'accesso non è valido
+        resource_owner_authenticator_not_configured: Impossibile trovare il Proprietario della Risorsa a causa della mancata configurazione di Doorkeeper.configure.resource_owner_authenticator.
+        server_error: Il server d'autorizzazione ha riscontrato una condizione imprevista, che gli ha impedito di soddisfare la tua richiesta.
+        temporarily_unavailable: Il server d'autorizzazione non è correntemente capace di gestire la richiesta a causa di un sovraccarico temporaneo o di una manutenzione del server.
+        unauthorized_client: Il client non è autorizzato a eseguire questa richiesta utilizzando questo metodo.
+        unsupported_grant_type: Il tipo di autorizzazione concessa non è supportato dal server d'autorizzazione.
+        unsupported_response_type: Il server d'autorizzazione non supporta questo tipo di risposta.
     flash:
       applications:
         create:
           notice: Applicazione creata.
         destroy:
-          notice: Applicazione cancellata.
+          notice: Applicazione eliminata.
         update:
           notice: Applicazione aggiornata.
       authorized_applications:
         destroy:
-          notice: Applicazione disabilitata.
+          notice: Applicazione revocata.
     grouped_scopes:
       access:
         read: Accesso di sola lettura
@@ -130,56 +130,56 @@ it:
         favourites: Preferiti
         filters: Filtri
         follow: Relazioni
-        follows: Segue
+        follows: Seguiti
         lists: Elenchi
         media: Allegati multimediali
         mutes: Silenziati
         notifications: Notifiche
         push: Notifiche push
-        reports: Rapporti
+        reports: Segnalazioni
         search: Cerca
         statuses: Post
     layouts:
       admin:
         nav:
           applications: Applicazioni
-          oauth2_provider: Provider OAuth2
+          oauth2_provider: Fornitore OAuth2
       application:
-        title: Autorizzazione OAuth richiesta
+        title: Autorizzazione OAuth necessaria
     scopes:
-      admin:read: leggere tutti i dati dal server
-      admin:read:accounts: leggere dati sensibili di tutti gli account
-      admin:read:reports: leggere dati sensibili di tutte le segnalazioni e gli account segnalati
+      admin:read: leggere tutti i dati sul server
+      admin:read:accounts: leggere le informazioni sensibili su tutti i profili
+      admin:read:reports: leggere le informazioni sensibili di tutte le segnalazioni e tutti i profili segnalati
       admin:write: modificare tutti i dati sul server
-      admin:write:accounts: eseguire azioni di moderazione sugli account
+      admin:write:accounts: eseguire azioni di moderazione sui profili
       admin:write:reports: eseguire azioni di moderazione sulle segnalazioni
-      crypto: usa la crittografia end-to-end
-      follow: modificare relazioni tra account
+      crypto: utilizzare la crittografia end-to-end
+      follow: modifica le relazioni tra profili
       push: ricevere le tue notifiche push
-      read: leggere tutte le informazioni del tuo account
-      read:accounts: vedere informazioni sull'account
-      read:blocks: vedere i tuoi blocchi
-      read:bookmarks: vedi i tuoi preferiti
-      read:favourites: vedere i tuoi preferiti
-      read:filters: vedere i tuoi filtri
-      read:follows: vedere i tuoi seguiti
-      read:lists: vedere le tue liste
-      read:mutes: vedere i tuoi silenziati
-      read:notifications: vedere le tue notifiche
-      read:reports: vedere i tuoi rapporti
-      read:search: fare ricerche per te
-      read:statuses: vedere tutti i post
-      write: modificare tutti i dati del tuo account
+      read: leggere tutti i dati del tuo profilo
+      read:accounts: visualizzare le informazioni sui profili
+      read:blocks: visualizzare i tuoi blocchi
+      read:bookmarks: visualizzare i tuoi segnalibri
+      read:favourites: visualizzare i tuoi preferiti
+      read:filters: visualizzare i tuoi filtri
+      read:follows: visualizzare i tuoi seguiti
+      read:lists: visualizzare i tuoi elenchi
+      read:mutes: visualizzare i tuoi silenziamenti
+      read:notifications: visualizzare le tue notifiche
+      read:reports: visualizzare le tue segnalazioni
+      read:search: fare ricerche per conto tuo
+      read:statuses: visualizzare tutti i post
+      write: modificare tutti i dati del tuo profilo
       write:accounts: modificare il tuo profilo
-      write:blocks: bloccare account e domini
-      write:bookmarks: aggiungere post ai preferiti
-      write:conversations: silenzia ed elimina le conversazioni
-      write:favourites: apprezzare post
+      write:blocks: bloccare profili e domini
+      write:bookmarks: aggiungere post tra i segnalibri
+      write:conversations: silenziare ed eliminare conversazioni
+      write:favourites: salvare post tra i preferiti
       write:filters: creare filtri
       write:follows: seguire persone
-      write:lists: creare liste
-      write:media: caricare media
+      write:lists: creare elenchi
+      write:media: caricare file multimediali
       write:mutes: silenziare persone e conversazioni
       write:notifications: cancellare le tue notifiche
-      write:reports: fare rapporto su altre persone
+      write:reports: segnalare altre persone
       write:statuses: pubblicare post
diff --git a/config/locales/doorkeeper.ro.yml b/config/locales/doorkeeper.ro.yml
index 3f94848fc..f3c6f4353 100644
--- a/config/locales/doorkeeper.ro.yml
+++ b/config/locales/doorkeeper.ro.yml
@@ -60,6 +60,8 @@ ro:
       error:
         title: A apărut o eroare
       new:
+        prompt_html: "%{client_name} dorește să îți acceseze contul. Este o aplicație terță. <strong>Dacă nu aveți încredere în ea, atunci nu ar trebui să o autorizați.</strong>"
+        review_permissions: Revizuiește permisiunile
         title: Autorizare necesară
       show:
         title: Copiați acest cod de autorizare și lipiți-l în aplicație.
@@ -69,6 +71,12 @@ ro:
       confirmations:
         revoke: Ești sigur?
       index:
+        authorized_at: Autorizat pe %{date}
+        description_html: Acestea sunt aplicațiile care vă pot accesa contul folosind API. Dacă există aplicații pe care nu le recunoașteți, sau o aplicație se comportă necorespunzător, puteți revoca accesul.
+        last_used_at: Utilizat ultima dată pe %{date}
+        never_used: Nu a fost folosit niciodată
+        scopes: Permisiuni
+        superapp: Intern
         title: Aplicațiile dvs autorizate
     errors:
       messages:
@@ -104,6 +112,31 @@ ro:
       authorized_applications:
         destroy:
           notice: Aplicație revocată.
+    grouped_scopes:
+      access:
+        read: Acces numai în citire
+        read/write: Acces de citire și scriere
+        write: Acces doar pentru scriere
+      title:
+        accounts: Conturi
+        admin/accounts: Administrarea conturilor
+        admin/all: Toate funcțiile administrative
+        admin/reports: Administrarea rapoartelor
+        bookmarks: Marcaje
+        conversations: Conversații
+        crypto: Criptare în ambele părți
+        favourites: Favorite
+        filters: Filtre
+        follow: Relații
+        follows: Urmăriri
+        lists: Liste
+        media: Atașamente media
+        mutes: Pus pe silențios
+        notifications: Notificări
+        push: Notificări push
+        reports: Rapoarte
+        search: Caută
+        statuses: Postări
     layouts:
       admin:
         nav:
@@ -118,6 +151,7 @@ ro:
       admin:write: modifică toate datele de pe server
       admin:write:accounts: efectuează acțiuni de moderare pe conturi
       admin:write:reports: efectuează acțiuni de moderare pe rapoarte
+      crypto: utilizează criptare la ambele capete
       follow: modifică relațiile contului
       push: primește notificările tale push
       read: citește toate datele contului tău
@@ -137,6 +171,7 @@ ro:
       write:accounts: modifică profilul tău
       write:blocks: blochează conturile și domeniile
       write:bookmarks: marchează stările
+      write:conversations: dezactivează și șterge conversațiile
       write:favourites: favorizează stările
       write:filters: creează filtre
       write:follows: urmărește persoane
diff --git a/config/locales/doorkeeper.sco.yml b/config/locales/doorkeeper.sco.yml
index cfd4577f5..60453dc78 100644
--- a/config/locales/doorkeeper.sco.yml
+++ b/config/locales/doorkeeper.sco.yml
@@ -25,7 +25,7 @@ sco:
         edit: Edit
         submit: Pit in
       confirmations:
-        destroy: Ye sure?
+        destroy: Ye shuir?
       edit:
         title: Edit application
       form:
@@ -69,10 +69,10 @@ sco:
       buttons:
         revoke: Tak awa
       confirmations:
-        revoke: Ye sure?
+        revoke: Ye shuir?
       index:
         authorized_at: Authorized on %{date}
-        description_html: This is the applications thit kin access yer accoont uisin the API. Gin there applications thit ye dinnae recognize here, or a application isnae behavinnricht, ye kin tak awa its access.
+        description_html: This is the applications thit kin access yer accoont uisin the API. Gin there applications thit ye dinnae recognize here, or a application isnae behavin richt, ye kin tak awa its access.
         last_used_at: Last uised on %{date}
         never_used: Never uised
         scopes: Permissions
diff --git a/config/locales/doorkeeper.sk.yml b/config/locales/doorkeeper.sk.yml
index 3e29a3332..4260ad2ca 100644
--- a/config/locales/doorkeeper.sk.yml
+++ b/config/locales/doorkeeper.sk.yml
@@ -38,6 +38,7 @@ sk:
         application: Aplikácia
         callback_url: Návratová URL
         delete: Vymaž
+        empty: Nemáte žiadne aplikácie.
         name: Názov
         new: Nová aplikácia
         scopes: Oprávnenia
@@ -59,6 +60,8 @@ sk:
       error:
         title: Nastala chyba
       new:
+        prompt_html: "%{client_name} žiada o povolenie na prístup k vášmu účtu. Ide o aplikáciu tretej strany. <strong>Ak jej nedôverujete, nemali by ste ju autorizovať.</strong>"
+        review_permissions: Preskúmať povolenia
         title: Je potrebná autorizácia
       show:
         title: Skopíruj tento autorizačný kód a vlož ho do aplikácie.
@@ -68,6 +71,12 @@ sk:
       confirmations:
         revoke: Si si istý?
       index:
+        authorized_at: Autorizované dňa %{date}
+        description_html: Ide o aplikácie, ktoré môžu pristupovať k vášmu účtu pomocou rozhrania API. Ak sa tu nachádzajú aplikácie, ktoré nepoznáte, alebo ak sa niektorá aplikácia správa nesprávne, môžete jej zrušiť prístup.
+        last_used_at: Posledne použitý dňa %{date}
+        never_used: Nikdy nepoužité
+        scopes: Oprávnenia
+        superapp: Interný
         title: Tvoje povolené aplikácie
     errors:
       messages:
@@ -76,6 +85,10 @@ sk:
         invalid_client: Overenie klienta zlyhalo. Neznámy klient, chýbajú údaje o klientovi alebo nepodporovaná metóda overovania.
         invalid_grant: Dané oprávnenie je neplatné, vypršané, zrušené, nesúhlasí s presmerovacou URI použitou v autorizačnej požiadavke, alebo bolo vydané pre iný klient.
         invalid_redirect_uri: Presmerovacia URI je neplatná.
+        invalid_request:
+          missing_param: 'Chýba požadovaný parameter: %{value}.'
+          request_not_authorized: Žiadosť je potrebné autorizovať. Chýba požadovaný parameter pre autorizáciu žiadosti alebo je neplatný.
+          unknown: V požiadavke chýba požadovaný parameter, obsahuje nepodporovanú hodnotu parametra alebo je inak chybne vytvorená.
         invalid_resource_owner: Uvedené prihlasovacie údaje sú neplatné alebo nenájdené
         invalid_scope: Požadovaný rozsah je neplatný, neznámy alebo poškodený.
         invalid_token:
@@ -100,9 +113,32 @@ sk:
         destroy:
           notice: Oprávnenia aplikácie zrušené.
     grouped_scopes:
+      access:
+        read: Prístup len na čítanie
+        read/write: Prístup na čítanie a zápis
+        write: Prístup len na zápis
       title:
+        accounts: Účty
+        admin/accounts: Správa účtov
+        admin/all: Všetky administratívne funkcie
+        admin/reports: Správa reportov
+        all: Všetko
         blocks: Blokovania
+        bookmarks: Záložky
+        conversations: Konverzácie
+        crypto: Šifrovanie End-to-end
+        favourites: Obľúbené
+        filters: Filtre
+        follow: Vzťahy
+        follows: Sledovania
+        lists: Zoznamy
+        media: Mediálne prílohy
         mutes: Nevšímané
+        notifications: Oznámenia
+        push: Push notifikácie
+        reports: Reporty
+        search: Hľadať
+        statuses: Príspevky
     layouts:
       admin:
         nav:
@@ -117,6 +153,7 @@ sk:
       admin:write: uprav všetky dáta na serveri
       admin:write:accounts: urob moderovacie úkony na účtoch
       admin:write:reports: urob moderovacie úkony voči hláseniam
+      crypto: používať end-to-end šifrovanie
       follow: uprav vzťahy svojho účtu
       push: dostávaj oboznámenia ohľadom tvojho účtu na obrazovku
       read: prezri si všetky dáta ohľadom svojho účetu
diff --git a/config/locales/doorkeeper.uk.yml b/config/locales/doorkeeper.uk.yml
index 4d433185c..09c89cd10 100644
--- a/config/locales/doorkeeper.uk.yml
+++ b/config/locales/doorkeeper.uk.yml
@@ -72,7 +72,7 @@ uk:
         revoke: Ви впевнені?
       index:
         authorized_at: Авторизовано %{date}
-        description_html: Це застосунки, які мають доступ до вашого облікового запису через API. Якщо тут є застосунки, які Ви не розпізнаєте, або програма працює неправильно, ви можете відкликати їхній доступ.
+        description_html: Це застосунки, які мають доступ до вашого облікового запису через API. Якщо тут є застосунки, які ви не розпізнаєте, або застосунок працює неправильно, ви можете відкликати їхній доступ.
         last_used_at: Востаннє використано %{date}
         never_used: Ніколи не використовувалися
         scopes: Дозволи
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 3b8f3c74f..314e7320b 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -58,7 +58,7 @@ el:
       disabled: Απενεργοποιημένο
       display_name: Όνομα εμφάνισης
       domain: Τομέας
-      edit: Αλλαγή
+      edit: Επεξεργασία
       email: Email
       email_status: Κατάσταση email
       enable: Ενεργοποίηση
@@ -156,6 +156,7 @@ el:
         approve_user: Έγκριση Χρήστη
         assigned_to_self_report: Ανάθεση Αναφοράς
         change_email_user: Αλλαγή email για χρήστη
+        change_role_user: Αλλαγή του ρόλου του χρήστη
         confirm_user: Επιβεβαίωση Χρήστη
         create_account_warning: Δημιουργία Προειδοποίησης
         create_announcement: Δημιουργία Ανακοίνωσης
@@ -164,6 +165,7 @@ el:
         create_domain_block: Δημιουργία Αποκλεισμένου Τομέα
         create_email_domain_block: Δημουργία Αποκλεισμένου Τομέα email
         create_ip_block: Δημιουργία κανόνα IP
+        create_user_role: Δημιουργία ρόλου
         demote_user: Υποβιβασμός Χρήστη
         destroy_announcement: Διαγραφή Ανακοίνωσης
         destroy_custom_emoji: Διαγραφή Προσαρμοσμένου Emoji
@@ -198,6 +200,7 @@ el:
         update_announcement: Ενημέρωση Ανακοίνωσης
         update_custom_emoji: Ενημέρωση Προσαρμοσμένου Emoji
         update_status: Ενημέρωση Κατάστασης
+        update_user_role: Ενημέρωση ρόλου
       actions:
         approve_user_html: "%{name} εγκρίθηκε εγγραφή από %{target}"
         destroy_email_domain_block_html: Ο/Η %{name} ξεμπλόκαρε το email domain %{target}
@@ -273,6 +276,8 @@ el:
       updated_msg: Επιτυχής ενημέρωση του emoji!
       upload: Ανέβασμα
     dashboard:
+      active_users: ενεργοί χρήστες
+      new_users: νέοι χρήστες
       software: Λογισμικό
       space: Κατανάλωση χώρου
       title: Ταμπλό
@@ -291,7 +296,7 @@ el:
       created_msg: Ο αποκλεισμός τομέα είναι υπό επεξεργασία
       destroyed_msg: Ο αποκλεισμός τομέα άρθηκε
       domain: Τομέας
-      edit: Διαχείρηση αποκλεισμένου τομέα
+      edit: Επεξεργασία αποκλεισμένου τομέα
       existing_domain_block: Έχετε ήδη επιβάλει αυστηρότερα όρια στο %{name}.
       existing_domain_block_html: Έχεις ήδη επιβάλλει αυστηρότερους περιορισμούς στο %{name}, πρώτα θα πρέπει να τους <a href="%{unblock_url}">αναιρέσεις</a>.
       export: Εξαγωγή
@@ -334,10 +339,13 @@ el:
     export_domain_blocks:
       no_file: Δεν επιλέχθηκε αρχείο
     follow_recommendations:
+      language: Για τη γλώσσα
       status: Κατάσταση
     instances:
       by_domain: Τομέας
       confirm_purge: Είστε βέβαιοι ότι θέλετε να διαγράψετε μόνιμα τα δεδομένα από αυτόν τον τομέα;
+      dashboard:
+        instance_languages_dimension: Κορυφαίες γλώσσες
       delivery:
         failing: Αποτυγχάνει
       delivery_available: Διαθέσιμη παράδοση
@@ -372,9 +380,9 @@ el:
         '1209600': 2 εβδομάδες
         '15778476': 6 μήνες
         '2629746': 1 μήνας
-        '31556952': 1 έτος
+        '31556952': 1 χρόνος
         '86400': 1 ημέρα
-        '94670856': 3 έτη
+        '94670856': 3 χρόνια
       new:
         title: Δημιουργία νέου κανόνα IP
       title: Κανόνες IP
@@ -459,8 +467,20 @@ el:
         devops: Devops
         invites: Προσκλήσεις
       delete: Διαγραφή
+      edit: Επεξεργασία ρόλου '%{name}'
+      everyone: Προεπιλεγμένα δικαιώματα
+      permissions_count:
+        one: "%{count} δικαίωμα"
+        other: "%{count} δικαιώματα"
       privileges:
+        administrator: Διαχειριστής
+        invite_users: Πρόσκληση χρηστών
+        manage_announcements: Διαχείριση ανακοινώσεων
+        manage_roles: Διαχείριση ρόλων
+        manage_settings: Διαχείριση ρυθμίσεων
+        manage_users: Διαχείριση χρηστών
         view_devops: DevOps
+      title: Ρόλοι
     rules:
       add_new: Προσθήκη κανόνα
       delete: Διαγραφή
@@ -530,6 +550,11 @@ el:
     title: Διαχείριση
     trends:
       only_allowed: Μόνο επιτρεπόμενα
+      tags:
+        dashboard:
+          tag_languages_dimension: Κορυφαίες γλώσσες
+          tag_servers_dimension: Κορυφαίοι διακομιστές
+          tag_servers_measure: διαφορετικοί διακομιστές
       trending: Δημοφιλή
     warning_presets:
       add_new: Πρόσθεση νέου
@@ -962,14 +987,27 @@ el:
     browser: Φυλλομετρητής (Browser)
     browsers:
       blackberry: BlackBerry
+      chrome: Chrome
+      edge: Microsoft Edge
+      firefox: Firefox
       generic: Άγνωστος φυλλομετρητής
+      ie: Internet Explorer
+      opera: Opera
+      otter: Otter
+      phantom_js: PhantomJS
+      qq: QQ Browser
+      safari: Safari
       uc_browser: UC Browser
     current_session: Τρέχουσα σύνδεση
     description: "%{browser} σε %{platform}"
     explanation: Αυτοί είναι οι φυλλομετρητές (browsers) που είναι συνδεδεμένοι στον λογαριασμό σου στο Mastodon αυτή τη στιγμή.
     platforms:
+      android: Android
       blackberry: BlackBerry
       chrome_os: ChromeOS
+      firefox_os: Firefox OS
+      ios: iOS
+      linux: Linux
       mac: Mac
       other: άγνωστη πλατφόρμα
     revoke: Ανακάλεσε
@@ -1045,14 +1083,14 @@ el:
       unlisted_long: Βλέπει οποιοσδήποτε, αλλά δεν καταχωρείται στις δημόσιες ροές
   statuses_cleanup:
     min_age:
-      '1209600': 2 weeks
-      '15778476': 6 months
-      '2629746': 1 month
-      '31556952': 1 year
-      '5259492': 2 months
+      '1209600': 2 εβδομάδες
+      '15778476': 6 μήνες
+      '2629746': 1 μήνας
+      '31556952': 1 χρόνος
+      '5259492': 2 μήνες
       '604800': 1 εβδομάδα
-      '63113904': 2 years
-      '7889238': 3 months
+      '63113904': 2 χρόνια
+      '7889238': 3 μήνες
   stream_entries:
     pinned: Καρφιτσωμένο τουτ
     reblogged: προωθημένο
@@ -1083,6 +1121,8 @@ el:
       explanation: Είχες ζητήσει εφεδρικό αντίγραφο του λογαριασμού σου στο Mastodon. Είναι έτοιμο για κατέβασμα!
       subject: Το εφεδρικό αντίγραφό σου είναι έτοιμο για κατέβασμα
       title: Λήψη εφεδρικού αρχείου
+    suspicious_sign_in:
+      change_password: αλλάξτε τον κωδικό πρόσβασής σας
     warning:
       categories:
         spam: Ανεπιθύμητο
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
index 26540146f..e67bb1fa7 100644
--- a/config/locales/en-GB.yml
+++ b/config/locales/en-GB.yml
@@ -29,6 +29,40 @@ en-GB:
     account_moderation_notes:
       create: Leave note
       created_msg: Moderation note successfully created!
+      destroyed_msg: Moderation note successfully destroyed!
+    accounts:
+      add_email_domain_block: Block e-mail domain
+      approve: Approve
+      approved_msg: Successfully approved %{username}'s sign-up application
+      are_you_sure: Are you sure?
+      avatar: Avatar
+      by_domain: Domain
+      change_email:
+        changed_msg: Email successfully changed!
+        current_email: Current email
+        label: Change email
+        new_email: New email
+        submit: Change email
+        title: Change email for %{username}
+      change_role:
+        changed_msg: Role successfully changed!
+        label: Change role
+        no_role: No role
+        title: Change role for %{username}
+      confirm: Confirm
+      confirmed: Confirmed
+      confirming: Confirming
+      custom: Custom
+      delete: Delete data
+      deleted: Deleted
+      demote: Demote
+      destroyed_msg: "%{username}'s data is now queued to be deleted imminently"
+      disable: Freeze
+      disable_sign_in_token_auth: Disable e-mail token authentication
+      disable_two_factor_authentication: Disable 2FA
+      disabled: Frozen
+      display_name: Display name
+      domain: Domain
   errors:
     '400': The request you submitted was invalid or malformed.
     '403': You don't have permission to view this page.
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 1cc53dca4..a045db1ab 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -704,6 +704,9 @@ en:
       content_retention:
         preamble: Control how user-generated content is stored in Mastodon.
         title: Content retention
+      default_noindex:
+        desc_html: Affects all users who have not changed this setting themselves
+        title: Opt users out of search engine indexing by default
       discovery:
         follow_recommendations: Follow recommendations
         preamble: Surfacing interesting content is instrumental in onboarding new users who may not know anyone Mastodon. Control how various discovery features work on your server.
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index d603a6b3f..629e1e4d6 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -1,7 +1,7 @@
 ---
 eo:
   about:
-    about_mastodon_html: 'La socia reto de la estonteco: sen reklamo, sen firmaa superrigardo, etika fasonado kaj malcentrigo! Regu viajn datumojn per Mastodon!'
+    about_mastodon_html: 'La socia retejo de la estonteco: sen reklamo, sen kompania observado, etika desegno, kaj malcentrigo! Regu viajn datumojn per Mastodon!'
     contact_missing: Ne elektita
     contact_unavailable: Ne disponebla
     hosted_on: "%{domain} estas nodo de Mastodon"
@@ -57,17 +57,17 @@ eo:
       deleted: Forigita
       demote: Degradi
       destroyed_msg: Datumoj de %{username} nun enviciĝis por esti forigita baldaǔ
-      disable: Malebligi
-      disable_sign_in_token_auth: Malŝalti retpoŝtan ĵetonan aŭtentigon
+      disable: Frostigi
+      disable_sign_in_token_auth: Malŝalti aŭtentigon de retpoŝta ĵetono
       disable_two_factor_authentication: Malŝalti 2FA-n
-      disabled: Malebligita
+      disabled: Frostigita
       display_name: Montrata nomo
       domain: Domajno
       edit: Redakti
       email: Retpoŝto
       email_status: Stato de retpoŝto
-      enable: Ebligi
-      enable_sign_in_token_auth: Ŝalti retpoŝtan ĵetonan aŭtentigon
+      enable: Malfrostigi
+      enable_sign_in_token_auth: Ŝalti aŭtentigon de retpoŝta ĵetono por uzanto
       enabled: Ebligita
       enabled_msg: Sukcese malfrostigis konton de %{username}
       followers: Sekvantoj
@@ -139,7 +139,7 @@ eo:
       shared_inbox_url: URL de kunhavigita leterkesto
       show:
         created_reports: Faritaj raportoj
-        targeted_reports: Raporitaj de aliaj
+        targeted_reports: Raporitaj de la aliaj
       silence: Limigi
       silenced: Silentigita
       statuses: Afiŝoj
@@ -196,10 +196,10 @@ eo:
         destroy_user_role: Detrui Rolon
         disable_2fa_user: Malebligi 2FA
         disable_custom_emoji: Malebligi proprajn emoĝiojn
-        disable_sign_in_token_auth_user: Malaktivigi Retpoŝtan Ĵetonon por Uzanto
-        disable_user: Malaktivigi la uzanton
+        disable_sign_in_token_auth_user: Malŝalti aŭtentigon de retpoŝta ĵetono por la uzanto
+        disable_user: Neebligi la uzanton
         enable_custom_emoji: Ebligi Propran Emoĝion
-        enable_sign_in_token_auth_user: Ebligi retpoŝtan ĵetonan aŭtentigon por la uzanto
+        enable_sign_in_token_auth_user: Ŝalti aŭtentigon de retpoŝta ĵetono por la uzanto
         enable_user: Ebligi uzanton
         memorialize_account: Memorigu Konton
         promote_user: Promocii Uzanton
@@ -254,11 +254,11 @@ eo:
         destroy_unavailable_domain_html: "%{name} daurigis sendon al domajno %{target}"
         destroy_user_role_html: "%{name} forigis rolon de %{target}"
         disable_2fa_user_html: "%{name} malebligis dufaktoran aŭtentigon por uzanto %{target}"
-        disable_custom_emoji_html: "%{name} malebligis emoĝion %{target}"
-        disable_sign_in_token_auth_user_html: "%{name} malebligis retpoŝtoĵetonautentigon por %{target}"
+        disable_custom_emoji_html: "%{name} malebligis la emoĝion %{target}"
+        disable_sign_in_token_auth_user_html: "%{name} malŝaltis la aŭtentigon de retpoŝta ĵetono por %{target}"
         disable_user_html: "%{name} malebligis ensaluton por uzanto %{target}"
-        enable_custom_emoji_html: "%{name} ebligis emoĝion %{target}"
-        enable_sign_in_token_auth_user_html: "%{name} ebligis retpoŝtoĵetonautentigon por %{target}"
+        enable_custom_emoji_html: "%{name} ebligis la emoĝion %{target}"
+        enable_sign_in_token_auth_user_html: "%{name} ŝaltis la aŭtentigon de retpoŝta ĵetono por %{target}"
         enable_user_html: "%{name} ebligis ensaluton por uzanto %{target}"
         memorialize_account_html: "%{name} ŝanĝis la konton de %{target} al memora paĝo"
         promote_user_html: "%{name} plirangigis uzanton %{target}"
@@ -267,7 +267,7 @@ eo:
         remove_avatar_user_html: "%{name} forigis profilbildon de %{target}"
         reopen_report_html: "%{name} remalfermis signalon %{target}"
         resend_user_html: "%{name} resendis konfirman retmesaĝon por %{target}"
-        reset_password_user_html: "%{name} restarigis pasvorton de usanto %{target}"
+        reset_password_user_html: "%{name} restarigis la pasvorton de la uzanto %{target}"
         resolve_report_html: "%{name} solvis raporton %{target}"
         sensitive_account_html: "%{name} markis audovidaĵojn de %{target} kiel sentemaj"
         silence_account_html: "%{name} limigis la konton de %{target}"
@@ -284,10 +284,10 @@ eo:
         update_status_html: "%{name} ĝisdatigis mesaĝon de %{target}"
         update_user_role_html: "%{name} ŝanĝis rolon %{target}"
       deleted_account: forigita konto
-      empty: Neniu protokolo trovita.
+      empty: Neniu ĵurnalo trovita.
       filter_by_action: Filtri per ago
       filter_by_user: Filtri per uzanto
-      title: Kontrola protokolo
+      title: Ĵurnalo de revizo
     announcements:
       destroyed_msg: Anonco sukcese forigita!
       edit:
@@ -361,7 +361,7 @@ eo:
       software: Programo
       sources: Fontoj de konto-kreado
       space: Memorspaca uzado
-      title: Kontrolpanelo
+      title: Panelo
       top_languages: Plej aktivaj lingvoj
       top_servers: Plej aktivaj serviloj
       website: Retejo
@@ -567,7 +567,7 @@ eo:
         notes:
           one: "%{count} noto"
           other: "%{count} notoj"
-      action_log: Kontrola protokolo
+      action_log: Ĵurnalo de revizo
       action_taken_by: Ago farita de
       actions:
         delete_description_html: Raportitaj mesaĝoj forigotas kaj admono rekorditas.
@@ -630,7 +630,7 @@ eo:
         administration: Administrado
         devops: Programado kaj Operaciado
         invites: Invitoj
-        moderation: Kontrolado
+        moderation: Moderigado
         special: Specialaj
       delete: Forigi
       description_html: Per <strong>uzantoroloj</strong>, vi povas personecigi funkciojn kaj areon de Mastodon.
@@ -677,7 +677,7 @@ eo:
         manage_webhooks_description: Permesi uzantojn komenci rethokojn por administraj eventoj
         view_audit_log: Vidi protokolon
         view_audit_log_description: Permesi uzantojn vidi historion de administraj agoj ĉe la servilo
-        view_dashboard: Vidi kontrolpanelon
+        view_dashboard: Vidi panelon
         view_dashboard_description: Permesi uzantojn aliri la kontrolpanelon kaj diversajn mezurarojn
         view_devops: Programado kaj Operaciado
         view_devops_description: Permesi uzantojn aliri Sidekiq kaj pgHero-kontrolpanelojn
@@ -815,8 +815,8 @@ eo:
         no_status_selected: Neniuj popularaj mesaĝoj ŝanĝitas ĉar nenio elektitas
         not_discoverable: Autoro ne volonte estas malkovrebla
         shared_by:
-          one: Diskonigita kaj stelumita unufoje
-          other: Diskonigita kaj stelumita %{friendly_count}-foje
+          one: Kundividita kaj stelumita unufoje
+          other: Kundividita kaj stelumita %{friendly_count}-foje
         title: Tendencantaj afiŝoj
       tags:
         current_score: Nuna puento %{score}
@@ -847,7 +847,7 @@ eo:
       add_new: Aldoni novan
       delete: Forigi
       edit_preset: Redakti avertan antaŭagordon
-      empty: Vi ne definis ajn avertantauopciojn ĝis nun.
+      empty: Vi ankoraŭ ne difinis iun ajn antaŭagordon de averto.
       title: Administri avertajn antaŭagordojn
     webhooks:
       add_new: Aldoni finpunkton
@@ -940,7 +940,7 @@ eo:
     delete_account_html: Se vi deziras forigi vian konton, vi povas <a href="%{path}">fari tion ĉi tie</a>. Vi bezonos konfirmi vian peton.
     description:
       prefix_invited_by_user: "@%{name} invitigi vin aligiĝi ĉi tiu servilo de Mastodon!"
-      prefix_sign_up: Registriĝu ĉe Mastodon hodiaŭ!
+      prefix_sign_up: Registriĝu en Mastodon hodiaŭ!
       suffix: Per konto, vi povos sekvi aliajn homojn, afiŝi kaj interŝanĝi mesaĝojn kun uzantoj de ajna Mastodona servilo kaj multe pli!
     didnt_get_confirmation: Ĉu vi ne ricevis la instrukciojn por konfirmi?
     dont_have_your_security_key: Ne havas vi vian sekurecan ŝlosilon?
@@ -949,7 +949,7 @@ eo:
     link_to_otp: Enigu 2-faktorkodo de via telefono au regajnkodo
     link_to_webauth: Uzi vian sekurecan ŝlosilon
     log_in_with: Ensaluti per
-    login: Ensaluti
+    login: Saluti
     logout: Adiaŭi
     migrate_account: Movi al alia konto
     migrate_account_html: Se vi deziras alidirekti ĉi tiun konton al alia, vi povas <a href="%{path}">agordi ĝin ĉi tie</a>.
@@ -961,7 +961,7 @@ eo:
     register: Krei konton
     registration_closed: "%{instance} ne estas akcepti nova uzantojn"
     resend_confirmation: Resendi la instrukciojn por konfirmi
-    reset_password: Ŝanĝi pasvorton
+    reset_password: Restarigi pasvorton
     rules:
       preamble: Ĉi tioj fiksitas kaj devigitas de kontrolantoj de %{domain}.
       title: Bazaj reguloj.
@@ -1214,7 +1214,7 @@ eo:
       one: 1 uzo
       other: "%{count} uzoj"
     max_uses_prompt: Neniu limo
-    prompt: Krei kaj diskonigi ligilojn al aliaj por doni aliron al ĉi tiu servilo
+    prompt: Generi kaj kundividi ligilojn kun la aliaj por doni aliron al ĉi tiu servilo
     table:
       expires_at: Eksvalidiĝas je
       uses: Uzoj
@@ -1304,7 +1304,7 @@ eo:
     poll:
       subject: Enketo de %{name} finitas
     reblog:
-      body: "%{name} diskonigis vian mesaĝon:"
+      body: 'Via mesaĝo estis diskonigita de %{name}:'
       subject: "%{name} diskonigis vian mesaĝon"
       title: Nova diskonigo
     status:
@@ -1328,7 +1328,7 @@ eo:
   otp_authentication:
     code_hint: Enmetu la kodon kreitan de via aŭtentiga aplikaĵo por konfirmi
     description_html: Se vi ebligas <strong>dufaktoran aŭtentigon</strong> per autentilprogramaro, ensaluto bezonas vi havi vian telefonon.
-    enable: Ebligi
+    enable: Ŝalti
     instructions_html: "<strong>Skanu ĉi tiun QR-kodon per Google Authenticator aŭ per simila aplikaĵo en via poŝtelefono</strong>. De tiam, la aplikaĵo kreos nombrojn, kiujn vi devos enmeti."
     manual_instructions: 'Se vi ne povas skani la QR-kodon kaj bezonas enmeti ĝin mane, jen la tut-teksta sekreto:'
     setup: Agordi
@@ -1540,7 +1540,7 @@ eo:
     min_favs: Konservi mesaĝojn stelumitajn almenaŭ
     min_favs_hint: Ne forigas mesaĝojn de vi kiuj ricevis almenaŭ tiom da stelumoj. Lasu malplena por forigi mesaĝojn sendepende de la nombro de stelumoj
     min_reblogs: Konservi diskonitajn mesaĝojn almenau
-    min_reblogs_hint: Ne forigi ajn viajn mesaĝojn kiu diskonitas almenau ĉifoje
+    min_reblogs_hint: Oni ne forigas viajn afiŝojn kiuj estas diskonigitaj almenaŭ ĉi tiun nombron da fojoj. Lasu malplena por forigi afiŝojn sendepende de iliaj nombroj da diskonigoj
   stream_entries:
     pinned: Alpinglita
     reblogged: diskonigita
@@ -1593,7 +1593,7 @@ eo:
       details: 'Detaloj pri ensaluto:'
       explanation: Ni detektas ensaluton al via konto de nova IP-adreso.
       further_actions_html: Se ne estas vi, ni rekomendas ke vi %{action} tuj por sekurigi vian konton.
-      subject: Via konto aliritas de nova IP-adreso
+      subject: Via konto estas alirita de nova IP-adreso
       title: Nova ensaluto
     warning:
       appeal: Sendi apelacion
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 0a322d112..4b5966260 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -592,7 +592,7 @@ es-AR:
       forwarded: Reenviado
       forwarded_to: Reenviado a %{domain}
       mark_as_resolved: Marcar como resuelta
-      mark_as_sensitive: Marcado como sensible
+      mark_as_sensitive: Marcar como sensible
       mark_as_unresolved: Marcar como no resuelta
       no_one_assigned: Nadie
       notes:
@@ -1430,7 +1430,7 @@ es-AR:
     revoke: Revocar
     revoke_success: Sesión revocada exitosamente
     title: Sesiones
-    view_authentication_history: Ver historial de autenticación de tu cuenta
+    view_authentication_history: Ver historial de autenticación de tu cuenta.
   settings:
     account: Cuenta
     account_settings: Config. de la cuenta
@@ -1536,9 +1536,9 @@ es-AR:
       '7889238': 3 meses
     min_age_label: Umbral de edad
     min_favs: Conservar mensajes marcados como favoritos de por lo menos
-    min_favs_hint: No elimina ninguno de tus mensajes que haya recibido más de esta cantidad de favoritos. Dejá en blanco para eliminar mensajes independientemente de su número de favoritos
+    min_favs_hint: No elimina ninguno de tus mensajes que haya recibido más de esta cantidad de favoritos. Dejá en blanco para eliminar mensajes independientemente de su número de favoritos.
     min_reblogs: Conservar adhesiones de por lo menos
-    min_reblogs_hint: No elimina ninguno de tus mensajes que haya recibido más de esta cantidad de adhesiones. Dejá en blanco para eliminar mensajes independientemente de su número de adhesiones
+    min_reblogs_hint: No elimina ninguno de tus mensajes que haya recibido más de esta cantidad de adhesiones. Dejá en blanco para eliminar mensajes independientemente de su número de adhesiones.
   stream_entries:
     pinned: Mensaje fijado
     reblogged: adhirió a este mensaje
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 51e361e2c..65074e0f0 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -161,7 +161,7 @@ es-MX:
       unsuspended_msg: Se quitó con éxito la suspensión de la cuenta de %{username}
       username: Nombre de usuario
       view_domain: Ver resumen del dominio
-      warn: Adevertir
+      warn: Advertir
       web: Web
       whitelisted: Añadido a la lista blanca
     action_logs:
@@ -875,7 +875,7 @@ es-MX:
         delete_statuses: para eliminar sus mensajes
         disable: para congelar su cuenta
         mark_statuses_as_sensitive: para marcar sus mensajes como sensibles
-        none: una advertencia
+        none: una alvertencia
         sensitive: para marcar su cuenta como sensible
         silence: para limitar su cuenta
         suspend: suspender su cuenta
@@ -1603,7 +1603,7 @@ es-MX:
         delete_statuses: Se ha determinado que algunos de tus mensajes violan una o más directrices de la comunidad y han sido por tanto eliminados por los moderadores de %{instance}.
         disable: Ya no puedes usar tu cuenta, pero tu perfil y el resto de datos permanecen intactos. Puedes solicitar una copia de seguridad de tus datos, cambiar la configuración de tu cuenta o eliminarla.
         mark_statuses_as_sensitive: Algunos de tus mensajes han sido marcados como sensibles por los moderadores de %{instance}. Esto significa que la gente tendrá que pulsar los archivos multimedia en las publicaciones antes de que se muestre una vista previa. Puedes marcar los archivos multimedia como sensibles tú mismo cuando publiques en el futuro.
-        sensitive: A partir de ahora todos los archivos multimedia que subas serán marcados como sensibles y ocultos tras una advertencia que habrá que clicar.
+        sensitive: A partir de ahora, todos los archivos multimedia que subas serán marcados como sensibles y ocultos tras una advertencia que habrá que clicar.
         silence: Aún puedes usar tu cuenta, pero solo las personas que te están siguiendo verán tus publicaciones en este servidor, y puedes ser excluido de varias funcionalidades de descubrimiento. Sin embargo, otras cuentas podrán empezar a seguirte manualmente.
         suspend: Ya no puedes utilizar tu cuenta, y tu perfil y el resto de datos ya no son accesibles. Todavía puedes iniciar sesión para solicitar una copia de seguridad de tus datos, hasta que estos sean eliminados por completo en unos 30 días, aunque conservaremos algunos datos básicos para impedir que esquives la suspensión.
       reason: 'Razón:'
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 622560210..3a350fba3 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -161,7 +161,7 @@ es:
       unsuspended_msg: Se quitó con éxito la suspensión de la cuenta de %{username}
       username: Nombre de usuario
       view_domain: Ver resumen del dominio
-      warn: Adevertir
+      warn: Advertir
       web: Web
       whitelisted: Añadido a la lista blanca
     action_logs:
@@ -1603,7 +1603,7 @@ es:
         delete_statuses: Se ha determinado que algunos de tus mensajes violan una o más directrices de la comunidad y han sido por tanto eliminados por los moderadores de %{instance}.
         disable: Ya no puedes usar tu cuenta, pero tu perfil y el resto de datos permanecen intactos. Puedes solicitar una copia de seguridad de tus datos, cambiar la configuración de tu cuenta o eliminarla.
         mark_statuses_as_sensitive: Algunos de tus mensajes han sido marcados como sensibles por los moderadores de %{instance}. Esto significa que la gente tendrá que pulsar los archivos multimedia en las publicaciones antes de que se muestre una vista previa. Puedes marcar los archivos multimedia como sensibles tú mismo cuando publiques en el futuro.
-        sensitive: A partir de ahora todos los archivos multimedia que subas serán marcados como sensibles y ocultos tras una advertencia que habrá que clicar.
+        sensitive: A partir de ahora, todos los archivos multimedia que subas serán marcados como sensibles y ocultos tras una advertencia que habrá que clicar.
         silence: Aún puedes usar tu cuenta, pero solo las personas que te están siguiendo verán tus publicaciones en este servidor, y puedes ser excluido de varias funcionalidades de descubrimiento. Sin embargo, otras cuentas podrán empezar a seguirte manualmente.
         suspend: Ya no puedes utilizar tu cuenta, y tu perfil y el resto de datos ya no son accesibles. Todavía puedes iniciar sesión para solicitar una copia de seguridad de tus datos, hasta que estos sean eliminados por completo en unos 30 días, aunque conservaremos algunos datos básicos para impedir que esquives la suspensión.
       reason: 'Razón:'
diff --git a/config/locales/et.yml b/config/locales/et.yml
index abd1bdd71..42432f020 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -12,7 +12,7 @@ et:
       one: Jälgija
       other: Jälgijaid
     following: Jälgib
-    instance_actor_flash: See on virtuaalne konto esindamaks serverit ennast ja mitte ühtegi kasutajad. Seda kasutatakse föderatsiooni eesmärgil ja seda ei tohi kustutada.
+    instance_actor_flash: See on serveri enda virtuaalne konto. See ei esinda ühtegi kindlat kasutajat, vaid seda kasutatakse födereerumisel. Seda kontot ei tohi kustutada.
     last_active: viimati aktiivne
     link_verified_on: Selle lingi autorsust kontrolliti %{date}
     nothing_here: Siin pole midagi!
@@ -28,11 +28,11 @@ et:
       title: Rakenda moderaatori tegevus kasutajale %{acct}
     account_moderation_notes:
       create: Jäta teade
-      created_msg: Moderatsiooniteade edukalt koostatud!
-      destroyed_msg: Moderatsiooniteade edukalt kustutatud!
+      created_msg: Modereerimisteade edukalt koostatud!
+      destroyed_msg: Modereerimisteade edukalt kustutatud!
     accounts:
       add_email_domain_block: Keela e-posti domeen
-      approve: Kinnita
+      approve: Võta vastu
       approved_msg: Kasutaja %{username} liitumisavaldus rahuldatud
       are_you_sure: Olete kindel?
       avatar: Profiilipilt
@@ -51,7 +51,7 @@ et:
         title: "%{username} rolli muutmine"
       confirm: Kinnita
       confirmed: Kinnitatud
-      confirming: Kinnitamine
+      confirming: Kinnitamisel
       custom: Kohandatud
       delete: Kustuta andmed
       deleted: Kustutatud
@@ -94,8 +94,8 @@ et:
         pending: Ootel
         silenced: Vaigistatud
         suspended: Kustutatud
-        title: Moderatsioon
-      moderation_notes: Moderatsiooniteated
+        title: Modereerimine
+      moderation_notes: Modereerimisteated
       most_recent_activity: Kõige hiljutisem aktiivsus
       most_recent_ip: Kõige hiljutisem IP
       no_account_selected: Mitte ühtegi kontot muudeti sest midagi polnud valitud
@@ -139,7 +139,7 @@ et:
       shared_inbox_url: Jagatud sisendkausta URL
       show:
         created_reports: Loodud teated
-        targeted_reports: Teiste poolt teatatud
+        targeted_reports: Teavitusi teiste poolt
       silence: Vaigista
       silenced: Vaigistatud
       statuses: Staatuseid
@@ -227,30 +227,62 @@ et:
       actions:
         approve_appeal_html: "%{name} kiitis heaks modereerimise otsuse vaidlustuse %{target} poolt"
         approve_user_html: "%{name} kiitis heaks registreerimise %{target} poolt"
+        assigned_to_self_report_html: "%{name} määras raporti %{target} endale"
+        change_email_user_html: "%{name} muutis %{target} e-postiaadressi"
+        change_role_user_html: "%{name} muutis %{target} rolli"
+        confirm_user_html: "%{name} on %{target} e-postiaadressi kinnitanud"
+        create_account_warning_html: "%{name} saatis %{target} hoiatuse"
+        create_announcement_html: "%{name} lõi uue teate %{target}"
         create_canonical_email_block_html: "%{name} keelas e-postiaadressi räsiga %{target}"
+        create_custom_emoji_html: "%{name} laadis üles uue emotikoni %{target}"
+        create_domain_allow_html: "%{name} lubas föderatsiooni domeeniga %{target}"
         create_domain_block_html: "%{name} keelas domeeni %{target}"
         create_email_domain_block_html: "%{name} keelas e-posti domeeni %{target}"
         create_ip_block_html: "%{name} lõi IP-aadressile %{target} reegli"
+        create_unavailable_domain_html: "%{name} lõpetas edastamise domeeni %{target}"
+        create_user_role_html: "%{name} lõi rolli %{target}"
         demote_user_html: "%{name} alandas kasutajat %{target}"
+        destroy_announcement_html: "%{name} kustutas teadaande %{target}"
         destroy_canonical_email_block_html: "%{name} lubas e-postiaaadressi räsiga %{target}"
+        destroy_custom_emoji_html: "%{name} kustutas emotikoni %{target}"
+        destroy_domain_allow_html: "%{name} keelas föderatsiooni domeeniga %{target}"
         destroy_domain_block_html: "%{name} lubas domeeni %{target}"
         destroy_email_domain_block_html: "%{name} lubas e-posti domeeni %{target}"
+        destroy_instance_html: "%{name} kustutas domeeni %{target}"
         destroy_ip_block_html: "%{name} kustutas IP-aadressi %{target} reegli"
+        destroy_status_html: "%{name} kustutas %{target} postituse"
+        destroy_unavailable_domain_html: "%{name} taastas edastamise domeeni %{target}"
+        destroy_user_role_html: "%{name} kustutas %{target} rolli"
         disable_2fa_user_html: "%{name} eemaldas kasutaja %{target} kahe etapise nõude"
         disable_custom_emoji_html: "%{name} keelas emotikooni %{target}"
         disable_sign_in_token_auth_user_html: "%{name} keelas kasutajal %{target} e-posti võtmega autentida"
+        disable_user_html: "%{name} keelas %{target} sisenemise"
         enable_custom_emoji_html: "%{name} lubas emotikooni %{target}"
         enable_sign_in_token_auth_user_html: "%{name} lubas kasutajal %{target} e-posti võtmega autentida"
+        enable_user_html: "%{name} lubas %{target} sisenemise"
         memorialize_account_html: "%{name} märkis %{target} igaveselt lahkunuks"
         promote_user_html: "%{name} ülendas kasutajat %{target}"
+        reject_appeal_html: "%{name} lükkas %{target} modereerimisotsuse kaebuse tagasi"
+        reject_user_html: "%{name} lükkas %{target} liitumissoovi tagasi"
+        remove_avatar_user_html: "%{name} eemaldas %{target} avatari"
+        reopen_report_html: "%{name} taasavas raporti %{target}"
+        resend_user_html: "%{name} saatis %{target} e-postiaadressi kinnituskirja"
         reset_password_user_html: "%{name} lähtestas %{target} salasõna"
+        resolve_report_html: "%{name} lahendas raporti %{target}"
         sensitive_account_html: "%{name} märkis %{target} meedia kui tundlik sisu"
+        silence_account_html: "%{name} piiras %{target} konto"
         suspend_account_html: "%{name} kustutas %{target} konto"
+        unassigned_report_html: "%{name} tühistas raporti %{target} määrangu"
         unblock_email_account_html: "%{name} lubas %{target} e-postiaadressi"
         unsensitive_account_html: "%{name} eemaldas %{target} meedia tundliku sisu märke"
+        unsilence_account_html: "%{name} eemaldas %{target} konto piirangu"
         unsuspend_account_html: "%{name} taastas %{target} konto"
+        update_announcement_html: "%{name} uuendas teadaannet %{target}"
+        update_custom_emoji_html: "%{name} uuendas emotikoni %{target}"
         update_domain_block_html: "%{name} uuendas domeeni %{target} keeldu"
         update_ip_block_html: "%{name} muutis IP-aadressi %{target} reeglit"
+        update_status_html: "%{name} muutis %{target} postitust"
+        update_user_role_html: "%{name} muutis %{target} rolli"
       deleted_account: kustutatud konto
       empty: Logisi ei leitud.
       filter_by_action: Filtreeri tegevuse järgi
@@ -259,13 +291,13 @@ et:
     announcements:
       destroyed_msg: Teadaande kustutamine õnnestus!
       edit:
-        title: Redigeeri teadaannet
+        title: Teate muutmine
       empty: Teadaandeid ei leitud.
       live: Avaldatud
       new:
         create: Loo teadaanne
         title: Uus teadaanne
-      publish: Avalda
+      publish: Postita
       published_msg: Teadaande avaldamine õnnestus!
       scheduled_for: Kavandatud ajaks %{time}
       scheduled_msg: Teadaanne kavandatud avaldamiseks!
@@ -295,6 +327,7 @@ et:
       listed: Nimekirjastatud
       new:
         title: Lisa uus emotikon
+      no_emoji_selected: Emotikone ei muudetud, kuna ühtegi polnud valitud
       not_permitted: Teil puudub õigus selle tegevuse jaoks
       overwrite: Kirjuta üle
       shortcode: Lühikood
@@ -309,16 +342,28 @@ et:
     dashboard:
       active_users: aktiivsed kasutajad
       interactions: interaktsioonid
+      media_storage: Meedia hoidla
       new_users: uued kasutajad
+      opened_reports: avatud raportit
       pending_appeals_html:
         one: "<strong>%{count}</strong> ootel vaidlustus"
         other: "<strong>%{count}</strong> ootel vaidlustust"
+      pending_reports_html:
+        one: "<strong>%{count}</strong> ootel raport"
+        other: "<strong>%{count}</strong> ootel raportit"
       pending_tags_html:
         one: "<strong>%{count}</strong> ootel silt"
         other: "<strong>%{count}</strong> ootel silti"
+      pending_users_html:
+        one: "<strong>%{count}</strong> ootel kasutaja"
+        other: "<strong>%{count}</strong> ootel kasutajat"
+      resolved_reports: lahendatud raportit
       software: Tarkvara
+      sources: Liitumise allikad
       space: Kettakasutus
       title: Töölaud
+      top_languages: Kasutatumad keeled
+      top_servers: Aktiivseimad serverid
       website: Veebileht
     disputes:
       appeals:
@@ -384,6 +429,8 @@ et:
       resolved_through_html: Lahendatud %{domain} kaudu
       title: E-posti keelunimekiri
     export_domain_allows:
+      new:
+        title: Lubatud domeenide import
       no_file: Faili pole valitud
     export_domain_blocks:
       import:
@@ -396,36 +443,80 @@ et:
         title: Domeenikeeldude import
       no_file: Faili pole valitud
     follow_recommendations:
+      description_html: "<strong>Jälgimissoovitused aitavad uutel kasutajatel kiirelt leida huvipakkuvat sisu</strong>. Kui kasutaja pole teistega piisavalt läbi käinud, et kujuneks personaalsed soovitused, soovitatakse neid kontosid. Need arvutatakse ümber igapäevaselt populaarseimate postituste ja enim jälgitavate kontode seast antud keeles."
       language: Keel
       status: Staatus
+      suppress: Eemalda jälgimissoovitus
+      suppressed: Eemaldatud
+      title: Jälgimissoovitused
+      unsuppress: Taasta jälgimissoovitused
     instances:
       availability:
+        description_html:
+          one: Kui domeenile edastamine nurjub <strong>%{count} päeval</strong>, siis ei tehta enam edastamiskatseid, välja arvatud juhul, kui domeenilt <em>võetakse vastu</em> saadetis.
+          other: Kui domeenile edastamine nurjub <strong>%{count} erineval päeval</strong>, siis ei tehta enam edastamiskatseid, välja arvatud juhul, kui domeenilt <em>võetakse vastu</em> saadetis.
+        failure_threshold_reached: Nurjumispiir saavutatud %{date}.
+        failures_recorded:
+          one: Nurjunud katse %{count} päeval.
+          other: Nurjunud katsed %{count} päeval.
+        no_failures_recorded: Nurjumisi pole.
         title: Saadavus
+        warning: Viimane ühenduskatse selle serveriga ebaõnnestus
       back_to_all: Kõik
+      back_to_limited: Piiratud
       back_to_warning: Hoiatus
       by_domain: Domeen
+      confirm_purge: Kindel, et selle domeeni andmed kustutada jäädavalt?
       content_policies:
+        comment: Sisemine märge
+        description_html: On võimalik kirjeldada sisureeglid kõigile kontodele sellelt domeenilt ja alamdomeenidelt.
         policies:
+          reject_media: Meedia hülgamine
+          reject_reports: Lükka raportid tagasi
+          silence: Vaigista
           suspend: Kustuta
+        policy: Reegel
+        reason: Avalik põhjendus
+        title: Sisureeglid
       dashboard:
+        instance_accounts_dimension: Enim jälgitud kontod
+        instance_accounts_measure: talletatud kontod
+        instance_followers_measure: meie jälgiad seal
+        instance_follows_measure: nende jälgijad siin
         instance_languages_dimension: Top keeled
+        instance_media_attachments_measure: talletatud meedialisandid
+        instance_reports_measure: raportid nende kohta
+        instance_statuses_measure: salvestatud postitused
       delivery:
         all: Kõik
+        clear: Kustuta edastustõrked
+        failing: Nurjuv
+        restart: Taaskäivita edastus
+        stop: Peata edastus
         unavailable: Pole saadaval
       delivery_available: Üleandmine on saadaval
+      delivery_error_days: Edastustõrgete päevad
+      delivery_error_hint: Kui edastus pole võimalik %{count} päeva, märgitakse automaatselt edastamatuks.
+      destroyed_msg: Domeeni %{domain} andmed on märgitud lõplikuks kustutamiseks.
+      empty: Domeene ei leidu.
+      known_accounts:
+        one: "%{count} teada konto"
+        other: "%{count} teada kontot"
       moderation:
         all: Kõik
         limited: Piiratud
-        title: Moderatsioon
+        title: Modereerimine
       private_comment: Privaatne kommentaar
       public_comment: Avalik kommentaar
       purge: Kustuta
-      title: Föderatsioon
+      purge_description_html: Kui on arvata, et domeen on lõplikult kadunud, on võimalik kustutada kõik siin talletatud kontode kirjed ja seotud andmed. See võib aega võtta.
+      title: Födereerumine
       total_blocked_by_us: Meie poolt blokeeritud
       total_followed_by_them: Nende poolt jälgitud
       total_followed_by_us: Meie poolt jälgitud
       total_reported: Nende kohta teateid
       total_storage: Lisatud meedia
+      totals_time_period_hint_html: Allpool kuvatud summad sisaldavad andmed kogu aja kohta.
     invites:
       deactivate_all: Peata kõik
       filter:
@@ -454,11 +545,11 @@ et:
     relays:
       add_new: Lisa uus relee
       delete: Kustuta
-      description_html: "<strong>Föderatsiooni relee</strong> on vahepealne server, mis vahetab suures koguses tuututusi serverite vahel, mis on selle tellijad ning mis sellele saadavad. <strong>See aitab väikestel ja keskmistel serveritel avastada sisu fediversumist</strong>, mis tavaliselt nõuab teisel serveril olevate inimeste jälgimist."
+      description_html: "<strong>Födereerumisrelee</strong> on vahendav server, mis kannab üle suures koguses avalikke postitusi nende serverite vahel, mis on sellega liitunud ja edastavad sellele oma postitusi. <strong>See aitab väikestel ja keskmistel serveritel avastada födiversumi sellist sisu</strong>, mis muidu eeldaks kohalikelt kasutajatelt nende serverite kasutajate jälgitavaks märkimist."
       disable: Keela
       disabled: Keelatud
       enable: Luba
-      enable_hint: Kui lubatud, siis Teie server tellib kõik avalikud tuututused sellelt releelt ning hakkab ka enda avalikke tuututusi sellele saatma.
+      enable_hint: Kui lubatud, siis server tellib kõik avalikud postitused sellelt releelt ning hakkab ka enda avalikke postitusi sellele saatma.
       enabled: Lubatud
       inbox_url: Relee URL
       pending: Ootab relee nõusolekut
@@ -470,6 +561,7 @@ et:
     report_notes:
       created_msg: Teade edukalt koostatud!
       destroyed_msg: Teade edukalt kustutatud!
+      today_at: Täna kell %{time}
     reports:
       account:
         notes:
@@ -480,18 +572,25 @@ et:
       actions:
         delete_description_html: Raporteeritud postitused kustutatakse ja juhtum talletatakse hoiatusena tulevaste eksimuste ärahoidmiseks.
         mark_as_sensitive_description_html: Raporteeritud meedia märgitakse kui tundlik sisu ja juhtum talletatakse hoiatusena tulevaste eksimuste ärahoidmiseks.
+        other_description_html: On rohkem valikuid konto käitumise juhtimiseks ja suhtluse kohandamiseks raporteeritud kontoga.
         resolve_description_html: Raporteeritud konto suhtes ei võeta midagi ette, juhtumit ei registreerita ja raport suletakse.
+        silence_description_html: Profiil on nähtav ainult neile, kes seda juba jälgivad või otsivad seda käsitsi, piirates sellega tõsiselt selle leitavust. Saab alati tagasi võtta.
         suspend_description_html: Konto ja kogu sisu muutub lõpliku kustutamiseni kättesaamatuks. Kontoga suhtlemine pole võimalik. Tagasivõetav 30 päeva jooksul.
       actions_description_html: Otsustus, mida raporti lahendamiseks ette võtta. Karistava tegevuse korral saadetakse e-postiga teade, välja arvatud kategooria <strong>rämpspost</strong> puhul.
+      add_to_report: Lisa raportile juurde
       are_you_sure: Olete kindel?
       assign_to_self: Määra mulle
       assigned: Määratud moderaator
       by_target_domain: Teavitatud konto domeen
       category: Kategooria
+      category_description_html: Põhjus, miks sellest kontost ja/või sisust teatati, kaasatakse raporteeritud kontoga suhtlemisel
       comment:
         none: Pole
+      comment_description_html: 'Täiendava infona kirjutas %{name}:'
       created_at: Teavitatud
+      delete_and_resolve: Kustutatud postitused
       forwarded: Edastatud
+      forwarded_to: Edastatud domeenile %{domain}
       mark_as_resolved: Märgi lahendatuks
       mark_as_sensitive: Märgi kui tundlik sisu
       mark_as_unresolved: Märgi lahendamata
@@ -503,15 +602,20 @@ et:
         delete: Kustuta
         placeholder: Kirjelda, mis on ette võetud või muid seotud uuendusi...
         title: Märkmed
+      notes_description_html: Märkmete vaatamine ja jätmine teistele moderaatoritele ja tulevikuks endale
       quick_actions_description_html: 'Võimalus teha kiire otsus või näha raporteeritud sisu allpool:'
+      remote_user_placeholder: kaugkasutaja domeenist %{instance}
       reopen: Taasava teavitus
       report: 'Teavitus #%{id}'
       reported_account: Teavitatud kontost
-      reported_by: Teavitatud
+      reported_by: Teavitaja
       resolved: Lahendatud
       resolved_msg: Teavituse lahendamine õnnestus!
       skip_to_actions: Otsuste juurde
       status: Staatus
+      statuses: Raporteeritud sisu
+      statuses_description_html: Sobimatu sisu kaasatakse suhtlusse raporteeritud kontoga
+      target_origin: Raporteeritud konto päritolu
       title: Teavitused
       unassign: Eemalda määramine
       unresolved: Lahendamata
@@ -523,14 +627,22 @@ et:
         one: "%{count} kasutaja"
         other: "%{count} kasutajat"
       categories:
+        administration: Haldamine
         devops: DevOps
+        invites: Kutsed
         moderation: Modereerimine
+        special: Eriline
       delete: Kustuta
+      description_html: "<strong>Kasutajarollide</strong> abil saab kohandada, millistele Mastodoni funktsioonidele ja piirkondadele kasutajad ligi pääsevad."
+      edit: Muuda '%{name}' rolli
+      everyone: Vaikimisi load
+      everyone_full_description_html: See on <strong>baasroll</strong> mõjudes <strong>kõigile kasutajatele</strong>, ka määramata rolliga. Kõik teised rollid pärivad selle rolli õigused.
       permissions_count:
         one: "%{count} õigus"
         other: "%{count} õigused"
       privileges:
         administrator: Administraator
+        administrator_description: Selle loaga kasutajad võivad mööda pääseda kõigist lubadest
         delete_user_data: Kustuta kasutaja andmed
         delete_user_data_description: Lubab kasutajatel kustutada teiste kasutajate andmeid viiteta
         invite_users: Kutsu kasutajaid
@@ -543,7 +655,7 @@ et:
         manage_blocks_description: Lubab kasutajatel keelata e-postiteenuse pakkujaid ja IP-aadresse
         manage_custom_emojis: Halda isetehtud emotikone
         manage_custom_emojis_description: Lubab kasutajatel hallata serveris isetehtud emotikone
-        manage_federation: Halda föderatsiooni
+        manage_federation: Halda födereerumist
         manage_federation_description: Lubab kasutajail keelata või lubada föderatsioone teiste domeenidega ja hallata ühenduvust
         manage_invites: Halda kutseid
         manage_invites_description: Lubab kasutajatel kutseid lehitseda ja sulgeda
@@ -563,38 +675,55 @@ et:
         manage_users_description: Lubab kasutajail näha teiste kasutajate detailandmeid ja teha modereerimisotsuseid
         manage_webhooks: Halda webhook'e
         manage_webhooks_description: Lubab kasutajatel administratiivseteks sündmusteks webhook'e seadistada
+        view_audit_log: Auditilogi vaatamine
         view_audit_log_description: Lubab kasutajail näha serveri administratiivsete otsuste ajalugu
+        view_dashboard: Vaata töölauda
+        view_dashboard_description: Lubab kasutajail pääseda ligi töölauale ja erinevale meetrikale
         view_devops: DevOps
+        view_devops_description: Lubab kasutajail ligipääsu Sidekiq ja pgHero töölaudadele
       title: Rollid
     rules:
       add_new: Lisa reegel
       delete: Kustuta
+      description_html: Kuigi enamik väidab, et on teenusetingimused läbi lugenud ja nõustub nendega, loevad inimesed tavaliselt need läbi alles pärast probleemi tekkimist. <strong>Hõlbustage oma serveri reeglite ühe pilguga nägemist, esitades need lihtsa täpploendina.</strong> Püüdke hoida üksikud reeglid lühikesed ja lihtsad, kuid ärge jagage neid ka paljudeks eraldi üksusteks.
       edit: Reegli muutmine
+      empty: Serveri reegleid pole veel defineeritud.
       title: Serveri reeglid
     settings:
       about:
+        manage_rules: Halda serveri reegleid
+        preamble: Täpsem kirjeldus, kuidas serverit käitatakse, modereeritakse ja rahastatakse.
+        rules_hint: Reeglitele, millega kasutajad peavad nõustuma, on vastav piirkond.
         title: Teave
       appearance:
+        preamble: Kohanda Mastodoni veebiliidest.
         title: Välimus
       branding:
+        preamble: Serveri bränding eristab seda teistest serveritest võrgus. Seda teavet võidakse kuvada erinevates keskkondades, näiteks Mastodoni veebiliideses, rakendustes, viitade eelvaadetes teistel veebisaitidel, sõnumsiderakendustes jne. Sel põhjusel on kõige parem hoida see teave selge, lühike ja ülevaatlik.
         title: Märgistus
       content_retention:
         preamble: Juhi kuidas kasutajate loodud sisu Mastodon'is talletatakse.
         title: Sisu talletamine
       discovery:
         follow_recommendations: Jälgi soovitusi
+        preamble: Huvitava sisu esiletoomine on oluline uute kasutajate kaasamisel, kes ei pruugi Mastodonist kedagi tunda. Kontrollige, kuidas erinevad avastamisfunktsioonid teie serveris töötavad.
         profile_directory: Kasutajate kataloog
+        public_timelines: Avalikud ajajooned
         title: Avastus
         trends: Trendid
       domain_blocks:
         all: Kõigile
         disabled: Mitte kellelegi
         users: Sisseloginud kohalikele kasutajatele
+      registrations:
+        preamble: Kes saab serveril konto luua.
+        title: Registreerimised
       registrations_mode:
         modes:
           approved: Kinnitus vajalik konto loomisel
           none: Keegi ei saa kontoid luua
           open: Kõik võivad kontoid luua
+      title: Serveri seadistused
     site_uploads:
       delete: Kustuta üleslaetud fail
       destroyed_msg: Üleslaetud fail edukalt kustutatud!
@@ -602,8 +731,13 @@ et:
       account: Autor
       application: Rakendus
       back_to_account: Tagasi konto lehele
+      back_to_report: Tagasi raporti lehele
+      batch:
+        remove_from_report: Eemalda raportist
+        report: Raport
       deleted: Kustutatud
       favourites: Lemmikud
+      history: Versiooniajalugu
       in_reply_to: Vastusena
       language: Keel
       media:
@@ -611,22 +745,37 @@ et:
       metadata: Metaandmed
       no_status_selected: Mitte ühtegi staatust muudeti sest midagi polnud valitud
       open: Ava postitus
+      original_status: Algne postitus
+      reblogs: Jagamised
+      status_changed: Muudetud postitus
       title: Konto staatused
+      trending: Populaarne
       visibility: Nähtavus
       with_media: Meediaga
     strikes:
       actions:
+        delete_statuses: "%{name} kustutas %{target} postitused"
+        disable: "%{name} külmutas %{target} konto"
         mark_statuses_as_sensitive: "%{name} märkis %{target} postitused tundlikena"
+        none: "%{name} saatis hoiatuse kasutajale %{target}"
         sensitive: "%{name} märkis %{target} konto kui tundlik sisu"
+        silence: "%{name} piiras %{target} konto"
         suspend: "%{name} kustutas %{target} konto"
       appeal_approved: Vaidlustatud
       appeal_pending: Vaidlustus on ootel
     system_checks:
+      database_schema_check:
+        message_html: On ootel andmebaasi migreerimisi. Rakenduse ootuspäraseks toimimiseks palun käivita need
       elasticsearch_running_check:
         message_html: Elasticsearch ei vasta. Kontrolli, kas see töötab või keela täistekstiotsing
       elasticsearch_version_check:
         message_html: 'Elasticsearch versioon ei sobi: %{value}'
         version_comparison: Elasticsearch %{running_version} töötab, aga nõutud on %{required_version}
+      rules_check:
+        action: Halda serveri reegleid
+        message_html: Serverireegleid pole defineeritud.
+      sidekiq_process_check:
+        message_html: Ühtegi Sidekiq protsessi pole %{value} järjekorra jaoks. Sidekiq seadistus vajab üle vaatamist
     tags:
       review: Staatuse ülevaade
       updated_msg: Sildi sätted edukalt uuendatud
@@ -634,33 +783,105 @@ et:
     trends:
       allow: Luba
       approved: Kinnitatud
+      disallow: Keela
+      links:
+        allow: Luba viit
+        allow_provider: Luba autor
+        description_html: Need on lingid, mida jagavad praegu palju kontod, mille postitusi teie server näeb. See võib aidata kasutajatel teada saada, mis maailmas toimub. Ühtegi linki ei kuvata avalikult enne, kui avaldaja on heaks kiidetud. Samuti saab üksikuid linke lubada või tagasi lükata.
+        disallow: Keela viit
+        disallow_provider: Keela autor
+        no_link_selected: Viitasid ei muudetud, kuna ühtegi polnud valitud
+        publishers:
+          no_publisher_selected: Avaldajaid ei muudetud, kuna ühtegi polnud valitud
+        shared_by_over_week:
+          one: Jagatud ühe kasutaja pool viimase nädala jooksul
+          other: Jagatud %{count} kasutaja poolt viimase nädala jooksul
+        title: Trendikad viited
+        usage_comparison: Jagatud %{today} korda täna, eile %{yesterday} korda
+      only_allowed: Ainult lubatud
       pending_review: Ootab ülevaatust
+      preview_card_providers:
+        allowed: Viited kasutajalt ilmuvad trendides
+        description_html: Need on domeenid, mille linke serveris sageli jagatakse. Lingid ei muutu trendides avalikuks, kuni lingi domeen pole heaks kiidetud. Heakskiit (või tagasilükkamine) laieneb alamdomeenidele.
+        rejected: Kasutaja viited ei ilmu trendides
+        title: Kasutajad
+      rejected: Tagasi lükatud
+      statuses:
+        allow: Luba postitada
+        allow_account: Luba autor
+        description_html: Need on postitused, millest server teab ja mida praegu jagatakse ja mis on hetkel paljude lemmikud. See võib aidata uutel ja naasvatel kasutajatel leida rohkem inimesi, keda jälgida. Ühtegi postitust ei kuvata avalikult enne, kui autor on heaks kiidetud ja autor lubab oma kontot teistele soovitada. Samuti saab üksikuid postitusi lubada või tagasi lükata.
+        disallow: Ära luba postitada
+        disallow_account: Keela autor
+        no_status_selected: Trendikaid postitusi ei muudetud, kuna ükski polnud valitud
+        not_discoverable: Autor pole lubanud enda avastamist
+        shared_by:
+          one: Jagatud või meeldinud üks kord
+          other: Jagatud ja meeldinud %{friendly_count} korda
+        title: Trendikad postitused
       tags:
+        current_score: Skoor praegu %{score}
+        dashboard:
+          tag_accounts_measure: unikaalset kasutajat
+          tag_languages_dimension: Populaarseimad keeled
+          tag_servers_dimension: Populaarseimad serverid
+          tag_servers_measure: erinevat serverit
+          tag_uses_measure: kasutajaid kokku
         description_html: Need sildid ilmuvad praegu paljudes postitutes mida su server näeb. See võib aidata su kasutajatel leida seda millest kõige rohkem parajasti räägitakse. Ühtegi silti ei näidata avalikult, enne nende heaks kiitmist.
+        listable: Võib olla soovitatud
+        no_tag_selected: Silte ei muudetud, kuna ühtegi polnud valitud
+        not_listable: Ei soovitata
+        not_trendable: Ei ilmu trendides
+        not_usable: Ei saa kasutada
+        peaked_on_and_decaying: Populaarseim %{date}, nüüd langemas
         title: Trendikad sildid
+        trendable: Võib ilmuda trendides
+        trending_rank: 'Trendides #%{rank}'
         usable: Kasutatav
+        usage_comparison: Kasutatud %{today} korda täna, eile %{yesterday} korda
+        used_by_over_week:
+          one: Kasutatud ühe kasutaja pool viimase nädala jooksul
+          other: Kasutatud %{count} kasutaja poolt viimase nädala jooksul
       title: Trendid
+      trending: Trendid
     warning_presets:
       add_new: Lisa uus
       delete: Kustuta
-      edit_preset: Redigeeri hoiatuse eelseadistust
+      edit_preset: Hoiatuse eelseadistuse muutmine
+      empty: Hoiatuste eelseadeid pole defineeritud.
       title: Halda hoiatuste eelseadistusi
     webhooks:
+      add_new: Lisa lõpp-punkt
       delete: Kustuta
+      description_html: "<strong>Veebihaak</strong> võimaldab Mastodonil edastada <strong>reaalajas märguandeid</strong> valitud sündmuste kohta teie enda rakendusele, et teie rakendus saaks <strong>automaatselt reaktsioone käivitada</strong>."
       disable: Keela
       disabled: Keelatud
+      edit: Muuda lõpp-punkti
+      empty: Ühtegi veebikonksu lõpp-punkti pole veel seadistatud.
       enable: Luba
       enabled: Aktiivne
+      enabled_events:
+        one: 1 lubatud sündmus
+        other: "%{count} lubatud sündmust"
       events: Sündmused
+      new: Uus veebikonks
+      rotate_secret: Salavõtme rotatsioon
+      secret: Salavõti allkirjastamiseks
       status: Staatus
+      title: Veebikonksud
+      webhook: Veebikonks
   admin_mailer:
     new_appeal:
       actions:
+        delete_statuses: kustutada postitused
+        disable: kustutada konto
         mark_statuses_as_sensitive: et märkida postitused kui tundlik sisu
         none: hoiatus
         sensitive: et märkida konto kui tundlik sisu
+        silence: piirata konto
         suspend: et konto kustutada
       body: "%{target} vaidlustab %{action_taken_by} modereerimisotsuse kuupäevaga %{date}: %{type}. Põhjendus:"
+      next_steps: Võid modereeringu tagasi pööramiseks vaidlustuse rahuldada, või ka mitte.
+      subject: "%{username} on vaidlustanud %{instance} modereerimisotsuse"
     new_pending_account:
       body: Uue konto üksikasjad on allpool. Te saate vastu võtta või tagasi lükata seda taotlust.
       subject: Uus konto valmis ülevaatluseks serveril %{instance} (%{username})
@@ -669,10 +890,16 @@ et:
       body_remote: Keegi domeenist %{domain} teavitas kasutajast %{target}
       subject: Uus teavitus %{instance}-ile (#%{id})
     new_trends:
+      body: 'Järgmised üksused vajavad enne avalikustamist ülevaatust:'
+      new_trending_links:
+        title: Trendikad viited
+      new_trending_statuses:
+        title: Trendikad postitused
       new_trending_tags:
         no_approved_tags: Hetkel ei ole ühtegi heaks kiidetud populaarset silti.
         requirements: 'Need on siltide kandidaadid mille hulgast ükskõik milline võib järjekorras mööda jõuda #%{rank} kohal olevast heaks kiidetud sildist. See on hetkel #%{lowest_tag_name} mille seis on %{lowest_tag_score}.'
         title: Trendikad sildid
+      subject: Uued %{instance} trendid ülevaatuseks
   aliases:
     add_new: Loo teine nimi
     created_msg: Teine nimi on edukalt loodud. Te saate nüüd alustada kolimist vanalt kontolt.
@@ -687,10 +914,11 @@ et:
     confirmation_dialogs: Kinnitusdialoogid
     discovery: Avastus
     localization:
-      body: Mastodon on tõlgitud vabatahtlike poolt.
-      guide_link_text: Igaüks võib panustada.
+      body: Mastodoni tõlgivad vabatahtlikud.
+      guide_link: https://crowdin.com/project/mastodon/et
+      guide_link_text: Panustada võib igaüks!
     sensitive_content: Tundlik sisu
-    toot_layout: Tuututuse kujundus
+    toot_layout: Postituse väljanägemine
   application_mailer:
     notification_preferences: Muuda e-kirjade eelistusi
     salutation: "%{name}!"
@@ -706,21 +934,25 @@ et:
     warning: Olge nende andmetega ettevaatlikud. Ärge jagage neid kellegagi!
     your_token: Teie access token
   auth:
+    apply_for_account: Konto taotluse esitamine
     change_password: Salasõna
-    delete_account: Kustuta konto
-    delete_account_html: Kui Te soovite oma kontot kustutada, võite <a href="%{path}">jätkata siit</a>. Teilt küsitakse kinnitust.
+    delete_account: Konto kustutamine
+    delete_account_html: Kui soovid oma konto kustutada, siis <a href="%{path}">jätka siit</a>. Pead selle eraldi kinnitama.
     description:
       prefix_invited_by_user: "@%{name} kutsub Teid liituma selle Mastodoni serveriga!"
       prefix_sign_up: Loo Mastodoni konto juba täna!
       suffix: Kasutajakontoga saate jälgida inimesi, postitada uudiseid ning teha kirjavahetust üks kõik millisest Mastodoni serverist kasutajatega ja muud!
     didnt_get_confirmation: Ei saanud kinnituse juhendeid?
+    dont_have_your_security_key: Pole turvavõtit?
     forgot_password: Salasõna ununenud?
     invalid_reset_password_token: Salasõna lähtestusvõti on vale või aegunud. Palun taotle uus.
     link_to_otp: Kahe-etapine kood telefonist või taastekood
+    link_to_webauth: Turvavõtmete seadme kasutamine
+    log_in_with: Sisene kasutades
     login: Logi sisse
     logout: Logi välja
-    migrate_account: Koli teisele kasutajale
-    migrate_account_html: Kui Te soovite seda kontot ümber viia teisele, <a href="%{path}">saate teha seda siit</a>.
+    migrate_account: Teisele kontole ära kolimine
+    migrate_account_html: Kui soovid selle konto siit ära kolida, <a href="%{path}">saad seda teha siit</a>.
     or_log_in_with: Või logi sisse koos
     privacy_policy_agreement_html: Olen lugenud ja nõustun <a href="%{privacy_policy_path}" target="_blank">privaatsuspoliitikaga</a>
     providers:
@@ -740,15 +972,17 @@ et:
       email_settings_hint_html: Kinnituskiri saadeti e-posti aadressile %{email}. Kui see aadress pole õige, saate Te muuta seda oma konto sätetest.
       title: Seadistamine
     sign_up:
-      preamble: Kontoga selles Mastodoni serveris on võimalik jälgida ükskõik keda võrgustikus, olenemata nende konto asukohast.
-      title: Konto andmed serveris %{domain}.
+      preamble: Selle kontoga saad jälgida ja suhelda kõigi teiste kasutajatega erivevates Mastodoni serverites.
+      title: Loo konto serverisse  %{domain}.
     status:
       account_status: Konto olek
       confirming: Ootan e-posti kinnitust.
+      functional: Konto on täies mahus kasutatav.
       pending: Teie taotlus ootab ülevaadet meie personali poolt. See võib võtta mõnda aega. Kui Teie taotlus on vastu võetud, saadetakse Teile e-kiri.
       redirecting_to: Teie konto ei ole aktiivne, kuna hetkel suunatakse ümber kasutajale %{acct}.
       view_strikes: Vaata enda eelnevaid juhtumeid
     too_fast: Vorm esitatud liiga kiirelt, proovi uuesti.
+    use_security_key: Kasuta turvavõtit
   authorize_follow:
     already_following: Te juba jälgite seda kontot
     already_requested: Te juba saatsite jälgimistaotluse sellele kontole
@@ -810,23 +1044,31 @@ et:
       action_taken: Tulemus
       appeal: Vaidlustus
       appeal_approved: Selle juhtumi vaidlustus on rahuldatud ja pole enam kehtiv
+      appeal_rejected: Vaidlustus on tagasi lükatud
       appeal_submitted_at: Vaidlustus esitatud
       appealed_msg: Vaidlustus esitatud. Selle rahuldamisel saabub teadaanne.
       appeals:
         submit: Esita vaidlustus
       approve_appeal: Rahulda vaidlustus
+      associated_report: Seotud raport
       created_at: Kuupäev
       description_html: See on käesoleva konto hoiatuste ja tegevuste ajalugu, mis on %{instance} haldajate poolt ette võetud.
+      recipient: Adressaat
       reject_appeal: Lükka vaidlustus tagasi
       status: 'Postitus #%{id}'
+      status_removed: Postitus on süsteemist juba eemaldatud
       title: "%{action} kuupäevaga %{date}"
       title_actions:
+        delete_statuses: Postituste eemaldamine
+        disable: Konto külmutamine
         mark_statuses_as_sensitive: Postituste tundlikena märkimine
         none: Hoiatus
         sensitive: Konto tundlikuna märkimine
+        silence: Konto piirang
         suspend: Konto kustutamine
       your_appeal_approved: Teie vaidlustus on rahuldatud
       your_appeal_pending: Vaidlustus on esitatud
+      your_appeal_rejected: Vaidlustus on tagasi lükatud
   domain_validator:
     invalid_domain: ei ole sobiv domeeni nimi
   errors:
@@ -851,7 +1093,7 @@ et:
     archive_takeout:
       date: Kuupäev
       download: Lae alla oma arhiiv
-      hint_html: Te saate taotleda arhiivi oma <strong>tuututustest ja üleslaetud meediast</strong>. Eksporditud andmed on ActivityPub-i formaadis, loetav vastava tarkvara poolt. Te saate taotleda arhiivi iga 7 päeva tagant.
+      hint_html: "<strong>Postitustest ja üleslaetud meediast</strong> on võimalik saada koopia. Eksporditud andmed on ActivityPub-formaadis, loetav vastava tarkvara poolt. Koopia saamine on võimalik iga 7 päeva järel."
       in_progress: Loome Teie arhiivi...
       request: Taotle oma arhiivi
       size: Suurus
@@ -875,26 +1117,54 @@ et:
       public: Avalikud ajajooned
       thread: Vestlused
     edit:
+      add_keyword: Võtmesõna lisamine
       keywords: Märksõnad
+      statuses: Üksikud postitused
+      statuses_hint_html: See filter rakendub üksikute postituste valimisel olenemata sellest, kas need vastavad allolevatele märksõnadele. <a href="%{path}">Filtri postituste ülevaatamine või kustutamine</a>.
       title: Muuda filtrit
     errors:
+      deprecated_api_multiple_keywords: Neid parameetreid ei saa selles rakenduses muuta, kuna need kehtivad rohkem kui ühele filtri märksõnale. Kasutage uuemat rakendust või veebiliidest.
       invalid_context: Puudulik või vale kontekst
     index:
+      contexts: Filtrid %{contexts}
       delete: Kustuta
       empty: Teil pole filtreid.
+      expires_in: Aegub %{distance}
+      expires_on: Aegub %{date}
+      keywords:
+        one: "%{count} võtmesõna"
+        other: "%{count} võtmesõna"
+      statuses:
+        one: "%{count} postitus"
+        other: "%{count} postitust"
+      statuses_long:
+        one: "%{count} postitus peidetud"
+        other: "%{count} postitust peidetud"
       title: Filtrid
     new:
+      save: Salvesta uus filter
       title: Lisa uus filter
+    statuses:
+      back_to_filter: Tagasi filtri juurde
+      batch:
+        remove: Eemalda filtrist
+      index:
+        hint: See filter kehtib üksikute postituste valimisel, sõltumata muudest kriteeriumidest. Sellesse filtrisse saab veebiliidese kaudu rohkem postitusi lisada.
+        title: Filtreeritud postitused
   footer:
     trending_now: Praegu trendikad
   generic:
     all: Kõik
+    all_items_on_page_selected_html:
+      one: "<strong>%{count}</strong> üksus sel lehel valitud."
+      other: Kõik <strong>%{count}</strong> üksust sel lehel on valitud.
     all_matching_items_selected_html:
       one: "<strong>%{count}</strong> otsinguvaste valitud."
       other: Kõik <strong>%{count}</strong> otsinguvastet valitud.
     changes_saved_msg: Muudatuste salvestamine õnnestus!
     copy: Kopeeri
     delete: Kustuta
+    deselect: Ära vali midagi
     none: Puudub
     order_by: Järjesta
     save_changes: Salvesta muudatused
@@ -908,6 +1178,9 @@ et:
   html_validator:
     invalid_markup: 'sisaldab valet HTMLi süntaksi: %{error}'
   imports:
+    errors:
+      invalid_csv_file: 'Vigane CSV-fail. Tõrge: %{error}'
+      over_rows_processing_limit: sisaldab rohkem, kui %{count} rida
     modes:
       merge: Lõimi
       merge_long: Hoia olemasolevad andmed ja lisa uusi
@@ -951,7 +1224,13 @@ et:
     authentication_methods:
       otp: kahe-etapise autentimise rakendus
       password: salasõna
+      sign_in_token: e-posti turvakood
+      webauthn: turvavõtmed
     description_html: Kui paistab tundmatauid tegevusi, tuleks vahetada salasõna ja aktiveerida kahe-etapine autentimine.
+    empty: Autentimisajalugu pole saadaval
+    failed_sign_in_html: Nurjunud sisenemine meetodiga %{method} aadressilt %{ip} (%{browser})
+    successful_sign_in_html: Edukas sisenemine meetodiga %{method} aadressilt %{ip} (%{browser})
+    title: Autentimise ajalugu
   media_attachments:
     validations:
       images_and_video: Ei saa lisada video staatusele, millel on juba pildid
@@ -969,8 +1248,8 @@ et:
       not_found: ei leitud
       on_cooldown: Te olete hetkel ootel
     followers_count: Jälgijaid kolimise hetkel
-    incoming_migrations: Kolivad teiselt kontolt
-    incoming_migrations_html: Kui soovite kolida teiselt kontolt praegusele, peate Te esmalt looma <a href="%{path}">kontole teise nime</a>.
+    incoming_migrations: Teiselt kontolt siia kolimine
+    incoming_migrations_html: Kui soovid kolida teise konto siia, pead esmalt määrama <a href="%{path}">kolitava konto nime</a>.
     moved_msg: Teie konto on nüüd ümber suunamas kontole %{acct} ning Teie jälgijaid kolitakse üle.
     not_redirecting: Teie kontot ei suunata hetkel ümber.
     on_cooldown: Te olete hiljuti kolinud oma kontot. See funktsioon on jälle kättesaadav %{count} päeva pärast.
@@ -989,9 +1268,13 @@ et:
       other_data: Muid andmeid ei liigutata automaatselt
       redirect: Teie praegune konto eemaldatakse otsingutulemustest ning profiilile lisatakse ümbersuunamise märguanne
   moderation:
-    title: Moderatsioon
+    title: Modereerimine
   move_handler:
     carry_blocks_over_text: See kasutaja kolis kontolt %{acct}, mis oli keelatud.
+    carry_mutes_over_text: Kasutaja kolis ümber kontolt %{acct}, mis oli vaigistatud.
+    copy_account_note_text: 'Kasutaja kolis kontolt %{acct}, kus olid eelnevad märkmed tema kohta:'
+  navigation:
+    toggle_menu: Menüü lülimine
   notification_mailer:
     admin:
       report:
@@ -1016,10 +1299,16 @@ et:
       body: "%{name} mainis Teid:"
       subject: "%{name} mainis Teid"
       title: Uus mainimine
+    poll:
+      subject: "%{name} küsitlus lõppes"
     reblog:
       body: "%{name} jagas postitust:"
       subject: "%{name} jagas postitust"
       title: Uus jagamine
+    status:
+      subject: "%{name} postitas äsja"
+    update:
+      subject: "%{name} muutis postitust"
   notifications:
     email_events: E-posti teadete sündmused
     email_events_hint: 'Valige sündmused, millest soovite teavitusi:'
@@ -1029,12 +1318,19 @@ et:
       decimal_units:
         format: "%n%u"
         units:
-          thousand: T
-          trillion: Tr
+          billion: mld
+          million: mln
+          quadrillion: kdn
+          thousand: tuh
+          trillion: trn
   otp_authentication:
+    code_hint: Kinnituseks autentimisrakenduse loodud kood
     description_html: Kui aktiveerda <strong>kahe-etapine autentimine</strong> autentimisrakenduse abil, on sisselogimiseks tarvis telefoni, mis loob sisenemiseks võtmeid.
     enable: Luba
+    instructions_html: "<strong>See QR-kood on võimalik skannida telefoni Google Authenticatori või sarnasesse ühekordsete aeguvate salasõnade (TOTP) rakendusse</strong>. Nüüdsest genereerib see rakendus koode, mille peab sisenemisel sisestama."
+    manual_instructions: 'Kui pole võimalik QR-koodi skaneerida, on salavõti võimalik sisestada tavatekstina:'
     setup: Seadista
+    wrong_code: Sisestatud kood on vale! Kas serveri aeg ja seadme aeg on õiged?
   pagination:
     newer: Uuemad
     next: Järgmine
@@ -1056,6 +1352,8 @@ et:
     other: Muu
     posting_defaults: Postitamise vaikesätted
     public_timelines: Avalikud ajajooned
+  privacy_policy:
+    title: Isikuandmete kaitse
   reactions:
     errors:
       limit_reached: Jõutud on erinevate reaktsioonide limiidini
@@ -1063,6 +1361,7 @@ et:
   relationships:
     activity: Konto tegevus
     dormant: Seisev
+    follow_selected_followers: Valitud jälgijate jälgimine
     followers: Jälgijad
     following: Jälgib
     invited: Kutsutud
@@ -1078,13 +1377,18 @@ et:
     status: Konto olek
   remote_follow:
     missing_resource: Ei suutnud leida vajalikku suunamise URLi Teie konto jaoks
+  reports:
+    errors:
+      invalid_rules: ei viita kehtivatele reeglitele
   rss:
+    content_warning: 'Sisuhoiatus:'
     descriptions:
+      account: "@%{acct} avalikud postitused"
       tag: 'Avalikud postitused sildiga #%{hashtag}'
   scheduled_statuses:
-    over_daily_limit: Te olete jõudnud maksimum lubatud ajastatud tuututuste arvuni %{limit} selle päeva kohta
+    over_daily_limit: Lubatud ajastatud postituste arv %{limit} päevas on tänaseks ületatud
     over_total_limit: Te olete jõudnud maksimum lubatud ajastatud tuututuste arvuni %{limit}
-    too_soon: Ajastatud tuututuse kuupäev peab olema tukevikus
+    too_soon: Ajastatud kuupäev peab olema tukevikus
   sessions:
     activity: Viimane aktiivsus
     browser: Veebilehitseja
@@ -1108,7 +1412,7 @@ et:
       weibo: Weibo
     current_session: Praegune seanss
     description: "%{browser} platvormil %{platform}"
-    explanation: Need on praegused veebilehitsejad, mis on sisse logitud Teie Mastodoni kontosse.
+    explanation: Need on veebilehitsejad on praegu sinu Mastodoni kontole sisse loginud.
     ip: IP
     platforms:
       adobe_air: Adobe Air
@@ -1125,7 +1429,8 @@ et:
       windows_phone: Windows Phone
     revoke: Tühista
     revoke_success: Seanssi tühistamine õnnestus
-    title: Seanssid
+    title: Seansid
+    view_authentication_history: Konto autentimisajaloo vaatamine
   settings:
     account: Konto
     account_settings: Kontosätted
@@ -1148,8 +1453,12 @@ et:
     statuses_cleanup: Automaatne kustutamine
     strikes: Modereerimisjuhtumid
     two_factor_authentication: Kahe-etapine autentimine
+    webauthn_authentication: Turvavõtmed
   statuses:
     attached:
+      audio:
+        one: "%{count} audio"
+        other: "%{count} audiot"
       description: 'Manused: %{attached}'
       image:
         one: "%{count} pilt"
@@ -1159,9 +1468,11 @@ et:
         other: "%{count} videot"
     boosted_from_html: "%{acct_link} jagamine"
     content_warning: 'Sisu hoiatus: %{warning}'
+    default_language: Kasutajaliidese keelega sama
     disallowed_hashtags:
       one: 'sisaldab ebasobivat silti: %{tags}'
       other: 'sisaldab ebasobivaid silte: %{tags}'
+    edited_at_html: Muudetud %{date}
     errors:
       in_reply_not_found: Staatus, millele üritate vastata, ei näi enam eksisteerivat.
     open_in_web: Ava veebis
@@ -1180,22 +1491,40 @@ et:
         other: "%{count} häält"
       vote: Hääleta
     show_more: Näita rohkem
+    show_newer: Uuemate kuvamine
+    show_older: Vanemate kuvamine
     show_thread: Kuva lõim
     sign_in_to_participate: Logi sisse, et liituda vestlusega
+    title: '%{name}: "%{quote}"'
     visibilities:
       direct: Otsene
       private: Ainult jälgijatele
-      private_long: Näita ainult jälgijatele
+      private_long: Näevad ainult jälgijad
       public: Avalik
-      public_long: Kõik saavad näha
+      public_long: Postitused on kõigile näha
       unlisted: Kirjendamata
-      unlisted_long: Kõik saavad näha, aga ei ole saadaval avalikes ajajoontes
+      unlisted_long: Kõigile näha, kuid ei näidata avalikel ajajoontel
   statuses_cleanup:
     enabled: Vanade postituste automaatne kustutamine
     enabled_hint: Kustutab automaatselt postitused, mis ületavad määratud ajalimiiti, välja arvatud allpool toodud erandite puhul
     exceptions: Erandid
+    explanation: Kuna postituste kustutamine on kulukas toiming, tehakse seda aja jooksul aeglaselt, kui server pole muidu hõivatud. Sel põhjusel võidakse postitused kustutada alles mõne aja möödudes pärast vanusepiirini jõudmist.
+    ignore_favs: Eira lemmikuid
+    ignore_reblogs: Eira jagamisi
+    interaction_exceptions: Interaktsioonidel põhinevad erandid
+    interaction_exceptions_explanation: Postitused ei pruugi kustuda, kui meeldimiste või jagamiste arv langeb alla määratu, kui need on kord olnud sellest üle.
+    keep_direct: Säilita otsesõnumid
+    keep_direct_hint: Ei kustuta otsesõnumeid
+    keep_media: Meedialisanditega postituste säilitamine
+    keep_media_hint: Meedialisanditega postitusi ei kustutata
     keep_pinned: Säilita kinnitatud postitused
     keep_pinned_hint: Ei kustuta ühtegi kinnitatud postitust
+    keep_polls: Küsitluste säilitamine
+    keep_polls_hint: Ei kustuta ühtegi küsitlust
+    keep_self_bookmark: Säilita postitused järjehoidjates
+    keep_self_bookmark_hint: Ei kustuta oma postitusi, kui need on järjehoidjates
+    keep_self_fav: Säilita meeldinud postitused
+    keep_self_fav_hint: Ei kustuta oma postitusi, kui need on märgitud meeldivaks
     min_age:
       '1209600': 2 nädalat
       '15778476': 6 kuud
@@ -1206,6 +1535,10 @@ et:
       '63113904': 2 aastat
       '7889238': 3 kuud
     min_age_label: Ajalimiit
+    min_favs: Säilita postitused, meeldimistega vähemalt
+    min_favs_hint: Ei kustuta ühtegi postitust, mis on saanud vähemalt nii palju lemmikuid. Postituste kustutamiseks, olenemata nende lemmikute arvust, jätke tühjaks
+    min_reblogs: Säilita postitused jagatud vähemalt
+    min_reblogs_hint: Ei kustuta postitusi, kui need on jagatud vähemalt nii mitu korda. Tühjaks jättes kustuvad postitused olenemata jagamistest
   stream_entries:
     pinned: Kinnitatud postitus
     reblogged: jagatud
@@ -1240,6 +1573,15 @@ et:
     recovery_instructions_html: Kui telefon peaks kaotsi minema, on võimalik kontole sisenemisel kasutada ühte järgnevatest taastekoodidest. <strong>Hoia taastekoode turvaliselt</strong>. Näiteks võib neid prindituna hoida koos teiste tähtsate dokumentidega.
     webauthn: Turvavõtmed
   user_mailer:
+    appeal_approved:
+      action: Oma kontole
+      explanation: "%{appeal_date} esitatud vaidlustus %{strike_date} otsuse kohta on rahuldatud. Konto on ennistatud."
+      subject: "%{date} esitatud vaidlustus on rahuldatud"
+      title: Vaidlustus rahuldatud
+    appeal_rejected:
+      explanation: "%{appeal_date} esitatud vaidlustus %{strike_date} otsuse kohta on tagasi lükatud."
+      subject: "%{date} esitatud vaidlustus on tagasi lükatud"
+      title: Vaidlustus tagasi lükatud
     backup_ready:
       explanation: Te taotlesite varukoopia oma Mastodoni kontost. See on nüüd valmis allalaadimiseks!
       subject: Teie arhiiv on allalaadimiseks valmis
@@ -1256,12 +1598,18 @@ et:
       appeal_description: Kui see võib olla eksitus, on võimalik %{instance} haldajatele esitada vaidlustus.
       categories:
         spam: Rämpspost
+        violation: Sisu eirab järgmisi kogukonnajuhiseid
       explanation:
+        delete_statuses: Mõned postitused eiravad ühte või mitmeid kogukonnajuhiseid ja on seetõttu %{instance} moderaatorite poolt eemaldatud.
+        disable: Konto kasutamine pole enam võimalik, kuid profiil ja muud andmed säilivad. Andmetest on võimalik saada varukoopiat, muuta konto seadeid või konto kustutada.
         mark_statuses_as_sensitive: Mõned postitused märgiti %{instance} moderaatorite poolt kui tundlik sisu. See tähendab, et meedia eelvaadet vaikimisi ei kuvata. Edaspidi postitades on soovitatav seesugune meedia märkida kui tundlik sisu.
         sensitive: Praegusest alates saab kogu Su üleslaetav meedia tundliku sisu märke ja selle eelvaadet ei kuvata enne hoiatust.
+        silence: Konto kasutamine on võimalik, ent sel serveril näevad postitusi ainult need, kes on juba jälgijad ning erinevatest avastusvõimalustest võidakse välja jätta. Käsitsi jälgima asumine on siiski võimalik.
         suspend: Konto kasutamine pole enam võimalik ja profiil ja muud andmed pole enam kättesaadavad. Sisenemine on võimalik andmetest varukoopia saamiseks kuni nende lõpliku kustutamiseni 30 päeva pärast, ent säiltame mõned põhiandmed kustutamisest mööda hiilimise vältimiseks.
       reason: 'Põhjus:'
+      statuses: 'Tsiteeritud postitused:'
       subject:
+        delete_statuses: Postitused kontol %{acct} on eemaldatud
         disable: Teie konto %{acct} on lukustatud
         mark_statuses_as_sensitive: Konto %{acct} postitused on märgitud kui tundlik sisu
         none: Hoiatus kasutajale %{acct}
@@ -1269,6 +1617,7 @@ et:
         silence: Teie kontole %{acct} on kehtestatud limiidid
         suspend: Teie konto %{acct} on kustutatud
       title:
+        delete_statuses: Postitused eemaldatud
         disable: Konto lukustatud
         mark_statuses_as_sensitive: Postitused märgitud kui tundlik sisu
         none: Hoiatus
@@ -1276,14 +1625,15 @@ et:
         silence: Konto limiteeritud
         suspend: Konto kustutatud
     welcome:
-      edit_profile_action: Sea üles profiil
+      edit_profile_action: Seadista oma profiil
+      edit_profile_step: "Esmalt seadistage oma profiil. Kindlasti lisage pilt ning lühikirjeldus. Vaadake üle oma konto seaded. Saate ise otsustada kui nähtav on teie konto teiste jaoks, mis keeltes postitusi oma ajavoos näha soovite ning kui privaatne peaks olema teie konto seadistus.\n\nKui mõni asi arusaamatuks jääb, siis võte vaadata juhendvideot: https://youtu.be/J4ItbTOAw7Q. "
       explanation: Siin on mõned nõuanded, mis aitavad sul alustada
       final_action: Alusa postitamist
-      final_step: 'Alusta postitamist! Isegi ilma jälgijateta näevad teised Teie avalikke postitusi, näiteks kohalikul ajajoonel ning siltide kaudu. Te võite ennast tutvustada kasutades silti #tutvustus.'
-      full_handle: Teie täisnimi
-      full_handle_hint: See on mida oma sõpradega jagada, et nad saaksid Teile sõnumeid saata ning Teid jälgida teiselt serverilt.
+      final_step: 'Nüüd tehke oma esimene postitus. Hea tava on uues kohas ennast tutvustada ning kindlasti kasutage selles postituses ka teemaviidet  #tutvustus. Isegi kui teil ei ole veel jälgijaid, siis teie postitusi nähevad kohalikul ajajoonel ka kõik teised serveri kasutajad.'
+      full_handle: Teie kasutajanimi Mastodon võrgustikus
+      full_handle_hint: Kui jagad oma kasutajat väljaspool serverit siis kindlasti kasuta pikka nime, sest eri serverites võib olla sama kasutajanimega liikmeid.
       subject: Tere tulemast Mastodoni
-      title: Tere tulemast pardale, %{name}!
+      title: Tere tulemast, %{name}!
   users:
     follow_limit_reached: Te ei saa jälgida rohkem kui %{limit} inimest
     invalid_otp_token: Vale kahe-etapine võti
@@ -1294,5 +1644,19 @@ et:
     explanation_html: 'Te saate <strong>kinnitada ennast oma profiili veebiviidete omanikena</strong>. Et seda teha, peab Teie viidatud veebilehel olema link tagasi Teie Mastodoni profiilile. Tagasi saatval lingil <strong>peab</strong> olema <code>rel="me"</code> atribuut. Tekstisisu lingil ei loe. Siin on üks näide:'
     verification: Kinnitamine
   webauthn_credentials:
+    add: Uue turvavõtme lisamine
+    create:
+      error: Turvavõtme lisamisel tekkis tõrge. Proovi palun uuesti.
+      success: Turvavõti edukalt lisatud.
     delete: Kustuta
+    delete_confirmation: Kindel, et kustutada see turvavõti?
+    description_html: Lubades <strong>turvavõtmega autentimise</strong> on sisenemisel tarvis ühte turvavõtmetest.
+    destroy:
+      error: Turvavõtme kustutamisel tekkis tõrge. Palun proovi uuesti.
+      success: Turvavõtmed edukalt kustutatud.
+    invalid_credential: Vigane turvavõti
+    nickname_hint: Uue turvavõtme hüüdnimi
+    not_enabled: Veebiautentimine pole sisse lülitatud
+    not_supported: See veebilehitseja ei toeta turvavõtmeid
     otp_required: Turvavõtmete kasutamiseks tuleb eelnevalt sisse lülitada kahe-etapine autentimine.
+    registered_on: Registreeritud %{date}
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 6a91068de..04a4d4141 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -176,8 +176,10 @@ fa:
         create_email_domain_block: ایجاد انسداد دامنهٔ رایانامه
         create_ip_block: ایجاد قاعدهٔ آی‌پی
         create_unavailable_domain: ایجاد دامنهٔ ناموجود
+        create_user_role: ایجاد نقش
         demote_user: تنزل کاربر
         destroy_announcement: حذف اعلامیه
+        destroy_canonical_email_block: پاک کردن انسداد ایمیل
         destroy_custom_emoji: حذف اموجی سفارشی
         destroy_domain_allow: حذف اجازهٔ دامنه
         destroy_domain_block: حذف انسداد دامنه
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index a6588e8ad..ef4f21671 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -11,7 +11,7 @@ fi:
     followers:
       one: Seuraaja
       other: Seuraajat
-    following: Seuratut
+    following: Seuraaja
     instance_actor_flash: Tämä on virtuaalitili, jota käytetään edustamaan itse palvelinta eikä yksittäistä käyttäjää. Sitä käytetään yhdistämistarkoituksiin, eikä sitä tule keskeyttää.
     last_active: viimeksi aktiivinen
     link_verified_on: Tämän linkin omistus on tarkastettu %{date}
@@ -1359,16 +1359,16 @@ fi:
       limit_reached: Erilaisten reaktioiden raja saavutettu
       unrecognized_emoji: ei ole tunnistettu emoji
   relationships:
-    activity: Tilin tapahtumat
-    dormant: Ei aktiivinen
+    activity: Tilin aktiivisuus
+    dormant: Horroksessa
     follow_selected_followers: Seuraa valittuja seuraajia
     followers: Seuraajat
     following: Seuratut
-    invited: Kutsuttu
+    invited: Kutsutut
     last_active: Viimeksi aktiivinen
     most_recent: Viimeisin
-    moved: Muuttaneet
-    mutual: Molemminpuoleinen
+    moved: Muuttanut
+    mutual: Molemmat
     primary: Ensisijainen
     relationship: Suhde
     remove_selected_domains: Poista kaikki seuraajat valituista verkkotunnuksista
@@ -1449,7 +1449,7 @@ fi:
     notifications: Ilmoitukset
     preferences: Ominaisuudet
     profile: Profiili
-    relationships: Seuratut ja seuraajat
+    relationships: Seurattavat ja seuraajat
     statuses_cleanup: Automaattinen viestin poisto
     strikes: Valvojan varoitukset
     two_factor_authentication: Kaksivaiheinen todentaminen
@@ -1629,7 +1629,7 @@ fi:
       edit_profile_step: Voit muokata profiiliasi lataamalla profiilikuvan, vaihtamalla näyttönimeä ja paljon muuta. Voit halutessasi arvioida uudet seuraajat ennen kuin he saavat seurata sinua.
       explanation: Näillä vinkeillä pääset alkuun
       final_action: Ala julkaista
-      final_step: 'Aloita julkaiseminen! Jopa ilman seuraajia, muut voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla tai hashtageilla. Haluat ehkä esitellä itsesi #introductions hashtag.'
+      final_step: 'Ala julkaista! Vaikkei sinulla olisi seuraajia, monet voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla ja hashtagien avulla. Kannattaa myös esittäytyä! Käytä hashtagia #esittely.'
       full_handle: Koko käyttäjätunnuksesi
       full_handle_hint: Kerro tämä ystävillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut toisen instanssin kautta.
       subject: Tervetuloa Mastodoniin
diff --git a/config/locales/fo.yml b/config/locales/fo.yml
index 0dd71ed4f..7d98d65cc 100644
--- a/config/locales/fo.yml
+++ b/config/locales/fo.yml
@@ -103,7 +103,7 @@ fo:
       no_role_assigned: Eingin leiklutur tillutaður
       not_subscribed: Ikki haldari
       pending: Bíðar eftir viðgerð
-      perform_full_suspension: Avbrót
+      perform_full_suspension: Ógilda
       previous_strikes: Eldri meldingar
       previous_strikes_description_html:
         one: Hendan kontan hevur <strong>eina</strong> melding.
@@ -145,10 +145,10 @@ fo:
       statuses: Uppsløg
       strikes: Eldri fráboðanir
       subscribe: Tekna hald
-      suspend: Fyribils ikki í gyldi
-      suspended: Ikki í gyldi
-      suspension_irreversible: Dáturnar á hesu kontu er endaliga sletttaðar. Tú kann endurstovna kontuna, men dáturnar fáast ikki aftur.
-      suspension_reversible_hint_html: Kontan er gjørd óvirkin og dáturnar verða endaliga strikaðar tann %{date}. Inntil tá kann kontan endurskapast uttan fylgjur. Ynskir tú at strika allar dátur hjá kontuni beinan vegin, so kanst tú gera tað niðanfyri.
+      suspend: Fyribils ikki í gildi
+      suspended: Ikki í gildi
+      suspension_irreversible: Dáturnar á hesu kontu er endaliga sletttaðar. Tú kann seta hana í gildi, men dáturnar fáast ikki aftur.
+      suspension_reversible_hint_html: Kontan er sett úr gildi og dáturnar verða endaliga strikaðar tann %{date}. Inntil tá kann kontan endurskapast uttan fylgjur. Ynskir tú at strika allar dátur hjá kontuni beinan vegin, so kanst tú gera tað niðanfyri.
       title: Kontur
       unblock_email: Strika blokering av telduposti
       unblocked_email_msg: Blokeringin av teldupostinum hjá %{username} varð strikað
@@ -158,7 +158,7 @@ fo:
       undo_suspension: Angra ógildi
       unsilenced_msg: Avmarkingin av kontuni hjá %{username} var strikað
       unsubscribe: Strika hald
-      unsuspended_msg: Kontan hjá %{username} varð gjørd virkin aftur
+      unsuspended_msg: Kontan hjá %{username} varð sett aftur í gildi
       username: Brúkaranavn
       view_domain: Vís samandrátt fyri navnaøki
       warn: Ávara
@@ -271,12 +271,12 @@ fo:
         resolve_report_html: "%{name} avgreiddi meldingina %{target}"
         sensitive_account_html: "%{name} hevur merkt media hjá %{target} sum viðkvæmt"
         silence_account_html: "%{name} hevur avmarkað rættindini á kontuni %{target}"
-        suspend_account_html: "%{name} gjørdi kontuna hjá %{target} óvirkna"
+        suspend_account_html: "%{name} ógildaði kontuna hjá %{target}"
         unassigned_report_html: "%{name} tók aftur tillutanina av meldingini %{target}"
         unblock_email_account_html: "%{name} hevur læst teldubrævabústaðin hjá %{target} upp"
         unsensitive_account_html: "%{name} strikaði viðkvæmis-merkingina av miðlafíluni %{target}"
         unsilence_account_html: "%{name} strikaði avmarkingina av kontuni hjá %{target}"
-        unsuspend_account_html: "%{name} gjørdi kontuna hjá %{target} virkna aftur"
+        unsuspend_account_html: "%{name} setti kontuna hjá %{target} í gildi aftur"
         update_announcement_html: "%{name} dagførdi kunngerðina %{target}"
         update_custom_emoji_html: "%{name} dagførdi kensluteknið %{target}"
         update_domain_block_html: "%{name} dagførdi navnaøkisblokeringina hjá %{target}"
@@ -361,7 +361,7 @@ fo:
       software: Ritbúnaður
       sources: Tilmeldingarkeldur
       space: Goymsla brúkt
-      title: Yvirlitsskíggi
+      title: Kunningarbretti
       top_languages: Mest virknu mál
       top_servers: Mest virknu ambætarar
       website: Vevstað
@@ -390,10 +390,10 @@ fo:
         create: Stovna blokering
         hint: Navnaøkjablokeringin forðar ikki stovnan av kontum í dátugrunninum, men fer afturlítandi og sjálvvirkandi at gera ávísar umsjónarmannagongdir á hesar kontur virknar.
         severity:
-          desc_html: "<strong>Avvmarka</strong> ger soleiðis, at postar frá kontum í hesum navnaøki verða ósjónligur fyri øll, sum ikki fylgja kontunum beinleiðis.\n<strong>Banna</strong> strikar alt innihald, allar miðlar og allar vangadátur fyri kontur hjá hesum navnaøkinum frá tínum ambætara. Brúka \n<strong>Einki</strong> um tú einans vil avvísa miðlafílum."
+          desc_html: "<strong>Avvmarka</strong> ger soleiðis, at postar frá kontum í hesum navnaøki verða ósjónligur fyri øll, sum ikki fylgja kontunum beinleiðis.\n<strong>Ógilda</strong> strikar alt innihald, allar miðlar og allar vangadátur fyri kontur hjá hesum navnaøkinum frá tínum ambætara. Brúka \n<strong>Einki</strong> um tú einans vil avvísa miðlafílum."
           noop: Ongar
           silence: Mark
-          suspend: Banna
+          suspend: Ógilda
         title: Nýggj navnaøkisblokering
       no_domain_block_selected: Ongar navnaøkjablokeringar vóru broyttar, tí ongar vóru valdar
       not_permitted: Tú hevur ikki rættindi at gera hetta
@@ -474,7 +474,7 @@ fo:
           reject_media: Vraka miðil
           reject_reports: Vraka meldingar
           silence: Mark
-          suspend: Banna
+          suspend: Ógilda
         policy: Reglur
         reason: Almenn grundgeving
         title: Reglur fyri innihaldi
@@ -498,16 +498,36 @@ fo:
       delivery_error_days: Dagar við veitingarvillum
       delivery_error_hint: Er veiting ikki møgulig í %{count} dagar, so verða tey sjálvvirkandi merkt sum ikki møgulig at veita.
       destroyed_msg: Dátur frá %{domain} eru nú settar í bíðirøð til beinan vegin at blíva strikaðar.
+      empty: Eingi navnaøki funnin.
+      known_accounts:
+        one: "%{count} kend konta"
+        other: "%{count} kendar kontur"
       moderation:
         all: Allir
         limited: Avmarkaðir
+        title: Umsjón
+      private_comment: Privat viðmerking
+      public_comment: Sjónlig viðmerking
+      purge: Reinsa
+      purge_description_html: Heldur tú, at hetta navnaøkið varandi hevur mist sambandið við netið, so kanst tú strika allar kontupostar og tilknýttar dátur frá hesum navnaøkinum frá tíni goymslu. Tað kann taka eina løtu.
+      title: Sameining
+      total_blocked_by_us: Blokerað av okkum
+      total_followed_by_them: Fylgt av teimum
+      total_followed_by_us: Fylgt av okkum
+      total_reported: Meldingar um tey
+      total_storage: Viðheftir miðlar
+      totals_time_period_hint_html: Við í samanteljingunum niðanfyri eru dátur frá byrjan av.
     invites:
+      deactivate_all: Ger allar óvirknar
       filter:
         all: Alt
+        available: Tøk
         expired: Útgingið
         title: Filtur
+      title: Innbjóðingar
     ip_blocks:
       add_new: Stovna reglu
+      created_msg: Nýggj IP regla løgd afturat
       delete: Strika
       expires_in:
         '1209600': 2 vikur
@@ -518,13 +538,55 @@ fo:
         '94670856': 3 ár
       new:
         title: Stovna nýggja IP reglu
+      no_ip_block_selected: Ongar IP reglur vóru broyttar, tí ongar vóru valdar
+      title: IP reglur
+    relationships:
+      title: Sambond hjá %{acct}
     relays:
+      add_new: Legg nýtt reiðlag afturat
       delete: Strika
+      description_html: Eitt <strong>sameint reiðlag</strong> er ein millumambætari sum flytir stórar nøgdir av almennum postum millum ambætarar, sum eru atknýttir og geva út á ambætaranum. <strong>Tað kann gera tað møguligt hjá smáum og miðalstórum ambætarum at varnast tilfar frá sameinda alheiminum</strong>, sum annars hevði kravt, at lokalir brúkarar fylgdu einstøku brúkarunum á fjarum ambætarum.
+      disable: Ger óvirkið
+      disabled: Óvirkið
       enable: Set í gildi
+      enable_hint: Tá tað er virkið, so teknar ambætarnir hjá tær seg fyri allar almennum postum frá hesum reiðlagi, og sendir almennar postar frá tínum ambætara til reiðlagið.
+      enabled: Virkið
+      inbox_url: URL hjá reiðlagi
+      pending: Bíðar eftir góðkenning frá reiðlagi
+      save_and_enable: Goym og ger virkið
+      setup: Set upp samband við reiðlag
+      signatures_not_enabled: Reiðlag virka ikki sum tey skulu, tá trygdarstøða ella avmarkað sameiningarstøða eru virknar
+      status: Støða
+      title: Reiðløg
     report_notes:
+      created_msg: Viðmerking til melding stovnað!
+      destroyed_msg: Viðmerking til melding strikað!
       today_at: Í dag kl. %{time}
     reports:
+      account:
+        notes:
+          one: "%{count} viðmerking"
+          other: "%{count} viðmerkingar"
+      action_log: Skoðanarloggur
+      action_taken_by: Atgerð tikin av
+      actions:
+        delete_description_html: Meldaðu postarnir verða strikaðir og ein atsókn verður skrásett, soleiðis at tú veist, um onnur stig skulu takast, um sama konta ger fleiri brot í framtíðini.
+        mark_as_sensitive_description_html: Miðlarnir í meldaðu postunum verða merkir sum viðkvæmir, og ein atsókn verður skrásett, soleiðis at tú veist, um onnur stig skulu takast, um sama konta ger fleiri brot í framtíðini.
+        other_description_html: Sí fleiri valmøguleikar at stýra atferðini hjá kontuni og at tillagað samskiftið við meldaðu kontuni.
+        resolve_description_html: Eingin atgerð verður tikin móti meldaðu kontuni, eingin atsókn verður skrásett og meldingin verður lukkað.
+        silence_description_html: Vangin verður einans sjónligur hjá teimum, sum longu fylgja honum ella leita eftir honum við hond, og tað minkar nógv um, hvussu langt hann røkkur. Kann altíð angrast.
+        suspend_description_html: Vangin og alt tilfar hjá vanganum verður óatkomandi inntil hann at enda verður strikaður. Tað verður ómøguligt at samvirka við hesa kontuna. Vendast kann aftur innan 30 dagar.
+      actions_description_html: Ger av hvør atgerð skal takast fyri at avgreiða hesa meldingina. Revsitiltøk móti meldaðu kontuni føra við sær, at ein teldupostfráboðan verður send teimum, undantikið tá <strong>Ruskpostur</strong> verður valdur.
+      add_to_report: Legg meira afturat meldingini
+      are_you_sure: Er tú vís/ur?
+      assign_to_self: Tilluta mær
       assigned: Tilnevnt umsjónarfólk
+      by_target_domain: Navnaøki hjá meldaðu kontuni
+      category: Bólkur
+      category_description_html: Orsøkin, at hendan kontan og/ella tilfarið var melda verður fráboðað í samskifti við meldaðu kontuni
+      comment:
+        none: Eingin
+      comment_description_html: 'Fyri at veita fleiri upplýsingar skrivaði %{name}:'
       created_at: Meldað
       delete_and_resolve: Strika postar
       forwarded: Víðarisent
@@ -534,35 +596,189 @@ fo:
       mark_as_unresolved: Marka sum óloyst
       no_one_assigned: Eingin
       notes:
+        create: Legg viðmerking afturat
         create_and_resolve: Marka sum loyst og ger viðmerking
         create_and_unresolve: Lat upp aftur við viðmerking
         delete: Strika
+        placeholder: Greið frá, hvørjar atgerðir hava verið gjørdar ella aðrar viðkomandi dagføringar...
         title: Viðmerkingar
+      notes_description_html: Vís ella skriva viðmerkingar til onnur umsjónarfólk ella teg sjálva/n í framtíðini
+      quick_actions_description_html: 'Tak eina skjóta avgerð ella skrulla niðureftir fyri at síggja meldaða innihaldið:'
+      remote_user_placeholder: fjarbrúkarin frá %{instance}
+      reopen: Lat melding uppaftur
+      report: 'Melding #%{id}'
+      reported_account: Meldað konta
+      reported_by: Meldað av
       resolved: Loyst
+      resolved_msg: Melding avgreidd!
+      skip_to_actions: Leyp til atgerðir
+      status: Støða
+      statuses: Meldað innihald
+      statuses_description_html: Tilfarið, sum brotið viðvíkur, fer at vera siterað í samskifti við meldaðu kontuni
+      target_origin: Uppruni hjá meldaðu kontuni
+      title: Meldingar
+      unassign: Strika tillutan
       unresolved: Óloyst
       updated_at: Dagført
       view_profile: Vís vangamynd
     roles:
+      add_new: Legg leiklut afturat
+      assigned_users:
+        one: "%{count} brúkari"
+        other: "%{count} brúkarar"
       categories:
+        administration: Umsiting
         devops: DevOps
+        invites: Innbjóðingar
         moderation: Umsjón
         special: Serstakt
       delete: Strika
+      description_html: Við <strong>brúkaraleiklutum</strong> kanst tú stýra, hvørjar funktiónir og hvørji Mastodon-øki tínir brúkarar kunnu fáa atgongd til.
+      edit: Broyt '%{name}' leiklutin
+      everyone: Sjálvsett loyvi
+      everyone_full_description_html: Hetta er <strong>støðisleikluturin</strong>, sum ávirkar <strong>allar brúkarar</strong>, sjálvt teir, sum ikki hava ein ásettan leiklut. Allir aðrir leiklutir arva loyvi frá honum.
+      permissions_count:
+        one: "%{count} loyvi"
+        other: "%{count} rættindi"
       privileges:
         administrator: Umsitari
+        administrator_description: Brúkarar við hesum rættindum skáka sær undan øllum loyvisavmarkingum
         delete_user_data: Sletta brúkaraupplýsingar
+        delete_user_data_description: Loyvir brúkarum at strika dátur hjá øðrum brúkarum uttan seinkingar
+        invite_users: Bjóða brúkarum
+        invite_users_description: Loyvir brúkarum at bjóða nýggjum fólki til ambætaran
+        manage_announcements: Stýra kunngerðum
+        manage_announcements_description: Loyvir brúkarum at stýra kunngerðum á ambætaranum
         manage_appeals: Umsit kærur
+        manage_appeals_description: Loyvir brúkarum at eftirkanna kærur um umsjónaratgerðir
+        manage_blocks: Stýra blokeringum
+        manage_blocks_description: Loyvir brúkarum at blokera teldupostveitarum og IP adressum
+        manage_custom_emojis: Stýra sergjørd kenslutekn
+        manage_custom_emojis_description: Loyvir brúkarum at stýra sergjørdum kensluteknum á ambætaranum
+        manage_federation: Stýra sameindum
+        manage_federation_description: Loyvir brúkarum at blokera ella loyva sameining við onnur navnaøki og at stýra, hvat kann veitast
+        manage_invites: Stýra innbjóðingum
+        manage_invites_description: Loyvir brúkarum at kaga ígjøgnum og at gera innbjóðingarleinki óvirkin
+        manage_reports: Stýra meldigum
+        manage_reports_description: Loyvir brúkarum at eftirkanna meldingar og at gjøgnumføra umsjónaratgerðir
+        manage_roles: Stýra leiklutir
+        manage_roles_description: Loyvir brúkarum at stýra og áseta leiklutir undir teirra leikluti
+        manage_rules: Stýra reglum
+        manage_rules_description: Loyvir brúkarum at broyta ambætarareglur
+        manage_settings: Stýra stillingum
+        manage_settings_description: Loyvir brúkarum at broyta heimasíðustillingar
+        manage_taxonomies: Stýra flokkingum
+        manage_taxonomies_description: Loyvir brúkarum at eftirkanna vælumtókt tilfar og at dagføra stillingar viðvíkjandi frámerkjum
+        manage_user_access: Stýr brúkaraatgongd
         manage_user_access_description: Loyvir brúkarum at gera 'váttan í tveimum stigum' (2FA) hjá øðrum brúkarum óvirkna, at broyta teirra teldupost og at nullstilla teirra loyniorð
+        manage_users: Stýr brúkarum
+        manage_users_description: Loyvir brúkarum at vísa smálutir um aðrar brúkarar og at gjøgnumføra umsjónaratgerðir móti teimum
+        manage_webhooks: Stýr webhooks
+        manage_webhooks_description: Loyvir brúkarum at seta upp webhooks fyri umsitingarligar hendingar
+        view_audit_log: Vís skoðanarlogg
+        view_audit_log_description: Loyvir brúkarum at síggja, hvørjar umsitingarligar atgerðir hava verið gjørdar á ambætaranum
+        view_dashboard: Vís kunningarbretti
+        view_dashboard_description: Gevur brúkarum atgongd til kunningarbrettið og ymisk mát
+        view_devops: DevOps
+        view_devops_description: Gevur brúkarum atgongd til Sidekiq- og pgHero-kunningarbretti
+      title: Leiklutir
     rules:
       add_new: Ger nýggja reglu
       delete: Strika
+      description_html: Sjálvt um tey flestu vilja vera við, at tey hava lisið og tikið undir við tænastutreytunum, so lesa tey flestu tær ikki fyrr enn eftir at ein trupulleiki stingur seg upp. <strong>Ger tað lættari at skimma ígjøgnum ambætarareglurnar við at veita tær í einum fløtum punkt-lista.</strong> Royn at gera einstøku reglurnar stuttar og einfaldar, samstundis sum at tær ikki blíva pettaðar ov nógv sundur.
       edit: Broyt reglur
+      empty: Ongar ambætarareglur eru ásettar enn.
+      title: Ambætarareglur
     settings:
+      about:
+        manage_rules: Stýr ambætarareglum
+        preamble: Gev útdýpandi upplýsingar um, hvussu ambætarin er rikin, umsýndur og fíggjaður.
+        rules_hint: Eitt øki er burturav fyri reglur, sum brúkararnir hjá tær skulu fylgja.
+        title: Um
+      appearance:
+        preamble: Tillaga brúkaramarkamótið hjá Mastodon.
+        title: Útsjónd
+      branding:
+        preamble: Brandingin av tínum ambætara skilir hann út frá øðrum ambætarum í netverkinum. Hesar upplýsingar kunnu vera vístar í nógvum ymiskum umhvørvum, so sum í vev-markamótinum hjá Mastodon, uppruna-appum, í undanvísingum av leinkjum á øðrum vevstøðum, í boðs-appum og so framvegis. Av hesi orsøk er tað best, um hesar upplýsingar eru klárar, stuttar og beinraknar.
+        title: Branding
+      content_retention:
+        preamble: Stýr hvussu brúkara-skapt tilfar er goymt í Mastodon.
+        title: Varðveitsla av tilfari
+      discovery:
+        follow_recommendations: Tilmæli um at fylgja
+        preamble: At fáa áhugavert innihald í ljósmála er avgerandi fyri at nýggir brúkarar, sum kanska ongan kenna á Mastodon, kunnu koma væl umborð. Stýr, hvussu hentleikarnir at uppdaga ymiskt rigga á ambætaranum hjá tær.
+        profile_directory: Vangaskrá
+        public_timelines: Almennar tíðarlinjur
+        title: Uppdaging
+        trends: Rák
       domain_blocks:
         all: Til øll
         disabled: Til ongan
+        users: Fyri lokalum brúkarum, sum eru ritaðir inn
+      registrations:
+        preamble: Stýr, hvør kann stovna eina kontu á tínum ambætara.
+        title: Skrásetingar
+      registrations_mode:
+        modes:
+          approved: Góðkenning kravd fyri tilmelding
+          none: Eingin kann tilmelda seg
+          open: Øll kunnu tilmelda seg
+      title: Ambætarastillingar
+    site_uploads:
+      delete: Strika fílu, sum er løgd upp
+      destroyed_msg: Vevstaðs-uppsending strikað!
     statuses:
       account: Høvundi
+      application: Nýtsluskipan
+      back_to_account: Aftur til kontusíðu
+      back_to_report: Aftur til meldingarsíðu
+      batch:
+        remove_from_report: Strika frá melding
+        report: Melding
+      deleted: Strikað
+      favourites: Yndispostar
+      history: Útgávusøga
+      in_reply_to: Svarar
+      language: Mál
+      media:
+        title: Miðlar
+      metadata: Metadátur
+      no_status_selected: Eingir postar vóru broyttir, tí eingir vóru valdir
+      open: Lat post upp
+      original_status: Upprunapostur
+      reblogs: Endurbloggar
+      status_changed: Postur broyttur
+      title: Postar hjá kontu
+      trending: Vælumtókt
+      visibility: Sýni
+      with_media: Við miðli
+    strikes:
+      actions:
+        delete_statuses: "%{name} strikaði postarnar hjá %{target}"
+        disable: "%{name} frysti kontuna hjá %{target}"
+        mark_statuses_as_sensitive: "%{name} merkti kontuna hjá %{target} sum viðkvæma"
+        none: "%{name} sendi eina ávaring til %{target}"
+        sensitive: "%{name} merkti kontuna hjá %{target} sum viðkvæma"
+        silence: "%{name} avmarkaði kontuna hjá %{target}"
+        suspend: "%{name} setti kontuna hjá %{target} úr gildi"
+      appeal_approved: Kært
+      appeal_pending: Kæra bíðar eftir avgerð
+    system_checks:
+      database_schema_check:
+        message_html: Dátugrunnaflytingar bíða. Vinarliga koyr flytingarnar fyri at tryggja at skipanin skikkar sær sum hon skal
+      elasticsearch_running_check:
+        message_html: Fekk ikki samband við Elasticsearch. Vinarliga kanna eftir, at tað koyrir, ella ger fulltekstaleiting óvirkna
+      elasticsearch_version_check:
+        message_html: 'Elasticsearch útgávan er ikki sambær: %{value}'
+        version_comparison: Elasticsearch %{running_version} koyrir, men %{required_version} er kravd
+      rules_check:
+        action: Stýr ambætarareglum
+        message_html: Tú hevur ikki ásett nakrar ambætarareglur.
+      sidekiq_process_check:
+        message_html: Eingin Sidekiq gongd koyrir fyri %{value} bíðirøðina(r). Vinarliga eftirkanna Sidekiq uppsetingina
+    tags:
+      review: Eftirkanna støðu
+      updated_msg: Frámerkjastillingar dagførdar
     title: Umsiting
     trends:
       allow: Loyv
@@ -570,63 +786,417 @@ fo:
       disallow: Tak loyvi aftur
       links:
         allow: Loyv leinki
+        allow_provider: Loyv útgevara
+        description_html: Hesi leinkini verða í løtuni deild nógv av kontum, sum ambætarin sær postar hjá. At síggja leinkini kann hjálpa brúkarum at finna útav, hvat hendir í verðini. Eingi leinki verða víst alment, áðrenn tú góðkennir útgevaran. Tú kanst eisini loyva ella vraka einstøk leinki.
+        disallow: Loyv ikki leinki
+        disallow_provider: Loyv ikki útgevara
+        no_link_selected: Eingi leinki vóru broytt, tí eingi vóru vald
+        publishers:
+          no_publisher_selected: Eingir útgevar vóru broyttir, tí eingir vóru valdir
+        shared_by_over_week:
+          one: Deilt av einum persóni seinastu vikuna
+          other: Deilt av %{count} persónum seinastu vikuna
+        title: Vælumtókt leinki
+        usage_comparison: Deilt %{today} ferð í dag, samanborið við %{yesterday} ferð í gjár
+      only_allowed: Einans loyvd
+      pending_review: Bíðar eftir eftirkannan
+      preview_card_providers:
+        allowed: Leinki frá hesum útgevaranum kann gerast vísast sum vælumtókt
+        description_html: Hesi eru navnaøkini haðani leinki ofta eru deild á tínum ambætara. Leinki verða ikki víst sum vælumtókt fyri almenninginum uttan so at navnaøkið hjá leinkinum er góðkent. Tín góðkenning (ella vraking) fevnir eisini um undirnavnaøki.
+        rejected: Leinki frá hesum útgevaranum kunnu ikki vísast sum vælumtókt
+        title: Útgevar
+      rejected: Vrakað
+      statuses:
+        allow: Loyv posti
+        allow_account: Loyv høvundi
+        description_html: Hetta eru postar, sum tín ambætari veit um og sum í løtuni vera deildir og dámaðir ofta. At vísa teir kann hjálpa nýggjum og afturvendandi brúkarum at finna fleiri fólk, sum tey vilja fylgja. Eingir postar verða vístir almenninginum, áðrenn tú góðkennir høvundin, og høvundurin loyvir teirra kontu at vera skotin upp fyri øðrum. Tú kanst eisini góðkenna ella vraka einstakar postar.
+        disallow: Vraka post
+        disallow_account: Vraka høvund
+        no_status_selected: Eingir vælumtóktir postar vóru broyttir, tí eingir vóru valdir
+        not_discoverable: Høvundurin hevur ikki valt at blíva funnin
+        shared_by:
+          one: Deildir ella dámaðir eina ferð
+          other: Deildir ella dámaðir %{friendly_count} ferð
+        title: Vælumtóktir postar
+      tags:
+        current_score: Verandi stigatal %{score}
+        dashboard:
+          tag_accounts_measure: ymisk brúk
+          tag_languages_dimension: Mest nýttu mál
+          tag_servers_dimension: Mest nýttu ambætarar
+          tag_servers_measure: aðrir ambætarar
+          tag_uses_measure: samanlagt brúkstal
+        description_html: Hesi eru frámerkini, sum í løtuni eru á eini rúgvu av postum, sum ambætarin hjá tær sær. Hetta kann hjálpa tínum brúkarum at finna útav, hvat fólk tosa mest um í løtuni. Eingi frámerki verða løgd alment út, fyrr enn tú hevur góðkent tey.
+        listable: Kann skjótast upp
+        no_tag_selected: Eingi frámerki vóru broytt, tí eingi vóru vald
+        not_listable: Fer ikki at vera skotið upp
+        not_trendable: Fer ikki at síggjast undir ráki
+        not_usable: Kann ikki brúkast
+        peaked_on_and_decaying: Kom í hæddina %{date}, men er í minking nú
+        title: Vælumtókt frámerki
+        trendable: Kann síggjast undir ráki
+        trending_rank: 'Rák #%{rank}'
+        usable: Kann verða brúkt
+        usage_comparison: Brúkt %{today} ferð í dag, samanborið við %{yesterday} ferð í gjár
+        used_by_over_week:
+          one: Brúkt av einum brúkara seinastu vikuna
+          other: Brúkt av %{count} brúkarum seinastu vikuna
+      title: Rák
+      trending: Vælumtókt
     warning_presets:
+      add_new: Legg afturat
       delete: Strika
+      edit_preset: Rætta ávaringar-undanstilling
+      empty: Tú hevur ikki ásett nakrar ávaringar-undanstillingar enn.
+      title: Stýr ávaringar-undanstillingar
     webhooks:
+      add_new: Legg endapunkt afturat
       delete: Strika
+      description_html: Ein <strong>webhook/vevkrókur</strong> ger tað møguligt hjá Mastodon at trýsta <strong>samtíðarfráboðanir</strong> um valdar hendingar til tína egnu nýtsluskipan, soleiðis at hon <strong>sjálvvirkandi kann birta í aftursvar</strong>.
+      disable: Ger óvirkið
+      disabled: Óvirkið
+      edit: Rætta endapunkt
+      empty: Tú hevur ikki uppsett nøkur webhook/vevhúka-endapunkt enn.
+      enable: Set í gildi
+      enabled: Virkin
+      enabled_events:
+        one: 1 virkin hending
+        other: "%{count} virknar hendingar"
+      events: Hendingar
+      new: Nýggjur webhook/vevhúkur
+      rotate_secret: Rotera loynidóm
+      secret: Undirskrivingarloynidómur
+      status: Støða
+      title: Webhooks/vevhúkar
+      webhook: Webhook/vevhúkur
+  admin_mailer:
+    new_appeal:
+      actions:
+        delete_statuses: at strika teirra postar
+        disable: at frysta teirra kontu
+        mark_statuses_as_sensitive: at merkja teirra postar sum viðkvæmar
+        none: ein ávaring
+        sensitive: at merkja teirra kontu sum viðkvom
+        silence: at avmarka teirra kontu
+        suspend: at ógilda teirra kontu
+      body: "%{target} kærir eina umsjónaravgerð hjá %{action_taken_by} frá %{date}, sum var %{type}. Tey skrivaðu:"
+      next_steps: Tú kanst góðtaka kæruna og soleiðis ógilda umsjónaravgerðina, ella ikki látast at síggja hana.
+      subject: "%{username} kærir eina umsjónaravgerð á %{instance}"
+    new_pending_account:
+      body: Smálutirnir hjá tí nýggju kontuni eru niðanfyri. Tú kanst góðkenna ella vraka hesa umsóknina.
+      subject: Nýggj konta klár til ummælis á %{instance} (%{username})
+    new_report:
+      body: "%{reporter} hevur meldað %{target}"
+      body_remote: Onkur frá %{domain} hevur meldað %{target}
+      subject: Nýggj melding fyri %{instance} (#%{id})
+    new_trends:
+      body: 'Niðanfyristandandi lutir mugu eftirhyggjast áðrenn teir kunnu verða vístir alment:'
+      new_trending_links:
+        title: Vælumtókt leinki
+      new_trending_statuses:
+        title: Vælumtóktir postar
+      new_trending_tags:
+        no_approved_tags: Í løtuni eru eingi góðkend vælumtókt frámerki.
+        requirements: 'Einhvør av hesum kandidatum kunnu fara framum #%{rank} góðkenda vælumtókta frámerki, sum í løtuni er #%{lowest_tag_name} við stigatali %{lowest_tag_score}.'
+        title: Vælumtókt frámerki
+      subject: Nýggj rák til gjøgnumgongd á %{instance}
+  aliases:
+    add_new: Stovna tøkuheiti
+    created_msg: Nýtt tøkuheiti stovnað. Tú kanst nú byrja flytingina frá gomlu kontuni.
+    deleted_msg: Tøkuheitið strikað. At flyta frá hasi kontuni til hesa er ikki longur gjørligt.
+    empty: Tú hevur eingi tøkuheiti.
+    hint_html: Ynskir tú at flyta frá eini aðrari kontu til hesa, so kanst tú stovna eitt tøkuheiti her. Tað er kravt, áðrenn tú kanst fara í gongd við at flyta fylgjarar frá gomlu kontuni til hesa. Hendan atgerðin er í sær sjálvum <strong>meinaleys og kann angrast</strong>. <strong>Flytingin av kontuni verður sett í gongd frá gomlu kontuni</strong>.
+    remove: Strika tilknýti til tøkuheiti
+  appearance:
+    advanced_web_interface: Framkomið vevmarkamót
+    advanced_web_interface_hint: 'Ynskir tú at brúka alla skermbreiddina, so loyvir framkomna vevmarkamóti tær at uppseta fleiri ymiskar teigar, soleiðis at tú kanst síggja so nógvar upplýsingar, sum tú ynskir, samstundis: Heima, fráboðanir, sameind tíðarlinja og óavmarkað tal av listum og frámerkjum.'
+    animations_and_accessibility: Teknimyndagerð og atkomuligheit
+    confirmation_dialogs: Váttanarskermmyndir
+    discovery: Uppdaging
+    localization:
+      body: Mastodon er umsett av sjálvbodnum.
+      guide_link: https://crowdin.com/project/mastodon
+      guide_link_text: Øll kunnu geva íkast.
+    sensitive_content: Viðkvæmt innihald
+    toot_layout: Uppseting av postum
   application_mailer:
+    notification_preferences: Broyt teldupostastillingar
     salutation: "%{name}"
+    settings: 'Broyt teldupostastillingar: %{link}'
+    view: 'Vís:'
+    view_profile: Vís vanga
+    view_status: Vís post
+  applications:
+    created: Umsókn stovnað
+    destroyed: Umsókn strikað
+    regenerate_token: Ger atgongdstekn av nýggjum
+    token_regenerated: Atgongdsteknið gjørt av nýggjum
+    warning: Ver varin við hesum dátum. Deil tað aldrin við nakran!
+    your_token: Títt atgongdstekn
   auth:
+    apply_for_account: Bið um eina kontu
     change_password: Loyniorð
     delete_account: Strika kontu
+    delete_account_html: Ynskir tú at strika kontuna, so kanst tú <a href="%{path}">halda fram her</a>. Tú verður spurd/ur um váttan.
+    description:
+      prefix_invited_by_user: "@%{name} bjóðar tær at verða við í hesum Mastodon-ambætaranum!"
+      prefix_sign_up: Tilmelda teg á Mastodon í dag!
+      suffix: Við eini kontu, so er møguligt hjá tær at fylgja fólki, at posta dagføringar og at senda og móttaka boð til og frá brúkarum á øllum Mastodon ambætarum, umframt annað!
+    didnt_get_confirmation: Móttók tú ikki váttanarboðini?
+    dont_have_your_security_key: Hevur tú ikki trygdarlyklin hjá tær?
     forgot_password: Hevur tú gloymt loyniorðið?
+    invalid_reset_password_token: Teknið til nullstilling av loyniorði er ógyldugt ella útgingið. Vinarliga bið um eitt nýtt.
     link_to_otp: Skriva eina tvey-stigs kodu frá telefonini ella eina kodu til endurgerð
+    link_to_webauth: Brúka títt trygdarlyklatól
     log_in_with: Innrita við
     login: Innrita
     logout: Rita út
+    migrate_account: Flyt til eina aðra kontu
+    migrate_account_html: Ynskir tú at víðaribeina hesa kontuna til eina aðra, so kanst tú <a href="%{path}">seta tað upp her</a>.
     or_log_in_with: Ella innrita við
+    privacy_policy_agreement_html: Eg havi lisið og taki undir við <a href="%{privacy_policy_path}" target="_blank">privatlívspolitikkinum</a>
+    providers:
+      cas: CAS
+      saml: SAML
+    register: Tilmelda
+    registration_closed: "%{instance} tekur ikki ímóti nýggjum limum"
+    resend_confirmation: Send góðkenningarvegleiðing umaftur
+    reset_password: Endurstilla loyniorð
+    rules:
+      preamble: Hesi eru ásett og uppihildin av umsjónarfólkunum á %{domain}.
+      title: Nakrar grundreglur.
+    security: Trygd
+    set_new_password: Áset nýtt loyniorð
+    setup:
+      email_below_hint_html: Er telduposturin niðanfyri skeivur, so kanst tú broyta hann her og móttaka eitt nýtt váttanarteldubræv.
+      email_settings_hint_html: Váttanarteldubrævið varð sent til %{email}. Um telduposturin er skeivur, so kanst tú broyta hann í kontustillingunum.
+      title: Uppseting
+    sign_up:
+      preamble: Við eini kontu á hesum Mastodon ambætaranum ber til hjá tær at fylgja ein og hvønn annan persón á netverkinum, óansæð hvar teirra konta er hýst.
+      title: Latum okkum fáa teg settan upp á %{domain}.
+    status:
+      account_status: Kontustøða
+      confirming: Bíði eftir at teldupostváttanin er gjøgnumførd.
+      functional: Konta tín er fult virkin.
+      pending: Umsókn tín verður eftirkannað av okkara starvsfeløgum. Tað kann taka eina løtu. Tú móttekur eitt teldubræv, um umsóknin er góðkend.
+      redirecting_to: Konta tín er óvirkin, tí í løtuni verður hon víðaribeind til %{acct}.
+      view_strikes: Vís eldri atsóknir móti tíni kontu
+    too_fast: Oyðublaðið innsent ov skjótt, royn aftur.
+    use_security_key: Brúka trygdarlykil
   authorize_follow:
+    already_following: Tú fylgir longu hesi kontuni
+    already_requested: Tú hevur longu sent eina fylgiumbøn til hasa kontuna
+    error: Tíverri kom ein feilur, tá vit royndu at finna fjarkontuna
     follow: Fylg
+    follow_request: 'Tú hevur sent eina fylgjaraumbøn til:'
+    following: 'Góðkent! Tú fylgir nú:'
+    post_follow:
+      close: Ella kanst tú bara lata hetta vindeygað aftur.
+      return: Vís vangan hjá brúkaranum
+      web: Far á vevið
+    title: Fylg %{acct}
   challenge:
     confirm: Hald á
+    hint_html: "<strong>Góð ráð:</strong> vit spyrja teg ikki aftur um loyniorðið næsta tíman."
+    invalid_password: Skeivt loyniorð
+    prompt: Vátta loyniorð fyri at halda fram
+  crypto:
+    errors:
+      invalid_key: er ikki ein gildur Ed25519 ella Curve25519 lykil
+      invalid_signature: er ikki ein gildug Ed25519 undirskrift
+  date:
+    formats:
+      default: "%b %d, %Y"
+      with_month_name: "%B %d, %Y"
+  datetime:
+    distance_in_words:
+      about_x_hours: "%{count}t"
+      about_x_months: "%{count} mðr"
+      about_x_years: "%{count} ár"
+      almost_x_years: "%{count} ár"
+      half_a_minute: Júst nú
+      less_than_x_minutes: "%{count}m"
+      less_than_x_seconds: Júst nú
+      over_x_years: "%{count} ár"
+      x_days: "%{count}d"
+      x_minutes: "%{count}m"
+      x_months: "%{count} mðr"
+      x_seconds: "%{count}s"
   deletes:
+    challenge_not_passed: Upplýsingin, sum tú las inn, var ikki røtt
+    confirm_password: Skriva títt núverandi loyniorð fyri at vátta tín samleika
+    confirm_username: Skriva títt brúkranavn fyri at vátta mannagongdina
     proceed: Strika kontu
+    success_msg: Konta tín var strikað
+    warning:
+      before: 'Áðrenn tú heldur fram, vinarliga les hesar notur nágreiniliga:'
+      caches: Innihald, sum er lagt í goymslu á øðrum ambætarum, kann vera varandi har
+      data_removal: Postar tínir og aðrar dátur verða burturbeind varandi
+      email_change_html: Tú kann <a href="%{path}">broyta tín teldupost</a> uttan at strika tína kontu
+      email_contact_html: Um tað framvegis ikki kemur vegin fram, so kanst tú senda teldubræv til <a href="mailto:%{email}">%{email}</a> og biðja um hjálp
+      email_reconfirmation_html: Móttekur tú ikki váttanarteldupostin, so kanst tú <a href="%{path}">biðja um hann aftur</a>
+      irreversible: Tað verður ikki møguligt hjá tær at endurskapa ella gera kontu tína virkna aftur
+      more_details_html: Fyri fleiri smálutir, sí <a href="%{terms_path}">privatlívpolitikkin</a>.
+      username_available: Brúkaranavnið hjá tær verður tøkt aftur
+      username_unavailable: Brúkaranavnið hjá tær verður framhaldandi ikki tøkt
   disputes:
     strikes:
+      action_taken: Tiknar atgerðir
+      appeal: Kæra
+      appeal_approved: Kæran móti atsóknini eydnaðist og atsóknin er tí ikki longur í gildi
+      appeal_rejected: Kæran er vrakað
+      appeal_submitted_at: Kæra send inn
+      appealed_msg: Kæran hjá tær er send inn. Verður hon góðkend, so fær tú boð.
+      appeals:
+        submit: Send kæru
+      approve_appeal: Góðkenn kæru
+      associated_report: Atknýtt melding
+      created_at: Dagfest
+      description_html: Hetta er atgerðirnar, sum eru tiknar móti kontu tíni og ávaringar, sum eru sendar tær av starvsfólkunum hjá %{instance}.
+      recipient: Adresserað
+      reject_appeal: Vraka kæru
+      status: 'Postur #%{id}'
+      status_removed: Postur longu strikaður í skipanini
+      title: "%{action} frá %{date}"
       title_actions:
+        delete_statuses: Striking av posti
+        disable: Frysting av kontu
+        mark_statuses_as_sensitive: Merk postar sum viðkvæmar
         none: Ávaring
+        sensitive: Merking av kontu sum viðkvom
+        silence: Avmarking av kontu
+        suspend: Seta kontu úr gildi
+      your_appeal_approved: Kæra tín er góðkend
+      your_appeal_pending: Tú hevur kært
+      your_appeal_rejected: Kæra tín er vrakað
   domain_validator:
     invalid_domain: er ikki eitt loyvt økisnavn
   errors:
-    '400': The request you submitted was invalid or malformed.
-    '403': You don't have permission to view this page.
-    '404': The page you are looking for isn't here.
-    '406': This page is not available in the requested format.
-    '410': The page you were looking for doesn't exist here anymore.
-    '422': 
-    '429': Too many requests
-    '500': 
-    '503': The page could not be served due to a temporary server failure.
+    '400': Umbønin, sum tú sendi inn, var ógildug ella hevði skeivt skap.
+    '403': Tú hevur ikki loyvi at síggja hesa síðuna.
+    '404': Síðan, sum tú leitar eftir, er ikki her.
+    '406': Síðan er ikki tøk í umbidnu útgávuni.
+    '410': Síðan, sum tú leitaði eftir, finst ikki her longur.
+    '422':
+      content: Trygdarsannanin miseydnaðist. Blokerar tú farspor?
+      title: Trygdarsannanin miseydnaðist
+    '429': Ov nógvir fyrispurningar
+    '500':
+      content: Vit eru kedd av tí, men okkurt gekk galið hjá okkum.
+      title: Hendan síðan er ikki røtt
+    '503': Ikki var til at veita hesa síðuna vegna ein bráðfeingis feil á ambætaranum.
+    noscript_html: Fyri at brúka vevskipanina hjá Mastodon, vinarliga ger JavaScript virkið. Um ikki, royn so eina <a href="%{apps_path}">uppruna-app</a> til Mastodon á tínum tøkniliga palli.
+  existing_username_validator:
+    not_found: eydnaðist ikki at finna ein lokalan brúkara við hasum brúkaranavninum
+    not_found_multiple: fann ikki %{usernames}
   exports:
     archive_takeout:
       date: Dagfesting
+      download: Takk títt savn niður
+      hint_html: Tú kanst umbiðja eitt savn við <strong>tínum postum og miðlafílum, sum tú hevur lagt upp</strong>. Útfluttu dáturnar eru í ActivityPub útsjónd og lesiligar av einum og hvørjum sambærum ritbúnaði. Tú kanst biðja um eitt savn sjeynda hvønn dag.
+      in_progress: Geri eina skrá við savni tínum...
+      request: Umbið títt savn
       size: Stødd
+    blocks: Tú blokerar
+    bookmarks: Bókamerki
+    csv: CSV
+    domain_blocks: Navnaøkisblokeringar
     lists: Listar
+    mutes: Tú doyvir
+    storage: Miðlagoymsla
+  featured_tags:
+    add_new: Legg afturat
+    errors:
+      limit: Tú hevur longu varpað loyvda talið av frámerkjum
+    hint_html: "<strong>Hvat eru varpaði frámerki?</strong> Tey verða víst sjónliga á almenna vanga tínum og loyva fólki at kaga gjøgnum tínar almennu postar, sum hava tey frámerkini. Tey eru serliga vælegnaði at fylgja við skapandi arbeiði ella langtíðarverkætlanum."
   filters:
+    contexts:
+      account: Vangar
+      home: Heima og listar
+      notifications: Fráboðanir
+      public: Almennar tíðarlinjur
+      thread: Samrøður
+    edit:
+      add_keyword: Legg lyklaorð afturat
+      keywords: Lyklaorð
+      statuses: Stakir postar
+      statuses_hint_html: Filtrið verður brúkt til at velja stakar postar óansæð um postarnir sampakka við lyklaorðini niðanfyri. <a href="%{path}">Eftirhygg ella tak postar úr filtrinum</a>.
+      title: Rætta filtur
+    errors:
+      deprecated_api_multiple_keywords: Bundnatølini kunnu ikki broytast frá hesi nýtsluskipanini, tí tey viðvíkja meira enn einum filtur-lyklaorði. Brúka eina nýggjari nýtsluskipan ella vevmarkamótið.
+      invalid_context: Eingin ella ógildugur kontekstur veittur
     index:
+      contexts: Filtur í %{contexts}
       delete: Strika
+      empty: Tú hevur eingi filtur.
+      expires_in: Gongur út um %{distance}
+      expires_on: Gongur út %{date}
+      keywords:
+        one: "%{count} lyklaorð"
+        other: "%{count} lyklaorð"
+      statuses:
+        one: "%{count} postur"
+        other: "%{count} postar"
+      statuses_long:
+        one: "%{count} stakur postur fjaldur"
+        other: "%{count} stakir postar fjaldir"
+      title: Filtur
+    new:
+      save: Goym nýtt filtur
+      title: Legg nýtt filtur afturat
+    statuses:
+      back_to_filter: Aftur til filtur
+      batch:
+        remove: Strika úr filtri
+      index:
+        hint: Hetta filtrið er galdandi fyri útvaldar stakar postar óansæð aðrar treytir. Tú kanst leggja fleiri postar afturat hesum filtrinum frá vevmarkamótinum.
+        title: Filtreraðir postar
   footer:
     trending_now: Rák beint nú
   generic:
     all: Alt
+    all_items_on_page_selected_html:
+      one: "<strong>%{count}</strong> lutur á hesi síðuni er valdur."
+      other: All <strong>%{count}</strong> lutir á hesi síðuni eru valdir.
+    all_matching_items_selected_html:
+      one: "<strong>%{count}</strong> lutur, sum samsvarar við tína leiting, er valdur."
+      other: Allir <strong>%{count}</strong> lutir, sum samsvara við tína leiting, eru valdir.
+    changes_saved_msg: Broytingar goymdar!
     copy: Avrita
     delete: Strika
+    deselect: Frável alt
     none: Einki
+    order_by: Sortera eftir
     save_changes: Goym broytingar
+    select_all_matching_items:
+      one: Vel %{count} lut sum samsvarar við tína leiting.
+      other: Vel allar %{count} lutir, sum samsvara við tína leiting.
+    today: í dag
+    validation_errors:
+      one: Okkurt er ikki heilt rætt enn! Vinarliga eftirhygg feilin niðanfyri
+      other: Okkurt er ikki heilt rætt enn! Vinarliga eftirhygg teir %{count} feilirnar niðanfyri
+  html_validator:
+    invalid_markup: 'inniheldur ógyldugt HTML markup: %{error}'
   imports:
     errors:
       invalid_csv_file: 'Ógildug CSV-fíla. Error: %{error}'
+      over_rows_processing_limit: hevur fleiri enn %{count} rekkjur
+    modes:
+      merge: Flætta
+      merge_long: Varðveit verandi teigarøð og legg nýggjar afturat
+      overwrite: Skriva omaná
+      overwrite_long: Legg nýggj teigarøð inn fyri tey verandi
+    preface: Tú kanst innlesa dátur, sum tú hevur útlisið frá einum øðrum ambætara, so sum listar av fólki, sum tú fylgir ella blokerar.
+    success: Dátur tínar vóru lagdar upp og verða viðgjørdar, tá tíð er
+    types:
+      blocking: Blokeringslisti
+      bookmarks: Bókamerki
+      domain_blocking: Navnaøkisblokeringslisti
+      following: Fylgjaralisti
+      muting: Doyvingarlisti
+    upload: Legg upp
   invites:
+    delete: Ger óvirkið
     expired: Útgingið
     expires_in:
       '1800': 30 minuttir
@@ -636,36 +1206,457 @@ fo:
       '604800': 1 vika
       '86400': 1 dag
     expires_in_prompt: Ongantíð
+    generate: Ger innbjóðingarleinki
+    invited_by: 'Tú var bjóðað/ur av:'
+    max_uses:
+      one: 1 brúk
+      other: "%{count} brúk"
+    max_uses_prompt: Eingin avmarking
+    prompt: Ger og deil leinki við onnur fyri at geva atgongd til hendan ambætaran
     table:
       expires_at: Rennir út
+      uses: Brúk
+    title: Bjóða fólki
+  lists:
+    errors:
+      limit: Tú hevur rokkið mesta talið av listum
   login_activities:
     authentication_methods:
       otp: app til váttan í tveimum stigum
       password: loyniorð
+      sign_in_token: teldupostatrygdarkoda
+      webauthn: trygdarlyklar
     description_html: Sært tú virksemi, sum tú ikki kennir aftur, so eigur tú at umhugsa at broyta loyniorðið ella at gera váttan í tveimum stigum virkna.
+    empty: Eingin samgildissøga tøk
+    failed_sign_in_html: Miseydnað innritanarroynd við %{method} frá %{ip} (%{browser})
+    successful_sign_in_html: Eydnað innritan við %{method} frá %{ip} (%{browser})
+    title: Samgildissøga
+  media_attachments:
+    validations:
+      images_and_video: Kann ikki viðfesta sjónfílu til ein post, sum longu inniheldur myndir
+      not_ready: Kann ikki viðfesta fílur, sum ikki eru liðugt viðgjørdar. Roynd aftur um eina løtu!
+      too_many: Kann ikki viðfest fleiri enn 4 fílur
+  migrations:
+    acct: Flutt til
+    cancel: Strika víðaribeining
+    cancel_explanation: At strika víðaribeining ger núverandi kontu tína virkna aftur, men gevur tær ikki fylgjarar, ið eru fluttir til hina kontuna, aftur.
+    cancelled_msg: Strikaði víðaribeiningina.
+    errors:
+      already_moved: er tann sama kontan, sum tú longu er flutt/ur til
+      missing_also_known_as: er ikki eitt tøkuheiti fyri hesa kontuna
+      move_to_self: kann ikki vera núverandi kontan
+      not_found: bar ikki til at finna
+      on_cooldown: Tú verður køld/ur niður
+    followers_count: Fylgjarar tá flytingin fór fram
+    incoming_migrations: Flyti frá eini aðrari kontu
+    incoming_migrations_html: Fyri at flyta frá eini aðrari kontu til hesa, so er fyrst neyðugt at <a href="%{path}">stovna eitt tøkuheiti til kontuna</a>.
+    moved_msg: Konta tín verður nú víðaribeind til %{acct} og fylgjarar tínir verða fluttir yvir.
+    not_redirecting: Konta tín verður ikki víðaribeind til nakra aðra kontu í løtuni.
+    on_cooldown: Tú hevur nýliga flutt tína kontu. Hesin valmøguleikin verður tøkur aftur um %{count} dagar.
+    past_migrations: Eldri flytingar
+    proceed_with_move: Flyt fylgjarar
+    redirected_msg: Konta tín verður nú víðaribeind til %{acct}.
+    redirecting_to: Konta tín er víðaribeind til %{acct}.
+    set_redirect: Set víðaribeining
+    warning:
+      backreference_required: Fyrst má nýggja kontan vera sett til at vísa aftur til hesa
+      before: 'Áðrenn tú fer víðari, vinarliga les hetta gjølla:'
+      cooldown: Aftaná at tú hevur flutt, so er eitt tíðarskeið, har tú ikki sleppur at flyta aftur
+      disabled_account: Tín verandi konta verður ikki fult nýtilig aftaná. Tó so, tú hevur atgongd til at útlesa dátur og tú kanst gera kontuna virkna aftur.
+      followers: Hetta fer at flyta alla fylgjarar frá verandi kontuni til ta nýggju
+      only_redirect_html: Ein annar møguleiki er, at tú <a href="%{path}">setir eina víðaribeining upp á vanga tínum</a>.
+      other_data: Ongar aðrar dátur verða fluttar sjálvvirkandi
+      redirect: Vangin á tíni núverandi kontu verður dagførd við eini viðmerking um víðaribeining og tú verður ikki at finna í leitingum
   moderation:
     title: Umsjón
+  move_handler:
+    carry_blocks_over_text: Hesin brúkarin flutti frá %{acct}, sum tú hevði blokerað.
+    carry_mutes_over_text: Hesin brúkarin flutti frá %{acct}, sum tú hevði doyvt.
+    copy_account_note_text: 'Hesin brúkarin flutti frá %{acct}. Her eru tínar viðmerkingar um viðkomandi:'
+  navigation:
+    toggle_menu: Lat valmynd upp ella aftur
+  notification_mailer:
+    admin:
+      report:
+        subject: "%{name} sendi eina melding"
+      sign_up:
+        subject: "%{name} meldaði seg til"
+    favourite:
+      body: "%{name} dámdi postin hjá tær:"
+      subject: "%{name} merkti postin hjá tær sum yndispost"
+      title: Nýggjur yndispostur
+    follow:
+      body: "%{name} fylgir tær nú!"
+      subject: "%{name} fylgir tær nú"
+      title: Nýggjur fylgjari
+    follow_request:
+      action: Stýr umbønum um at fylgja
+      body: "%{name} hevur biðið um at fylgja tær"
+      subject: 'Fylgjari, sum bíðar: %{name}'
+      title: Nýggj fylgjaraumbøn
+    mention:
+      action: Svar
+      body: 'Tú var umrødd/ur av %{name} í:'
+      subject: Tú var umrødd/ur av %{name}
+      title: Nýggj umrøða
+    poll:
+      subject: Ein spurnarkanning hjá %{name} er endað
+    reblog:
+      body: 'Postur tín var stimbraður av %{name}:'
+      subject: "%{name} stimbraði tín post"
+      title: Nýggj stimbran
+    status:
+      subject: "%{name} hevur júst postað"
+    update:
+      subject: "%{name} rættaði ein post"
+  notifications:
+    email_events: Hendingar fyri teldupostfráboðanir
+    email_events_hint: 'Vel hendingar, sum tú vil hava fráboðanir um:'
+    other_settings: Aðrar fráboðanarstillingar
+  number:
+    human:
+      decimal_units:
+        format: "%n%u"
+        units:
+          billion: mia
+          million: mió
+          quadrillion: kvd
+          thousand: tús
+          trillion: tri
   otp_authentication:
+    code_hint: Innles koduna, sum var gjørd av samgildisappini, fyri at vátta
     description_html: Ger tú <strong>váttan í tveimum stigum</strong> virkna við eini váttanar-app, so er neyðugt at hava telefonina tøka, tá tú skal rita inn, tí appin ger tekin til tín at lesa inn.
+    enable: Set í gildi
+    instructions_html: "<strong>Skanna hesa QR koduna inn í Google Authenticator ella eina líknandi TOTP-app á telefonini hjá tær</strong>. Frá nú av, so fer tann appin at gera tekn, sum tú mást skriva, tá tú ritar inn."
+    manual_instructions: 'Ber ikki til hjá tær at skanna QR koduna og tað er neyðugt hjá tær at lesa hana inn við hond, so er loynidómurin í klárteksti her:'
+    setup: Set upp
+    wrong_code: Innlisna kodan var ógildug! Samsvara tíðirnar á ambætaranum og á tínum tóli?
+  pagination:
+    newer: Nýggjari
+    next: Næsta
+    older: Eldri
+    prev: Fyrra
+    truncate: "&hellip;"
+  polls:
+    errors:
+      already_voted: Tú hevur longu atkvøtt í hesi atkvøðugreiðsluni
+      duplicate_options: inniheldur dupult-lutir
+      duration_too_long: er ov langt inni í framtíðini
+      duration_too_short: er ov tíðliga
+      expired: Atkvøðugreiðslan er longu endað
+      invalid_choice: Valmøguleikin finst ikki
+      over_character_limit: kann ikki vera longri enn %{max} tekn hvør
+      too_few_options: má hava meiri enn ein valmøguleika
+      too_many_options: kann ikki innihalda fleiri enn %{max} valmøguleikar
+  preferences:
+    other: Annað
+    posting_defaults: Postingarstillingar
+    public_timelines: Almennar tíðarlinjur
+  privacy_policy:
+    title: Privatlívspolitikkur
+  reactions:
+    errors:
+      limit_reached: Mark fyri ymisk aftursvar rokkið
+      unrecognized_emoji: er ikki eitt kenslutekn, sum kennist aftur
+  relationships:
+    activity: Kontuvirksemi
+    dormant: Í dvala
+    follow_selected_followers: Fylg valdu fylgjarum
+    followers: Fylgjarar
+    following: Fylgi
+    invited: Bjóðað
+    last_active: Seinast virkin
+    most_recent: Feskasta
+    moved: Flutti
+    mutual: Sínamillum
+    primary: Fyrst/ur
+    relationship: Samband
+    remove_selected_domains: Strika allar fylgjarar frá valdu navnaøkjunum
+    remove_selected_followers: Strika valdu fylgjarar
+    remove_selected_follows: Gevst at fylgja valdu brúkarar
+    status: Kontustøða
+  remote_follow:
+    missing_resource: Fann ikki kravda víðaribeinings-URL'in fyri tína kontu
+  reports:
+    errors:
+      invalid_rules: vísir ikki til gyldugar reglur
+  rss:
+    content_warning: 'Innihaldsávaring:'
+    descriptions:
+      account: Almennir postar frá @%{acct}
+      tag: 'Almennir postar við frámerkinum #%{hashtag}'
+  scheduled_statuses:
+    over_daily_limit: Tú er komin at markinum, sum er %{limit} skrálagdir postar, í dag
+    over_total_limit: Tú er komin at markinum, sum er %{limit} skrálagdir postar
+    too_soon: Ætlanardagfestingin má vera í framtíðini
+  sessions:
+    activity: Seinasta virksemi
+    browser: Kagi
+    browsers:
+      alipay: Alipay
+      blackberry: BlackBerry
+      chrome: Chrome
+      edge: Microsoft Edge
+      electron: Electron
+      firefox: Firefox
+      generic: Ókendur kagi
+      ie: Internet Explorer
+      micro_messenger: MicroMessenger
+      nokia: Nokia S40 Ovi Browser
+      opera: Opera
+      otter: Otter
+      phantom_js: PhantomJS
+      qq: QQ Browser
+      safari: Safari
+      uc_browser: UC Browser
+      weibo: Weibo
+    current_session: Verandi seta
+    description: "%{browser} á %{platform}"
+    explanation: Hetta eru vevkagarnir, sum í løtuni eru ritaðir inn á tína Mastodon kontu.
+    ip: IP
+    platforms:
+      adobe_air: Adobe Air
+      android: Android
+      blackberry: BlackBerry
+      chrome_os: ChromeOS
+      firefox_os: Firefox OS
+      ios: iOS
+      linux: Linux
+      mac: macOS
+      other: ókendur pallur
+      windows: Windows
+      windows_mobile: Windows Mobile
+      windows_phone: Windows Phone
+    revoke: Tak aftur
+    revoke_success: Setan tikin aftur
+    title: Setur
+    view_authentication_history: Sí samgildissøgu fyri tína kontu
   settings:
+    account: Konta
+    account_settings: Kontustillingar
+    aliases: Tøkuheiti hjá kontuni
+    appearance: Útsjónd
+    authorized_apps: Góðkendar appir
+    back: Aftur til Mastodon
+    delete: Striking av kontu
+    development: Menning
+    edit_profile: Rætta vanga
+    export: Útflyt dátur
+    featured_tags: Varpaði frámerki
+    import: Innflyt
+    import_and_export: Innflyt og útflyt
+    migrate: Flyting av kontu
+    notifications: Fráboðanir
+    preferences: Sertokki
+    profile: Vangi
+    relationships: Fylging og fylgjarar
+    statuses_cleanup: Sjálvvirkandi striking av postum
+    strikes: Umsjónaratsóknir
     two_factor_authentication: Váttan í tveimum stigum
+    webauthn_authentication: Trygdarlyklar
+  statuses:
+    attached:
+      audio:
+        one: "%{count} ljóð"
+        other: "%{count} ljóð"
+      description: 'Viðfest: %{attached}'
+      image:
+        one: "%{count} mynd"
+        other: "%{count} myndir"
+      video:
+        one: "%{count} sjónfíla"
+        other: "%{count} sjónfílur"
+    boosted_from_html: Stimbrað frá %{acct_link}
+    content_warning: 'Innihaldsávaring: %{warning}'
+    default_language: Sama sum markamótsmál
+    disallowed_hashtags:
+      one: 'innihelt eitt vrakað frámerki: %{tags}'
+      other: 'innihelt vrakaðu frámerkini: %{tags}'
+    edited_at_html: Rættað %{date}
+    errors:
+      in_reply_not_found: Posturin, sum tú roynir at svara, sýnist ikki at finnast.
+    open_in_web: Lat upp á vevinum
+    over_character_limit: mesta tal av teknum, %{max}, rokkið
+    pin_errors:
+      direct: Postar, sum einans eru sjónligir hjá nevndum brúkarum, kunnu ikki festast
+      limit: Tú hevur longu fest loyvda talið av postum
+      ownership: Postar hjá øðrum kunnu ikki festast
+      reblog: Ein stimbran kann ikki festast
+    poll:
+      total_people:
+        one: "%{count} fólk"
+        other: "%{count} fólk"
+      total_votes:
+        one: "%{count} atkvøða"
+        other: "%{count} atkvøður"
+      vote: Atkvøð
+    show_more: Vís meira
+    show_newer: Vís nýggjari
+    show_older: Vís eldri
+    show_thread: Vís tráð
+    sign_in_to_participate: Rita inn fyri at luttaka í samrøðuni
+    title: '%{name}: "%{quote}"'
+    visibilities:
+      direct: Beinleiðis
+      private: Einans fylgjarar
+      private_long: Vís einans fyri fylgjarum
+      public: Alment
+      public_long: Øll kunnu síggja
+      unlisted: Ólistað
+      unlisted_long: Øll kunnu síggja, men ikki listað á almennum tíðarlinjum
+  statuses_cleanup:
+    enabled: Strika gamlar postar sjálvvirkandi
+    enabled_hint: Strikar postar tínar sjálvvirkandi, tá teir verða eldri enn eitt vist, uttan so at teir samsvara við eitt av undantøkunum niðanfyri
+    exceptions: Undantøk
+    explanation: Av tí at striking av postum er dýrt virksemi, so verður tað gjørt spakuliga yvir tíð, tá ambætarin annars ikki er upptikin. Tí kunnu postarnir hjá tær verða strikaðir eina løtu aftaná, at tíðarfreistin er rokkin.
+    ignore_favs: Sí burtur frá yndispostum
+    ignore_reblogs: Sí burtur frá stimbranum
+    interaction_exceptions: Undantøk grundað á samvirkni
+    interaction_exceptions_explanation: Legg til merkis, at eingin trygd er fyri at postar verða strikaðir, um teir fara undir mørkini fyri yndispostar ella stimbranir eftir at teir einaferð eru farnir uppum.
+    keep_direct: Varðveit beinleiðis boð
+    keep_direct_hint: Strikar ikki beinleiðis boð hjá tær
+    keep_media: Varðveit postar, sum hava viðheftar miðlafílur
+    keep_media_hint: Strikar ikki postar hjá tær, sum hava miðlafílur viðheftar
+    keep_pinned: Varðveit festar postar
+    keep_pinned_hint: Strikar ikki tínar festu postar
+    keep_polls: Varðveit atkvøðugreiðslur
+    keep_polls_hint: Strikar ikki tínar atkvøðugreiðslur
+    keep_self_bookmark: Varðveit postar, sum tú hevur bókamerkt
+    keep_self_bookmark_hint: Strikar ikki tínar egnu postar, um tú hevur bókamerkt teir
+    keep_self_fav: Varðveit postar, sum tú hevur yndismerkt
+    keep_self_fav_hint: Strikar ikki tínar egnu postar, um tú hevur yndismerkt teir
+    min_age:
+      '1209600': 2 vikur
+      '15778476': 6 mánaðir
+      '2629746': 1 mánaði
+      '31556952': 1 ár
+      '5259492': 2 mánaðir
+      '604800': 1 vika
+      '63113904': 2 ár
+      '7889238': 3 mánaðir
+    min_age_label: Tíðarfreist
+    min_favs: Varðveit postar yndismerktar í minsta lagi
+    min_favs_hint: Strikar ikki postar hjá tær, sum hava móttikið í minsta lagi hetta talið av yndismerkjum. Lat vera blankt, um postar skulu strikast óansæð, hvussu ofta teir eru yndismerktir
+    min_reblogs: Varðveit postar, sum eru stimbraðir í minsta lagi
+    min_reblogs_hint: Strikar ikki postar hjá tær, sum eru stimbraðir í minsta lagi so ofta. Lat vera blankt, um postar skulu strikast óansæð, hvussu ofta teir eru stimbraðir
+  stream_entries:
+    pinned: Festir postar
+    reblogged: stimbraður
+    sensitive_content: Viðkvæmt innihald
+  strikes:
+    errors:
+      too_late: Tað er ov seint at kæra hesa atsókn
+  tags:
+    does_not_match_previous_name: samsvarar ikki við undanfarna navnið
+  themes:
+    contrast: Mastodon (høgur kontrastur)
+    default: Mastodon (myrkt)
+    mastodon-light: Mastodon (ljóst)
+  time:
+    formats:
+      default: "%b %d, %Y, %H:%M"
+      month: "%b %Y"
+      time: "%H:%M"
   two_factor_authentication:
+    add: Legg afturat
+    disable: Ger 2FA óvirkið
     disabled_success: Váttan í tveimum stigum gjørd óvirkin
+    edit: Rætta
     enabled: Váttan í tveimum stigum gjørd virkin
     enabled_success: Váttan í tveimum stigum gjørd virkin
+    generate_recovery_codes: Ger kodur til endurgerð
+    lost_recovery_codes: Kodur til endurgerð loyva tær at fáa atgongd aftur til kontu tína, um tú missir telefonina burtur. Hevur tú mist endurgerðskodurnar, so kanst tú gera tær her. Gomlu kodurnar vera gjørdar óvirknar.
     methods: Mannagongdir fyri váttan í tveimum stigum
+    otp: Authenticator app
+    recovery_codes: Tak trygdaravrit av kodum til endurgerð
+    recovery_codes_regenerated: Kodur til endurgerð gjørdar av nýggjum
+    recovery_instructions_html: Missir tú atgongd til telefonina, so kanst tú brúka eina av kodunum til endurgerð niðanfyri at fáa atgongd aftur til kontu tína. <strong>Goym kodurnar til endurgerð trygt</strong>. Til dømis kanst tú prenta tær og goyma tær saman við øðrum týdningarmiklum skjølum.
+    webauthn: Trygdarlyklar
   user_mailer:
+    appeal_approved:
+      action: Far til kontu tína
+      explanation: Kæran um atsóknina móti kontu tínari %{strike_date}, sum tú sendi inn %{appeal_date}, er góðkend. Konta tín er aftur tignarlig.
+      subject: Kæra tín frá %{date} er góðkend
+      title: Kæra góðkend
+    appeal_rejected:
+      explanation: Kæran um atsóknina móti kontu tínari %{strike_date}, sum tú sendi inn %{appeal_date}, er vrakað.
+      subject: Kæra tín frá %{date} er vrakað
+      title: Kæra vrakað
+    backup_ready:
+      explanation: Tú bað um eitt fult trygdaravrit av tíni Mastodon kontu. Tað er nú klárt at taka niður!
+      subject: Savnið hjá tær er tøkt at taka niður
+      title: Tak savn niður
     suspicious_sign_in:
+      change_password: broyt loyniorðið hjá tær
+      details: 'Her eru smálutirnir í innritanini:'
+      explanation: Vit hava lagt merki til, at innritað er á tína kontu frá einari nýggjari IP adressu.
       further_actions_html: Var hetta ikki tú, so mæla vit til, at tú %{action} beinan vegin og at tú ger váttan í tveimum stigum virkna fyri at konta tín kann vera trygg.
+      subject: Atgongd er fingin til kontu tína frá eini nýggjari IP adressu
+      title: Ein nýggj innritan
     warning:
+      appeal: Innsend eina kæru
+      appeal_description: Trýrt tú, at hetta er ein feilur, so kanst tú senda eina kæru til starvsfólkini á %{instance}.
+      categories:
+        spam: Ruskpostur
+        violation: Tilfarið er í stríð við fylgjandi leiðreglur
+      explanation:
+        delete_statuses: Summir av postum tínum eru staðfestir at vera í stríði við eina ella fleiri av leiðreglunum og eru tí strikaðir av umsjónarfólkunum á %{instance}.
+        disable: Tú kanst ikki longur brúka tína kontu, men vangi tín og aðrar dátur eru óskalað. Tú kanst biðja um trygdaravrit av tínum dátum, broyta kontustillingar ella strika tína kontu.
+        mark_statuses_as_sensitive: Summir av postum tínum eru merktir sum viðkvæmir av umsjónarfólkunum á %{instance}. Hetta merkir, at fólk mugu trýsta á miðilin í postinum, áðrenn ein undanvísing verður víst. Tú kanst sjálv/ur merkja miðlar viðkvæmar, tá tú postar í framtíðini.
+        sensitive: Frá nú av, so verða allar miðlafílur, sum tú leggur upp, merktar sum viðkvæmar og fjaldar aftan fyri eina ávarðing.
+        silence: Tú kanst framvegis brúka kontu tína, men einans fólk, sum longu fylgja tær, fara at síggja tínar postar á hesum ambætaranum, og tú kanst vera hildin uttanfyri ymiskar leitihentleikar. Tó so, onnur kunnu framvegis fylgja tær beinleiðis.
+        suspend: Tú kanst ikki longur brúka kontu tína og vangin og aðrar dátur eru ikki longur atkomulig. Tú kanst enn rita inn fyri at biðja um eitt trygdaravrit av tínum dátum, inntil dáturnar eru heilt burturbeindar um umleið 30 dagar, men vit varðveita nakrar grundleggjandi dátur fyri at forða tær í at støkka undan ógildingini.
       reason: 'Grund:'
+      statuses: 'Siteraðir postar:'
+      subject:
+        delete_statuses: Postar tíni á %{acct} eru strikaðir
+        disable: Konta tín %{acct} er fryst
+        mark_statuses_as_sensitive: Postar tíni á %{acct} eru merktir sum viðkvæmir
+        none: Ávaring fyri %{acct}
+        sensitive: Tínir postar á %{acct} verða merktir viðkvæmir framyvir
+        silence: Konta tín %{acct} er avmarkað
+        suspend: Konta tín %{acct} er ógildað
       title:
+        delete_statuses: Strikaðir postar
+        disable: Konta fryst
+        mark_statuses_as_sensitive: Postar merktir sum viðkvæmir
         none: Ávaring
         sensitive: Konto frámerkt sum viðvkæmur
         silence: Kontoin er avmarkað
+        suspend: Konta ógildað
+    welcome:
+      edit_profile_action: Set upp vanga
+      edit_profile_step: Tú kanst tillaga vanga tín við at leggja eina vangamynd inn, broyta vísta navnið hjá tær og meira. Tú kanst velja at eftirkanna nýggjar fylgjarar, áðrenn teir sleppa at fylgja tær.
+      explanation: Her eru nøkur ráð so tú kann koma gott ígongd
+      final_action: Byrja at posta
+      final_step: 'Byrja at posta! Sjálvt uttan fylgjarar, so kunnu tínir almennu postar vera sæddir av øðrum, til dømis á lokalu tíðarlinjuni ella í frámerkjum. Kanska vilt tú greiða frá um teg sjálva/n við frámerkinum #introductions.'
+      full_handle: Fulla brúkaranavn títt
+      full_handle_hint: Hetta er tað, sum tú fortelur vinum tínum, soleiðis at tey kunnu senda tær boð ella fylgja tær frá einum øðrum ambætara.
+      subject: Vælkomin til Mastodon
+      title: Vælkomin umborð, %{name}!
   users:
+    follow_limit_reached: Tú kanst ikki fylgja fleiri enn %{limit} fólk
     invalid_otp_token: Ógyldug tvey-stigs koda
+    otp_lost_help_html: Hevur tú mist atgongd til bæði, so kanst tú koma í samband við %{email}
+    seamless_external_login: Tú er ritað/ur inn umvegis eina uttanhýsis tænastu, so loyniorð og teldupoststillingar eru ikki tøkar.
+    signed_in_as: 'Ritað/ur inn sum:'
+  verification:
+    explanation_html: 'Tú kanst <strong>vátta teg sjálva/n sum eigara av leinkjunum í metadátunum á vanganum hjá tær</strong>. Til tess má leinkjaða vevstaðið innihalda eitt leinki aftur til Mastodon vangan hjá tær. Leinkið <strong>má</strong> hava eina <code>rel="me"</code> viðseting. Tekstinnihaldið í leikinum er óviðkomandi. Her er eitt dømi:'
+    verification: Váttan
   webauthn_credentials:
+    add: Legg nýggjan trygdarlykil afturat
+    create:
+      error: Ein trupulleiki var í sambandi við at trygdarlykilin bleiv lagdur afturat. Vinarliga royn aftur.
+      success: Trygdarlykilin hjá tær varð lagdur afturat.
     delete: Strika
+    delete_confirmation: Er tú vís/ur í, at tú vil strika hendan trygdarlykilin?
+    description_html: Um tú ger <strong>váttan við trygdarlykli</strong> virkna, so fer innritan at krevja, at tú brúkar ein av trygdarlyklunum hjá tær.
+    destroy:
+      error: Ein trupulleiki var við at strika trygdarlykilin hjá tær. Vinarliga royn aftur.
+      success: Trygdarlykilin hjá tær varð strikaður.
+    invalid_credential: Ógyldugur trygdarlykil
+    nickname_hint: Skriva eyknevni á tínum nýggja trygdarlykli
+    not_enabled: Tú hevur ikki gjørt WebAuthn virkið enn
+    not_supported: Hesin kagin stuðlar ikki uppundir trygdarlyklar
     otp_required: Fyri at brúka trygdarlyklar er neyðugt at gera váttan í tveimum stigum virkna fyrst.
     registered_on: Skrásett %{date}
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index 6d2ee464a..be1dad399 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -444,9 +444,13 @@ gd:
       resolved_through_html: Chaidh fuasgladh slighe %{domain}
       title: Àrainnean puist-d ’gam bacadh
     export_domain_allows:
+      new:
+        title: Ion-phortaich àrainnean ceadaichte
       no_file: Cha deach faidhle a thaghadh
     export_domain_blocks:
       import:
+        existing_relationships_warning: Dàimhean leantainn làithreach
+        private_comment_template: Chaidh ion-phortadh o %{source} %{date}
         title: Ion-phortaich bacaidhean àrainne
       new:
         title: Ion-phortaich bacaidhean àrainne
@@ -952,7 +956,7 @@ gd:
     notification_preferences: Atharraich roghainnean a’ phuist-d
     salutation: "%{name},"
     settings: 'Atharraich roghainnean a’ phuist-d: %{link}'
-    view: 'Seall:'
+    view: 'Faic:'
     view_profile: Seall a’ phròifil
     view_status: Seall am post
   applications:
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 18b61cd17..a468d47d8 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -578,7 +578,7 @@ gl:
         suspend_description_html: O perfil e tódolos seus contidos será inaccesbles e finalmente eliminados. A interacción coa conta non será posible. Reversible durante 30 días.
       actions_description_html: Decide que acción tomar respecto desta denuncia. Se tomas accións punitivas contra a conta denunciada, enviaráselles un email coa notificación, excepto se está seleccionada a categoría <strong>Spam</strong>.
       add_to_report: Engadir máis á denuncia
-      are_you_sure: Estás seguro?
+      are_you_sure: Tes certeza?
       assign_to_self: Asignarme
       assigned: Moderador asignado
       by_target_domain: Dominio da conta denunciada
@@ -693,7 +693,7 @@ gl:
       about:
         manage_rules: Xestionar regras do servidor
         preamble: Proporciona información detallada acerca do xeito en que se xestiona, modera e financia o servidor.
-        rules_hint: Hai un espazo dedicado para as normas que é de agardar que as túas usuarias cumpran.
+        rules_hint: Hai un espazo dedicado para as normas que é de agardar as usuarias acaten.
         title: Acerca de
       appearance:
         preamble: Personalizar a interface web de Mastodon.
@@ -728,7 +728,7 @@ gl:
       delete: Eliminar o ficheiro subido
       destroyed_msg: Eliminado correctamente o subido!
     statuses:
-      account: Conta
+      account: Autoría
       application: Aplicación
       back_to_account: Volver a páxina da conta
       back_to_report: Volver a denuncias
@@ -1373,7 +1373,7 @@ gl:
     relationship: Relación
     remove_selected_domains: Eliminar todas as seguidoras dos dominios escollidos
     remove_selected_followers: Eliminar as seguidoras escollidas
-    remove_selected_follows: Deixar de seguir as usuarias escollidas
+    remove_selected_follows: Deixar de seguir as usuarias elexidas
     status: Estado da conta
   remote_follow:
     missing_resource: Non se puido atopar o URL de redirecionamento requerido para a súa conta
@@ -1512,7 +1512,7 @@ gl:
     ignore_favs: Ignorar favoritas
     ignore_reblogs: Ignorar promocións
     interaction_exceptions: Excepcións baseadas en interaccións
-    interaction_exceptions_explanation: Ten en conta de que non hai garantía de que se eliminen as túas publicacións se non superan o límite de promocións e favoritos aínda que algunha vez o tivesen superado.
+    interaction_exceptions_explanation: Ten en conta de que non hai garantía de que se eliminen as túas publicacións se non superan o límite de promocións e favorecementos aínda que algunha vez o tivesen superado.
     keep_direct: Manter mensaxes directas
     keep_direct_hint: Non borrar ningunha das túas mensaxes directas
     keep_media: Manter publicacións que conteñen multimedia
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 981f31685..25464c335 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -70,14 +70,14 @@ he:
       edit: עריכה
       email: דוא״ל
       email_status: מצב דוא״ל
-      enable: להפשיר
+      enable: ביטול הקפאה
       enable_sign_in_token_auth: הפעלת אסימון הזדהות בדוא״ל
       enabled: מופעל
       enabled_msg: ביטול השעית החשבון של %{username} בוצע בהצלחה
       followers: עוקבים
       follows: נעקבים
       header: כותרת
-      inbox_url: כתובת תיבה נכנסת
+      inbox_url: כתובת תיבת דואר נכנס
       invite_request_text: סיבות להצטרפות
       invited_by: הוזמן על ידי
       ip: כתובת IP
@@ -338,7 +338,7 @@ he:
       overwrite: לדרוס
       shortcode: קוד קצר
       shortcode_hint: לפחות 2 תוים, אלפאנומריים או קו תחתי
-      title: יצגנים מותאמים אישית
+      title: אמוג'י שהעלינו
       uncategorized: לא מסווגים
       unlist: בטל רישום
       unlisted: לא רשומים
@@ -1197,6 +1197,11 @@ he:
     trending_now: נושאים חמים
   generic:
     all: הכל
+    all_items_on_page_selected_html:
+      many: "<strong>%{count}</strong> פריטים נבחרו בעמוד זה."
+      one: פריט <strong>%{count}</strong> נבחר בעמוד זה.
+      other: "<strong>%{count}</strong> פריטים נבחרו בעמוד זה."
+      two: "<strong>%{count}</strong> פריטים נבחרו בעמוד זה."
     all_matching_items_selected_html:
       many: נבחרו <strong>%{count}</strong> פריטים שתאמו לחיפוש בעמוד זה.
       one: נבחר פריט <strong>%{count}</strong> שתאם לחיפוש בעמוד זה.
@@ -1209,6 +1214,11 @@ he:
     none: כלום
     order_by: מיין לפי
     save_changes: שמור שינויים
+    select_all_matching_items:
+      many: בחר.י %{count} פריטים שתאמו לחיפוש שלך.
+      one: בחר.י פריט %{count} שתאם לחיפוש שלך.
+      other: בחר.י %{count} פריטים שתאמו לחיפוש שלך.
+      two: בחר. י %{count} פריטים שתאמו לחיפוש שלך.
     today: היום
     validation_errors:
       many: משהו עדיין לא בסדר! נא לעיין ב-%{count} השגיאות להלן
diff --git a/config/locales/is.yml b/config/locales/is.yml
index cb6a3e260..cd0a5a2b1 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -12,7 +12,7 @@ is:
       one: fylgjandi
       other: fylgjendur
     following: Fylgist með
-    instance_actor_flash: Þessi notandaaðgangur er sýndarnotandi sem stendur fyrir sjálfan netþjóninn en ekki neinn einstakling. Hann er notaður við skýjasambandsmiðlun og ætti ekki að setja hann í bið eða banna.
+    instance_actor_flash: Þessi notandaaðgangur er sýndarnotandi sem stendur fyrir sjálfan netþjóninn en ekki neinn einstakling. Hann er notaður við skýjasambandsmiðlun og ætti ekki að setja hann í frysti eða banna.
     last_active: síðasta virkni
     link_verified_on: Eignarhald á þessum tengli var athugað þann %{date}
     nothing_here: Það er ekkert hér!
@@ -93,7 +93,7 @@ is:
         all: Allt
         pending: Í bið
         silenced: Takmarkað
-        suspended: Í bið
+        suspended: Í frysti
         title: Umsjón
       moderation_notes: Minnispunktar umsjónarmanna
       most_recent_activity: Allra nýjasta virkni
@@ -103,7 +103,7 @@ is:
       no_role_assigned: Engu hlutverki úthlutað
       not_subscribed: Ekki í áskrift
       pending: Bíður eftir yfirlestri
-      perform_full_suspension: Setja í bið
+      perform_full_suspension: Frysta
       previous_strikes: Fyrri refsingar
       previous_strikes_description_html:
         one: Þessi notandaaðgangur er með <strong>eina</strong> refsingu.
@@ -145,10 +145,10 @@ is:
       statuses: Færslur
       strikes: Fyrri refsingar
       subscribe: Gerast áskrifandi
-      suspend: Setja í bið
-      suspended: Í bið
-      suspension_irreversible: Gögnunum á þessum notandaaðgangi hefur verið eytt óafturkræft. Þú getur tekið aðganginn úr bið svo hægt sé að nota hann, en það mun ekki endurheimta neitt af þeim gögnum sem á honum voru áður.
-      suspension_reversible_hint_html: Notandaaðgangurin hefur verið settur í biðstöðu og gögnunum á honum verður eytt að fullu þann %{date}. Þangað til væri hægt að endurheimta aðganginn úr bið án nokkurra breytinga. Ef þú vilt eyða öllum gögnum af honum strax, geturðu gert það hér fyrir neðan.
+      suspend: Frysta
+      suspended: Í frysti
+      suspension_irreversible: Gögnunum á þessum notandaaðgangi hefur verið eytt óafturkræft. Þú getur tekið aðganginn úr frysti svo hægt sé að nota hann, en það mun ekki endurheimta neitt af þeim gögnum sem á honum voru áður.
+      suspension_reversible_hint_html: Notandaaðgangurinn hefur verið settur í frysti og gögnunum á honum verður eytt að fullu þann %{date}. Þangað til væri hægt að endurheimta aðganginn úr frysti án nokkurra breytinga. Ef þú vilt eyða öllum gögnum af honum strax, geturðu gert það hér fyrir neðan.
       title: Notandaaðgangar
       unblock_email: Aflétta útilokun tölvupóstfangs
       unblocked_email_msg: Tókst að afbanna tölvupóstfang notandans %{username}
@@ -158,7 +158,7 @@ is:
       undo_suspension: Taka úr bið
       unsilenced_msg: Tókst að fjarlægja takmarkanir af notandaaðgangnum fyrir %{username}
       unsubscribe: Taka úr áskrift
-      unsuspended_msg: Tókst að taka notandaaðganginn fyrir %{username} úr bið
+      unsuspended_msg: Tókst að taka notandaaðganginn fyrir %{username} úr frysti
       username: Notandanafn
       view_domain: Skoða yfirlit fyrir lén
       warn: Aðvara
@@ -212,12 +212,12 @@ is:
         resolve_report: Leysa kæru
         sensitive_account: Merkja myndefni á aðgangnum þínum sem viðkvæmt
         silence_account: Hylja notandaaðgang
-        suspend_account: Setja notandaaðgang í bið
+        suspend_account: Frysta notandaaðgang
         unassigned_report: Aftengja úthlutun kæru
         unblock_email_account: Leyfa tölvupóstfang
         unsensitive_account: Afmerkja myndefni á aðgangnum þínum sem viðkvæmt
         unsilence_account: Hætta að hylja notandaaðgang
-        unsuspend_account: Taka notandaaðgang úr bið
+        unsuspend_account: Taka notandaaðgang úr frysti
         update_announcement: Uppfæra tilkynningu
         update_custom_emoji: Uppfæra sérsniðið tjáningartákn
         update_domain_block: Uppfæra útilokun léns
@@ -271,12 +271,12 @@ is:
         resolve_report_html: "%{name} leysti kæru %{target}"
         sensitive_account_html: "%{name} merkti myndefni frá %{target} sem viðkvæmt"
         silence_account_html: "%{name} þaggaði niður í aðgangnum %{target}"
-        suspend_account_html: "%{name} setti notandaaðganginn %{target} í bið"
+        suspend_account_html: "%{name} setti notandaaðganginn %{target} í frysti"
         unassigned_report_html: "%{name} fjarlægði úthlutun af kæru %{target}"
         unblock_email_account_html: "%{name} opnaði á tölvupóstfangið %{target}"
         unsensitive_account_html: "%{name} tók merkinguna viðkvæmt af myndefni frá %{target}"
         unsilence_account_html: "%{name} hætti að hylja notandaaðganginn %{target}"
-        unsuspend_account_html: "%{name} tók notandaaðganginn %{target} úr bið"
+        unsuspend_account_html: "%{name} tók notandaaðganginn %{target} úr frysti"
         update_announcement_html: "%{name} uppfærði tilkynningu %{target}"
         update_custom_emoji_html: "%{name} uppfærði tjáningartáknið %{target}"
         update_domain_block_html: "%{name} uppfærði útilokun lénsins %{target}"
@@ -390,10 +390,10 @@ is:
         create: Búa til útilokun
         hint: Útilokun lénsins mun ekki koma í veg fyrir gerð aðgangsfærslna í gagnagrunninum, en mun afturvirkt og sjálfvirkt beita sérstökum umsjónaraðferðum á þessa aðganga.
         severity:
-          desc_html: "<strong>Takmörk</strong> mun gera færslur frá aðgöngum á þessu léni ósýnilegar fyrir þeim sem ekki eru að fylgjast með viðkomandi. <strong>Setja í bið</strong> mun fjarlægja allt efni, myndgögn og gögn af notandasniði frá aðgöngum á þessu léni af netþjóninum þínum. Notaðu <strong>Ekkert</strong> ef þú vilt bara hafna gagnaskrám."
+          desc_html: "<strong>Takmörk</strong> mun gera færslur frá aðgöngum á þessu léni ósýnilegar fyrir þeim sem ekki eru að fylgjast með viðkomandi. <strong>Frysta</strong> mun fjarlægja allt efni, myndgögn og gögn af notandasniði frá aðgöngum á þessu léni af netþjóninum þínum. Notaðu <strong>Ekkert</strong> ef þú vilt bara hafna gagnaskrám."
           noop: Ekkert
           silence: Takmörk
-          suspend: Setja í bið
+          suspend: Frysta
         title: Ný útilokun á léni
       no_domain_block_selected: Engum útilokunum léna var breytt þar sem ekkert var valið
       not_permitted: Þú hefur ekki réttindi til að framkvæma þessa aðgerð
@@ -474,7 +474,7 @@ is:
           reject_media: Hafna myndefni
           reject_reports: Hafna kærum
           silence: Takmörk
-          suspend: Setja í bið
+          suspend: Frysta
         policy: Stefna
         reason: Opinber ástæða
         title: Stefnur varðandi efni
@@ -760,7 +760,7 @@ is:
         none: "%{name} sendi aðvörun til %{target}"
         sensitive: "%{name} merkti efni frá %{target} sem viðkvæmt"
         silence: "%{name} takmarkaði aðganginn %{target}"
-        suspend: "%{name} setti notandaaðganginn %{target} í bið"
+        suspend: "%{name} setti notandaaðganginn %{target} í frysti"
       appeal_approved: Áfrýjað
       appeal_pending: Áfrýjun í bið
     system_checks:
@@ -878,7 +878,7 @@ is:
         none: aðvörun
         sensitive: að merkja efni á aðgangnum sem viðkvæmt
         silence: að takmarka aðgang viðkomandi
-        suspend: að setja aðgang viðkomandi í bið
+        suspend: að setja aðgang viðkomandi í frysti
       body: "%{target} er að áfrýja ákvörðun umsjónarmanns tekinni af %{action_taken_by} frá %{date}, sem var %{type}. Viðkomandi skrifaði:"
       next_steps: Þú getur samþykkt áfrýjunina til að afturkalla ákvörðun umsjónarmanns, eða hunsað hana.
       subject: "%{username} er að áfrýja ákvörðun umsjónarmanns tekinni á %{instance}"
@@ -1065,7 +1065,7 @@ is:
         none: Aðvörun
         sensitive: Merking notanda sem viðkvæms
         silence: Takmörkun aðgangs
-        suspend: Setja aðgang í bið
+        suspend: Setja aðgang í frysti
       your_appeal_approved: Áfrýjun þín hefur verið samþykkt
       your_appeal_pending: Þú hefur sent inn áfrýjun
       your_appeal_rejected: Áfrýjun þinni hefur verið hafnað
@@ -1615,7 +1615,7 @@ is:
         none: Aðvörun fyrir %{acct}
         sensitive: Færslur þínar á %{acct} verða héðan í frá merktar sem viðkvæmar
         silence: Notandaaðgangurinn þinn %{acct} hefur verið takmarkaður
-        suspend: Notandaaðgangurinn þinn %{acct} hefur verið settur í bið
+        suspend: Notandaaðgangurinn þinn %{acct} hefur verið settur í frysti
       title:
         delete_statuses: Færslur fjarlægðar
         disable: Notandaaðgangur frystur
@@ -1623,7 +1623,7 @@ is:
         none: Aðvörun
         sensitive: Notandaaðgangur merktur sem viðkvæmur
         silence: Notandaaðgangur takmarkaður
-        suspend: Notandaaðgangur í bið
+        suspend: Notandaaðgangur í frysti
     welcome:
       edit_profile_action: Setja upp notandasnið
       edit_profile_step: Þú getur sérsniðið notandasniðið þitt með því að setja inn auðkennismynd þína, breyta birtingarnafninu þínu og ýmislegt fleira. Þú getur valið að yfirfara nýja fylgjendur áður en þú leyfir þeim að fylgjast með þér.
diff --git a/config/locales/it.yml b/config/locales/it.yml
index a8801d9bc..b0e911f7f 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -1,7 +1,7 @@
 ---
 it:
   about:
-    about_mastodon_html: 'Il social network del futuro: niente pubblicità, niente controllo da parte di qualche azienda privata, design etico e decentralizzazione! Con Mastodon il proprietario dei tuoi dati sei tu!'
+    about_mastodon_html: 'Il social network del futuro: Nessuna pubblicità, zero sorveglianza azienale, design etico e decentralizzazione! Sii il proprietario dei tuoi dati, con Mastodon!'
     contact_missing: Non impostato
     contact_unavailable: N/D
     hosted_on: Mastodon ospitato su %{domain}
@@ -11,13 +11,13 @@ it:
     followers:
       one: Seguace
       other: Seguaci
-    following: Segui
-    instance_actor_flash: Questo account è un attore virtuale usato per rappresentare il server stesso e non un singolo utente. Viene utilizzato per scopi federativi e non dovrebbe essere sospeso.
+    following: Seguiti
+    instance_actor_flash: Questo profilo è un attore virtuale, utilizzato per rappresentare il server stesso e non un singolo utente. È utilizzato per scopi federativi e non dovrebbe esser sospeso.
     last_active: ultima attività
     link_verified_on: La proprietà di questo link è stata controllata il %{date}
     nothing_here: Qui non c'è nulla!
     pin_errors:
-      following: Devi gia seguire la persona che vuoi promuovere
+      following: Devi già seguire la persona che desideri promuovere
     posts:
       one: Toot
       other: Toot
@@ -25,219 +25,219 @@ it:
   admin:
     account_actions:
       action: Esegui azione
-      title: Esegui azione di moderazione su %{acct}
+      title: Esegui l'azione di moderazione su %{acct}
     account_moderation_notes:
-      create: Lascia nota
-      created_msg: Nota di moderazione creata con successo!
-      destroyed_msg: Nota di moderazione distrutta con successo!
+      create: Lascia una nota
+      created_msg: Nota di moderazione creata correttamente!
+      destroyed_msg: Nota di moderazione distrutta correttamente!
     accounts:
-      add_email_domain_block: Inserisci il dominio email nella blacklist
+      add_email_domain_block: Blocca il dominio dell'email
       approve: Approva
-      approved_msg: Richiesta di registrazione di %{username} approvata
+      approved_msg: Richiesta d'iscrizione di %{username} approvata correttamente
       are_you_sure: Sei sicuro?
-      avatar: Immagine di profilo
+      avatar: Avatar
       by_domain: Dominio
       change_email:
-        changed_msg: Email modificata!
-        current_email: Email attuale
-        label: Cambia email
+        changed_msg: Email modificata correttamente!
+        current_email: Email corrente
+        label: Cambia l'email
         new_email: Nuova email
-        submit: Cambia email
-        title: Cambia email per %{username}
+        submit: Cambia l'email
+        title: Cambia l'email per %{username}
       change_role:
         changed_msg: Ruolo modificato correttamente!
-        label: Cambia ruolo
+        label: Cambia il ruolo
         no_role: Nessun ruolo
-        title: Cambia ruolo per %{username}
+        title: Cambia il ruolo per %{username}
       confirm: Conferma
       confirmed: Confermato
       confirming: Confermando
       custom: Personalizzato
-      delete: Elimina dati
-      deleted: Cancellato
-      demote: Declassa
-      destroyed_msg: I dati di %{username} sono ora in coda per essere eliminati tra poco
-      disable: Disabilita
-      disable_sign_in_token_auth: Disabilita autenticazione con token email
-      disable_two_factor_authentication: Disabilita l'autenticazione a due fattori
-      disabled: Disabilitato
-      display_name: Nome visualizzato
+      delete: Elimina i dati
+      deleted: Eliminato
+      demote: Retrocedi
+      destroyed_msg: I dati di %{username} sono ora accodati per l'imminente eliminazione
+      disable: Congela
+      disable_sign_in_token_auth: Disabilita l'autenticazione con token via email
+      disable_two_factor_authentication: Disabilita A2F
+      disabled: Congelato
+      display_name: Nome mostrato
       domain: Dominio
       edit: Modifica
       email: Email
-      email_status: Stato email
-      enable: Abilita
-      enable_sign_in_token_auth: Abilita autenticazione con token email
+      email_status: Stato dell'email
+      enable: Scongela
+      enable_sign_in_token_auth: Abilita l'autenticazione con token via email
       enabled: Abilitato
-      enabled_msg: L'account di %{username} è stato scongelato
-      followers: Follower
-      follows: Segue
+      enabled_msg: Il profilo di %{username} è stato scongelato correttamente
+      followers: Seguaci
+      follows: Seguiti
       header: Intestazione
-      inbox_url: URL inbox
-      invite_request_text: Motivi per l'iscrizione
+      inbox_url: URL casella
+      invite_request_text: Motivi d'iscrizione
       invited_by: Invitato da
       ip: IP
-      joined: Iscritto da
+      joined: Iscritto il
       location:
         all: Tutto
         local: Locale
         remote: Remoto
-        title: Luogo
-      login_status: Stato login
-      media_attachments: Media allegati
+        title: Posizione
+      login_status: Stato d'accesso
+      media_attachments: Allegati multimediali
       memorialize: Trasforma in memoriam
-      memorialized: Memorializzato
-      memorialized_msg: Hai trasformato %{username} in un account commemorativo
+      memorialized: Commemorato
+      memorialized_msg: "%{username} trasformato correttamente in un profilo commemorativo"
       moderation:
         active: Attivo
         all: Tutto
-        pending: In attesa
+        pending: In sospeso
         silenced: Limitato
-        suspended: Sospesi
+        suspended: Sospeso
         title: Moderazione
       moderation_notes: Note di moderazione
-      most_recent_activity: Attività più recenti
+      most_recent_activity: Attività più recente
       most_recent_ip: IP più recente
-      no_account_selected: Nessun account è stato modificato visto che non ne è stato selezionato nessuno
+      no_account_selected: Nessun profilo è stato modificato, poiché non ne è stato selezionato nessuno
       no_limits_imposed: Nessun limite imposto
       no_role_assigned: Nessun ruolo assegnato
-      not_subscribed: Non sottoscritto
-      pending: Revisioni in attesa
+      not_subscribed: Non iscritto
+      pending: Revisione in sospeso
       perform_full_suspension: Sospendi
-      previous_strikes: Sanzioni precedenti
+      previous_strikes: Provvedimenti precedenti
       previous_strikes_description_html:
-        one: Questo account ha <strong>una</strong> sanzione.
-        other: Questo account ha <strong>%{count}</strong> violazioni.
+        one: Questo profilo ha <strong>un</strong> provvedimento.
+        other: Questo profilo ha <strong>%{count}</strong> provvedimenti.
       promote: Promuovi
       protocol: Protocollo
       public: Pubblico
-      push_subscription_expires: Sottoscrizione PuSH scaduta
-      redownload: Aggiorna avatar
-      redownloaded_msg: Il profilo di %{username} è stato aggiornato dall'origine
+      push_subscription_expires: L'iscrizione PuSH scade il
+      redownload: Aggiorna profilo
+      redownloaded_msg: Il profilo di %{username} è stato aggiornato correttamente dall'origine
       reject: Rifiuta
-      rejected_msg: Richiesta di registrazione di %{username} rifiutata
-      remove_avatar: Rimuovi avatar
-      remove_header: Rimuovi intestazione
-      removed_avatar_msg: Immagine dell'avatar di %{username} eliminata
-      removed_header_msg: Immagine di intestazione di %{username} eliminata
+      rejected_msg: Richiesta d'iscrizione di %{username} rifiutata correttamente
+      remove_avatar: Rimuovi l'avatar
+      remove_header: Rimuovi l'intestazione
+      removed_avatar_msg: Immagine dell'avatar di %{username} rimossa correttamente
+      removed_header_msg: Immagine d'intestazione di %{username} rimossa correttamente
       resend_confirmation:
         already_confirmed: Questo utente è già confermato
-        send: Reinvia email di conferma
-        success: Email di conferma inviata con successo!
-      reset: Reimposta
-      reset_password: Reimposta password
-      resubscribe: Riscriversi
+        send: Reinvia l'email di conferma
+        success: Email di conferma inviata correttamente!
+      reset: Ripristina
+      reset_password: Ripristina la password
+      resubscribe: Reiscriviti
       role: Ruolo
       search: Cerca
-      search_same_email_domain: Altri utenti con lo stesso dominio e-mail
+      search_same_email_domain: Altri utenti con lo stesso dominio email
       search_same_ip: Altri utenti con lo stesso IP
       security_measures:
         only_password: Solo password
-        password_and_2fa: Password e autenticazione a due fattori
+        password_and_2fa: Password e A2F
       sensitive: Sensibile
-      sensitized: contrassegnato come sensibile
-      shared_inbox_url: URL Inbox Condiviso
+      sensitized: Contrassegnato come sensibile
+      shared_inbox_url: URL casella condiviso
       show:
-        created_reports: Rapporti creati da questo account
-        targeted_reports: Rapporti che riguardano questo account
-      silence: Silenzia
-      silenced: Silenziato
-      statuses: Stati
-      strikes: Sanzioni precedenti
-      subscribe: Sottoscrivi
+        created_reports: Rapporti creati
+        targeted_reports: Segnalato da altri
+      silence: Limita
+      silenced: Limitato
+      statuses: Toot
+      strikes: Provvedimenti precedenti
+      subscribe: Iscriviti
       suspend: Sospendi
       suspended: Sospeso
-      suspension_irreversible: I dati di questo account sono stati cancellati in modo irreversibile. È possibile annullare la sospensione dell'account per renderlo utilizzabile, ma non recupererà alcuno dei dati precedenti.
-      suspension_reversible_hint_html: L'account è stato sospeso e i dati saranno completamente eliminati il %{date}. Fino ad allora, l'account può essere ripristinato senza effetti negativi. Se si desidera eliminare immediatamente tutti i dati dell'account, è possibile farlo qui sotto.
-      title: Account
+      suspension_irreversible: I dati di questo profilo sono stati eliminati irreversibilmente. Puoi annullare la sospensione del profilo per renderlo utilizzabile, ma non recuperà alcun dato precedente.
+      suspension_reversible_hint_html: Il profilo è stato sospeso e i dati saranno rimossi completamente il %{date}. Fino ad allora, il profilo è ripristinabile senza alcun effetto negativo. Se desideri rimuovere immediatamente tutti i dati del profilo, puoi farlo di seguito.
+      title: Profili
       unblock_email: Sblocca indirizzo email
-      unblocked_email_msg: Indirizzo email di %{username} sbloccato
+      unblocked_email_msg: Indirizzo email di %{username} sbloccato correttamente
       unconfirmed_email: Email non confermata
       undo_sensitized: Annulla sensibile
-      undo_silenced: Rimuovi silenzia
-      undo_suspension: Rimuovi sospensione
-      unsilenced_msg: Sono stati tolti i limiti dell'account di %{username}
-      unsubscribe: Annulla l'iscrizione
-      unsuspended_msg: È stata eliminata la sospensione dell'account di %{username}
+      undo_silenced: Annulla limitazione
+      undo_suspension: Annulla sospensione
+      unsilenced_msg: Limitazione del profilo di %{username} annullata correttamente
+      unsubscribe: Disiscriviti
+      unsuspended_msg: Sospensione del profilo di %{username} annullata correttamente
       username: Nome utente
-      view_domain: Visualizza riepilogo per dominio
-      warn: Avverti
+      view_domain: Visualizza il riepilogo per il dominio
+      warn: Avvisa
       web: Web
-      whitelisted: Nella whitelist
+      whitelisted: Consentito per la federazione
     action_logs:
       action_types:
         approve_appeal: Approva Ricorso
         approve_user: Approva Utente
-        assigned_to_self_report: Assegna report
-        change_email_user: Cambia l'e-mail per l'utente
-        change_role_user: Cambia il Ruolo dell'Utente
-        confirm_user: Conferma utente
-        create_account_warning: Crea avviso
-        create_announcement: Crea un annuncio
-        create_canonical_email_block: Crea Blocco E-mail
-        create_custom_emoji: Crea emoji personalizzata
-        create_domain_allow: Crea permesso di dominio
-        create_domain_block: Crea blocco di dominio
-        create_email_domain_block: Crea blocco dominio e-mail
+        assigned_to_self_report: Assegna Segnalazione
+        change_email_user: Cambia l'Email per l'Utente
+        change_role_user: Cambia il Ruolo per l'Utente
+        confirm_user: Conferma l'Utente
+        create_account_warning: Crea Avviso
+        create_announcement: Crea Annuncio
+        create_canonical_email_block: Crea Blocco Email
+        create_custom_emoji: Crea Emoji Personalizzata
+        create_domain_allow: Crea Dominio Consentito
+        create_domain_block: Crea Blocco del Dominio
+        create_email_domain_block: Crea Blocco del Dominio Email
         create_ip_block: Crea regola IP
-        create_unavailable_domain: Crea dominio non disponibile
+        create_unavailable_domain: Crea Dominio Non Disponibile
         create_user_role: Crea Ruolo
-        demote_user: Degrada l'utente
-        destroy_announcement: Cancella annuncio
-        destroy_canonical_email_block: Elimina Blocco E-mail
-        destroy_custom_emoji: Cancella emoji personalizzata
-        destroy_domain_allow: Cancella permesso di dominio
-        destroy_domain_block: Cancella blocco di dominio
-        destroy_email_domain_block: Cancella blocco dominio e-mail
-        destroy_instance: Ripulisci dominio
+        demote_user: Retrocedi Utente
+        destroy_announcement: Elimina Annuncio
+        destroy_canonical_email_block: Elimina Blocco Email
+        destroy_custom_emoji: Elimina Emoji Personalizzata
+        destroy_domain_allow: Elimina Dominio Consentito
+        destroy_domain_block: Elimina Blocco del Dominio
+        destroy_email_domain_block: Elimina Blocco del Dominio Email
+        destroy_instance: Elimina Dominio
         destroy_ip_block: Elimina regola IP
-        destroy_status: Cancella stato
-        destroy_unavailable_domain: Elimina dominio non disponibile
+        destroy_status: Elimina Toot
+        destroy_unavailable_domain: Elimina Dominio Non Disponibile
         destroy_user_role: Distruggi Ruolo
-        disable_2fa_user: Disabilita l'autenticazione a due fattori
-        disable_custom_emoji: Disabilita emoji personalizzata
-        disable_sign_in_token_auth_user: Disabilita autenticazione con codice via email per l'utente
-        disable_user: Disabilita utente
-        enable_custom_emoji: Abilita emoji personalizzata
-        enable_sign_in_token_auth_user: Abilita autenticazione con codice via email per l'utente
-        enable_user: Abilita utente
-        memorialize_account: Trasforma in account commemorativo
-        promote_user: Promuovi utente
-        reject_appeal: Respingi Ricorso
+        disable_2fa_user: Disabilita A2F
+        disable_custom_emoji: Disabilita Emoji Personalizzata
+        disable_sign_in_token_auth_user: Disabilita l'Autenticazione con Token via Email per l'Utente
+        disable_user: Disabilita l'Utente
+        enable_custom_emoji: Abilita Emoji Personalizzata
+        enable_sign_in_token_auth_user: Abilita l'Autenticazione con Token via Email per l'Utente
+        enable_user: Abilita l'Utente
+        memorialize_account: Commemora Profilo
+        promote_user: Promuovi Utente
+        reject_appeal: Rifiuta Ricorso
         reject_user: Rifiuta Utente
-        remove_avatar_user: Elimina avatar
-        reopen_report: Riapri report
-        resend_user: Invia di nuovo l'email di conferma
-        reset_password_user: Reimposta password
-        resolve_report: Risolvi report
-        sensitive_account: Contrassegna il media nel tuo profilo come sensibile
-        silence_account: Silenzia account
-        suspend_account: Sospendi account
-        unassigned_report: Disassegna report
-        unblock_email_account: Sblocca indirizzo email
-        unsensitive_account: Deseleziona il media nel tuo profilo come sensibile
-        unsilence_account: De-silenzia account
-        unsuspend_account: Annulla la sospensione dell'account
-        update_announcement: Aggiorna annuncio
-        update_custom_emoji: Aggiorna emoji personalizzata
-        update_domain_block: Aggiorna blocco di dominio
+        remove_avatar_user: Rimuovi Avatar
+        reopen_report: Riapri Segnalazione
+        resend_user: Reinvia Email di Conferma
+        reset_password_user: Ripristina la Password
+        resolve_report: Risolvi Segnalazione
+        sensitive_account: Forza Profilo come Sensibile
+        silence_account: Limita Profilo
+        suspend_account: Sospendi Profilo
+        unassigned_report: Annulla Assegnazione Rapporto
+        unblock_email_account: Sblocca l'indirizzo email
+        unsensitive_account: Annulla Forza Profilo come Sensibile
+        unsilence_account: Annulla Limitazione Profilo
+        unsuspend_account: Annulla la Sospensione del Profilo
+        update_announcement: Aggiorna Annuncio
+        update_custom_emoji: Aggiorna Emoji Personalizzata
+        update_domain_block: Aggiorna Blocco del Dominio
         update_ip_block: Aggiorna regola IP
-        update_status: Aggiorna stato
+        update_status: Aggiorna Toot
         update_user_role: Aggiorna Ruolo
       actions:
-        approve_appeal_html: "%{name} ha approvato il ricorso contro la decisione di moderazione da %{target}"
-        approve_user_html: "%{name} ha approvato la registrazione da %{target}"
-        assigned_to_self_report_html: "%{name} ha assegnato il rapporto %{target} a se stesso"
-        change_email_user_html: "%{name} ha cambiato l'indirizzo e-mail dell'utente %{target}"
+        approve_appeal_html: "%{name} ha approvato il ricorso sulla decisione di moderazione da %{target}"
+        approve_user_html: "%{name} ha approvato l'iscrizione da %{target}"
+        assigned_to_self_report_html: "%{name} ha assegnato a se stesso la segnalazione %{target}"
+        change_email_user_html: "%{name} ha modificato l'indirizzo email dell'utente %{target}"
         change_role_user_html: "%{name} ha cambiato il ruolo di %{target}"
-        confirm_user_html: "%{name} ha confermato l'indirizzo e-mail dell'utente %{target}"
+        confirm_user_html: "%{name} ha confermato l'indirizzo email dell'utente %{target}"
         create_account_warning_html: "%{name} ha inviato un avviso a %{target}"
         create_announcement_html: "%{name} ha creato un nuovo annuncio %{target}"
-        create_canonical_email_block_html: "%{name} ha bloccato l'e-mail con l'hash %{target}"
+        create_canonical_email_block_html: "%{name} ha bloccato l'email con l'hash %{target}"
         create_custom_emoji_html: "%{name} ha caricato una nuova emoji %{target}"
-        create_domain_allow_html: "%{name} ha consentito alla federazione col dominio %{target}"
-        create_domain_block_html: "%{name} ha bloccato dominio %{target}"
-        create_email_domain_block_html: "%{name} ha bloccato dominio e-mail %{target}"
+        create_domain_allow_html: "%{name} ha consentito la federazione con il dominio %{target}"
+        create_domain_block_html: "%{name} ha bloccato il dominio %{target}"
+        create_email_domain_block_html: "%{name} ha bloccato il dominio email %{target}"
         create_ip_block_html: "%{name} ha creato una regola per l'IP %{target}"
         create_unavailable_domain_html: "%{name} ha interrotto la consegna al dominio %{target}"
         create_user_role_html: "%{name} ha creato il ruolo %{target}"
@@ -245,31 +245,31 @@ it:
         destroy_announcement_html: "%{name} ha eliminato l'annuncio %{target}"
         destroy_canonical_email_block_html: "%{name} ha sbloccato l'email con l'hash %{target}"
         destroy_custom_emoji_html: "%{name} ha eliminato l'emoji %{target}"
-        destroy_domain_allow_html: "%{name} ha negato la federazione al dominio %{target}"
-        destroy_domain_block_html: "%{name} ha sbloccato dominio %{target}"
-        destroy_email_domain_block_html: "%{name} ha sbloccato il dominio e-mail %{target}"
-        destroy_instance_html: "%{name} ha ripulito il dominio %{target}"
+        destroy_domain_allow_html: "%{name} non ha consentito la federazione con il dominio %{target}"
+        destroy_domain_block_html: "%{name} ha sbloccato il dominio %{target}"
+        destroy_email_domain_block_html: "%{name} ha sbloccato il dominio email %{target}"
+        destroy_instance_html: "%{name} ha eliminato il dominio %{target}"
         destroy_ip_block_html: "%{name} ha eliminato la regola per l'IP %{target}"
-        destroy_status_html: "%{name} ha eliminato lo status di %{target}"
+        destroy_status_html: "%{name} ha rimosso il toot di %{target}"
         destroy_unavailable_domain_html: "%{name} ha ripreso la consegna al dominio %{target}"
         destroy_user_role_html: "%{name} ha eliminato il ruolo %{target}"
         disable_2fa_user_html: "%{name} ha disabilitato l'autenticazione a due fattori per l'utente %{target}"
         disable_custom_emoji_html: "%{name} ha disabilitato emoji %{target}"
         disable_sign_in_token_auth_user_html: "%{name} ha disabilitato l'autenticazione con codice via email per %{target}"
-        disable_user_html: "%{name} ha disabilitato il login per l'utente %{target}"
-        enable_custom_emoji_html: "%{name} ha abilitato emoji %{target}"
+        disable_user_html: "%{name} ha disabilitato l'accesso per l'utente %{target}"
+        enable_custom_emoji_html: "%{name} ha abilitato l'emoji %{target}"
         enable_sign_in_token_auth_user_html: "%{name} ha abilitato l'autenticazione con codice via email per %{target}"
-        enable_user_html: "%{name} ha abilitato il login per l'utente %{target}"
-        memorialize_account_html: "%{name} ha trasformato l'account di %{target} in una pagina in memoriam"
+        enable_user_html: "%{name} ha abilitato l'accesso per l'utente %{target}"
+        memorialize_account_html: "%{name} ha trasformato il profilo di %{target} in una pagina commemorativa"
         promote_user_html: "%{name} ha promosso l'utente %{target}"
-        reject_appeal_html: "%{name} ha respinto il ricorso contro la decisione di moderazione da %{target}"
-        reject_user_html: "%{name} ha rifiutato la registrazione da %{target}"
-        remove_avatar_user_html: "%{name} ha rimosso l'immagine profilo di %{target}"
-        reopen_report_html: "%{name} ha riaperto il rapporto %{target}"
-        resend_user_html: "%{name} inviata nuovamente l'email di conferma per %{target}"
-        reset_password_user_html: "%{name} ha reimpostato la password dell'utente %{target}"
-        resolve_report_html: "%{name} ha risolto il rapporto %{target}"
-        sensitive_account_html: "%{name} ha segnato il media di %{target} come sensibile"
+        reject_appeal_html: "%{name} ha rifiutato il ricorso alla decisione di moderazione da %{target}"
+        reject_user_html: "%{name} ha rifiutato l'iscrizione da %{target}"
+        remove_avatar_user_html: "%{name} ha rimosso l'avatar di %{target}"
+        reopen_report_html: "%{name} ha riaperto la segnalazione %{target}"
+        resend_user_html: "%{name} ha reinviato l'email di conferma per %{target}"
+        reset_password_user_html: "%{name} ha ripristinato la password dell'utente %{target}"
+        resolve_report_html: "%{name} ha risolto la segnalazione %{target}"
+        sensitive_account_html: "%{name} ha contrassegnato il media di %{target} come sensibile"
         silence_account_html: "%{name} ha silenziato l'account di %{target}"
         suspend_account_html: "%{name} ha sospeso l'account di %{target}"
         unassigned_report_html: "%{name} ha disassegnato il rapporto %{target}"
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index f3e7f306f..271257e27 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -223,7 +223,7 @@ ja:
         update_user_role: ロールを更新
       actions:
         approve_appeal_html: "%{name}さんが%{target}さんからの抗議を承認しました"
-        approve_user_html: "%{target}から登録された%{name}さんを承認しました"
+        approve_user_html: "%{name}さんが%{target}さんからの登録を承認しました"
         assigned_to_self_report_html: "%{name}さんが通報 %{target}を自身の担当に割り当てました"
         change_email_user_html: "%{name}さんが%{target}さんのメールアドレスを変更しました"
         change_role_user_html: "%{name}さんが%{target}さんのロールを変更しました"
@@ -260,7 +260,7 @@ ja:
         memorialize_account_html: "%{name}さんが%{target}さんを追悼アカウントページに登録しました"
         promote_user_html: "%{name}さんが%{target}さんを昇格しました"
         reject_appeal_html: "%{name}さんが%{target}からの抗議を却下しました"
-        reject_user_html: "%{target}から登録された%{name}さんを拒否しました"
+        reject_user_html: "%{name}さんが%{target}さんからの登録を拒否しました"
         remove_avatar_user_html: "%{name}さんが%{target}さんのアイコンを削除しました"
         reopen_report_html: "%{name}さんが通報 %{target}を未解決に戻しました"
         resend_user_html: "%{name} が %{target} の確認メールを再送信しました"
@@ -423,6 +423,8 @@ ja:
       no_file: ファイルが選択されていません
     export_domain_blocks:
       import:
+        existing_relationships_warning: 既存のフォロー関係
+        private_comment_template: "%{source} から %{date} にインポートしました"
         title: ドメインブロックをインポート
       new:
         title: ドメインブロックをインポート
diff --git a/config/locales/ku.yml b/config/locales/ku.yml
index 48b929343..453bc839b 100644
--- a/config/locales/ku.yml
+++ b/config/locales/ku.yml
@@ -1027,7 +1027,7 @@ ku:
   deletes:
     challenge_not_passed: Zanyariyên ku te nivîsandî ne rast in
     confirm_password: Borînpeyva xwe ya heyî binivîsine da ku nasnameya xwe piştrast bikî
-    confirm_username: Navê bikarhêneriyê xwe binivîse da ku prosedurê piştrast bike
+    confirm_username: Navê bikarhêneriyê xwe binivîse da ku pêvajoyê piştrast bikî
     proceed: Ajimêr jê bibe
     success_msg: Ajimêra te bi serkeftî hate jêbirin
     warning:
@@ -1514,7 +1514,7 @@ ku:
     ignore_favs: Ecibandinan paşguh bike
     ignore_reblogs: Bilindkirinan piştguh bike
     interaction_exceptions: Awarteyên li ser bingehên têkiliyan
-    interaction_exceptions_explanation: Bizanibe ku heke şandiyeke ku ji binî ve têkeve jêrî bijare an bilindkirin ê piştî ku carek din di ser wan re derbas bibe, garantiyek tune ku werin jêbirin.
+    interaction_exceptions_explanation: Bizanibe ku şandiyeke ku ji binî ve têkeve jêrî bijarte yan bilindkirinê piştî ku carek din di ser wan re derbas bibe, garantiyek tune ku werin jêbirin.
     keep_direct: Peyamên rasterast veşêre
     keep_direct_hint: Tu peyamên te yekcar jê naçe
     keep_media: Peyamên bi pêvekên medyayê ve ne biveşêre
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 56962ecc5..da4765f06 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -927,10 +927,10 @@ lv:
     remove: Atsaistīt aizstājvārdu
   appearance:
     advanced_web_interface: Paplašinātā tīmekļa saskarne
-    advanced_web_interface_hint: 'Ja vēlies izmantot visu ekrāna platumu, uzlabotā tīmekļa saskarne ļauj konfigurēt daudzas dažādas kolonnas, lai vienlaikus redzētu tik daudz informācijas, cik vēlies: Sākums, paziņojumi, federētā ziņu lenta, neierobežots skaits sarakstu un tēmturu.'
+    advanced_web_interface_hint: 'Ja vēlies izmantot visu ekrāna platumu, uzlabotā tīmekļa saskarne ļauj konfigurēt daudzas dažādas kolonnas, lai vienlaikus redzētu tik daudz informācijas, cik vēlies: Sākums, paziņojumi, apvienotā ziņu lenta, neierobežots skaits sarakstu un tēmturu.'
     animations_and_accessibility: Animācijas un pieejamība
     confirmation_dialogs: Apstiprināšanas dialogi
-    discovery: Atklājums
+    discovery: Atklāšana
     localization:
       body: Mastodon ir tulkojuši brīvprātīgie.
       guide_link: https://crowdin.com/project/mastodon
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index e75a15502..e13827a6b 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -102,6 +102,9 @@ ms:
       not_subscribed: Tiada langganan
       pending: Menunggu semak semula
       perform_full_suspension: Gantung
+      previous_strikes: Pelanggaran sebelumnya
+      previous_strikes_description_html:
+        other: Akaun ini mempunyai <strong>%{count}</strong> pelanggaran.
       promote: Naikkan taraf
       protocol: Protokol
       public: Awam
@@ -137,6 +140,7 @@ ms:
       silence: Hadkan
       silenced: Dihadkan
       statuses: Hantaran
+      strikes: Pelanggaran sebelumnya
       subscribe: Langgan
       suspend: Gantung
       suspended: Digantung
@@ -144,6 +148,7 @@ ms:
       suspension_reversible_hint_html: Akaun ini telah digantung, dan datanya akan dibuang pada %{date}. Sebelum tarikh itu, akaun ini boleh diperoleh semula tanpa kesan buruk. Jika anda mahu memadamkan kesemua data akaun ini serta-merta, anda boleh melakukannya di bawah.
       title: Akaun
       unblock_email: Menyahsekat alamat e-mel
+      unblocked_email_msg: Alamat e-mel %{username} berjaya dinyahsekat
       unconfirmed_email: E-mel belum disahkan
       undo_sensitized: Nyahtanda sensitif
       undo_silenced: Nyahdiamkan
@@ -188,8 +193,10 @@ ms:
         destroy_user_role: Padamkan Peranan
         disable_2fa_user: Nyahdayakan 2FA
         disable_custom_emoji: Nyahdayakan Emoji Tersendiri
+        disable_sign_in_token_auth_user: Melumpuhkan pengesahan token e-mel untuk pengguna
         disable_user: Nyahdayakan Pengguna
         enable_custom_emoji: Dayakan Emoji Tersendiri
+        enable_sign_in_token_auth_user: Mendayakan pengesahan token e-mel untuk pengguna
         enable_user: Dayakan Pengguna
         memorialize_account: Jadikan Akaun Kenangan
         promote_user: Naikkan Taraf Pengguna
@@ -215,11 +222,15 @@ ms:
         update_status: Kemas Kini Hantaran
         update_user_role: Kemas Kini Peranan
       actions:
+        approve_appeal_html: "%{name} meluluskan rayuan keputusan penyederhanaan daripada %{target}"
+        approve_user_html: "%{name} meluluskan pendaftaran daripada %{target}"
         assigned_to_self_report_html: "%{name} menugaskan laporan %{target} kepada dirinya sendiri"
         change_email_user_html: "%{name} telah mengubah alamat e-mel pengguna %{target}"
+        change_role_user_html: "%{name} mengubah peranan %{target}"
         confirm_user_html: "%{name} telah mengesahkan alamat e-mel pengguna %{target}"
         create_account_warning_html: "%{name} telah memberi amaran kepada %{target}"
         create_announcement_html: "%{name} telah mencipta pengumuman baharu %{target}"
+        create_canonical_email_block_html: "%{name} menyekat e-mel dengan cincangan %{target}"
         create_custom_emoji_html: "%{name} telah memuat naik emoji baharu %{target}"
         create_domain_allow_html: "%{name} membenarkan persekutuan dengan domain %{target}"
         create_domain_block_html: "%{name} telah menyekat domain %{target}"
@@ -241,26 +252,34 @@ ms:
         destroy_user_role_html: "%{name} telah memadam peranan %{target}"
         disable_2fa_user_html: "%{name} menyahdayakan keperluan dua faktor bagi pengguna %{target}"
         disable_custom_emoji_html: "%{name} telah menyahdayakan emoji %{target}"
+        disable_sign_in_token_auth_user_html: "%{name} melumpuhkan pengesahan token e-mel untuk %{target}"
         disable_user_html: "%{name} telah menyahdayakan log masuk bagi pengguna %{target}"
         enable_custom_emoji_html: "%{name} telah mendayakan emoji %{target}"
+        enable_sign_in_token_auth_user_html: "%{name} mendayakan pengesahan token e-mel untuk %{target}"
         enable_user_html: "%{name} telah mendayakan log masuk untuk pengguna %{target}"
         memorialize_account_html: "%{name} telah mengubah akaun %{target} menjadi halaman kenangan"
         promote_user_html: "%{name} telah menaikkan taraf pengguna %{target}"
+        reject_appeal_html: "%{name} menolak rayuan keputusan penyederhanaan daripada %{target}"
+        reject_user_html: "%{name} menolak pendaftaran daripada %{target}"
         remove_avatar_user_html: "%{name} telah membuang avatar %{target}"
         reopen_report_html: "%{name} telah membuka semula laporan %{target}"
+        resend_user_html: "%{name} menghantar semula e-mel pengesahan untuk %{target}"
         reset_password_user_html: "%{name} telah menetapkan semula kata laluan pengguna %{target}"
         resolve_report_html: "%{name} telah menyelesaikan laporan %{target}"
         sensitive_account_html: "%{name} telah menanda media %{target} sebagai sensitif"
         silence_account_html: "%{name} telah mendiamkan akaun %{target}"
         suspend_account_html: "%{name} telah menggantung akaun %{target}"
         unassigned_report_html: "%{name} telah menyahtugaskan laporan %{target}"
+        unblock_email_account_html: "%{name} menyahsekat alamat e-mel %{target}"
         unsensitive_account_html: "%{name} telah menyahtanda media %{target} sebagai sensitif"
         unsilence_account_html: "%{name} telah menyahdiamkan akaun %{target}"
         unsuspend_account_html: "%{name} telah menyahgantungkan akaun %{target}"
         update_announcement_html: "%{name} telah mengemaskini pengumuman %{target}"
         update_custom_emoji_html: "%{name} telah mengemaskini emoji %{target}"
         update_domain_block_html: "%{name} telah mengemaskini penyekatan domain untuk %{target}"
+        update_ip_block_html: "%{name} telah mengubah peraturan IP %{target}"
         update_status_html: "%{name} telah mengemaskini hantaran oleh %{target}"
+        update_user_role_html: "%{name} telah mengubah peranan %{target}"
       deleted_account: akaun dipadamkan
       empty: Tiada log dijumpai.
       filter_by_action: Tapis mengikut tindakan
@@ -300,10 +319,12 @@ ms:
       enable: Dayakan
       enabled: Didayakan
       enabled_msg: Emoji tersebut berjaya didayakan
+      image_hint: PNG atau GIF sehingga %{size}
       list: Senarai
       listed: Disenaraikan
       new:
         title: Tambah emoji sendiri baharu
+      no_emoji_selected: Tiada emoji diubah kerana tiada yang dipilih
       not_permitted: Anda tidak dibenarkan untuk membuat tindakan ini
       overwrite: Tulis ganti
       shortcode: Kod pendek
@@ -321,6 +342,14 @@ ms:
       media_storage: Penyimpanan media
       new_users: pengguna baru
       opened_reports: laporan dibuka
+      pending_appeals_html:
+        other: "<strong>%{count}</strong> rayuan masih belum selesai"
+      pending_reports_html:
+        other: "<strong>%{count}</strong> laporan masih belum selesai"
+      pending_tags_html:
+        other: "<strong>%{count}</strong> tanda pagar masih belum selesai"
+      pending_users_html:
+        other: "<strong>%{count}</strong> pengguna masih menunggu"
       resolved_reports: laporan diselesaikan
       software: Perisian
       sources: Sumber pendaftaran
@@ -346,6 +375,7 @@ ms:
       destroyed_msg: Sekatan domain telah diundurkan
       domain: Domain
       edit: Sunting penyekatan domain
+      existing_domain_block: Anda telah pun mengenakan had yang lebih ketat kepada %{name}.
       existing_domain_block_html: Anda telah mengenakan pengehadan yang lebih tegas ke atas %{name}, anda perlu <a href="%{unblock_url}">menyahsekatinya</a> dahulu.
       export: Eksport
       import: Import
@@ -354,8 +384,11 @@ ms:
         hint: Sekatan domain tidak akan menghindarkan penciptaan entri akaun dalam pangkalan data, tetapi akan dikenakan kaedah penyederhanaan khusus tertentu pada akaun-akaun tersebut secara retroaktif dan automatik.
         severity:
           noop: Tiada
+          silence: Hadkan
           suspend: Gantungkan
         title: Sekatan domain baharu
+      no_domain_block_selected: Tiada sekatan domain diubah kerana tiada yang dipilih
+      not_permitted: Anda tidak dibenarkan untuk melaksanakan tindakan ini
       obfuscate: Mengaburkan nama domain
       obfuscate_hint: Mengaburkan nama domain secara separa dalam senarai sekiranya pengehadan pengiklanan senarai domain didayakan
       private_comment: Ulasan peribadi
@@ -370,6 +403,8 @@ ms:
       view: Lihat penyekatan domain
     email_domain_blocks:
       add_new: Tambah baharu
+      attempts_over_week:
+        other: "%{count} cubaan pendaftaran sepanjang minggu lepas"
       created_msg: Telah berjaya menyekat domain e-mel
       delete: Padam
       dns:
@@ -378,10 +413,19 @@ ms:
       domain: Domain
       new:
         create: Tambah domain
+        resolve: Menyelesaikan domain
         title: Sekat domain e-mel baharu
+      no_email_domain_block_selected: Tiada sekatan domain e-mel diubah kerana tiada yang dipilih
+      resolved_through_html: Diselesaikan melalui %{domain}
       title: Domain e-mel disekat
     export_domain_allows:
+      new:
+        title: Import kebenaran domain
       no_file: Tiada fail dipilih
+    export_domain_blocks:
+      import:
+        existing_relationships_warning: Hubungan ikut sedia ada
+      no_file: Tiada fail yang dipilih
     follow_recommendations:
       description_html: "<strong>Saranan ikutan membantu pengguna baharu mencari kandungan menarik dengan cepat</strong>. Apabila pengguna belum cukup berinteraksi dengan akaun lain untuk membentuk saranan ikutan tersendiri, akaun-akaun inilah yang akan disarankan. Ia dinilai semula setiap hari dari gabungan keterlibatan tertinggi terkini dan juga jumlah pengikut tempatan tertinggi mengikut bahasa masing-masing."
       language: Untuk bahasa
@@ -391,11 +435,18 @@ ms:
       title: Saranan ikutan
       unsuppress: Tetap semula saranan ikutan
     instances:
+      availability:
+        title: Ketersediaan
+        warning: Percubaan terakhir untuk menyambung ke pelayan ini tidak berjaya
       back_to_all: Semua
       back_to_limited: Terhad
       back_to_warning: Amaran
       by_domain: Domain
+      confirm_purge: Adakah anda pasti mahu menghapuskan senarai ini secara kekal daripada domain ini?
       content_policies:
+        comment: Catatan dalaman
+        policies:
+          silence: Hadkan
         policy: Dasar
         reason: Sebab awam
         title: Dasar kandungan
@@ -404,9 +455,13 @@ ms:
         instance_accounts_measure: akaun disimpan
         instance_followers_measure: pengikut kami di situ
         instance_follows_measure: pengikut mereka di sini
+        instance_languages_dimension: Bahasa teratas
+        instance_reports_measure: laporan mengenai mereka
+        instance_statuses_measure: Hantaran yang disimpan
       delivery:
         all: Semua
         clear: Buang ralat penghantaran
+        failing: Gagal
         restart: Mulakan semula penghantaran
         stop: Hentikan penghantaran
         unavailable: Tidak tersedia
@@ -470,12 +525,18 @@ ms:
     report_notes:
       created_msg: Catatan laporan telah berjaya dicipta!
       destroyed_msg: Catatan laporan telah berjaya dipadam!
+      today_at: Hari ini pada %{time}
     reports:
       account:
         notes:
           other: "%{count} catatan"
       action_log: Log audit
       action_taken_by: Tindakan diambil oleh
+      actions:
+        delete_description_html: Hantaran yang dilaporkan akan dihapuskan dan pelanggaran itu akan direkodkan bagi membantu anda menguruskan pelanggaran pada akaun yang sama di masa akan datang.
+        mark_as_sensitive_description_html: Media di dalam hantaran yang dilaporkan akan ditandakan sebagai sensitif dan pelanggaran itu akan direkodkan bagi membantu anda menguruskan pelanggaran pada akaun yang sama di masa akan datang.
+        resolve_description_html: Tiada tindakan akan diambil terhadap akaun yang dilaporkan, tiada pelanggaran direkodkan dan laporan akan ditutup.
+      add_to_report: Tambahkan lebih banyak pada laporan
       are_you_sure: Adakah anda pasti?
       assign_to_self: Menugaskan kepada saya
       assigned: Penyederhana yang ditugaskan
@@ -504,7 +565,10 @@ ms:
       reported_by: Dilaporkan oleh
       resolved: Diselesaikan
       resolved_msg: Laporan berjaya diselesaikan!
+      skip_to_actions: Langkau ke tindakan
       status: Status
+      statuses: Kandungan yang dilaporkan
+      target_origin: Asalan akaun yang dilaporkan
       title: Laporan
       unassign: Nyahtugaskan
       unresolved: Nyahselesaikan
@@ -516,22 +580,55 @@ ms:
         other: "%{count} pengguna"
       categories:
         administration: Pentadbiran
+        devops: DevOps
         invites: Undangan
+        moderation: Penyederhanaan
         special: Khas
       delete: Padam
+      edit: Sunting peranan '%{name}'
       everyone: Kebenaran lalai
       permissions_count:
         other: "%{count} kebenaran"
       privileges:
         administrator: Pentadbir
         delete_user_data: Padamkan Data Pengguna
+        delete_user_data_description: Membenarkan pengguna menghapuskan data pengguna lain tanpa bertangguh
+        invite_users: Mengundang pengguna
+        invite_users_description: Membenarkan pengguna mengundang orang baharu ke pelayan
+        manage_announcements: Menguruskan pengumuman
+        manage_announcements_description: Membenarkan pengguna menguruskan pengumuman pada pelayan
+        manage_appeals: Menguruskan rayuan
+        manage_appeals_description: Membenarkan pengguna menyemak rayuan terhadap tindakan penyederhanaan
+        manage_blocks: Menguruskan sekatan
+        manage_blocks_description: Membenarkan pengguna menyekat pembekal e-mel dan alamat IP
+        manage_custom_emojis: Menguruskan emoji tersuai
+        manage_custom_emojis_description: Membenarkan pengguna menguruskan emoji tersuai pada pelayan
+        manage_federation: Menguruskan persekutuan
+        manage_federation_description: Membenarkan pengguna menyekat atau membenarkan persekutuan dengan domain yang lain dan mengawal kebolehhantaran
+        manage_invites: Menguruskan undangan
+        manage_invites_description: Membenarkan pengguna mengimbas dan menyahaktifkan pautan undangan
         manage_reports: Uruskan Laporan
+        manage_reports_description: Membenarkan pengguna menyemak laporan dan melaksanakan tindakan penyederhanaan terhadapnya
         manage_roles: Uruskan Peranan
+        manage_roles_description: Membenarkan pengguna mengurus dan menetapkan peranan di bawah mereka
         manage_rules: Uruskan Peraturan
+        manage_rules_description: Membenarkan pengguna mengubah peraturan pelayan
         manage_settings: Uruskan Tetapan
+        manage_settings_description: Membenarkan pengguna mengubah tetapan tapak
         manage_taxonomies: Uruskan Taksonomi
+        manage_taxonomies_description: Membenarkan pengguna menyemak kandungan sohor kini dan mengemas kini tetapan tanda pagar
         manage_user_access: Uruskan Akses Pengguna
+        manage_user_access_description: Membenarkan pengguna melumpuhkan pengesahan dwifaktor pengguna lain, mengubah alamat e-mel dan menetapkan semula kata laluan mereka
         manage_users: Uruskan Pengguna
+        manage_users_description: Membenarkan pengguna melihat butiran pengguna lain dan melaksanakan tindakan penyederhanaan terhadapnya
+        manage_webhooks: Menguruskan webhook
+        manage_webhooks_description: Membenarkan pengguna menyediakan webhook bagi acara pentadbiran
+        view_audit_log: Melihat log audit
+        view_audit_log_description: Membenarkan pengguna melihat sejarah tindakan pentadbiran pada pelayan
+        view_dashboard: Melihat papan pemuka
+        view_dashboard_description: Membenarkan pengguna mencapai papan pemuka dan pelbagai metrik
+        view_devops: DevOps
+        view_devops_description: Membenarkan pengguna mencapai papan pemuka Sidekiq dan pgHero
       title: Peranan
     rules:
       add_new: Tambah peraturan
@@ -543,9 +640,27 @@ ms:
     settings:
       about:
         manage_rules: Uruskan peraturan pelayan
+        preamble: Memberikan maklumat mendalam mengenai cara pelayan dikendalikan, disederhanakan, dibiayai.
+        rules_hint: Terdapat kawasan khas untuk peraturan yang dijangka untuk dipatuhi oleh pengguna anda.
+        title: Tentang
+      appearance:
+        preamble: Menyesuaikan antara muka web Mastodon.
+        title: Penampilan
+      branding:
+        title: Penjenamaan
+      content_retention:
+        title: Pengekalan kandungan
       discovery:
         profile_directory: Direktori profil
+        public_timelines: Garis masa awam
+        title: Penemuan
+        trends: Sohor kini
+      domain_blocks:
+        all: Kepada semua orang
+        disabled: Tidak kepada sesiapa
+        users: Kepada pengguna tempatan yang telah dilog masuk
       registrations:
+        preamble: Kawal siapa yang boleh membuat akaun pada pelayan anda.
         title: Pendaftaran
       registrations_mode:
         modes:
@@ -553,33 +668,69 @@ ms:
           none: Tiada siapa boleh mendaftar
           open: Sesiapapun boleh mendaftar
       title: Tetapan Pelayan
+    site_uploads:
+      delete: Hapuskan fail yang dimuat naik
+      destroyed_msg: Muat naik tapak berjaya dihapuskan!
     statuses:
       account: Penulis
       deleted: Dipadamkan
       favourites: Gemaran
       history: Sejarah versi
       language: Bahasa
+      media:
+        title: Media
+      metadata: Metadata
+      no_status_selected: Tiada hantaran diubah kerana tiada yang dipilih
       open: Buka hantaran
+      original_status: Hantaran asal
+      reblogs: Ulang siar
+      status_changed: Hantaran diubah
     strikes:
       actions:
         delete_statuses: "%{name} memadam hantaran %{target}"
+        disable: "%{name} membekukan akaun %{target}"
+        mark_statuses_as_sensitive: "%{name} menandakan hantaran %{target} sebagai sensitif"
+        none: "%{name} menghantar amaran kepada %{target}"
+        sensitive: "%{name} menandakan akaun %{target} sebagai sensitif"
+        silence: "%{name} telah mengehadkan akaun %{target}"
+        suspend: "%{name} telah menggantungkan akaun %{target}"
       appeal_approved: Dirayu
+      appeal_pending: Rayuan yang belum selesai
     tags:
       review: Semak status
     title: Pentadbiran
     trends:
       allow: Izin
       approved: Diluluskan
+      links:
+        allow: Membenarkan pautan
+        allow_provider: Membenarkan penerbit
+        title: Pautan yang sedang sohor kini
       preview_card_providers:
+        rejected: Pautan daripada penerbit ini tidak akan menjadi sohor kini
         title: Penerbit
       rejected: Ditolak
       statuses:
         allow: Izinkan hantaran
         allow_account: Izinkan penulis
+        disallow: Tidak membenarkan hantaran
+        disallow_account: Tidak membenarkan penulis
         title: Hantaran hangat
       tags:
+        current_score: Markah semasa %{score}
         dashboard:
+          tag_accounts_measure: pengguna unik
+          tag_languages_dimension: Bahasa teratas
+          tag_servers_dimension: Pelayan teratas
           tag_servers_measure: pelayan lain
+          tag_uses_measure: penggunaan keseluruhan
+        listable: Boleh dicadangkan
+        not_usable: Tidak boleh digunakan
+        peaked_on_and_decaying: Di atas pada %{date}, kini menurun
+        title: Tanda pagar sedang sohor kini
+        trendable: Boleh muncul di bawah sohor kini
+        trending_rank: 'Sohor kini #%{rank}'
+        usable: Boleh digunakan
     webhooks:
       delete: Padam
       enable: Dayakan
@@ -612,6 +763,7 @@ ms:
     security: Keselamatan
     status:
       account_status: Status akaun
+      view_strikes: Lihat pelanggaran yang lepas terhadap akaun anda
     use_security_key: Gunakan kunci keselamatan
   authorize_follow:
     follow: Ikut
@@ -631,19 +783,32 @@ ms:
     strikes:
       action_taken: Tindakan diambil
       appeal: Rayu
+      appeal_approved: Rayuan pelanggaran ini telah berjaya dan tidak lagi sah
       appeal_rejected: Rayuan ini telah ditolak
       appeal_submitted_at: Rayuan dihantar
+      appealed_msg: Rayuan anda sudah dikemukakan. Jika diluluskan, anda akan diberitahu.
       appeals:
         submit: Hantar rayuan
       approve_appeal: Luluskan rayuan
       associated_report: Laporan berkaitan
+      created_at: Tarikh
+      description_html: Ini ialah tindakan yang diambil terhadap akaun anda dan amaran telah dihantarkan kepada anda oleh staf %{instance}.
+      recipient: Ditujukan kepada
       reject_appeal: Tolak rayuan
       status: 'Hantaran #%{id}'
+      status_removed: Hantaran sudah dikeluarkan daripada sistem
+      title: "%{action} dari %{date}"
       title_actions:
         delete_statuses: Pemadaman hantaran
+        disable: Pembekuan akaun
+        mark_statuses_as_sensitive: Menandakan hantaran sebagai sensitif
         none: Amaran
+        sensitive: Menandakan akaun sebagai sensitif
+        silence: Keterbatasan akaun
+        suspend: Penggantungan akaun
       your_appeal_approved: Rayuan anda telah diluluskan
       your_appeal_pending: Anda telah menghantar rayuan
+      your_appeal_rejected: Rayuan anda telah ditolak
   errors:
     '400': Permintaan yang anda serahkan tidak sah atau salah bentuk.
     '403': Anda tidak mempunyai kebenaran untuk melihat halaman ini.
@@ -764,6 +929,7 @@ ms:
     profile: Profil
     relationships: Ikutan dan pengikut
     statuses_cleanup: Pemadaman hantaran automatik
+    strikes: Pelanggaran penyederhanaan
     two_factor_authentication: Pengesahan Dua Faktor
     webauthn_authentication: Kunci keselamatan
   statuses:
@@ -801,6 +967,9 @@ ms:
   stream_entries:
     pinned: Hantaran disemat
     sensitive_content: Kandungan sensitif
+  strikes:
+    errors:
+      too_late: Rayuan pelanggaran ini sudah terlalu lambat
   two_factor_authentication:
     add: Tambah
     disable: Nyahdayakan 2FA
@@ -810,8 +979,10 @@ ms:
   user_mailer:
     appeal_approved:
       action: Pergi ke akaun anda
+      explanation: Rayuan pelanggaran yang dikemukakan pada %{appeal_date} terhadap akaun anda pada %{strike_date} telah diluluskan. Akaun anda kini dalam kedudukan yang baik.
       title: Rayuan diluluskan
     appeal_rejected:
+      explanation: Rayuan pelanggaran yang dikemukakan pada %{appeal_date} terhadap akaun anda pada %{strike_date} telah ditolak.
       title: Rayuan ditolak
     suspicious_sign_in:
       title: Daftar masuk baru
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 65f4a27fd..04a4aa696 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -447,7 +447,7 @@ nl:
       language: Voor taal
       status: Status
       suppress: Aanbevolen account niet meer aanbevelen
-      suppressed: Account niet meer aanbevolen
+      suppressed: Niet meer aanbevolen
       title: Aanbevolen accounts
       unsuppress: Account weer aanbevelen
     instances:
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 8c18db2fc..9b13ee12e 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -355,7 +355,7 @@ ru:
         few: "<strong>%{count}</strong> ожидают аппеляции"
         many: "<strong>%{count}</strong> ожидают апелляции"
         one: "<strong>%{count}</strong> ожидает апелляции"
-        other: "<strong>%{count}</strong> ожидают апелляций"
+        other: 'Ожидают апелляции: <strong>%{count}</strong>'
       pending_reports_html:
         few: "<strong>%{count}</strong> ожидающих отчета"
         many: "<strong>%{count}</strong> ожидающих отчетов"
@@ -834,6 +834,7 @@ ru:
         allow_account: Разрешить автора
         disallow: Запретить пост
         disallow_account: Запретить автора
+        not_discoverable: Автор решил не раскрывать себя
         shared_by:
           few: Поделились или добавили в избранное %{friendly_count} раза
           many: Поделились или добавили в избранное %{friendly_count} раз
@@ -849,6 +850,7 @@ ru:
           tag_servers_measure: разные сервера
           tag_uses_measure: всего использований
         listable: Может предлагаться
+        no_tag_selected: Теги небыли изменены, поскольку ни один из них не выбран
         not_listable: Не будет предлагаться
         not_trendable: Не будет появляться в списке «актуального»
         not_usable: Не может использоваться
@@ -1191,6 +1193,11 @@ ru:
     none: Ничего
     order_by: Сортировка
     save_changes: Сохранить изменения
+    select_all_matching_items:
+      few: Выберите %{count} предмета, совпадающих вашему поисковому запросу.
+      many: Выберите %{count} предметов, совпадающих вашему поисковому запросу.
+      one: Выберите %{count} предмет, совпадающий вашему поисковому запросу.
+      other: Выберите все %{count} предмет(-ов), совпадающий(-их) вашему поисковому запросу.
     today: сегодня
     validation_errors:
       few: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
@@ -1611,6 +1618,7 @@ ru:
   user_mailer:
     appeal_approved:
       action: Перейти к своему профилю
+      explanation: Апелляция на разблокировку против вашей учетной записи %{strike_date}, которую вы подали на %{appeal_date}, была одобрена. Ваша учетная запись снова на хорошем счету.
       subject: Ваше обжалование от %{date} была одобрено
       title: Обжалование одобрено
     appeal_rejected:
diff --git a/config/locales/sco.yml b/config/locales/sco.yml
index a07f76ebf..a2b91173e 100644
--- a/config/locales/sco.yml
+++ b/config/locales/sco.yml
@@ -34,7 +34,7 @@ sco:
       add_email_domain_block: Dingie email domain
       approve: Approve
       approved_msg: Successfully approvit %{username}'s sign-up application
-      are_you_sure: Ye sure?
+      are_you_sure: Ye shuir?
       avatar: Avatar
       by_domain: Domain
       change_email:
@@ -826,7 +826,42 @@ sco:
           tag_servers_dimension: Tap servers
           tag_servers_measure: different servers
           tag_uses_measure: total uises
+        description_html: Thir's hashtags thit ur appearin the noo in a load o posts thit yer server sees. It kin help yer uisers fin oot whit fowk ur talkin aboot maist the noo. Nae hashtags ur displayit publicly tae ye approve them.
+        listable: Kin be suggestit
+        no_tag_selected: Nae tags wis chynged as naen wis selectit
+        not_listable: Wullnae be suggestit
+        not_trendable: Wullnae appear unner trends
+        not_usable: Cannae be uised
+        peaked_on_and_decaying: Peaked on %{date}, noo fawin aff
+        title: Trendin hashtags
+        trendable: Kin appear unner trends
+        trending_rank: 'Trendin #%{rank}'
+        usable: Kin be uised
+        usage_comparison: Uised %{today} times the day, compart tae %{yesterday} yisterday
+        used_by_over_week:
+          one: Uised bi ae person ower the last week
+          other: Uised bi %{count} fowk ower the last week
+      title: Trends
+      trending: Trendin
+    warning_presets:
+      add_new: Add new
+      delete: Delete
+      edit_preset: Edit warnin preset
+      empty: Ye huvnae definit onie warnin presets yit.
+      title: Manage warnin presets
     webhooks:
+      add_new: Add enpynt
+      delete: Delete
+      description_html: A <strong>wabhook</strong> lets Mastodon push <strong>rael-time notifications</strong> aboot srlectit events tae yer ain application, sae thit yer application kin <strong>automatically trigger reactions</strong>.
+      disable: Turn aff
+      disabled: Turnt aff
+      edit: Edit enpynt
+      empty: Ye'v nae wabhook enpynts configurt yit.
+      enable: Turn on
+      enabled: Active
+      enabled_events:
+        one: 1 enabilt event
+        other: "%{count} enabilt events"
       events: Events
       new: New webhook
       rotate_secret: Rotate secret
@@ -862,13 +897,766 @@ sco:
         title: Trendin posts
       new_trending_tags:
         no_approved_tags: There nae approved trendin hashtags the noo.
+        requirements: 'Onie o thir candidates cuid surpass the #%{rank} approved trendin hashtag, thit''s #%{lowest_tag_name} the noo, wi a score o %{lowest_tag_score}.'
+        title: Trendin hashtags
+      subject: New trends up fir luikin ower on %{instance}
+  aliases:
+    add_new: Mak alias
+    created_msg: Successfully makkit a new alias. Ye kin noo initiate the flit fae the auld accoont.
+    deleted_msg: Successfully removit the alias. Movin fae that accoont ower tae this ane wull nae langer be possible.
+    empty: Ye hae nae aliases.
+    hint_html: If ye'r wantin fir tae flit fae anither accoont tae this ane, ye kin mak a alias here, this is requirt afore ye kin gae forret flittin follaers fae the auld accoont tae this ane. This action bi an o itsel is <strong>hermless an reversible</strong>. <strong>The accoont migration is initiatie fae the auld accoont</strong>.
+    remove: Unlink alias
+  appearance:
+    advanced_web_interface: Advanced wab interface
+    advanced_web_interface_hint: 'Gin ye''r wantin fir tae mak uise o the ful width o yer screen, the advanced wab interface lets ye configure a wheen o different columns sae''s ye kin see as muckle information at the same time as ye want: Hame, notes, federatit timeline, onie nummer o lists an hashtags.'
+    animations_and_accessibility: Animations an accessibility
+    confirmation_dialogs: Confirmation dialogs
+    discovery: Discovery
+    localization:
+      body: Mastodon is translatit bi volunteers.
+      guide_link: https://crowdin.com/project/mastodon
+      guide_link_text: Awbody kin contribute.
+    sensitive_content: Sensitive content
+    toot_layout: Post leyoot
+  application_mailer:
+    notification_preferences: Chynge email preferences
+    salutation: "%{name},"
+    settings: 'Chynge email preferences: %{link}'
+    view: 'View:'
+    view_profile: View profile
+    view_status: View post
+  applications:
+    created: Application successfully creatit
+    destroyed: Application successfully deletit
+    regenerate_token: Regenerate access token
+    token_regenerated: Access token successfully regeneratit
+    warning: Be gey carefu wi this data. Never share it wi oniebody!
+    your_token: Yer access token
+  auth:
+    apply_for_account: Request a accoont
+    change_password: Passwird
+    delete_account: Delete accoont
+    delete_account_html: If ye'r wantin tae delete yer accoont, ye kin <a href="%{path}">dae it here</a>. Ye'll get asked fir confirmation.
+    description:
+      prefix_invited_by_user: "@%{name} invites ye tae jyne this server o Mastodon!"
+      prefix_sign_up: Sign up on Mastodon the day!
+      suffix: Wi a accoont, ye'll be able tae follae fowk, post updates an exchynge messages wi uisers fae onie Mastodon server an mair!
+    didnt_get_confirmation: Didnae gey yer confirmation instructions?
+    dont_have_your_security_key: Dinnae hae yer security key?
+    forgot_password: Forgot yer passwird?
+    invalid_reset_password_token: Passwird reset token isnae valid or expirit. Please request a new ane.
+    link_to_otp: Pit in a twa-factor code fae yer phone or a recovery code
+    link_to_webauth: Uise yer security key device
+    log_in_with: Log in wi
+    login: Log in
+    logout: Logoot
+    migrate_account: Uise a different accoont
+    migrate_account_html: Gin ye'r wantin fir tae redireck this accoont tae a different ane, ye kin <a href="%{path}">configure it here</a>.
+    or_log_in_with: Or log in wi
+    privacy_policy_agreement_html: A'v read an A agree tae the <a href="%{privacy_policy_path}" target="_blank">privacy policy</a>
+    providers:
+      cas: CAS
+      saml: SAML
+    register: Sign up
+    registration_closed: "%{instance} isnae acceptin onie new memmers"
+    resend_confirmation: Resen confirmation instructions
+    reset_password: Reset yer passwird
+    rules:
+      preamble: Thir's set an enforced bi the %{domain} moderators.
+      title: Some grun rules.
+    security: Security
+    set_new_password: Set new passwird
+    setup:
+      email_below_hint_html: If the email address ablow isnae correct, ye kin chynge it here an get a new confirmation email.
+      email_settings_hint_html: The confirmation email wis sent tae %{email}. If that email address isnae correct, ye kin chynge it in accoont settins.
+      title: Setup
+    sign_up:
+      preamble: Wi a accoont on this Mastodon server, ye'll be able tae follae onie ither person on the netwirk, regairdless o whaur their accoont is hostit.
+      title: Let's get ye set up on %{domain}.
+    status:
+      account_status: Accoont status
+      confirming: Waitin fir email confirmation fir tae be completit.
+      functional: Yer accoont is fully operational.
+      pending: Yer application is pendin review bi oor staff. This'll mibbie tak some time. Ye'll get a email if yer application is approved.
+      redirecting_to: Yer accoont isnae active acause it is redirectin tae %{acct} the noo.
+      view_strikes: Luik at past strikes aginst yer accoont
+    too_fast: Form submittit ower fast, try again.
+    use_security_key: Uise security key
+  authorize_follow:
+    already_following: Ye'r awriddy follaein this accoont
+    already_requested: Ye'v awriddy sent a follae request tae that accoont
+    error: Unfortunately, there wis a error luikin up the remote accoont
+    follow: Follae
+    follow_request: 'Ye hae sent a follae request tae:'
+    following: 'Success! Ye''r noo follaein:'
+    post_follow:
+      close: Or, ye kin juist shut this windae.
+      return: Shaw the uiser's profile
+      web: Gang tae the wab
+    title: Follae %{acct}
+  challenge:
+    confirm: Continue
+    hint_html: "<strong>wee tip:</strong> We wullnae ask ye fir yer passwird again fir the neist oor."
+    invalid_password: Passwird isnae valid
+    prompt: Confirm yer passwird fir tae continue
+  crypto:
+    errors:
+      invalid_key: isnae a valid Ed25519 or Curve25519 key
+      invalid_signature: isnae a valid Ed25519 signature
+  date:
+    formats:
+      default: "%b %d, %Y"
+      with_month_name: "%B %d, %Y"
+  datetime:
+    distance_in_words:
+      about_x_hours: "%{count}o"
+      about_x_months: "%{count}mo"
+      about_x_years: "%{count}y"
+      almost_x_years: "%{count}y"
+      half_a_minute: The noo
+      less_than_x_minutes: "%{count}m"
+      less_than_x_seconds: The noo
+      over_x_years: "%{count}y"
+      x_days: "%{count}d"
+      x_minutes: "%{count}m"
+      x_months: "%{count}mo"
+      x_seconds: "%{count}s"
+  deletes:
+    challenge_not_passed: The information ye pit in wisnae correct
+    confirm_password: Pit in yer current passwird fir tae verify yer identity
+    confirm_username: Pit in yer uisernemm fir tae confirm the procedure
+    proceed: Delete accoont
+    success_msg: Yer accoont wis successfully deletit
+    warning:
+      before: 'Afore proceedin, please read thir notes careful:'
+      caches: Content thit haes been cached bi ither servers eull mibbie persist
+      data_removal: Yer posts an ither data wull get permanently removed
+      email_change_html: Ye kin <a href="%{path}">chynge yer email address</a> athoot deletin yer accoont
+      email_contact_html: Gin it stull disnae arrive, ye kin email <a href="mailto:%{email}">%{email}</a> fir help
+      email_reconfirmation_html: Gin ye urnae gettin the confirmation email, ye kin <a href="%{path}">request it again</a>
+      irreversible: Ye wullnae be able tae restore or reactivate yer accoont
+      more_details_html: Fir mair details, see the <a href="%{terms_path}">privacy policy</a>.
+      username_available: Yer uisernemm wull become available again
+      username_unavailable: Yer uisername wull remain no available
+  disputes:
+    strikes:
+      action_taken: Action taen
+      appeal: Appeal
+      appeal_approved: This strike haes been successfully appealt an is nae langer valid
+      appeal_rejected: The appeal haes been rejectit
+      appeal_submitted_at: Appeal submittit
+      appealed_msg: Yer appeal haes been submittit. If it is approved, ye'll be notified.
+      appeals:
+        submit: Submit appeal
+      approve_appeal: Approve appeal
+      associated_report: Associatit clype
+      created_at: Datit
+      description_html: Thir's actions taen aginst yer accoont an warnins thit hae been sent tae ye bi the staff o %{instance}.
+      recipient: Addressed tae
+      reject_appeal: Rejeck appeal
+      status: 'Post #%{id}'
+      status_removed: Post awriddy taen aff the system
+      title: "%{action} fae %{date}"
+      title_actions:
+        delete_statuses: Post removal
+        disable: Freezin a accoont
+        mark_statuses_as_sensitive: Mairkin o posts as sensitive
+        none: Warnin
+        sensitive: Mairkin o accoont as sensitive
+        silence: Limitation o accoont
+        suspend: Suspension o accoont
+      your_appeal_approved: Yer appeal haes been approved
+      your_appeal_pending: Ye hae submittit a appeal
+      your_appeal_rejected: Yer appeal haes been rejectit
+  domain_validator:
+    invalid_domain: isnae a valid domain nemm
   errors:
-    '400': The request you submitted was invalid or malformed.
-    '403': You don't have permission to view this page.
-    '404': The page you are looking for isn't here.
-    '406': This page is not available in the requested format.
-    '410': The page you were looking for doesn't exist here anymore.
-    '422': 
-    '429': Too many requests
-    '500': 
-    '503': The page could not be served due to a temporary server failure.
+    '400': The request thit ye submittit wisnae valid or it wis illformt.
+    '403': Ye dinnae hae permission fir tae luik at this page.
+    '404': The page thit ye'r luikin fir isnae here.
+    '406': This page isnae available in the requestit format.
+    '410': The page thit ye wur luikin fir disnae exist here oniemair.
+    '422':
+      content: Security verification failt. Ur ye dingiein cookies?
+      title: Security verification failt
+    '429': Ower monie requests
+    '500':
+      content: We're sorry, but somethin went wrang on oor en.
+      title: This page isnae correct
+    '503': The page cuidnae be served doon tae a temporary server failure.
+    noscript_html: Fir tae uise the Mastodon wab application, please turn on JavaScript. Alternatively, try ane o the <a href="%{apps_path}">native apps</a> fir Mastodon fir yer platform.
+  existing_username_validator:
+    not_found: cuidnae fin a local uiser wi that uisernemm
+    not_found_multiple: cuidnae fin %{usernames}
+  exports:
+    archive_takeout:
+      date: Date
+      download: Doonload yer archive
+      hint_html: Ye kin get a archive o yer <strong>posts an uploadit media</strong>. The exportit data wull be in the ActivityPub format, readable bi onie compliant saftware. Ye kin get a archive ilka 7 days.
+      in_progress: Compilin yer archive...
+      request: Get yer archive
+      size: Size
+    blocks: Ye dingie
+    bookmarks: Buikmairks
+    csv: CSV
+    domain_blocks: Domain dingies
+    lists: Lists
+    mutes: Ye wheesht
+    storage: Media storage
+  featured_tags:
+    add_new: Add new
+    errors:
+      limit: Ye'v awriddy featurt the maximum amoont o hashtags
+    hint_html: "<strong>Whit's featurt hashtags?</strong> They get pit prominently on yer public profile an alloo fowk fir tae broose yer public posts specifically unner thae hashtags. They'r a braw tuil fir keepin track o creative warks or lang-term projects."
+  filters:
+    contexts:
+      account: Profiles
+      home: Hame an lists
+      notifications: Notes
+      public: Public timelines
+      thread: Conversations
+    edit:
+      add_keyword: Add keywird
+      keywords: Keywirds
+      statuses: Individual posts
+      statuses_hint_html: This filter applies tae select individual posts regairdless o whither or no they match the keywirds ablow. <a href="%{path}">Review or remove posts fae the filter</a>.
+      title: Edit filter
+    errors:
+      deprecated_api_multiple_keywords: Thir parameters cannae be chynged fae this application acause they apply tae mair nor ane filter keywird. Uise a mair recent application or the wab interface.
+      invalid_context: Nae or invalid context supplied
+    index:
+      contexts: Filters in %{contexts}
+      delete: Delete
+      empty: Ye'v nae filters.
+      expires_in: Expires in %{distance}
+      expires_on: Expires on %{date}
+      keywords:
+        one: "%{count} keywird"
+        other: "%{count} keywirds"
+      statuses:
+        one: "%{count} post"
+        other: "%{count} posts"
+      statuses_long:
+        one: "%{count} individual post hid"
+        other: "%{count} individual posts hid"
+      title: Filters
+    new:
+      save: Save new filter
+      title: Add new filter
+    statuses:
+      back_to_filter: Back tae filter
+      batch:
+        remove: Remove fae filter
+      index:
+        hint: This filter applies tae select individual posts regairdless o ither criteria. Ye kin add mair posts tae this filter fae the wab interface.
+        title: Filtert posts
+  footer:
+    trending_now: Trendin the noo
+  generic:
+    all: Aw
+    all_items_on_page_selected_html:
+      one: "<strong>%{count}</strong> item on this page is selectit."
+      other: Aw <strong>%{count}</strong> items on this page ur selectit.
+    all_matching_items_selected_html:
+      one: "<strong>%{count}</strong> item matchin yer seirch is selectit."
+      other: Aw <strong>%{count}</strong> items matchin yer seirch is selectit.
+    changes_saved_msg: Chynges successfully saved!
+    copy: Copy
+    delete: Delete
+    deselect: Deselect aw
+    none: Naen
+    order_by: Order bi
+    save_changes: Save chynges
+    select_all_matching_items:
+      one: Pick %{count} item matchin yer seirch.
+      other: Pick aw %{count} items matchin yer seirch.
+    today: the day
+    validation_errors:
+      one: Somethin isnae quite richt yit! Please luik ower the error ablow
+      other: Somethin isnae quite richt yit! Please review %{count} errors ablow
+  html_validator:
+    invalid_markup: 'contains invalid HTML mairkup: %{error}'
+  imports:
+    errors:
+      invalid_csv_file: 'Invalid CSV file. Error: %{error}'
+      over_rows_processing_limit: contains mair nor %{count} rows
+    modes:
+      merge: Merge
+      merge_long: Keep existin records an add new anes
+      overwrite: Owerwrite
+      overwrite_long: Replace current records wi the new anes
+    preface: Ye kin import data thit ye'v exportit fae anither server, sic as a list o the fowk thit ye'r follaein or thaim thit ye'v dingied.
+    success: Yer data wis successfully uploadit an wull get processed in guid time
+    types:
+      blocking: Dingied list
+      bookmarks: Buikmairks
+      domain_blocking: Domain dingied list
+      following: Follaein list
+      muting: Wheesht list
+    upload: Upload
+  invites:
+    delete: Deactivate
+    expired: Expirt
+    expires_in:
+      '1800': 30 minties
+      '21600': 6 oors
+      '3600': 1 oor
+      '43200': 12 oors
+      '604800': 1 week
+      '86400': 1 day
+    expires_in_prompt: Niver
+    generate: Generate invite link
+    invited_by: 'Ye got invitit bi:'
+    max_uses:
+      one: 1 uise
+      other: "%{count} uises"
+    max_uses_prompt: Nae limit
+    prompt: Generate an share links wi ithers fir tae gie access tae this server
+    table:
+      expires_at: Expires
+      uses: Uises
+    title: Invite fowk
+  lists:
+    errors:
+      limit: Ye'v hit the maximum amoont o lists
+  login_activities:
+    authentication_methods:
+      otp: twa-factor authentication app
+      password: passwird
+      sign_in_token: email security code
+      webauthn: security keys
+    description_html: If ye see activity on yer accoont thit ye dinnae recognize, consider chyngin yer passwird an turnin on twa-factor authentication.
+    empty: Nae authentication history available
+    failed_sign_in_html: Failt sign-in attempt wi %{method} fae %{ip} (%{browser})
+    successful_sign_in_html: Successfu sign-in wi %{method} fae %{ip} (%{browser})
+    title: Authentication history
+  media_attachments:
+    validations:
+      images_and_video: Cannae attach a video tae a post thit awriddy contains images
+      not_ready: Cannae attach files thit huvnae finisht processin. Try again in a wee minute!
+      too_many: Cannae attach mair nor 4 files
+  migrations:
+    acct: Flitit tae
+    cancel: Cancel redirect
+    cancel_explanation: Cancellin the redirect wull re-activate yer current accoont, but wullnae bring back follaers thit hae been flitit tae that accoont.
+    cancelled_msg: Successfully cancelt the redirect.
+    errors:
+      already_moved: is the same accoont thit ye'v awriddy flittit tae
+      missing_also_known_as: isnae a alias o this accoont
+      move_to_self: cannae be current accoont
+      not_found: cuidnae be fun
+      on_cooldown: Ye'r on cooldoon
+    followers_count: Follaers at time o flit
+    incoming_migrations: Flittin fae a different accoont
+    incoming_migrations_html: Tae flit fae anither accoont tae this ane, first ye need tae <a href="%{path}">mak a accoont alias</a>.
+    moved_msg: Yer accoont is noo redirectin tae %{acct} an yer follaers ur gettin flittit ower.
+    not_redirecting: Yer accoont isnae redirectin tae onie ither accoont the noo.
+    on_cooldown: Ye'v flittit yer accoont o late. This function wull become available again in %{count} days.
+    past_migrations: Past flittins
+    proceed_with_move: Flit follaers
+    redirected_msg: Yer accoont is noo redirectin tae %{acct}.
+    redirecting_to: Yer accoont is redirectin tae %{acct}.
+    set_redirect: Set redirect
+    warning:
+      backreference_required: The new accoont haes tae be configurt furst fir tae back-reference this ane
+      before: 'Afore proceedin, please read thir notes carefully:'
+      cooldown: Efter flittin there a waitin period durin which ye will cannae flit again
+      disabled_account: Yer current accoont wullnae be fully uisable efterwart. Hou an iver, ye wull hae access tae data export as weil as re-activation.
+      followers: This action wull flit aw follaers fae the current accoont tae the new accoont
+      only_redirect_html: Alternatively, ye kin <a href="%{path}">ainly pit up a redirect on yer profile</a>.
+      other_data: Nae ither data wull get flittit automatically
+      redirect: Yer current accoont's profile wull get updatit wi a redirect note an be excludit fae seirches
+  moderation:
+    title: Moderation
+  move_handler:
+    carry_blocks_over_text: This uiser flittit fae %{acct}, thit ye'v dingied.
+    carry_mutes_over_text: This uiser flittit fae %{acct}, thit ye'v wheesht.
+    copy_account_note_text: 'This uiser flittit fae %{acct}, here yer previous notes aboot them:'
+  navigation:
+    toggle_menu: Toggle menu
+  notification_mailer:
+    admin:
+      report:
+        subject: "%{name} submittit a clype"
+      sign_up:
+        subject: "%{name} signt up"
+    favourite:
+      body: 'Yer post wis favouritit bi %{name}:'
+      subject: "%{name} favouritit yer post"
+      title: New favourite
+    follow:
+      body: "%{name} is noo follaein ye!"
+      subject: "%{name} is noo follaein ye"
+      title: New follaer
+    follow_request:
+      action: Manage follae requests
+      body: "%{name} haes requestit tae follae ye"
+      subject: 'Pendin follaer: %{name}'
+      title: New follae request
+    mention:
+      action: Reply
+      body: 'Ye wur menshied bi %{name} in:'
+      subject: Ye got mentioned bi %{name}
+      title: New menshie
+    poll:
+      subject: A poll bi %{name} haes endit
+    reblog:
+      body: 'Yer post wis heezed bi %{name}:'
+      subject: "%{name} heezed yer post"
+      title: New heeze
+    status:
+      subject: "%{name} juist postit"
+    update:
+      subject: "%{name} editit a post"
+  notifications:
+    email_events: Events fir email notes
+    email_events_hint: 'Pick events thit ye''r wantin tae get notes fir:'
+    other_settings: Ither notes settins
+  number:
+    human:
+      decimal_units:
+        format: "%n%u"
+        units:
+          billion: B
+          million: M
+          quadrillion: Q
+          thousand: K
+          trillion: T
+  otp_authentication:
+    code_hint: Pit in the code generatit bi yer authenticator app fir tae confirm
+    description_html: If ye turn on <strong>twa-factor authentication</strong> uisin a authenticator app, loggin in wull require ye fir tae be in possession o yer phone, thit wull generate tokens fir ye tae pit in.
+    enable: Turn on
+    instructions_html: "<strong>Scan this QR code intae Google Authenticator or a similar TOTP app on yer phone</strong>. Fae noo on, that app will generate tokens thit ye wull hae tae pit in whan ye'r loggin in."
+    manual_instructions: 'If ye cannae scan in the QR code an need tae pit it in bi haun, here the plain-text secret:'
+    setup: Set up
+    wrong_code: The enterit code wisnae valid! Is yer server time an device time richt?
+  pagination:
+    newer: Newer
+    next: Neist
+    older: Aulder
+    prev: Prev
+    truncate: "&hellip;"
+  polls:
+    errors:
+      already_voted: Ye'v votit in this poll awriddy
+      duplicate_options: hae duplicate items
+      duration_too_long: is ower faur intae the future
+      duration_too_short: is ower suin
+      expired: The poll haes endit awriddy
+      invalid_choice: The vote option ye picked disnae exist
+      over_character_limit: cannae be langer nor %{max} chairacters each
+      too_few_options: shuid hae mait nor ae item
+      too_many_options: cannae contain mair than %{max} items
+  preferences:
+    other: Ither
+    posting_defaults: Postin defauts
+    public_timelines: Public timelines
+  privacy_policy:
+    title: Privacy Policy
+  reactions:
+    errors:
+      limit_reached: Limit o different reactions reached
+      unrecognized_emoji: isnae a recognized emoji
+  relationships:
+    activity: Accoont activity
+    dormant: Dormant
+    follow_selected_followers: Follae selectit follaers
+    followers: Follaers
+    following: Follaein
+    invited: Invitit
+    last_active: Last active
+    most_recent: Maist recent
+    moved: Flittit
+    mutual: Mutual
+    primary: Primary
+    relationship: Relationship
+    remove_selected_domains: Tak doon aw follaers fae the selectit domains
+    remove_selected_followers: Remove selectit follaers
+    remove_selected_follows: Unfollae selectit uisers
+    status: Accoont status
+  remote_follow:
+    missing_resource: Cuidnae fin the requirt redirect URL fir yer accoont
+  reports:
+    errors:
+      invalid_rules: disnae reference valid rules
+  rss:
+    content_warning: 'Content warnin:'
+    descriptions:
+      account: Public posts fae @%{acct}
+      tag: 'Public posts tagged #%{hashtag}'
+  scheduled_statuses:
+    over_daily_limit: Ye'v went by the limit o %{limit} scheduled posts thit ye'r allooed fir the day
+    over_total_limit: Ye'v went by the limit o %{limit} scheduled posts
+    too_soon: The schedult date haes tae be in the future
+  sessions:
+    activity: Last activity
+    browser: Brooser
+    browsers:
+      alipay: Alipay
+      blackberry: BlackBerry
+      chrome: Chrome
+      edge: Microsoft Edge
+      electron: Electron
+      firefox: Firefox
+      generic: Unkent brooser
+      ie: Internet Explorer
+      micro_messenger: MicroMessenger
+      nokia: Nokia S40 Ovi Browser
+      opera: Opera
+      otter: Otter
+      phantom_js: PhantomJS
+      qq: QQ Browser
+      safari: Safari
+      uc_browser: UC Browser
+      weibo: Weibo
+    current_session: Current session
+    description: "%{browser} on %{platform}"
+    explanation: Thir's the wab broosers logged in tae yer Mastodon accoont the noo.
+    ip: IP
+    platforms:
+      adobe_air: Adobe Air
+      android: Android
+      blackberry: BlackBerry
+      chrome_os: ChromeOS
+      firefox_os: Firefox OS
+      ios: iOS
+      linux: Linux
+      mac: macOS
+      other: unkent platform
+      windows: Windows
+      windows_mobile: Windows Mobile
+      windows_phone: Windows Phone
+    revoke: Revoke
+    revoke_success: Session successfully revokt
+    title: Sessions
+    view_authentication_history: Luik at authentication history o yer accoont
+  settings:
+    account: Accoont
+    account_settings: Accoont settins
+    aliases: Accoont aliases
+    appearance: Appearance
+    authorized_apps: Authorized apps
+    back: Back tae Mastodon
+    delete: Accoont deletion
+    development: Development
+    edit_profile: Edit profile
+    export: Data export
+    featured_tags: Featured hashtags
+    import: Import
+    import_and_export: Import an export
+    migrate: Accoont flittin
+    notifications: Notes
+    preferences: Preferences
+    profile: Profile
+    relationships: Follaes and follaers
+    statuses_cleanup: Automatit post deletion
+    strikes: Moderation strikes
+    two_factor_authentication: Twa-factor Auth
+    webauthn_authentication: Security keys
+  statuses:
+    attached:
+      audio:
+        one: "%{count} audio"
+        other: "%{count} audio"
+      description: 'Attached: %{attached}'
+      image:
+        one: "%{count} image"
+        other: "%{count} images"
+      video:
+        one: "%{count} video"
+        other: "%{count} videos"
+    boosted_from_html: Heezed fae %{acct_link}
+    content_warning: 'Content warnin: %{warning}'
+    default_language: Same as interface leid
+    disallowed_hashtags:
+      one: 'containt a disallooed hashtag: %{tags}'
+      other: 'containt the disallooed hashtags: %{tags}'
+    edited_at_html: Editit %{date}
+    errors:
+      in_reply_not_found: The post thit ye'r trying tae reply tae disnae appear tae exist.
+    open_in_web: Open in wab
+    over_character_limit: chairacter limit o %{max} exceedit
+    pin_errors:
+      direct: Posts thit's ainly visible tae menshied uisers cannae be preent
+      limit: Ye awriddy preent the maximum nummer o posts
+      ownership: Somebody else's post cannae be preent
+      reblog: A heeze cannae be preent
+    poll:
+      total_people:
+        one: "%{count} person"
+        other: "%{count} fowk"
+      total_votes:
+        one: "%{count} vote"
+        other: "%{count} votes"
+      vote: Vote
+    show_more: Shaw mair
+    show_newer: Shaw newer
+    show_older: Shaw aulder
+    show_thread: Shaw threid
+    sign_in_to_participate: Sign in fir tae tak pairt in the conversation
+    title: '%{name}: "%{quote}"'
+    visibilities:
+      direct: Direck
+      private: Follaers-ainly
+      private_long: Ainly shaw tae follaers
+      public: Public
+      public_long: Awbody kin see
+      unlisted: No listit
+      unlisted_long: Awbody kin see, but no listit on public timelines
+  statuses_cleanup:
+    enabled: Automatically delete auld posts
+    enabled_hint: Automatically deletes yer posts ance they reach a specified age threshold, unless they match ane o the exceptions ablow
+    exceptions: Exceptions
+    explanation: Acause deletin posts is an expensive operation, this is duin slow ower time whan the server isnae itherwise busy. Fir this raison, yer posts wull mibbie be deletit a wee while efter they reach the age threshaud.
+    ignore_favs: Ignore favourites
+    ignore_reblogs: Ignore heezes
+    interaction_exceptions: Exceptions based on interactions
+    interaction_exceptions_explanation: Note thit there nae guarantee fir posts tae get deletit if they gae ablow the favourite or heeze threshaud efter haein ance went ower them.
+    keep_direct: Keep direck messages
+    keep_direct_hint: Disnae delete onie o yer direck messages
+    keep_media: Keep posts wi media attachments
+    keep_media_hint: Disnae delete onie o yer posts thit hae media attachments
+    keep_pinned: Keep preent posts
+    keep_pinned_hint: Disnae delete onie o yer preent posts
+    keep_polls: Keep polls
+    keep_polls_hint: Disnae delete onie o yer polls
+    keep_self_bookmark: Keep posts thit ye buikmairkt
+    keep_self_bookmark_hint: Disnae delete yer ain posts if ye'v buikmairkt them
+    keep_self_fav: Keep posts thit ye favouritit
+    keep_self_fav_hint: Disnae delete yer ain posts if ye'v favouritit them
+    min_age:
+      '1209600': 2 weeks
+      '15778476': 6 month
+      '2629746': 1 month
+      '31556952': 1 year
+      '5259492': 2 month
+      '604800': 1 week
+      '63113904': 2 year
+      '7889238': 3 month
+    min_age_label: Age threshaud
+    min_favs: Keep posts favouritit at least
+    min_favs_hint: Disnae delete onie o yer posts thit's got at least this amoont o favourites. Lea blank fir tae delete posts regairdless o their nummer o favourites
+    min_reblogs: Keep posts heezed at least
+    min_reblogs_hint: Disnae delete onie o yer posts thit's been heezed at least this nummer o times. Lea blank fir tae delete posts regairdless o their number o heezes
+  stream_entries:
+    pinned: Preent post
+    reblogged: heezed
+    sensitive_content: Sensitive content
+  strikes:
+    errors:
+      too_late: It is ower late fir tae appeal this strike
+  tags:
+    does_not_match_previous_name: disnae match the previous nemm
+  themes:
+    contrast: Mastodon (Heich contrast)
+    default: Mastodon (Daurk)
+    mastodon-light: Mastodon (Licht)
+  time:
+    formats:
+      default: "%b %d, %Y, %H:%M"
+      month: "%b %Y"
+      time: "%H:%M"
+  two_factor_authentication:
+    add: Add
+    disable: Turn aff 2FA
+    disabled_success: Twa-factor authentication successfully turnt aff
+    edit: Edit
+    enabled: Twa-factor authentication is turnt on
+    enabled_success: Twa-factor authentication successfully turnt on
+    generate_recovery_codes: Generate recovery codes
+    lost_recovery_codes: Recovery codes alloo ye tae regain access tae yer accoont if ye loss yer phone. If ye'v lost yer recovery codes, ye kin regenerate them here. Yer auld recovery codes will get invalidatit.
+    methods: Twa-factor methods
+    otp: Authenticator app
+    recovery_codes: Backup recovery codes
+    recovery_codes_regenerated: Recovery codes successfully regeneratit
+    recovery_instructions_html: Gin ye e'er loss access tae yer phone, ye kin uise ane o the recovery codes ablow fir tae regain access tae yer accoont. <strong>Keep the recovery codes safe</strong>. Fir example, ye cuid print them an store them wi yer ither important documents.
+    webauthn: Security keys
+  user_mailer:
+    appeal_approved:
+      action: Gang tae yer accoont
+      explanation: The appeal o the strike agin yer accoont on %{strike_date} thit ye submittit on %{appeal_date} haes been approved. Yer accoont is ance again in guid staunnin.
+      subject: Yer appeal fae %{date} haes been approved
+      title: Appeal approved
+    appeal_rejected:
+      explanation: The appeal o the strike agin yer accoont on %{strike_date} thit ye submittit on %{appeal_date} haes been rejectit.
+      subject: Yer appeal fae %{date} haes been rejectit
+      title: Appeal rejectit
+    backup_ready:
+      explanation: Ye wantit a ful backup o yer Mastodon accoont. It's riddy fir tae doonload noo!
+      subject: Yer archive is riddy fir doonload
+      title: Archive takoot
+    suspicious_sign_in:
+      change_password: chynge yer passwird
+      details: 'Here details o the sign-in:'
+      explanation: We've detectit a sign-in tae yer accoont fae a new IP address.
+      further_actions_html: If this wisnae you, we recommend thit ye %{action} immediately an turn on twa-factor authentication fir tae keep yer accoont secure.
+      subject: Yer accoont haes been accessed fae a new IP address
+      title: A new sign-in
+    warning:
+      appeal: Submit a appeal
+      appeal_description: Gin ye believe this is a error, ye kin submit a appeal tae the staff o %{instance}.
+      categories:
+        spam: Mince
+        violation: Content violates the follaein community guidelines
+      explanation:
+        delete_statuses: Some o yer posts hae been fun tae violate ane or mair community guidelines an hae been subsequently taen doon bi the moderators o %{instance}.
+        disable: Ye kin nae langer uise yer accoont, but yer profile an ither data is stull intack. Ye kin request a backup o yer data, chynge accoont settins or delete yer accoont.
+        mark_statuses_as_sensitive: Some o yer posts hae been mairkt as sensitive bi the moderators o %{instance}. This means thit fowk wull need tae tap the media in the posts afore a preview is displayy. Ye kin mairk media as sensitive yersel whan postin in the future.
+        sensitive: Fae noo on, aw yer uploadit media files will get mairkt as sensitive an hid ahin a click-throu warnin.
+        silence: Ye kin stull uise yer accoont but ainly fowk thit's awriddy follaein ye wull see yer posts on this server, an ye'll mibbie get excludit fae various discovery features. Hou an iver, ithers kin still follae ye bi haun.
+        suspend: Ye kin nae langer uise yer accoont, an yer profile an ither data urnae accessible onie mair. Ye kin stull login fir tae request a backup o yer data tae the data is fully taen doon in aboot 30 days, but we wull retain some basic data fir tae prevent ye fae evadin the suspension.
+      reason: 'Raison:'
+      statuses: 'Posts citit:'
+      subject:
+        delete_statuses: Yer posts on %{acct} hae been removed
+        disable: Yer accoont %{acct} haes been froze
+        mark_statuses_as_sensitive: Yer posts on %{acct} hae been mairkt as sensitive
+        none: Warnin fir %{acct}
+        sensitive: Yer posts on %{acct} wull be mairkt as sensitive fae noo on
+        silence: Yer accoont %{acct} haes been limitit
+        suspend: Yer accoont %{acct} haes been suspendit
+      title:
+        delete_statuses: Posts taen doon
+        disable: Accoont froze
+        mark_statuses_as_sensitive: Posts mairkt sensitive
+        none: Warnin
+        sensitive: Accoont mairkt as sensitive
+        silence: Accoont limitit
+        suspend: Accoont suspendit
+    welcome:
+      edit_profile_action: Setup profile
+      edit_profile_step: Ye kin customize yer profile bi uploadin a profile picture, chyngin yer display nemm an mair. Ye kin opt-in fir tae luik ower new follaers afore they’re allooed tae follae ye.
+      explanation: Here some tips fir tae get ye stertit
+      final_action: Stert postin
+      final_step: 'Stert postin! Even athout follaers, yer public posts kin stull be seen bi ithers, fir example on the local timeline or in hashtags. Ye mibbie want tae introduce yersel on the #introductions hashtag.'
+      full_handle: Yer ful haunnle
+      full_handle_hint: This is whit ye wad tell yer pals sae thit they kin message or follae ye fae anither server.
+      subject: Welcome tae Mastodon, 'mon in
+      title: Welcome aboord, %{name}!
+  users:
+    follow_limit_reached: Ye cannae follae mair than %{limit} fowk
+    invalid_otp_token: Invalid twa-factor code
+    otp_lost_help_html: If ye lost access tae baith, ye kin get in touch wi %{email}
+    seamless_external_login: Ye'r logged in via a external service, sae passwird an email settins urnae available.
+    signed_in_as: 'Signt in as:'
+  verification:
+    explanation_html: 'Ye kin <strong>verify yersel as the ainer o the links in yer profile metadata</strong>. Fir that, the linkt wabsteid haes tae contain a link back tae yer Mastodon profile. The link back <strong>haes tae</strong> hae a <code>rel="me"</code> attribute. The text content o the link disnae maitter. Here a example:'
+    verification: Verification
+  webauthn_credentials:
+    add: Add new security key
+    create:
+      error: There wis a problem addin yer security key. Please try again.
+      success: Yer security key wis successfully addit.
+    delete: Delete
+    delete_confirmation: Ye sure thit ye want tae delete this security key?
+    description_html: Gin ye turn on <strong>security key authentication</strong>, loggin in wull require ye tae uise ane o yer security keys.
+    destroy:
+      error: There wis a problem wi deletin yer security key. Please try again.
+      success: Yer security key wis successfully deletit.
+    invalid_credential: Invalid security key
+    nickname_hint: Pit in the nickname o yer new security key
+    not_enabled: Ye huvnae turnt on WebAuthn yit
+    not_supported: This brooser disnae support security keys
+    otp_required: Fir tae uise security keys please turn on twa-factor authentication furst.
+    registered_on: Registert on %{date}
diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml
index 36cb630da..6a0dc22c4 100644
--- a/config/locales/simple_form.ast.yml
+++ b/config/locales/simple_form.ast.yml
@@ -11,12 +11,12 @@ ast:
         text: Pues usar la sintaxis de los artículos. Ten en cuenta l'espaciu que l'anunciu va ocupar na pantalla del usuariu/a
       defaults:
         autofollow: Les persones que se rexistren pente la invitación van siguite automáticamente
-        avatar: Ficheros PNG, GIF o JPG de %{size} como muncho. Les semeya va redimensionase a %{dimensions} px
+        avatar: Ficheros PNG, GIF o JPG de %{size} como muncho. La semeya va redimensionase a %{dimensions} px
         bot: Avisa a otres persones de qu'esta cuenta fai principalmente aiciones automatizaes ya de que ye posible que nun tean supervisaes
         digest: Namás s'unvia dempués d'un periodu llongu d'inactividá ya namás si recibiesti dalgún mensaxe personal demientres la to ausencia
         discoverable: Permite que persones desconocíes descubran la to cuenta pente recomendaciones, tendencies ya otres funciones
         fields: Pues tener hasta 4 elementos qu'apaecen nuna tabla dientro del to perfil
-        header: Ficheros PNG, GIF o JPG de %{size} como muncho. Les semeya va redimensionase a %{dimensions} px
+        header: Ficheros PNG, GIF o JPG de %{size} como muncho. La semeya va redimensionase a %{dimensions} px
         irreversible: Los artículos peñeraos desapaecen de forma irreversible, magar que la peñera se quite dempués
         locale: La llingua de la interfaz, los mensaxes per corréu electrónicu ya los avisos push
         locked: Controla manualmente quién pue siguite pente l'aprobación de les solicitúes de siguimientu
@@ -59,8 +59,10 @@ ast:
         include_statuses: Incluyir nel mensaxe los artículos de los que s'informó
         send_email_notification: Avisar al perfil per corréu electrónicu
         type: Aición
+        types:
+          suspend: Suspender
       announcement:
-        all_day: Eventu del tol día
+        all_day: Eventu de tol día
         ends_at: Fin del eventu
         scheduled_at: Anunciu programáu
         starts_at: Comienzu del eventu
@@ -96,7 +98,6 @@ ast:
         setting_default_privacy: Privacidá de los artículos
         setting_delete_modal: Amosar el diálogu de confirmación enantes de desaniciar un artículu
         setting_display_media: Conteníu multimedia
-        setting_noindex: Nun apaecer nos índices de los motores de gueta
         setting_reduce_motion: Amenorgar el movimientu de les animaciones
         setting_show_application: Dicir les aplicaciones que s'usen pa unviar artículos
         setting_system_font_ui: Usar la fonte predeterminada del sistema
@@ -155,5 +156,4 @@ ast:
     'no': Non
     required:
       mark: "*"
-      text: ríquese
     'yes': Sí
diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml
index 689fe13c0..73b27b1dc 100644
--- a/config/locales/simple_form.be.yml
+++ b/config/locales/simple_form.be.yml
@@ -12,6 +12,7 @@ be:
       admin_account_action:
         include_statuses: Карыстальнік пабачыць, якія допісы ёсць прычынай мадэрацыі ці папярэджання
         send_email_notification: Карыстальнік атрымае тлумачэнне аб тым, што здарылася з яго ўліковым запісам
+        text_html: Неабавязкова. Вы можаце выкарыстоўваць сінтаксіс допісаў. <a href="%{path}">Дадайце шаблоны папярэджанняў</a>, якія будуць эканоміць час
         type_html: Выберы што рабіць з <strong>%{acct}</strong>
         types:
           disable: Перадухіліць выкарыстанне акаунтаў, але не выдаляць і не хаваць іх змесціва.
@@ -66,8 +67,10 @@ be:
           name: Пазнака
           value: Змесціва
       account_warning_preset:
+        text: Тэкст шаблону
         title: Загаловак
       admin_account_action:
+        include_statuses: Дадаць допісы, на якія вы скардзіцеся, у электронны ліст
         send_email_notification: Паведаміць карыстальніку па электроннай пошце
         text: Карыстальніцкае папярэджанне
         type: Дзеянне
@@ -95,7 +98,7 @@ be:
         context: Фільтр кантэкстаў
         current_password: Бягучы пароль
         data: Даныя
-        discoverable: Парэкамендаваць акаўнт іншым
+        discoverable: Рэкамендаваць уліковы запіс іншым карыстальнікам
         display_name: Адлюстраванае імя
         email: Адрас электроннай пошты
         expires_in: Заканчваецца пасля
@@ -104,7 +107,7 @@ be:
         honeypot: "%{label} (не запаўняць)"
         irreversible: Выдаляць, а не хаваць
         locale: Мова інтэрфейсу
-        locked: Патрабуе запыт на падпіску
+        locked: Зрабіць уліковы запіс закрытым
         max_uses: Максімальная колькасць выкарыстанняў
         new_password: Новы пароль
         note: Пра сябе
@@ -125,6 +128,8 @@ be:
         setting_display_media_default: Перадвызначана
         setting_display_media_hide_all: Схаваць усё
         setting_display_media_show_all: Паказаць усё
+        setting_expand_spoilers: Заўжды разгортваць допісы з папярэджаннем аб змесціве
+        setting_hide_network: Схаваць вашы сувязі
         setting_reduce_motion: Памяншэнне руху ў анімацыях
         setting_system_font_ui: Выкарыстоўваць прадвызначаны сістэмны шрыфт
         setting_theme: Тэма сайта
@@ -154,6 +159,7 @@ be:
         show_domain_blocks: Паказаць заблакіраваныя дамены
         show_domain_blocks_rationale: Паказваць прычыну блакавання даменаў
         site_contact_email: Электронная пошта для сувязі
+        site_contact_username: Назва рахунку суразмоўцы
         site_extended_description: Падрабязнае апісанне
         site_short_description: Апісанне сервера
         site_terms: Палітыка канфідэнцыйнасці
diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml
index ab9613606..5a4642c82 100644
--- a/config/locales/simple_form.bg.yml
+++ b/config/locales/simple_form.bg.yml
@@ -22,23 +22,35 @@ bg:
         starts_at: По избор. В случай, че обявлението е ограничено до определен времеви диапазон
         text: Можете да използвате синтаксиса на обикновени публикации. Не забравяйте, че обявлението ще заеме известно място от екрана на потребителя
       defaults:
+        autofollow: Хората, които се регистрират чрез поканата, автоматично ще ви последват
         avatar: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела
         bot: Покажете на останалите потребители, че акаунтът извършва предимно автоматизирани действия, които не се следят
+        context: Един или повече контексти, към които да се приложи филтърът
         discoverable: Позволете на непознати потребители да открият вашия акаунт чрез препоръки, трендове и други функции
+        email: Ще въ бъде изпратен имейл за потвърждение
         fields: Можете да добавите до 4 елемента в таблицата към своя профил
         header: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела
         locked: Изисква ръчно одобрение на последователите. По подразбиране, публикациите са достъпни само до последователи.
         password: Използвайте поне 8 символа
+        scopes: Указва до кои API има достъп приложението. Ако изберете диапазон от най-високо ниво, няма нужда да избирате индивидуални.
+        setting_aggregate_reblogs: Скриване на нови споделяния за публикации, които са били споделени наскоро (засяга само новополучени споделяния)
         setting_default_sensitive: Деликатната мултимедия е скрита по подразбиране и може да се разкрие с едно щракване
         setting_display_media_default: Скриване на мултимедия отбелязана като деликатна
         setting_display_media_hide_all: Винаги да се скрива мултимедията
         setting_display_media_show_all: Винаги да се показва мултимедията
         setting_hide_network: В профила ви ще бъде скрито кой може да последвате и кой може да ви последва
+        setting_noindex: Засяга вашите публикации и публичен профил
+        setting_show_application: Приложението, от което публикувате, ще бъде показано в подробностите към публикацията
         setting_use_blurhash: Преливането се определя от цветовете на скритите изображения, но детайлите остават скрити
         setting_use_pending_items: Инфопотокът ще се обновява само при кликване, вместо автоматично
         username: Вашето потребителско име ще е неповторим в %{domain}
       featured_tag:
         name: 'Ето няколко хаштага, които последно сте използвали:'
+      filters:
+        action: Изберете кое действие да бъде извършено, когато публикация бъде филтрирана
+        actions:
+          hide: Напълно скриване на филтрираното съдържание, сякаш не съществува
+          warn: Скриване на филтрираното съдържание зад предупреждение, включващо името на филтъра
       form_admin_settings:
         site_contact_username: Как хората могат да ви достигнат в Mastodon.
         site_extended_description: Всяка допълнителна информация, която може да е полезна за посетителите и потребителите ви. Може да се структурира със синтаксиса на Markdown.
@@ -46,6 +58,7 @@ bg:
       imports:
         data: CSV файл, експортиран от друга инстанция на Mastodon
       ip_block:
+        expires_in: IP адресите са краен ресурс. Понякога са споделени и често сменят притежателите си. Поради това, блокиране на IP за неопределен период не се препоръчва.
         severities:
           no_access: Блокиране на достъп до всички ресурси
         severity: Изберете какво да се случва със заявките от този IP
@@ -53,6 +66,8 @@ bg:
         text: Опишете правило или изискване за потребителите на този сървър. Опитайте се да го направите кратко и просто
       sessions:
         otp: 'Въведете двуфакторния код, породен от приложението на телефона си или използвайте един от кодовете си за възстановяване:'
+      user:
+        chosen_languages: Само публикации на езиците с отметка ще бъдат показвани в публичните инфопотоци
       user_role:
         highlighted: Това прави ролята публично видима
         permissions_as_keys: Потребители с тази роля ще имат достъп до...
@@ -80,9 +95,10 @@ bg:
         starts_at: Начало на събитието
         text: Оповестяване
       defaults:
+        autofollow: Автоматично последване на вашия акаунт
         avatar: Аватар
         bot: Този акаунт е бот
-        chosen_languages: Прецеждане на езиците
+        chosen_languages: Филтриране на езиците
         confirm_new_password: Потвърди новата парола
         confirm_password: Потвърди паролата
         current_password: Текуща парола
@@ -90,17 +106,19 @@ bg:
         discoverable: Препоръчайте своя акаунт
         display_name: Показвано име
         email: Адрес на имейла
+        expires_in: Изтича след
         fields: Метаданни за профила
         header: Заглавен ред
         locale: Език на интерфейса
         locked: Направи акаунта поверителен
-        max_uses: Най-голям брой употреби
+        max_uses: Максимален брой използвания
         new_password: Нова парола
         note: Биография
         otp_attempt: Двуфакторен код
         password: Парола
         phrase: Ключова дума или фраза
         setting_advanced_layout: Включете разширения уеб интерфейс
+        setting_aggregate_reblogs: Групиране на споделянията в инфопотока
         setting_always_send_emails: Винаги да се изпращат известия по имейл
         setting_auto_play_gif: Самопускащи се анимирани гифчета
         setting_boost_modal: Показване на диалога за потвърждение преди споделяне
@@ -115,7 +133,9 @@ bg:
         setting_display_media_hide_all: Скриване на всичко
         setting_display_media_show_all: Показване на всичко
         setting_expand_spoilers: Постоянно разширяване на публикации, маркирани с предупреждения
+        setting_noindex: Отказване от индексирането от търсачки
         setting_reduce_motion: Забавяне на движението на анимациите
+        setting_show_application: Показване от кое приложение е изпратена публикацията
         setting_system_font_ui: Използване на системния шрифт по подразбиране
         setting_theme: Тема на сайта
         setting_trends: Показване на ежедневните актуални теми
@@ -130,6 +150,10 @@ bg:
         whole_word: Цяла дума
       featured_tag:
         name: Хаштаг
+      filters:
+        actions:
+          hide: Напълно скриване
+          warn: Скриване зад предупреждение
       form_admin_settings:
         require_invite_text: Изисква се причина за присъединяване
         site_contact_username: Потребителско име на контакт
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index e67bffb64..06db2cc77 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -38,7 +38,7 @@ de:
         current_username: Um das zu bestätigen, gib den Profilnamen des aktuellen Kontos ein
         digest: Wenn du eine längere Zeit inaktiv bist oder du in deiner Abwesenheit eine Direktnachricht erhalten hast
         discoverable: Erlaube deinem Konto, durch Empfehlungen, Trends und andere Funktionen von Fremden entdeckt zu werden
-        email: Du wirst eine E-Mail zur Verifizierung Deiner E-Mail-Adresse erhalten
+        email: Du wirst eine E-Mail zur Verifizierung dieser E-Mail-Adresse erhalten
         fields: Du kannst bis zu vier Metadaten auf deinem Profil anzeigen lassen, die als Tabelle dargestellt werden
         header: PNG, GIF oder JPG. Höchstens %{size} groß. Wird auf %{dimensions} px verkleinert
         inbox_url: Kopiere die URL von der Startseite des gewünschten Relays
@@ -57,7 +57,7 @@ de:
         setting_hide_network: Wem du folgst und wer dir folgt, wird in deinem Profil nicht angezeigt
         setting_noindex: Betrifft alle öffentlichen Daten deines Profils, z. B. deine Beiträge, Account-Empfehlungen und „Über mich“
         setting_show_application: Die Anwendung die du nutzt wird in der detaillierten Ansicht deiner Beiträge angezeigt
-        setting_use_blurhash: Die Farbverläufe basieren auf den Farben der verborgenen Medien, aber verstecken jegliche Details
+        setting_use_blurhash: Die Farbverläufe basieren auf den Farben der verborgenen Medien, verschleiern aber jegliche Details
         setting_use_pending_items: Neue Beiträge hinter einem Klick verstecken, anstatt des automatischen Bildlaufs
         username: Dein Profilname wird auf %{domain} einmalig sein
         whole_word: Wenn das Wort oder die Formulierung nur aus Buchstaben oder Zahlen besteht, tritt der Filter nur dann in Kraft, wenn er exakt dieser Zeichenfolge entspricht
@@ -112,7 +112,7 @@ de:
       rule:
         text: Führe eine Regel oder Bedingung für Benutzer*innen auf diesem Server ein. Bleib dabei kurz und knapp
       sessions:
-        otp: 'Gib die Zwei-Faktor-Authentifizierung von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:'
+        otp: 'Gib den Zwei-Faktor-Code von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:'
         webauthn: Wenn es sich um einen USB-Schlüssel handelt, stelle sicher, dass du ihn einsteckst und ihn antippst.
       tag:
         name: Du kannst zum Beispiel nur die Groß- und Kleinschreibung der Buchstaben ändern, um es lesbarer zu machen
@@ -170,7 +170,7 @@ de:
         context: Filter nach Bereichen
         current_password: Derzeitiges Passwort
         data: Daten
-        discoverable: Dieses Profil im Profilverzeichnis zeigen
+        discoverable: Konto für andere empfehlen
         display_name: Anzeigename
         email: E-Mail-Adresse
         expires_in: Läuft ab
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index a4b30b012..a936c9143 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -222,6 +222,8 @@ el:
         name: Ετικέτα
         trendable: Εμφάνιση της ετικέτας στις τάσεις
         usable: Χρήση της ετικέτας σε τουτ
+      user:
+        role: Ρόλος
     'no': Όχι
     required:
       mark: "*"
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index 46b0af715..846a671ff 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -43,7 +43,7 @@ eo:
         header: Formato PNG, GIF aŭ JPG. Ĝis %{size}. Estos malgrandigita al %{dimensions}px
         inbox_url: Kopiu la URL de la ĉefpaĝo de la ripetilo, kiun vi volas uzi
         irreversible: La filtritaj mesaĝoj malaperos por eterne, eĉ se la filtrilo poste estas forigita
-        locale: La lingvo de la interfaco, de retpoŝtaĵoj, kaj de sciigoj
+        locale: La lingvo de la fasado, retpoŝtaĵoj, kaj sciigoj
         locked: Vi devos aprobi ĉiun peton de sekvado mane
         password: Uzu almenaŭ 8 signojn
         phrase: Estos provita senzorge pri la uskleco de teksto aŭ averto pri enhavo de mesaĝo
diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml
index ac4dfaf03..d15ddaa49 100644
--- a/config/locales/simple_form.es-AR.yml
+++ b/config/locales/simple_form.es-AR.yml
@@ -31,7 +31,7 @@ es-AR:
         text: Sólo podés apelar un incumplimiento una vez
       defaults:
         autofollow: Los usuarios que se registren mediante la invitación te seguirán automáticamente
-        avatar: 'PNG, GIF o JPG. Máximo: %{size}. Será subescalado a %{dimensions} píxeles'
+        avatar: 'PNG, GIF o JPG. Máximo: %{size}. Será subescalado a %{dimensions} píxeles.'
         bot: Esta cuenta ejecuta principalmente acciones automatizadas y podría no ser monitorizada
         context: Uno o múltiples contextos en los que debe aplicarse el filtro
         current_password: Por razones de seguridad, por favor, ingresá la contraseña de la cuenta actual
@@ -40,7 +40,7 @@ es-AR:
         discoverable: Permití que tu cuenta sea descubierta por extraños a través de recomendaciones, tendencias y otras funciones
         email: Se te enviará un correo electrónico de confirmación
         fields: Podés tener hasta 4 elementos mostrados en una tabla en tu perfil
-        header: 'PNG, GIF o JPG. Máximo: %{size}. Será subescalado a %{dimensions} píxeles'
+        header: 'PNG, GIF o JPG. Máximo: %{size}. Será subescalado a %{dimensions} píxeles.'
         inbox_url: Copiá la dirección web desde la página principal del relé que querés usar
         irreversible: Los mensajes filtrados desaparecerán irreversiblemente, incluso si este filtro es eliminado después
         locale: El idioma de la interface de usuario, correos electrónicos y notificaciones push
diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml
index bf3aebe4b..c42ca5319 100644
--- a/config/locales/simple_form.et.yml
+++ b/config/locales/simple_form.et.yml
@@ -7,15 +7,18 @@ et:
       account_migration:
         acct: Sisesta selle konto kasutajanimi@domeen, millele soovite kolida
       account_warning_preset:
-        text: Te saate kasutada tuututuse süntaksi, näiteks URLe, silte ja mainimisi
+        text: Te saate kasutada postituse süntaksi, näiteks URLe, silte ja mainimisi
         title: Valikuline. Ei ole nähtav saajale
       admin_account_action:
-        include_statuses: Kasutaja näeb, millised tuututused on põhjustanud selle moderaatori tegevuse või hoiatuse
+        include_statuses: Kasutaja näeb, millised postitused on põhjustanud moderaatori otsuse või hoiatuse
         send_email_notification: Konto omanik saab selgituse selle kohta, mis juhtus nende kontoga
-        text_html: Valikuline. Te saate kasutada tuututuse süntaksi. Te saate <a href="%{path}">lisada hoiatuste eelseadistusi</a> aega säästmiseks
+        text_html: Valikuline. On võimalik kasutada postituse süntaksi. On võimalik <a href="%{path}">lisada hoiatuste eelseadistusi</a> säästmaks aega
         type_html: Vali, mida teha kasutajaga <strong>%{acct}</strong>
         types:
+          disable: Keela kasutajal konto kasutamine, sisu kustutamata või varjamata.
+          none: Hoiatuse saatmine kasutajale, ilma täiendavate tegevuste käivitamiseta.
           sensitive: Kogu kasutaja meediasisu märgitakse kui tundlik sisu.
+          silence: Takistab kasutajal avaliku nähtavusega postitamist, peidab tema postitused ja märguanded inimeste eest, kes ei jälgi.
           suspend: Takistamaks suhtlust selle kontoga ja kustutamaks kogu sisu. Tagasivõetav 30 päeva jooksul.
         warning_preset_id: Valikuline. Te saate ikka lisada mis tahes teksti eelseadistuse lõppu
       announcement:
@@ -23,7 +26,9 @@ et:
         ends_at: Valikuline. Teadaanne eemaldatakse automaatselt sellel ajal
         scheduled_at: Jäta tühjaks, et avaldada teadaande koheselt
         starts_at: Valikuline. Juhul, kui teie teadaanne on limiteeritud kindlale ajavahemikule
-        text: Te saate kasutada tuututuse süntaksi. Palun pidage silmas seda, kui palju ruumi teadaanne võtab kasutaja ekraanil
+        text: Te saate kasutada postituse süntaksi. Tuleks silmas pidada, kui palju ruumi teadaanne võtab kasutaja ekraanil
+      appeal:
+        text: Otsust on võimalik vaidlustada vaid 1 kord
       defaults:
         autofollow: Inimesed, kes loovad konto selle kutse läbi, automaatselt jälgivad Teid
         avatar: PNG, GIF või JPG. Kõige rohkem %{size}. Vähendatakse %{dimensions} pikslini
@@ -32,25 +37,26 @@ et:
         current_password: Turvalisuse huvides palume sisestage praeguse konto salasõna
         current_username: Kinnitamiseks palun sisestage oma konto kasutajanimi
         digest: Saadetakse ainult pärast pikka perioodi tegevusetust ja ainult siis, kui Teile on saadetud privaatseid sõnumeid
+        discoverable: Konto on leitav võhivõõraste jaoks soovituste ja trendide sirvimise teel vm sarnaste vahenditega
         email: Teile saadetakse kinnituskiri e-posti teel
         fields: Te saate oma profiilil tabelina kuvada kuni 4 asja
         header: PNG, GIF või JPG. Kõige rohkem %{size}. Vähendatakse %{dimensions} pikslini
         inbox_url: Kopeerige soovitud relee avalehe URL
-        irreversible: Filtreeritud tuututused kaovad taastamatult, isegi kui filter on hiljem eemaldatud
+        irreversible: Filtreeritud postitused kaovad taastamatult, isegi kui filter on hiljem eemaldatud
         locale: Kasutajaliidese, e-kirjade ja push-teadete keel
         locked: Nõuab käsitsi jälgijate kinnitamist
         password: Vajalik on vähemalt 8 märki
-        phrase: Kattub olenemata tuututuse teksti suurtähtedest või sisuhoiatusest
+        phrase: Kattub olenemata postituse teksti suurtähtedest või sisuhoiatusest
         scopes: Milliseid API-sid see rakendus tohib kasutada. Kui Te valite kõrgeima taseme, ei pea Te valima individuaalseid.
         setting_aggregate_reblogs: Ära kuva uusi postituste jagamisi, mis on hiljuti jagatud (kehtib vaid uutele jagamistele)
-        setting_always_send_emails: Kui aktiivselt Mastodoni kasutada, siis tavapäraselt e-postiga teavitusi ei saadeta
+        setting_always_send_emails: Mastodoni aktiivsel kasutamisel sulle tavaliselt meilile teavitusi ei saadeta
         setting_default_sensitive: Tundlik meedia on vaikimisi peidetud ning seda saab avada sellele klikkides
         setting_display_media_default: Peida tundlikuks märgitud meedia
         setting_display_media_hide_all: Alati peida kõik meedia
         setting_display_media_show_all: Alati näita tundlikuks märgistatud meedia
         setting_hide_network: Keda Te jälgite ja kes jägib Teid ei kuvata Teie profiilil
         setting_noindex: Mõjutab Teie avalikku profiili ja staatuse lehekülgi
-        setting_show_application: Rakendus, mida kasutate tuututamiseks, kuvatakse tuututuste üksikasjade vaates
+        setting_show_application: Rakendus, mida kasutate postitamiseks, kuvatakse postituste detailvaates
         setting_use_blurhash: Värvid põhinevad peidetud visuaalidel, kuid hägustavad igasuguseid detaile
         setting_use_pending_items: Peida ajajoone uuendused kliki taga selle asemel, et automaatselt kerida voogu
         username: Teie kasutajanimi on %{domain}-il unikaalne
@@ -62,9 +68,31 @@ et:
         with_dns_records: Püütakse lahendada selle domeeni DNS-kirjed ja ühtlasi blokeerida ka selle tulemused
       featured_tag:
         name: 'Siin on mõned nendest siltidest mida sa oled kõige hiljutisemalt kasutanud:'
+      filters:
+        action: Tegevuse valik, kui postitus vastab filtrile
+        actions:
+          hide: Filtreeritud sisu täielik peitmine, nagu seda polekski üldse olemas
+          warn: Varja filtreeritud sisu hoiatusega, nimetades filtri pealkirja
       form_admin_settings:
+        backups_retention_period: Talleta genereeritud kasutajaarhiivid määratud arv päevadeks.
         bootstrap_timeline_accounts: Need kasutajad kinnitatakse uute kasutajate jälgimissoovituste esiritta.
+        closed_registrations_message: Kuvatakse, kui liitumised pole võimalikud
+        content_cache_retention_period: Teiste serverite postitused kustutatakse pärast määratud päevade arvu, kui see on seatud positiivsele väärtusele. See võib olla pöördumatu.
+        custom_css: Kohandatud stiile on võimalik kasutada Mastodoni veebiliideses.
+        mascot: Asendab kohandatud veebiliidese illustratsiooni.
+        media_cache_retention_period: Positiivse väärtuse korral kustutatakse allalaetud meediafailid nende päevade möödudes ning laetakse vajadusel uuesti alla.
         profile_directory: Kasutajate kataloog kuvab nimekirja kasutajatest, kes on seda lubanud.
+        require_invite_text: Kui liitumisi on tarvis kinnitada, oleks "Miks Te soovite liituda?" vastus vajalik
+        site_contact_email: Kui peaks tekkima vajadus ühendust võtta täiendavate küsimuste osas.
+        site_contact_username: Kuidas Mastodoni kaudu ühendust võtta.
+        site_extended_description: Igasugune lisateave, mis võib külastajatele ja kasutajatele kasulik olla. Saab liigendada Markdown süntaksiga.
+        site_short_description: Lühikirjeldus serveri unikaalseks identifitseerimiseks. Kes haldab, kellele mõeldud?
+        site_terms: Kasuta oma privaatsuspoliitikat või tühjaks jättes vaikimisi-teksti. Saab liigendada Markdown süntaksi abil.
+        site_title: Kuidas inimesed saavad serverile viidata, lisaks domeeninimele.
+        theme: Teema, mida näevad sisenemata ning uued kasutajad.
+        thumbnail: Umbes 2:1 mõõdus pilt serveri informatsiooni kõrval.
+        timeline_preview: Sisenemata külastajatel on võimalik sirvida viimaseid avalikke postitusi serveril.
+        trendable_by_default: Populaarse sisu ülevaatuse vahele jätmine. Pärast seda on siiski võimalik üksikuid üksusi trendidest eemaldada.
         trends: Populaarsuse suunad näitavad millised postitused, sildid ja uudislood koguvad sinu serveris tähelepanu.
       form_challenge:
         current_password: Turvalisse alasse sisenemine
@@ -81,12 +109,25 @@ et:
           sign_up_block: Uued liitumised pole võimalikud
           sign_up_requires_approval: Uued liitumised vajavad kinnitamist
         severity: Valik, mis juhtub päringutega sellelt IP-aadressilt
+      rule:
+        text: Reegli või nõude kirjeldus selle serveri kasutajatele. Võimalikult lühidalt ja lihtsalt
       sessions:
         otp: 'Kahe-etapise autentimise kood telefonirakendusest või mõni taastekood:'
+        webauthn: Kui see on USB-võti, sisesta see ning vajadusel aktiveeri.
       tag:
         name: Te saate ainult muuta tähtede tõstetust, näiteks selleks, et muuta seda rohkem loetavaks
       user:
-        chosen_languages: Kui valitud, ainult valitud keeltes tuututused näidatakse avalikes ajajoontes
+        chosen_languages: Keelte valimisel näidatakse avalikel ajajoontel ainult neis keeltes postitusi
+        role: See roll kontrollib, millised õigused kasutajal on
+      user_role:
+        color: Rolli tähistamise värvus üle kasutajaliidese, RGB 16nd-formaadis
+        highlighted: Teeb rolli avalikult nähtavaks
+        name: Rolli avalik nimi, kui roll on märgitud avalikuks kuvamiseks märgina
+        permissions_as_keys: Selle rolliga kasutajatel on ligipääs...
+        position: Kõrgem roll otsustab teatud olukordades konfliktide lahendamise. Teatud toiminguid saab teha ainult madalama prioriteediga rollidega
+      webhook:
+        events: Saadetavate sündmuste valik
+        url: Kuhu sündmused saadetakse
     labels:
       account:
         fields:
@@ -100,7 +141,7 @@ et:
         text: Eelseadistatud tekst
         title: Pealkiri
       admin_account_action:
-        include_statuses: Kaasa teavitatud tuututused selles e-kirjas
+        include_statuses: Kaasa teavitatud postitused selles e-kirjas
         send_email_notification: Teavita kasutajat e-posti teel
         text: Hoiatus
         type: Tegevus
@@ -117,11 +158,13 @@ et:
         scheduled_at: Ajasta avalikustamine
         starts_at: Sündmuse algus
         text: Teadaanne
+      appeal:
+        text: Kirjeldus, miks see otsus tuleks tagasi pöörata
       defaults:
         autofollow: Kutsu oma kontot jälgima
         avatar: Profiilipilt
         bot: See konto on robot
-        chosen_languages: Filtreeri keeli
+        chosen_languages: Keelte filtreerimine
         confirm_new_password: Uue salasõna kinnitamine
         confirm_password: Salasõna kinnitamine
         context: Filtreeri kontekste
@@ -146,23 +189,24 @@ et:
         phrase: Võtmesõna või fraas
         setting_advanced_layout: Aktiveeri kohandatud veebiliides
         setting_aggregate_reblogs: Grupeeri jagamised ajajoontel
+        setting_always_send_emails: Edasta kõik teavitused meilile
         setting_auto_play_gif: Mängi GIF-e automaatselt
         setting_boost_modal: Näita enne jagamist kinnitusdialoogi
-        setting_crop_images: Kärbi suurendamata tuututuste pildid resolutsiooni 16x9
+        setting_crop_images: Kuva suurendamata postituste pildid kui 16x9
         setting_default_language: Postituse keel
-        setting_default_privacy: Postituse privaatsus
+        setting_default_privacy: Postituse nähtavus
         setting_default_sensitive: Alati märgista meedia tundlikuks
-        setting_delete_modal: Näita kinnitusdialoogi enne tuututuse kustutamist
+        setting_delete_modal: Näita kinnitusdialoogi enne postituse kustutamist
         setting_disable_swiping: Keela pühkimisliigutused
         setting_display_media: Meedia kuvarežiim
         setting_display_media_default: Vaikimisi
         setting_display_media_hide_all: Peida kõik
         setting_display_media_show_all: Kuva kõik
-        setting_expand_spoilers: Alati laienda sisuhoiatustega tuututused
+        setting_expand_spoilers: Alati laienda sisuhoiatustega postitused
         setting_hide_network: Peida oma võrk
         setting_noindex: Keeldu otsingumootorite indekseerimistest
         setting_reduce_motion: Vähenda liikumist animatsioonides
-        setting_show_application: Avalikusta tuututuste saatmisel kasutatud rakendused
+        setting_show_application: Avalikusta postituste tegemisel kasutatud rakendus
         setting_system_font_ui: Kasuta süsteemi vaikefonti
         setting_theme: Saidi teema
         setting_trends: Näita tänaseid trende
@@ -180,20 +224,33 @@ et:
         with_dns_records: Kaasa domeeni MX-kirjed ning IP-aadressid
       featured_tag:
         name: Silt
+      filters:
+        actions:
+          hide: Peida täielikult
+          warn: Peida hoiatusega
       form_admin_settings:
+        backups_retention_period: Kasutajate arhiivi talletusperiood
+        bootstrap_timeline_accounts: Alati soovita neid kontosid uutele kasutajatele
         closed_registrations_message: Kohandatud teade, kui liitumine pole võimalik
+        content_cache_retention_period: Meediapuhvri talletusperiood
         custom_css: Kohandatud CSS
+        mascot: Kohandatud maskott (kunagine)
+        media_cache_retention_period: Meediapuhvri talletusperiood
         profile_directory: Luba kasutajate kataloog
+        registrations_mode: Kes saab liituda
+        require_invite_text: Nõua liitumiseks põhjendust
         show_domain_blocks: Näita domeenikeelde
         show_domain_blocks_rationale: Näite domeenikeeldude põhjuseid
         site_contact_email: Kontaktisiku e-post
         site_contact_username: Kontaktisiku kasutajanimi
         site_extended_description: Serveri pikem kirjeldus
         site_short_description: Serveri lühikirjeldus
-        site_terms: Privaatsuspoliitika
+        site_terms: Isikuandmete kaitse
         site_title: Serveri nimi
         theme: Vaikmisi teema
         thumbnail: Serveri pisipilt
+        timeline_preview: Luba autentimata ligipääs avalikele ajajoontele
+        trendable_by_default: Luba trendid eelneva ülevaatuseta
         trends: Luba trendid
       interactions:
         must_be_follower: Keela teavitused mittejälgijatelt
@@ -212,6 +269,7 @@ et:
           sign_up_requires_approval: Piira liitumisi
         severity: Reegel
       notification_emails:
+        appeal: Moderaatori otsus on vaidlustatud
         digest: Saada ülevaatlike e-kirju
         favourite: Saada e-kiri, kui keegi lisab teie staatuse lemmikuks
         follow: Saada e-kiri, kui keegi alustab Teie jälgimist
@@ -220,17 +278,21 @@ et:
         pending_account: Saada e-kiri, kui uus konto vajab ülevaatlust
         reblog: Keegi jagas postitust
         report: Esitatud on uus raport
+        trending_tag: Uus trend vajab ülevaatust
       rule:
         text: Reegel
       tag:
         listable: Luba sellel sildil ilmuda profiilide kataloogis
         name: Silt
         trendable: Luba sellel sildil trendida
-        usable: Luba tuututustel seda silti kasutada
+        usable: Luba postitustel seda silti kasutada
       user:
         role: Roll
       user_role:
+        color: Märgi värv
+        highlighted: Kuva roll kasutajaprofiilidel märgina
         name: Nimi
+        permissions_as_keys: Load
         position: Positsioon
       webhook:
         events: Lubatud sündmused
@@ -239,4 +301,7 @@ et:
     required:
       mark: "*"
       text: kohustuslik
+    title:
+      sessions:
+        webauthn: Kasuta sisenemiseks ühte turvavõtmeist
     'yes': Jah
diff --git a/config/locales/simple_form.fo.yml b/config/locales/simple_form.fo.yml
index 4d52d34c0..84a695aca 100644
--- a/config/locales/simple_form.fo.yml
+++ b/config/locales/simple_form.fo.yml
@@ -4,72 +4,306 @@ fo:
     hints:
       account_alias:
         acct: Upplýs brúkaranavn@navnaøki á kontuni, sum tú vilt flyta frá
+      account_migration:
+        acct: Upplýs brúkaranavn@navnaøki á kontuni, sum tú vilt flyta til
       account_warning_preset:
+        text: Tú kanst brúka sama syntaks sum við postum, sosum URL'ar, frámerki og brúkaranøvn
         title: Valfrítt. Ikki sjónligt fyri móttakaran
+      admin_account_action:
+        include_statuses: Brúkarin sær, hvørjir postar hava ført við sær umsjónaratgerðina ella ávaringina
+        send_email_notification: Brúkarin fer at móttaka eina frágreiðing um, hvat hendi við teirra kontu
+        text_html: Valfrítt. Tú kanst brúka sama syntaks sum í postum. Tú kann <a href="%{path}">leggja fastar ávaringarstillingar</a> fyri at spara tíð
+        type_html: Vel, hvat tú vil gera við <strong>%{acct}</strong>
+        types:
+          disable: Forða brúkaranum at brúka teirra kontu, men lat vera við at strika ella fjala teirra innihald.
+          none: Brúka hetta at senda eina ávaring til brúkaran, uttan at íverkseta nakra aðra atgerð.
+          sensitive: Flagga øll framtíðar miðlaviðfesti hjá brúkaranum sum viðkvom.
+          silence: Forða brúkaranum at posta alment, fjal teirra postar og fráboðanir frá fólki, sum ikki fylgja teimum.
+          suspend: Forða alt samskifti frá og til hesa kontuna og strika innihaldið hjá henni. Kann angrast innan 30 dagar.
+        warning_preset_id: Valfrítt. Tú kanst enn leggja serskildan tekst afturat undanstillingini
+      announcement:
+        all_day: Tá hetta er valt, verða einans dagfestingarnar í tíðarbilinum vístar
+        ends_at: Valfrítt. Kunngerðin verður sjálvvirkandi fjald, tá hendan tíðin er komin
+        scheduled_at: Lat vera blankt fyri at útgeva kunngerðina beinan vegin
+        starts_at: Valfrítt. Um so er, at kunngerðin hjá tær er avmarkað til eitt ávíst tíðarbil
+        text: Tú kanst brúka sama syntaks sum í postum. Gev gætur, hvussu nógv kunngerðin fyllir á skerminum hjá brúkaranum
+      appeal:
+        text: Tú kanst bara kæra eina atsókn eina ferð
       defaults:
+        autofollow: Fólk, sum tilmelda seg gjøgnum innbjóðingina, fylgja tær sjálvvirkandi
+        avatar: PNG, GIF ella JPG. Ikki størri enn %{size}. Verður minkað til %{dimensions}px
+        bot: Tekin til onnur, at kontan í høvuðsheitum ger sjálvvirkandi atgerðir og møguliga ikki verður yvirvakað
+        context: Ein ella fleiri kontekstir, har sum filtrið skal brúkast
+        current_password: Av trygdarávum vinarliga les inn loyniorðið hjá verandi kontu
+        current_username: Fyri at vátta, vinarliga les inn brúkaranavnið á verandi kontu
+        digest: Einans sent eftir eitt langt tíðarskeið við óvirkni og einans um tú hevur móttikið persónlig boð meðan tú var burtur
+        discoverable: Loyv kontu tíni at verða funnin av fremmandum gjøgnum viðmæli, rák og aðrar hentleikar
+        email: Tú fær sendandi ein váttanarteldupost
+        fields: Tú kanst hava upp til 4 lutir vístar sum eina talvu á vanga tínum
+        header: PNG, GIF ella JPG. Ikki størri enn %{size}. Verður minkað til %{dimensions}px
+        inbox_url: Avrita URL'in frá forsíðuni hjá reiðlagnum, sum tú vilt brúka
+        irreversible: Filtreraðir postar blíva burtur med alla, eisini sjálvt um filtrið seinni verður strikað
+        locale: Málið, sum verður brúkt í brúkaramarkamótinum, teldupostum og skumpiboðum
+        locked: Stýr hvør kann fylgja tær við at góðtaka ella vraka umbønir um at fylgja
         password: Skriva minst 8 tekin
+        phrase: Fer at samsvara óanæsð um tað er skrivað við lítlum ella stórum ella um postar hava innihaldsávaringar
+        scopes: Hvørji API nýtsluskipanin fær atgongd til. Velur tú eitt vav á hægsta stigi, so er ikki neyðugt at velja tey einstøku.
+        setting_aggregate_reblogs: Vís ikki nýggjar stimbranir fyri postar, sum nýliga eru stimbraðir (ávirkar einans stimbranir, ið eru móttiknar fyri kortum)
+        setting_always_send_emails: Vanliga vera teldupostfráboðanir ikki sendar, tá tú virkin brúkar Mastodon
+        setting_default_sensitive: Viðkvæmar miðlafílur eru fjaldar og kunnu avdúkast við einum klikki
+        setting_display_media_default: Fjal miðlafílur, sum eru merktar sum viðkvæmar
+        setting_display_media_hide_all: Fjal altíð miðlafílur
+        setting_display_media_show_all: Vís altíð miðlafílur
+        setting_hide_network: Tey, ið tú fylgir og tey, ið fylgja tær, verða ikki víst á tínum vanga
+        setting_noindex: Ávirkar almenna vangan og síður við postum hjá tær
+        setting_show_application: Nýtsluskipanin, sum tú brúkar at posta við, verður víst í nágreinligu vísingini av postum tínum
+        setting_use_blurhash: Gradientar eru grundaðir á litirnar av fjaldu myndunum, men grugga allar smálutir
+        setting_use_pending_items: Fjal tíðarlinjudagføringar aftan fyri eitt klikk heldur enn at skrulla tilføringina sjálvvirkandi
+        username: Brúkaranavnið hjá tær verður eindømi á %{domain}
+        whole_word: Tá lyklaorðið ella frasan einans hevur bókstavir og tøl, so verður hon einans nýtt, um tú samsvarar við alt orðið
+      domain_allow:
+        domain: Økisnavnið kann heinta dátur frá hesum ambætaranum og inngangandi dátur frá honum verða viðgjørdar og goymdar
+      email_domain_block:
+        domain: Hetta kann vera navnaøkið, sum sæst í teldupostinum ella í MX teigaraðnum, sum hann brúkar. Tey verða eftirkannaði í sambandi við tilmelding.
+        with_dns_records: Ein roynd at finna DNS teigarøðirnar hjá givna navnaøkinum verður gjørd, og úrslitini verða eisini blokeraði
       featured_tag:
         name: 'Her eru nakrir tvíkrossar, ið tú hevur brúkt í seinastuni:'
+      filters:
+        action: Vel, hvat skal henda, tá eitt uppslag svarar til filtrið
+        actions:
+          hide: Fjal filtreraða innihaldið fullkomiliga, ber seg at sum at tað ikki fanst
+          warn: Fjal filtreraða innihaldið aftan fyri eina ávaring, sum nevnir heitið á filtrinum
       form_admin_settings:
+        backups_retention_period: Varðveit gjørd brúkarasøvn í ásetta talið av døgum.
+        bootstrap_timeline_accounts: Hesar kontur verða festar ovast á listanum yvir brúkarar, sum tey nýggju verða mælt til at fylgja.
+        closed_registrations_message: Víst tá stongt er fyri tilmeldingum
+        content_cache_retention_period: Postar frá øðrum ambætarum verða strikaðir eftir ásetta talið av døgum, tá hetta er sett til eitt positivt virði. Hetta kann møguliga ikki broytast.
         custom_css: Tú kanst seta títt egna snið upp í net-útgávuni av Mastodon.
+        mascot: Skúgvar til viks myndprýðingina í framkomna vev-markamótinum.
+        media_cache_retention_period: Miðlafílur, sum eru tiknar niður, verða strikaðar eftir ásetta talið av døgum, tá hetta er sett til eitt positivt virði, og takast niður umaftur eftir ynski.
+        profile_directory: Vangaskráin listar allar brúkarar, sum hava valt at kunna uppdagast.
+        require_invite_text: Tá tilmeldingar krevja serskilda góðkenning, set so "Hví vil tú vera við?" tekstateigin til at vera kravdan heldur enn valfrían
+        site_contact_email: Hvussu fólk kunnu røkka teg við løgfrøðisligum og brúks-fyrispurningum.
+        site_contact_username: Hvussu fólk kunnu fáa fatur á tær á Mastodon.
+        site_extended_description: Fleiri upplýsingar, sum kunnu vera brúkiligir fyri vitjandi og tínar brúkarar. Kann brúka Markdown syntaks.
+        site_short_description: Ein stutt lýsing at eyðmerkja ambætaran hjá tær. Hvør rekur hann og hvønn er hann til?
+        site_terms: Brúka tín egna privatlívspolitikk ella lat vera blankt fyri at brúka tann sjálvsetta. Kann skrivast við Markdown syntaksi.
+        site_title: Hvussu fólk kunnu vísa til ambætaran hjá tær útyvir at brúka navnaøkið.
+        theme: Uppsetingareyðkenni, sum vitjandi, ið ikki eru ritaði inn, og nýggir brúkarar síggja.
+        thumbnail: Ein mynd í lutfallinum 2:1, sum verður víst saman við ambætaraupplýsingunum hjá tær.
+        timeline_preview: Vitjandi, sum eru ritaði út, fara at kunna blaða ígjøgnum nýggjastu almennu postarnar, sum eru tøkir á ambætaranum.
+        trendable_by_default: Loyp uppum serskilda eftirkannan av tilfari, sum er vælumtókt. Einstakir lutir kunnu framvegis strikast frá listum við vælumtóktum tilfari seinni.
+        trends: Listar við vælumtóktum tilfari vísa, hvørjir postar, frámerki og tíðindasøgur hava framburð á tínum ambætara.
+      form_challenge:
+        current_password: Tú ert á veg til eitt trygt øki
+      imports:
+        data: CSV fíla flutt út frá einum øðrum Mastodon ambætara
+      invite_request:
+        text: Hetta fer at hjálpa okkum at viðgera umsókn tína
+      ip_block:
+        comment: Valfrítt. Minst til, hví tú legði hesa regluna afturat.
+        expires_in: IP adressur eru avmarkað tilfeingi, tær eru summar tíðir deildar og ofta skifta tær hendur. Av hesi orsøk verður ikki viðmælt at hava óavmarkaðar IP-blokkar.
+        ip: Skriva eina IPv4 ella IPv6 adressu. Tú kanst blokera heilar røðir við at brúka CIDR syntaks. Ver varin, at tú ikki læsir teg sjálva/n úti!
+        severities:
+          no_access: Blokera atgongd til alt tilfeingi
+          sign_up_block: Nýggjar tilmeldingar verða ikki møguligar
+          sign_up_requires_approval: Nýggjar tilmeldingar fara at krevja tína góðkenning
+        severity: Vel, hvat skal henda við umbønum frá hesari IP adressuni
+      rule:
+        text: Lýs eina reglu ella eitt krav fyri brúkarar á hesum ambætaranum. Ger tað stutt og einfalt
+      sessions:
+        otp: 'Skriva tvey-faktor koduna frá telefon-appini ella brúka eina av tínum endurgerðskodum:'
+        webauthn: Er tað ein geymi, minst so til at seta hann í og, um neyðugt, pikka hann.
+      tag:
+        name: Tú kanst einans broyta millum stórar og smáar stavir, til dømis fyri at gera tað meira lesiligt
+      user:
+        chosen_languages: Tá hetta er valt, verða einans postar í valdum málum vístir á almennum tíðarlinjum
+        role: Leikluturin stýrir, hvørji loyvir brúkarin hevur
+      user_role:
+        color: Litur, sum leikluturin hevur í øllum brúkaramarkamótinum, sum RGB og upplýst sum sekstandatal
+        highlighted: Hetta ger, at leikluturin er alment sjónligur
+        name: Almenna navnið á leiklutinum, um leikluturin er settur at verða vístur sum eitt tignarmerki
+        permissions_as_keys: Brúkarar við hesum leiklutinum fara at fáa atgongd til...
+        position: Hægri leiklutur er avgerandi fyri loysn av ósemjum í ávísum støðum. Ávísar atgerðir kunnu einans verða gjørdar móti leiklutum, sum hava eina lægri raðfesting
+      webhook:
+        events: Vel hendingar at senda
+        url: Hvar hendingar verða sendar til
     labels:
       account:
         fields:
+          name: Spjaldur
           value: Innihald
+      account_alias:
+        acct: Brúkaranavn á gomlu kontuni
+      account_migration:
+        acct: Brúkaranavn á nýggju kontuni
       account_warning_preset:
+        text: Undansettur tekstur
         title: Heiti
       admin_account_action:
+        include_statuses: Tak meldaða postin við í teldupostin
+        send_email_notification: Boða brúkaranum frá í telduposti
+        text: Tillagað ávaring
+        type: Atgerð
         types:
           disable: Fryst
           none: Send eina ávaring
           sensitive: Viðkvæmt
           silence: Mark
           suspend: Fyribils ikki í gildi
+        warning_preset_id: Brúka eina ávaringar-undanstilling
       announcement:
         all_day: Tiltak allan dagin
         ends_at: Hending liðug
+        scheduled_at: Vel nær útgevast skal
         starts_at: Tiltak byrjar
+        text: Kunngerð
+      appeal:
+        text: Greið frá, hví hendan avgerðin átti at verið kolldømd
       defaults:
+        autofollow: Bjóða at fylgja tíni kontu
+        avatar: Eftirgjørdur skapningur
+        bot: Hetta er ein bot-konta
+        chosen_languages: Filtrera mál
         confirm_new_password: Endurtak nýggja loyniorðið
         confirm_password: Endurtak loyniorðið
+        context: Filtrera kontekstir
+        current_password: Núverandi loyniorð
         data: Dáta
+        discoverable: Skjót kontuna upp fyri øðrum
         display_name: Navn, sum skal vísast
         email: Teldubrævabústaður
         expires_in: Endar aftan á
+        fields: Metadátur hjá vanganum
+        header: Høvd
+        honeypot: "%{label} (ikki fylla út)"
+        inbox_url: URL'ur hjá innbakkanum hjá reiðlagnum
         irreversible: Strika heldur enn at fjala
+        locale: Markamótsmál
+        locked: Krev umbønir um at fylgja
+        max_uses: Ikki brúka oftari enn
+        new_password: Nýtt loyniorð
         note: Ævilýsing
+        otp_attempt: Tvey-faktor koda
+        password: Loyniorð
+        phrase: Lyklaorð ella frasa
+        setting_advanced_layout: Ger framkomið vevmarkamót virkið
+        setting_aggregate_reblogs: Bólka stimbranir í tíðarlinjum
+        setting_always_send_emails: Send altíð fráboðanir við telduposti
+        setting_auto_play_gif: Spæl teknimyndagjørdar GIFar sjálvvirkandi
+        setting_boost_modal: Vís váttanarmynd, áðrenn tú stimbrar postar
+        setting_crop_images: Sker myndir til lutfallið 16x9 í postum, sum ikki eru víðkaðir
+        setting_default_language: Mál, sum verður brúkt til postar
+        setting_default_privacy: Hvussu privatir eru postar?
+        setting_default_sensitive: Merk altíð miðlafílur sum viðkvæmar
+        setting_delete_modal: Vís váttanarmynd, áðrenn postar verða strikaðir
+        setting_disable_swiping: Ger sveipurørslur óvirknar
+        setting_display_media: Vístir miðlar
+        setting_display_media_default: Sjálvvirði
         setting_display_media_hide_all: Fjal alt
+        setting_display_media_show_all: Vís alt
+        setting_expand_spoilers: Víðka altíð postar, sum eru merktir við innihaldsávaringum
+        setting_hide_network: Fjal sosiala grafin hjá tær
+        setting_noindex: Frábið tær indeksering á leitimaskinum
+        setting_reduce_motion: Minka um rørslu í teknimyndum
+        setting_show_application: Avdúka serskipan, sum verður brúkt til at senda postar
+        setting_system_font_ui: Brúka vanliga skriftaslagið hjá skipanini
+        setting_theme: Uppsetingareyðkenni
+        setting_trends: Vís dagsins rák
+        setting_unfollow_modal: Vís váttanarmynd, áðrenn tú gevst at fylgja onkrum
+        setting_use_blurhash: Vís litríkar gradientar fyri fjaldar miðlar
+        setting_use_pending_items: Spakulig støða
+        severity: Álvarssemi
+        sign_in_token_attempt: Trygdarkoda
+        title: Heiti
+        type: Slag av innflutningi
         username: Brúkaranavn
         username_or_email: Brúkaranavn ella teldupostur
         whole_word: Heil orð
+      email_domain_block:
+        with_dns_records: Tak MX teigarøð og IP-adressur hjá navnaøkjum við
       featured_tag:
         name: Tvíkrossur
       filters:
         actions:
           hide: Fjal fullkomiliga
+          warn: Fjal við eini ávaring
+      form_admin_settings:
+        backups_retention_period: Hvussu leingi verða brúkarasøvn goymd
+        bootstrap_timeline_accounts: Mæl altíð nýggjum brúkarum at fylgja hesar kontur
+        closed_registrations_message: Serskild boð, tá tað ikki er møguligt at tilmelda seg
+        content_cache_retention_period: Tíðarskeið, har innihaldgoymslan verður varðveitt
+        custom_css: Serskilt CSS
+        mascot: Serskildur maskottur (arvur)
+        media_cache_retention_period: Tíðarskeið, har miðlagoymslur verða varðveittar
+        profile_directory: Ger vangaskrá virkna
+        registrations_mode: Hvør kann tilmelda seg
+        require_invite_text: Krev eina orsøk at luttaka
+        show_domain_blocks: Vís navnaøkisblokeringar
+        show_domain_blocks_rationale: Vís hví navnaøki vóru blokeraði
+        site_contact_email: Samband umvegis teldupost
+        site_contact_username: Brúkaranavn hjá umsitara
+        site_extended_description: Víðkað lýsing
+        site_short_description: Ambætaralýsing
+        site_terms: Privatlívspolitikkur
+        site_title: Ambætaranavn
+        theme: Sjálvvalt uppsetingareyðkenni
+        thumbnail: Ambætarasmámynd
+        timeline_preview: Loyv teimum, sum ikki eru ritaði inn, atgongd til almennar tíðarlinjur
+        trendable_by_default: Loyv vælumtóktum tilfari uttan at viðgera tað fyrst
+        trends: Loyv ráki
+      interactions:
+        must_be_follower: Blokera fráboðanum frá teimum, sum ikki fylgja tær
+        must_be_following: Blokera fráboðanum frá teimum, tú ikki fylgir
+        must_be_following_dm: Blokera beinleiðis boð frá fólki, sum tú ikki fylgir
+      invite:
+        comment: Viðmerk
+      invite_request:
+        text: Hví vil tú vera við?
       ip_block:
         comment: Viðmerking
         ip: IP
+        severities:
+          no_access: Blokera atgongd
+          sign_up_block: Blokera tilmeldingar
+          sign_up_requires_approval: Avmarka tilmeldingar
         severity: Regla
       notification_emails:
+        appeal: Onkur kærir eina umsjónaravgerð
+        digest: Send ein teldupost við samandrátti
         favourite: Onkur dámdi títt uppslag
+        follow: Onkur fylgdi tær
         follow_request: Onkur biður um at fylgja tær
         mention: Onkur nevndi teg
+        pending_account: Nýggj konta krevur viðgerð
+        reblog: Onkur stimbraði postin hjá tær
+        report: Nýggj melding er send inn
+        trending_tag: Broytt rák skal kannast
       rule:
         text: Regla
       tag:
         listable: Loyva hesum tvíkrossið, at verða vístur í leitingum og uppskotum
         name: Tvíkrossur
+        trendable: Loyv hesum frámerki at síggjast undir rákum
         usable: Loyva uppsløgum at brúka hendan tvíkross
       user:
         role: Leiklutur
       user_role:
+        color: Litur á tignarmerki
+        highlighted: Vís leiklut sum tignarmerki á brúkaravangum
         name: Navn
         permissions_as_keys: Loyvi
+        position: Raðfesting
+      webhook:
+        events: Virknar hendingar
+        url: Endapunkts-URLur
     'no': Nei
     not_recommended: Ikki viðmælt
     recommended: Viðmælt
     required:
       mark: "*"
       text: kravt
+    title:
+      sessions:
+        webauthn: Brúka ein av tínum trygdarlyklum at rita inn
     'yes': Ja
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index ef8b83c11..dfae386bc 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -13,7 +13,7 @@ gl:
         include_statuses: A usuaria verá que publicacións causaron a acción da moderación ou aviso
         send_email_notification: A usuaria recibirá unha explicación sobre o que lle aconteceu a súa conta
         text_html: Optativo. Podes utilizar formato na publicación. Podes <a href="%{path}">engadir avisos preestablecidos</a> para aforrar tempo
-        type_html: Escolle que facer con <strong>%{acct}</strong>
+        type_html: Elixe que facer con <strong>%{acct}</strong>
         types:
           disable: Evitar que a usuaria utilice a súa conta, mais non eliminala ou agochar o seu contido.
           none: Utiliza esto para darlle un aviso á usuaria, se activar ningunha outra acción.
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index 9e8dc41e1..03dda3382 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -147,10 +147,10 @@ is:
         type: Aðgerð
         types:
           disable: Gera innskráningu óvirka
-          none: Gera ekkert
+          none: Senda aðvörun
           sensitive: Viðkvæmt
           silence: Hylja
-          suspend: Setja í bið og eyða endanlega gögnum notandaaðgangsins
+          suspend: Setja í frysti
         warning_preset_id: Nota forstillta aðvörun
       announcement:
         all_day: Heilsdags atburður
@@ -180,7 +180,7 @@ is:
         inbox_url: URL-slóð á innhólf endurvarpa
         irreversible: Fella niður í staðinn fyrir að fela
         locale: Tungumál viðmóts
-        locked: Læsa aðgangi
+        locked: Krefjast fylgjendabeiðna
         max_uses: Hámarksfjöldi afnota
         new_password: Nýtt lykilorð
         note: Æviágrip
diff --git a/config/locales/simple_form.ku.yml b/config/locales/simple_form.ku.yml
index 4102b10be..d67a21209 100644
--- a/config/locales/simple_form.ku.yml
+++ b/config/locales/simple_form.ku.yml
@@ -3,9 +3,9 @@ ku:
   simple_form:
     hints:
       account_alias:
-        acct: Ajimêrê ku tu dixwazî jê bar bikî navê bikarhêner@navpar diyar bike
+        acct: Ajimêrê ku tu dixwazî jê bar bikî navê bikarhêner@navper diyar bike
       account_migration:
-        acct: Ajimêrê ku tu dixwazî bar bikî bo wê navê bikarhêner@navpar diyar bike
+        acct: Ajimêrê ku tu dixwazî bar bikî bo wê navê bikarhêner@navper diyar bike
       account_warning_preset:
         text: Tu dikarî hevoksaziya şandiyê wekî URL, hashtag û şîroveyan, bi kar bînî
         title: Vebijêrkî ye. Ji wergir re nayê xuyakirin
@@ -30,7 +30,7 @@ ku:
       appeal:
         text: Tu dikarî tenê carekê îtîraza binpêkirinê bikî
       defaults:
-        autofollow: Mirovên ku bi rêya vexwendinê xwe tomar kirine ew ên bi xweberî te bişopînin
+        autofollow: Mirovên ku bi riya vexwendinê xwe tomar kirine ew ên bi xweberî te bişopînin
         avatar: PNG, GIF an jî JPG. Herî zêde %{size} dê ber bi %{dimensions}px ve were kêmkirin
         bot: Ji yên din re nîşan bike ku ajimêr bi piranî kiryarên xweberî dike û dibe ku neyê çavdêrî kirin
         context: Yek an jî zêdetir girêdan divê parzûn were sepandin
@@ -66,7 +66,7 @@ ku:
       domain_allow:
         domain: Ev navê navperê, ji vê rajekarê wê daneyan bistîne û daneyên ku jê bê wê were sazkirin û veşartin
       email_domain_block:
-        domain: Ev dikare bibe navê navparek ku di navnîşana e-nameyê de an tomara MX ya ku ew bi kar tîne de xuya dike. Ew ê di dema tomarkirinê de werin kontrolkirin.
+        domain: Ev dikare bibe navê navperek ku di navnîşana e-nameyê de an tomara MX ya ku ew bi kar tîne de xuya dike. Ew ê di dema tomarkirinê de werin kontrolkirin.
         with_dns_records: Hewl tê dayîn ku tomarên DNSê yên li qada jê re hatine dayîn were çareserkirin û encamên wê jî were astengkirin
       featured_tag:
         name: 'Li virê çend haştag hene ku te demên dawî bi kar anîne:'
@@ -90,7 +90,7 @@ ku:
         site_extended_description: Her zanyariyek daxwazî dibe ku bibe alîkar bo mêvan û bikarhêneran re. Û dikarin bi hevoksaziya Markdown re werin sazkirin.
         site_short_description: Danasîneke kurt ji bo ku bibe alîkar ku rajekara te ya bêhempa werê naskirin. Kî bi rê ve dibe, ji bo kê ye?
         site_terms: Politîka taybetiyê ya xwe bi kar bîne an jî vala bihêle da ku berdest werê bikaranîn. Dikare bi hevoksaziya Markdown ve werê sazkirin.
-        site_title: Tu çawa dixwazî mirov qale rajekarê te bikin ji bilî navê navparê wî.
+        site_title: Tu çawa dixwazî mirov qale rajekarê te bikin ji bilî navê navperê wî.
         theme: Rûkara ku mêvanên têneketî û bikarhênerên nû dibînin.
         thumbnail: Li kêleka zanyariyên rajekarê xwe wêneyeke 2:1 nîşan bide.
         timeline_preview: Mêvanên têneketî wê karibin li şandiyên gelemperî yên herî dawî yên ku li ser rajekarê peyda dibin bigerin.
@@ -242,7 +242,7 @@ ku:
         registrations_mode: Kî dikare tomar bibe
         require_invite_text: Ji bo tevlêbûnê sedemek pêdivî ye
         show_domain_blocks: Astengkirinên navperê nîşan bide
-        show_domain_blocks_rationale: Nîşan bide ka çima navpar hatine astengkirin
+        show_domain_blocks_rationale: Nîşan bide ka çima navper hatine astengkirin
         site_contact_email: Bi me re biaxive bi riya e-name
         site_contact_username: Bi bikarhêner re têkeve têkiliyê
         site_extended_description: Danasîna berferhkirî
diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml
index 337b691a2..dd0dda314 100644
--- a/config/locales/simple_form.lv.yml
+++ b/config/locales/simple_form.lv.yml
@@ -198,7 +198,7 @@ lv:
         setting_default_sensitive: Atļaut atzīmēt medijus kā sensitīvus
         setting_delete_modal: Parādīt apstiprinājuma dialogu pirms ziņas dzēšanas
         setting_disable_swiping: Atspējot vilkšanas kustības
-        setting_display_media: Mediju bibliotēka
+        setting_display_media: Mediju rādīšana
         setting_display_media_default: Noklusējums
         setting_display_media_hide_all: Paslēpt visu
         setting_display_media_show_all: Parādīt visu
@@ -210,7 +210,7 @@ lv:
         setting_system_font_ui: Lietot sistēmas noklusējuma fontu
         setting_theme: Vietnes motīvs
         setting_trends: Parādīt šodienas tendences
-        setting_unfollow_modal: Parādīt apstiprinājuma dialogu pirms atsekoties no kāda
+        setting_unfollow_modal: Parādīt apstiprinājuma dialogu pirms pārtraukt kādam sekot
         setting_use_blurhash: Rādīt krāsainos gradientus slēptajiem medijiem
         setting_use_pending_items: Lēnais režīms
         severity: Smagums
diff --git a/config/locales/simple_form.ms.yml b/config/locales/simple_form.ms.yml
index 64fc95b17..fb892181d 100644
--- a/config/locales/simple_form.ms.yml
+++ b/config/locales/simple_form.ms.yml
@@ -2,7 +2,36 @@
 ms:
   simple_form:
     hints:
+      account_alias:
+        acct: Tentukan namapengguna@domain akaun yang ingin anda alihkan daripada
+      account_migration:
+        acct: Tentukan namapengguna@domain akaun yang ingin anda alihkan ke
+      account_warning_preset:
+        text: Anda boleh menggunakan sintaks hantaran seperti URL, tanda pagar dan sebutan
+        title: Pilihan. Penerima tidak dapat melihatnya
+      admin_account_action:
+        include_statuses: Pengguna akan melihat kiriman mana yang menyebabkan tindakan atau amaran penyederhanaan
+        send_email_notification: Pengguna akan menerima penjelasan tentang apa yang berlaku dengan akaun mereka
+        text_html: Pilihan. Anda boleh menggunakan sintaks hantaran. Anda juga boleh <a href="%{path}">menambahkan praset amaran</a> untuk menjimatkan masa
+        type_html: Pilih apa yang ingin dilakukan dengan <strong>%{acct}</strong>
+        types:
+          disable: Halang pengguna daripada menggunakan akaun mereka, tetapi jangan hapus atau sorokkan kandungan mereka.
+          none: Gunakan ini untuk menghantar amaran kepada pengguna, tanpa mencetuskan sebarang tindakan lain.
+          sensitive: Memaksa semua lampiran media pengguna ini ditandakan sebagai sensitif.
+          silence: Halang pengguna daripada membuat hantaran secara awam, menyorokkan hantaran dan pemberitahuan mereka daripada orang yang tidak mengikuti mereka.
+          suspend: Halang sebarang interaksi daripada atau kepada akaun ini dan menghapuskan kandungannya. Boleh dikembalikan dalam 30 hari.
+        warning_preset_id: Pilihan. Anda masih boleh menambah teks tersuai pada akhir praset
+      announcement:
+        all_day: Apabila diperiksa, hanya tarikh dalam julat masa yang akan dipaparkan
+        ends_at: Pilihan. Pengumuman akan dinyahterbitkan secara automatik pada masa ini
+        scheduled_at: Biarkan kosong untuk menerbitkan pengumuman dengan segera
+        starts_at: Pilihan. Sekiranya pengumuman anda terikat pada julat masa tertentu
+        text: Anda boleh menggunakan sintaks hantaran. Sila ambil perhatian tentang ruang yang akan digunakan oleh pengumuman pada skrin pengguna
+      appeal:
+        text: Anda boleh membuat rayuan terhadap pelanggaran sekali sahaja
       defaults:
+        autofollow: Orang yang mendaftar melalui undangan akan mengikuti anda secara automatik
+        avatar: PNG, GIF atau JPG. Kebanyakannya %{size}. Saiz akan dikecilkan kepada %{dimensions}px
         email: Anda akan dihantar e-mel pengesahan
         locale: Bahasa untuk antara muka pengguna, e-mel dan pemberitahuan segera
         password: Gunakan sekurang-kurangnya 8 aksara
diff --git a/config/locales/simple_form.sco.yml b/config/locales/simple_form.sco.yml
index ddaeb8d3c..4127a8e7e 100644
--- a/config/locales/simple_form.sco.yml
+++ b/config/locales/simple_form.sco.yml
@@ -15,7 +15,7 @@ sco:
         text_html: Optional. Ye kin uise post syntax. Ye kin <a href="%{path}">add warnin presets</a> tae save time
         type_html: Pick whit tae dae wi <strong>%{acct}</strong>
         types:
-          disable: Stap the uiser fae uisin their accoont, but dinnae delete or hide therir content.
+          disable: Stap the uiser fae uisin their accoont, but dinnae delete or hide their content.
           none: Uise this fir tae sen a warnin tae the uiser, athoot stertin onie ither actions.
           sensitive: Mak aw this uiser's media attachments hae a flag sayin it's sensitive.
           silence: Stap the uiser fae bein able tae post wi public visibility, plank their posts an notes fae fowk no follaein them.
@@ -30,7 +30,7 @@ sco:
       appeal:
         text: Ye kin ainly appeal a strike the wance
       defaults:
-        autofollow: Fowk thit sign up throu the invite wull follae ye automatic
+        autofollow: Fowk thit signs up throu the invite wull follae ye automatic
         avatar: PNG, GIF or JPG. At maist %{size}. Wull get doonscaled tae %{dimensions}px
         bot: Signal tae ithers thit the accoont maistly performs automatit actions an mibbie wullnae be monitort
         context: Ae or mair contexts whaur the filter shuid apply
@@ -40,7 +40,7 @@ sco:
         discoverable: Alloo yer accoont fir tae get discovert bi strangers throu recommendations, trends an ither features
         email: Ye'll be sent a confirmation email
         fields: Ye kin hae up tae 4 items displayed as a table on yer profile
-        header: PNG, GIF or JPG. At maist %{size}. Wull het doonscaled tae %{dimensions}px
+        header: PNG, GIF or JPG. At maist %{size}. Wull get doonscaled tae %{dimensions}px
         inbox_url: Copy the URL fae the frontpage o the relay thit ye'r wantin tae uise
         irreversible: Filtert posts wull dizappear irreversibly, even if filter is taen aff efter
         locale: The leid o the uiser interface, emails an push notes
@@ -48,7 +48,7 @@ sco:
         password: Uise at least 8 chairecters
         phrase: Wull get matched regairdless o case in text or content warnin o a post
         scopes: Whit APIs the application wull be allooed tae access. Gin ye dinnae pick a tap-level scope, ye dinnae need tae pick anes ane at a time.
-        setting_aggregate_reblogs: Dinnae shaw new heezes fir posts thit hae been juist heezed (ainly affects new-received heezes)
+        setting_aggregate_reblogs: Dinnae shaw new heezes fir posts thit haes been juist heezed (ainly affects new-received heezes)
         setting_always_send_emails: Uisually email notes wullnae get sent whan ye'r uisin Mastodon at the time
         setting_default_sensitive: Sensitive media is hid bi defaut an kin be revealt wi a chap
         setting_display_media_default: Hide media mairked sensitive
@@ -57,7 +57,7 @@ sco:
         setting_hide_network: Wha ye follae an thaim thit follaes ye wull get hid on yer profile
         setting_noindex: Affects yer public profile an post pages
         setting_show_application: The application thit ye uise fir tae post wull be displayed in the detailt view o yer posts
-        setting_use_blurhash: Gradients are based aff o the colors o the image thit's hid, but ye cannae see onie details
+        setting_use_blurhash: Gradients is based aff o the colors o the image thit's hid, but ye cannae see onie details
         setting_use_pending_items: Plank timeline updates ahin a chap insteid o automatic scrowin o the feed
         username: Yer uisernemm wull be a ane aff on %{domain}
         whole_word: Whan the keywird or phrase is alphanumeric ainly, it wull ainly get applied if it matches the haill wird
@@ -303,3 +303,7 @@ sco:
     required:
       mark: "*"
       text: requirit
+    title:
+      sessions:
+        webauthn: Uise ane o yer security keys fir tae sign in
+    'yes': Ay
diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml
index 459e0e8e0..7d4f2e0cc 100644
--- a/config/locales/simple_form.sr.yml
+++ b/config/locales/simple_form.sr.yml
@@ -2,19 +2,42 @@
 sr:
   simple_form:
     hints:
+      account_alias:
+        acct: Наведи корисничко_име@домен налога са којег желиш да пређеш
+      account_migration:
+        acct: Наведи корисничко_име@домен налога на који желиш да пређеш
       account_warning_preset:
         text: Можете користити синтаксу труба, као што су нпр. УРЛ-ова, тарабе и помињања
+        title: Опционо. Није видљиво примаоцу
       admin_account_action:
+        include_statuses: Корисник ће видети које су објаве проузроковале модерирање или упозорење
         send_email_notification: Корисник ће добити објашњење тога шта му се десило са налога
         text_html: Опционално. Можете користити синтаксу труба. Можете <a href="%{path}">додати упозоравајућа преподешавање</a> да сачувате време
         type_html: Изаберите шта да радите са <strong>%{acct}</strong>
+        types:
+          disable: Спречи корисника да користи свој налог, али немој брисати или сакривати његов садржај.
+          none: Користи ово да пошаљеш упозорење кориснику, без покретања било које друге акције.
+          sensitive: Учини да сви медијски прилози овог корисника присилно буду означени као осетљиви.
+          silence: Онемогући корисника да објављује јавно, сакриј све његове своје објаве и обавештења од корисника који га не прате.
+          suspend: Спречи било какву интеракцију са овог налога или са њим и избриши његов садржај. Може да се опозове у року од 30 дана.
         warning_preset_id: Опционално. Можете и даље додати прилагођени текст на крај пресета
+      announcement:
+        all_day: Биће приказани само датуми временског опсега који су означени
+        ends_at: Опционо. Објава ће бити аутоматски опозвана у овом тренутку
+        scheduled_at: Остави празно да би најава била одмах објављена
+        starts_at: Опционо. У случају да је најава везана за одређени временски распон
+        text: Можеш користити пост синтаксу. Води рачуна о простору који ће објава заузимати на екрану корисника
+      appeal:
+        text: На брисање се можеш жалити само једном
       defaults:
         autofollow: Особе које се пријаве кроз позивнице ће вас аутоматски запратити
         avatar: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px
         bot: Овај налог углавном врши аутоматизоване радње и можда се не надгледа
         context: Један или више контекста у којима треба да се примени филтер
+        current_password: Унеси лозинку текућег налога из безбедносних разлога
+        current_username: Унеси корисничко име текућег налога за потврду
         digest: Послато после дужег периода неактивности са прегледом свих битних ствари које сте добили док сте били одсутни
+        discoverable: Дозволи непознатим корисницима да открију твој налог путем препорука, трендова и других функција
         email: Биће вам послата е-пошта са потврдом
         fields: Можете имати до 4 ставке приказане као табела на вашем налогу
         header: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px
@@ -26,36 +49,89 @@ sr:
         phrase: Биће упарена без обзира на велико или мало слово у тексту или упозорења о садржају трубе
         scopes: Којим API-јима ће апликација дозволити приступ. Ако изаберете опсег највишег нивоа, не морате одабрати појединачне.
         setting_aggregate_reblogs: Не показуј нова дељења за трубе које су недавно подељене (утиче само на недавно примљена дељења)
+        setting_always_send_emails: Обавештења е-поштом се по правилу неће слати када активно користиш Мастодон
+        setting_default_sensitive: Осетљиви медији су подразумевано скривени и могу се открити кликом
         setting_display_media_default: Сакриј медије означене као осетљиве
         setting_display_media_hide_all: Увек сакриј све медије
         setting_display_media_show_all: Увек прикажи медије означене као осетљиве
         setting_hide_network: Кога пратите и ко вас прати неће бити приказано на вашем налогу
         setting_noindex: Утиче на Ваш јавни налог и статусне стране
+        setting_show_application: Апликација коју користиш за објављивање биће приказана у детаљном приказу твојих објава
+        setting_use_blurhash: Градијент се заснива на бојама скривених визуелних приказа, али прикрива све детаље
         username: Ваш надимак ће бити јединствен на %{domain}
         whole_word: Када је кључна реч или фраза искључиво алфанумеричка, биће примењена само ако се подудара са целом речи
+      form_admin_settings:
+        closed_registrations_message: Приказује се када су пријаве затворене
+        content_cache_retention_period: Када се постави на позитивну вредност, објаве са других сервера ће бити избрисане након наведеног броја дана. Ово може бити неповратно.
+        custom_css: Можеш да примениш прилагођене стилове на веб верзији Мастодона.
+        mascot: Замењује илустрацију у напредном веб интерфејсу.
+        media_cache_retention_period: Када се постави на позитивну вредност, преузете медијске датотеке ће бити избрисане након наведеног броја дана, и поново преузете на захтев.
+        profile_directory: Директоријум профила наводи све кориснике који су се определили да буду видљиви.
+        require_invite_text: Када регистрације захтевају ручно одобрење, постави да унос текста „Зашто желиш да се придружиш?“ буде обавезан, а не опциони
+        site_contact_email: Како корисници могу да те контактирају за правна питања или питања у вези подршке.
+        site_contact_username: Како корисници могу да те контактирају на Мастодону.
       imports:
         data: CSV фајл извезен са друге Мастодонт инстанце
+      ip_block:
+        comment: Опционо. Запамти зашто си додао ово правило.
+        expires_in: IP адресе су ограничени ресурс, понекад се деле и често мењају корисника. Због тога се IP блокови на неограничено време не препоручују.
+        ip: Унеси IPv4 или IPv6 адресу. Можеш блокирати читаве опсеге користећи CIDR синтаксу. Води рачуна да себе не закључаш!
+        severities:
+          no_access: Блокирај приступ свим ресурсима
+          sign_up_block: Нове пријаве неће бити могуће
+          sign_up_requires_approval: Нове пријаве ће захтевати твоје одобрење
+        severity: Изабери шта ће се десити са захтевима са ове IP адресе
+      rule:
+        text: Опиши правило или захтев за кориснике на овом серверу. Потруди се да опис буде кратак и једноставан
       sessions:
         otp: 'Унесите двофакторски код са Вашег телефона или користите један од кодова за опоравак:'
+        webauthn: Ако је то USB кључ, обавезно га убаци и, ако је потребно, притисни га.
+      tag:
+        name: Могу се само променити мала слова у велика, на пример, да би било читљивије
       user:
         chosen_languages: Када означите, трубе у изабраним језицима ће се приказати на јавној временској линији
+        role: Улога контролише које дозволе корисник има
+      user_role:
+        color: Боја која ће се користити за улогу у целом корисничком интерфејсу, као RGB, у хексадецималном формату
+        highlighted: Ово чини улогу јавно видљивом
+        name: Јавни назив улоге, ако је улога подешена да се приказује као значка
+        permissions_as_keys: Корисници са овом улогом ће имати приступ...
+        position: Виша улога одлучује о решавању сукоба у одређеним ситуацијама. Одређене радње се могу извршити само на улогама са нижим приоритетом
+      webhook:
+        events: Изаберите догађаје за слање
+        url: Где ће се догађаји слати
     labels:
       account:
         fields:
           name: Етикета
           value: Садржај
+      account_alias:
+        acct: Ручица (@) старог налога
+      account_migration:
+        acct: Ручица (@) новог налога
       account_warning_preset:
         text: Текст пресета
+        title: Наслов
       admin_account_action:
+        include_statuses: Укључи пријављене објаве у е-пошту
         send_email_notification: Обавести корисника преко е-поште
         text: Прилагођено упозорење
         type: Радња
         types:
           disable: Онемогући
           none: Не ради ништа
+          sensitive: Осетљиво
           silence: Утишај
           suspend: Обуставите и неповратно избришите податке о налогу
         warning_preset_id: Користи упозоравајући пресет
+      announcement:
+        all_day: Целодневни догађај
+        ends_at: Крај догађаја
+        scheduled_at: Планирај објављивање
+        starts_at: Почетак догађаја
+        text: Најава
+      appeal:
+        text: Објасни зашто ову одлуку треба поништити
       defaults:
         autofollow: Позовите да прати ваш налог
         avatar: Аватар
@@ -72,6 +148,7 @@ sr:
         expires_in: Истиче након
         fields: Метаподаци налога
         header: Заглавље
+        honeypot: "%{label} (не попуњавај)"
         inbox_url: URL од релејног пријемног сандучета
         irreversible: Испустити уместо сакрити
         locale: Језик
@@ -82,13 +159,17 @@ sr:
         otp_attempt: Двофакторски код
         password: Лозинка
         phrase: Кључна реч или фраза
+        setting_advanced_layout: Омогући напредни веб интерфејс
         setting_aggregate_reblogs: Групиши дељења у временским линијама
+        setting_always_send_emails: Увек шаљи обавештења е-поштом
         setting_auto_play_gif: Аутоматски пуштај анимиране GIF-ове
         setting_boost_modal: Прикажи дијалог за потврду пре давања подршке
+        setting_crop_images: Изрежи слике у непроширеним објавама на 16x9
         setting_default_language: Језик објављивања
         setting_default_privacy: Приватност објава
         setting_default_sensitive: Увек означи мултимедију као осетљиву
         setting_delete_modal: Прикажи дијалог за потврду пре брисања тута
+        setting_disable_swiping: Онемогући покрете превлачења
         setting_display_media: Приказ медија
         setting_display_media_default: Подразумевано
         setting_display_media_hide_all: Сакриј све
@@ -97,26 +178,104 @@ sr:
         setting_hide_network: Сакриј своју мрежу
         setting_noindex: Одјави се од индексирања search engine-а
         setting_reduce_motion: Смањи покрете у анимацијама
+        setting_show_application: Откриј апликацију која се користи за слање постова
         setting_system_font_ui: Користи системски фонт
         setting_theme: Тема сајта
+        setting_trends: Прикажи данашње трендове
         setting_unfollow_modal: Прикажи дијалог за потврду пре него што отпратите некога
+        setting_use_blurhash: Прикажи градијенте у боји за скривене медије
+        setting_use_pending_items: Спори режим
         severity: Оштрина
+        sign_in_token_attempt: Сигурносни код
+        title: Наслов
         type: Тип увоза
         username: Корисничко име
         username_or_email: Корисничко име или Е-пошта
         whole_word: Цела реч
+      email_domain_block:
+        with_dns_records: Укључите MX записе и IP адресе домена
+      featured_tag:
+        name: Хеш ознака
+      filters:
+        actions:
+          hide: Сакриј у потпуности
+          warn: Сакриј уз упозорење
+      form_admin_settings:
+        backups_retention_period: Период чувања корисничке архиве
+        bootstrap_timeline_accounts: Увек препоручи ове налоге новим корисницима
+        closed_registrations_message: Прилагођена порука када пријаве нису могуће
+        content_cache_retention_period: Период чувања кеша садржаја
+        custom_css: Прилагођени CSS
+        mascot: Прилагођена маскота (наслеђе)
+        media_cache_retention_period: Период чувања кеша медија
+        profile_directory: Омогући директоријум профила
+        registrations_mode: Ко може да се пријави
+        require_invite_text: Затражи разлог за приступање
+        show_domain_blocks: Пприкажи блокове домена
+        show_domain_blocks_rationale: Покажи зашто су домени блокирани
+        site_contact_email: Е-адреса за контакт
+        site_contact_username: Корисничко име за контакт
+        site_extended_description: Проширени опис
+        site_short_description: Опис сервера
+        site_terms: Политика приватности
+        site_title: Име сервера
+        theme: Подразумевана тема
+        thumbnail: Сличица сервера
+        timeline_preview: Дозволи неауторизован приступ јавним временским осама
+        trendable_by_default: Дозволи трендове без претходног прегледа
+        trends: Омогући трендове
       interactions:
         must_be_follower: Блокирај обавештења од корисника који ме не прате
         must_be_following: Блокирај обавештења од људи које не пратим
         must_be_following_dm: Блокирај директне поруке од људи које не пратим
+      invite:
+        comment: Коментар
+      invite_request:
+        text: Зашто желиш да се придружиш?
+      ip_block:
+        comment: Коментар
+        ip: IP
+        severities:
+          no_access: Блокирај приступ
+          sign_up_block: Блокирај пријаве
+          sign_up_requires_approval: Ограничи пријаве
+        severity: Правило
       notification_emails:
+        appeal: Неко се жали на одлуку модератора
         digest: Шаљи е-пошту са сажетком
         favourite: Шаљи е-пошту када неко стави да му је Ваш статус омиљен
         follow: Шаљи е-пошту када Вас неко запрати
         follow_request: Шаљи е-пошту када неко затражи да Вас запрати
         mention: Шаљи е-пошту када Вас неко помене
+        pending_account: Нови налог треба прегледати
         reblog: Шаљи е-пошту када неко подржи Ваш статус
+        report: Поднета је нова пријава
+        trending_tag: Нови тренд треба прегледати
+      rule:
+        text: Правило
+      tag:
+        listable: Дозволи да се ова хеш ознака појављује у претрагама и предлозима
+        name: Хеш ознака
+        trendable: Дозволи да се ова хеш ознака појави у оквиру трендова
+        usable: Дозволи објавама да користе ову хеш ознаку
+      user:
+        role: Улога
+      user_role:
+        color: Боја беџа
+        highlighted: Прикажи улогу и беџ на профилима корисника
+        name: Име
+        permissions_as_keys: Овлашћења
+        position: Приоритет
+      webhook:
+        events: Омогућени догађаји
+        url: URL крајње тачке
     'no': Не
+    not_recommended: Није препоручено
+    recommended: Препоручено
     required:
+      mark: "*"
       text: обавезно
+    title:
+      sessions:
+        webauthn: Користи један од својих безбедносних кључева за пријављивање
     'yes': Да
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index f1a9b3e29..06771a94b 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -47,7 +47,7 @@ th:
         locked: ควบคุมผู้ที่สามารถติดตามคุณด้วยตนเองได้โดยอนุมัติคำขอติดตาม
         password: ใช้อย่างน้อย 8 ตัวอักษร
         phrase: จะถูกจับคู่โดยไม่คำนึงถึงตัวพิมพ์ใหญ่เล็กในข้อความหรือคำเตือนเนื้อหาของโพสต์
-        scopes: API ใดที่จะอนุญาตให้แอปพลิเคชันเข้าถึง หากคุณเลือกขอบเขตระดับบนสุด คุณไม่จำเป็นต้องเลือกแต่ละขอบเขต
+        scopes: API ใดที่จะอนุญาตให้แอปพลิเคชันเข้าถึง หากคุณเลือกขอบเขตระดับบนสุด คุณไม่จำเป็นต้องเลือกขอบเขตแต่ละรายการ
         setting_aggregate_reblogs: ไม่แสดงการดันใหม่สำหรับโพสต์ที่เพิ่งดัน (มีผลต่อการดันที่ได้รับใหม่เท่านั้น)
         setting_always_send_emails: โดยปกติจะไม่ส่งการแจ้งเตือนอีเมลเมื่อคุณกำลังใช้ Mastodon อยู่
         setting_default_sensitive: ซ่อนสื่อที่ละเอียดอ่อนเป็นค่าเริ่มต้นและสามารถเปิดเผยได้ด้วยการคลิก
@@ -92,7 +92,7 @@ th:
         theme: ชุดรูปแบบที่ผู้เยี่ยมชมที่ออกจากระบบและผู้ใช้ใหม่เห็น
         thumbnail: แสดงภาพ 2:1 โดยประมาณควบคู่ไปกับข้อมูลเซิร์ฟเวอร์ของคุณ
         timeline_preview: ผู้เยี่ยมชมที่ออกจากระบบจะสามารถเรียกดูโพสต์สาธารณะล่าสุดที่มีในเซิร์ฟเวอร์
-        trendable_by_default: ข้ามการตรวจทานเนื้อหาที่กำลังนิยมด้วยตนเอง ยังคงสามารถเอาแต่ละรายการออกจากแนวโน้มได้หลังเกิดเหตุ
+        trendable_by_default: ข้ามการตรวจทานเนื้อหาที่กำลังนิยมด้วยตนเอง ยังคงสามารถเอารายการแต่ละรายการออกจากแนวโน้มได้หลังเกิดเหตุ
         trends: แนวโน้มแสดงว่าโพสต์, แฮชแท็ก และเรื่องข่าวใดกำลังได้รับความสนใจในเซิร์ฟเวอร์ของคุณ
       form_challenge:
         current_password: คุณกำลังเข้าสู่พื้นที่ปลอดภัย
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 09f427b4a..74ce8e942 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -51,7 +51,7 @@ uk:
         setting_aggregate_reblogs: Не показувати поширення для дописів, які нещодавно вже були поширені (не вплине на вже отримані поширення)
         setting_always_send_emails: Зазвичай, під час активного користування Mastodon, сповіщення не будуть відправлятися електронною поштою
         setting_default_sensitive: Дражливі медіа приховані за промовчанням та можуть бути розкрити кліком
-        setting_display_media_default: Приховувати медіа, помічені як дражливі
+        setting_display_media_default: Ховати медіа, позначені делікатними
         setting_display_media_hide_all: Завжди приховувати медіа
         setting_display_media_show_all: Завжди показувати медіа
         setting_hide_network: У вашому профілі не буде показано підписки та підписників
@@ -195,7 +195,7 @@ uk:
         setting_crop_images: Обрізати зображення в нерозгорнутих дописах до 16x9
         setting_default_language: Мова дописів
         setting_default_privacy: Видимість дописів
-        setting_default_sensitive: Позначити медіа як дражливе
+        setting_default_sensitive: Позначати медіа делікатними
         setting_delete_modal: Показувати діалог підтвердження під час видалення допису
         setting_disable_swiping: Вимкнути рух посування
         setting_display_media: Показ медіа
@@ -211,7 +211,7 @@ uk:
         setting_theme: Тема сайту
         setting_trends: Показувати популярні сьогодні дописи
         setting_unfollow_modal: Показувати діалог підтвердження під час відписки від когось
-        setting_use_blurhash: Відображати барвисті градієнти замість прихованих медіа
+        setting_use_blurhash: Показувати барвисті градієнти замість прихованих медіа
         setting_use_pending_items: Повільний режим
         severity: Серйозність
         sign_in_token_attempt: Код безпеки
@@ -271,12 +271,12 @@ uk:
       notification_emails:
         appeal: Хтось подає апеляцію на рішення модератора
         digest: Надсилати дайджест електронною поштою
-        favourite: Надсилати листа, коли хтось вподобає ваш допис
-        follow: Надсилати листа, коли хтось підписується на Вас
-        follow_request: Надсилати листа, коли хтось запитує дозволу на підписку
-        mention: Надсилати листа, коли хтось згадує Вас
+        favourite: Коли хтось вподобає ваш допис
+        follow: Коли хтось підписується на вас
+        follow_request: Коли хтось запитує дозвіл підписатися
+        mention: Коли хтось згадує вас
         pending_account: Надсилати електронного листа, коли новий обліковий запис потребує розгляду
-        reblog: Надсилати листа, коли хтось поширює ваш допис
+        reblog: Коли хтось поширює ваш допис
         report: Нову скаргу надіслано
         trending_tag: Нове популярне вимагає розгляду
       rule:
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 21f64126a..bbccc5839 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -14,6 +14,7 @@ sk:
       one: Sledujúci
       other: Sledovatelia
     following: Nasledujem
+    instance_actor_flash: Toto konto je virtuálny aktér, ktorý predstavuje samotný server, a nie konkrétneho používateľa. Používa sa na účely federácie a nemal by byť pozastavený.
     last_active: naposledy aktívny
     link_verified_on: Vlastníctvo tohto odkazu bolo skontrolované %{date}
     nothing_here: Nič tu nie je!
@@ -36,10 +37,12 @@ sk:
     accounts:
       add_email_domain_block: Pridaj e-mailovú doménu na zoznam zakázaných
       approve: Schváľ
+      approved_msg: Úspešne schválená prihláška %{username}
       are_you_sure: Si si istý/á?
       avatar: Maskot
       by_domain: Doména
       change_email:
+        changed_msg: E-mail úspešne zmenený!
         current_email: Súčasný email
         label: Zmeň email
         new_email: Nový email
@@ -57,15 +60,20 @@ sk:
       delete: Vymaž dáta
       deleted: Vymazané
       demote: Degraduj
+      destroyed_msg: "%{username} je teraz zaradený do fronty na okamžité vymazanie"
       disable: Zablokuj
+      disable_sign_in_token_auth: Zakázanie overovania e-mailovým tokenom
       disable_two_factor_authentication: Vypni dvoj-faktorové overovanie
       disabled: Blokovaný
       display_name: Ukáž meno
       domain: Doména
       edit: Uprav
+      email: Email
       email_status: Stav emailu
       enable: Povoľ
+      enable_sign_in_token_auth: Povolenie overovania e-mailovým tokenom
       enabled: Povolený
+      enabled_msg: Úspešne rozmrazené konto %{username}
       followers: Sledujúci
       follows: Sledovania
       header: Záhlavie
@@ -82,6 +90,8 @@ sk:
       login_status: Stav prihlásenia
       media_attachments: Prílohy
       memorialize: Zmeň na "Navždy budeme spomínať"
+      memorialized: Spomienka na
+      memorialized_msg: Úspešne zmenené %{username} na spomienkové konto
       moderation:
         active: Aktívny/a
         all: Všetko
@@ -98,14 +108,19 @@ sk:
       not_subscribed: Neodoberá
       pending: Vyžaduje posúdenie
       perform_full_suspension: Vylúč
+      previous_strikes: Predchádzajúce údery
       promote: Vyzdvihni
       protocol: Protokol
       public: Verejná časová os
       push_subscription_expires: PuSH odoberanie expiruje
       redownload: Obnov profil
+      redownloaded_msg: Úspešne obnovený profil %{username} z pôvodného
       reject: Zamietni
+      rejected_msg: Úspešne zamietnutá prihláška %{username}
       remove_avatar: Vymaž avatar
       remove_header: Vymaž záhlavie
+      removed_avatar_msg: Úspešne odstránený obrázok avatara %{username}
+      removed_header_msg: Úspešne odstránený obrázok hlavičky %{username}
       resend_confirmation:
         already_confirmed: Tento užívateľ je už potvrdený
         send: Odošli potvrdzovací email znovu
@@ -120,6 +135,7 @@ sk:
       security_measures:
         only_password: Iba heslo
         password_and_2fa: Heslo a dvoj-faktorové overovanie
+      sensitive: Citlivé na silu
       sensitized: Označený ako chúlostivý
       shared_inbox_url: URL zdieľanej schránky
       show:
@@ -128,18 +144,25 @@ sk:
       silence: Stíš
       silenced: Stíšený/é
       statuses: Príspevkov
+      strikes: Predchádzajúce údery
       subscribe: Odoberaj
       suspend: Vylúč
       suspended: Vylúčený/á
+      suspension_irreversible: Údaje tohto účtu boli nenávratne vymazané. Účet môžete zrušiť, aby sa dal používať, ale neobnovia sa žiadne údaje, ktoré predtým mal.
+      suspension_reversible_hint_html: Účet bol pozastavený a údaje budú úplne odstránené dňa %{date}. Dovtedy je možné účet obnoviť bez akýchkoľvek nepriaznivých účinkov. Ak chcete okamžite odstrániť všetky údaje účtu, môžete tak urobiť nižšie.
       title: Účty
       unblock_email: Odblokuj emailovú adresu
+      unblocked_email_msg: Úspešné odblokovanie e-mailovej adresy %{username}
       unconfirmed_email: Nepotvrdený email
+      undo_sensitized: Zrušenie citlivosti na silu
       undo_silenced: Zruš stíšenie
       undo_suspension: Zruš blokovanie
+      unsilenced_msg: Úspešne zrušené obmedzenie účtu %{username}
       unsubscribe: Prestaň odoberať
       username: Prezývka
       view_domain: Ukáž súhrn pre doménu
       warn: Varuj
+      web: Web
       whitelisted: Na bielej listine
     action_logs:
       action_types:
@@ -154,6 +177,7 @@ sk:
         create_domain_block: Vytvor zákaz domény
         create_email_domain_block: Vytvor zákaz emailovej domény
         create_ip_block: Vytvor IP pravidlo
+        create_user_role: Vytvoriť rolu
         demote_user: Zniž užívateľskú rolu
         destroy_announcement: Vymaž oboznámenie
         destroy_custom_emoji: Vymaž vlastné emotikony
@@ -184,7 +208,9 @@ sk:
         unsuspend_account: Odblokuj účet
         update_announcement: Aktualizuj oboznámenie
         update_domain_block: Aktualizuj zákaz domény
+        update_ip_block: Aktualizovať IP pravidlo
         update_status: Aktualizuj stav
+        update_user_role: Aktualizovať rolu
       actions:
         assigned_to_self_report_html: "%{name} pridelil/a hlásenie užívateľa %{target} sebe"
         change_email_user_html: "%{name} zmenil/a emailovú adresu užívateľa %{target}"
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index cff92eb93..eb80ab9ee 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -19,10 +19,10 @@ sr:
     pin_errors:
       following: Морате пратити ову особу ако хоћете да потврдите
     posts:
-      few: Трубе
-      one: Труба
-      other: Трубе
-    posts_tab_heading: Трубе
+      few: Објаве
+      one: Објава
+      other: Објава
+    posts_tab_heading: Објаве
   admin:
     account_actions:
       action: Извршите радњу
@@ -235,6 +235,11 @@ sr:
       unassign: Уклони доделу
       unresolved: Нерешене
       updated_at: Ажурирана
+    settings:
+      appearance:
+        title: Изглед
+      discovery:
+        public_timelines: Јавне временске линије
     statuses:
       back_to_account: Назад на страну налога
       media:
@@ -343,7 +348,7 @@ sr:
     contexts:
       home: Временска линија почетне
       notifications: Обавештења
-      public: Јавна временска линија
+      public: Јавне временске линије
       thread: Разговори
     edit:
       title: Измени филтер
@@ -436,6 +441,7 @@ sr:
     prev: Претходни
   preferences:
     other: Остало
+    public_timelines: Јавне временске линије
   remote_follow:
     missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог
   scheduled_statuses:
@@ -479,6 +485,7 @@ sr:
     revoke_success: Сесија успешно опозвана
     title: Сесије
   settings:
+    appearance: Изглед
     authorized_apps: Ауторизоване апликације
     back: Назад на Мастодон
     delete: Брисање налога
@@ -486,6 +493,7 @@ sr:
     edit_profile: Измена налога
     export: Извоз података
     import: Увоз
+    import_and_export: Увоз и извоз
     migrate: Пребацивање налога
     notifications: Обавештења
     preferences: Подешавања
@@ -513,7 +521,7 @@ sr:
     over_character_limit: ограничење од %{max} карактера прекорачено
     pin_errors:
       limit: Већ имате прикачен највећи број труба
-      ownership: Туђе трубе не могу да се прикаче
+      ownership: Туђа објава се не може закачити
       reblog: Подршка не може да се прикачи
     show_more: Прикажи још
     sign_in_to_participate: Пријавите се да учествујете у разговору
@@ -525,7 +533,7 @@ sr:
       unlisted: Неизлистано
       unlisted_long: Свако може да види, али није излистано на јавним временским линијама
   stream_entries:
-    pinned: Прикачена труба
+    pinned: Закачена објава
     reblogged: подржано
     sensitive_content: Осетљив садржај
   themes:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 7aaa91280..5be7e33f3 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -97,8 +97,8 @@ th:
       most_recent_activity: กิจกรรมล่าสุด
       most_recent_ip: IP ล่าสุด
       no_account_selected: ไม่มีการเปลี่ยนแปลงบัญชีเนื่องจากไม่มีการเลือก
-      no_limits_imposed: ไม่มีการกำหนดขีดจำกัด
-      no_role_assigned: ไม่มีการกำหนดบทบาท
+      no_limits_imposed: ไม่ได้กำหนดขีดจำกัด
+      no_role_assigned: ไม่ได้กำหนดบทบาท
       not_subscribed: ไม่ได้บอกรับ
       pending: การตรวจทานที่รอดำเนินการ
       perform_full_suspension: ระงับ
@@ -383,12 +383,12 @@ th:
         create: สร้างการปิดกั้น
         hint: การปิดกั้นโดเมนจะไม่ป้องกันการสร้างรายการบัญชีในฐานข้อมูล แต่จะนำไปใช้วิธีการควบคุมที่เฉพาะเจาะจงกับบัญชีเหล่านั้นย้อนหลังและโดยอัตโนมัติ
         severity:
-          desc_html: "<strong>จำกัด</strong> จะทำให้โพสต์จากบัญชีบนโดเมนนี้ถูกซ่อนจากผู้ใช้ที่ไม่ได้ติดตาม <strong>ระงับ</strong> จะทำให้ เนื้อหา, สื่อ และ ข้อมูลโปรไฟล์ทั้งหมด ในบัญชีของโดเมนนี้ถูกลบออกจากเซิฟเวอร์ ใช้<strong>ไม่มี</strong> ถ้าจะต้องการแค่ปฏิเสธไฟล์สื่อ"
+          desc_html: "<strong>จำกัด</strong> จะทำให้โพสต์จากบัญชีที่โดเมนนี้ไม่ปรากฏแก่ใครก็ตามที่ไม่ได้กำลังติดตามเขา <strong>ระงับ</strong> จะเอาข้อมูลเนื้อหา, สื่อ และโปรไฟล์ทั้งหมดสำหรับบัญชีของโดเมนนี้ออกจากเซิร์ฟเวอร์ของคุณ ใช้ <strong>ไม่มี</strong> หากคุณแค่ต้องการปฏิเสธไฟล์สื่อ"
           noop: ไม่มี
           silence: จำกัด
           suspend: ระงับ
         title: การปิดกั้นโดเมนใหม่
-      no_domain_block_selected: ไม่มีการเปลี่ยนแปลงการปิดกั้นโดเมนเนื่องจากไม่ได้เลือกไว้
+      no_domain_block_selected: ไม่มีการเปลี่ยนแปลงการปิดกั้นโดเมนเนื่องจากไม่มีการเลือก
       not_permitted: คุณไม่ได้รับอนุญาตให้ทำการกระทำนี้
       obfuscate: ทำให้ชื่อโดเมนคลุมเครือ
       obfuscate_hint: ปิดบังชื่อโดเมนบางส่วนในรายการหากมีการเปิดใช้งานการประกาศรายการการจำกัดโดเมน
@@ -422,16 +422,18 @@ th:
       title: โดเมนอีเมลที่ปิดกั้นอยู่
     export_domain_allows:
       new:
-        title: นำเข้าโดเมนที่อนุญาต
-      no_file: ไม่มีไฟล์ที่เลือก
+        title: นำเข้าการอนุญาตโดเมน
+      no_file: ไม่ได้เลือกไฟล์
     export_domain_blocks:
       import:
-        description_html: คุณกำลังจะนำเข้ารายการ การปิดกั้นโดเมน โปรดตรวจทานรายการอย่างระมัดระวังโดยเฉพาะถ้าคุณไม่ได้เขียนรายการนี้เอง
-        private_comment_template: นำเข้าจาก %{source} ใน %{date}
-        title: นำเข้า การปิดกั้นโดเมน
+        description_html: คุณกำลังจะนำเข้ารายการการปิดกั้นโดเมน โปรดตรวจทานรายการนี้อย่างระมัดระวังมาก โดยเฉพาะอย่างยิ่งหากคุณไม่ได้สร้างรายการนี้ด้วยตัวคุณเอง
+        existing_relationships_warning: ความสัมพันธ์การติดตามที่มีอยู่
+        private_comment_description_html: 'เพื่อช่วยให้คุณติดตามว่าการปิดกั้นที่นำเข้ามาจากที่ใด จะสร้างการปิดกั้นที่นำเข้าโดยมีความคิดเห็นส่วนตัวดังต่อไปนี้: <q>%{comment}</q>'
+        private_comment_template: นำเข้าจาก %{source} เมื่อ %{date}
+        title: นำเข้าการปิดกั้นโดเมน
       new:
-        title: นำเข้า การปิดกั้นโดเมน
-      no_file: ไม่มีไฟล์ที่เลือก
+        title: นำเข้าการปิดกั้นโดเมน
+      no_file: ไม่ได้เลือกไฟล์
     follow_recommendations:
       description_html: "<strong>คำแนะนำการติดตามช่วยให้ผู้ใช้ใหม่ค้นหาเนื้อหาที่น่าสนใจได้อย่างรวดเร็ว</strong> เมื่อผู้ใช้ไม่ได้โต้ตอบกับผู้อื่นมากพอที่จะสร้างคำแนะนำการติดตามส่วนบุคคล จะแนะนำบัญชีเหล่านี้แทน จะคำนวณคำแนะนำใหม่เป็นประจำทุกวันจากบัญชีต่าง ๆ ที่มีการมีส่วนร่วมล่าสุดสูงสุดและจำนวนผู้ติดตามในเซิร์ฟเวอร์สูงสุดสำหรับภาษาที่กำหนด"
       language: สำหรับภาษา
@@ -560,6 +562,8 @@ th:
         mark_as_sensitive_description_html: จะทำเครื่องหมายสื่อในโพสต์ที่รายงานว่าละเอียดอ่อนและจะบันทึกการดำเนินการเพื่อช่วยให้คุณเลื่อนระดับการละเมิดในอนาคตโดยบัญชีเดียวกัน
         other_description_html: ดูตัวเลือกเพิ่มเติมสำหรับการควบคุมพฤติกรรมของบัญชีและปรับแต่งการสื่อสารไปยังบัญชีที่รายงาน
         resolve_description_html: จะไม่ใช้การกระทำกับบัญชีที่รายงาน ไม่มีการบันทึกการดำเนินการ และจะปิดรายงาน
+        silence_description_html: โปรไฟล์จะปรากฏแก่เฉพาะผู้ที่ติดตามโปรไฟล์อยู่แล้วหรือค้นหาโปรไฟล์ด้วยตนเองเท่านั้น จำกัดการเข้าถึงโปรไฟล์อย่างมาก สามารถแปลงกลับได้เสมอ
+        suspend_description_html: โปรไฟล์และเนื้อหาของโปรไฟล์ทั้งหมดจะเข้าถึงไม่ได้จนกว่าจะลบโปรไฟล์ในที่สุด การโต้ตอบกับบัญชีจะเป็นไปไม่ได้ แปลงกลับได้ภายใน 30 วัน
       actions_description_html: ตัดสินใจว่าการกระทำใดที่จะใช้เพื่อแก้ปัญหารายงานนี้ หากคุณใช้การกระทำที่เป็นการลงโทษกับบัญชีที่รายงาน จะส่งการแจ้งเตือนอีเมลถึงเขา ยกเว้นเมื่อมีการเลือกหมวดหมู่ <strong>สแปม</strong>
       add_to_report: เพิ่มข้อมูลเพิ่มเติมไปยังรายงาน
       are_you_sure: คุณแน่ใจหรือไม่?
@@ -567,6 +571,7 @@ th:
       assigned: ผู้ควบคุมที่ได้รับมอบหมาย
       by_target_domain: โดเมนของบัญชีที่ได้รับการรายงาน
       category: หมวดหมู่
+      category_description_html: จะอ้างถึงเหตุผลที่บัญชีและ/หรือเนื้อหานี้ได้รับการรายงานในการสื่อสารกับบัญชีที่ได้รับการรายงาน
       comment:
         none: ไม่มี
       comment_description_html: 'เพื่อให้ข้อมูลเพิ่มเติม %{name} ได้เขียน:'
@@ -597,6 +602,7 @@ th:
       skip_to_actions: ข้ามไปยังการกระทำ
       status: สถานะ
       statuses: เนื้อหาที่รายงาน
+      statuses_description_html: จะอ้างถึงเนื้อหาที่ละเมิดในการสื่อสารกับบัญชีที่ได้รับการรายงาน
       target_origin: จุดเริ่มต้นของบัญชีที่ได้รับการรายงาน
       title: รายงาน
       unassign: เลิกมอบหมาย
@@ -617,6 +623,7 @@ th:
       description_html: ด้วย <strong>บทบาทผู้ใช้</strong> คุณสามารถปรับแต่งว่าฟังก์ชันและพื้นที่ใดของ Mastodon ที่ผู้ใช้ของคุณสามารถเข้าถึง
       edit: แก้ไขบทบาท '%{name}'
       everyone: สิทธิอนุญาตเริ่มต้น
+      everyone_full_description_html: นี่คือ <strong>บทบาทพื้นฐาน</strong> ที่มีผลต่อ <strong>ผู้ใช้ทั้งหมด</strong> แม้แต่ผู้ใช้ที่ไม่มีบทบาทที่กำหนด บทบาทอื่น ๆ ทั้งหมดสืบทอดสิทธิอนุญาตจากบทบาทพื้นฐาน
       permissions_count:
         other: "%{count} สิทธิอนุญาต"
       privileges:
@@ -641,6 +648,7 @@ th:
         manage_reports: จัดการรายงาน
         manage_reports_description: อนุญาตให้ผู้ใช้ตรวจทานรายงานและทำการกระทำการควบคุมกับรายงาน
         manage_roles: จัดการบทบาท
+        manage_roles_description: อนุญาตให้ผู้ใช้จัดการและกำหนดบทบาทที่ต่ำกว่าบทบาทของเขา
         manage_rules: จัดการกฎ
         manage_rules_description: อนุญาตให้ผู้ใช้เปลี่ยนกฎของเซิร์ฟเวอร์
         manage_settings: จัดการการตั้งค่า
@@ -663,6 +671,7 @@ th:
     rules:
       add_new: เพิ่มกฎ
       delete: ลบ
+      description_html: ขณะที่ส่วนใหญ่อ้างว่าได้อ่านและยอมรับเงื่อนไขการให้บริการ ผู้คนมักจะไม่อ่านจนกว่าหลังจากปัญหาเกิดขึ้น <strong>ทำให้การดูกฎของเซิร์ฟเวอร์ของคุณอย่างรวดเร็วง่ายขึ้นโดยการระบุกฎของเซิร์ฟเวอร์ในรายการสัญลักษณ์แสดงหัวข้อย่อยแบบแบน</strong> พยายามทำให้กฎแต่ละข้อสั้นและเรียบง่าย แต่พยายามอย่าแบ่งกฎเป็นหลายรายการแยกเช่นกัน
       edit: แก้ไขกฎ
       empty: ยังไม่ได้กำหนดกฎของเซิร์ฟเวอร์
       title: กฎของเซิร์ฟเวอร์
@@ -670,16 +679,20 @@ th:
       about:
         manage_rules: จัดการกฎของเซิร์ฟเวอร์
         preamble: ให้ข้อมูลเชิงลึกเกี่ยวกับวิธีที่เซิร์ฟเวอร์ได้รับการดำเนินงาน ควบคุม ได้รับทุน
+        rules_hint: มีพื้นที่เฉพาะสำหรับกฎที่คาดหวังให้ผู้ใช้ของคุณปฏิบัติตาม
         title: เกี่ยวกับ
       appearance:
         preamble: ปรับแต่งส่วนติดต่อเว็บของ Mastodon
         title: ลักษณะที่ปรากฏ
       branding:
+        preamble: ตราสินค้าของเซิร์ฟเวอร์ของคุณสร้างความแตกต่างตราสินค้าของเซิร์ฟเวอร์ของคุณจากเซิร์ฟเวอร์อื่น ๆ ในเครือข่าย อาจแสดงข้อมูลนี้ข้ามสภาพแวดล้อมที่หลากหลาย เช่น ส่วนติดต่อเว็บของ Mastodon, แอปพลิเคชันเนทีฟ, ในการแสดงตัวอย่างลิงก์ในเว็บไซต์อื่น ๆ และภายในแอปการส่งข้อความ และอื่น ๆ ด้วยเหตุผลนี้ จึงเป็นการดีที่สุดที่จะทำให้ข้อมูลนี้ชัดเจน สั้น และกระชับ
         title: ตราสินค้า
       content_retention:
+        preamble: ควบคุมวิธีการจัดเก็บเนื้อหาที่ผู้ใช้สร้างขึ้นใน Mastodon
         title: การเก็บรักษาเนื้อหา
       discovery:
         follow_recommendations: คำแนะนำการติดตาม
+        preamble: การแสดงเนื้อหาที่น่าสนใจเป็นเครื่องมือในการเตรียมความพร้อมให้ผู้ใช้ใหม่ที่อาจไม่รู้จักใครก็ตามใน Mastodon ควบคุมวิธีที่คุณลักษณะการค้นพบต่าง ๆ ทำงานในเซิร์ฟเวอร์ของคุณ
         profile_directory: ไดเรกทอรีโปรไฟล์
         public_timelines: เส้นเวลาสาธารณะ
         title: การค้นพบ
@@ -760,6 +773,7 @@ th:
       links:
         allow: อนุญาตลิงก์
         allow_provider: อนุญาตผู้เผยแพร่
+        description_html: นี่คือลิงก์ที่กำลังได้รับการแบ่งปันเป็นจำนวนมากโดยบัญชีที่เซิร์ฟเวอร์ของคุณเห็นโพสต์จากในปัจจุบัน ลิงก์สามารถช่วยให้ผู้ใช้ของคุณค้นหาสิ่งที่กำลังเกิดขึ้นในโลก จะไม่แสดงลิงก์เป็นสาธารณะจนกว่าคุณจะอนุมัติผู้เผยแพร่ คุณยังสามารถอนุญาตหรือปฏิเสธลิงก์แต่ละรายการ
         disallow: ไม่อนุญาตลิงก์
         disallow_provider: ไม่อนุญาตผู้เผยแพร่
         no_link_selected: ไม่มีการเปลี่ยนแปลงลิงก์เนื่องจากไม่มีการเลือก
@@ -773,12 +787,14 @@ th:
       pending_review: การตรวจทานที่รอดำเนินการ
       preview_card_providers:
         allowed: ลิงก์จากผู้เผยแพร่นี้สามารถขึ้นแนวโน้ม
+        description_html: นี่คือโดเมนจากลิงก์ที่มักได้รับการแบ่งปันในเซิร์ฟเวอร์ของคุณ ลิงก์จะไม่ขึ้นแนวโน้มเป็นสาธารณะเว้นแต่จะอนุมัติโดเมนของลิงก์ การอนุมัติ (หรือการปฏิเสธ) ของคุณจะขยายไปยังโดเมนย่อย
         rejected: ลิงก์จากผู้เผยแพร่นี้จะไม่ขึ้นแนวโน้ม
         title: ผู้เผยแพร่
       rejected: ปฏิเสธแล้ว
       statuses:
         allow: อนุญาตโพสต์
         allow_account: อนุญาตผู้สร้าง
+        description_html: นี่คือโพสต์ที่เซิร์ฟเวอร์ของคุณทราบเกี่ยวกับที่กำลังได้รับการแบ่งปันและชื่นชอบเป็นจำนวนมากในปัจจุบันในขณะนี้ โพสต์สามารถช่วยให้ผู้ใช้ใหม่และที่กลับมาของคุณค้นหาผู้คนเพิ่มเติมที่จะติดตาม จะไม่แสดงโพสต์เป็นสาธารณะจนกว่าคุณจะอนุมัติผู้สร้าง และผู้สร้างอนุญาตให้แนะนำบัญชีของเขากับผู้อื่น คุณยังสามารถอนุญาตหรือปฏิเสธโพสต์แต่ละรายการ
         disallow: ไม่อนุญาตโพสต์
         disallow_account: ไม่อนุญาตผู้สร้าง
         no_status_selected: ไม่มีการเปลี่ยนแปลงโพสต์ที่กำลังนิยมเนื่องจากไม่มีการเลือก
@@ -794,6 +810,7 @@ th:
           tag_servers_dimension: เซิร์ฟเวอร์ยอดนิยม
           tag_servers_measure: เซิร์ฟเวอร์ต่าง ๆ
           tag_uses_measure: การใช้งานทั้งหมด
+        description_html: นี่คือแฮชแท็กที่กำลังปรากฏในโพสต์จำนวนมากที่เซิร์ฟเวอร์ของคุณเห็นในปัจจุบัน แฮชแท็กสามารถช่วยให้ผู้ใช้ของคุณค้นหาสิ่งที่ผู้คนกำลังพูดถึงมากที่สุดในขณะนี้ จะไม่แสดงแฮชแท็กเป็นสาธารณะจนกว่าคุณจะอนุมัติแฮชแท็ก
         listable: สามารถแนะนำ
         no_tag_selected: ไม่มีการเปลี่ยนแปลงแท็กเนื่องจากไม่มีการเลือก
         not_listable: จะไม่แนะนำ
@@ -818,9 +835,11 @@ th:
     webhooks:
       add_new: เพิ่มปลายทาง
       delete: ลบ
+      description_html: "<strong>เว็บฮุค</strong> ทำให้ Mastodon สามารถส่ง <strong>การแจ้งเตือนตามเวลาจริง</strong> แบบผลักเกี่ยวกับเหตุการณ์ที่เลือกไปยังแอปพลิเคชันของคุณเอง ดังนั้นแอปพลิเคชันของคุณสามารถ <strong>ทริกเกอร์การตอบสนองได้โดยอัตโนมัติ</strong>"
       disable: ปิดใช้งาน
       disabled: ปิดใช้งานอยู่
       edit: แก้ไขปลายทาง
+      empty: คุณยังไม่ได้กำหนดค่าปลายทางเว็บฮุคใด ๆ
       enable: เปิดใช้งาน
       enabled: ใช้งานอยู่
       enabled_events:
@@ -860,6 +879,7 @@ th:
         title: โพสต์ที่กำลังนิยม
       new_trending_tags:
         no_approved_tags: ไม่มีแฮชแท็กที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน
+        requirements: 'ตัวเลือกใดก็ตามนี้สามารถแซงหน้าแฮชแท็กที่กำลังนิยมที่ได้รับอนุมัติ #%{rank} ซึ่งคือ #%{lowest_tag_name} ในปัจจุบันด้วยคะแนน %{lowest_tag_score}'
         title: แฮชแท็กที่กำลังนิยม
       subject: แนวโน้มใหม่สำหรับตรวจทานใน %{instance}
   aliases:
@@ -896,6 +916,7 @@ th:
     warning: ระวังเป็นอย่างสูงกับข้อมูลนี้ อย่าแบ่งปันข้อมูลกับใครก็ตาม!
     your_token: โทเคนการเข้าถึงของคุณ
   auth:
+    apply_for_account: ขอบัญชี
     change_password: รหัสผ่าน
     delete_account: ลบบัญชี
     delete_account_html: หากคุณต้องการลบบัญชีของคุณ คุณสามารถ <a href="%{path}">ดำเนินการต่อที่นี่</a> คุณจะได้รับการถามเพื่อการยืนยัน
@@ -1069,6 +1090,7 @@ th:
     add_new: เพิ่มใหม่
     errors:
       limit: คุณได้แนะนำแฮชแท็กถึงจำนวนสูงสุดไปแล้ว
+    hint_html: "<strong>แฮชแท็กที่แนะนำคืออะไร?</strong> จะแสดงแฮชแท็กที่แนะนำอย่างเด่นชัดในโปรไฟล์สาธารณะของคุณและอนุญาตให้ผู้คนเรียกดูโพสต์สาธารณะของคุณโดยเฉพาะภายใต้แฮชแท็กเหล่านั้น แฮชแท็กที่แนะนำเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการติดตามงานสร้างสรรค์หรือโครงการระยะยาว"
   filters:
     contexts:
       account: โปรไฟล์
@@ -1079,6 +1101,8 @@ th:
     edit:
       add_keyword: เพิ่มคำสำคัญ
       keywords: คำสำคัญ
+      statuses: โพสต์แต่ละรายการ
+      statuses_hint_html: ตัวกรองนี้นำไปใช้เพื่อเลือกโพสต์แต่ละรายการโดยไม่คำนึงถึงว่าโพสต์ตรงกับคำสำคัญด้านล่างหรือไม่ <a href="%{path}">ตรวจทานหรือเอาโพสต์ออกจากตัวกรอง</a>
       title: แก้ไขตัวกรอง
     errors:
       deprecated_api_multiple_keywords: ไม่สามารถเปลี่ยนพารามิเตอร์เหล่านี้จากแอปพลิเคชันนี้เนื่องจากพารามิเตอร์นำไปใช้กับคำสำคัญของตัวกรองมากกว่าหนึ่ง ใช้แอปพลิเคชันที่ใหม่กว่าหรือส่วนติดต่อเว็บ
@@ -1093,6 +1117,8 @@ th:
         other: "%{count} คำสำคัญ"
       statuses:
         other: "%{count} โพสต์"
+      statuses_long:
+        other: มีการซ่อน %{count} โพสต์แต่ละรายการ
       title: ตัวกรอง
     new:
       save: บันทึกตัวกรองใหม่
@@ -1102,7 +1128,7 @@ th:
       batch:
         remove: เอาออกจากตัวกรอง
       index:
-        hint: ตัวกรองนี้นำไปใช้เพื่อเลือกแต่ละโพสต์โดยไม่คำนึงถึงเกณฑ์อื่น ๆ คุณสามารถเพิ่มโพสต์เพิ่มเติมไปยังตัวกรองนี้ได้จากส่วนติดต่อเว็บ
+        hint: ตัวกรองนี้นำไปใช้เพื่อเลือกโพสต์แต่ละรายการโดยไม่คำนึงถึงเกณฑ์อื่น ๆ คุณสามารถเพิ่มโพสต์เพิ่มเติมไปยังตัวกรองนี้ได้จากส่วนติดต่อเว็บ
         title: โพสต์ที่กรองอยู่
   footer:
     trending_now: กำลังนิยม
@@ -1128,6 +1154,7 @@ th:
     invalid_markup: 'มีมาร์กอัป HTML ที่ไม่ถูกต้อง: %{error}'
   imports:
     errors:
+      invalid_csv_file: 'ไฟล์ CSV ไม่ถูกต้อง ข้อผิดพลาด: %{error}'
       over_rows_processing_limit: มีมากกว่า %{count} แถว
     modes:
       merge: ผสาน
@@ -1206,6 +1233,7 @@ th:
     redirecting_to: บัญชีของคุณกำลังเปลี่ยนเส้นทางไปยัง %{acct}
     set_redirect: ตั้งการเปลี่ยนเส้นทาง
     warning:
+      backreference_required: ต้องกำหนดค่าให้บัญชีใหม่อ้างอิงย้อนกลับไปยังบัญชีนี้ก่อน
       before: 'ก่อนดำเนินการต่อ โปรดอ่านหมายเหตุเหล่านี้อย่างระมัดระวัง:'
       cooldown: หลังจากการย้ายจะมีระยะเวลาการรอซึ่งในระหว่างนั้นคุณจะไม่สามารถย้ายได้อีกครั้ง
       disabled_account: บัญชีปัจจุบันของคุณจะไม่สามารถใช้งานได้อย่างเต็มที่หลังจากนั้น อย่างไรก็ตาม คุณจะสามารถเข้าถึงการส่งออกข้อมูลเช่นเดียวกับการเปิดใช้งานใหม่
@@ -1302,7 +1330,7 @@ th:
     title: นโยบายความเป็นส่วนตัว
   reactions:
     errors:
-      limit_reached: ถึงขีดจำกัดของปฏิกิริยาต่าง ๆ แล้ว
+      limit_reached: ถึงขีดจำกัดของการตอบสนองต่าง ๆ แล้ว
       unrecognized_emoji: ไม่ใช่อีโมจิที่รู้จัก
   relationships:
     activity: กิจกรรมบัญชี
@@ -1448,9 +1476,11 @@ th:
     enabled: ลบโพสต์เก่าโดยอัตโนมัติ
     enabled_hint: ลบโพสต์ของคุณโดยอัตโนมัติเมื่อโพสต์ถึงค่าเกณฑ์อายุที่ระบุ เว้นแต่โพสต์ตรงกับหนึ่งในข้อยกเว้นด้านล่าง
     exceptions: ข้อยกเว้น
+    explanation: เนื่องจากการลบโพสต์เป็นการดำเนินงานที่มีค่าใช้จ่ายสูง นี่จึงทำอย่างช้า ๆ เมื่อเวลาผ่านไปเมื่อเซิร์ฟเวอร์ไม่ได้ไม่ว่างอย่างอื่น ด้วยเหตุผลนี้ อาจลบโพสต์ของคุณสักครู่หลังจากที่โพสต์ถึงค่าเกณฑ์อายุ
     ignore_favs: เพิกเฉยต่อรายการโปรด
     ignore_reblogs: เพิกเฉยต่อการดัน
     interaction_exceptions: ข้อยกเว้นตามการโต้ตอบ
+    interaction_exceptions_explanation: โปรดทราบว่าไม่มีการรับประกันว่าจะลบโพสต์หากโพสต์ลงไปต่ำกว่าค่าเกณฑ์การชื่นชอบหรือการดันหลังจากที่ผ่านโพสต์ไปแล้วครั้งหนึ่ง
     keep_direct: เก็บข้อความโดยตรง
     keep_direct_hint: ไม่ลบข้อความโดยตรงใดก็ตามของคุณ
     keep_media: เก็บโพสต์ที่มีไฟล์แนบสื่อ
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index e137050c2..15637c323 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -431,6 +431,9 @@ tr:
     export_domain_blocks:
       import:
         private_comment_template: "%{source} kaynağından %{date} tarihinde içe aktarıldı"
+        title: Domain bloklarını içe aktar
+      new:
+        title: Domain bloklarını içe aktar
       no_file: Dosya seçilmedi
     follow_recommendations:
       description_html: "<strong>Takip önerileri yeni kullanıcıların hızlı bir şekilde ilginç içerik bulmalarını sağlar</strong>. Eğer bir kullanıcı, kişisel takip önerileri almaya yetecek kadar başkalarıyla etkileşime girmediğinde, onun yerine bu hesaplar önerilir. Bu öneriler, verili bir dil için en yüksek takipçi sayısına ve en yüksek güncel meşguliyete sahip hesapların bir karışımdan günlük olarak hesaplanıyorlar."
@@ -1169,6 +1172,7 @@ tr:
     invalid_markup: 'geçersiz HTML markup içermektedir: %{error}'
   imports:
     errors:
+      invalid_csv_file: 'Geçersiz CSV dosyası. Hata: %{error}'
       over_rows_processing_limit: "%{count} satırdan fazlasını içeriyor"
     modes:
       merge: Birleştir
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 55522613b..c11e0688a 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -615,9 +615,9 @@ uk:
       delete_and_resolve: Видалити дописи
       forwarded: Переслано
       forwarded_to: Переслано до %{domain}
-      mark_as_resolved: Відмітити як вирішену
+      mark_as_resolved: Позначити вирішеним
       mark_as_sensitive: Позначити делікатним
-      mark_as_unresolved: Відмітити як невирішену
+      mark_as_unresolved: Позначити невирішеним
       no_one_assigned: Ніхто
       notes:
         create: Додати примітку
@@ -941,7 +941,7 @@ uk:
     created_msg: Новий псевдонім успішно створено. Тепер ви можете починати переміщення зі старого облікового запису.
     deleted_msg: Псевдонім успішно видалено. Переміщення з того облікового запису до цього більше не можливе.
     empty: У вас немає псевдонімів.
-    hint_html: Якщо ви збираєтеся мігрувати з іншого облікового запису на цей, ви можете налаштувати псевдонім, що потрібно для перенесення передплатників зі старою облікового запису. Ця дія саме по собі <strong>нешкідливо і оборотно</strong>. <strong>Міграція облікового запису починається з старого облікового запису</strong>.
+    hint_html: Якщо ви збираєтеся мігрувати з іншого облікового запису на цей, ви можете налаштувати псевдонім, який потрібен для перенесення підписок зі старою облікового запису. Ця дія сама по собі <strong>нешкідлива і її можна скасувати</strong>. <strong>Міграція облікового запису починається зі старого облікового запису</strong>.
     remove: Від'єднати псевдонім
   appearance:
     advanced_web_interface: Розширений вебінтерфейс
@@ -1139,7 +1139,7 @@ uk:
     domain_blocks: Блокування доменів
     lists: Списки
     mutes: Список нехтуваних
-    storage: Ваш медіаконтент
+    storage: Ваш медіавміст
   featured_tags:
     add_new: Додати новий
     errors:
@@ -1233,11 +1233,11 @@ uk:
       over_rows_processing_limit: містить більше ніж %{count} рядків
     modes:
       merge: Злиття
-      merge_long: Зберегти існуючі записи та додати нові
+      merge_long: Зберегти наявні записи та додати нові
       overwrite: Перезаписувати
-      overwrite_long: Замінити поточні записи новими
-    preface: Ви можете завантажити деякі дані, наприклад, списки людей, на яких ви підписані чи яких блокуєте, у ваш обліковий запис на даному сервері з файлів, експортованих з іншого сервера.
-    success: Ваші дані були успішно загружені та будуть оброблені в найближчий момент
+      overwrite_long: Замінити наявні записи новими
+    preface: Ви можете імпортувати дані, які ви експортували з іншого сервера, наприклад, список людей, яких ви відстежуєте або блокуєте.
+    success: Ваші дані завантажено та буде оброблено найближчим часом
     types:
       blocking: Список блокувань
       bookmarks: Закладки
@@ -1377,7 +1377,7 @@ uk:
           trillion: трлн
   otp_authentication:
     code_hint: Для підтверждення введіть код, згенерований додатком аутентифікатора
-    description_html: При увімкненні <strong>двофакторної аутентифікації</strong>, вхід буде вимагати від Вас використання Вашого телефона для генерації вхідного коду.
+    description_html: Якщо ви увімкнете <strong>двофакторну автентифікацію</strong> за допомогою застосунку автентифікації, для входу вам буде потрібен телефон, що генеруватиме токени для входу.
     enable: Увімкнути
     instructions_html: "<strong>Скануйте цей QR-код за допомогою Google Authenticator чи іншого TOTP-застосунку на своєму телефоні</strong>. Відтепер застосунок генеруватиме коди, які буде необхідно ввести для входу."
     manual_instructions: 'Якщо ви не можете сканувати QR-код і потрібно ввести його вручну, ось він:'
@@ -1417,7 +1417,7 @@ uk:
     followers: Підписники
     following: Підписник
     invited: Запрошені
-    last_active: Крайня активність
+    last_active: Остання активність
     most_recent: За часом створення
     moved: Переміщено
     mutual: Взаємні уподобання
@@ -1462,7 +1462,7 @@ uk:
       safari: Сафарі
       uc_browser: UC Browser
       weibo: Weibo
-    current_session: Активна сесія
+    current_session: Поточний сеанс
     description: "%{browser} на %{platform}"
     explanation: Це веб-браузери, авторизовані у вашому обліковому записі Mastodon.
     ip: IP
@@ -1481,7 +1481,7 @@ uk:
       windows_phone: Windows Phone
     revoke: Закінчити
     revoke_success: Сесія успішно закінчена
-    title: Сесії
+    title: Сеанси
     view_authentication_history: Переглянути історію входів вашого облікового запису
   settings:
     account: Обліковий запис
@@ -1504,7 +1504,7 @@ uk:
     relationships: Підписки та підписники
     statuses_cleanup: Автовидалення допису
     strikes: Попередження модераторів
-    two_factor_authentication: Двофакторна авторизація
+    two_factor_authentication: Двофакторна автентифікація
     webauthn_authentication: Ключі безпеки
   statuses:
     attached:
@@ -1691,7 +1691,7 @@ uk:
     welcome:
       edit_profile_action: Налаштувати профіль
       edit_profile_step: Ви можете налаштувати свій профіль, завантаживши зображення профілю, змінивши відображуване ім'я та інше. Ви можете включити для перегляду нових підписників до того, як вони матимуть змогу підписатися на вас.
-      explanation: Ось декілька порад для початку
+      explanation: Ось кілька порад для початку
       final_action: Почати писати
       final_step: 'Почніть дописувати! Навіть не підписавшись на вас, інші зможуть побачити ваші пости, наприклад, у локальній стрічці та у хештеґах. Якщо ви хочете представитися, можете скористатися хештеґом #introductions.'
       full_handle: Ваше звернення
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 375db72a2..fe412d06f 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -861,8 +861,8 @@ vi:
         sensitive: đánh dấu tài khoản của họ là nhạy cảm
         silence: hạn chế tài khoản của họ
         suspend: vô hiệu hóa tài khoản của họ
-      body: "%{target} đã khiếu nại quyết định kiểm duyệt bởi %{action_taken_by} vào %{date}, vì %{type}. Họ cho biết:"
-      next_steps: Bạn có thể chấp nhận kháng cáo để hủy bỏ kiểm duyệt, hoặc bỏ qua.
+      body: "%{target} đã khiếu nại vì bị %{action_taken_by} %{type} vào %{date}. Họ cho biết:"
+      next_steps: Bạn có thể chấp nhận kháng cáo để hủy kiểm duyệt hoặc bỏ qua.
       subject: "%{username} đang khiếu nại quyết định kiểm duyệt trên %{instance}"
     new_pending_account:
       body: Thông tin chi tiết của tài khoản mới ở phía dưới. Bạn có thể phê duyệt hoặc từ chối người này.
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 6356485c4..fabfd892f 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -1018,7 +1018,7 @@ zh-HK:
       email_contact_html: 如果仍然沒有送達,你可以通過電子郵件發送到<a href="mailto:%{email}">%{email}</a>以獲得協助
       email_reconfirmation_html: 如果你沒有收到確認電郵,你可以<a href="%{path}">要求再次發送它</a>
       irreversible: 你將無法重啟你的帳戶
-      more_details_html: 請參見<a href="%{terms_path}">隱私政策</a>以瀏覽細節。
+      more_details_html: 請參見<a href="%{terms_path}">私隱政策</a>以瀏覽細節。
       username_available: 你的登入名稱將可被其他人使用
       username_unavailable: 你的登入名稱將不能讓其他人使用
   disputes:
diff --git a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
index 9a64d1715..48ef1e6e3 100644
--- a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
+++ b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
@@ -79,69 +79,72 @@ class BackfillAdminActionLogs < ActiveRecord::Migration[6.1]
     safety_assured do
       AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log|
         next if log.account.nil?
-        log.update(human_identifier: log.account.acct)
+        log.update_attribute('human_identifier', log.account.acct)
       end
 
       AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log|
         next if log.user.nil?
-        log.update(human_identifier: log.user.account.acct, route_param: log.user.account_id)
+        log.update_attribute('human_identifier', log.user.account.acct)
+        log.update_attribute('route_param', log.user.account_id)
       end
 
       Admin::ActionLog.where(target_type: 'Report', human_identifier: nil).in_batches.update_all('human_identifier = target_id::text')
 
       AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log|
         next if log.domain_block.nil?
-        log.update(human_identifier: log.domain_block.domain)
+        log.update_attribute('human_identifier', log.domain_block.domain)
       end
 
       AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log|
         next if log.domain_allow.nil?
-        log.update(human_identifier: log.domain_allow.domain)
+        log.update_attribute('human_identifier', log.domain_allow.domain)
       end
 
       AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log|
         next if log.email_domain_block.nil?
-        log.update(human_identifier: log.email_domain_block.domain)
+        log.update_attribute('human_identifier', log.email_domain_block.domain)
       end
 
       AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log|
         next if log.unavailable_domain.nil?
-        log.update(human_identifier: log.unavailable_domain.domain)
+        log.update_attribute('human_identifier', log.unavailable_domain.domain)
       end
 
       AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log|
         next if log.status.nil?
-        log.update(human_identifier: log.status.account.acct, permalink: log.status.uri)
+        log.update_attribute('human_identifier', log.status.account.acct)
+        log.update_attribute('permalink', log.status.uri)
       end
 
       AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log|
         next if log.account_warning.nil?
-        log.update(human_identifier: log.account_warning.account.acct)
+        log.update_attribute('human_identifier', log.account_warning.account.acct)
       end
 
       AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log|
         next if log.announcement.nil?
-        log.update(human_identifier: log.announcement.text)
+        log.update_attribute('human_identifier', log.announcement.text)
       end
 
       AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log|
         next if log.ip_block.nil?
-        log.update(human_identifier: "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
+        log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
       end
 
       AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log|
         next if log.custom_emoji.nil?
-        log.update(human_identifier: log.custom_emoji.shortcode)
+        log.update_attribute('human_identifier', log.custom_emoji.shortcode)
       end
 
       AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log|
         next if log.canonical_email_block.nil?
-        log.update(human_identifier: log.canonical_email_block.canonical_email_hash)
+        log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash)
       end
 
       AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log|
         next if log.appeal.nil?
-        log.update(human_identifier: log.appeal.account.acct, route_param: log.appeal.account_warning_id)
+        log.update_attribute('human_identifier', log.appeal.account.acct)
+        log.update_attribute('route_param', log.appeal.account_warning_id)
       end
     end
   end
diff --git a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
new file mode 100644
index 000000000..279053ab9
--- /dev/null
+++ b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
@@ -0,0 +1,153 @@
+# frozen_string_literal: true
+
+class BackfillAdminActionLogsAgain < ActiveRecord::Migration[6.1]
+  disable_ddl_transaction!
+
+  class Account < ApplicationRecord
+    # Dummy class, to make migration possible across version changes
+    has_one :user, inverse_of: :account
+
+    def local?
+      domain.nil?
+    end
+
+    def acct
+      local? ? username : "#{username}@#{domain}"
+    end
+  end
+
+  class User < ApplicationRecord
+    # Dummy class, to make migration possible across version changes
+    belongs_to :account
+  end
+
+  class Status < ApplicationRecord
+    include RoutingHelper
+
+    # Dummy class, to make migration possible across version changes
+    belongs_to :account
+
+    def local?
+      attributes['local'] || attributes['uri'].nil?
+    end
+
+    def uri
+      local? ? activity_account_status_url(account, self) : attributes['uri']
+    end
+  end
+
+  class DomainBlock < ApplicationRecord; end
+  class DomainAllow < ApplicationRecord; end
+  class EmailDomainBlock < ApplicationRecord; end
+  class UnavailableDomain < ApplicationRecord; end
+
+  class AccountWarning < ApplicationRecord
+    # Dummy class, to make migration possible across version changes
+    belongs_to :account
+  end
+
+  class Announcement < ApplicationRecord; end
+  class IpBlock < ApplicationRecord; end
+  class CustomEmoji < ApplicationRecord; end
+  class CanonicalEmailBlock < ApplicationRecord; end
+
+  class Appeal < ApplicationRecord
+    # Dummy class, to make migration possible across version changes
+    belongs_to :account
+  end
+
+  class AdminActionLog < ApplicationRecord
+    # Dummy class, to make migration possible across version changes
+
+    # Cannot use usual polymorphic support because of namespacing issues
+    belongs_to :status, foreign_key: :target_id
+    belongs_to :account, foreign_key: :target_id
+    belongs_to :user, foreign_key: :user_id
+    belongs_to :domain_block, foreign_key: :target_id
+    belongs_to :domain_allow, foreign_key: :target_id
+    belongs_to :email_domain_block, foreign_key: :target_id
+    belongs_to :unavailable_domain, foreign_key: :target_id
+    belongs_to :account_warning, foreign_key: :target_id
+    belongs_to :announcement, foreign_key: :target_id
+    belongs_to :ip_block, foreign_key: :target_id
+    belongs_to :custom_emoji, foreign_key: :target_id
+    belongs_to :canonical_email_block, foreign_key: :target_id
+    belongs_to :appeal, foreign_key: :target_id
+  end
+
+  def up
+    safety_assured do
+      AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log|
+        next if log.account.nil?
+        log.update_attribute('human_identifier', log.account.acct)
+      end
+
+      AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log|
+        next if log.user.nil?
+        log.update_attribute('human_identifier', log.user.account.acct)
+        log.update_attribute('route_param', log.user.account_id)
+      end
+
+      Admin::ActionLog.where(target_type: 'Report', human_identifier: nil).in_batches.update_all('human_identifier = target_id::text')
+
+      AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log|
+        next if log.domain_block.nil?
+        log.update_attribute('human_identifier', log.domain_block.domain)
+      end
+
+      AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log|
+        next if log.domain_allow.nil?
+        log.update_attribute('human_identifier', log.domain_allow.domain)
+      end
+
+      AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log|
+        next if log.email_domain_block.nil?
+        log.update_attribute('human_identifier', log.email_domain_block.domain)
+      end
+
+      AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log|
+        next if log.unavailable_domain.nil?
+        log.update_attribute('human_identifier', log.unavailable_domain.domain)
+      end
+
+      AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log|
+        next if log.status.nil?
+        log.update_attribute('human_identifier', log.status.account.acct)
+        log.update_attribute('permalink', log.status.uri)
+      end
+
+      AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log|
+        next if log.account_warning.nil?
+        log.update_attribute('human_identifier', log.account_warning.account.acct)
+      end
+
+      AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log|
+        next if log.announcement.nil?
+        log.update_attribute('human_identifier', log.announcement.text)
+      end
+
+      AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log|
+        next if log.ip_block.nil?
+        log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
+      end
+
+      AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log|
+        next if log.custom_emoji.nil?
+        log.update_attribute('human_identifier', log.custom_emoji.shortcode)
+      end
+
+      AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log|
+        next if log.canonical_email_block.nil?
+        log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash)
+      end
+
+      AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log|
+        next if log.appeal.nil?
+        log.update_attribute('human_identifier', log.appeal.account.acct)
+        log.update_attribute('route_param', log.appeal.account_warning_id)
+      end
+    end
+  end
+
+  def down; end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 01a95c0f2..7462bf2c7 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 2022_11_04_133904) do
+ActiveRecord::Schema.define(version: 2022_12_06_114142) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
diff --git a/jsconfig.json b/jsconfig.json
index 7471fb9db..d52816a98 100644
--- a/jsconfig.json
+++ b/jsconfig.json
@@ -13,10 +13,5 @@
     "strict": false,
     "target": "ES2022"
   },
-  "exclude": [
-    "**/build/*",
-    "**/node_modules/*",
-    "**/public/*",
-    "**/vendor/*"
-  ]
+  "exclude": ["**/build/*", "**/node_modules/*", "**/public/*", "**/vendor/*"]
 }
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb
index c8a8448ed..77cbef84e 100644
--- a/lib/mastodon/accounts_cli.rb
+++ b/lib/mastodon/accounts_cli.rb
@@ -541,7 +541,7 @@ module Mastodon
       old_key = account.private_key
       new_key = OpenSSL::PKey::RSA.new(2048)
       account.update(private_key: new_key.to_pem, public_key: new_key.public_key.to_pem)
-      ActivityPub::UpdateDistributionWorker.perform_in(delay, account.id, sign_with: old_key)
+      ActivityPub::UpdateDistributionWorker.perform_in(delay, account.id, { 'sign_with' => old_key })
     end
   end
 end
diff --git a/lib/tasks/tests.rake b/lib/tasks/tests.rake
index 96d2f7112..1dd25abb9 100644
--- a/lib/tasks/tests.rake
+++ b/lib/tasks/tests.rake
@@ -43,6 +43,16 @@ namespace :tests do
         puts 'CustomFilterKeyword records not created as expected'
         exit(1)
       end
+
+      unless Admin::ActionLog.find_by(target_type: 'DomainBlock', target_id: 1).human_identifier == 'example.org'
+        puts 'Admin::ActionLog domain block records not updated as expected'
+        exit(1)
+      end
+
+      unless Admin::ActionLog.find_by(target_type: 'EmailDomainBlock', target_id: 1).human_identifier == 'example.org'
+        puts 'Admin::ActionLog email domain block records not updated as expected'
+        exit(1)
+      end
     end
 
     desc 'Populate the database with test data for 2.4.3'
@@ -84,8 +94,8 @@ namespace :tests do
         VALUES
           (1, 'destroy', 'Account', 1, now(), now()),
           (1, 'destroy', 'User', 1, now(), now()),
-          (1, 'destroy', 'DomainBlock', 1312, now(), now()),
-          (1, 'destroy', 'EmailDomainBlock', 1312, now(), now()),
+          (1, 'destroy', 'DomainBlock', 1, now(), now()),
+          (1, 'destroy', 'EmailDomainBlock', 1, now(), now()),
           (1, 'destroy', 'Status', 1, now(), now()),
           (1, 'destroy', 'CustomEmoji', 3, now(), now());
       SQL
diff --git a/package.json b/package.json
index ed11346e8..98c1050a1 100644
--- a/package.json
+++ b/package.json
@@ -15,8 +15,8 @@
     "test:lint:js": "eslint --ext=js . --cache",
     "test:lint:sass": "stylelint '**/*.scss'",
     "test:jest": "cross-env NODE_ENV=test jest",
-    "format": "prettier --write '**/*.{json,yml}'",
-    "format-check": "prettier --write '**/*.{json,yml}'"
+    "format": "prettier --write \"**/*.{json,yml}\"",
+    "format-check": "prettier --check \"**/*.{json,yml}\""
   },
   "repository": {
     "type": "git",
@@ -24,13 +24,13 @@
   },
   "private": true,
   "dependencies": {
-    "@babel/core": "^7.20.2",
-    "@babel/plugin-proposal-decorators": "^7.20.2",
+    "@babel/core": "^7.20.5",
+    "@babel/plugin-proposal-decorators": "^7.20.5",
     "@babel/plugin-transform-react-inline-elements": "^7.18.6",
     "@babel/plugin-transform-runtime": "^7.19.6",
     "@babel/preset-env": "^7.20.2",
     "@babel/preset-react": "^7.18.6",
-    "@babel/runtime": "^7.20.1",
+    "@babel/runtime": "^7.20.6",
     "@gamestdio/websocket": "^0.3.2",
     "@github/webauthn-json": "^0.5.7",
     "@rails/ujs": "^6.1.7",
@@ -40,7 +40,7 @@
     "arrow-key-navigation": "^1.2.0",
     "atrament": "0.2.4",
     "autoprefixer": "^9.8.8",
-    "axios": "^1.1.3",
+    "axios": "^1.2.1",
     "babel-loader": "^8.3.0",
     "babel-plugin-lodash": "^3.3.4",
     "babel-plugin-preval": "^5.1.0",
@@ -67,7 +67,7 @@
     "fuzzysort": "^1.9.0",
     "glob": "^8.0.3",
     "history": "^4.10.1",
-    "http-link-header": "^1.0.5",
+    "http-link-header": "^1.1.0",
     "immutable": "^4.1.0",
     "imports-loader": "^1.2.0",
     "intersection-observer": "^0.12.2",
@@ -108,10 +108,10 @@
     "react-redux-loading-bar": "^5.0.4",
     "react-router-dom": "^4.1.1",
     "react-router-scroll-4": "^1.0.0-beta.1",
-    "react-select": "^5.5.4",
+    "react-select": "^5.7.0",
     "react-sparklines": "^1.7.0",
     "react-swipeable-views": "^0.14.0",
-    "react-textarea-autosize": "^8.3.4",
+    "react-textarea-autosize": "^8.4.0",
     "react-toggle": "^4.1.3",
     "redis": "^4.0.6 <4.1.0",
     "redux": "^4.2.0",
@@ -150,16 +150,16 @@
     "@babel/eslint-parser": "^7.19.1",
     "@testing-library/jest-dom": "^5.16.5",
     "@testing-library/react": "^12.1.5",
-    "babel-jest": "^29.2.1",
+    "babel-jest": "^29.3.1",
     "eslint": "^7.32.0",
     "eslint-plugin-import": "~2.26.0",
     "eslint-plugin-jsx-a11y": "~6.6.1",
     "eslint-plugin-promise": "~6.1.1",
     "eslint-plugin-react": "~7.31.11",
-    "jest": "^29.2.2",
-    "jest-environment-jsdom": "^29.2.1",
-    "postcss-scss": "^4.0.5",
-    "prettier": "^2.7.1",
+    "jest": "^29.3.1",
+    "jest-environment-jsdom": "^29.3.1",
+    "postcss-scss": "^4.0.6",
+    "prettier": "^2.8.0",
     "raf": "^3.4.1",
     "react-intl-translations-manager": "^5.0.3",
     "react-test-renderer": "^16.14.0",
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index 1bd51a0c8..81d592ddd 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -147,6 +147,87 @@ RSpec.describe Admin::AccountsController, type: :controller do
     end
   end
 
+  describe 'POST #approve' do
+    subject { post :approve, params: { id: account.id } }
+
+    let(:current_user) { Fabricate(:user, role: role) }
+    let(:account) { user.account }
+    let(:user) { Fabricate(:user) }
+
+    before do
+      account.user.update(approved: false)
+    end
+
+    context 'when user is admin' do
+      let(:role) { UserRole.find_by(name: 'Admin') }
+
+      it 'succeeds in approving account' do
+        is_expected.to redirect_to admin_accounts_path(status: 'pending')
+        expect(user.reload).to be_approved
+      end
+
+      it 'logs action' do
+        is_expected.to have_http_status :found
+
+        log_item = Admin::ActionLog.last
+
+        expect(log_item).to_not be_nil
+        expect(log_item.action).to eq :approve
+        expect(log_item.account_id).to eq current_user.account_id
+        expect(log_item.target_id).to eq account.user.id
+      end
+    end
+
+    context 'when user is not admin' do
+      let(:role) { UserRole.everyone }
+
+      it 'fails to approve account' do
+        is_expected.to have_http_status :forbidden
+        expect(user.reload).not_to be_approved
+      end
+    end
+  end
+
+  describe 'POST #reject' do
+    subject { post :reject, params: { id: account.id } }
+
+    let(:current_user) { Fabricate(:user, role: role) }
+    let(:account) { user.account }
+    let(:user) { Fabricate(:user) }
+
+    before do
+      account.user.update(approved: false)
+    end
+
+    context 'when user is admin' do
+      let(:role) { UserRole.find_by(name: 'Admin') }
+
+      it 'succeeds in rejecting account' do
+        is_expected.to redirect_to admin_accounts_path(status: 'pending')
+      end
+
+      it 'logs action' do
+        is_expected.to have_http_status :found
+
+        log_item = Admin::ActionLog.last
+
+        expect(log_item).to_not be_nil
+        expect(log_item.action).to eq :reject
+        expect(log_item.account_id).to eq current_user.account_id
+        expect(log_item.target_id).to eq account.user.id
+      end
+    end
+
+    context 'when user is not admin' do
+      let(:role) { UserRole.everyone }
+
+      it 'fails to reject account' do
+        is_expected.to have_http_status :forbidden
+        expect(user.reload).not_to be_approved
+      end
+    end
+  end
+
   describe 'POST #redownload' do
     subject { post :redownload, params: { id: account.id } }
 
diff --git a/spec/controllers/api/v1/admin/accounts_controller_spec.rb b/spec/controllers/api/v1/admin/accounts_controller_spec.rb
index cd38030e0..8d35b86cb 100644
--- a/spec/controllers/api/v1/admin/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/accounts_controller_spec.rb
@@ -100,6 +100,15 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
     it 'approves user' do
       expect(account.reload.user_approved?).to be true
     end
+
+    it 'logs action' do
+      log_item = Admin::ActionLog.last
+
+      expect(log_item).to_not be_nil
+      expect(log_item.action).to eq :approve
+      expect(log_item.account_id).to eq user.account_id
+      expect(log_item.target_id).to eq account.user.id
+    end
   end
 
   describe 'POST #reject' do
@@ -118,6 +127,15 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
     it 'removes user' do
       expect(User.where(id: account.user.id).count).to eq 0
     end
+
+    it 'logs action' do
+      log_item = Admin::ActionLog.last
+
+      expect(log_item).to_not be_nil
+      expect(log_item.action).to eq :reject
+      expect(log_item.account_id).to eq user.account_id
+      expect(log_item.target_id).to eq account.user.id
+    end
   end
 
   describe 'POST #enable' do
diff --git a/spec/controllers/api/v1/filters_controller_spec.rb b/spec/controllers/api/v1/filters_controller_spec.rb
index af1951f0b..8acb46a00 100644
--- a/spec/controllers/api/v1/filters_controller_spec.rb
+++ b/spec/controllers/api/v1/filters_controller_spec.rb
@@ -22,9 +22,11 @@ RSpec.describe Api::V1::FiltersController, type: :controller do
 
   describe 'POST #create' do
     let(:scopes) { 'write:filters' }
+    let(:irreversible) { true }
+    let(:whole_word)   { false }
 
     before do
-      post :create, params: { phrase: 'magic', context: %w(home), irreversible: true }
+      post :create, params: { phrase: 'magic', context: %w(home), irreversible: irreversible, whole_word: whole_word }
     end
 
     it 'returns http success' do
@@ -34,11 +36,29 @@ RSpec.describe Api::V1::FiltersController, type: :controller do
     it 'creates a filter' do
       filter = user.account.custom_filters.first
       expect(filter).to_not be_nil
-      expect(filter.keywords.pluck(:keyword)).to eq ['magic']
+      expect(filter.keywords.pluck(:keyword, :whole_word)).to eq [['magic', whole_word]]
       expect(filter.context).to eq %w(home)
-      expect(filter.irreversible?).to be true
+      expect(filter.irreversible?).to be irreversible
       expect(filter.expires_at).to be_nil
     end
+
+    context 'with different parameters' do
+      let(:irreversible) { false }
+      let(:whole_word)   { true }
+
+      it 'returns http success' do
+        expect(response).to have_http_status(200)
+      end
+
+      it 'creates a filter' do
+        filter = user.account.custom_filters.first
+        expect(filter).to_not be_nil
+        expect(filter.keywords.pluck(:keyword, :whole_word)).to eq [['magic', whole_word]]
+        expect(filter.context).to eq %w(home)
+        expect(filter.irreversible?).to be irreversible
+        expect(filter.expires_at).to be_nil
+      end
+    end
   end
 
   describe 'GET #show' do
diff --git a/spec/lib/advanced_text_formatter_spec.rb b/spec/lib/advanced_text_formatter_spec.rb
index 3255fc927..c1e469606 100644
--- a/spec/lib/advanced_text_formatter_spec.rb
+++ b/spec/lib/advanced_text_formatter_spec.rb
@@ -35,7 +35,7 @@ RSpec.describe AdvancedTextFormatter do
       end
 
       context 'given a block code' do
-        let(:text) { "test\n\n```\nint main(void) {\n  return 0;\n}\n```\n" }
+        let(:text) { "test\n\n```\nint main(void) {\n  return 0; // https://joinmastodon.org/foo\n}\n```\n" }
 
         it 'formats code using <pre> and <code>' do
           is_expected.to include '<pre><code>int main'
@@ -44,13 +44,17 @@ RSpec.describe AdvancedTextFormatter do
         it 'does not strip leading spaces' do
           is_expected.to include '>  return 0'
         end
+
+        it 'does not format links' do
+          is_expected.to include 'return 0; // https://joinmastodon.org/foo'
+        end
       end
 
-      context 'given some quote' do
-        let(:text) { "> foo\n\nbar" }
+      context 'given a link in inline code using backticks' do
+        let(:text) { 'test `https://foo.bar/bar` bar' }
 
-        it 'formats code using <code>' do
-          is_expected.to include '<blockquote><p>foo</p></blockquote>'
+        it 'does not rewrite the link' do
+          is_expected.to include 'test <code>https://foo.bar/bar</code> bar'
         end
       end
 
diff --git a/spec/models/account_migration_spec.rb b/spec/models/account_migration_spec.rb
index 8461b4b28..5f66fe8da 100644
--- a/spec/models/account_migration_spec.rb
+++ b/spec/models/account_migration_spec.rb
@@ -1,5 +1,48 @@
 require 'rails_helper'
 
 RSpec.describe AccountMigration, type: :model do
+  describe 'validations' do
+    let(:source_account) { Fabricate(:account) }
+    let(:target_acct)    { target_account.acct }
 
+    let(:subject) { AccountMigration.new(account: source_account, acct: target_acct) }
+
+    context 'with valid properties' do
+      let(:target_account) { Fabricate(:account, username: 'target', domain: 'remote.org') }
+
+      before do
+        target_account.aliases.create!(acct: source_account.acct)
+
+        service_double = double
+        allow(ResolveAccountService).to receive(:new).and_return(service_double)
+        allow(service_double).to receive(:call).with(target_acct, anything).and_return(target_account)
+      end
+
+      it 'passes validations' do
+        expect(subject).to be_valid
+      end
+    end
+
+    context 'with unresolveable account' do
+      let(:target_acct) { 'target@remote' }
+
+      before do
+        service_double = double
+        allow(ResolveAccountService).to receive(:new).and_return(service_double)
+        allow(service_double).to receive(:call).with(target_acct, anything).and_return(nil)
+      end
+
+      it 'has errors on acct field' do
+        expect(subject).to model_have_error_on_field(:acct)
+      end
+    end
+
+    context 'with a space in the domain part' do
+      let(:target_acct) { 'target@remote. org' }
+
+      it 'has errors on acct field' do
+        expect(subject).to model_have_error_on_field(:acct)
+      end
+    end
+  end
 end
diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb
index 7728b9ba8..2b20d17b1 100644
--- a/spec/services/activitypub/process_account_service_spec.rb
+++ b/spec/services/activitypub/process_account_service_spec.rb
@@ -109,4 +109,98 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
       end
     end
   end
+
+  context 'discovering many subdomains in a short timeframe' do
+    before do
+      stub_const 'ActivityPub::ProcessAccountService::SUBDOMAINS_RATELIMIT', 5
+    end
+
+    let(:subject) do
+      8.times do |i|
+        domain = "test#{i}.testdomain.com"
+        json = {
+          id: "https://#{domain}/users/1",
+          type: 'Actor',
+          inbox: "https://#{domain}/inbox",
+        }.with_indifferent_access
+        described_class.new.call('alice', domain, json)
+      end
+    end
+
+    it 'creates at least some accounts' do
+      expect { subject }.to change { Account.remote.count }.by_at_least(2)
+    end
+
+    it 'creates no more account than the limit allows' do
+      expect { subject }.to change { Account.remote.count }.by_at_most(5)
+    end
+  end
+
+  context 'accounts referencing other accounts' do
+    before do
+      stub_const 'ActivityPub::ProcessAccountService::DISCOVERIES_PER_REQUEST', 5
+    end
+
+    let(:payload) do
+      {
+        '@context': ['https://www.w3.org/ns/activitystreams'],
+        id: 'https://foo.test/users/1',
+        type: 'Person',
+        inbox: 'https://foo.test/inbox',
+        featured: 'https://foo.test/users/1/featured',
+        preferredUsername: 'user1',
+      }.with_indifferent_access
+    end
+
+    before do
+      8.times do |i|
+        actor_json = {
+          '@context': ['https://www.w3.org/ns/activitystreams'],
+          id: "https://foo.test/users/#{i}",
+          type: 'Person',
+          inbox: 'https://foo.test/inbox',
+          featured: "https://foo.test/users/#{i}/featured",
+          preferredUsername: "user#{i}",
+        }.with_indifferent_access
+        status_json = {
+          '@context': ['https://www.w3.org/ns/activitystreams'],
+          id: "https://foo.test/users/#{i}/status",
+          attributedTo: "https://foo.test/users/#{i}",
+          type: 'Note',
+          content: "@user#{i + 1} test",
+          tag: [
+            {
+              type: 'Mention',
+              href: "https://foo.test/users/#{i + 1}",
+              name: "@user#{i + 1 }",
+            }
+          ],
+          to: [ 'as:Public', "https://foo.test/users/#{i + 1}" ]
+        }.with_indifferent_access
+        featured_json = {
+          '@context': ['https://www.w3.org/ns/activitystreams'],
+          id: "https://foo.test/users/#{i}/featured",
+          type: 'OrderedCollection',
+          totelItems: 1,
+          orderedItems: [status_json],
+        }.with_indifferent_access
+        webfinger = {
+          subject: "acct:user#{i}@foo.test",
+          links: [{ rel: 'self', href: "https://foo.test/users/#{i}" }],
+        }.with_indifferent_access
+        stub_request(:get, "https://foo.test/users/#{i}").to_return(status: 200, body: actor_json.to_json, headers: { 'Content-Type': 'application/activity+json' })
+        stub_request(:get, "https://foo.test/users/#{i}/featured").to_return(status: 200, body: featured_json.to_json, headers: { 'Content-Type': 'application/activity+json' })
+        stub_request(:get, "https://foo.test/users/#{i}/status").to_return(status: 200, body: status_json.to_json, headers: { 'Content-Type': 'application/activity+json' })
+        stub_request(:get, "https://foo.test/.well-known/webfinger?resource=acct:user#{i}@foo.test").to_return(body: webfinger.to_json, headers: { 'Content-Type': 'application/jrd+json' })
+      end
+    end
+
+    it 'creates at least some accounts' do
+      expect { subject.call('user1', 'foo.test', payload) }.to change { Account.remote.count }.by_at_least(2)
+    end
+
+    it 'creates no more account than the limit allows' do
+      expect { subject.call('user1', 'foo.test', payload) }.to change { Account.remote.count }.by_at_most(5)
+    end
+  end
 end
diff --git a/yarn.lock b/yarn.lock
index 42f479b8a..e01bee09b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -42,21 +42,21 @@
   resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30"
   integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==
 
-"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.2", "@babel/core@^7.7.2":
-  version "7.20.2"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92"
-  integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==
+"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.5", "@babel/core@^7.7.2":
+  version "7.20.5"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113"
+  integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==
   dependencies:
     "@ampproject/remapping" "^2.1.0"
     "@babel/code-frame" "^7.18.6"
-    "@babel/generator" "^7.20.2"
+    "@babel/generator" "^7.20.5"
     "@babel/helper-compilation-targets" "^7.20.0"
     "@babel/helper-module-transforms" "^7.20.2"
-    "@babel/helpers" "^7.20.1"
-    "@babel/parser" "^7.20.2"
+    "@babel/helpers" "^7.20.5"
+    "@babel/parser" "^7.20.5"
     "@babel/template" "^7.18.10"
-    "@babel/traverse" "^7.20.1"
-    "@babel/types" "^7.20.2"
+    "@babel/traverse" "^7.20.5"
+    "@babel/types" "^7.20.5"
     convert-source-map "^1.7.0"
     debug "^4.1.0"
     gensync "^1.0.0-beta.2"
@@ -72,12 +72,12 @@
     eslint-visitor-keys "^2.1.0"
     semver "^6.3.0"
 
-"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2":
-  version "7.20.3"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.3.tgz#e58c9ae2f7bf7fdf4899160cf1e04400a82cd641"
-  integrity sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A==
+"@babel/generator@^7.20.5", "@babel/generator@^7.7.2":
+  version "7.20.5"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95"
+  integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==
   dependencies:
-    "@babel/types" "^7.20.2"
+    "@babel/types" "^7.20.5"
     "@jridgewell/gen-mapping" "^0.3.2"
     jsesc "^2.5.1"
 
@@ -114,10 +114,10 @@
     browserslist "^4.21.3"
     semver "^6.3.0"
 
-"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.2":
-  version "7.20.2"
-  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz#3c08a5b5417c7f07b5cf3dfb6dc79cbec682e8c2"
-  integrity sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==
+"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.5":
+  version "7.20.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz#327154eedfb12e977baa4ecc72e5806720a85a06"
+  integrity sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==
   dependencies:
     "@babel/helper-annotate-as-pure" "^7.18.6"
     "@babel/helper-environment-visitor" "^7.18.9"
@@ -127,15 +127,7 @@
     "@babel/helper-replace-supers" "^7.19.1"
     "@babel/helper-split-export-declaration" "^7.18.6"
 
-"@babel/helper-create-regexp-features-plugin@^7.18.6":
-  version "7.18.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c"
-  integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==
-  dependencies:
-    "@babel/helper-annotate-as-pure" "^7.18.6"
-    regexpu-core "^5.1.0"
-
-"@babel/helper-create-regexp-features-plugin@^7.19.0":
+"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0":
   version "7.19.0"
   resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b"
   integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==
@@ -155,11 +147,6 @@
     resolve "^1.14.2"
     semver "^6.1.2"
 
-"@babel/helper-environment-visitor@^7.18.6":
-  version "7.18.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7"
-  integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==
-
 "@babel/helper-environment-visitor@^7.18.9":
   version "7.18.9"
   resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
@@ -172,23 +159,7 @@
   dependencies:
     "@babel/types" "^7.18.6"
 
-"@babel/helper-function-name@^7.18.6":
-  version "7.18.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83"
-  integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==
-  dependencies:
-    "@babel/template" "^7.18.6"
-    "@babel/types" "^7.18.6"
-
-"@babel/helper-function-name@^7.18.9":
-  version "7.18.9"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0"
-  integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==
-  dependencies:
-    "@babel/template" "^7.18.6"
-    "@babel/types" "^7.18.9"
-
-"@babel/helper-function-name@^7.19.0":
+"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0":
   version "7.19.0"
   resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
   integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
@@ -243,17 +214,7 @@
   resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
   integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
 
-"@babel/helper-remap-async-to-generator@^7.18.6":
-  version "7.18.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23"
-  integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==
-  dependencies:
-    "@babel/helper-annotate-as-pure" "^7.18.6"
-    "@babel/helper-environment-visitor" "^7.18.6"
-    "@babel/helper-wrap-function" "^7.18.6"
-    "@babel/types" "^7.18.6"
-
-"@babel/helper-remap-async-to-generator@^7.18.9":
+"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9":
   version "7.18.9"
   resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519"
   integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==
@@ -300,17 +261,7 @@
   resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
   integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
 
-"@babel/helper-validator-identifier@^7.12.11":
-  version "7.12.11"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
-  integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
-
-"@babel/helper-validator-identifier@^7.18.6":
-  version "7.18.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
-  integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==
-
-"@babel/helper-validator-identifier@^7.19.1":
+"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
   version "7.19.1"
   resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
   integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
@@ -320,16 +271,6 @@
   resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
   integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
 
-"@babel/helper-wrap-function@^7.18.6":
-  version "7.18.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073"
-  integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==
-  dependencies:
-    "@babel/helper-function-name" "^7.18.6"
-    "@babel/template" "^7.18.6"
-    "@babel/traverse" "^7.18.6"
-    "@babel/types" "^7.18.6"
-
 "@babel/helper-wrap-function@^7.18.9":
   version "7.18.10"
   resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz#a7fcd3ab9b1be4c9b52cf7d7fdc1e88c2ce93396"
@@ -340,25 +281,16 @@
     "@babel/traverse" "^7.18.10"
     "@babel/types" "^7.18.10"
 
-"@babel/helpers@^7.20.1":
-  version "7.20.1"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9"
-  integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==
+"@babel/helpers@^7.20.5":
+  version "7.20.6"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763"
+  integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==
   dependencies:
     "@babel/template" "^7.18.10"
-    "@babel/traverse" "^7.20.1"
-    "@babel/types" "^7.20.0"
+    "@babel/traverse" "^7.20.5"
+    "@babel/types" "^7.20.5"
 
-"@babel/highlight@^7.10.4":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c"
-  integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==
-  dependencies:
-    "@babel/helper-validator-identifier" "^7.12.11"
-    chalk "^2.0.0"
-    js-tokens "^4.0.0"
-
-"@babel/highlight@^7.18.6":
+"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6":
   version "7.18.6"
   resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
   integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
@@ -367,10 +299,10 @@
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2":
-  version "7.20.3"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2"
-  integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5":
+  version "7.20.5"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8"
+  integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==
 
 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
   version "7.18.6"
@@ -415,12 +347,12 @@
     "@babel/helper-plugin-utils" "^7.18.6"
     "@babel/plugin-syntax-class-static-block" "^7.14.5"
 
-"@babel/plugin-proposal-decorators@^7.20.2":
-  version "7.20.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.2.tgz#1c6c32b2a44b154ebeec2bb534f9eaebdb541fb6"
-  integrity sha512-nkBH96IBmgKnbHQ5gXFrcmez+Z9S2EIDKDQGp005ROqBigc88Tky4rzCnlP/lnlj245dCEQl4/YyV0V1kYh5dw==
+"@babel/plugin-proposal-decorators@^7.20.5":
+  version "7.20.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.5.tgz#28ba1a0e5044664a512967a19407d7fc26925394"
+  integrity sha512-Lac7PpRJXcC3s9cKsBfl+uc+DYXU5FD06BrTFunQO6QIQT+DwyzDPURAowI3bcvD1dZF/ank1Z5rstUJn3Hn4Q==
   dependencies:
-    "@babel/helper-create-class-features-plugin" "^7.20.2"
+    "@babel/helper-create-class-features-plugin" "^7.20.5"
     "@babel/helper-plugin-utils" "^7.20.2"
     "@babel/helper-replace-supers" "^7.19.1"
     "@babel/helper-split-export-declaration" "^7.18.6"
@@ -598,14 +530,7 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-jsx@^7.12.13":
-  version "7.16.7"
-  resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz"
-  integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.7.2":
+"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.7.2":
   version "7.18.6"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0"
   integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==
@@ -1097,12 +1022,12 @@
   dependencies:
     regenerator-runtime "^0.12.0"
 
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
-  version "7.20.1"
-  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9"
-  integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+  version "7.20.6"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3"
+  integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==
   dependencies:
-    regenerator-runtime "^0.13.10"
+    regenerator-runtime "^0.13.11"
 
 "@babel/runtime@^7.8.7":
   version "7.16.7"
@@ -1111,7 +1036,7 @@
   dependencies:
     regenerator-runtime "^0.13.4"
 
-"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3":
+"@babel/template@^7.18.10", "@babel/template@^7.3.3":
   version "7.18.10"
   resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
   integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
@@ -1120,26 +1045,26 @@
     "@babel/parser" "^7.18.10"
     "@babel/types" "^7.18.10"
 
-"@babel/traverse@^7.18.10", "@babel/traverse@^7.18.6", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2":
-  version "7.20.1"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8"
-  integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==
+"@babel/traverse@^7.18.10", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.7.2":
+  version "7.20.5"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133"
+  integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==
   dependencies:
     "@babel/code-frame" "^7.18.6"
-    "@babel/generator" "^7.20.1"
+    "@babel/generator" "^7.20.5"
     "@babel/helper-environment-visitor" "^7.18.9"
     "@babel/helper-function-name" "^7.19.0"
     "@babel/helper-hoist-variables" "^7.18.6"
     "@babel/helper-split-export-declaration" "^7.18.6"
-    "@babel/parser" "^7.20.1"
-    "@babel/types" "^7.20.0"
+    "@babel/parser" "^7.20.5"
+    "@babel/types" "^7.20.5"
     debug "^4.1.0"
     globals "^11.1.0"
 
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
-  version "7.20.2"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842"
-  integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+  version "7.20.5"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84"
+  integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==
   dependencies:
     "@babel/helper-string-parser" "^7.19.4"
     "@babel/helper-validator-identifier" "^7.19.1"
@@ -1228,12 +1153,7 @@
   resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz"
   integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
 
-"@emotion/utils@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz"
-  integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==
-
-"@emotion/utils@^1.1.0":
+"@emotion/utils@^1.0.0", "@emotion/utils@^1.1.0":
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf"
   integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==
@@ -1322,28 +1242,28 @@
   resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz"
   integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
 
-"@jest/console@^29.2.1":
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.1.tgz#5f2c62dcdd5ce66e94b6d6729e021758bceea090"
-  integrity sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw==
+"@jest/console@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583"
+  integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==
   dependencies:
-    "@jest/types" "^29.2.1"
+    "@jest/types" "^29.3.1"
     "@types/node" "*"
     chalk "^4.0.0"
-    jest-message-util "^29.2.1"
-    jest-util "^29.2.1"
+    jest-message-util "^29.3.1"
+    jest-util "^29.3.1"
     slash "^3.0.0"
 
-"@jest/core@^29.2.2":
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.2.tgz#207aa8973d9de8769f9518732bc5f781efc3ffa7"
-  integrity sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A==
+"@jest/core@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1"
+  integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==
   dependencies:
-    "@jest/console" "^29.2.1"
-    "@jest/reporters" "^29.2.2"
-    "@jest/test-result" "^29.2.1"
-    "@jest/transform" "^29.2.2"
-    "@jest/types" "^29.2.1"
+    "@jest/console" "^29.3.1"
+    "@jest/reporters" "^29.3.1"
+    "@jest/test-result" "^29.3.1"
+    "@jest/transform" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@types/node" "*"
     ansi-escapes "^4.2.1"
     chalk "^4.0.0"
@@ -1351,102 +1271,80 @@
     exit "^0.1.2"
     graceful-fs "^4.2.9"
     jest-changed-files "^29.2.0"
-    jest-config "^29.2.2"
-    jest-haste-map "^29.2.1"
-    jest-message-util "^29.2.1"
+    jest-config "^29.3.1"
+    jest-haste-map "^29.3.1"
+    jest-message-util "^29.3.1"
     jest-regex-util "^29.2.0"
-    jest-resolve "^29.2.2"
-    jest-resolve-dependencies "^29.2.2"
-    jest-runner "^29.2.2"
-    jest-runtime "^29.2.2"
-    jest-snapshot "^29.2.2"
-    jest-util "^29.2.1"
-    jest-validate "^29.2.2"
-    jest-watcher "^29.2.2"
+    jest-resolve "^29.3.1"
+    jest-resolve-dependencies "^29.3.1"
+    jest-runner "^29.3.1"
+    jest-runtime "^29.3.1"
+    jest-snapshot "^29.3.1"
+    jest-util "^29.3.1"
+    jest-validate "^29.3.1"
+    jest-watcher "^29.3.1"
     micromatch "^4.0.4"
-    pretty-format "^29.2.1"
+    pretty-format "^29.3.1"
     slash "^3.0.0"
     strip-ansi "^6.0.0"
 
-"@jest/environment@^29.2.1":
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.1.tgz#acb1994fbd5ad02819a1a34a923c531e6923b665"
-  integrity sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg==
-  dependencies:
-    "@jest/fake-timers" "^29.2.1"
-    "@jest/types" "^29.2.1"
-    "@types/node" "*"
-    jest-mock "^29.2.1"
-
-"@jest/environment@^29.2.2":
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.2.tgz#481e729048d42e87d04842c38aa4d09c507f53b0"
-  integrity sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A==
+"@jest/environment@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6"
+  integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==
   dependencies:
-    "@jest/fake-timers" "^29.2.2"
-    "@jest/types" "^29.2.1"
+    "@jest/fake-timers" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@types/node" "*"
-    jest-mock "^29.2.2"
+    jest-mock "^29.3.1"
 
-"@jest/expect-utils@^29.2.2":
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665"
-  integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==
+"@jest/expect-utils@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6"
+  integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==
   dependencies:
     jest-get-type "^29.2.0"
 
-"@jest/expect@^29.2.2":
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.2.tgz#81edbd33afbde7795ca07ff6b4753d15205032e4"
-  integrity sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg==
+"@jest/expect@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd"
+  integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==
   dependencies:
-    expect "^29.2.2"
-    jest-snapshot "^29.2.2"
+    expect "^29.3.1"
+    jest-snapshot "^29.3.1"
 
-"@jest/fake-timers@^29.2.1":
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.1.tgz#786d60e8cb60ca70c9f913cb49fcc77610c072bb"
-  integrity sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA==
+"@jest/fake-timers@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67"
+  integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==
   dependencies:
-    "@jest/types" "^29.2.1"
+    "@jest/types" "^29.3.1"
     "@sinonjs/fake-timers" "^9.1.2"
     "@types/node" "*"
-    jest-message-util "^29.2.1"
-    jest-mock "^29.2.1"
-    jest-util "^29.2.1"
+    jest-message-util "^29.3.1"
+    jest-mock "^29.3.1"
+    jest-util "^29.3.1"
 
-"@jest/fake-timers@^29.2.2":
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.2.tgz#d8332e6e3cfa99cde4bc87d04a17d6b699deb340"
-  integrity sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA==
+"@jest/globals@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6"
+  integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==
   dependencies:
-    "@jest/types" "^29.2.1"
-    "@sinonjs/fake-timers" "^9.1.2"
-    "@types/node" "*"
-    jest-message-util "^29.2.1"
-    jest-mock "^29.2.2"
-    jest-util "^29.2.1"
-
-"@jest/globals@^29.2.2":
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.2.tgz#205ff1e795aa774301c2c0ba0be182558471b845"
-  integrity sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw==
-  dependencies:
-    "@jest/environment" "^29.2.2"
-    "@jest/expect" "^29.2.2"
-    "@jest/types" "^29.2.1"
-    jest-mock "^29.2.2"
+    "@jest/environment" "^29.3.1"
+    "@jest/expect" "^29.3.1"
+    "@jest/types" "^29.3.1"
+    jest-mock "^29.3.1"
 
-"@jest/reporters@^29.2.2":
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.2.tgz#69b395f79c3a97ce969ce05ccf1a482e5d6de290"
-  integrity sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA==
+"@jest/reporters@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310"
+  integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==
   dependencies:
     "@bcoe/v8-coverage" "^0.2.3"
-    "@jest/console" "^29.2.1"
-    "@jest/test-result" "^29.2.1"
-    "@jest/transform" "^29.2.2"
-    "@jest/types" "^29.2.1"
+    "@jest/console" "^29.3.1"
+    "@jest/test-result" "^29.3.1"
+    "@jest/transform" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@jridgewell/trace-mapping" "^0.3.15"
     "@types/node" "*"
     chalk "^4.0.0"
@@ -1459,9 +1357,9 @@
     istanbul-lib-report "^3.0.0"
     istanbul-lib-source-maps "^4.0.0"
     istanbul-reports "^3.1.3"
-    jest-message-util "^29.2.1"
-    jest-util "^29.2.1"
-    jest-worker "^29.2.1"
+    jest-message-util "^29.3.1"
+    jest-util "^29.3.1"
+    jest-worker "^29.3.1"
     slash "^3.0.0"
     string-length "^4.0.1"
     strip-ansi "^6.0.0"
@@ -1483,63 +1381,42 @@
     callsites "^3.0.0"
     graceful-fs "^4.2.9"
 
-"@jest/test-result@^29.2.1":
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.1.tgz#f42dbf7b9ae465d0a93eee6131473b8bb3bd2edb"
-  integrity sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA==
+"@jest/test-result@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50"
+  integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==
   dependencies:
-    "@jest/console" "^29.2.1"
-    "@jest/types" "^29.2.1"
+    "@jest/console" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@types/istanbul-lib-coverage" "^2.0.0"
     collect-v8-coverage "^1.0.0"
 
-"@jest/test-sequencer@^29.2.2":
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz#4ac7487b237e517a1f55e7866fb5553f6e0168b9"
-  integrity sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw==
-  dependencies:
-    "@jest/test-result" "^29.2.1"
-    graceful-fs "^4.2.9"
-    jest-haste-map "^29.2.1"
-    slash "^3.0.0"
-
-"@jest/transform@^29.2.1":
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.1.tgz#f3d8154edd19cdbcaf1d6646bd8f4ff7812318a2"
-  integrity sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA==
+"@jest/test-sequencer@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d"
+  integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==
   dependencies:
-    "@babel/core" "^7.11.6"
-    "@jest/types" "^29.2.1"
-    "@jridgewell/trace-mapping" "^0.3.15"
-    babel-plugin-istanbul "^6.1.1"
-    chalk "^4.0.0"
-    convert-source-map "^1.4.0"
-    fast-json-stable-stringify "^2.1.0"
+    "@jest/test-result" "^29.3.1"
     graceful-fs "^4.2.9"
-    jest-haste-map "^29.2.1"
-    jest-regex-util "^29.2.0"
-    jest-util "^29.2.1"
-    micromatch "^4.0.4"
-    pirates "^4.0.4"
+    jest-haste-map "^29.3.1"
     slash "^3.0.0"
-    write-file-atomic "^4.0.1"
 
-"@jest/transform@^29.2.2":
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6"
-  integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg==
+"@jest/transform@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d"
+  integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==
   dependencies:
     "@babel/core" "^7.11.6"
-    "@jest/types" "^29.2.1"
+    "@jest/types" "^29.3.1"
     "@jridgewell/trace-mapping" "^0.3.15"
     babel-plugin-istanbul "^6.1.1"
     chalk "^4.0.0"
-    convert-source-map "^1.4.0"
+    convert-source-map "^2.0.0"
     fast-json-stable-stringify "^2.1.0"
     graceful-fs "^4.2.9"
-    jest-haste-map "^29.2.1"
+    jest-haste-map "^29.3.1"
     jest-regex-util "^29.2.0"
-    jest-util "^29.2.1"
+    jest-util "^29.3.1"
     micromatch "^4.0.4"
     pirates "^4.0.4"
     slash "^3.0.0"
@@ -1566,10 +1443,10 @@
     "@types/yargs" "^16.0.0"
     chalk "^4.0.0"
 
-"@jest/types@^29.2.1":
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0"
-  integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==
+"@jest/types@^29.3.1":
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3"
+  integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==
   dependencies:
     "@jest/schemas" "^29.0.0"
     "@types/istanbul-lib-coverage" "^2.0.0"
@@ -1602,23 +1479,7 @@
   resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186"
   integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==
 
-"@jridgewell/trace-mapping@^0.3.0":
-  version "0.3.4"
-  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3"
-  integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==
-  dependencies:
-    "@jridgewell/resolve-uri" "^3.0.3"
-    "@jridgewell/sourcemap-codec" "^1.4.10"
-
-"@jridgewell/trace-mapping@^0.3.12":
-  version "0.3.14"
-  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed"
-  integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==
-  dependencies:
-    "@jridgewell/resolve-uri" "^3.0.3"
-    "@jridgewell/sourcemap-codec" "^1.4.10"
-
-"@jridgewell/trace-mapping@^0.3.15":
+"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9":
   version "0.3.15"
   resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
   integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
@@ -1626,14 +1487,6 @@
     "@jridgewell/resolve-uri" "^3.0.3"
     "@jridgewell/sourcemap-codec" "^1.4.10"
 
-"@jridgewell/trace-mapping@^0.3.9":
-  version "0.3.13"
-  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea"
-  integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==
-  dependencies:
-    "@jridgewell/resolve-uri" "^3.0.3"
-    "@jridgewell/sourcemap-codec" "^1.4.10"
-
 "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
   version "5.1.1-v1"
   resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129"
@@ -2023,16 +1876,7 @@
   dependencies:
     "@types/react" "*"
 
-"@types/react@*":
-  version "17.0.3"
-  resolved "https://registry.npmjs.org/@types/react/-/react-17.0.3.tgz"
-  integrity sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg==
-  dependencies:
-    "@types/prop-types" "*"
-    "@types/scheduler" "*"
-    csstype "^3.0.2"
-
-"@types/react@^17":
+"@types/react@*", "@types/react@^17":
   version "17.0.44"
   resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7"
   integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g==
@@ -2354,17 +2198,7 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
-ajv@^8.0.1:
-  version "8.5.0"
-  resolved "https://registry.npmjs.org/ajv/-/ajv-8.5.0.tgz"
-  integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==
-  dependencies:
-    fast-deep-equal "^3.1.1"
-    json-schema-traverse "^1.0.0"
-    require-from-string "^2.0.2"
-    uri-js "^4.2.2"
-
-ajv@^8.6.0:
+ajv@^8.0.1, ajv@^8.6.0:
   version "8.11.0"
   resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f"
   integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==
@@ -2457,12 +2291,7 @@ anymatch@^3.0.3, anymatch@~3.1.2:
     normalize-path "^3.0.0"
     picomatch "^2.0.4"
 
-"aproba@^1.0.3 || ^2.0.0":
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz"
-  integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
-
-aproba@^1.1.1:
+"aproba@^1.0.3 || ^2.0.0", aproba@^1.1.1:
   version "1.2.0"
   resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"
   integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
@@ -2691,10 +2520,10 @@ axe-core@^4.4.3:
   resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f"
   integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==
 
-axios@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35"
-  integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==
+axios@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.1.tgz#44cf04a3c9f0c2252ebd85975361c026cb9f864a"
+  integrity sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==
   dependencies:
     follow-redirects "^1.15.0"
     form-data "^4.0.0"
@@ -2705,25 +2534,12 @@ axobject-query@^2.2.0:
   resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz"
   integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==
 
-babel-jest@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.1.tgz#213c47e28072de11bdb98c9d29b89f2ab99664f1"
-  integrity sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw==
+babel-jest@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44"
+  integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==
   dependencies:
-    "@jest/transform" "^29.2.1"
-    "@types/babel__core" "^7.1.14"
-    babel-plugin-istanbul "^6.1.1"
-    babel-preset-jest "^29.2.0"
-    chalk "^4.0.0"
-    graceful-fs "^4.2.9"
-    slash "^3.0.0"
-
-babel-jest@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5"
-  integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w==
-  dependencies:
-    "@jest/transform" "^29.2.2"
+    "@jest/transform" "^29.3.1"
     "@types/babel__core" "^7.1.14"
     babel-plugin-istanbul "^6.1.1"
     babel-preset-jest "^29.2.0"
@@ -2879,12 +2695,7 @@ balanced-match@^2.0.0:
   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9"
   integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==
 
-base64-js@^1.0.2:
-  version "1.3.1"
-  resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz"
-  integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
-
-base64-js@^1.3.1:
+base64-js@^1.0.2, base64-js@^1.3.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
   integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -3098,18 +2909,7 @@ browserify-zlib@^0.2.0:
   dependencies:
     pako "~1.0.5"
 
-browserslist@^4.0.0, browserslist@^4.12.0:
-  version "4.16.6"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
-  integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
-  dependencies:
-    caniuse-lite "^1.0.30001219"
-    colorette "^1.2.2"
-    electron-to-chromium "^1.3.723"
-    escalade "^3.1.1"
-    node-releases "^1.1.71"
-
-browserslist@^4.21.3, browserslist@^4.21.4:
+browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.3, browserslist@^4.21.4:
   version "4.21.4"
   resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
   integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
@@ -3310,7 +3110,7 @@ caniuse-api@^3.0.0:
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001400:
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400:
   version "1.0.30001414"
   resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz"
   integrity sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==
@@ -3562,11 +3362,6 @@ colord@^2.9.3:
   resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43"
   integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==
 
-colorette@^1.2.2:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
-  integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
-
 colors@^1.4.0:
   version "1.4.0"
   resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz"
@@ -3682,13 +3477,18 @@ content-type@~1.0.4:
   resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
   integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
 
-convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
   version "1.8.0"
   resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz"
   integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
   dependencies:
     safe-buffer "~5.1.1"
 
+convert-source-map@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+  integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
 cookie-signature@1.0.6:
   version "1.0.6"
   resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
@@ -4131,9 +3931,9 @@ decimal.js@^10.4.2:
   integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==
 
 decode-uri-component@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz"
-  integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
+  integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
 
 dedent@^0.7.0:
   version "0.7.0"
@@ -4278,10 +4078,10 @@ diff-sequences@^25.2.6:
   resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz"
   integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==
 
-diff-sequences@^29.2.0:
-  version "29.2.0"
-  resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6"
-  integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==
+diff-sequences@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e"
+  integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==
 
 diffie-hellman@^5.0.0:
   version "5.0.3"
@@ -4430,11 +4230,6 @@ ejs@^3.1.6:
   dependencies:
     jake "^10.8.5"
 
-electron-to-chromium@^1.3.723:
-  version "1.3.736"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.736.tgz#f632d900a1f788dab22fec9c62ec5c9c8f0c4052"
-  integrity sha512-DY8dA7gR51MSo66DqitEQoUMQ0Z+A2DSXFi7tK304bdTVqczCAfUuyQw6Wdg8hIoo5zIxkU1L24RQtUce1Ioig==
-
 electron-to-chromium@^1.4.251:
   version "1.4.254"
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz#c6203583890abf88dfc0be046cd72d3b48f8beb6"
@@ -4546,61 +4341,61 @@ error-stack-parser@^2.0.6:
   dependencies:
     stackframe "^1.1.1"
 
-es-abstract@^1.17.0-next.1, es-abstract@^1.20.4:
-  version "1.20.4"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861"
-  integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==
+es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5:
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.0.tgz#b2d526489cceca004588296334726329e0a6bfb6"
+  integrity sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==
   dependencies:
     call-bind "^1.0.2"
     es-to-primitive "^1.2.1"
     function-bind "^1.1.1"
     function.prototype.name "^1.1.5"
-    get-intrinsic "^1.1.3"
+    get-intrinsic "^1.1.1"
     get-symbol-description "^1.0.0"
     has "^1.0.3"
     has-property-descriptors "^1.0.0"
     has-symbols "^1.0.3"
     internal-slot "^1.0.3"
-    is-callable "^1.2.7"
+    is-callable "^1.2.4"
     is-negative-zero "^2.0.2"
     is-regex "^1.1.4"
     is-shared-array-buffer "^1.0.2"
     is-string "^1.0.7"
     is-weakref "^1.0.2"
-    object-inspect "^1.12.2"
+    object-inspect "^1.12.0"
     object-keys "^1.1.1"
-    object.assign "^4.1.4"
-    regexp.prototype.flags "^1.4.3"
-    safe-regex-test "^1.0.0"
+    object.assign "^4.1.2"
+    regexp.prototype.flags "^1.4.1"
     string.prototype.trimend "^1.0.5"
     string.prototype.trimstart "^1.0.5"
     unbox-primitive "^1.0.2"
 
-es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5:
-  version "1.20.0"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.0.tgz#b2d526489cceca004588296334726329e0a6bfb6"
-  integrity sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==
+es-abstract@^1.20.4:
+  version "1.20.4"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861"
+  integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==
   dependencies:
     call-bind "^1.0.2"
     es-to-primitive "^1.2.1"
     function-bind "^1.1.1"
     function.prototype.name "^1.1.5"
-    get-intrinsic "^1.1.1"
+    get-intrinsic "^1.1.3"
     get-symbol-description "^1.0.0"
     has "^1.0.3"
     has-property-descriptors "^1.0.0"
     has-symbols "^1.0.3"
     internal-slot "^1.0.3"
-    is-callable "^1.2.4"
+    is-callable "^1.2.7"
     is-negative-zero "^2.0.2"
     is-regex "^1.1.4"
     is-shared-array-buffer "^1.0.2"
     is-string "^1.0.7"
     is-weakref "^1.0.2"
-    object-inspect "^1.12.0"
+    object-inspect "^1.12.2"
     object-keys "^1.1.1"
-    object.assign "^4.1.2"
-    regexp.prototype.flags "^1.4.1"
+    object.assign "^4.1.4"
+    regexp.prototype.flags "^1.4.3"
+    safe-regex-test "^1.0.0"
     string.prototype.trimend "^1.0.5"
     string.prototype.trimstart "^1.0.5"
     unbox-primitive "^1.0.2"
@@ -4984,16 +4779,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
   dependencies:
     homedir-polyfill "^1.0.1"
 
-expect@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106"
-  integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw==
+expect@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6"
+  integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==
   dependencies:
-    "@jest/expect-utils" "^29.2.2"
+    "@jest/expect-utils" "^29.3.1"
     jest-get-type "^29.2.0"
-    jest-matcher-utils "^29.2.2"
-    jest-message-util "^29.2.1"
-    jest-util "^29.2.1"
+    jest-matcher-utils "^29.3.1"
+    jest-message-util "^29.3.1"
+    jest-util "^29.3.1"
 
 express@^4.17.1, express@^4.18.2:
   version "4.18.2"
@@ -5649,17 +5444,7 @@ has-property-descriptors@^1.0.0:
   dependencies:
     get-intrinsic "^1.1.1"
 
-has-symbols@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
-  integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
-
-has-symbols@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz"
-  integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
-
-has-symbols@^1.0.3:
+has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
   integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
@@ -5856,10 +5641,10 @@ http-errors@~1.6.2:
     setprototypeof "1.1.0"
     statuses ">= 1.4.0 < 2"
 
-http-link-header@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.0.5.tgz#8e6d9ed1d393e8d5e01aa5c48bd97aa38d7e261c"
-  integrity sha512-msKrMbv/xHzhdOD4sstbEr+NbGqpv8ZtZliiCeByGENJo1jK1GZ/81zHF9HpWtEH5ihovPpdqHXniwZapJCKEA==
+http-link-header@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.1.0.tgz#a1ca87efdbcb7778d8d0d4525de1e6964ec1f129"
+  integrity sha512-pj6N1yxOz/ANO8HHsWGg/OoIL1kmRYvQnXQ7PIRpgp+15AnEsRH8fmIJE6D1OdWG2Bov+BJHVla1fFXxg1JbbA==
 
 http-parser-js@>=0.5.1:
   version "0.5.5"
@@ -5981,15 +5766,7 @@ import-fresh@^2.0.0:
     caller-path "^2.0.0"
     resolve-from "^3.0.0"
 
-import-fresh@^3.0.0, import-fresh@^3.2.1:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
-  integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
-  dependencies:
-    parent-module "^1.0.0"
-    resolve-from "^4.0.0"
-
-import-fresh@^3.1.0:
+import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
   integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
@@ -6244,21 +6021,16 @@ is-boolean-object@^1.1.0:
     call-bind "^1.0.2"
     has-tostringtag "^1.0.0"
 
-is-callable@^1.1.4:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
-  integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==
+is-callable@^1.1.4, is-callable@^1.2.7:
+  version "1.2.7"
+  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
+  integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
 
 is-callable@^1.2.4:
   version "1.2.4"
   resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz"
   integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
 
-is-callable@^1.2.7:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
-  integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-
 is-color-stop@^1.0.0:
   version "1.1.0"
   resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz"
@@ -6271,14 +6043,7 @@ is-color-stop@^1.0.0:
     rgb-regex "^1.0.1"
     rgba-regex "^1.0.0"
 
-is-core-module@^2.2.0, is-core-module@^2.8.1:
-  version "2.8.1"
-  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
-  integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
-  dependencies:
-    has "^1.0.3"
-
-is-core-module@^2.5.0:
+is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.1:
   version "2.9.0"
   resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
   integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
@@ -6468,14 +6233,7 @@ is-potential-custom-element-name@^1.0.1:
   resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz"
   integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
 
-is-regex@^1.0.4:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff"
-  integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==
-  dependencies:
-    has-symbols "^1.0.1"
-
-is-regex@^1.1.4:
+is-regex@^1.0.4, is-regex@^1.1.4:
   version "1.1.4"
   resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
   integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
@@ -6633,74 +6391,74 @@ jest-changed-files@^29.2.0:
     execa "^5.0.0"
     p-limit "^3.1.0"
 
-jest-circus@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.2.tgz#1dc4d35fd49bf5e64d3cc505fb2db396237a6dfa"
-  integrity sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw==
+jest-circus@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a"
+  integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==
   dependencies:
-    "@jest/environment" "^29.2.2"
-    "@jest/expect" "^29.2.2"
-    "@jest/test-result" "^29.2.1"
-    "@jest/types" "^29.2.1"
+    "@jest/environment" "^29.3.1"
+    "@jest/expect" "^29.3.1"
+    "@jest/test-result" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@types/node" "*"
     chalk "^4.0.0"
     co "^4.6.0"
     dedent "^0.7.0"
     is-generator-fn "^2.0.0"
-    jest-each "^29.2.1"
-    jest-matcher-utils "^29.2.2"
-    jest-message-util "^29.2.1"
-    jest-runtime "^29.2.2"
-    jest-snapshot "^29.2.2"
-    jest-util "^29.2.1"
+    jest-each "^29.3.1"
+    jest-matcher-utils "^29.3.1"
+    jest-message-util "^29.3.1"
+    jest-runtime "^29.3.1"
+    jest-snapshot "^29.3.1"
+    jest-util "^29.3.1"
     p-limit "^3.1.0"
-    pretty-format "^29.2.1"
+    pretty-format "^29.3.1"
     slash "^3.0.0"
     stack-utils "^2.0.3"
 
-jest-cli@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.2.tgz#feaf0aa57d327e80d4f2f18d5f8cd2e77cac5371"
-  integrity sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg==
+jest-cli@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d"
+  integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==
   dependencies:
-    "@jest/core" "^29.2.2"
-    "@jest/test-result" "^29.2.1"
-    "@jest/types" "^29.2.1"
+    "@jest/core" "^29.3.1"
+    "@jest/test-result" "^29.3.1"
+    "@jest/types" "^29.3.1"
     chalk "^4.0.0"
     exit "^0.1.2"
     graceful-fs "^4.2.9"
     import-local "^3.0.2"
-    jest-config "^29.2.2"
-    jest-util "^29.2.1"
-    jest-validate "^29.2.2"
+    jest-config "^29.3.1"
+    jest-util "^29.3.1"
+    jest-validate "^29.3.1"
     prompts "^2.0.1"
     yargs "^17.3.1"
 
-jest-config@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.2.tgz#bf98623a46454d644630c1f0de8bba3f495c2d59"
-  integrity sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw==
+jest-config@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6"
+  integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==
   dependencies:
     "@babel/core" "^7.11.6"
-    "@jest/test-sequencer" "^29.2.2"
-    "@jest/types" "^29.2.1"
-    babel-jest "^29.2.2"
+    "@jest/test-sequencer" "^29.3.1"
+    "@jest/types" "^29.3.1"
+    babel-jest "^29.3.1"
     chalk "^4.0.0"
     ci-info "^3.2.0"
     deepmerge "^4.2.2"
     glob "^7.1.3"
     graceful-fs "^4.2.9"
-    jest-circus "^29.2.2"
-    jest-environment-node "^29.2.2"
+    jest-circus "^29.3.1"
+    jest-environment-node "^29.3.1"
     jest-get-type "^29.2.0"
     jest-regex-util "^29.2.0"
-    jest-resolve "^29.2.2"
-    jest-runner "^29.2.2"
-    jest-util "^29.2.1"
-    jest-validate "^29.2.2"
+    jest-resolve "^29.3.1"
+    jest-runner "^29.3.1"
+    jest-util "^29.3.1"
+    jest-validate "^29.3.1"
     micromatch "^4.0.4"
     parse-json "^5.2.0"
-    pretty-format "^29.2.1"
+    pretty-format "^29.3.1"
     slash "^3.0.0"
     strip-json-comments "^3.1.1"
 
@@ -6714,15 +6472,15 @@ jest-diff@^25.2.1:
     jest-get-type "^25.2.6"
     pretty-format "^25.5.0"
 
-jest-diff@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee"
-  integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==
+jest-diff@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527"
+  integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==
   dependencies:
     chalk "^4.0.0"
-    diff-sequences "^29.2.0"
+    diff-sequences "^29.3.1"
     jest-get-type "^29.2.0"
-    pretty-format "^29.2.1"
+    pretty-format "^29.3.1"
 
 jest-docblock@^29.2.0:
   version "29.2.0"
@@ -6731,42 +6489,42 @@ jest-docblock@^29.2.0:
   dependencies:
     detect-newline "^3.0.0"
 
-jest-each@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.1.tgz#6b0a88ee85c2ba27b571a6010c2e0c674f5c9b29"
-  integrity sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw==
+jest-each@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132"
+  integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==
   dependencies:
-    "@jest/types" "^29.2.1"
+    "@jest/types" "^29.3.1"
     chalk "^4.0.0"
     jest-get-type "^29.2.0"
-    jest-util "^29.2.1"
-    pretty-format "^29.2.1"
+    jest-util "^29.3.1"
+    pretty-format "^29.3.1"
 
-jest-environment-jsdom@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.1.tgz#5bfbbc52a74b333c7e69ff3a4f540af850a7a718"
-  integrity sha512-MipBdmrjgzEdQMkK7b7wBShOfv1VqO6FVwa9S43bZwKYLC4dlWnPiCgNpZX3ypNEpJO8EMpMhg4HrUkWUZXGiw==
+jest-environment-jsdom@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz#14ca63c3e0ef5c63c5bcb46033e50bc649e3b639"
+  integrity sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA==
   dependencies:
-    "@jest/environment" "^29.2.1"
-    "@jest/fake-timers" "^29.2.1"
-    "@jest/types" "^29.2.1"
+    "@jest/environment" "^29.3.1"
+    "@jest/fake-timers" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@types/jsdom" "^20.0.0"
     "@types/node" "*"
-    jest-mock "^29.2.1"
-    jest-util "^29.2.1"
+    jest-mock "^29.3.1"
+    jest-util "^29.3.1"
     jsdom "^20.0.0"
 
-jest-environment-node@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.2.tgz#a64b272773870c3a947cd338c25fd34938390bc2"
-  integrity sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw==
+jest-environment-node@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74"
+  integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==
   dependencies:
-    "@jest/environment" "^29.2.2"
-    "@jest/fake-timers" "^29.2.2"
-    "@jest/types" "^29.2.1"
+    "@jest/environment" "^29.3.1"
+    "@jest/fake-timers" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@types/node" "*"
-    jest-mock "^29.2.2"
-    jest-util "^29.2.1"
+    jest-mock "^29.3.1"
+    jest-util "^29.3.1"
 
 jest-get-type@^25.2.6:
   version "25.2.6"
@@ -6778,75 +6536,66 @@ jest-get-type@^29.2.0:
   resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408"
   integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==
 
-jest-haste-map@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699"
-  integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA==
+jest-haste-map@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843"
+  integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==
   dependencies:
-    "@jest/types" "^29.2.1"
+    "@jest/types" "^29.3.1"
     "@types/graceful-fs" "^4.1.3"
     "@types/node" "*"
     anymatch "^3.0.3"
     fb-watchman "^2.0.0"
     graceful-fs "^4.2.9"
     jest-regex-util "^29.2.0"
-    jest-util "^29.2.1"
-    jest-worker "^29.2.1"
+    jest-util "^29.3.1"
+    jest-worker "^29.3.1"
     micromatch "^4.0.4"
     walker "^1.0.8"
   optionalDependencies:
     fsevents "^2.3.2"
 
-jest-leak-detector@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz#ec551686b7d512ec875616c2c3534298b1ffe2fc"
-  integrity sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug==
+jest-leak-detector@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518"
+  integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==
   dependencies:
     jest-get-type "^29.2.0"
-    pretty-format "^29.2.1"
+    pretty-format "^29.3.1"
 
-jest-matcher-utils@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c"
-  integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==
+jest-matcher-utils@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572"
+  integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==
   dependencies:
     chalk "^4.0.0"
-    jest-diff "^29.2.1"
+    jest-diff "^29.3.1"
     jest-get-type "^29.2.0"
-    pretty-format "^29.2.1"
+    pretty-format "^29.3.1"
 
-jest-message-util@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193"
-  integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==
+jest-message-util@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb"
+  integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==
   dependencies:
     "@babel/code-frame" "^7.12.13"
-    "@jest/types" "^29.2.1"
+    "@jest/types" "^29.3.1"
     "@types/stack-utils" "^2.0.0"
     chalk "^4.0.0"
     graceful-fs "^4.2.9"
     micromatch "^4.0.4"
-    pretty-format "^29.2.1"
+    pretty-format "^29.3.1"
     slash "^3.0.0"
     stack-utils "^2.0.3"
 
-jest-mock@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.1.tgz#a0d361cffcb28184fa9c5443adbf591fa5759775"
-  integrity sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA==
+jest-mock@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e"
+  integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==
   dependencies:
-    "@jest/types" "^29.2.1"
+    "@jest/types" "^29.3.1"
     "@types/node" "*"
-    jest-util "^29.2.1"
-
-jest-mock@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.2.tgz#9045618b3f9d27074bbcf2d55bdca6a5e2e8bca7"
-  integrity sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ==
-  dependencies:
-    "@jest/types" "^29.2.1"
-    "@types/node" "*"
-    jest-util "^29.2.1"
+    jest-util "^29.3.1"
 
 jest-pnp-resolver@^1.2.2:
   version "1.2.2"
@@ -6858,88 +6607,88 @@ jest-regex-util@^29.2.0:
   resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b"
   integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==
 
-jest-resolve-dependencies@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz#1f444766f37a25f1490b5137408b6ff746a05d64"
-  integrity sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ==
+jest-resolve-dependencies@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf"
+  integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==
   dependencies:
     jest-regex-util "^29.2.0"
-    jest-snapshot "^29.2.2"
+    jest-snapshot "^29.3.1"
 
-jest-resolve@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.2.tgz#ad6436053b0638b41e12bbddde2b66e1397b35b5"
-  integrity sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA==
+jest-resolve@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7"
+  integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==
   dependencies:
     chalk "^4.0.0"
     graceful-fs "^4.2.9"
-    jest-haste-map "^29.2.1"
+    jest-haste-map "^29.3.1"
     jest-pnp-resolver "^1.2.2"
-    jest-util "^29.2.1"
-    jest-validate "^29.2.2"
+    jest-util "^29.3.1"
+    jest-validate "^29.3.1"
     resolve "^1.20.0"
     resolve.exports "^1.1.0"
     slash "^3.0.0"
 
-jest-runner@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.2.tgz#6b5302ed15eba8bf05e6b14d40f1e8d469564da3"
-  integrity sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg==
+jest-runner@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d"
+  integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==
   dependencies:
-    "@jest/console" "^29.2.1"
-    "@jest/environment" "^29.2.2"
-    "@jest/test-result" "^29.2.1"
-    "@jest/transform" "^29.2.2"
-    "@jest/types" "^29.2.1"
+    "@jest/console" "^29.3.1"
+    "@jest/environment" "^29.3.1"
+    "@jest/test-result" "^29.3.1"
+    "@jest/transform" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@types/node" "*"
     chalk "^4.0.0"
     emittery "^0.13.1"
     graceful-fs "^4.2.9"
     jest-docblock "^29.2.0"
-    jest-environment-node "^29.2.2"
-    jest-haste-map "^29.2.1"
-    jest-leak-detector "^29.2.1"
-    jest-message-util "^29.2.1"
-    jest-resolve "^29.2.2"
-    jest-runtime "^29.2.2"
-    jest-util "^29.2.1"
-    jest-watcher "^29.2.2"
-    jest-worker "^29.2.1"
+    jest-environment-node "^29.3.1"
+    jest-haste-map "^29.3.1"
+    jest-leak-detector "^29.3.1"
+    jest-message-util "^29.3.1"
+    jest-resolve "^29.3.1"
+    jest-runtime "^29.3.1"
+    jest-util "^29.3.1"
+    jest-watcher "^29.3.1"
+    jest-worker "^29.3.1"
     p-limit "^3.1.0"
     source-map-support "0.5.13"
 
-jest-runtime@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.2.tgz#4068ee82423769a481460efd21d45a8efaa5c179"
-  integrity sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA==
+jest-runtime@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a"
+  integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==
   dependencies:
-    "@jest/environment" "^29.2.2"
-    "@jest/fake-timers" "^29.2.2"
-    "@jest/globals" "^29.2.2"
+    "@jest/environment" "^29.3.1"
+    "@jest/fake-timers" "^29.3.1"
+    "@jest/globals" "^29.3.1"
     "@jest/source-map" "^29.2.0"
-    "@jest/test-result" "^29.2.1"
-    "@jest/transform" "^29.2.2"
-    "@jest/types" "^29.2.1"
+    "@jest/test-result" "^29.3.1"
+    "@jest/transform" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@types/node" "*"
     chalk "^4.0.0"
     cjs-module-lexer "^1.0.0"
     collect-v8-coverage "^1.0.0"
     glob "^7.1.3"
     graceful-fs "^4.2.9"
-    jest-haste-map "^29.2.1"
-    jest-message-util "^29.2.1"
-    jest-mock "^29.2.2"
+    jest-haste-map "^29.3.1"
+    jest-message-util "^29.3.1"
+    jest-mock "^29.3.1"
     jest-regex-util "^29.2.0"
-    jest-resolve "^29.2.2"
-    jest-snapshot "^29.2.2"
-    jest-util "^29.2.1"
+    jest-resolve "^29.3.1"
+    jest-snapshot "^29.3.1"
+    jest-util "^29.3.1"
     slash "^3.0.0"
     strip-bom "^4.0.0"
 
-jest-snapshot@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.2.tgz#1016ce60297b77382386bad561107174604690c2"
-  integrity sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA==
+jest-snapshot@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e"
+  integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==
   dependencies:
     "@babel/core" "^7.11.6"
     "@babel/generator" "^7.7.2"
@@ -6947,61 +6696,61 @@ jest-snapshot@^29.2.2:
     "@babel/plugin-syntax-typescript" "^7.7.2"
     "@babel/traverse" "^7.7.2"
     "@babel/types" "^7.3.3"
-    "@jest/expect-utils" "^29.2.2"
-    "@jest/transform" "^29.2.2"
-    "@jest/types" "^29.2.1"
+    "@jest/expect-utils" "^29.3.1"
+    "@jest/transform" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@types/babel__traverse" "^7.0.6"
     "@types/prettier" "^2.1.5"
     babel-preset-current-node-syntax "^1.0.0"
     chalk "^4.0.0"
-    expect "^29.2.2"
+    expect "^29.3.1"
     graceful-fs "^4.2.9"
-    jest-diff "^29.2.1"
+    jest-diff "^29.3.1"
     jest-get-type "^29.2.0"
-    jest-haste-map "^29.2.1"
-    jest-matcher-utils "^29.2.2"
-    jest-message-util "^29.2.1"
-    jest-util "^29.2.1"
+    jest-haste-map "^29.3.1"
+    jest-matcher-utils "^29.3.1"
+    jest-message-util "^29.3.1"
+    jest-util "^29.3.1"
     natural-compare "^1.4.0"
-    pretty-format "^29.2.1"
+    pretty-format "^29.3.1"
     semver "^7.3.5"
 
-jest-util@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747"
-  integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==
+jest-util@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1"
+  integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==
   dependencies:
-    "@jest/types" "^29.2.1"
+    "@jest/types" "^29.3.1"
     "@types/node" "*"
     chalk "^4.0.0"
     ci-info "^3.2.0"
     graceful-fs "^4.2.9"
     picomatch "^2.2.3"
 
-jest-validate@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.2.tgz#e43ce1931292dfc052562a11bc681af3805eadce"
-  integrity sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA==
+jest-validate@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a"
+  integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==
   dependencies:
-    "@jest/types" "^29.2.1"
+    "@jest/types" "^29.3.1"
     camelcase "^6.2.0"
     chalk "^4.0.0"
     jest-get-type "^29.2.0"
     leven "^3.1.0"
-    pretty-format "^29.2.1"
+    pretty-format "^29.3.1"
 
-jest-watcher@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.2.tgz#7093d4ea8177e0a0da87681a9e7b09a258b9daf7"
-  integrity sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w==
+jest-watcher@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a"
+  integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==
   dependencies:
-    "@jest/test-result" "^29.2.1"
-    "@jest/types" "^29.2.1"
+    "@jest/test-result" "^29.3.1"
+    "@jest/types" "^29.3.1"
     "@types/node" "*"
     ansi-escapes "^4.2.1"
     chalk "^4.0.0"
     emittery "^0.13.1"
-    jest-util "^29.2.1"
+    jest-util "^29.3.1"
     string-length "^4.0.1"
 
 jest-worker@^26.2.1, jest-worker@^26.5.0:
@@ -7013,25 +6762,25 @@ jest-worker@^26.2.1, jest-worker@^26.5.0:
     merge-stream "^2.0.0"
     supports-color "^7.0.0"
 
-jest-worker@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1"
-  integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==
+jest-worker@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b"
+  integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==
   dependencies:
     "@types/node" "*"
-    jest-util "^29.2.1"
+    jest-util "^29.3.1"
     merge-stream "^2.0.0"
     supports-color "^8.0.0"
 
-jest@^29.2.2:
-  version "29.2.2"
-  resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.2.tgz#24da83cbbce514718acd698926b7679109630476"
-  integrity sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ==
+jest@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122"
+  integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==
   dependencies:
-    "@jest/core" "^29.2.2"
-    "@jest/types" "^29.2.1"
+    "@jest/core" "^29.3.1"
+    "@jest/types" "^29.3.1"
     import-local "^3.0.2"
-    jest-cli "^29.2.2"
+    jest-cli "^29.3.1"
 
 jpeg-autorotate@^7.1.1:
   version "7.1.1"
@@ -7605,51 +7354,27 @@ miller-rabin@^4.0.0:
     bn.js "^4.0.0"
     brorand "^1.0.1"
 
-mime-db@1.44.0:
-  version "1.44.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
-  integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
-
-mime-db@1.51.0, "mime-db@>= 1.43.0 < 2":
-  version "1.51.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
-  integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
-
-mime-db@1.52.0:
+mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
   version "1.52.0"
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
   integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
 
-mime-types@^2.1.12:
+mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34:
   version "2.1.35"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
   integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
   dependencies:
     mime-db "1.52.0"
 
-mime-types@~2.1.17, mime-types@~2.1.24:
-  version "2.1.27"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
-  integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
-  dependencies:
-    mime-db "1.44.0"
-
-mime-types@~2.1.34:
-  version "2.1.34"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
-  integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
-  dependencies:
-    mime-db "1.51.0"
-
 mime@1.6.0:
   version "1.6.0"
   resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
   integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
 
 mime@^2.4.4:
-  version "2.6.0"
-  resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz"
-  integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
+  version "2.4.7"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.7.tgz#962aed9be0ed19c91fd7dc2ece5d7f4e89a90d74"
+  integrity sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==
 
 mimic-fn@^2.1.0:
   version "2.1.0"
@@ -7703,16 +7428,11 @@ minimist-options@4.1.0:
     is-plain-obj "^1.1.0"
     kind-of "^6.0.3"
 
-minimist@^1.2.0:
+minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
   version "1.2.7"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
   integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
 
-minimist@^1.2.5, minimist@^1.2.6:
-  version "1.2.6"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
-  integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
-
 minipass-collect@^1.0.2:
   version "1.0.2"
   resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz"
@@ -7812,12 +7532,12 @@ ms@2.0.0:
   resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
   integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
 
-ms@2.1.2, ms@^2.1.1:
+ms@2.1.2:
   version "2.1.2"
   resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
 
-ms@2.1.3:
+ms@2.1.3, ms@^2.1.1:
   version "2.1.3"
   resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
   integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
@@ -7938,11 +7658,6 @@ node-libs-browser@^2.2.1:
     util "^0.11.0"
     vm-browserify "^1.0.1"
 
-node-releases@^1.1.71:
-  version "1.1.72"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
-  integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==
-
 node-releases@^2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
@@ -8050,16 +7765,11 @@ object-fit-images@^3.2.3:
   resolved "https://registry.npmjs.org/object-fit-images/-/object-fit-images-3.2.4.tgz"
   integrity sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg==
 
-object-inspect@^1.12.0, object-inspect@^1.12.2:
+object-inspect@^1.12.0, object-inspect@^1.12.2, object-inspect@^1.9.0:
   version "1.12.2"
   resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
   integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
 
-object-inspect@^1.9.0:
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a"
-  integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==
-
 object-is@^1.0.1:
   version "1.1.5"
   resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz"
@@ -8080,17 +7790,7 @@ object-visit@^1.0.0:
   dependencies:
     isobject "^3.0.0"
 
-object.assign@^4.1.2:
-  version "4.1.2"
-  resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz"
-  integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
-  dependencies:
-    call-bind "^1.0.0"
-    define-properties "^1.1.3"
-    has-symbols "^1.0.1"
-    object-keys "^1.1.1"
-
-object.assign@^4.1.4:
+object.assign@^4.1.2, object.assign@^4.1.4:
   version "4.1.4"
   resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
   integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
@@ -8552,21 +8252,11 @@ picocolors@^1.0.0:
   resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
   integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
 
-picomatch@^2.0.4, picomatch@^2.2.1:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
-  integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
-
-picomatch@^2.2.2, picomatch@^2.3.1:
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1:
   version "2.3.1"
   resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
   integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
 
-picomatch@^2.2.3:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
-  integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
-
 piexifjs@^1.0.6:
   version "1.0.6"
   resolved "https://registry.npmjs.org/piexifjs/-/piexifjs-1.0.6.tgz"
@@ -8925,10 +8615,10 @@ postcss-safe-parser@^6.0.0:
   resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1"
   integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==
 
-postcss-scss@^4.0.2, postcss-scss@^4.0.5:
-  version "4.0.5"
-  resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.5.tgz#8ee33c1dda8d9d4753b565ec79014803dc6edabf"
-  integrity sha512-F7xpB6TrXyqUh3GKdyB4Gkp3QL3DDW1+uI+gxx/oJnUt/qXI4trj5OGlp9rOKdoABGULuqtqeG+3HEVQk4DjmA==
+postcss-scss@^4.0.2, postcss-scss@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.6.tgz#5d62a574b950a6ae12f2aa89b60d63d9e4432bfd"
+  integrity sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==
 
 postcss-selector-parser@^3.0.0:
   version "3.1.2"
@@ -9034,10 +8724,10 @@ prelude-ls@~1.1.2:
   resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
   integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
 
-prettier@^2.7.1:
-  version "2.7.1"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
-  integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
+prettier@^2.8.0:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9"
+  integrity sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==
 
 pretty-bytes@^5.3.0, pretty-bytes@^5.4.1:
   version "5.6.0"
@@ -9064,10 +8754,10 @@ pretty-format@^27.0.2:
     ansi-styles "^5.0.0"
     react-is "^17.0.1"
 
-pretty-format@^29.2.1:
-  version "29.2.1"
-  resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611"
-  integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==
+pretty-format@^29.3.1:
+  version "29.3.1"
+  resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da"
+  integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==
   dependencies:
     "@jest/schemas" "^29.0.0"
     ansi-styles "^5.0.0"
@@ -9460,10 +9150,10 @@ react-router@^4.3.1:
     prop-types "^15.6.1"
     warning "^4.0.1"
 
-react-select@^5.5.4:
-  version "5.5.4"
-  resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.5.4.tgz#da05b8b66d33f6fc1f92fdccd0fa50d7f4418554"
-  integrity sha512-lyr19joBUm/CNJgjZMBSnFvJ/MeHCmBYvQ050qYAP3EPa7Oenlnx9guhU+SW0goYgxLQyqwRvkFllQpFAp8tmQ==
+react-select@^5.7.0:
+  version "5.7.0"
+  resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.0.tgz#82921b38f1fcf1471a0b62304da01f2896cd8ce6"
+  integrity sha512-lJGiMxCa3cqnUr2Jjtg9YHsaytiZqeNOKeibv6WF5zbK/fPegZ1hg3y/9P1RZVLhqBTs0PfqQLKuAACednYGhQ==
   dependencies:
     "@babel/runtime" "^7.12.0"
     "@emotion/cache" "^11.4.0"
@@ -9528,10 +9218,10 @@ react-test-renderer@^16.14.0:
     react-is "^16.8.6"
     scheduler "^0.19.1"
 
-react-textarea-autosize@^8.3.4:
-  version "8.3.4"
-  resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz#270a343de7ad350534141b02c9cb78903e553524"
-  integrity sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==
+react-textarea-autosize@^8.4.0:
+  version "8.4.0"
+  resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.4.0.tgz#4d0244d6a50caa897806b8c44abc0540a69bfc8c"
+  integrity sha512-YrTFaEHLgJsi8sJVYHBzYn+mkP3prGkmP2DKb/tm0t7CLJY5t1Rxix8070LAKb0wby7bl/lf2EeHkuMihMZMwQ==
   dependencies:
     "@babel/runtime" "^7.10.2"
     use-composed-ref "^1.3.0"
@@ -9706,7 +9396,7 @@ regenerator-runtime@^0.12.0:
   resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz"
   integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==
 
-regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4:
+regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4:
   version "0.13.11"
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
   integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
@@ -9726,15 +9416,7 @@ regex-not@^1.0.0, regex-not@^1.0.2:
     extend-shallow "^3.0.2"
     safe-regex "^1.1.0"
 
-regexp.prototype.flags@^1.2.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
-  integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==
-  dependencies:
-    define-properties "^1.1.3"
-    es-abstract "^1.17.0-next.1"
-
-regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3:
+regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3:
   version "1.4.3"
   resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac"
   integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==
@@ -9969,12 +9651,12 @@ run-queue@^1.0.0, run-queue@^1.0.3:
   dependencies:
     aproba "^1.1.1"
 
-safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
   version "5.1.2"
   resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 
-safe-buffer@5.2.1, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
+safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
   version "5.2.1"
   resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
   integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -10243,12 +9925,7 @@ side-channel@^1.0.4:
     get-intrinsic "^1.0.2"
     object-inspect "^1.9.0"
 
-signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
-  version "3.0.6"
-  resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz"
-  integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
-
-signal-exit@^3.0.7:
+signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
   version "3.0.7"
   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
   integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -10403,11 +10080,6 @@ source-map@^0.8.0-beta.0, source-map@~0.8.0-beta.0:
   dependencies:
     whatwg-url "^7.0.0"
 
-source-map@~0.7.2:
-  version "0.7.3"
-  resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz"
-  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
-
 sourcemap-codec@^1.4.8:
   version "1.4.8"
   resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
@@ -11007,7 +10679,7 @@ terser@^4.1.2:
     source-map "~0.6.1"
     source-map-support "~0.5.12"
 
-terser@^5.0.0:
+terser@^5.0.0, terser@^5.3.4:
   version "5.13.1"
   resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.1.tgz#66332cdc5a01b04a224c9fad449fc1a18eaa1799"
   integrity sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==
@@ -11017,15 +10689,6 @@ terser@^5.0.0:
     source-map "~0.8.0-beta.0"
     source-map-support "~0.5.20"
 
-terser@^5.3.4:
-  version "5.10.0"
-  resolved "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz"
-  integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==
-  dependencies:
-    commander "^2.20.0"
-    source-map "~0.7.2"
-    source-map-support "~0.5.20"
-
 tesseract.js-core@^2.2.0:
   version "2.2.0"
   resolved "https://registry.npmjs.org/tesseract.js-core/-/tesseract.js-core-2.2.0.tgz"