about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock28
-rw-r--r--app/controllers/admin/dashboard_controller.rb1
-rw-r--r--app/controllers/admin/settings_controller.rb81
-rw-r--r--app/controllers/directories_controller.rb2
-rw-r--r--app/helpers/admin/dashboard_helper.rb10
-rw-r--r--app/javascript/flavours/glitch/components/status_action_bar.js2
-rw-r--r--app/javascript/flavours/glitch/components/status_content.js6
-rw-r--r--app/javascript/flavours/glitch/containers/status_container.js9
-rw-r--r--app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js6
-rw-r--r--app/javascript/flavours/glitch/features/status/components/action_bar.js2
-rw-r--r--app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js9
-rw-r--r--app/javascript/flavours/glitch/features/status/index.js9
-rw-r--r--app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js12
-rw-r--r--app/javascript/flavours/glitch/reducers/timelines.js9
-rw-r--r--app/javascript/flavours/glitch/styles/admin.scss5
-rw-r--r--app/javascript/flavours/glitch/styles/components/modal.scss1
-rw-r--r--app/javascript/flavours/glitch/styles/forms.scss36
-rw-r--r--app/javascript/flavours/glitch/util/api.js8
-rw-r--r--app/javascript/mastodon/api.js8
-rw-r--r--app/javascript/mastodon/components/status_action_bar.js2
-rw-r--r--app/javascript/mastodon/components/status_content.js6
-rw-r--r--app/javascript/mastodon/containers/status_container.js9
-rw-r--r--app/javascript/mastodon/features/account/components/action_bar.js190
-rw-r--r--app/javascript/mastodon/features/account/components/header.js280
-rw-r--r--app/javascript/mastodon/features/account_timeline/components/header.js8
-rw-r--r--app/javascript/mastodon/features/account_timeline/containers/header_container.js7
-rw-r--r--app/javascript/mastodon/features/status/components/action_bar.js2
-rw-r--r--app/javascript/mastodon/features/status/containers/detailed_status_container.js9
-rw-r--r--app/javascript/mastodon/features/status/index.js9
-rw-r--r--app/javascript/mastodon/features/ui/components/confirmation_modal.js12
-rw-r--r--app/javascript/mastodon/locales/ar.json5
-rw-r--r--app/javascript/mastodon/locales/ast.json5
-rw-r--r--app/javascript/mastodon/locales/bg.json5
-rw-r--r--app/javascript/mastodon/locales/bn.json384
-rw-r--r--app/javascript/mastodon/locales/ca.json7
-rw-r--r--app/javascript/mastodon/locales/co.json25
-rw-r--r--app/javascript/mastodon/locales/cs.json13
-rw-r--r--app/javascript/mastodon/locales/cy.json5
-rw-r--r--app/javascript/mastodon/locales/da.json29
-rw-r--r--app/javascript/mastodon/locales/de.json51
-rw-r--r--app/javascript/mastodon/locales/el.json7
-rw-r--r--app/javascript/mastodon/locales/eo.json9
-rw-r--r--app/javascript/mastodon/locales/es.json149
-rw-r--r--app/javascript/mastodon/locales/eu.json5
-rw-r--r--app/javascript/mastodon/locales/fa.json35
-rw-r--r--app/javascript/mastodon/locales/fi.json5
-rw-r--r--app/javascript/mastodon/locales/fr.json51
-rw-r--r--app/javascript/mastodon/locales/gl.json9
-rw-r--r--app/javascript/mastodon/locales/he.json5
-rw-r--r--app/javascript/mastodon/locales/hr.json5
-rw-r--r--app/javascript/mastodon/locales/hu.json5
-rw-r--r--app/javascript/mastodon/locales/hy.json5
-rw-r--r--app/javascript/mastodon/locales/id.json5
-rw-r--r--app/javascript/mastodon/locales/io.json5
-rw-r--r--app/javascript/mastodon/locales/it.json27
-rw-r--r--app/javascript/mastodon/locales/ja.json23
-rw-r--r--app/javascript/mastodon/locales/ka.json5
-rw-r--r--app/javascript/mastodon/locales/kk.json27
-rw-r--r--app/javascript/mastodon/locales/ko.json45
-rw-r--r--app/javascript/mastodon/locales/lv.json5
-rw-r--r--app/javascript/mastodon/locales/ms.json5
-rw-r--r--app/javascript/mastodon/locales/nl.json25
-rw-r--r--app/javascript/mastodon/locales/no.json5
-rw-r--r--app/javascript/mastodon/locales/oc.json25
-rw-r--r--app/javascript/mastodon/locales/pl.json7
-rw-r--r--app/javascript/mastodon/locales/pt-BR.json51
-rw-r--r--app/javascript/mastodon/locales/pt.json25
-rw-r--r--app/javascript/mastodon/locales/ro.json5
-rw-r--r--app/javascript/mastodon/locales/ru.json167
-rw-r--r--app/javascript/mastodon/locales/sk.json27
-rw-r--r--app/javascript/mastodon/locales/sl.json5
-rw-r--r--app/javascript/mastodon/locales/sq.json5
-rw-r--r--app/javascript/mastodon/locales/sr-Latn.json5
-rw-r--r--app/javascript/mastodon/locales/sr.json5
-rw-r--r--app/javascript/mastodon/locales/sv.json5
-rw-r--r--app/javascript/mastodon/locales/ta.json5
-rw-r--r--app/javascript/mastodon/locales/te.json35
-rw-r--r--app/javascript/mastodon/locales/th.json513
-rw-r--r--app/javascript/mastodon/locales/tr.json5
-rw-r--r--app/javascript/mastodon/locales/uk.json5
-rw-r--r--app/javascript/mastodon/locales/whitelist_bn.json2
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json5
-rw-r--r--app/javascript/mastodon/locales/zh-HK.json5
-rw-r--r--app/javascript/mastodon/locales/zh-TW.json393
-rw-r--r--app/javascript/mastodon/reducers/timelines.js9
-rw-r--r--app/javascript/styles/mastodon/admin.scss5
-rw-r--r--app/javascript/styles/mastodon/components.scss329
-rw-r--r--app/javascript/styles/mastodon/containers.scss1
-rw-r--r--app/javascript/styles/mastodon/forms.scss36
-rw-r--r--app/lib/language_detector.rb4
-rw-r--r--app/models/account.rb2
-rw-r--r--app/models/follow_request.rb2
-rw-r--r--app/models/form/admin_settings.rb149
-rw-r--r--app/models/instance.rb6
-rw-r--r--app/models/user.rb12
-rw-r--r--app/presenters/account_relationships_presenter.rb6
-rw-r--r--app/presenters/instance_presenter.rb1
-rw-r--r--app/serializers/oembed_serializer.rb1
-rw-r--r--app/serializers/rest/relationship_serializer.rb6
-rw-r--r--app/services/vote_service.rb4
-rw-r--r--app/validators/existing_username_validator.rb20
-rw-r--r--app/validators/html_validator.rb18
-rw-r--r--app/views/about/_registration.html.haml29
-rw-r--r--app/views/admin/dashboard/index.html.haml94
-rw-r--r--app/views/admin/instances/index.html.haml2
-rw-r--r--app/views/admin/settings/edit.html.haml1
-rw-r--r--config/locales/activerecord.ca.yml3
-rw-r--r--config/locales/activerecord.co.yml3
-rw-r--r--config/locales/activerecord.cs.yml3
-rw-r--r--config/locales/activerecord.cy.yml3
-rw-r--r--config/locales/activerecord.da.yml3
-rw-r--r--config/locales/activerecord.de.yml3
-rw-r--r--config/locales/activerecord.el.yml3
-rw-r--r--config/locales/activerecord.es.yml3
-rw-r--r--config/locales/activerecord.fa.yml3
-rw-r--r--config/locales/activerecord.fr.yml3
-rw-r--r--config/locales/activerecord.gl.yml3
-rw-r--r--config/locales/activerecord.it.yml3
-rw-r--r--config/locales/activerecord.nl.yml3
-rw-r--r--config/locales/activerecord.oc.yml3
-rw-r--r--config/locales/activerecord.pl.yml2
-rw-r--r--config/locales/activerecord.pt-BR.yml3
-rw-r--r--config/locales/activerecord.pt.yml3
-rw-r--r--config/locales/activerecord.ru.yml3
-rw-r--r--config/locales/activerecord.sk.yml3
-rw-r--r--config/locales/activerecord.th.yml4
-rw-r--r--config/locales/activerecord.zh_Hant.yml15
-rw-r--r--config/locales/bn.yml125
-rw-r--r--config/locales/ca.yml41
-rw-r--r--config/locales/co.yml41
-rw-r--r--config/locales/cs.yml84
-rw-r--r--config/locales/cy.yml52
-rw-r--r--config/locales/da.yml45
-rw-r--r--config/locales/de.yml84
-rw-r--r--config/locales/devise.ca.yml3
-rw-r--r--config/locales/devise.co.yml3
-rw-r--r--config/locales/devise.cs.yml2
-rw-r--r--config/locales/devise.de.yml3
-rw-r--r--config/locales/devise.el.yml3
-rw-r--r--config/locales/devise.es.yml10
-rw-r--r--config/locales/devise.fa.yml3
-rw-r--r--config/locales/devise.fr.yml3
-rw-r--r--config/locales/devise.gl.yml3
-rw-r--r--config/locales/devise.it.yml5
-rw-r--r--config/locales/devise.ja.yml2
-rw-r--r--config/locales/devise.nl.yml3
-rw-r--r--config/locales/devise.oc.yml3
-rw-r--r--config/locales/devise.pl.yml3
-rw-r--r--config/locales/devise.pt-BR.yml3
-rw-r--r--config/locales/devise.pt.yml3
-rw-r--r--config/locales/devise.ru.yml6
-rw-r--r--config/locales/devise.sk.yml6
-rw-r--r--config/locales/devise.sl.yml17
-rw-r--r--config/locales/devise.th.yml2
-rw-r--r--config/locales/devise.zh-CN.yml2
-rw-r--r--config/locales/devise.zh-TW.yml110
-rw-r--r--config/locales/el.yml62
-rw-r--r--config/locales/en.yml10
-rw-r--r--config/locales/en_GB.yml1056
-rw-r--r--config/locales/eo.yml6
-rw-r--r--config/locales/es.yml310
-rw-r--r--config/locales/fa.yml66
-rw-r--r--config/locales/fr.yml82
-rw-r--r--config/locales/ga.yml1
-rw-r--r--config/locales/gl.yml57
-rw-r--r--config/locales/it.yml128
-rw-r--r--config/locales/ja.yml10
-rw-r--r--config/locales/ko.yml74
-rw-r--r--config/locales/nl.yml57
-rw-r--r--config/locales/oc.yml38
-rw-r--r--config/locales/pl.yml67
-rw-r--r--config/locales/pt-BR.yml91
-rw-r--r--config/locales/pt.yml57
-rw-r--r--config/locales/ru.yml339
-rw-r--r--config/locales/simple_form.cs.yml4
-rw-r--r--config/locales/simple_form.en_GB.yml133
-rw-r--r--config/locales/simple_form.es.yml42
-rw-r--r--config/locales/simple_form.fa.yml27
-rw-r--r--config/locales/simple_form.ko.yml10
-rw-r--r--config/locales/simple_form.pt-BR.yml8
-rw-r--r--config/locales/simple_form.ru.yml42
-rw-r--r--config/locales/simple_form.th.yml150
-rw-r--r--config/locales/simple_form.zh-TW.yml136
-rw-r--r--config/locales/sk.yml23
-rw-r--r--config/locales/sl.yml6
-rw-r--r--config/locales/th.yml680
-rw-r--r--config/locales/zh-CN.yml2
-rw-r--r--config/locales/zh-TW.yml251
-rw-r--r--config/navigation.rb4
-rw-r--r--spec/controllers/admin/settings_controller_spec.rb4
191 files changed, 6366 insertions, 2225 deletions
diff --git a/Gemfile b/Gemfile
index 088e25eea..b944ff258 100644
--- a/Gemfile
+++ b/Gemfile
@@ -15,7 +15,7 @@ gem 'makara', '~> 0.4'
 gem 'pghero', '~> 2.2'
 gem 'dotenv-rails', '~> 2.7'
 
-gem 'aws-sdk-s3', '~> 1.33', require: false
+gem 'aws-sdk-s3', '~> 1.35', require: false
 gem 'fog-core', '<= 2.1.0'
 gem 'fog-openstack', '~> 0.3', require: false
 gem 'paperclip', '~> 6.0'
diff --git a/Gemfile.lock b/Gemfile.lock
index 572a454ea..f51d41c09 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -76,17 +76,17 @@ GEM
     av (0.9.0)
       cocaine (~> 0.5.3)
     aws-eventstream (1.0.2)
-    aws-partitions (1.144.0)
-    aws-sdk-core (3.48.0)
+    aws-partitions (1.146.0)
+    aws-sdk-core (3.48.2)
       aws-eventstream (~> 1.0, >= 1.0.2)
       aws-partitions (~> 1.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-kms (1.15.0)
-      aws-sdk-core (~> 3, >= 3.48.0)
+    aws-sdk-kms (1.16.0)
+      aws-sdk-core (~> 3, >= 3.48.2)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.33.0)
-      aws-sdk-core (~> 3, >= 3.48.0)
+    aws-sdk-s3 (1.35.0)
+      aws-sdk-core (~> 3, >= 3.48.2)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.0)
     aws-sigv4 (1.1.0)
@@ -186,9 +186,9 @@ GEM
       unf (>= 0.0.5, < 1.0.0)
     doorkeeper (5.0.2)
       railties (>= 4.2)
-    dotenv (2.7.1)
-    dotenv-rails (2.7.1)
-      dotenv (= 2.7.1)
+    dotenv (2.7.2)
+    dotenv-rails (2.7.2)
+      dotenv (= 2.7.2)
       railties (>= 3.2, < 6.1)
     elasticsearch (6.0.2)
       elasticsearch-api (= 6.0.2)
@@ -330,13 +330,13 @@ GEM
       nokogiri (>= 1.5.9)
     mail (2.7.1)
       mini_mime (>= 0.1.1)
-    makara (0.4.0)
+    makara (0.4.1)
       activerecord (>= 3.0.0)
     marcel (0.3.3)
       mimemagic (~> 0.3.2)
     mario-redis-lock (1.2.1)
       redis (>= 3.0.5)
-    memory_profiler (0.9.12)
+    memory_profiler (0.9.13)
     method_source (0.9.2)
     microformats (4.1.0)
       json (~> 2.1)
@@ -357,7 +357,7 @@ GEM
       net-ssh (>= 2.6.5)
     net-ssh (5.0.2)
     nio4r (2.3.1)
-    nokogiri (1.10.1)
+    nokogiri (1.10.2)
       mini_portile2 (~> 2.4.0)
     nokogumbo (2.0.0)
       nokogiri (~> 1.8, >= 1.8.4)
@@ -429,7 +429,7 @@ GEM
     rack (2.0.6)
     rack-attack (5.4.2)
       rack (>= 1.0, < 3)
-    rack-cors (1.0.2)
+    rack-cors (1.0.3)
     rack-protection (2.0.5)
       rack
     rack-proxy (0.6.5)
@@ -660,7 +660,7 @@ DEPENDENCIES
   active_record_query_trace (~> 1.6)
   addressable (~> 2.6)
   annotate (~> 2.7)
-  aws-sdk-s3 (~> 1.33)
+  aws-sdk-s3 (~> 1.35)
   better_errors (~> 2.5)
   binding_of_caller (~> 0.7)
   bootsnap (~> 1.4)
diff --git a/app/controllers/admin/dashboard_controller.rb b/app/controllers/admin/dashboard_controller.rb
index 22bbcec19..f23ed1508 100644
--- a/app/controllers/admin/dashboard_controller.rb
+++ b/app/controllers/admin/dashboard_controller.rb
@@ -29,6 +29,7 @@ module Admin
       @hidden_service        = ENV['ALLOW_ACCESS_TO_HIDDEN_SERVICE'] == 'true'
       @trending_hashtags     = TrendingTags.get(7)
       @profile_directory     = Setting.profile_directory
+      @timeline_preview      = Setting.timeline_preview
     end
 
     private
diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb
index a64e98868..dc1c79b7f 100644
--- a/app/controllers/admin/settings_controller.rb
+++ b/app/controllers/admin/settings_controller.rb
@@ -2,94 +2,29 @@
 
 module Admin
   class SettingsController < BaseController
-    ADMIN_SETTINGS = %w(
-      site_contact_username
-      site_contact_email
-      site_title
-      site_short_description
-      site_description
-      site_extended_description
-      site_terms
-      registrations_mode
-      closed_registrations_message
-      open_deletion
-      timeline_preview
-      show_staff_badge
-      bootstrap_timeline_accounts
-      flavour
-      skin
-      flavour_and_skin
-      thumbnail
-      hero
-      mascot
-      min_invite_role
-      activity_api_enabled
-      peers_api_enabled
-      show_known_fediverse_at_about_page
-      preview_sensitive_media
-      custom_css
-      profile_directory
-      hide_followers_count
-    ).freeze
-
-    BOOLEAN_SETTINGS = %w(
-      open_deletion
-      timeline_preview
-      show_staff_badge
-      activity_api_enabled
-      peers_api_enabled
-      show_known_fediverse_at_about_page
-      preview_sensitive_media
-      profile_directory
-      hide_followers_count
-    ).freeze
-
-    UPLOAD_SETTINGS = %w(
-      thumbnail
-      hero
-      mascot
-    ).freeze
-
     def edit
       authorize :settings, :show?
+
       @admin_settings = Form::AdminSettings.new
     end
 
     def update
       authorize :settings, :update?
 
-      settings = settings_params
-      flavours_and_skin = settings.delete('flavour_and_skin')
-      if flavours_and_skin
-        settings['flavour'], settings['skin'] = flavours_and_skin.split('/', 2)
-      end
+      @admin_settings = Form::AdminSettings.new(settings_params)
 
-      settings.each do |key, value|
-        if UPLOAD_SETTINGS.include?(key)
-          upload = SiteUpload.where(var: key).first_or_initialize(var: key)
-          upload.update(file: value)
-        else
-          setting = Setting.where(var: key).first_or_initialize(var: key)
-          setting.update(value: value_for_update(key, value))
-        end
+      if @admin_settings.save
+        flash[:notice] = I18n.t('generic.changes_saved_msg')
+        redirect_to edit_admin_settings_path
+      else
+        render :edit
       end
-
-      flash[:notice] = I18n.t('generic.changes_saved_msg')
-      redirect_to edit_admin_settings_path
     end
 
     private
 
     def settings_params
-      params.require(:form_admin_settings).permit(ADMIN_SETTINGS)
-    end
-
-    def value_for_update(key, value)
-      if BOOLEAN_SETTINGS.include?(key)
-        value == '1'
-      else
-        value
-      end
+      params.require(:form_admin_settings).permit(*Form::AdminSettings::KEYS)
     end
   end
 end
diff --git a/app/controllers/directories_controller.rb b/app/controllers/directories_controller.rb
index 70013d760..59247a21f 100644
--- a/app/controllers/directories_controller.rb
+++ b/app/controllers/directories_controller.rb
@@ -37,7 +37,7 @@ class DirectoriesController < ApplicationController
   end
 
   def set_accounts
-    @accounts = Account.discoverable.page(params[:page]).per(40).tap do |query|
+    @accounts = Account.discoverable.by_recent_status.page(params[:page]).per(40).tap do |query|
       query.merge!(Account.tagged_with(@tag.id)) if @tag
     end
   end
diff --git a/app/helpers/admin/dashboard_helper.rb b/app/helpers/admin/dashboard_helper.rb
new file mode 100644
index 000000000..4ee2cdef4
--- /dev/null
+++ b/app/helpers/admin/dashboard_helper.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+module Admin::DashboardHelper
+  def feature_hint(feature, enabled)
+    indicator   = safe_join([enabled ? t('simple_form.yes') : t('simple_form.no'), fa_icon('power-off fw')], ' ')
+    class_names = enabled ? 'pull-right positive-hint' : 'pull-right neutral-hint'
+
+    safe_join([feature, content_tag(:span, indicator, class: class_names)])
+  end
+end
diff --git a/app/javascript/flavours/glitch/components/status_action_bar.js b/app/javascript/flavours/glitch/components/status_action_bar.js
index 1d3130604..e0cc652d2 100644
--- a/app/javascript/flavours/glitch/components/status_action_bar.js
+++ b/app/javascript/flavours/glitch/components/status_action_bar.js
@@ -146,7 +146,7 @@ export default class StatusActionBar extends ImmutablePureComponent {
   }
 
   handleBlockClick = () => {
-    this.props.onBlock(this.props.status.get('account'));
+    this.props.onBlock(this.props.status);
   }
 
   handleOpen = () => {
diff --git a/app/javascript/flavours/glitch/components/status_content.js b/app/javascript/flavours/glitch/components/status_content.js
index 98a34ebaf..a62844185 100644
--- a/app/javascript/flavours/glitch/components/status_content.js
+++ b/app/javascript/flavours/glitch/components/status_content.js
@@ -198,7 +198,7 @@ export default class StatusContent extends React.PureComponent {
           <p
             style={{ marginBottom: hidden && status.get('mentions').isEmpty() ? '0px' : null }}
           >
-            <span dangerouslySetInnerHTML={spoilerContent} />
+            <span dangerouslySetInnerHTML={spoilerContent} lang={status.get('language')} />
             {' '}
             <button tabIndex='0' className='status__content__spoiler-link' onClick={this.handleSpoilerClick}>
               {toggleText}
@@ -213,6 +213,7 @@ export default class StatusContent extends React.PureComponent {
               style={directionStyle}
               tabIndex={!hidden ? 0 : null}
               dangerouslySetInnerHTML={content}
+              lang={status.get('language')}
             />
             {media}
           </div>
@@ -231,6 +232,7 @@ export default class StatusContent extends React.PureComponent {
           <div
             ref={this.setRef}
             dangerouslySetInnerHTML={content}
+            lang={status.get('language')}
             tabIndex='0'
           />
           {media}
@@ -243,7 +245,7 @@ export default class StatusContent extends React.PureComponent {
           style={directionStyle}
           tabIndex='0'
         >
-          <div ref={this.setRef} dangerouslySetInnerHTML={content} tabIndex='0' />
+          <div ref={this.setRef} dangerouslySetInnerHTML={content} lang={status.get('language')} tabIndex='0' />
           {media}
         </div>
       );
diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js
index f783878b0..60636feb4 100644
--- a/app/javascript/flavours/glitch/containers/status_container.js
+++ b/app/javascript/flavours/glitch/containers/status_container.js
@@ -35,6 +35,7 @@ const messages = defineMessages({
   blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
   replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
   replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
+  blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
 });
 
 const makeMapStateToProps = () => {
@@ -169,11 +170,17 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
     dispatch(openModal('VIDEO', { media, time }));
   },
 
-  onBlock (account) {
+  onBlock (status) {
+    const account = status.get('account');
     dispatch(openModal('CONFIRM', {
       message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
       confirm: intl.formatMessage(messages.blockConfirm),
       onConfirm: () => dispatch(blockAccount(account.get('id'))),
+      secondary: intl.formatMessage(messages.blockAndReport),
+      onSecondary: () => {
+        dispatch(blockAccount(account.get('id')));
+        dispatch(initReport(account, status));
+      },
     }));
   },
 
diff --git a/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js b/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js
index e333c31a1..df74ca890 100644
--- a/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js
+++ b/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js
@@ -26,6 +26,7 @@ const messages = defineMessages({
   unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' },
   blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
   blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Hide entire domain' },
+  blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
 });
 
 const makeMapStateToProps = () => {
@@ -64,6 +65,11 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
         message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
         confirm: intl.formatMessage(messages.blockConfirm),
         onConfirm: () => dispatch(blockAccount(account.get('id'))),
+        secondary: intl.formatMessage(messages.blockAndReport),
+        onSecondary: () => {
+          dispatch(blockAccount(account.get('id')));
+          dispatch(initReport(account));
+        },
       }));
     }
   },
diff --git a/app/javascript/flavours/glitch/features/status/components/action_bar.js b/app/javascript/flavours/glitch/features/status/components/action_bar.js
index 66cc10d78..8291319c3 100644
--- a/app/javascript/flavours/glitch/features/status/components/action_bar.js
+++ b/app/javascript/flavours/glitch/features/status/components/action_bar.js
@@ -98,7 +98,7 @@ export default class ActionBar extends React.PureComponent {
   }
 
   handleBlockClick = () => {
-    this.props.onBlock(this.props.status.get('account'));
+    this.props.onBlock(this.props.status);
   }
 
   handleReport = () => {
diff --git a/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js b/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js
index 6d3909ea7..e6c390537 100644
--- a/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js
+++ b/app/javascript/flavours/glitch/features/status/containers/detailed_status_container.js
@@ -38,6 +38,7 @@ const messages = defineMessages({
   blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
   replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
   replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
+  blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
 });
 
 const makeMapStateToProps = () => {
@@ -136,11 +137,17 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
     dispatch(openModal('VIDEO', { media, time }));
   },
 
-  onBlock (account) {
+  onBlock (status) {
+    const account = status.get('account');
     dispatch(openModal('CONFIRM', {
       message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
       confirm: intl.formatMessage(messages.blockConfirm),
       onConfirm: () => dispatch(blockAccount(account.get('id'))),
+      secondary: intl.formatMessage(messages.blockAndReport),
+      onSecondary: () => {
+        dispatch(blockAccount(account.get('id')));
+        dispatch(initReport(account, status));
+      },
     }));
   },
 
diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js
index 73d3c7e9e..7f8f02188 100644
--- a/app/javascript/flavours/glitch/features/status/index.js
+++ b/app/javascript/flavours/glitch/features/status/index.js
@@ -54,6 +54,7 @@ const messages = defineMessages({
   detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' },
   replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
   replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
+  blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
   tootHeading: { id: 'column.toot', defaultMessage: 'Toots and replies' },
 });
 
@@ -279,13 +280,19 @@ export default class Status extends ImmutablePureComponent {
     this.setState({ isExpanded: !isExpanded, threadExpanded: !isExpanded });
   }
 
-  handleBlockClick = (account) => {
+  handleBlockClick = (status) => {
     const { dispatch, intl } = this.props;
+    const account = status.get('account');
 
     dispatch(openModal('CONFIRM', {
       message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
       confirm: intl.formatMessage(messages.blockConfirm),
       onConfirm: () => dispatch(blockAccount(account.get('id'))),
+      secondary: intl.formatMessage(messages.blockAndReport),
+      onSecondary: () => {
+        dispatch(blockAccount(account.get('id')));
+        dispatch(initReport(account, status));
+      },
     }));
   }
 
diff --git a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js b/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js
index 07281f818..970df30b6 100644
--- a/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js
+++ b/app/javascript/flavours/glitch/features/ui/components/confirmation_modal.js
@@ -11,6 +11,8 @@ export default class ConfirmationModal extends React.PureComponent {
     confirm: PropTypes.string.isRequired,
     onClose: PropTypes.func.isRequired,
     onConfirm: PropTypes.func.isRequired,
+    secondary: PropTypes.string,
+    onSecondary: PropTypes.func,
     onDoNotAsk: PropTypes.func,
     intl: PropTypes.object.isRequired,
   };
@@ -27,6 +29,11 @@ export default class ConfirmationModal extends React.PureComponent {
     }
   }
 
+  handleSecondary = () => {
+    this.props.onClose();
+    this.props.onSecondary();
+  }
+
   handleCancel = () => {
     this.props.onClose();
   }
@@ -40,7 +47,7 @@ export default class ConfirmationModal extends React.PureComponent {
   }
 
   render () {
-    const { message, confirm, onDoNotAsk } = this.props;
+    const { message, confirm, secondary, onDoNotAsk } = this.props;
 
     return (
       <div className='modal-root__modal confirmation-modal'>
@@ -61,6 +68,9 @@ export default class ConfirmationModal extends React.PureComponent {
             <Button onClick={this.handleCancel} className='confirmation-modal__cancel-button'>
               <FormattedMessage id='confirmation_modal.cancel' defaultMessage='Cancel' />
             </Button>
+            {secondary !== undefined && (
+              <Button text={secondary} onClick={this.handleSecondary} className='confirmation-modal__secondary-button' />
+            )}
             <Button text={confirm} onClick={this.handleClick} ref={this.setRef} />
           </div>
         </div>
diff --git a/app/javascript/flavours/glitch/reducers/timelines.js b/app/javascript/flavours/glitch/reducers/timelines.js
index ca71c3833..cb233de1c 100644
--- a/app/javascript/flavours/glitch/reducers/timelines.js
+++ b/app/javascript/flavours/glitch/reducers/timelines.js
@@ -73,14 +73,15 @@ const updateTimeline = (state, timeline, status) => {
   }));
 };
 
-const deleteStatus = (state, id, accountId, references) => {
+const deleteStatus = (state, id, accountId, references, exclude_account = null) => {
   state.keySeq().forEach(timeline => {
-    state = state.updateIn([timeline, 'items'], list => list.filterNot(item => item === id));
+    if (exclude_account === null || (timeline !== `account:${exclude_account}` && !timeline.startsWith(`account:${exclude_account}:`)))
+      state = state.updateIn([timeline, 'items'], list => list.filterNot(item => item === id));
   });
 
   // Remove reblogs of deleted status
   references.forEach(ref => {
-    state = deleteStatus(state, ref[0], ref[1], []);
+    state = deleteStatus(state, ref[0], ref[1], [], exclude_account);
   });
 
   return state;
@@ -99,7 +100,7 @@ const filterTimelines = (state, relationship, statuses) => {
     }
 
     references = statuses.filter(item => item.get('reblog') === status.get('id')).map(item => [item.get('id'), item.get('account')]);
-    state      = deleteStatus(state, status.get('id'), status.get('account'), references);
+    state      = deleteStatus(state, status.get('id'), status.get('account'), references, relationship.id);
   });
 
   return state;
diff --git a/app/javascript/flavours/glitch/styles/admin.scss b/app/javascript/flavours/glitch/styles/admin.scss
index 42f53f525..05c7821e4 100644
--- a/app/javascript/flavours/glitch/styles/admin.scss
+++ b/app/javascript/flavours/glitch/styles/admin.scss
@@ -220,6 +220,11 @@ $content-width: 840px;
       color: $error-value-color;
       font-weight: 500;
     }
+
+    .neutral-hint {
+      color: $dark-text-color;
+      font-weight: 500;
+    }
   }
 
   @media screen and (max-width: $no-columns-breakpoint) {
diff --git a/app/javascript/flavours/glitch/styles/components/modal.scss b/app/javascript/flavours/glitch/styles/components/modal.scss
index 3598959e7..fece8593b 100644
--- a/app/javascript/flavours/glitch/styles/components/modal.scss
+++ b/app/javascript/flavours/glitch/styles/components/modal.scss
@@ -671,6 +671,7 @@
 
 .confirmation-modal__action-bar,
 .mute-modal__action-bar {
+  .confirmation-modal__secondary-button,
   .confirmation-modal__cancel-button,
   .mute-modal__cancel-button {
     background-color: transparent;
diff --git a/app/javascript/flavours/glitch/styles/forms.scss b/app/javascript/flavours/glitch/styles/forms.scss
index 9ef45e425..3ea104786 100644
--- a/app/javascript/flavours/glitch/styles/forms.scss
+++ b/app/javascript/flavours/glitch/styles/forms.scss
@@ -475,6 +475,42 @@ code {
       }
     }
   }
+
+  &__overlay-area {
+    position: relative;
+
+    &__overlay {
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 100%;
+      height: 100%;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      background: rgba($ui-base-color, 0.65);
+      backdrop-filter: blur(2px);
+      border-radius: 4px;
+
+      &__content {
+        text-align: center;
+
+        &.rich-formatting {
+          &,
+          p {
+            color: $primary-text-color;
+          }
+        }
+      }
+    }
+  }
+}
+
+.block-icon {
+  display: block;
+  margin: 0 auto;
+  margin-bottom: 10px;
+  font-size: 24px;
 }
 
 .flash-message {
diff --git a/app/javascript/flavours/glitch/util/api.js b/app/javascript/flavours/glitch/util/api.js
index 033d2d67b..c59a24518 100644
--- a/app/javascript/flavours/glitch/util/api.js
+++ b/app/javascript/flavours/glitch/util/api.js
@@ -13,10 +13,14 @@ export const getLinks = response => {
 };
 
 let csrfHeader = {};
+
 function setCSRFHeader() {
-  const csrfToken = document.querySelector('meta[name=csrf-token]').content;
-  csrfHeader['X-CSRF-Token'] = csrfToken;
+  const csrfToken = document.querySelector('meta[name=csrf-token]');
+  if (csrfToken) {
+    csrfHeader['X-CSRF-Token'] = csrfToken.content;
+  }
 }
+
 ready(setCSRFHeader);
 
 export default getState => axios.create({
diff --git a/app/javascript/mastodon/api.js b/app/javascript/mastodon/api.js
index 4be3eadb0..98d59de43 100644
--- a/app/javascript/mastodon/api.js
+++ b/app/javascript/mastodon/api.js
@@ -13,10 +13,14 @@ export const getLinks = response => {
 };
 
 let csrfHeader = {};
+
 function setCSRFHeader() {
-  const csrfToken = document.querySelector('meta[name=csrf-token]').content;
-  csrfHeader['X-CSRF-Token'] = csrfToken;
+  const csrfToken = document.querySelector('meta[name=csrf-token]');
+  if (csrfToken) {
+    csrfHeader['X-CSRF-Token'] = csrfToken.content;
+  }
 }
+
 ready(setCSRFHeader);
 
 export default getState => axios.create({
diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js
index 53d17d418..0bfbd8879 100644
--- a/app/javascript/mastodon/components/status_action_bar.js
+++ b/app/javascript/mastodon/components/status_action_bar.js
@@ -139,7 +139,7 @@ class StatusActionBar extends ImmutablePureComponent {
   }
 
   handleBlockClick = () => {
-    this.props.onBlock(this.props.status.get('account'));
+    this.props.onBlock(this.props.status);
   }
 
   handleOpen = () => {
diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.js
index 70713047d..fa8901386 100644
--- a/app/javascript/mastodon/components/status_content.js
+++ b/app/javascript/mastodon/components/status_content.js
@@ -183,14 +183,14 @@ export default class StatusContent extends React.PureComponent {
       return (
         <div className={classNames} ref={this.setRef} tabIndex='0' style={directionStyle} onMouseDown={this.handleMouseDown} onMouseUp={this.handleMouseUp}>
           <p style={{ marginBottom: hidden && status.get('mentions').isEmpty() ? '0px' : null }}>
-            <span dangerouslySetInnerHTML={spoilerContent} />
+            <span dangerouslySetInnerHTML={spoilerContent} lang={status.get('language')} />
             {' '}
             <button tabIndex='0' className={`status__content__spoiler-link ${hidden ? 'status__content__spoiler-link--show-more' : 'status__content__spoiler-link--show-less'}`} onClick={this.handleSpoilerClick}>{toggleText}</button>
           </p>
 
           {mentionsPlaceholder}
 
-          <div tabIndex={!hidden ? 0 : null} className={`status__content__text ${!hidden ? 'status__content__text--visible' : ''}`} style={directionStyle} dangerouslySetInnerHTML={content} />
+          <div tabIndex={!hidden ? 0 : null} className={`status__content__text ${!hidden ? 'status__content__text--visible' : ''}`} style={directionStyle} dangerouslySetInnerHTML={content} lang={status.get('language')} />
         </div>
       );
     } else if (this.props.onClick) {
@@ -202,6 +202,7 @@ export default class StatusContent extends React.PureComponent {
           className={classNames}
           style={directionStyle}
           dangerouslySetInnerHTML={content}
+          lang={status.get('language')}
           onMouseDown={this.handleMouseDown}
           onMouseUp={this.handleMouseUp}
         />,
@@ -220,6 +221,7 @@ export default class StatusContent extends React.PureComponent {
           className='status__content'
           style={directionStyle}
           dangerouslySetInnerHTML={content}
+          lang={status.get('language')}
         />
       );
     }
diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.js
index b3555c76e..0fce674e2 100644
--- a/app/javascript/mastodon/containers/status_container.js
+++ b/app/javascript/mastodon/containers/status_container.js
@@ -38,6 +38,7 @@ const messages = defineMessages({
   blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
   replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
   replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
+  blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
 });
 
 const makeMapStateToProps = () => {
@@ -134,11 +135,17 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
     dispatch(openModal('VIDEO', { media, time }));
   },
 
-  onBlock (account) {
+  onBlock (status) {
+    const account = status.get('account');
     dispatch(openModal('CONFIRM', {
       message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
       confirm: intl.formatMessage(messages.blockConfirm),
       onConfirm: () => dispatch(blockAccount(account.get('id'))),
+      secondary: intl.formatMessage(messages.blockAndReport),
+      onSecondary: () => {
+        dispatch(blockAccount(account.get('id')));
+        dispatch(initReport(account, status));
+      },
     }));
   },
 
diff --git a/app/javascript/mastodon/features/account/components/action_bar.js b/app/javascript/mastodon/features/account/components/action_bar.js
deleted file mode 100644
index 8ed4c917a..000000000
--- a/app/javascript/mastodon/features/account/components/action_bar.js
+++ /dev/null
@@ -1,190 +0,0 @@
-import React from 'react';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import PropTypes from 'prop-types';
-import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
-import { NavLink } from 'react-router-dom';
-import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import { me, isStaff  } from '../../../initial_state';
-import { shortNumberFormat } from '../../../utils/numbers';
-
-const messages = defineMessages({
-  mention: { id: 'account.mention', defaultMessage: 'Mention @{name}' },
-  direct: { id: 'account.direct', defaultMessage: 'Direct message @{name}' },
-  edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' },
-  unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },
-  unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
-  unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },
-  block: { id: 'account.block', defaultMessage: 'Block @{name}' },
-  mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' },
-  follow: { id: 'account.follow', defaultMessage: 'Follow' },
-  report: { id: 'account.report', defaultMessage: 'Report @{name}' },
-  share: { id: 'account.share', defaultMessage: 'Share @{name}\'s profile' },
-  media: { id: 'account.media', defaultMessage: 'Media' },
-  blockDomain: { id: 'account.block_domain', defaultMessage: 'Hide everything from {domain}' },
-  unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unhide {domain}' },
-  hideReblogs: { id: 'account.hide_reblogs', defaultMessage: 'Hide boosts from @{name}' },
-  showReblogs: { id: 'account.show_reblogs', defaultMessage: 'Show boosts from @{name}' },
-  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
-  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' },
-  endorse: { id: 'account.endorse', defaultMessage: 'Feature on profile' },
-  unendorse: { id: 'account.unendorse', defaultMessage: 'Don\'t feature on profile' },
-  add_or_remove_from_list: { id: 'account.add_or_remove_from_list', defaultMessage: 'Add or Remove from lists' },
-  admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' },
-});
-
-export default @injectIntl
-class ActionBar extends React.PureComponent {
-
-  static propTypes = {
-    account: ImmutablePropTypes.map.isRequired,
-    onFollow: PropTypes.func,
-    onBlock: PropTypes.func.isRequired,
-    onMention: PropTypes.func.isRequired,
-    onDirect: PropTypes.func.isRequired,
-    onReblogToggle: PropTypes.func.isRequired,
-    onReport: PropTypes.func.isRequired,
-    onMute: PropTypes.func.isRequired,
-    onBlockDomain: PropTypes.func.isRequired,
-    onUnblockDomain: PropTypes.func.isRequired,
-    onEndorseToggle: PropTypes.func.isRequired,
-    onAddToList: PropTypes.func.isRequired,
-    intl: PropTypes.object.isRequired,
-  };
-
-  handleShare = () => {
-    navigator.share({
-      url: this.props.account.get('url'),
-    });
-  }
-
-  isStatusesPageActive = (match, location) => {
-    if (!match) {
-      return false;
-    }
-    return !location.pathname.match(/\/(followers|following)\/?$/);
-  }
-
-  render () {
-    const { account, intl } = this.props;
-
-    let menu = [];
-    let extraInfo = '';
-
-    if (account.get('id') !== me) {
-      menu.push({ text: intl.formatMessage(messages.mention, { name: account.get('username') }), action: this.props.onMention });
-      menu.push({ text: intl.formatMessage(messages.direct, { name: account.get('username') }), action: this.props.onDirect });
-      menu.push(null);
-    }
-
-    if ('share' in navigator) {
-      menu.push({ text: intl.formatMessage(messages.share, { name: account.get('username') }), action: this.handleShare });
-      menu.push(null);
-    }
-
-    if (account.get('id') === me) {
-      menu.push({ text: intl.formatMessage(messages.edit_profile), href: '/settings/profile' });
-      menu.push({ text: intl.formatMessage(messages.preferences), href: '/settings/preferences' });
-      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.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' });
-    } else {
-      if (account.getIn(['relationship', 'following'])) {
-        if (account.getIn(['relationship', 'showing_reblogs'])) {
-          menu.push({ text: intl.formatMessage(messages.hideReblogs, { name: account.get('username') }), action: this.props.onReblogToggle });
-        } else {
-          menu.push({ text: intl.formatMessage(messages.showReblogs, { name: account.get('username') }), action: this.props.onReblogToggle });
-        }
-
-        menu.push({ text: intl.formatMessage(account.getIn(['relationship', 'endorsed']) ? messages.unendorse : messages.endorse), action: this.props.onEndorseToggle });
-        menu.push({ text: intl.formatMessage(messages.add_or_remove_from_list), action: this.props.onAddToList });
-        menu.push(null);
-      }
-
-      if (account.getIn(['relationship', 'muting'])) {
-        menu.push({ text: intl.formatMessage(messages.unmute, { name: account.get('username') }), action: this.props.onMute });
-      } else {
-        menu.push({ text: intl.formatMessage(messages.mute, { name: account.get('username') }), action: this.props.onMute });
-      }
-
-      if (account.getIn(['relationship', 'blocking'])) {
-        menu.push({ text: intl.formatMessage(messages.unblock, { name: account.get('username') }), action: this.props.onBlock });
-      } else {
-        menu.push({ text: intl.formatMessage(messages.block, { name: account.get('username') }), action: this.props.onBlock });
-      }
-
-      menu.push({ text: intl.formatMessage(messages.report, { name: account.get('username') }), action: this.props.onReport });
-    }
-
-    if (account.get('acct') !== account.get('username')) {
-      const domain = account.get('acct').split('@')[1];
-
-      extraInfo = (
-        <div className='account__disclaimer'>
-          <FormattedMessage
-            id='account.disclaimer_full'
-            defaultMessage="Information below may reflect the user's profile incompletely."
-          />
-          {' '}
-          <a target='_blank' rel='noopener' href={account.get('url')}>
-            <FormattedMessage id='account.view_full_profile' defaultMessage='View full profile' />
-          </a>
-        </div>
-      );
-
-      menu.push(null);
-
-      if (account.getIn(['relationship', 'domain_blocking'])) {
-        menu.push({ text: intl.formatMessage(messages.unblockDomain, { domain }), action: this.props.onUnblockDomain });
-      } else {
-        menu.push({ text: intl.formatMessage(messages.blockDomain, { domain }), action: this.props.onBlockDomain });
-      }
-    }
-
-    if (account.get('id') !== me && isStaff) {
-      menu.push(null);
-      menu.push({ text: intl.formatMessage(messages.admin_account, { name: account.get('username') }), href: `/admin/accounts/${account.get('id')}` });
-    }
-
-    return (
-      <div>
-        {extraInfo}
-
-        <div className='account__action-bar'>
-          <div className='account__action-bar-links'>
-            <NavLink isActive={this.isStatusesPageActive} activeClassName='active' className='account__action-bar__tab' to={`/accounts/${account.get('id')}`} title={intl.formatNumber(account.get('statuses_count'))}>
-              <FormattedMessage id='account.posts' defaultMessage='Toots' />
-              <strong>{shortNumberFormat(account.get('statuses_count'))}</strong>
-            </NavLink>
-
-            <NavLink exact activeClassName='active' className='account__action-bar__tab' to={`/accounts/${account.get('id')}/following`} title={intl.formatNumber(account.get('following_count'))}>
-              <FormattedMessage id='account.follows' defaultMessage='Follows' />
-              <strong>{shortNumberFormat(account.get('following_count'))}</strong>
-            </NavLink>
-
-            <NavLink exact activeClassName='active' className='account__action-bar__tab' to={`/accounts/${account.get('id')}/followers`} title={intl.formatNumber(account.get('followers_count'))}>
-              <FormattedMessage id='account.followers' defaultMessage='Followers' />
-              <strong>{shortNumberFormat(account.get('followers_count'))}</strong>
-            </NavLink>
-          </div>
-
-          <div className='account__action-bar-dropdown'>
-            <DropdownMenuContainer items={menu} icon='ellipsis-v' size={24} direction='right' />
-          </div>
-        </div>
-      </div>
-    );
-  }
-
-}
diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js
index 7fe6d6a4f..fd7ad5e07 100644
--- a/app/javascript/mastodon/features/account/components/header.js
+++ b/app/javascript/mastodon/features/account/components/header.js
@@ -2,13 +2,15 @@ import React from 'react';
 import ImmutablePropTypes from 'react-immutable-proptypes';
 import PropTypes from 'prop-types';
 import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
-import IconButton from '../../../components/icon_button';
-import Motion from '../../ui/util/optional_motion';
-import spring from 'react-motion/lib/spring';
+import Button from 'mastodon/components/button';
 import ImmutablePureComponent from 'react-immutable-pure-component';
-import { autoPlayGif, me } from '../../../initial_state';
+import { autoPlayGif, me, isStaff } from 'mastodon/initial_state';
 import classNames from 'classnames';
 import Icon from 'mastodon/components/icon';
+import Avatar from 'mastodon/components/avatar';
+import { shortNumberFormat } from 'mastodon/utils/numbers';
+import { NavLink } from 'react-router-dom';
+import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container';
 
 const messages = defineMessages({
   unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
@@ -18,6 +20,32 @@ const messages = defineMessages({
   edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' },
   linkVerifiedOn: { id: 'account.link_verified_on', defaultMessage: 'Ownership of this link was checked on {date}' },
   account_locked: { id: 'account.locked_info', defaultMessage: 'This account privacy status is set to locked. The owner manually reviews who can follow them.' },
+  mention: { id: 'account.mention', defaultMessage: 'Mention @{name}' },
+  direct: { id: 'account.direct', defaultMessage: 'Direct message @{name}' },
+  edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' },
+  unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },
+  unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },
+  block: { id: 'account.block', defaultMessage: 'Block @{name}' },
+  mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' },
+  report: { id: 'account.report', defaultMessage: 'Report @{name}' },
+  share: { id: 'account.share', defaultMessage: 'Share @{name}\'s profile' },
+  media: { id: 'account.media', defaultMessage: 'Media' },
+  blockDomain: { id: 'account.block_domain', defaultMessage: 'Hide everything from {domain}' },
+  unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unhide {domain}' },
+  hideReblogs: { id: 'account.hide_reblogs', defaultMessage: 'Hide boosts from @{name}' },
+  showReblogs: { id: 'account.show_reblogs', defaultMessage: 'Show boosts from @{name}' },
+  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
+  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' },
+  endorse: { id: 'account.endorse', defaultMessage: 'Feature on profile' },
+  unendorse: { id: 'account.unendorse', defaultMessage: 'Don\'t feature on profile' },
+  add_or_remove_from_list: { id: 'account.add_or_remove_from_list', defaultMessage: 'Add or Remove from lists' },
+  admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' },
 });
 
 const dateFormatOptions = {
@@ -29,54 +57,6 @@ const dateFormatOptions = {
   minute: '2-digit',
 };
 
-class Avatar extends ImmutablePureComponent {
-
-  static propTypes = {
-    account: ImmutablePropTypes.map.isRequired,
-  };
-
-  state = {
-    isHovered: false,
-  };
-
-  handleMouseOver = () => {
-    if (this.state.isHovered) return;
-    this.setState({ isHovered: true });
-  }
-
-  handleMouseOut = () => {
-    if (!this.state.isHovered) return;
-    this.setState({ isHovered: false });
-  }
-
-  render () {
-    const { account }   = this.props;
-    const { isHovered } = this.state;
-
-    return (
-      <Motion defaultStyle={{ radius: 90 }} style={{ radius: spring(isHovered ? 30 : 90, { stiffness: 180, damping: 12 }) }}>
-        {({ radius }) => (
-          <a
-            href={account.get('url')}
-            className='account__header__avatar'
-            role='presentation'
-            target='_blank'
-            rel='noopener'
-            style={{ borderRadius: `${radius}px`, backgroundImage: `url(${autoPlayGif || isHovered ? account.get('avatar') : account.get('avatar_static')})` }}
-            onMouseOver={this.handleMouseOver}
-            onMouseOut={this.handleMouseOut}
-            onFocus={this.handleMouseOver}
-            onBlur={this.handleMouseOut}
-          >
-            <span style={{ display: 'none' }}>{account.get('acct')}</span>
-          </a>
-        )}
-      </Motion>
-    );
-  }
-
-}
-
 export default @injectIntl
 class Header extends ImmutablePureComponent {
 
@@ -85,64 +65,57 @@ class Header extends ImmutablePureComponent {
     onFollow: PropTypes.func.isRequired,
     onBlock: PropTypes.func.isRequired,
     intl: PropTypes.object.isRequired,
+    domain: PropTypes.string.isRequired,
   };
 
   openEditProfile = () => {
     window.open('/settings/profile', '_blank');
   }
 
+  isStatusesPageActive = (match, location) => {
+    if (!match) {
+      return false;
+    }
+
+    return !location.pathname.match(/\/(followers|following)\/?$/);
+  }
+
   render () {
-    const { account, intl } = this.props;
+    const { account, intl, domain } = this.props;
 
     if (!account) {
       return null;
     }
 
-    let info        = '';
-    let mutingInfo  = '';
+    let info        = [];
     let actionBtn   = '';
     let lockedIcon  = '';
+    let menu        = [];
 
     if (me !== account.get('id') && account.getIn(['relationship', 'followed_by'])) {
-      info = <span className='account--follows-info'><FormattedMessage id='account.follows_you' defaultMessage='Follows you' /></span>;
+      info.push(<span className='relationship-tag'><FormattedMessage id='account.follows_you' defaultMessage='Follows you' /></span>);
     } else if (me !== account.get('id') && account.getIn(['relationship', 'blocking'])) {
-      info = <span className='account--follows-info'><FormattedMessage id='account.blocked' defaultMessage='Blocked' /></span>;
+      info.push(<span className='relationship-tag'><FormattedMessage id='account.blocked' defaultMessage='Blocked' /></span>);
     }
 
     if (me !== account.get('id') && account.getIn(['relationship', 'muting'])) {
-      mutingInfo = <span className='account--muting-info'><FormattedMessage id='account.muted' defaultMessage='Muted' /></span>;
+      info.push(<span className='relationship-tag'><FormattedMessage id='account.muted' defaultMessage='Muted' /></span>);
     } else if (me !== account.get('id') && account.getIn(['relationship', 'domain_blocking'])) {
-      mutingInfo = <span className='account--muting-info'><FormattedMessage id='account.domain_blocked' defaultMessage='Domain hidden' /></span>;
+      info.push(<span className='relationship-tag'><FormattedMessage id='account.domain_blocked' defaultMessage='Domain hidden' /></span>);
     }
 
     if (me !== account.get('id')) {
       if (!account.get('relationship')) { // Wait until the relationship is loaded
         actionBtn = '';
       } else if (account.getIn(['relationship', 'requested'])) {
-        actionBtn = (
-          <div className='account--action-button'>
-            <IconButton size={26} active icon='hourglass' title={intl.formatMessage(messages.requested)} onClick={this.props.onFollow} />
-          </div>
-        );
+        actionBtn = <Button className='logo-button' text={intl.formatMessage(messages.requested)} onClick={this.props.onFollow} />;
       } else if (!account.getIn(['relationship', 'blocking'])) {
-        actionBtn = (
-          <div className='account--action-button'>
-            <IconButton size={26} icon={account.getIn(['relationship', 'following']) ? 'user-times' : 'user-plus'} active={account.getIn(['relationship', 'following'])} title={intl.formatMessage(account.getIn(['relationship', 'following']) ? messages.unfollow : messages.follow)} onClick={this.props.onFollow} />
-          </div>
-        );
+        actionBtn = <Button className={classNames('logo-button', { 'button--destructive': account.getIn(['relationship', 'following']) })} text={intl.formatMessage(account.getIn(['relationship', 'following']) ? messages.unfollow : messages.follow)} onClick={this.props.onFollow} />;
       } else if (account.getIn(['relationship', 'blocking'])) {
-        actionBtn = (
-          <div className='account--action-button'>
-            <IconButton size={26} icon='unlock' title={intl.formatMessage(messages.unblock, { name: account.get('username') })} onClick={this.props.onBlock} />
-          </div>
-        );
+        actionBtn = <Button className='logo-button' text={intl.formatMessage(messages.unblock, { name: account.get('username') })} onClick={this.props.onBlock} />;
       }
     } else {
-      actionBtn = (
-        <div className='account--action-button'>
-          <IconButton size={26} icon='pencil' title={intl.formatMessage(messages.edit_profile)} onClick={this.openEditProfile} />
-        </div>
-      );
+      actionBtn = <Button className='logo-button' text={intl.formatMessage(messages.edit_profile)} onClick={this.openEditProfile} />;
     }
 
     if (account.get('moved') && !account.getIn(['relationship', 'following'])) {
@@ -153,40 +126,145 @@ class Header extends ImmutablePureComponent {
       lockedIcon = <Icon id='lock' title={intl.formatMessage(messages.account_locked)} />;
     }
 
+    if (account.get('id') !== me) {
+      menu.push({ text: intl.formatMessage(messages.mention, { name: account.get('username') }), action: this.props.onMention });
+      menu.push({ text: intl.formatMessage(messages.direct, { name: account.get('username') }), action: this.props.onDirect });
+      menu.push(null);
+    }
+
+    if ('share' in navigator) {
+      menu.push({ text: intl.formatMessage(messages.share, { name: account.get('username') }), action: this.handleShare });
+      menu.push(null);
+    }
+
+    if (account.get('id') === me) {
+      menu.push({ text: intl.formatMessage(messages.edit_profile), href: '/settings/profile' });
+      menu.push({ text: intl.formatMessage(messages.preferences), href: '/settings/preferences' });
+      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.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' });
+    } else {
+      if (account.getIn(['relationship', 'following'])) {
+        if (account.getIn(['relationship', 'showing_reblogs'])) {
+          menu.push({ text: intl.formatMessage(messages.hideReblogs, { name: account.get('username') }), action: this.props.onReblogToggle });
+        } else {
+          menu.push({ text: intl.formatMessage(messages.showReblogs, { name: account.get('username') }), action: this.props.onReblogToggle });
+        }
+
+        menu.push({ text: intl.formatMessage(account.getIn(['relationship', 'endorsed']) ? messages.unendorse : messages.endorse), action: this.props.onEndorseToggle });
+        menu.push({ text: intl.formatMessage(messages.add_or_remove_from_list), action: this.props.onAddToList });
+        menu.push(null);
+      }
+
+      if (account.getIn(['relationship', 'muting'])) {
+        menu.push({ text: intl.formatMessage(messages.unmute, { name: account.get('username') }), action: this.props.onMute });
+      } else {
+        menu.push({ text: intl.formatMessage(messages.mute, { name: account.get('username') }), action: this.props.onMute });
+      }
+
+      if (account.getIn(['relationship', 'blocking'])) {
+        menu.push({ text: intl.formatMessage(messages.unblock, { name: account.get('username') }), action: this.props.onBlock });
+      } else {
+        menu.push({ text: intl.formatMessage(messages.block, { name: account.get('username') }), action: this.props.onBlock });
+      }
+
+      menu.push({ text: intl.formatMessage(messages.report, { name: account.get('username') }), action: this.props.onReport });
+    }
+
+    if (account.get('acct') !== account.get('username')) {
+      const domain = account.get('acct').split('@')[1];
+
+      menu.push(null);
+
+      if (account.getIn(['relationship', 'domain_blocking'])) {
+        menu.push({ text: intl.formatMessage(messages.unblockDomain, { domain }), action: this.props.onUnblockDomain });
+      } else {
+        menu.push({ text: intl.formatMessage(messages.blockDomain, { domain }), action: this.props.onBlockDomain });
+      }
+    }
+
+    if (account.get('id') !== me && isStaff) {
+      menu.push(null);
+      menu.push({ text: intl.formatMessage(messages.admin_account, { name: account.get('username') }), href: `/admin/accounts/${account.get('id')}` });
+    }
+
     const content         = { __html: account.get('note_emojified') };
     const displayNameHtml = { __html: account.get('display_name_html') };
     const fields          = account.get('fields');
-    const badge           = account.get('bot') ? (<div className='roles'><div className='account-role bot'><FormattedMessage id='account.badges.bot' defaultMessage='Bot' /></div></div>) : null;
+    const badge           = account.get('bot') ? (<div className='account-role bot'><FormattedMessage id='account.badges.bot' defaultMessage='Bot' /></div>) : null;
+    const acct            = account.get('acct').indexOf('@') === -1 && domain ? `${account.get('acct')}@${domain}` : account.get('acct');
 
     return (
-      <div className={classNames('account__header', { inactive: !!account.get('moved') })} style={{ backgroundImage: `url(${autoPlayGif ? account.get('header') : account.get('header_static')})` }}>
-        <div>
-          <Avatar account={account} />
+      <div className={classNames('account__header', { inactive: !!account.get('moved') })}>
+        <div className='account__header__image'>
+          <div className='account__header__info'>
+            {info}
+          </div>
 
-          <span className='account__header__display-name' dangerouslySetInnerHTML={displayNameHtml} />
-          <span className='account__header__username'>@{account.get('acct')} {lockedIcon}</span>
+          <img src={autoPlayGif ? account.get('header') : account.get('header_static')} alt='' className='parallax' />
+        </div>
 
-          {badge}
+        <div className='account__header__bar'>
+          <div className='account__header__tabs'>
+            <a className='avatar' href={account.get('url')} target='_blank'>
+              <Avatar account={account} size={90} />
+            </a>
 
-          <div className='account__header__content' dangerouslySetInnerHTML={content} />
+            <div className='spacer' />
 
-          {fields.size > 0 && (
-            <div className='account__header__fields'>
-              {fields.map((pair, i) => (
-                <dl key={i}>
-                  <dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} />
+            <div className='account__header__tabs__buttons'>
+              <DropdownMenuContainer items={menu} icon='ellipsis-v' size={24} direction='right' />
 
-                  <dd className={pair.get('verified_at') && 'verified'} title={pair.get('value_plain')}>
-                    {pair.get('verified_at') && <span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(pair.get('verified_at'), dateFormatOptions) })}><Icon id='check' className='verified__mark' /></span>} <span dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} />
-                  </dd>
-                </dl>
-              ))}
+              {actionBtn}
             </div>
-          )}
+          </div>
+
+          <div className='account__header__tabs__name'>
+            <h1>
+              <span dangerouslySetInnerHTML={displayNameHtml} /> {badge}
+              <small>@{acct} {lockedIcon}</small>
+            </h1>
+          </div>
+
+          <div className='account__header__extra'>
+            <div className='account__header__bio'>
+              {fields.size > 0 && (
+                <div className='account__header__fields'>
+                  {fields.map((pair, i) => (
+                    <dl key={i}>
+                      <dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} />
 
-          {info}
-          {mutingInfo}
-          {actionBtn}
+                      <dd className={pair.get('verified_at') && 'verified'} title={pair.get('value_plain')}>
+                        {pair.get('verified_at') && <span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(pair.get('verified_at'), dateFormatOptions) })}><Icon id='check' className='verified__mark' /></span>} <span dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} />
+                      </dd>
+                    </dl>
+                  ))}
+                </div>
+              )}
+
+              {account.get('note').length > 0 && account.get('note') !== '<p></p>' && <div className='account__header__content' dangerouslySetInnerHTML={content} />}
+            </div>
+
+            <div className='account__header__extra__links'>
+              <NavLink isActive={this.isStatusesPageActive} activeClassName='active' to={`/accounts/${account.get('id')}`} title={intl.formatNumber(account.get('statuses_count'))}>
+                <strong>{shortNumberFormat(account.get('statuses_count'))}</strong> <FormattedMessage id='account.posts' defaultMessage='Toots' />
+              </NavLink>
+
+              <NavLink exact activeClassName='active' to={`/accounts/${account.get('id')}/following`} title={intl.formatNumber(account.get('following_count'))}>
+                <strong>{shortNumberFormat(account.get('following_count'))}</strong> <FormattedMessage id='account.follows' defaultMessage='Follows' />
+              </NavLink>
+
+              <NavLink exact activeClassName='active' to={`/accounts/${account.get('id')}/followers`} title={intl.formatNumber(account.get('followers_count'))}>
+                <strong>{shortNumberFormat(account.get('followers_count'))}</strong> <FormattedMessage id='account.followers' defaultMessage='Followers' />
+              </NavLink>
+            </div>
+          </div>
         </div>
       </div>
     );
diff --git a/app/javascript/mastodon/features/account_timeline/components/header.js b/app/javascript/mastodon/features/account_timeline/components/header.js
index 779e116e0..16ada18c0 100644
--- a/app/javascript/mastodon/features/account_timeline/components/header.js
+++ b/app/javascript/mastodon/features/account_timeline/components/header.js
@@ -2,7 +2,6 @@ import React from 'react';
 import ImmutablePropTypes from 'react-immutable-proptypes';
 import PropTypes from 'prop-types';
 import InnerHeader from '../../account/components/header';
-import ActionBar from '../../account/components/action_bar';
 import MissingIndicator from '../../../components/missing_indicator';
 import ImmutablePureComponent from 'react-immutable-pure-component';
 import MovedNote from './moved_note';
@@ -25,6 +24,7 @@ export default class Header extends ImmutablePureComponent {
     onEndorseToggle: PropTypes.func.isRequired,
     onAddToList: PropTypes.func.isRequired,
     hideTabs: PropTypes.bool,
+    domain: PropTypes.string.isRequired,
   };
 
   static contextTypes = {
@@ -98,11 +98,6 @@ export default class Header extends ImmutablePureComponent {
           account={account}
           onFollow={this.handleFollow}
           onBlock={this.handleBlock}
-        />
-
-        <ActionBar
-          account={account}
-          onBlock={this.handleBlock}
           onMention={this.handleMention}
           onDirect={this.handleDirect}
           onReblogToggle={this.handleReblogToggle}
@@ -112,6 +107,7 @@ export default class Header extends ImmutablePureComponent {
           onUnblockDomain={this.handleUnblockDomain}
           onEndorseToggle={this.handleEndorseToggle}
           onAddToList={this.handleAddToList}
+          domain={this.props.domain}
         />
 
         {!hideTabs && (
diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.js b/app/javascript/mastodon/features/account_timeline/containers/header_container.js
index 0fd79d036..a06a0b095 100644
--- a/app/javascript/mastodon/features/account_timeline/containers/header_container.js
+++ b/app/javascript/mastodon/features/account_timeline/containers/header_container.js
@@ -26,6 +26,7 @@ const messages = defineMessages({
   unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' },
   blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
   blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Hide entire domain' },
+  blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
 });
 
 const makeMapStateToProps = () => {
@@ -33,6 +34,7 @@ const makeMapStateToProps = () => {
 
   const mapStateToProps = (state, { accountId }) => ({
     account: getAccount(state, accountId),
+    domain: state.getIn(['meta', 'domain']),
   });
 
   return mapStateToProps;
@@ -64,6 +66,11 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
         message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
         confirm: intl.formatMessage(messages.blockConfirm),
         onConfirm: () => dispatch(blockAccount(account.get('id'))),
+        secondary: intl.formatMessage(messages.blockAndReport),
+        onSecondary: () => {
+          dispatch(blockAccount(account.get('id')));
+          dispatch(initReport(account));
+        },
       }));
     }
   },
diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js
index 73be1fc5f..3e511b7a6 100644
--- a/app/javascript/mastodon/features/status/components/action_bar.js
+++ b/app/javascript/mastodon/features/status/components/action_bar.js
@@ -92,7 +92,7 @@ class ActionBar extends React.PureComponent {
   }
 
   handleBlockClick = () => {
-    this.props.onBlock(this.props.status.get('account'));
+    this.props.onBlock(this.props.status);
   }
 
   handleReport = () => {
diff --git a/app/javascript/mastodon/features/status/containers/detailed_status_container.js b/app/javascript/mastodon/features/status/containers/detailed_status_container.js
index 2c0db0a6b..61e0c428a 100644
--- a/app/javascript/mastodon/features/status/containers/detailed_status_container.js
+++ b/app/javascript/mastodon/features/status/containers/detailed_status_container.js
@@ -38,6 +38,7 @@ const messages = defineMessages({
   blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
   replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
   replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
+  blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
 });
 
 const makeMapStateToProps = () => {
@@ -135,11 +136,17 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
     dispatch(openModal('VIDEO', { media, time }));
   },
 
-  onBlock (account) {
+  onBlock (status) {
+    const account = status.get('account');
     dispatch(openModal('CONFIRM', {
       message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
       confirm: intl.formatMessage(messages.blockConfirm),
       onConfirm: () => dispatch(blockAccount(account.get('id'))),
+      secondary: intl.formatMessage(messages.blockAndReport),
+      onSecondary: () => {
+        dispatch(blockAccount(account.get('id')));
+        dispatch(initReport(account, status));
+      },
     }));
   },
 
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js
index 3b5febcac..c0ea460e8 100644
--- a/app/javascript/mastodon/features/status/index.js
+++ b/app/javascript/mastodon/features/status/index.js
@@ -57,6 +57,7 @@ const messages = defineMessages({
   detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' },
   replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
   replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
+  blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
 });
 
 const makeMapStateToProps = () => {
@@ -253,13 +254,19 @@ class Status extends ImmutablePureComponent {
     }
   }
 
-  handleBlockClick = (account) => {
+  handleBlockClick = (status) => {
     const { dispatch, intl } = this.props;
+    const account = status.get('account');
 
     dispatch(openModal('CONFIRM', {
       message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
       confirm: intl.formatMessage(messages.blockConfirm),
       onConfirm: () => dispatch(blockAccount(account.get('id'))),
+      secondary: intl.formatMessage(messages.blockAndReport),
+      onSecondary: () => {
+        dispatch(blockAccount(account.get('id')));
+        dispatch(initReport(account, status));
+      },
     }));
   }
 
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modal.js b/app/javascript/mastodon/features/ui/components/confirmation_modal.js
index f0f3ad134..1227fa453 100644
--- a/app/javascript/mastodon/features/ui/components/confirmation_modal.js
+++ b/app/javascript/mastodon/features/ui/components/confirmation_modal.js
@@ -11,6 +11,8 @@ class ConfirmationModal extends React.PureComponent {
     confirm: PropTypes.string.isRequired,
     onClose: PropTypes.func.isRequired,
     onConfirm: PropTypes.func.isRequired,
+    secondary: PropTypes.string,
+    onSecondary: PropTypes.func,
     intl: PropTypes.object.isRequired,
   };
 
@@ -23,6 +25,11 @@ class ConfirmationModal extends React.PureComponent {
     this.props.onConfirm();
   }
 
+  handleSecondary = () => {
+    this.props.onClose();
+    this.props.onSecondary();
+  }
+
   handleCancel = () => {
     this.props.onClose();
   }
@@ -32,7 +39,7 @@ class ConfirmationModal extends React.PureComponent {
   }
 
   render () {
-    const { message, confirm } = this.props;
+    const { message, confirm, secondary } = this.props;
 
     return (
       <div className='modal-root__modal confirmation-modal'>
@@ -44,6 +51,9 @@ class ConfirmationModal extends React.PureComponent {
           <Button onClick={this.handleCancel} className='confirmation-modal__cancel-button'>
             <FormattedMessage id='confirmation_modal.cancel' defaultMessage='Cancel' />
           </Button>
+          {secondary !== undefined && (
+            <Button text={secondary} onClick={this.handleSecondary} className='confirmation-modal__secondary-button' />
+          )}
           <Button text={confirm} onClick={this.handleClick} ref={this.setRef} />
         </div>
       </div>
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 0acc7aedb..c1e59ffa4 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "لم تقم بكتم أي مستخدم بعد.",
   "empty_column.notifications": "لم تتلق أي إشعار بعدُ. تفاعل مع المستخدمين الآخرين لإنشاء محادثة.",
   "empty_column.public": "لا يوجد أي شيء هنا ! قم بنشر شيء ما للعامة، أو إتبع المستخدمين الآخرين المتواجدين على الخوادم الأخرى لملء خيط المحادثات",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "ترخيص",
   "follow_request.reject": "رفض",
   "getting_started.developers": "المُطوِّرون",
@@ -248,6 +247,7 @@
   "notification.favourite": "أُعجِب {name} بمنشورك",
   "notification.follow": "{name} يتابعك",
   "notification.mention": "{name} ذكرك",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} قام بترقية تبويقك",
   "notifications.clear": "إمسح الإخطارات",
   "notifications.clear_confirmation": "أمتأكد من أنك تود مسح جل الإخطارات الخاصة بك و المتلقاة إلى حد الآن ؟",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "عرض",
   "notifications.column_settings.follow": "متابعُون جُدُد :",
   "notifications.column_settings.mention": "الإشارات :",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "الإخطارات المدفوعة",
   "notifications.column_settings.reblog": "الترقيّات:",
   "notifications.column_settings.show": "إعرِضها في عمود",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "المفضلة",
   "notifications.filter.follows": "يتابِع",
   "notifications.filter.mentions": "الإشارات",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} إشعارات",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "الوُسوم",
   "search_results.statuses": "التبويقات",
   "search_results.total": "{count, number} {count, plural, one {result} و {results}}",
-  "standalone.public_title": "نظرة على ...",
   "status.admin_account": "افتح الواجهة الإدارية لـ @{name}",
   "status.admin_status": "افتح هذا المنشور على واجهة الإشراف",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index 86454c2d3..88a1377eb 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Entá nun silenciesti a dengún usuariu.",
   "empty_column.notifications": "Entá nun tienes dengún avisu. Interactua con otros p'aniciar la conversación.",
   "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Refugar",
   "getting_started.developers": "Desendolcadores",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} favourited your status",
   "notification.follow": "{name} siguióte",
   "notification.mention": "{name} mentóte",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} compartió'l to estáu",
   "notifications.clear": "Llimpiar avisos",
   "notifications.clear_confirmation": "¿De xuru que quies llimpiar dafechu tolos avisos?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Siguidores nuevos:",
   "notifications.column_settings.mention": "Menciones:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Toots compartíos:",
   "notifications.column_settings.show": "Amosar en columna",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} avisos",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Etiquetes",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Bloquiar a @{name}",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index ef9c34cac..528cdf8a6 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
   "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Authorize",
   "follow_request.reject": "Reject",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} хареса твоята публикация",
   "notification.follow": "{name} те последва",
   "notification.mention": "{name} те спомена",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} сподели твоята публикация",
   "notifications.clear": "Clear notifications",
   "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Нови последователи:",
   "notifications.column_settings.mention": "Споменавания:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Споделяния:",
   "notifications.column_settings.show": "Покажи в колона",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
new file mode 100644
index 000000000..001758c4c
--- /dev/null
+++ b/app/javascript/mastodon/locales/bn.json
@@ -0,0 +1,384 @@
+{
+  "account.add_or_remove_from_list": "লিস্টে আরো যুক্ত বা মুছে ফেলুন",
+  "account.badges.bot": "রোবট",
+  "account.block": "@{name} কে বন্ধ করুন",
+  "account.block_domain": "{domain} থেকে সব সরিয়ে ফেলুন",
+  "account.blocked": "বন্ধ করা হয়েছে",
+  "account.direct": "@{name}কে সরকারি পাঠান",
+  "account.disclaimer_full": "নিচে ব্যবহারকারীর তথ্য অসম্পূর্ণভাবে দেখতে পারে ।",
+  "account.domain_blocked": "বেবিসিটটি সরানো আছে",
+  "account.edit_profile": "Edit profile",
+  "account.endorse": "Feature on profile",
+  "account.follow": "Follow",
+  "account.followers": "Followers",
+  "account.followers.empty": "No one follows this user yet.",
+  "account.follows": "Follows",
+  "account.follows.empty": "This user doesn't follow anyone yet.",
+  "account.follows_you": "Follows you",
+  "account.hide_reblogs": "Hide boosts from @{name}",
+  "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 moved to:",
+  "account.mute": "Mute @{name}",
+  "account.mute_notifications": "Mute notifications from @{name}",
+  "account.muted": "Muted",
+  "account.posts": "Toots",
+  "account.posts_with_replies": "Toots and replies",
+  "account.report": "Report @{name}",
+  "account.requested": "Awaiting approval. Click to cancel follow request",
+  "account.share": "Share @{name}'s profile",
+  "account.show_reblogs": "Show boosts from @{name}",
+  "account.unblock": "Unblock @{name}",
+  "account.unblock_domain": "Unhide {domain}",
+  "account.unendorse": "Don't feature on profile",
+  "account.unfollow": "Unfollow",
+  "account.unmute": "Unmute @{name}",
+  "account.unmute_notifications": "Unmute notifications from @{name}",
+  "account.view_full_profile": "View full profile",
+  "alert.unexpected.message": "An unexpected error occurred.",
+  "alert.unexpected.title": "Oops!",
+  "boost_modal.combo": "You can press {combo} to skip this next time",
+  "bundle_column_error.body": "Something went wrong while loading this component.",
+  "bundle_column_error.retry": "Try again",
+  "bundle_column_error.title": "Network error",
+  "bundle_modal_error.close": "Close",
+  "bundle_modal_error.message": "Something went wrong while loading this component.",
+  "bundle_modal_error.retry": "Try again",
+  "column.blocks": "Blocked users",
+  "column.community": "Local timeline",
+  "column.direct": "Direct messages",
+  "column.domain_blocks": "Hidden domains",
+  "column.favourites": "Favourites",
+  "column.follow_requests": "Follow requests",
+  "column.home": "Home",
+  "column.lists": "Lists",
+  "column.mutes": "Muted users",
+  "column.notifications": "Notifications",
+  "column.pins": "Pinned toot",
+  "column.public": "Federated timeline",
+  "column_back_button.label": "Back",
+  "column_header.hide_settings": "Hide settings",
+  "column_header.moveLeft_settings": "Move column to the left",
+  "column_header.moveRight_settings": "Move column to the right",
+  "column_header.pin": "Pin",
+  "column_header.show_settings": "Show settings",
+  "column_header.unpin": "Unpin",
+  "column_subheading.settings": "Settings",
+  "community.column_settings.media_only": "Media Only",
+  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
+  "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
+  "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
+  "compose_form.lock_disclaimer.lock": "locked",
+  "compose_form.placeholder": "What is on your mind?",
+  "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.publish": "Toot",
+  "compose_form.publish_loud": "{publish}!",
+  "compose_form.sensitive.marked": "Media is marked as sensitive",
+  "compose_form.sensitive.unmarked": "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": "Write your warning here",
+  "confirmation_modal.cancel": "Cancel",
+  "confirmations.block.confirm": "Block",
+  "confirmations.block.message": "Are you sure you want to block {name}?",
+  "confirmations.delete.confirm": "Delete",
+  "confirmations.delete.message": "Are you sure you want to delete this status?",
+  "confirmations.delete_list.confirm": "Delete",
+  "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
+  "confirmations.domain_block.confirm": "Hide 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.mute.confirm": "Mute",
+  "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.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",
+  "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
+  "embed.instructions": "Embed this status on your website by copying the code below.",
+  "embed.preview": "Here is what it will look like:",
+  "emoji_button.activity": "Activity",
+  "emoji_button.custom": "Custom",
+  "emoji_button.flags": "Flags",
+  "emoji_button.food": "Food & Drink",
+  "emoji_button.label": "Insert emoji",
+  "emoji_button.nature": "Nature",
+  "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.objects": "Objects",
+  "emoji_button.people": "People",
+  "emoji_button.recent": "Frequently used",
+  "emoji_button.search": "Search...",
+  "emoji_button.search_results": "Search results",
+  "emoji_button.symbols": "Symbols",
+  "emoji_button.travel": "Travel & Places",
+  "empty_column.account_timeline": "No toots here!",
+  "empty_column.blocks": "You haven't blocked any users yet.",
+  "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
+  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.domain_blocks": "There are no hidden domains yet.",
+  "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_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
+  "empty_column.hashtag": "There is nothing in this hashtag yet.",
+  "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
+  "empty_column.home.public_timeline": "the public timeline",
+  "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.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
+  "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
+  "follow_request.authorize": "Authorize",
+  "follow_request.reject": "Reject",
+  "getting_started.developers": "Developers",
+  "getting_started.directory": "Profile directory",
+  "getting_started.documentation": "Documentation",
+  "getting_started.heading": "Getting started",
+  "getting_started.invite": "Invite people",
+  "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
+  "getting_started.security": "Security",
+  "getting_started.terms": "Terms of service",
+  "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",
+  "home.column_settings.basic": "Basic",
+  "home.column_settings.show_reblogs": "Show boosts",
+  "home.column_settings.show_replies": "Show replies",
+  "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}}",
+  "introduction.federation.action": "Next",
+  "introduction.federation.federated.headline": "Federated",
+  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+  "introduction.federation.home.headline": "Home",
+  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+  "introduction.federation.local.headline": "Local",
+  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
+  "introduction.interactions.action": "Finish toot-orial!",
+  "introduction.interactions.favourite.headline": "Favourite",
+  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
+  "introduction.interactions.reblog.headline": "Boost",
+  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
+  "introduction.interactions.reply.headline": "Reply",
+  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
+  "introduction.welcome.action": "Let's go!",
+  "introduction.welcome.headline": "First steps",
+  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
+  "keyboard_shortcuts.back": "to navigate back",
+  "keyboard_shortcuts.blocked": "to open blocked users list",
+  "keyboard_shortcuts.boost": "to boost",
+  "keyboard_shortcuts.column": "to focus a status in one of the columns",
+  "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.description": "Description",
+  "keyboard_shortcuts.direct": "to open direct messages column",
+  "keyboard_shortcuts.down": "to move down in the list",
+  "keyboard_shortcuts.enter": "to open status",
+  "keyboard_shortcuts.favourite": "to favourite",
+  "keyboard_shortcuts.favourites": "to open favourites list",
+  "keyboard_shortcuts.federated": "to open federated timeline",
+  "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+  "keyboard_shortcuts.home": "to open home timeline",
+  "keyboard_shortcuts.hotkey": "Hotkey",
+  "keyboard_shortcuts.legend": "to display this legend",
+  "keyboard_shortcuts.local": "to open local timeline",
+  "keyboard_shortcuts.mention": "to mention author",
+  "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.pinned": "to open pinned toots list",
+  "keyboard_shortcuts.profile": "to open author's profile",
+  "keyboard_shortcuts.reply": "to reply",
+  "keyboard_shortcuts.requests": "to open follow requests list",
+  "keyboard_shortcuts.search": "to focus search",
+  "keyboard_shortcuts.start": "to open \"get started\" column",
+  "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
+  "keyboard_shortcuts.toot": "to start a brand new toot",
+  "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+  "keyboard_shortcuts.up": "to move up in the list",
+  "lightbox.close": "Close",
+  "lightbox.next": "Next",
+  "lightbox.previous": "Previous",
+  "lists.account.add": "Add to list",
+  "lists.account.remove": "Remove from list",
+  "lists.delete": "Delete list",
+  "lists.edit": "Edit list",
+  "lists.edit.submit": "Change title",
+  "lists.new.create": "Add list",
+  "lists.new.title_placeholder": "New list title",
+  "lists.search": "Search among people you follow",
+  "lists.subheading": "Your lists",
+  "loading_indicator.label": "Loading...",
+  "media_gallery.toggle_visible": "Toggle visibility",
+  "missing_indicator.label": "Not found",
+  "missing_indicator.sublabel": "This resource could not be found",
+  "mute_modal.hide_notifications": "Hide notifications from this user?",
+  "navigation_bar.apps": "Mobile apps",
+  "navigation_bar.blocks": "Blocked users",
+  "navigation_bar.community_timeline": "Local timeline",
+  "navigation_bar.compose": "Compose new toot",
+  "navigation_bar.direct": "Direct messages",
+  "navigation_bar.discover": "Discover",
+  "navigation_bar.domain_blocks": "Hidden domains",
+  "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.favourites": "Favourites",
+  "navigation_bar.filters": "Muted words",
+  "navigation_bar.follow_requests": "Follow requests",
+  "navigation_bar.info": "About this server",
+  "navigation_bar.keyboard_shortcuts": "Hotkeys",
+  "navigation_bar.lists": "Lists",
+  "navigation_bar.logout": "Logout",
+  "navigation_bar.mutes": "Muted users",
+  "navigation_bar.personal": "Personal",
+  "navigation_bar.pins": "Pinned toots",
+  "navigation_bar.preferences": "Preferences",
+  "navigation_bar.public_timeline": "Federated timeline",
+  "navigation_bar.security": "Security",
+  "notification.favourite": "{name} favourited your status",
+  "notification.follow": "{name} followed you",
+  "notification.mention": "{name} mentioned you",
+  "notification.poll": "A poll you have voted in has ended",
+  "notification.reblog": "{name} boosted your status",
+  "notifications.clear": "Clear notifications",
+  "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
+  "notifications.column_settings.alert": "Desktop notifications",
+  "notifications.column_settings.favourite": "Favourites:",
+  "notifications.column_settings.filter_bar.advanced": "Display all categories",
+  "notifications.column_settings.filter_bar.category": "Quick filter bar",
+  "notifications.column_settings.filter_bar.show": "Show",
+  "notifications.column_settings.follow": "New followers:",
+  "notifications.column_settings.mention": "Mentions:",
+  "notifications.column_settings.poll": "Poll results:",
+  "notifications.column_settings.push": "Push notifications",
+  "notifications.column_settings.reblog": "Boosts:",
+  "notifications.column_settings.show": "Show in column",
+  "notifications.column_settings.sound": "Play sound",
+  "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.group": "{count} notifications",
+  "poll.closed": "Closed",
+  "poll.refresh": "Refresh",
+  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+  "poll.vote": "Vote",
+  "poll_button.add_poll": "Add a poll",
+  "poll_button.remove_poll": "Remove poll",
+  "privacy.change": "Adjust status privacy",
+  "privacy.direct.long": "Post to mentioned users only",
+  "privacy.direct.short": "Direct",
+  "privacy.private.long": "Post to followers only",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Post to public timelines",
+  "privacy.public.short": "Public",
+  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.short": "Unlisted",
+  "regeneration_indicator.label": "Loading…",
+  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+  "relative_time.days": "{number}d",
+  "relative_time.hours": "{number}h",
+  "relative_time.just_now": "now",
+  "relative_time.minutes": "{number}m",
+  "relative_time.seconds": "{number}s",
+  "reply_indicator.cancel": "Cancel",
+  "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.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
+  "report.placeholder": "Additional comments",
+  "report.submit": "Submit",
+  "report.target": "Report {target}",
+  "search.placeholder": "Search",
+  "search_popout.search_format": "Advanced 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.hashtag": "hashtag",
+  "search_popout.tips.status": "status",
+  "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+  "search_popout.tips.user": "user",
+  "search_results.accounts": "People",
+  "search_results.hashtags": "Hashtags",
+  "search_results.statuses": "Toots",
+  "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
+  "status.admin_account": "Open moderation interface for @{name}",
+  "status.admin_status": "Open this status in the moderation interface",
+  "status.block": "Block @{name}",
+  "status.cancel_reblog_private": "Unboost",
+  "status.cannot_reblog": "This post cannot be boosted",
+  "status.copy": "Copy link to status",
+  "status.delete": "Delete",
+  "status.detailed_status": "Detailed conversation view",
+  "status.direct": "Direct message @{name}",
+  "status.embed": "Embed",
+  "status.favourite": "Favourite",
+  "status.filtered": "Filtered",
+  "status.load_more": "Load more",
+  "status.media_hidden": "Media hidden",
+  "status.mention": "Mention @{name}",
+  "status.more": "More",
+  "status.mute": "Mute @{name}",
+  "status.mute_conversation": "Mute conversation",
+  "status.open": "Expand this status",
+  "status.pin": "Pin on profile",
+  "status.pinned": "Pinned toot",
+  "status.read_more": "Read more",
+  "status.reblog": "Boost",
+  "status.reblog_private": "Boost to original audience",
+  "status.reblogged_by": "{name} boosted",
+  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
+  "status.redraft": "Delete & re-draft",
+  "status.reply": "Reply",
+  "status.replyAll": "Reply to thread",
+  "status.report": "Report @{name}",
+  "status.sensitive_toggle": "Click to view",
+  "status.sensitive_warning": "Sensitive content",
+  "status.share": "Share",
+  "status.show_less": "Show less",
+  "status.show_less_all": "Show less for all",
+  "status.show_more": "Show more",
+  "status.show_more_all": "Show more for all",
+  "status.show_thread": "Show thread",
+  "status.unmute_conversation": "Unmute conversation",
+  "status.unpin": "Unpin from profile",
+  "suggestions.dismiss": "Dismiss suggestion",
+  "suggestions.header": "You might be interested in…",
+  "tabs_bar.federated_timeline": "Federated",
+  "tabs_bar.home": "Home",
+  "tabs_bar.local_timeline": "Local",
+  "tabs_bar.notifications": "Notifications",
+  "tabs_bar.search": "Search",
+  "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",
+  "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
+  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
+  "upload_area.title": "Drag & drop to upload",
+  "upload_button.label": "Add media (JPEG, PNG, GIF, WebM, MP4, MOV)",
+  "upload_error.limit": "File upload limit exceeded.",
+  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_form.description": "Describe for the visually impaired",
+  "upload_form.focus": "Crop",
+  "upload_form.undo": "Delete",
+  "upload_progress.label": "Uploading...",
+  "video.close": "Close video",
+  "video.exit_fullscreen": "Exit full screen",
+  "video.expand": "Expand video",
+  "video.fullscreen": "Full screen",
+  "video.hide": "Hide video",
+  "video.mute": "Mute sound",
+  "video.pause": "Pause",
+  "video.play": "Play",
+  "video.unmute": "Unmute sound"
+}
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index e7333f6fe..92cd7b61f 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Encara no has silenciat cap usuari.",
   "empty_column.notifications": "Encara no tens notificacions. Interactua amb altres per iniciar la conversa.",
   "empty_column.public": "No hi ha res aquí! Escriu públicament alguna cosa o manualment segueix usuaris d'altres servidors per omplir-ho",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autoritzar",
   "follow_request.reject": "Rebutjar",
   "getting_started.developers": "Desenvolupadors",
@@ -158,7 +157,7 @@
   "home.column_settings.show_replies": "Mostrar respostes",
   "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}}",
+  "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}",
   "introduction.federation.action": "Següent",
   "introduction.federation.federated.headline": "Federada",
   "introduction.federation.federated.text": "Les publicacions públiques d'altres servidors del fedivers apareixeran a la línia de temps federada.",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} ha afavorit el teu estat",
   "notification.follow": "{name} et segueix",
   "notification.mention": "{name} t'ha esmentat",
+  "notification.poll": "Ha finalitzat una enquesta en la que has votat",
   "notification.reblog": "{name} ha retootejat el teu estat",
   "notifications.clear": "Netejar notificacions",
   "notifications.clear_confirmation": "Estàs segur que vols esborrar permanenment totes les teves notificacions?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Mostra",
   "notifications.column_settings.follow": "Nous seguidors:",
   "notifications.column_settings.mention": "Mencions:",
+  "notifications.column_settings.poll": "Resultats de l’enquesta:",
   "notifications.column_settings.push": "Push notificacions",
   "notifications.column_settings.reblog": "Impulsos:",
   "notifications.column_settings.show": "Mostrar en la columna",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favorits",
   "notifications.filter.follows": "Seguiments",
   "notifications.filter.mentions": "Mencions",
+  "notifications.filter.polls": "Resultats de l'enquesta",
   "notifications.group": "{count} notificacions",
   "poll.closed": "Finalitzada",
   "poll.refresh": "Actualitza",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Etiquetes",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, un {result} altres {results}}",
-  "standalone.public_title": "Una mirada a l'interior ...",
   "status.admin_account": "Obre l'interfície de moderació per a @{name}",
   "status.admin_status": "Obre aquest estat a la interfície de moderació",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index 5f4d520d6..53873dd14 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "U vostru contu ùn hè micca {locked}. Tuttu u mondu pò seguitavi è vede i vostri statuti privati.",
   "compose_form.lock_disclaimer.lock": "privatu",
   "compose_form.placeholder": "À chè pensate?",
-  "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.add_option": "Aghjustà una scelta",
+  "compose_form.poll.duration": "Durata di u scandagliu",
+  "compose_form.poll.option_placeholder": "Scelta {number}",
+  "compose_form.poll.remove_option": "Toglie sta scelta",
   "compose_form.publish": "Toot",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Media indicatu cum'è sensibile",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Per avà ùn avete manc'un utilizatore piattatu.",
   "empty_column.notifications": "Ùn avete ancu nisuna nutificazione. Interact with others to start the conversation.",
   "empty_column.public": "Ùn c'hè nunda quì! Scrivete qualcosa in pubblicu o seguitate utilizatori d'altri servori per empie a linea pubblica",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Auturizà",
   "follow_request.reject": "Righjittà",
   "getting_started.developers": "Sviluppatori",
@@ -156,9 +155,9 @@
   "home.column_settings.basic": "Bàsichi",
   "home.column_settings.show_reblogs": "Vede e spartere",
   "home.column_settings.show_replies": "Vede e risposte",
-  "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}}",
+  "intervals.full.days": "{number, plural, one {# ghjornu} other {# ghjorni}}",
+  "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}",
+  "intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}",
   "introduction.federation.action": "Cuntinuà",
   "introduction.federation.federated.headline": "Federata",
   "introduction.federation.federated.text": "I statuti pubblichi da l'altri servori di u fediverse saranu mustrati nant'à a linea pubblica federata.",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti",
   "notification.follow": "{name} v'hà seguitatu",
   "notification.mention": "{name} v'hà mintuvatu",
+  "notification.poll": "Un scandagliu induve avete vutatu hè finitu",
   "notification.reblog": "{name} hà spartutu u vostru statutu",
   "notifications.clear": "Purgà e nutificazione",
   "notifications.clear_confirmation": "Site sicuru·a che vulete toglie tutte ste nutificazione?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Mustrà",
   "notifications.column_settings.follow": "Abbunati novi:",
   "notifications.column_settings.mention": "Minzione:",
+  "notifications.column_settings.poll": "Risultati:",
   "notifications.column_settings.push": "Nutificazione Push",
   "notifications.column_settings.reblog": "Spartere:",
   "notifications.column_settings.show": "Mustrà indè a colonna",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "Favuriti",
   "notifications.filter.follows": "Abbunamenti",
   "notifications.filter.mentions": "Minzione",
+  "notifications.filter.polls": "Risultati di u scandagliu",
   "notifications.group": "{count} nutificazione",
   "poll.closed": "Chjosu",
   "poll.refresh": "Attualizà",
   "poll.total_votes": "{count, plural, one {# votu} other {# voti}}",
   "poll.vote": "Vutà",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Aghjustà un scandagliu",
+  "poll_button.remove_poll": "Toglie u scandagliu",
   "privacy.change": "Mudificà a cunfidenzialità di u statutu",
   "privacy.direct.long": "Mandà solu à quelli chì so mintuvati",
   "privacy.direct.short": "Direttu",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtag",
   "search_results.statuses": "Statuti",
   "search_results.total": "{count, number} {count, plural, one {risultatu} other {risultati}}",
-  "standalone.public_title": "Una vista à l'internu...",
   "status.admin_account": "Apre l'interfaccia di muderazione per @{name}",
   "status.admin_status": "Apre stu statutu in l'interfaccia di muderazione",
   "status.block": "Bluccà @{name}",
@@ -366,7 +367,7 @@
   "upload_area.title": "Drag & drop per caricà un fugliale",
   "upload_button.label": "Aghjunghje un media (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Limita di caricamentu di fugliali trapassata.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "Ùn si pò micca caricà fugliali cù i scandagli.",
   "upload_form.description": "Discrive per i malvistosi",
   "upload_form.focus": "Cambià a vista",
   "upload_form.undo": "Sguassà",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index 7ccbdef00..52823658b 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Ještě jste neskryl/a žádné uživatele.",
   "empty_column.notifications": "Ještě nemáte žádná oznámení. Začněte konverzaci komunikováním s ostatními.",
   "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_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autorizovat",
   "follow_request.reject": "Odmítnout",
   "getting_started.developers": "Vývojáři",
@@ -161,7 +160,7 @@
   "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minuty} other {# minut}}",
   "introduction.federation.action": "Další",
   "introduction.federation.federated.headline": "Federovaná",
-  "introduction.federation.federated.text": "Veřejné příspěvky z jiných serverů na fediverse se zobrazí na federované časové ose.",
+  "introduction.federation.federated.text": "Veřejné příspěvky z jiných serverů ve fedivesmíru se zobrazí na federované časové ose.",
   "introduction.federation.home.headline": "Domů",
   "introduction.federation.home.text": "Příspěvky od lidí, které sledujete, se objeví ve vašem domovském proudu. Můžete sledovat kohokoliv na jakémkoliv serveru!",
   "introduction.federation.local.headline": "Místní",
@@ -175,7 +174,7 @@
   "introduction.interactions.reply.text": "Můžete odpovídat na tooty jiných lidí i vaše vlastní, což je propojí do konverzace.",
   "introduction.welcome.action": "Jdeme na to!",
   "introduction.welcome.headline": "První kroky",
-  "introduction.welcome.text": "Vítejte na fediverse! Za malou chvíli budete moci posílat zprávy a povídat si se svými přátely přes širokou škálu serverů. Tento server, {domain}, je však speciální—je na něm váš profil, proto si zapamatujte jeho jméno.",
+  "introduction.welcome.text": "Vítejte ve fedivesmíru! Za malou chvíli budete moci posílat zprávy a povídat si se svými přátely přes širokou škálu serverů. Tento server, {domain}, je však speciální—je na něm váš profil, proto si zapamatujte jeho jméno.",
   "keyboard_shortcuts.back": "k návratu zpět",
   "keyboard_shortcuts.blocked": "k otevření seznamu blokovaných uživatelů",
   "keyboard_shortcuts.boost": "k boostnutí",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} si oblíbil/a váš toot",
   "notification.follow": "{name} vás začal/a sledovat",
   "notification.mention": "{name} vás zmínil/a",
+  "notification.poll": "Anketa, ve které jste hlasoval/a, skončila",
   "notification.reblog": "{name} boostnul/a váš toot",
   "notifications.clear": "Vymazat oznámení",
   "notifications.clear_confirmation": "Jste si jistý/á, že chcete trvale vymazat všechna vaše oznámení?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Zobrazit",
   "notifications.column_settings.follow": "Noví sledující:",
   "notifications.column_settings.mention": "Zmínky:",
+  "notifications.column_settings.poll": "Výsledky anket:",
   "notifications.column_settings.push": "Push oznámení",
   "notifications.column_settings.reblog": "Boosty:",
   "notifications.column_settings.show": "Zobrazit ve sloupci",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Oblíbení",
   "notifications.filter.follows": "Sledování",
   "notifications.filter.mentions": "Zmínky",
+  "notifications.filter.polls": "Výsledky anket",
   "notifications.group": "{count} oznámení",
   "poll.closed": "Uzavřena",
   "poll.refresh": "Obnovit",
@@ -308,9 +310,8 @@
   "search_results.hashtags": "Hashtagy",
   "search_results.statuses": "Tooty",
   "search_results.total": "{count, number} {count, plural, one {výsledek} few {výsledky} many {výsledku} other {výsledků}}",
-  "standalone.public_title": "Nahlédněte dovnitř...",
-  "status.admin_account": "Otevřít moderační rozhraní pro uživatele @{name}",
-  "status.admin_status": "Otevřít tento toot v moderačním rozhraní",
+  "status.admin_account": "Otevřít moderátorské rozhraní pro uživatele @{name}",
+  "status.admin_status": "Otevřít tento toot v moderátorském rozhraní",
   "status.block": "Zablokovat uživatele @{name}",
   "status.cancel_reblog_private": "Zrušit boost",
   "status.cannot_reblog": "Tento příspěvek nemůže být boostnutý",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 635226d7b..f153474a2 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Nid ydych wedi tawelu unrhyw ddefnyddwyr eto.",
   "empty_column.notifications": "Nid oes gennych unrhyw hysbysiadau eto. Rhyngweithiwch ac eraill i ddechrau'r sgwrs.",
   "empty_column.public": "Does dim byd yma! Ysgrifennwch rhywbeth yn gyhoeddus, neu dilynwch ddefnyddwyr o achosion eraill i'w lenwi",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Caniatau",
   "follow_request.reject": "Gwrthod",
   "getting_started.developers": "Datblygwyr",
@@ -248,6 +247,7 @@
   "notification.favourite": "hoffodd {name} eich tŵt",
   "notification.follow": "dilynodd {name} chi",
   "notification.mention": "Soniodd {name} amdanoch chi",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "Hysbysebodd {name} eich tŵt",
   "notifications.clear": "Clirio hysbysiadau",
   "notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Dangos",
   "notifications.column_settings.follow": "Dilynwyr newydd:",
   "notifications.column_settings.mention": "Crybwylliadau:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Hysbysiadau push",
   "notifications.column_settings.reblog": "Hybiadau:",
   "notifications.column_settings.show": "Dangos yn y golofn",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Ffefrynnau",
   "notifications.filter.follows": "Yn dilyn",
   "notifications.filter.mentions": "Crybwylliadau",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} o hysbysiadau",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hanshnodau",
   "search_results.statuses": "Tŵtiau",
   "search_results.total": "{count, number} {count, plural, one {result} arall {results}}",
-  "standalone.public_title": "Golwg tu fewn...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this tŵt in the moderation interface",
   "status.block": "Blocio @{name}",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index 86df1447e..7cb61b48c 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -117,7 +117,7 @@
   "emoji_button.search_results": "Søgeresultater",
   "emoji_button.symbols": "Symboler",
   "emoji_button.travel": "Rejser & steder",
-  "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_timeline": "Ingen bidrag her!",
   "empty_column.blocks": "Du har ikke blokeret nogen endnu.",
   "empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at starte lavinen!",
   "empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager en, vil den vises her.",
@@ -132,8 +132,7 @@
   "empty_column.lists": "Du har endnu ingen lister. Når du opretter en, vil den blive vist her.",
   "empty_column.mutes": "Du har endnu ikke dæmpet nogen som helst bruger.",
   "empty_column.notifications": "Du har endnu ingen notifikationer. Tag ud og bland dig med folkemængden for at starte samtalen.",
-  "empty_column.public": "Der er ikke noget at se her! Skriv noget offentligt eller start ud med manuelt at følge brugere fra andre instanser for st udfylde tomrummet",
-  "error_boundary.it_crashed": "It crashed!",
+  "empty_column.public": "Der er ikke noget at se her! Skriv noget offentligt eller start ud med manuelt at følge brugere fra andre server for at udfylde tomrummet",
   "follow_request.authorize": "Godkend",
   "follow_request.reject": "Afvis",
   "getting_started.developers": "Udviklere",
@@ -144,9 +143,9 @@
   "getting_started.open_source_notice": "Mastodon er et open source software. Du kan bidrage eller rapporterer fejl på GitHub {github}.",
   "getting_started.security": "Sikkerhed",
   "getting_started.terms": "Vilkår",
-  "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_header.tag_mode.all": "og {additional}",
+  "hashtag.column_header.tag_mode.any": "eller {additional}",
+  "hashtag.column_header.tag_mode.none": "uden {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",
@@ -161,20 +160,20 @@
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
   "introduction.federation.action": "Næste",
   "introduction.federation.federated.headline": "Federated",
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+  "introduction.federation.federated.text": "Offentlige bidrag fra andre servere af fediversen vil komme til syne i den federated timeline.",
   "introduction.federation.home.headline": "Home",
   "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
   "introduction.federation.local.headline": "Local",
   "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
-  "introduction.interactions.action": "Finish tutorial!",
-  "introduction.interactions.favourite.headline": "Favourite",
+  "introduction.interactions.action": "Slut tutorial!",
+  "introduction.interactions.favourite.headline": "Favorisere",
   "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
   "introduction.interactions.reblog.headline": "Boost",
   "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
-  "introduction.interactions.reply.headline": "Reply",
-  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
-  "introduction.welcome.headline": "First steps",
+  "introduction.interactions.reply.headline": "Svar",
+  "introduction.interactions.reply.text": "Du kan svare andres og din egen bidrag, hvilke vil kæde dem sammen i en konversation.",
+  "introduction.welcome.action": "Læd os gå!",
+  "introduction.welcome.headline": "Første skridt",
   "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
   "keyboard_shortcuts.back": "for at navigere dig tilbage",
   "keyboard_shortcuts.blocked": "for at åbne listen over blokerede brugere",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} favoriserede din status",
   "notification.follow": "{name} fulgte dig",
   "notification.mention": "{name} nævnte dig",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} fremhævede din status",
   "notifications.clear": "Ryd notifikationer",
   "notifications.clear_confirmation": "Er du sikker på, du vil rydde alle dine notifikationer permanent?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Nye følgere:",
   "notifications.column_settings.mention": "Omtale:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifikationer",
   "notifications.column_settings.reblog": "Fremhævelser:",
   "notifications.column_settings.show": "Vis i kolonne",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favoritter",
   "notifications.filter.follows": "Følger",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifikationer",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Emnetags",
   "search_results.statuses": "Trut",
   "search_results.total": "{count, number} {count, plural, et {result} andre {results}}",
-  "standalone.public_title": "Et kig indenfor...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Bloker @{name}",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 734737c55..1b122fc3b 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.",
   "compose_form.lock_disclaimer.lock": "gesperrt",
   "compose_form.placeholder": "Was gibt's Neues?",
-  "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.add_option": "Eine Auswahl hinzufügen",
+  "compose_form.poll.duration": "Umfragedauer",
+  "compose_form.poll.option_placeholder": "Auswahl {number}",
+  "compose_form.poll.remove_option": "Auswahl entfernen",
   "compose_form.publish": "Tröt",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Medien sind als heikel markiert",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
   "empty_column.notifications": "Du hast noch keine Mitteilungen. Interagiere mit anderen, um ins Gespräch zu kommen.",
   "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Erlauben",
   "follow_request.reject": "Ablehnen",
   "getting_started.developers": "Entwickler",
@@ -147,18 +146,18 @@
   "hashtag.column_header.tag_mode.all": "und {additional}",
   "hashtag.column_header.tag_mode.any": "oder {additional}",
   "hashtag.column_header.tag_mode.none": "ohne {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+  "hashtag.column_settings.select.no_options_message": "Keine Vorschläge gefunden",
+  "hashtag.column_settings.select.placeholder": "Hashtags eintragen…",
   "hashtag.column_settings.tag_mode.all": "All diese",
   "hashtag.column_settings.tag_mode.any": "Eine von diesen",
   "hashtag.column_settings.tag_mode.none": "Keine von diesen",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_toggle": "Zusätzliche Tags für diese Spalte einfügen",
   "home.column_settings.basic": "Einfach",
   "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
   "home.column_settings.show_replies": "Antworten anzeigen",
-  "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}}",
+  "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}}",
   "introduction.federation.action": "Weiter",
   "introduction.federation.federated.headline": "Föderiert",
   "introduction.federation.federated.text": "Öffentliche Beiträge von anderen Servern im Fediverse erscheinen in der föderierten Zeitleiste.",
@@ -214,7 +213,7 @@
   "lists.account.remove": "Von der Liste entfernen",
   "lists.delete": "Delete list",
   "lists.edit": "Liste bearbeiten",
-  "lists.edit.submit": "Change title",
+  "lists.edit.submit": "Titel ändern",
   "lists.new.create": "Liste hinzufügen",
   "lists.new.title_placeholder": "Neuer Titel der Liste",
   "lists.search": "Suche nach Leuten denen du folgst",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} hat deinen Beitrag favorisiert",
   "notification.follow": "{name} folgt dir",
   "notification.mention": "{name} hat dich erwähnt",
+  "notification.poll": "Eine Umfrage in der du abgestimmt hast ist vorbei",
   "notification.reblog": "{name} hat deinen Beitrag geteilt",
   "notifications.clear": "Mitteilungen löschen",
   "notifications.clear_confirmation": "Bist du dir sicher, dass du alle Mitteilungen löschen möchtest?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Anzeigen",
   "notifications.column_settings.follow": "Neue Folgende:",
   "notifications.column_settings.mention": "Erwähnungen:",
+  "notifications.column_settings.poll": "Ergebnisse der Umfrage:",
   "notifications.column_settings.push": "Push-Benachrichtigungen",
   "notifications.column_settings.reblog": "Geteilte Beiträge:",
   "notifications.column_settings.show": "In der Spalte anzeigen",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "Favoriten",
   "notifications.filter.follows": "Folgende",
   "notifications.filter.mentions": "Erwähnungen",
+  "notifications.filter.polls": "Ergebnisse der Umfrage",
   "notifications.group": "{count} Benachrichtigungen",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll.closed": "Geschlossen",
+  "poll.refresh": "Aktualisieren",
+  "poll.total_votes": "{count, plural, one {# Stimme} other {# Stimmen}}",
+  "poll.vote": "Abstimmen",
+  "poll_button.add_poll": "Eine Umfrage erstellen",
+  "poll_button.remove_poll": "Umfrage entfernen",
   "privacy.change": "Sichtbarkeit des Beitrags anpassen",
   "privacy.direct.long": "Beitrag nur an erwähnte Profile",
   "privacy.direct.short": "Direkt",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Beiträge",
   "search_results.total": "{count, number} {count, plural, one {Ergebnis} other {Ergebnisse}}",
-  "standalone.public_title": "Ein kleiner Einblick …",
   "status.admin_account": "Öffne Moderationsoberfläche für @{name}",
   "status.admin_status": "Öffne diesen Status in der Moderationsoberfläche",
   "status.block": "Blockiere @{name}",
@@ -356,17 +357,17 @@
   "tabs_bar.local_timeline": "Lokal",
   "tabs_bar.notifications": "Mitteilungen",
   "tabs_bar.search": "Suchen",
-  "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",
+  "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": "Momente verbleibend",
+  "time_remaining.seconds": "{number, plural, one {# Sekunde} other {# Sekunden}} verbleibend",
   "trends.count_by_accounts": "{count} {rawCount, plural, eine {Person} other {Personen}} reden darüber",
   "ui.beforeunload": "Dein Entwurf geht verloren, wenn du Mastodon verlässt.",
   "upload_area.title": "Zum Hochladen hereinziehen",
   "upload_button.label": "Mediendatei hinzufügen (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Dateiupload-Limit erreicht.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.",
   "upload_form.description": "Für Menschen mit Sehbehinderung beschreiben",
   "upload_form.focus": "Thumbnail bearbeiten",
   "upload_form.undo": "Löschen",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index d0bbc830b..44ad0add2 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Δεν έχεις αποσιωπήσει κανένα χρήστη ακόμα.",
   "empty_column.notifications": "Δεν έχεις ειδοποιήσεις ακόμα. Αλληλεπίδρασε με άλλους χρήστες για να ξεκινήσεις την κουβέντα.",
   "empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο, ή ακολούθησε χειροκίνητα χρήστες από άλλους κόμβους για να τη γεμίσεις",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Ενέκρινε",
   "follow_request.reject": "Απέρριψε",
   "getting_started.developers": "Ανάπτυξη",
@@ -158,7 +157,7 @@
   "home.column_settings.show_replies": "Εμφάνιση απαντήσεων",
   "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}}",
+  "intervals.full.minutes": "{number, plural, one {# λεπτό} other {# λεπτά}}",
   "introduction.federation.action": "Επόμενο",
   "introduction.federation.federated.headline": "Ομοσπονδιακή",
   "introduction.federation.federated.text": "Οι δημόσιες αναρτήσεις από άλλους κόμβους του fediverse θα εμφανίζονται στην ομοσπονδιακή ροή.",
@@ -248,6 +247,7 @@
   "notification.favourite": "Ο/Η {name} σημείωσε ως αγαπημένη την κατάστασή σου",
   "notification.follow": "Ο/Η {name} σε ακολούθησε",
   "notification.mention": "Ο/Η {name} σε ανέφερε",
+  "notification.poll": "Έλαβε τέλος μια από τις ψηφοφορίες που συμμετείχες",
   "notification.reblog": "Ο/Η {name} προώθησε την κατάστασή σου",
   "notifications.clear": "Καθαρισμός ειδοποιήσεων",
   "notifications.clear_confirmation": "Σίγουρα θέλεις να καθαρίσεις όλες τις ειδοποιήσεις σου;",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Εμφάνιση",
   "notifications.column_settings.follow": "Νέοι ακόλουθοι:",
   "notifications.column_settings.mention": "Αναφορές:",
+  "notifications.column_settings.poll": "Αποτελέσματα ψηφοφορίας:",
   "notifications.column_settings.push": "Άμεσες ειδοποιήσεις",
   "notifications.column_settings.reblog": "Προωθήσεις:",
   "notifications.column_settings.show": "Εμφάνισε σε στήλη",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Αγαπημένα",
   "notifications.filter.follows": "Ακόλουθοι",
   "notifications.filter.mentions": "Αναφορές",
+  "notifications.filter.polls": "Αποτελέσματα ψηφοφορίας",
   "notifications.group": "{count} ειδοποιήσεις",
   "poll.closed": "Κλειστή",
   "poll.refresh": "Ανανέωση",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Ταμπέλες",
   "search_results.statuses": "Τουτ",
   "search_results.total": "{count, number} {count, plural, zero {αποτελέσματα} one {αποτέλεσμα} other {αποτελέσματα}}",
-  "standalone.public_title": "Μια πρώτη γεύση...",
   "status.admin_account": "Άνοιγμα λειτουργίας διαμεσολάβησης για τον/την @{name}",
   "status.admin_status": "Άνοιγμα αυτής της δημοσίευσης στη λειτουργία διαμεσολάβησης",
   "status.block": "Αποκλεισμός @{name}",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 05e7e12d8..ab5512683 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Vi ne ankoraŭ silentigis iun uzanton.",
   "empty_column.notifications": "Vi ankoraŭ ne havas sciigojn. Interagu kun aliaj por komenci konversacion.",
   "empty_column.public": "Estas nenio ĉi tie! Publike skribu ion, aŭ mane sekvu uzantojn de aliaj serviloj por plenigi la publikan tempolinion",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Rajtigi",
   "follow_request.reject": "Rifuzi",
   "getting_started.developers": "Programistoj",
@@ -152,13 +151,13 @@
   "hashtag.column_settings.tag_mode.all": "Ĉiuj",
   "hashtag.column_settings.tag_mode.any": "Iu ajn",
   "hashtag.column_settings.tag_mode.none": "Neniu",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_toggle": "Inkluzivi pluajn etikedojn por ĉi tiu kolumno",
   "home.column_settings.basic": "Bazaj agordoj",
   "home.column_settings.show_reblogs": "Montri diskonigojn",
   "home.column_settings.show_replies": "Montri respondojn",
   "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}}",
+  "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutoj}}",
   "introduction.federation.action": "Sekva",
   "introduction.federation.federated.headline": "Federated",
   "introduction.federation.federated.text": "Publikaj mesaĝoj el aliaj serviloj de la Fediverse aperos en la fratara tempolinio.",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} stelumis vian mesaĝon",
   "notification.follow": "{name} eksekvis vin",
   "notification.mention": "{name} menciis vin",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} diskonigis vian mesaĝon",
   "notifications.clear": "Forviŝi sciigojn",
   "notifications.clear_confirmation": "Ĉu vi certas, ke vi volas porĉiame forviŝi ĉiujn viajn sciigojn?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Montri",
   "notifications.column_settings.follow": "Novaj sekvantoj:",
   "notifications.column_settings.mention": "Mencioj:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Puŝsciigoj",
   "notifications.column_settings.reblog": "Diskonigoj:",
   "notifications.column_settings.show": "Montri en kolumno",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Stelumoj",
   "notifications.filter.follows": "Sekvoj",
   "notifications.filter.mentions": "Mencioj",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} sciigoj",
   "poll.closed": "Finita",
   "poll.refresh": "Aktualigi",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Kradvortoj",
   "search_results.statuses": "Mesaĝoj",
   "search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
-  "standalone.public_title": "Enrigardo…",
   "status.admin_account": "Malfermi la kontrolan interfacon por @{name}",
   "status.admin_status": "Malfermi ĉi tiun mesaĝon en la kontrola interfaco",
   "status.block": "Bloki @{name}",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index bf20e5f9d..82cb1a00a 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -1,6 +1,6 @@
 {
-  "account.add_or_remove_from_list": "Add or Remove from lists",
-  "account.badges.bot": "Bot",
+  "account.add_or_remove_from_list": "Agregar o Quitar listas",
+  "account.badges.bot": "Robot",
   "account.block": "Bloquear",
   "account.block_domain": "Ocultar todo de {domain}",
   "account.blocked": "Bloqueado",
@@ -16,8 +16,8 @@
   "account.follows.empty": "Este usuario todavía no sigue a nadie.",
   "account.follows_you": "Te sigue",
   "account.hide_reblogs": "Ocultar retoots de @{name}",
-  "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.link_verified_on": "La legitimidad de este enlace fue verificada el {date}",
+  "account.locked_info": "Esta cuenta está bloqueada. Su propietario aprueba manualmente quién puede seguirlo.",
   "account.media": "Media",
   "account.mention": "Mencionar a @{name}",
   "account.moved_to": "{name} se ha mudado a:",
@@ -38,7 +38,7 @@
   "account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
   "account.view_full_profile": "Ver perfil completo",
   "alert.unexpected.message": "Hubo un error inesperado.",
-  "alert.unexpected.title": "Oops!",
+  "alert.unexpected.title": "¡Oups!",
   "boost_modal.combo": "Puedes presionar {combo} para saltear este aviso la próxima vez",
   "bundle_column_error.body": "Algo salió mal al cargar este componente.",
   "bundle_column_error.retry": "Inténtalo de nuevo",
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
   "compose_form.lock_disclaimer.lock": "bloqueado",
   "compose_form.placeholder": "¿En qué estás pensando?",
-  "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.add_option": "Añadir una opción",
+  "compose_form.poll.duration": "Duración de la encuesta",
+  "compose_form.poll.option_placeholder": "Opción {number}",
+  "compose_form.poll.remove_option": "Eliminar esta opción",
   "compose_form.publish": "Tootear",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Material marcado como sensible",
@@ -97,8 +97,8 @@
   "confirmations.mute.message": "¿Estás seguro de que quieres silenciar a {name}?",
   "confirmations.redraft.confirm": "Borrar y volver a borrador",
   "confirmations.redraft.message": "Estás seguro de que quieres borrar este estado y volverlo a borrador? Perderás todas las respuestas, impulsos y favoritos asociados a él, y las respuestas a la publicación original quedarán huérfanos.",
-  "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.reply.confirm": "Responder",
+  "confirmations.reply.message": "Responder ahora sobrescribirá el mensaje que está escribiendo. ¿Realmente quieres continuar?",
   "confirmations.unfollow.confirm": "Dejar de seguir",
   "confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?",
   "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.",
@@ -117,7 +117,7 @@
   "emoji_button.search_results": "Resultados de búsqueda",
   "emoji_button.symbols": "Símbolos",
   "emoji_button.travel": "Viajes y lugares",
-  "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_timeline": "¡No hay toot aquí!",
   "empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
   "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í.",
@@ -132,50 +132,49 @@
   "empty_column.lists": "No tienes ninguna lista. cuando crees una, se mostrará aquí.",
   "empty_column.mutes": "Aún no has silenciado a ningún usuario.",
   "empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.",
-  "empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo",
-  "error_boundary.it_crashed": "It crashed!",
+  "empty_column.public": "¡No hay nada aquí! Escribir algo públicamente, o seguir manualmente a personas de otras instancias para rellenarlo",
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rechazar",
   "getting_started.developers": "Desarrolladores",
-  "getting_started.directory": "Profile directory",
+  "getting_started.directory": "Directorio de perfiles",
   "getting_started.documentation": "Documentation",
   "getting_started.heading": "Primeros pasos",
   "getting_started.invite": "Invitar usuarios",
   "getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.",
   "getting_started.security": "Seguridad",
   "getting_started.terms": "Términos de servicio",
-  "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.column_header.tag_mode.all": "y {additional}",
+  "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 han encontrado sugerencias",
+  "hashtag.column_settings.select.placeholder": "Añadir etiquetas…",
+  "hashtag.column_settings.tag_mode.all": "Todos estos elementos",
+  "hashtag.column_settings.tag_mode.any": "Al menos uno de estos elementos",
+  "hashtag.column_settings.tag_mode.none": "Ninguno de estos elementos",
+  "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionales en esta columna",
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar retoots",
   "home.column_settings.show_replies": "Mostrar respuestas",
-  "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}}",
-  "introduction.federation.action": "Next",
+  "intervals.full.days": "{number, plural, one {# día} other {# días}}",
+  "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
+  "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
+  "introduction.federation.action": "Siguiente",
   "introduction.federation.federated.headline": "Federated",
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+  "introduction.federation.federated.text": "Los mensajes públicos de otras instancias del fediverso aparecerán en la historia pública global.",
   "introduction.federation.home.headline": "Home",
-  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+  "introduction.federation.home.text": "Los mensajes de las personas a las que sigues aparecerán en el hilo de inicio. Puedes rastrear a cualquiera en cualquier instancia!",
   "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
-  "introduction.interactions.action": "Finish tutorial!",
-  "introduction.interactions.favourite.headline": "Favourite",
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
-  "introduction.interactions.reblog.headline": "Boost",
-  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
-  "introduction.interactions.reply.headline": "Reply",
-  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
-  "introduction.welcome.headline": "First steps",
-  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
+  "introduction.federation.local.text": "Los mensajes públicos de personas en el mismo servidor que aparecerán en la historia pública local.",
+  "introduction.interactions.action": "Termina el tutorial!",
+  "introduction.interactions.favourite.headline": "Favoritos",
+  "introduction.interactions.favourite.text": "Puedes guardar un toot para más tarde, y hacer saber a su autor-ice que te gustó, promocionándolo.",
+  "introduction.interactions.reblog.headline": "Compartir de nuevo",
+  "introduction.interactions.reblog.text": "Puedes compartir los toots de otras personas con tus suscriptores si los vuelves a compartir.",
+  "introduction.interactions.reply.headline": "Responder",
+  "introduction.interactions.reply.text": "Puedes responder a los toots de otras personas y a los tuyos propios, los cuales te seguirán en una conversación.",
+  "introduction.welcome.action": "¡Vámonos!",
+  "introduction.welcome.headline": "Primeros pasos",
+  "introduction.welcome.text": "Bienvenidos al fediverso! En unos momentos, podrás enviar mensajes y hablar con tus amigos en una gran variedad de instancias. Pero esta instancia, {domain}, es especial - aloja tu perfil, así que recuerda su nombre.",
   "keyboard_shortcuts.back": "volver atrás",
   "keyboard_shortcuts.blocked": "abrir una lista de usuarios bloqueados",
   "keyboard_shortcuts.boost": "retootear",
@@ -214,7 +213,7 @@
   "lists.account.remove": "Quitar de lista",
   "lists.delete": "Delete list",
   "lists.edit": "Editar lista",
-  "lists.edit.submit": "Change title",
+  "lists.edit.submit": "Cambiar el título",
   "lists.new.create": "Añadir lista",
   "lists.new.title_placeholder": "Título de la nueva lista",
   "lists.search": "Buscar entre la gente a la que sigues",
@@ -248,32 +247,35 @@
   "notification.favourite": "{name} marcó tu estado como favorito",
   "notification.follow": "{name} te empezó a seguir",
   "notification.mention": "{name} te ha mencionado",
+  "notification.poll": "Una encuesta en la que ha participado ha finalizado",
   "notification.reblog": "{name} ha retooteado tu estado",
   "notifications.clear": "Limpiar notificaciones",
   "notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
   "notifications.column_settings.alert": "Notificaciones de escritorio",
   "notifications.column_settings.favourite": "Favoritos:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
-  "notifications.column_settings.filter_bar.show": "Show",
+  "notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías",
+  "notifications.column_settings.filter_bar.category": "Barra de filtro rápido",
+  "notifications.column_settings.filter_bar.show": "Mostrar",
   "notifications.column_settings.follow": "Nuevos seguidores:",
   "notifications.column_settings.mention": "Menciones:",
+  "notifications.column_settings.poll": "Resultados de la encuesta:",
   "notifications.column_settings.push": "Notificaciones push",
   "notifications.column_settings.reblog": "Retoots:",
   "notifications.column_settings.show": "Mostrar en columna",
   "notifications.column_settings.sound": "Reproducir sonido",
-  "notifications.filter.all": "All",
-  "notifications.filter.boosts": "Boosts",
-  "notifications.filter.favourites": "Favourites",
-  "notifications.filter.follows": "Follows",
-  "notifications.filter.mentions": "Mentions",
+  "notifications.filter.all": "Todo",
+  "notifications.filter.boosts": "Retoots",
+  "notifications.filter.favourites": "Favoritos",
+  "notifications.filter.follows": "Suscriptores",
+  "notifications.filter.mentions": "Menciones",
+  "notifications.filter.polls": "Resultados de la encuesta",
   "notifications.group": "{count} notificaciones",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll.closed": "Cerrado",
+  "poll.refresh": "Actualización",
+  "poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
+  "poll.vote": "Votar",
+  "poll_button.add_poll": "Crear una encuesta",
+  "poll_button.remove_poll": "Eliminar la encuesta",
   "privacy.change": "Ajustar privacidad",
   "privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
   "privacy.direct.short": "Directo",
@@ -293,7 +295,7 @@
   "reply_indicator.cancel": "Cancelar",
   "report.forward": "Reenviar a {target}",
   "report.forward_hint": "Esta cuenta es de otro servidor. ¿Enviar una copia anonimizada del informe allí también?",
-  "report.hint": "El informe se enviará a los moderadores de tu instancia. Puedes proporcionar una explicación de por qué informas sobre esta cuenta a continuación:",
+  "report.hint": "El informe será enviado a los moderadores de su jurisdicción. Usted puede explicar por qué está reportando la cuenta a continuación:",
   "report.placeholder": "Comentarios adicionales",
   "report.submit": "Publicar",
   "report.target": "Reportando",
@@ -308,13 +310,12 @@
   "search_results.hashtags": "Etiquetas",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
-  "standalone.public_title": "Un pequeño vistazo...",
-  "status.admin_account": "Open moderation interface for @{name}",
-  "status.admin_status": "Open this status in the moderation interface",
+  "status.admin_account": "Abrir la interfaz de moderación para @{name}",
+  "status.admin_status": "Abrir este estatuto en la interfaz de moderación",
   "status.block": "Block @{name}",
   "status.cancel_reblog_private": "Des-impulsar",
   "status.cannot_reblog": "Este toot no puede retootearse",
-  "status.copy": "Copy link to status",
+  "status.copy": "Copiar el enlace al piojo",
   "status.delete": "Borrar",
   "status.detailed_status": "Vista de conversación detallada",
   "status.direct": "Mensaje directo a @{name}",
@@ -330,7 +331,7 @@
   "status.open": "Expandir estado",
   "status.pin": "Fijar",
   "status.pinned": "Toot fijado",
-  "status.read_more": "Read more",
+  "status.read_more": "Para saber más",
   "status.reblog": "Retootear",
   "status.reblog_private": "Implusar a la audiencia original",
   "status.reblogged_by": "Retooteado por {name}",
@@ -346,29 +347,29 @@
   "status.show_less_all": "Mostrar menos para todo",
   "status.show_more": "Mostrar más",
   "status.show_more_all": "Mostrar más para todo",
-  "status.show_thread": "Show thread",
+  "status.show_thread": "Mostrar la conversación",
   "status.unmute_conversation": "Dejar de silenciar conversación",
   "status.unpin": "Dejar de fijar",
-  "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
+  "suggestions.dismiss": "Rechazar la sugerencia",
+  "suggestions.header": "Usted puede estar interesado en…",
   "tabs_bar.federated_timeline": "Federado",
   "tabs_bar.home": "Inicio",
   "tabs_bar.local_timeline": "Local",
   "tabs_bar.notifications": "Notificaciones",
   "tabs_bar.search": "Buscar",
-  "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",
-  "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
+  "time_remaining.days": "{number, plural, one {# dia} other {# dias}} restantes",
+  "time_remaining.hours": "{number, plural, one {# hora} other {# horas}} restantes",
+  "time_remaining.minutes": "{number, plural, one {# minuto} other {# minutos}} restantes",
+  "time_remaining.moments": "Unos momentos más",
+  "time_remaining.seconds": "{number, plural, one {# segundo} other {# segundos}} restantes",
+  "trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {personas}} discuten",
   "ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.",
   "upload_area.title": "Arrastra y suelta para subir",
   "upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
-  "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.limit": "Se ha excedido el tamaño máximo de envío de archivos.",
+  "upload_error.poll": "No se permite enviar archivos con las encuestas.",
   "upload_form.description": "Describir para los usuarios con dificultad visual",
-  "upload_form.focus": "Recortar",
+  "upload_form.focus": "Modificar la vista previa",
   "upload_form.undo": "Borrar",
   "upload_progress.label": "Subiendo…",
   "video.close": "Cerrar video",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 0915ee6cc..089f7e9ca 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Ez duzu erabiltzailerik mututu oraindik.",
   "empty_column.notifications": "Ez duzu jakinarazpenik oraindik. Jarri besteekin harremanetan elkarrizketa abiatzeko.",
   "empty_column.public": "Ez dago ezer hemen! Idatzi zerbait publikoki edo jarraitu eskuz beste zerbitzari batzuetako erabiltzaileak hau betetzen joateko",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Baimendu",
   "follow_request.reject": "Ukatu",
   "getting_started.developers": "Garatzaileak",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name}(e)k zure mezua gogoko du",
   "notification.follow": "{name}(e)k jarraitzen zaitu",
   "notification.mention": "{name}(e)k aipatu zaitu",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name}(e)k bultzada eman dio zure mezuari",
   "notifications.clear": "Garbitu jakinarazpenak",
   "notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Erakutsi",
   "notifications.column_settings.follow": "Jarraitzaile berriak:",
   "notifications.column_settings.mention": "Aipamenak:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push jakinarazpenak",
   "notifications.column_settings.reblog": "Bultzadak:",
   "notifications.column_settings.show": "Erakutsi zutabean",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Gogokoak",
   "notifications.filter.follows": "Jarraipenak",
   "notifications.filter.mentions": "Aipamenak",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} jakinarazpen",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Traolak",
   "search_results.statuses": "Toot-ak",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "Begiradatxo bat...",
   "status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea",
   "status.admin_status": "Ireki mezu hau moderazio interfazean",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index e4003d6a0..f1458ae48 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "حساب شما {locked} نیست. هر کسی می‌تواند پیگیر شما شود و نوشته‌های ویژهٔ پیگیران شما را ببیند.",
   "compose_form.lock_disclaimer.lock": "قفل",
   "compose_form.placeholder": "تازه چه خبر؟",
-  "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.add_option": "افزودن گزینه",
+  "compose_form.poll.duration": "مدت نظرسنجی",
+  "compose_form.poll.option_placeholder": "گزینهٔ {number}",
+  "compose_form.poll.remove_option": "حذف این گزینه",
   "compose_form.publish": "بوق",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "این تصویر به عنوان حساس علامت‌گذاری شده",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "شما هنوز هیچ کاربری را بی‌صدا نکرده‌اید.",
   "empty_column.notifications": "هنوز هیچ اعلانی ندارید. به نوشته‌های دیگران واکنش نشان دهید تا گفتگو آغاز شود.",
   "empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران سرورهای دیگر را پی بگیرید تا این‌جا پر شود",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "اجازه دهید",
   "follow_request.reject": "اجازه ندهید",
   "getting_started.developers": "برای برنامه‌نویسان",
@@ -156,9 +155,9 @@
   "home.column_settings.basic": "اصلی",
   "home.column_settings.show_reblogs": "نمایش بازبوق‌ها",
   "home.column_settings.show_replies": "نمایش پاسخ‌ها",
-  "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}}",
+  "intervals.full.days": "{number, plural, one {# روز} other {# روز}}",
+  "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}",
+  "intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}",
   "introduction.federation.action": "بعدی",
   "introduction.federation.federated.headline": "فهرست همهٔ سرورها",
   "introduction.federation.federated.text": "نوشته‌های عمومی سرورهای دیگر در این فهرست نمایش می‌یابند.",
@@ -248,6 +247,7 @@
   "notification.favourite": "‫{name}‬ نوشتهٔ شما را پسندید",
   "notification.follow": "‫{name}‬ پیگیر شما شد",
   "notification.mention": "‫{name}‬ از شما نام برد",
+  "notification.poll": "نظرسنجی‌ای که در آن رأی دادید به پایان رسیده است",
   "notification.reblog": "‫{name}‬ نوشتهٔ شما را بازبوقید",
   "notifications.clear": "پاک‌کردن اعلان‌ها",
   "notifications.clear_confirmation": "واقعاً می‌خواهید همهٔ اعلان‌هایتان را برای همیشه پاک کنید؟",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "نمایش",
   "notifications.column_settings.follow": "پیگیران تازه:",
   "notifications.column_settings.mention": "نام‌بردن‌ها:",
+  "notifications.column_settings.poll": "نتایج نظرسنجی:",
   "notifications.column_settings.push": "اعلان‌ها از سمت سرور",
   "notifications.column_settings.reblog": "بازبوق‌ها:",
   "notifications.column_settings.show": "نمایش در ستون",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "پسندیده‌ها",
   "notifications.filter.follows": "پیگیری‌ها",
   "notifications.filter.mentions": "گفتگوها",
+  "notifications.filter.polls": "نتایج نظرسنجی",
   "notifications.group": "{count} اعلان",
   "poll.closed": "پایان‌یافته",
   "poll.refresh": "به‌روزرسانی",
   "poll.total_votes": "{count, plural, one {# رأی} other {# رأی}}",
   "poll.vote": "رأی",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "افزودن نظرسنجی",
+  "poll_button.remove_poll": "حذف نظرسنجی",
   "privacy.change": "تنظیم حریم خصوصی نوشته‌ها",
   "privacy.direct.long": "تنها به کاربران نام‌برده‌شده نشان بده",
   "privacy.direct.short": "مستقیم",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "هشتگ‌ها",
   "search_results.statuses": "بوق‌ها",
   "search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}",
-  "standalone.public_title": "نگاهی به کاربران این سرور...",
   "status.admin_account": "محیط مدیریت مربوط به @{name} را باز کن",
   "status.admin_status": "این نوشته را در محیط مدیریت باز کن",
   "status.block": "مسدودسازی @{name}",
@@ -356,19 +357,19 @@
   "tabs_bar.local_timeline": "محلی",
   "tabs_bar.notifications": "اعلان‌ها",
   "tabs_bar.search": "جستجو",
-  "time_remaining.days": "{number, plural, one {# روز} other {# روز}} left",
-  "time_remaining.hours": "{number, plural, one {# ساعت} other {# ساعت}} left",
-  "time_remaining.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}} left",
+  "time_remaining.days": "{number, plural, one {# روز} other {# روز}} باقی مانده",
+  "time_remaining.hours": "{number, plural, one {# ساعت} other {# ساعت}} باقی مانده",
+  "time_remaining.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}} باقی مانده",
   "time_remaining.moments": "زمان باقی‌مانده",
-  "time_remaining.seconds": "{number, plural, one {# ثانیه} other {# ثانیه}} left",
+  "time_remaining.seconds": "{number, plural, one {# ثانیه} other {# ثانیه}} باقی مانده",
   "trends.count_by_accounts": "{count} {rawCount, plural, one {نفر نوشته است} other {نفر نوشته‌اند}}",
   "ui.beforeunload": "اگر از ماستدون خارج شوید پیش‌نویس شما پاک خواهد شد.",
   "upload_area.title": "برای بارگذاری به این‌جا بکشید",
   "upload_button.label": "افزودن عکس و ویدیو (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "از حد مجاز باگذاری فراتر رفتید.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "باگذاری پرونده در نظرسنجی‌ها ممکن نیست.",
   "upload_form.description": "نوشتهٔ توضیحی برای کم‌بینایان و نابینایان",
-  "upload_form.focus": "بریدن لبه‌ها",
+  "upload_form.focus": "تغییر پیش‌نمایش",
   "upload_form.undo": "حذف",
   "upload_progress.label": "بارگذاری...",
   "video.close": "بستن ویدیو",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 9949d741e..764bcf979 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.",
   "empty_column.notifications": "Sinulle ei ole vielä ilmoituksia. Aloita keskustelu juttelemalla muille.",
   "empty_column.public": "Täällä ei ole mitään! Saat sisältöä, kun kirjoitat jotain julkisesti tai käyt seuraamassa muiden instanssien käyttäjiä",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Valtuuta",
   "follow_request.reject": "Hylkää",
   "getting_started.developers": "Kehittäjille",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} tykkäsi tilastasi",
   "notification.follow": "{name} seurasi sinua",
   "notification.mention": "{name} mainitsi sinut",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} buustasi tilaasi",
   "notifications.clear": "Tyhjennä ilmoitukset",
   "notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Uudet seuraajat:",
   "notifications.column_settings.mention": "Maininnat:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push-ilmoitukset",
   "notifications.column_settings.reblog": "Buustit:",
   "notifications.column_settings.show": "Näytä sarakkeessa",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtagit",
   "search_results.statuses": "Tuuttaukset",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "Kurkistus sisälle...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Estä @{name}",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index b257a16b9..f97073967 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -1,5 +1,5 @@
 {
-  "account.add_or_remove_from_list": "Ajouter ou retirer des listes",
+  "account.add_or_remove_from_list": "Ajouter ou Retirer des listes",
   "account.badges.bot": "Bot",
   "account.block": "Bloquer @{name}",
   "account.block_domain": "Tout masquer venant de {domain}",
@@ -8,7 +8,7 @@
   "account.disclaimer_full": "Les données ci-dessous peuvent ne pas refléter ce profil dans sa totalité.",
   "account.domain_blocked": "Domaine caché",
   "account.edit_profile": "Modifier le profil",
-  "account.endorse": "Figure sur le profil",
+  "account.endorse": "Épingler sur le profil",
   "account.follow": "Suivre",
   "account.followers": "Abonné⋅e⋅s",
   "account.followers.empty": "Personne ne suit cet utilisateur·rice pour l’instant.",
@@ -16,14 +16,14 @@
   "account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.",
   "account.follows_you": "Vous suit",
   "account.hide_reblogs": "Masquer les partages de @{name}",
-  "account.link_verified_on": "La propriété de ce lien a été vérifiée le {date}",
-  "account.locked_info": "Ce compte est verrouillé. Son propriétaire approuve manuellement qui peut le ou la suivre.",
+  "account.link_verified_on": "La légitimité de ce lien a été vérifiée le {date}",
+  "account.locked_info": "Ce compte est verrouillé. Son propriétaire approuve manuellement qui peut le suivre.",
   "account.media": "Média",
   "account.mention": "Mentionner @{name}",
   "account.moved_to": "{name} a déménagé vers :",
   "account.mute": "Masquer @{name}",
   "account.mute_notifications": "Ignorer les notifications de @{name}",
-  "account.muted": "Silencé",
+  "account.muted": "En sourdine",
   "account.posts": "Pouets",
   "account.posts_with_replies": "Pouets et réponses",
   "account.report": "Signaler @{name}",
@@ -39,7 +39,7 @@
   "account.view_full_profile": "Afficher le profil complet",
   "alert.unexpected.message": "Une erreur inattendue s’est produite.",
   "alert.unexpected.title": "Oups !",
-  "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour pouvoir passer ceci, la prochaine fois",
+  "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour pouvoir passer ceci la prochaine fois",
   "bundle_column_error.body": "Une erreur s’est produite lors du chargement de ce composant.",
   "bundle_column_error.retry": "Réessayer",
   "bundle_column_error.title": "Erreur réseau",
@@ -67,16 +67,16 @@
   "column_header.unpin": "Retirer",
   "column_subheading.settings": "Paramètres",
   "community.column_settings.media_only": "Média uniquement",
-  "compose_form.direct_message_warning": "Ce pouet sera uniquement envoyé aux personnes mentionnées. Cependant, l’administration de votre instance et des instances réceptrices pourront inspecter ce message.",
+  "compose_form.direct_message_warning": "Ce pouet sera uniquement envoyé aux personnes mentionnées.",
   "compose_form.direct_message_warning_learn_more": "En savoir plus",
   "compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur \"non listé\". Seuls les pouets avec une visibilité \"publique\" peuvent être recherchés par hashtag.",
   "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos pouets privés.",
   "compose_form.lock_disclaimer.lock": "verrouillé",
   "compose_form.placeholder": "Qu’avez-vous en tête ?",
-  "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.add_option": "Ajouter une option",
+  "compose_form.poll.duration": "Durée du sondage",
+  "compose_form.poll.option_placeholder": "Option {number}",
+  "compose_form.poll.remove_option": "Retirer cette option",
   "compose_form.publish": "Pouet",
   "compose_form.publish_loud": "{publish} !",
   "compose_form.sensitive.marked": "Média marqué comme sensible",
@@ -90,9 +90,9 @@
   "confirmations.delete.confirm": "Supprimer",
   "confirmations.delete.message": "Confirmez-vous la suppression de ce pouet ?",
   "confirmations.delete_list.confirm": "Supprimer",
-  "confirmations.delete_list.message": "Êtes-vous sûr·e de vouloir supprimer définitivement cette liste ?",
+  "confirmations.delete_list.message": "Êtes-vous sûr·e de vouloir définitivement supprimer cette liste ?",
   "confirmations.domain_block.confirm": "Masquer le domaine entier",
-  "confirmations.domain_block.message": "Êtes-vous vraiment, vraiment sûr⋅e de vouloir bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.",
+  "confirmations.domain_block.message": "Êtes-vous vraiment, vraiment sûr⋅e de vouloir bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans vos fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.",
   "confirmations.mute.confirm": "Masquer",
   "confirmations.mute.message": "Confirmez-vous le masquage de {name} ?",
   "confirmations.redraft.confirm": "Effacer et ré-écrire",
@@ -103,15 +103,15 @@
   "confirmations.unfollow.message": "Voulez-vous arrêter de suivre {name} ?",
   "embed.instructions": "Intégrez ce statut à votre site en copiant le code ci-dessous.",
   "embed.preview": "Il apparaîtra comme cela :",
-  "emoji_button.activity": "Activités",
-  "emoji_button.custom": "Personnalisés",
+  "emoji_button.activity": "Activité",
+  "emoji_button.custom": "Personnalisé",
   "emoji_button.flags": "Drapeaux",
   "emoji_button.food": "Nourriture & Boisson",
   "emoji_button.label": "Insérer un émoji",
   "emoji_button.nature": "Nature",
   "emoji_button.not_found": "Pas d’émoji !! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "Objets",
-  "emoji_button.people": "Personnages",
+  "emoji_button.people": "Personnes",
   "emoji_button.recent": "Fréquemment utilisés",
   "emoji_button.search": "Recherche…",
   "emoji_button.search_results": "Résultats de la recherche",
@@ -122,7 +122,7 @@
   "empty_column.community": "Le fil public local est vide. Écrivez donc quelque chose pour le remplir !",
   "empty_column.direct": "Vous n’avez pas encore de messages directs. Lorsque vous en enverrez ou recevrez un, il s’affichera ici.",
   "empty_column.domain_blocks": "Il n’y a aucun domaine caché pour le moment.",
-  "empty_column.favourited_statuses": "Vous n’avez aucun pouet favoris pour le moment. Lorsque vous en mettrez un en favori, il apparaîtra ici.",
+  "empty_column.favourited_statuses": "Vous n’avez aucun pouet favori pour le moment. Lorsque vous en mettrez un en favori, il apparaîtra ici.",
   "empty_column.favourites": "Personne n’a encore mis ce pouet en favori. Lorsque quelqu’un le fera, il apparaîtra ici.",
   "empty_column.follow_requests": "Vous n’avez pas encore de demande de suivi. Lorsque vous en recevrez une, elle apparaîtra ici.",
   "empty_column.hashtag": "Il n’y a encore aucun contenu associé à ce hashtag.",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Vous n’avez pas encore mis d'utilisateur·rice·s en silence.",
   "empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres personnes pour débuter la conversation.",
   "empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des personnes d’autres instances pour remplir le fil public",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Accepter",
   "follow_request.reject": "Rejeter",
   "getting_started.developers": "Développeur·euse·s",
@@ -156,8 +155,8 @@
   "home.column_settings.basic": "Basique",
   "home.column_settings.show_reblogs": "Afficher les partages",
   "home.column_settings.show_replies": "Afficher les réponses",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+  "intervals.full.days": "{number, plural, one {# jour} other {# jours}}",
+  "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
   "introduction.federation.action": "Suivant",
   "introduction.federation.federated.headline": "Fil public global",
@@ -175,7 +174,7 @@
   "introduction.interactions.reply.text": "Vous pouvez répondre aux pouets d'autres personnes et à vos propres pouets, ce qui les enchaînera dans une conversation.",
   "introduction.welcome.action": "Allons-y !",
   "introduction.welcome.headline": "Premiers pas",
-  "introduction.welcome.text": "Bienvenue dans le fediverse ! Dans quelques instants, vous pourrez diffuser des messages et parler à vos amis sur une grande variété de serveurs. Mais ce serveur, {domain}, est spécial - il héberge votre profil, alors souvenez-vous de son nom.",
+  "introduction.welcome.text": "Bienvenue dans le fediverse ! Dans quelques instants, vous pourrez diffuser des messages et parler à vos amis sur une grande variété d'instances. Mais cette instance, {domain}, est spécial - elle héberge votre profil, alors souvenez-vous de son nom.",
   "keyboard_shortcuts.back": "pour revenir en arrière",
   "keyboard_shortcuts.blocked": "pour ouvrir une liste d’utilisateur·rice·s bloqué·e·s",
   "keyboard_shortcuts.boost": "pour partager",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} a ajouté à ses favoris :",
   "notification.follow": "{name} vous suit",
   "notification.mention": "{name} vous a mentionné :",
+  "notification.poll": "Un sondage auquel vous avez participé s'est terminé",
   "notification.reblog": "{name} a partagé votre statut :",
   "notifications.clear": "Nettoyer les notifications",
   "notifications.clear_confirmation": "Voulez-vous vraiment supprimer toutes vos notifications ?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Afficher",
   "notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e·s :",
   "notifications.column_settings.mention": "Mentions :",
+  "notifications.column_settings.poll": "Résultats du sondage :",
   "notifications.column_settings.push": "Notifications",
   "notifications.column_settings.reblog": "Partages :",
   "notifications.column_settings.show": "Afficher dans la colonne",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "Favoris",
   "notifications.filter.follows": "Abonné·e·s",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Résultats du sondage",
   "notifications.group": "{count} notifications",
   "poll.closed": "Fermé",
   "poll.refresh": "Actualiser",
   "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
   "poll.vote": "Voter",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Créer un sondage",
+  "poll_button.remove_poll": "Retirer le sondage",
   "privacy.change": "Ajuster la confidentialité du message",
   "privacy.direct.long": "N’envoyer qu’aux personnes mentionnées",
   "privacy.direct.short": "Direct",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Pouets",
   "search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
-  "standalone.public_title": "Un aperçu…",
   "status.admin_account": "Ouvrir l'interface de modération pour @{name}",
   "status.admin_status": "Ouvrir ce statut dans l'interface de modération",
   "status.block": "Bloquer @{name}",
@@ -366,7 +367,7 @@
   "upload_area.title": "Glissez et déposez pour envoyer",
   "upload_button.label": "Joindre un média (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Taille maximale d'envoi de fichier dépassée.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "L'envoi de fichiers n'est pas autorisé avec les sondages.",
   "upload_form.description": "Décrire pour les malvoyant·e·s",
   "upload_form.focus": "Modifier l’aperçu",
   "upload_form.undo": "Supprimer",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 83adc563f..768cb7a5c 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Non acalou ningunha usuaria polo de agora.",
   "empty_column.notifications": "Aínda non ten notificacións. Interactúe con outras para iniciar unha conversa.",
   "empty_column.public": "Nada por aquí! Escriba algo de xeito público, ou siga manualmente usuarias de outros servidores para ir enchéndoa",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rexeitar",
   "getting_started.developers": "Desenvolvedoras",
@@ -152,13 +151,13 @@
   "hashtag.column_settings.tag_mode.all": "Todos estos",
   "hashtag.column_settings.tag_mode.any": "Calquera de estos",
   "hashtag.column_settings.tag_mode.none": "Ningún de estos",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_toggle": "Incluír etiquetas adicionais para esta columna",
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar repeticións",
   "home.column_settings.show_replies": "Mostrar respostas",
   "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}}",
+  "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
   "introduction.federation.action": "Seguinte",
   "introduction.federation.federated.headline": "Federated",
   "introduction.federation.federated.text": "Publicacións públicas desde outros servidores do fediverso aparecerán na liña temporal federada.",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} marcou como favorito o seu estado",
   "notification.follow": "{name} está a seguila",
   "notification.mention": "{name} mencionoute",
+  "notification.poll": "Unha sondaxe na que votou xa rematou",
   "notification.reblog": "{name} promoveu o seu estado",
   "notifications.clear": "Limpar notificacións",
   "notifications.clear_confirmation": "Estás seguro de que queres limpar permanentemente todas as túas notificacións?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Mostrar",
   "notifications.column_settings.follow": "Novos seguidores:",
   "notifications.column_settings.mention": "Mencións:",
+  "notifications.column_settings.poll": "Resultados da sondaxe:",
   "notifications.column_settings.push": "Enviar notificacións",
   "notifications.column_settings.reblog": "Promocións:",
   "notifications.column_settings.show": "Mostrar en columna",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favoritos",
   "notifications.filter.follows": "Seguimentos",
   "notifications.filter.mentions": "Mencións",
+  "notifications.filter.polls": "Resultados da sondaxe",
   "notifications.group": "{count} notificacións",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Etiquetas",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count,plural,one {result} outros {results}}",
-  "standalone.public_title": "Ollada dentro...",
   "status.admin_account": "Abrir interface de moderación para @{name}",
   "status.admin_status": "Abrir este estado na interface de moderación",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 07d2a9c34..9e5cf84b1 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "אין התראות עדיין. יאללה, הגיע הזמן להתחיל להתערבב.",
   "empty_column.public": "אין פה כלום! כדי למלא את הטור הזה אפשר לכתוב משהו, או להתחיל לעקוב אחרי אנשים מקהילות אחרות",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "קבלה",
   "follow_request.reject": "דחיה",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "חצרוצך חובב על ידי {name}",
   "notification.follow": "{name} במעקב אחרייך",
   "notification.mention": "אוזכרת על ידי {name}",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "חצרוצך הודהד על ידי {name}",
   "notifications.clear": "הסרת התראות",
   "notifications.clear_confirmation": "להסיר את כל ההתראות? בטוח?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "עוקבים חדשים:",
   "notifications.column_settings.mention": "פניות:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "הודעות בדחיפה",
   "notifications.column_settings.reblog": "הדהודים:",
   "notifications.column_settings.show": "הצגה בטור",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {תוצאה} other {תוצאות}}",
-  "standalone.public_title": "הצצה פנימה...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 0312da592..fce6c7158 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "Još nemaš notifikacija. Komuniciraj sa drugima kako bi započeo razgovor.",
   "empty_column.public": "Ovdje nema ništa! Napiši nešto javno, ili ručno slijedi korisnike sa drugih instanci kako bi popunio",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autoriziraj",
   "follow_request.reject": "Odbij",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} je lajkao tvoj status",
   "notification.follow": "{name} te sada slijedi",
   "notification.mention": "{name} te je spomenuo",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} je podigao tvoj status",
   "notifications.clear": "Očisti notifikacije",
   "notifications.clear_confirmation": "Želiš li zaista obrisati sve svoje notifikacije?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Novi sljedbenici:",
   "notifications.column_settings.mention": "Spominjanja:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Boostovi:",
   "notifications.column_settings.show": "Prikaži u stupcu",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 20b21be73..73c7af2b5 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "Jelenleg nincsenek értesítései. Lépj kapcsolatba másokkal, hogy indítsd el a beszélgetést.",
   "empty_column.public": "Jelenleg semmi nincs itt! Írj valamit publikusan vagy kövess más szervereken levő felhasználókat, hogy megtöltsd",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Engedélyez",
   "follow_request.reject": "Visszautasít",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} kedvencnek jelölte az állapotod",
   "notification.follow": "{name} követ téged",
   "notification.mention": "{name} megemlített",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} rebloggolta az állapotod",
   "notifications.clear": "Értesítések törlése",
   "notifications.clear_confirmation": "Biztos benne, hogy véglegesen törölni akarja az összes értesítését?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Új követők:",
   "notifications.column_settings.mention": "Megemítéseim:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push értesítések",
   "notifications.column_settings.reblog": "Rebloggolások:",
   "notifications.column_settings.show": "Oszlopban mutatás",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "Betekintés...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index b96d9499e..12a987b3f 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "Ոչ մի ծանուցում դեռ չունես։ Բզիր մյուսներին՝ խոսակցությունը սկսելու համար։",
   "empty_column.public": "Այստեղ բան չկա՛։ Հրապարակային մի բան գրիր կամ հետեւիր այլ հանգույցներից էակների՝ այն լցնելու համար։",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Վավերացնել",
   "follow_request.reject": "Մերժել",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} հավանեց թութդ",
   "notification.follow": "{name} սկսեց հետեւել քեզ",
   "notification.mention": "{name} նշեց քեզ",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} տարածեց թութդ",
   "notifications.clear": "Մաքրել ծանուցումները",
   "notifications.clear_confirmation": "Վստա՞հ ես, որ ուզում ես մշտապես մաքրել քո բոլոր ծանուցումները։",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Նոր հետեւողներ՝",
   "notifications.column_settings.mention": "Նշումներ՝",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Հրելու ծանուցումներ",
   "notifications.column_settings.reblog": "Տարածածներից՝",
   "notifications.column_settings.show": "Ցուցադրել սյունում",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "Այս պահին…",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Արգելափակել @{name}֊ին",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index 2b00ece08..d6311be80 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "Anda tidak memiliki notifikasi apapun. Berinteraksi dengan orang lain untuk memulai percakapan.",
   "empty_column.public": "Tidak ada apapun disini! Tulis sesuatu, atau ikuti pengguna lain dari server lain untuk mengisi ini",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Izinkan",
   "follow_request.reject": "Tolak",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} menyukai status anda",
   "notification.follow": "{name} mengikuti anda",
   "notification.mention": "{name} mentioned you",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} mem-boost status anda",
   "notifications.clear": "Hapus notifikasi",
   "notifications.clear_confirmation": "Apa anda yakin hendak menghapus semua notifikasi anda?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Pengikut baru:",
   "notifications.column_settings.mention": "Balasan:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Boost:",
   "notifications.column_settings.show": "Tampilkan dalam kolom",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {hasil} other {hasil}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 7e0e5563c..a35c929e6 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "Tu havas ankore nula savigo. Komunikez kun altri por debutar la konverso.",
   "empty_column.public": "Esas nulo hike! Skribez ulo publike, o manuale sequez uzeri de altra instaluri por plenigar ol.",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Yurizar",
   "follow_request.reject": "Refuzar",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} favorizis tua mesajo",
   "notification.follow": "{name} sequeskis tu",
   "notification.mention": "{name} mencionis tu",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} repetis tua mesajo",
   "notifications.clear": "Efacar savigi",
   "notifications.clear_confirmation": "Ka tu esas certa, ke tu volas efacar omna tua savigi?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Nova sequanti:",
   "notifications.column_settings.mention": "Mencioni:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Repeti:",
   "notifications.column_settings.show": "Montrar en kolumno",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {rezulto} other {rezulti}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index e4cd96475..1f6af0574 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "Il tuo account non è {bloccato}. Chiunque può decidere di seguirti per vedere i tuoi post per soli seguaci.",
   "compose_form.lock_disclaimer.lock": "bloccato",
   "compose_form.placeholder": "A cosa stai pensando?",
-  "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.add_option": "Aggiungi un'opzione",
+  "compose_form.poll.duration": "Durata del sondaggio",
+  "compose_form.poll.option_placeholder": "Opzione {number}",
+  "compose_form.poll.remove_option": "Elimina questa opzione",
   "compose_form.publish": "Toot",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Questo media è contrassegnato come sensibile",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Non hai ancora silenziato nessun utente.",
   "empty_column.notifications": "Non hai ancora nessuna notifica. Interagisci con altri per iniziare conversazioni.",
   "empty_column.public": "Qui non c'è nulla! Scrivi qualcosa pubblicamente, o aggiungi utenti da altri server per riempire questo spazio",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autorizza",
   "follow_request.reject": "Rifiuta",
   "getting_started.developers": "Sviluppatori",
@@ -152,13 +151,13 @@
   "hashtag.column_settings.tag_mode.all": "Tutti questi",
   "hashtag.column_settings.tag_mode.any": "Uno o più di questi",
   "hashtag.column_settings.tag_mode.none": "Nessuno di questi",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_toggle": "Includi tag aggiuntivi in questa colonna",
   "home.column_settings.basic": "Semplice",
   "home.column_settings.show_reblogs": "Mostra post condivisi",
   "home.column_settings.show_replies": "Mostra risposte",
-  "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}}",
+  "intervals.full.days": "{number, plural, one {# giorno} other {# giorni}}",
+  "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}",
+  "intervals.full.minutes": "{number, plural, one {# minuto} other {# minuti}}",
   "introduction.federation.action": "Avanti",
   "introduction.federation.federated.headline": "Federated",
   "introduction.federation.federated.text": "I post pubblici provenienti da altri server del fediverse saranno mostrati nella timeline federata.",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} ha apprezzato il tuo post",
   "notification.follow": "{name} ha iniziato a seguirti",
   "notification.mention": "{name} ti ha menzionato",
+  "notification.poll": "Un sondaggio in cui hai votato è terminato",
   "notification.reblog": "{name} ha condiviso il tuo post",
   "notifications.clear": "Cancella notifiche",
   "notifications.clear_confirmation": "Vuoi davvero cancellare tutte le notifiche?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Mostra",
   "notifications.column_settings.follow": "Nuovi seguaci:",
   "notifications.column_settings.mention": "Menzioni:",
+  "notifications.column_settings.poll": "Risultati di sondaggi:",
   "notifications.column_settings.push": "Notifiche push",
   "notifications.column_settings.reblog": "Post condivisi:",
   "notifications.column_settings.show": "Mostra in colonna",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "Apprezzati",
   "notifications.filter.follows": "Seguaci",
   "notifications.filter.mentions": "Menzioni",
+  "notifications.filter.polls": "Risultati di sondaggi",
   "notifications.group": "{count} notifiche",
   "poll.closed": "Chiuso",
   "poll.refresh": "Aggiorna",
   "poll.total_votes": "{count, plural, one {# voto} other {# voti}}",
   "poll.vote": "Vota",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Crea un sondaggio",
+  "poll_button.remove_poll": "Elimina sondaggio",
   "privacy.change": "Modifica privacy del post",
   "privacy.direct.long": "Invia solo a utenti menzionati",
   "privacy.direct.short": "Diretto",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtag",
   "search_results.statuses": "Toot",
   "search_results.total": "{count} {count, plural, one {risultato} other {risultati}}",
-  "standalone.public_title": "Un'occhiata all'interno...",
   "status.admin_account": "Apri interfaccia di moderazione per @{name}",
   "status.admin_status": "Apri questo status nell'interfaccia di moderazione",
   "status.block": "Blocca @{name}",
@@ -366,7 +367,7 @@
   "upload_area.title": "Trascina per caricare",
   "upload_button.label": "Aggiungi file multimediale",
   "upload_error.limit": "Limite al caricamento di file superato.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "Nei sondaggi non è permesso il caricamento di file.",
   "upload_form.description": "Descrizione per utenti con disabilità visive",
   "upload_form.focus": "Modifica anteprima",
   "upload_form.undo": "Cancella",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index ca66fbf2a..c4ef1abb2 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -78,7 +78,7 @@
   "compose_form.lock_disclaimer.lock": "承認制",
   "compose_form.placeholder": "今なにしてる?",
   "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
+  "compose_form.poll.duration": "投票期間",
   "compose_form.poll.option_placeholder": "Choice {number}",
   "compose_form.poll.remove_option": "Remove this choice",
   "compose_form.publish": "トゥート",
@@ -161,7 +161,7 @@
   "home.column_settings.show_replies": "返信表示",
   "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}}",
+  "intervals.full.minutes": "{number}分",
   "introduction.federation.action": "次へ",
   "introduction.federation.federated.headline": "連合タイムライン",
   "introduction.federation.federated.text": "Fediverseの他のサーバーからの公開投稿は連合タイムラインに表示されます。",
@@ -252,6 +252,7 @@
   "notification.favourite": "{name}さんがあなたのトゥートをお気に入りに登録しました",
   "notification.follow": "{name}さんにフォローされました",
   "notification.mention": "{name}さんがあなたに返信しました",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name}さんがあなたのトゥートをブーストしました",
   "notifications.clear": "通知を消去",
   "notifications.clear_confirmation": "本当に通知を消去しますか?",
@@ -262,6 +263,7 @@
   "notifications.column_settings.filter_bar.show": "表示",
   "notifications.column_settings.follow": "新しいフォロワー:",
   "notifications.column_settings.mention": "返信:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "プッシュ通知",
   "notifications.column_settings.reblog": "ブースト:",
   "notifications.column_settings.show": "カラムに表示",
@@ -271,13 +273,14 @@
   "notifications.filter.favourites": "お気に入り",
   "notifications.filter.follows": "フォロー",
   "notifications.filter.mentions": "返信",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} 件の通知",
   "poll.closed": "終了",
   "poll.refresh": "更新",
-  "poll.total_votes": "{count, plural, one {# 票} other {# 票}}",
+  "poll.total_votes": "{count}票",
   "poll.vote": "Vote",
   "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.remove_poll": "投票を削除",
   "privacy.change": "公開範囲を変更",
   "privacy.direct.long": "メンションしたユーザーだけに公開",
   "privacy.direct.short": "ダイレクト",
@@ -359,19 +362,19 @@
   "tabs_bar.local_timeline": "ローカル",
   "tabs_bar.notifications": "通知",
   "tabs_bar.search": "検索",
-  "time_remaining.days": "残り {number, plural, one {# 日} other {# 日}}",
-  "time_remaining.hours": "残り {number, plural, one {# 時間} other {# 時間}}",
-  "time_remaining.minutes": "残り {number, plural, one {# 分} other {# 分}}",
+  "time_remaining.days": "残り{number}日",
+  "time_remaining.hours": "残り{number}時間",
+  "time_remaining.minutes": "残り{number}分",
   "time_remaining.moments": "まもなく終了",
-  "time_remaining.seconds": "残り {number, plural, one {# 秒} other {# 秒}}",
-  "trends.count_by_accounts": "{count} {rawCount, plural, one {人} other {人}} がトゥート",
+  "time_remaining.seconds": "残り{number}秒",
+  "trends.count_by_accounts": "{count}人がトゥート",
   "ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。",
   "upload_area.title": "ドラッグ&ドロップでアップロード",
   "upload_button.label": "メディアを追加 (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "アップロードできる上限を超えています。",
   "upload_error.poll": "File upload not allowed with polls.",
   "upload_form.description": "視覚障害者のための説明",
-  "upload_form.focus": "焦点",
+  "upload_form.focus": "プレビューを変更",
   "upload_form.undo": "削除",
   "upload_progress.label": "アップロード中...",
   "video.close": "動画を閉じる",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 21afe8df3..eeb7adc9b 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "ჯერ შეტყობინებები არ გაქვთ. საუბრის დასაწყებად იურთიერთქმედეთ სხვებთან.",
   "empty_column.public": "აქ არაფერია! შესავსებად, დაწერეთ რაიმე ღიად ან ხელით გაჰყევით მომხმარებლებს სხვა ინსტანციებისგან",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "ავტორიზაცია",
   "follow_request.reject": "უარყოფა",
   "getting_started.developers": "დეველოპერები",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name}-მა თქვენი სტატუსი აქცია ფავორიტად",
   "notification.follow": "{name} გამოგყვათ",
   "notification.mention": "{name}-მა გასახელათ",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name}-მა დაბუსტა თქვენი სტატუსი",
   "notifications.clear": "შეტყობინებების გასუფთავება",
   "notifications.clear_confirmation": "დარწმუნებული ხართ, გსურთ სამუდამოდ წაშალოთ ყველა თქვენი შეტყობინება?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "ახალი მიმდევრები:",
   "notifications.column_settings.mention": "ხსენებები:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "ფუშ შეტყობინებები",
   "notifications.column_settings.reblog": "ბუსტები:",
   "notifications.column_settings.show": "გამოჩნდეს სვეტში",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} შეტყობინება",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "ჰეშტეგები",
   "search_results.statuses": "ტუტები",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "შიდა ხედი...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "დაბლოკე @{name}",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index 034810fdd..f250812c7 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -55,7 +55,7 @@
   "column.home": "Басты бет",
   "column.lists": "Тізімдер",
   "column.mutes": "Үнсіз қолданушылар",
-  "column.notifications": "Notifications",
+  "column.notifications": "Ескертпелер",
   "column.pins": "Жабыстырылған жазбалар",
   "column.public": "Жаһандық желі",
   "column_back_button.label": "Артқа",
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "Аккаунтыңыз {locked} емес. Кез келген адам жазылып, сізді оқи алады.",
   "compose_form.lock_disclaimer.lock": "жабық",
   "compose_form.placeholder": "Не бөліскіңіз келеді?",
-  "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.add_option": "Жауап қос",
+  "compose_form.poll.duration": "Сауалнама мерзімі",
+  "compose_form.poll.option_placeholder": "Жауап {number}",
+  "compose_form.poll.remove_option": "Бұл жауапты өшір",
   "compose_form.publish": "Түрт",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Медиа нәзік деп белгіленген",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Әзірше ешқандай үнсізге қойылған қолданушы жоқ.",
   "empty_column.notifications": "Әзірше ешқандай ескертпе жоқ. Басқалармен араласуды бастаңыз және пікірталастарға қатысыңыз.",
   "empty_column.public": "Ештеңе жоқ бұл жерде! Өзіңіз бастап жазып көріңіз немесе басқаларға жазылыңыз",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Авторизация",
   "follow_request.reject": "Қабылдамау",
   "getting_started.developers": "Жасаушылар тобы",
@@ -156,8 +155,8 @@
   "home.column_settings.basic": "Негізгі",
   "home.column_settings.show_reblogs": "Бөлісулерді көрсету",
   "home.column_settings.show_replies": "Жауаптарды көрсету",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+  "intervals.full.days": "{number, plural, one {# күн} other {# күн}}",
+  "intervals.full.hours": "{number, plural, one {# сағат} other {# сағат}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
   "introduction.federation.action": "Келесі",
   "introduction.federation.federated.headline": "Жаһандық",
@@ -224,7 +223,7 @@
   "missing_indicator.label": "Табылмады",
   "missing_indicator.sublabel": "Бұл ресурс табылмады",
   "mute_modal.hide_notifications": "Бұл қолданушы ескертпелерін жасырамыз ба?",
-  "navigation_bar.apps": "Мобиль қосымшаларMobile apps",
+  "navigation_bar.apps": "Мобиль қосымшалар",
   "navigation_bar.blocks": "Бұғатталғандар",
   "navigation_bar.community_timeline": "Жергілікті желі",
   "navigation_bar.compose": "Жаңа жазба бастау",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} жазбаңызды таңдаулыға қосты",
   "notification.follow": "{name} сізге жазылды",
   "notification.mention": "{name} сізді атап өтті",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} жазбаңызды бөлісті",
   "notifications.clear": "Ескертпелерді тазарт",
   "notifications.clear_confirmation": "Шынымен барлық ескертпелерді өшіресіз бе?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Көрсету",
   "notifications.column_settings.follow": "Жаңа оқырмандар:",
   "notifications.column_settings.mention": "Аталымдар:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push ескертпелер",
   "notifications.column_settings.reblog": "Бөлісулер:",
   "notifications.column_settings.show": "Бағанда көрсет",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "Таңдаулылар",
   "notifications.filter.follows": "Жазылулар",
   "notifications.filter.mentions": "Аталымдар",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} ескертпе",
   "poll.closed": "Жабық",
   "poll.refresh": "Жаңарту",
   "poll.total_votes": "{count, plural, one {# дауыс} other {# дауыс}}",
   "poll.vote": "Дауыс беру",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Сауалнама қосу",
+  "poll_button.remove_poll": "Сауалнаманы өшіру",
   "privacy.change": "Құпиялылықты реттеу",
   "privacy.direct.long": "Аталған адамдарға ғана көрінетін жазба",
   "privacy.direct.short": "Тікелей",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Хэштегтер",
   "search_results.statuses": "Жазбалар",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "Ішкі көрініс...",
   "status.admin_account": "@{name} үшін модерация интерфейсін аш",
   "status.admin_status": "Бұл жазбаны модерация интерфейсінде аш",
   "status.block": "Бұғаттау @{name}",
@@ -366,7 +367,7 @@
   "upload_area.title": "Жүктеу үшін сүйреп әкеліңіз",
   "upload_button.label": "Медиа қосу (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Файл жүктеу лимитінен асып кеттіңіз.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "Сауалнамамен бірге файл жүктеуге болмайды",
   "upload_form.description": "Көру қабілеті нашар адамдар үшін сипаттаңыз",
   "upload_form.focus": "Превьюді өзгерту",
   "upload_form.undo": "Өшіру",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index cbd68d195..6a6e21e9f 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "이 계정은 {locked}로 설정 되어 있지 않습니다. 누구나 이 계정을 팔로우 할 수 있으며, 팔로워 공개의 포스팅을 볼 수 있습니다.",
   "compose_form.lock_disclaimer.lock": "비공개",
   "compose_form.placeholder": "지금 무엇을 하고 있나요?",
-  "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.add_option": "항목 추가",
+  "compose_form.poll.duration": "투표 기간",
+  "compose_form.poll.option_placeholder": "{number}번 항목",
+  "compose_form.poll.remove_option": "이 항목 삭제",
   "compose_form.publish": "툿",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "미디어가 열람주의로 설정되어 있습니다",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.",
   "empty_column.notifications": "아직 알림이 없습니다. 다른 사람과 대화를 시작해 보세요.",
   "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 서버의 유저를 팔로우 해서 채워보세요",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "허가",
   "follow_request.reject": "거부",
   "getting_started.developers": "개발자",
@@ -152,19 +151,19 @@
   "hashtag.column_settings.tag_mode.all": "모두",
   "hashtag.column_settings.tag_mode.any": "아무것이든",
   "hashtag.column_settings.tag_mode.none": "이것들을 제외하고",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_toggle": "추가 해시태그를 이 컬럼에 추가합니다",
   "home.column_settings.basic": "기본 설정",
   "home.column_settings.show_reblogs": "부스트 표시",
   "home.column_settings.show_replies": "답글 표시",
-  "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}}",
+  "intervals.full.days": "{number} 일",
+  "intervals.full.hours": "{number} 시간",
+  "intervals.full.minutes": "{number} 분",
   "introduction.federation.action": "다음",
-  "introduction.federation.federated.headline": "Federated",
+  "introduction.federation.federated.headline": "연합",
   "introduction.federation.federated.text": "페디버스의 다른 서버의 공개 게시물이 연합 타임라인에 나타납니다.",
-  "introduction.federation.home.headline": "Home",
+  "introduction.federation.home.headline": "홈",
   "introduction.federation.home.text": "당신이 팔로우 하고 있는 사람의 게시물이 홈 타임라인에 나타납니다. 어느 서버에 있는 사람이라도 팔로우가 가능합니다!",
-  "introduction.federation.local.headline": "Local",
+  "introduction.federation.local.headline": "로컬",
   "introduction.federation.local.text": "같은 서버에 있는 공개 게시물은 로컬 타임라인에 나타납니다.",
   "introduction.interactions.action": "튜토리얼 마치기!",
   "introduction.interactions.favourite.headline": "즐겨찾기",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name}님이 즐겨찾기 했습니다",
   "notification.follow": "{name}님이 나를 팔로우 했습니다",
   "notification.mention": "{name}님이 답글을 보냈습니다",
+  "notification.poll": "당신이 참여 한 투표가 종료되었습니다",
   "notification.reblog": "{name}님이 부스트 했습니다",
   "notifications.clear": "알림 지우기",
   "notifications.clear_confirmation": "정말로 알림을 삭제하시겠습니까?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "표시",
   "notifications.column_settings.follow": "새 팔로워:",
   "notifications.column_settings.mention": "답글:",
+  "notifications.column_settings.poll": "투표 결과:",
   "notifications.column_settings.push": "푸시 알림",
   "notifications.column_settings.reblog": "부스트:",
   "notifications.column_settings.show": "컬럼에 표시",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "즐겨찾기",
   "notifications.filter.follows": "팔로우",
   "notifications.filter.mentions": "멘션",
+  "notifications.filter.polls": "투표 결과",
   "notifications.group": "{count} 개의 알림",
   "poll.closed": "마감됨",
   "poll.refresh": "새로고침",
-  "poll.total_votes": "명 참여",
+  "poll.total_votes": "{count} 명 참여",
   "poll.vote": "투표",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "투표 추가",
+  "poll_button.remove_poll": "투표 삭제",
   "privacy.change": "포스트의 프라이버시 설정을 변경",
   "privacy.direct.long": "멘션한 사용자에게만 공개",
   "privacy.direct.short": "다이렉트",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "해시태그",
   "search_results.statuses": "툿",
   "search_results.total": "{count, number}건의 결과",
-  "standalone.public_title": "지금 이런 이야기를 하고 있습니다…",
   "status.admin_account": "@{name}에 대한 모더레이션 인터페이스 열기",
   "status.admin_status": "모더레이션 인터페이스에서 이 게시물 열기",
   "status.block": "@{name} 차단",
@@ -356,17 +357,17 @@
   "tabs_bar.local_timeline": "로컬",
   "tabs_bar.notifications": "알림",
   "tabs_bar.search": "검색",
-  "time_remaining.days": "일 남음",
-  "time_remaining.hours": "시간 남음",
-  "time_remaining.minutes": "분 남음",
+  "time_remaining.days": "{number} 일 남음",
+  "time_remaining.hours": "{number} 시간 남음",
+  "time_remaining.minutes": "{number} 분 남음",
   "time_remaining.moments": "남은 시간",
-  "time_remaining.seconds": "초 남음",
-  "trends.count_by_accounts": "{count} {rawCount, plural, one {명} other {명}} 의 사람들이 말하고 있습니다",
+  "time_remaining.seconds": "{number} 초 남음",
+  "trends.count_by_accounts": "{count} 명의 사람들이 말하고 있습니다",
   "ui.beforeunload": "지금 나가면 저장되지 않은 항목을 잃게 됩니다.",
   "upload_area.title": "드래그 & 드롭으로 업로드",
   "upload_button.label": "미디어 추가 (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "파일 업로드 제한에 도달했습니다.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "파일 업로드는 투표와 함께 첨부할 수 없습니다.",
   "upload_form.description": "시각장애인을 위한 설명",
   "upload_form.focus": "미리보기 변경",
   "upload_form.undo": "삭제",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index ab784d1b4..364d3efbf 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Tu neesi nevienu apklusinājis.",
   "empty_column.notifications": "Tev nav paziņojumu. Iesaisties sarunās ar citiem.",
   "empty_column.public": "Šeit nekā nav, tukšums! Ieraksti kaut ko publiski, vai uzmeklē un seko kādam no citas instances",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autorizēt",
   "follow_request.reject": "Noraidīt",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} favourited your status",
   "notification.follow": "{name} followed you",
   "notification.mention": "{name} mentioned you",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} boosted your status",
   "notifications.clear": "Clear notifications",
   "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "New followers:",
   "notifications.column_settings.mention": "Mentions:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Boosts:",
   "notifications.column_settings.show": "Show in column",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 9f8f797c8..d6016249d 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
   "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Authorize",
   "follow_request.reject": "Reject",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} favourited your status",
   "notification.follow": "{name} followed you",
   "notification.mention": "{name} mentioned you",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} boosted your status",
   "notifications.clear": "Clear notifications",
   "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "New followers:",
   "notifications.column_settings.mention": "Mentions:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Boosts:",
   "notifications.column_settings.show": "Show in column",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 84ae28037..c0724fbe6 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de toots zien die je alleen aan jouw volgers hebt gericht.",
   "compose_form.lock_disclaimer.lock": "besloten",
   "compose_form.placeholder": "Wat wil je kwijt?",
-  "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.add_option": "Keuze toevoegen",
+  "compose_form.poll.duration": "Duur van de poll",
+  "compose_form.poll.option_placeholder": "Keuze {number}",
+  "compose_form.poll.remove_option": "Deze keuze verwijderen",
   "compose_form.publish": "Toot",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Media is als gevoelig gemarkeerd",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Jij hebt nog geen gebruikers genegeerd.",
   "empty_column.notifications": "Je hebt nog geen meldingen. Begin met iemand een gesprek.",
   "empty_column.public": "Er is hier helemaal niks! Toot iets in het openbaar of volg mensen van andere servers om het te vullen",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Goedkeuren",
   "follow_request.reject": "Afkeuren",
   "getting_started.developers": "Ontwikkelaars",
@@ -156,9 +155,9 @@
   "home.column_settings.basic": "Algemeen",
   "home.column_settings.show_reblogs": "Boosts tonen",
   "home.column_settings.show_replies": "Reacties tonen",
-  "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}}",
+  "intervals.full.days": "{number, plural, one {# dag} other {# dagen}}",
+  "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}",
+  "intervals.full.minutes": "{number, plural, one {# minuut} other {# minuten}}",
   "introduction.federation.action": "Volgende",
   "introduction.federation.federated.headline": "Globaal",
   "introduction.federation.federated.text": "Openbare toots van mensen op andere servers in de fediverse verschijnen op de globale tijdlijn.",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} voegde jouw toot als favoriet toe",
   "notification.follow": "{name} volgt jou nu",
   "notification.mention": "{name} vermeldde jou",
+  "notification.poll": "Een poll waarin jij hebt gestemd is beëindigd",
   "notification.reblog": "{name} boostte jouw toot",
   "notifications.clear": "Meldingen verwijderen",
   "notifications.clear_confirmation": "Weet je het zeker dat je al jouw meldingen wilt verwijderen?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Tonen",
   "notifications.column_settings.follow": "Nieuwe volgers:",
   "notifications.column_settings.mention": "Vermeldingen:",
+  "notifications.column_settings.poll": "Pollresultaten:",
   "notifications.column_settings.push": "Pushmeldingen",
   "notifications.column_settings.reblog": "Boosts:",
   "notifications.column_settings.show": "In kolom tonen",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "Favorieten",
   "notifications.filter.follows": "Die jij volgt",
   "notifications.filter.mentions": "Vermeldingen",
+  "notifications.filter.polls": "Pollresultaten",
   "notifications.group": "{count} meldingen",
   "poll.closed": "Gesloten",
   "poll.refresh": "Vernieuwen",
   "poll.total_votes": "{count, plural, one {# stem} other {# stemmen}}",
   "poll.vote": "Stemmen",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Poll toevoegen",
+  "poll_button.remove_poll": "Poll verwijderen",
   "privacy.change": "Zichtbaarheid toot aanpassen",
   "privacy.direct.long": "Alleen aan vermelde gebruikers tonen",
   "privacy.direct.short": "Direct",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}",
-  "standalone.public_title": "Een kijkje binnenin...",
   "status.admin_account": "Moderatie-omgeving van @{name} openen",
   "status.admin_status": "Deze toot in de moderatie-omgeving openen",
   "status.block": "Blokkeer @{name}",
@@ -366,7 +367,7 @@
   "upload_area.title": "Hierin slepen om te uploaden",
   "upload_button.label": "Media toevoegen (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Uploadlimiet van bestand overschreden.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "Bestanden uploaden is met polls niet toegestaan.",
   "upload_form.description": "Omschrijf dit voor mensen met een visuele beperking",
   "upload_form.focus": "Voorvertoning aanpassen",
   "upload_form.undo": "Verwijderen",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 45a3d500f..8b6fbd018 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "Du har ingen varsler ennå. Kommuniser med andre for å begynne samtalen.",
   "empty_column.public": "Det er ingenting her! Skriv noe offentlig, eller følg brukere manuelt fra andre instanser for å fylle den opp",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autorisér",
   "follow_request.reject": "Avvis",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} likte din status",
   "notification.follow": "{name} fulgte deg",
   "notification.mention": "{name} nevnte deg",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} fremhevde din status",
   "notifications.clear": "Fjern varsler",
   "notifications.clear_confirmation": "Er du sikker på at du vil fjerne alle dine varsler permanent?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Nye følgere:",
   "notifications.column_settings.mention": "Nevnt:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push varsler",
   "notifications.column_settings.reblog": "Fremhevet:",
   "notifications.column_settings.show": "Vis i kolonne",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {resultat} other {resultater}}",
-  "standalone.public_title": "En titt inni...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index 625cd49f0..3dc502f9a 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo monde pòt vos sègre e veire los estatuts reservats als seguidors.",
   "compose_form.lock_disclaimer.lock": "clavat",
   "compose_form.placeholder": "A de qué pensatz ?",
-  "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.add_option": "Ajustar una causida",
+  "compose_form.poll.duration": "Durada del sondatge",
+  "compose_form.poll.option_placeholder": "Opcion {number}",
+  "compose_form.poll.remove_option": "Levar aquesta opcion",
   "compose_form.publish": "Tut",
   "compose_form.publish_loud": "{publish} !",
   "compose_form.sensitive.marked": "Lo mèdia es marcat coma sensible",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Encara avètz pas mes en silenci degun.",
   "empty_column.notifications": "Avètz pas encara de notificacions. Respondètz a qualqu’un per començar una conversacion.",
   "empty_column.public": "I a pas res aquí ! Escrivètz quicòm de public, o seguètz de personas d’autres servidors per garnir lo flux public",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Acceptar",
   "follow_request.reject": "Regetar",
   "getting_started.developers": "Desvelopaires",
@@ -156,9 +155,9 @@
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Mostrar los partatges",
   "home.column_settings.show_replies": "Mostrar las responsas",
-  "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}}",
+  "intervals.full.days": "{number, plural, one {# jorn} other {# jorns}}",
+  "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}",
+  "intervals.full.minutes": "{number, plural, one {# minuta} other {# minutas}}",
   "introduction.federation.action": "Seguent",
   "introduction.federation.federated.headline": "Federat",
   "introduction.federation.federated.text": "Los tuts publics d’autres servidors del fediverse apareisseràn dins lo flux d’actualitats.",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} a ajustat a sos favorits",
   "notification.follow": "{name} vos sèc",
   "notification.mention": "{name} vos a mencionat",
+  "notification.poll": "Avètz participat a un sondatge que ven de s’acabar",
   "notification.reblog": "{name} a partejat vòstre estatut",
   "notifications.clear": "Escafar",
   "notifications.clear_confirmation": "Volètz vertadièrament escafar totas vòstras las notificacions ?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Mostrar",
   "notifications.column_settings.follow": "Nòus seguidors :",
   "notifications.column_settings.mention": "Mencions :",
+  "notifications.column_settings.poll": "Resultats del sondatge :",
   "notifications.column_settings.push": "Notificacions",
   "notifications.column_settings.reblog": "Partatges :",
   "notifications.column_settings.show": "Mostrar dins la colomna",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "Favorits",
   "notifications.filter.follows": "Seguiments",
   "notifications.filter.mentions": "Mencions",
+  "notifications.filter.polls": "Resultats del sondatge",
   "notifications.group": "{count} notificacions",
   "poll.closed": "Tampat",
   "poll.refresh": "Actualizar",
   "poll.total_votes": "{count, plural, one {# vòte} other {# vòtes}}",
   "poll.vote": "Votar",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Ajustar un sondatge",
+  "poll_button.remove_poll": "Levar lo sondatge",
   "privacy.change": "Ajustar la confidencialitat del messatge",
   "privacy.direct.long": "Mostrar pas qu’a las personas mencionadas",
   "privacy.direct.short": "Dirècte",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Etiquetas",
   "search_results.statuses": "Tuts",
   "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}",
-  "standalone.public_title": "Una ulhada dedins…",
   "status.admin_account": "Dobrir l’interfàcia de moderacion per @{name}",
   "status.admin_status": "Dobrir aqueste estatut dins l’interfàcia de moderacion",
   "status.block": "Blocar @{name}",
@@ -366,7 +367,7 @@
   "upload_area.title": "Lisatz e depausatz per mandar",
   "upload_button.label": "Ajustar un mèdia (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Talha maximum pels mandadís subrepassada.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "Lo mandadís de fichièr es pas autorizat pels sondatges.",
   "upload_form.description": "Descripcion pels mal vesents",
   "upload_form.focus": "Modificar l’apercebut",
   "upload_form.undo": "Suprimir",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 9d7bef774..4659bfc60 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -137,7 +137,6 @@
   "empty_column.mutes": "Nie wyciszyłeś(-aś) jeszcze żadnego użytkownika.",
   "empty_column.notifications": "Nie masz żadnych powiadomień. Rozpocznij interakcje z innymi użytkownikami.",
   "empty_column.public": "Tu nic nie ma! Napisz coś publicznie, lub dodaj ludzi z innych serwerów, aby to wyświetlić",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autoryzuj",
   "follow_request.reject": "Odrzuć",
   "getting_started.developers": "Dla programistów",
@@ -156,7 +155,7 @@
   "hashtag.column_settings.tag_mode.all": "Wszystkie",
   "hashtag.column_settings.tag_mode.any": "Dowolne",
   "hashtag.column_settings.tag_mode.none": "Żadne",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_toggle": "Dołącz dodatkowe znaczniki dla tej kolumny",
   "home.column_settings.basic": "Podstawowe",
   "home.column_settings.show_reblogs": "Pokazuj podbicia",
   "home.column_settings.show_replies": "Pokazuj odpowiedzi",
@@ -253,6 +252,7 @@
   "notification.favourite": "{name} dodał(a) Twój wpis do ulubionych",
   "notification.follow": "{name} zaczął(-ęła) Cię śledzić",
   "notification.mention": "{name} wspomniał(a) o tobie",
+  "notification.poll": "Ankieta, w której głosowałeś zakończyła się",
   "notification.reblog": "{name} podbił(a) Twój wpis",
   "notifications.clear": "Wyczyść powiadomienia",
   "notifications.clear_confirmation": "Czy na pewno chcesz bezpowrotnie usunąć wszystkie powiadomienia?",
@@ -263,6 +263,7 @@
   "notifications.column_settings.filter_bar.show": "Pokaż",
   "notifications.column_settings.follow": "Nowi śledzący:",
   "notifications.column_settings.mention": "Wspomnienia:",
+  "notifications.column_settings.poll": "Wyniki sondaży:",
   "notifications.column_settings.push": "Powiadomienia push",
   "notifications.column_settings.reblog": "Podbicia:",
   "notifications.column_settings.show": "Pokaż w kolumnie",
@@ -272,6 +273,7 @@
   "notifications.filter.favourites": "Ulubione",
   "notifications.filter.follows": "Śledzenia",
   "notifications.filter.mentions": "Wspomienia",
+  "notifications.filter.polls": "Wyniki badania",
   "notifications.group": "{count, number} {count, plural, one {powiadomienie} few {powiadomienia} many {powiadomień} more {powiadomień}}",
   "poll.closed": "Zamknięte",
   "poll.refresh": "Odśwież",
@@ -313,7 +315,6 @@
   "search_results.hashtags": "Hashtagi",
   "search_results.statuses": "Wpisy",
   "search_results.total": "{count, number} {count, plural, one {wynik} few {wyniki} many {wyników} more {wyników}}",
-  "standalone.public_title": "Spojrzenie w głąb…",
   "status.admin_account": "Otwórz interfejs moderacyjny dla @{name}",
   "status.admin_status": "Otwórz ten wpis w interfejsie moderacyjnym",
   "status.block": "Zablokuj @{name}",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index 9562ce648..e3d04537f 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "A sua conta não está {locked}. Qualquer pessoa pode te seguir e visualizar postagens direcionadas a apenas seguidores.",
   "compose_form.lock_disclaimer.lock": "trancada",
   "compose_form.placeholder": "No que você está pensando?",
-  "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.add_option": "Adicionar uma opção",
+  "compose_form.poll.duration": "Duração da enquete",
+  "compose_form.poll.option_placeholder": "Opção {number}",
+  "compose_form.poll.remove_option": "Remover essa opção",
   "compose_form.publish": "Publicar",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Mídia está marcada como sensível",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Você ainda não silenciou nenhum usuário.",
   "empty_column.notifications": "Você ainda não possui notificações. Interaja com outros usuários para começar a conversar.",
   "empty_column.public": "Não há nada aqui! Escreva algo publicamente ou siga manualmente usuários de outras instâncias",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rejeitar",
   "getting_started.developers": "Desenvolvedores",
@@ -147,17 +146,17 @@
   "hashtag.column_header.tag_mode.all": "e {additional}",
   "hashtag.column_header.tag_mode.any": "ou {additional}",
   "hashtag.column_header.tag_mode.none": "sem {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+  "hashtag.column_settings.select.no_options_message": "Nenhuma sugestão encontrada",
+  "hashtag.column_settings.select.placeholder": "Adicione as hashtags…",
   "hashtag.column_settings.tag_mode.all": "Todas essas",
   "hashtag.column_settings.tag_mode.any": "Qualquer uma dessas",
   "hashtag.column_settings.tag_mode.none": "Nenhuma dessas",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_toggle": "Incluir outras hashtags nessa coluna",
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar compartilhamentos",
   "home.column_settings.show_replies": "Mostrar as respostas",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+  "intervals.full.days": "{number, plural, one {# dia} other {# dias}}",
+  "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
   "introduction.federation.action": "Próximo",
   "introduction.federation.federated.headline": "Federated",
@@ -214,7 +213,7 @@
   "lists.account.remove": "Remover da lista",
   "lists.delete": "Delete list",
   "lists.edit": "Editar lista",
-  "lists.edit.submit": "Change title",
+  "lists.edit.submit": "Mudar o título",
   "lists.new.create": "Adicionar lista",
   "lists.new.title_placeholder": "Novo título da lista",
   "lists.search": "Procurar entre as pessoas que você segue",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} adicionou a sua postagem aos favoritos",
   "notification.follow": "{name} te seguiu",
   "notification.mention": "{name} te mencionou",
+  "notification.poll": "Uma enquete em que você votou chegou ao fim",
   "notification.reblog": "{name} compartilhou a sua postagem",
   "notifications.clear": "Limpar notificações",
   "notifications.clear_confirmation": "Você tem certeza de que quer limpar todas as suas notificações permanentemente?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Mostrar",
   "notifications.column_settings.follow": "Novos seguidores:",
   "notifications.column_settings.mention": "Menções:",
+  "notifications.column_settings.poll": "Resultados da enquete:",
   "notifications.column_settings.push": "Enviar notificações",
   "notifications.column_settings.reblog": "Compartilhamento:",
   "notifications.column_settings.show": "Mostrar nas colunas",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "Favoritos",
   "notifications.filter.follows": "Seguidores",
   "notifications.filter.mentions": "Menções",
+  "notifications.filter.polls": "Resultados da enquete",
   "notifications.group": "{count} notificações",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+  "poll.closed": "Fechada",
+  "poll.refresh": "Atualizar",
+  "poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
   "poll.vote": "Votar",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Adicionar uma enquete",
+  "poll_button.remove_poll": "Remover enquete",
   "privacy.change": "Ajustar a privacidade da mensagem",
   "privacy.direct.long": "Apenas para usuários mencionados",
   "privacy.direct.short": "Direta",
@@ -308,13 +310,12 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
-  "standalone.public_title": "Dê uma espiada...",
   "status.admin_account": "Abrir interface de moderação para @{name}",
   "status.admin_status": "Abrir esse status na interface de moderação",
   "status.block": "Block @{name}",
   "status.cancel_reblog_private": "Desfazer compartilhamento",
   "status.cannot_reblog": "Esta postagem não pode ser compartilhada",
-  "status.copy": "Copy link to status",
+  "status.copy": "Copiar o link para o status",
   "status.delete": "Excluir",
   "status.detailed_status": "Visão detalhada da conversa",
   "status.direct": "Enviar mensagem direta a @{name}",
@@ -356,17 +357,17 @@
   "tabs_bar.local_timeline": "Local",
   "tabs_bar.notifications": "Notificações",
   "tabs_bar.search": "Buscar",
-  "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",
+  "time_remaining.days": "{number, plural, one {# day} other {# days}} restantes",
+  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} restantes",
+  "time_remaining.minutes": "{number, plural, one {# minuto} other {# minutos}}restantes",
+  "time_remaining.moments": "Momentos restantes",
+  "time_remaining.seconds": "{number, plural, one {# segundo} other {# segundos}} restantes",
   "trends.count_by_accounts": "{count} {rawCount, plural, one {pessoa} other {pessoas}} falando sobre",
   "ui.beforeunload": "Seu rascunho será perdido se você sair do Mastodon.",
   "upload_area.title": "Arraste e solte para enviar",
   "upload_button.label": "Adicionar mídia (JPEG, PNG, GIF, WebM, MP4, MOV)",
-  "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.limit": "Limite de envio de arquivos excedido.",
+  "upload_error.poll": "Envio de arquivos não é permitido com enquetes.",
   "upload_form.description": "Descreva a imagem para deficientes visuais",
   "upload_form.focus": "Ajustar foco",
   "upload_form.undo": "Remover",
diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json
index fa2ade697..baa12b1d1 100644
--- a/app/javascript/mastodon/locales/pt.json
+++ b/app/javascript/mastodon/locales/pt.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "A tua conta não está {locked}. Qualquer pessoa pode seguir-te e ver as publicações direcionadas apenas a seguidores.",
   "compose_form.lock_disclaimer.lock": "fechada",
   "compose_form.placeholder": "Em que estás a pensar?",
-  "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.add_option": "Adicionar uma opção",
+  "compose_form.poll.duration": "Duração do inquérito",
+  "compose_form.poll.option_placeholder": "Opção {number}",
+  "compose_form.poll.remove_option": "Remover esta opção",
   "compose_form.publish": "Publicar",
   "compose_form.publish_loud": "{publicar}!",
   "compose_form.sensitive.marked": "Media marcado como sensível",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Ainda não silenciaste qualquer utilizador.",
   "empty_column.notifications": "Não tens notificações. Interage com outros utilizadores para iniciar uma conversa.",
   "empty_column.public": "Não há nada aqui! Escreve algo publicamente ou segue outros utilizadores para veres aqui os conteúdos públicos",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rejeitar",
   "getting_started.developers": "Responsáveis pelo desenvolvimento",
@@ -156,9 +155,9 @@
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar as partilhas",
   "home.column_settings.show_replies": "Mostrar as respostas",
-  "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}}",
+  "intervals.full.days": "{number, plural, one {# día} other {# días}}",
+  "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
+  "intervals.full.minutes": "{number, plural, one {# minuta} other {# minutas}}",
   "introduction.federation.action": "Seguinte",
   "introduction.federation.federated.headline": "Federated",
   "introduction.federation.federated.text": "Publicações públicas de outros servidores do fediverse aparecerão na cronologia federativa.",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} adicionou o teu post aos favoritos",
   "notification.follow": "{name} seguiu-te",
   "notification.mention": "{name} mencionou-te",
+  "notification.poll": "Um inquérito no qual você participou terminou",
   "notification.reblog": "{name} partilhou o teu post",
   "notifications.clear": "Limpar notificações",
   "notifications.clear_confirmation": "Queres mesmo limpar todas as notificações?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Mostrar",
   "notifications.column_settings.follow": "Novos seguidores:",
   "notifications.column_settings.mention": "Menções:",
+  "notifications.column_settings.poll": "Resultados do inquérito:",
   "notifications.column_settings.push": "Notificações Push",
   "notifications.column_settings.reblog": "Partilhas:",
   "notifications.column_settings.show": "Mostrar nas colunas",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "Favoritas",
   "notifications.filter.follows": "Seguimento",
   "notifications.filter.mentions": "Referências",
+  "notifications.filter.polls": "Resultados do inquérito",
   "notifications.group": "{count} notificações",
   "poll.closed": "Fechado",
   "poll.refresh": "Recarregar",
   "poll.total_votes": "{contar, plural, um {# vote} outro {# votes}}",
   "poll.vote": "Votar",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Criar um questionário",
+  "poll_button.remove_poll": "Excluir o questionário",
   "privacy.change": "Ajustar a privacidade da mensagem",
   "privacy.direct.long": "Apenas para utilizadores mencionados",
   "privacy.direct.short": "Directo",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Publicações",
   "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
-  "standalone.public_title": "Espreitar lá dentro...",
   "status.admin_account": "Abrir a interface de moderação para @{name}",
   "status.admin_status": "Abrir esta publicação na interface de moderação",
   "status.block": "Block @{name}",
@@ -366,7 +367,7 @@
   "upload_area.title": "Arraste e solte para enviar",
   "upload_button.label": "Adicionar media",
   "upload_error.limit": "Limite máximo do ficheiro a carregar excedido.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "Não se permite enviar arquivos com as pesquisas.",
   "upload_form.description": "Descrição da imagem para pessoas com dificuldades visuais",
   "upload_form.focus": "Alterar previsualização",
   "upload_form.undo": "Apagar",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 071fbb507..add90e9d8 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Nu ai oprit nici un utilizator incă.",
   "empty_column.notifications": "Nu ai nici o notificare încă. Interacționează cu alții pentru a începe o conversație.",
   "empty_column.public": "Nu este nimci aici încă! Scrie ceva public, sau urmărește alți utilizatori din alte instanțe pentru a porni fluxul",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autorizează",
   "follow_request.reject": "Respinge",
   "getting_started.developers": "Dezvoltatori",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} a adăugat statusul tău la favorite",
   "notification.follow": "{name} te urmărește",
   "notification.mention": "{name} te-a menționat",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} a redistribuit postarea ta",
   "notifications.clear": "Șterge notificările",
   "notifications.clear_confirmation": "Ești sigur că vrei să ștergi toate notificările?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Arată",
   "notifications.column_settings.follow": "Noi urmăritori:",
   "notifications.column_settings.mention": "Mențiuni:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Notificări push",
   "notifications.column_settings.reblog": "Redistribuite:",
   "notifications.column_settings.show": "Arată în coloană",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favorite",
   "notifications.filter.follows": "Urmărește",
   "notifications.filter.mentions": "Menționări",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notificări",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtaguri",
   "search_results.statuses": "Postări",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "Se întâmplă acum...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Blochează @{name}",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 1e149c470..6e8d8aa8e 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -1,5 +1,5 @@
 {
-  "account.add_or_remove_from_list": "Add or Remove from lists",
+  "account.add_or_remove_from_list": "Добавить или удалить из списков",
   "account.badges.bot": "Бот",
   "account.block": "Блокировать",
   "account.block_domain": "Блокировать все с {domain}",
@@ -15,16 +15,16 @@
   "account.follows": "Подписки",
   "account.follows.empty": "Этот пользователь ни на кого не подписан.",
   "account.follows_you": "Подписан(а) на Вас",
-  "account.hide_reblogs": "Скрыть продвижения от @{name}",
-  "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.hide_reblogs": "Скрыть продвижения",
+  "account.link_verified_on": "Владелец данной ссылки был проверен {date}",
+  "account.locked_info": "Статус конфиденциальности этой учетной записи заблокирован. Владелец вручную проверяет, кто может следить за ними.",
   "account.media": "Медиа",
   "account.mention": "Упомянуть",
   "account.moved_to": "Ищите {name} здесь:",
   "account.mute": "Заглушить",
   "account.mute_notifications": "Скрыть уведомления от @{name}",
   "account.muted": "Приглушён",
-  "account.posts": "Посты",
+  "account.posts": "Тутс",
   "account.posts_with_replies": "Посты и ответы",
   "account.report": "Пожаловаться",
   "account.requested": "Ожидает подтверждения",
@@ -34,7 +34,7 @@
   "account.unblock_domain": "Разблокировать {domain}",
   "account.unendorse": "Не рекомендовать в профиле",
   "account.unfollow": "Отписаться",
-  "account.unmute": "Снять глушение",
+  "account.unmute": "Показывать @{name}",
   "account.unmute_notifications": "Показывать уведомления от @{name}",
   "account.view_full_profile": "Показать полный профиль",
   "alert.unexpected.message": "Что-то пошло не так.",
@@ -67,16 +67,16 @@
   "column_header.unpin": "Открепить",
   "column_subheading.settings": "Настройки",
   "community.column_settings.media_only": "Только с медиа",
-  "compose_form.direct_message_warning": "Этот статус будет виден только упомянутым пользователям.",
+  "compose_form.direct_message_warning": "Этот зуб будет отправлен только указанным пользователям.",
   "compose_form.direct_message_warning_learn_more": "Узнать больше",
   "compose_form.hashtag_warning": "Этот пост не будет показывается в поиске по хэштегу, т.к. он непубличный. Только публичные посты можно найти в поиске по хэштегу.",
   "compose_form.lock_disclaimer": "Ваш аккаунт не {locked}. Любой человек может подписаться на Вас и просматривать посты для подписчиков.",
   "compose_form.lock_disclaimer.lock": "закрыт",
-  "compose_form.placeholder": "О чем Вы думаете?",
-  "compose_form.poll.add_option": "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.placeholder": "Что у тебя на уме?",
+  "compose_form.poll.add_option": "Добавить выбор",
+  "compose_form.poll.duration": "Продолжительность опроса",
+  "compose_form.poll.option_placeholder": "Выбор {number}",
+  "compose_form.poll.remove_option": "Удалить этот выбор",
   "compose_form.publish": "Трубить",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Медиафайлы не отмечены как чувствительные",
@@ -92,13 +92,13 @@
   "confirmations.delete_list.confirm": "Удалить",
   "confirmations.delete_list.message": "Вы действительно хотите навсегда удалить этот список?",
   "confirmations.domain_block.confirm": "Блокировать весь домен",
-  "confirmations.domain_block.message": "Вы на самом деле уверены, что хотите блокировать весь {domain}? В большинстве случаев нескольких отдельных блокировок или глушений достаточно.",
+  "confirmations.domain_block.message": "Ты действительно, действительно уверен, что хочешь заблокировать весь домен? В большинстве случаев достаточно и предпочтительно несколько направленных блоков или глушителей. Вы не увидите содержимое этого домена ни в каких публичных временных рамках, ни в ваших уведомлениях. Ваши последователи из этого домена будут удалены.",
   "confirmations.mute.confirm": "Заглушить",
   "confirmations.mute.message": "Вы уверены, что хотите заглушить {name}?",
   "confirmations.redraft.confirm": "Удалить и исправить",
   "confirmations.redraft.message": "Вы уверены, что хотите удалить этот статус и превратить в черновик? Вы потеряете все ответы, продвижения и отметки 'нравится' к нему.",
-  "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.reply.confirm": "Ответить",
+  "confirmations.reply.message": "Ответ сейчас перезапишет сообщение, которое вы в данный момент создаете. Ты уверен, что хочешь продолжить?",
   "confirmations.unfollow.confirm": "Отписаться",
   "confirmations.unfollow.message": "Вы уверены, что хотите отписаться от {name}?",
   "embed.instructions": "Встройте этот статус на Вашем сайте, скопировав код внизу.",
@@ -117,7 +117,7 @@
   "emoji_button.search_results": "Результаты поиска",
   "emoji_button.symbols": "Символы",
   "emoji_button.travel": "Путешествия",
-  "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_timeline": "Никаких сапогов!",
   "empty_column.blocks": "Вы ещё никого не заблокировали.",
   "empty_column.community": "Локальная лента пуста. Напишите что-нибудь, чтобы разогреть народ!",
   "empty_column.direct": "У Вас пока нет личных сообщений. Когда Вы начнёте их отправлять или получать, они появятся здесь.",
@@ -132,50 +132,49 @@
   "empty_column.lists": "У Вас ещё нет списков. Все созданные Вами списки будут показаны здесь.",
   "empty_column.mutes": "Вы ещё никого не заглушили.",
   "empty_column.notifications": "У Вас еще нет уведомлений. Заведите знакомство с другими пользователями, чтобы начать разговор.",
-  "empty_column.public": "Здесь ничего нет! Опубликуйте что-нибудь или подпишитесь на пользователей с других узлов, чтобы заполнить ленту.",
-  "error_boundary.it_crashed": "It crashed!",
+  "empty_column.public": "Здесь ничего нет! Напишите что-нибудь публично или вручную следите за пользователями с других серверов, чтобы заполнить его",
   "follow_request.authorize": "Авторизовать",
   "follow_request.reject": "Отказать",
   "getting_started.developers": "Для разработчиков",
-  "getting_started.directory": "Profile directory",
+  "getting_started.directory": "Каталог профиля",
   "getting_started.documentation": "Документация",
   "getting_started.heading": "Добро пожаловать",
   "getting_started.invite": "Пригласить людей",
   "getting_started.open_source_notice": "Mastodon - сервис с открытым исходным кодом. Вы можете помочь проекту или сообщить о проблемах на GitHub по адресу {github}.",
   "getting_started.security": "Безопасность",
   "getting_started.terms": "Условия использования",
-  "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.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.tag_mode.all": "Все это",
+  "hashtag.column_settings.tag_mode.any": "Что-нибудь из этого",
+  "hashtag.column_settings.tag_mode.none": "Ничего из этого",
+  "hashtag.column_settings.tag_toggle": "Включить дополнительные теги для этого столбца",
   "home.column_settings.basic": "Основные",
   "home.column_settings.show_reblogs": "Показывать продвижения",
   "home.column_settings.show_replies": "Показывать ответы",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+  "intervals.full.days": "{number, plural, one {# дни} other {# день}}",
+  "intervals.full.hours": "{number, plural, one {# час} other {# часы}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
-  "introduction.federation.action": "Next",
+  "introduction.federation.action": "Следующий",
   "introduction.federation.federated.headline": "Federated",
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+  "introduction.federation.federated.text": "Публичные посты с других серверов федерации будут отображаться на шкале времени федерации.",
   "introduction.federation.home.headline": "Home",
-  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+  "introduction.federation.home.text": "Сообщения от людей, за которыми вы следите, будут появляться в вашем домашнем корме. Вы можете следовать за любым на любом сервере!",
   "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
-  "introduction.interactions.action": "Finish tutorial!",
-  "introduction.interactions.favourite.headline": "Favourite",
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
-  "introduction.interactions.reblog.headline": "Boost",
-  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
-  "introduction.interactions.reply.headline": "Reply",
-  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
-  "introduction.welcome.headline": "First steps",
-  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
+  "introduction.federation.local.text": "Публичные сообщения от людей на том же сервере, что и вы, будут отображаться на локальной шкале времени.",
+  "introduction.interactions.action": "Закончи урок!",
+  "introduction.interactions.favourite.headline": "Любимый",
+  "introduction.interactions.favourite.text": "Вы можете оставить зуб на потом, и дать автору понять, что он вам понравился, отдавая предпочтение.",
+  "introduction.interactions.reblog.headline": "Ускорение",
+  "introduction.interactions.reblog.text": "Вы можете поделиться с другими людьми чересчур с вашими последователями, повышая их.",
+  "introduction.interactions.reply.headline": "Ответить",
+  "introduction.interactions.reply.text": "Вы можете ответить на чужие и свои собственные сигналы, которые будут связывать их в цепь в разговоре.",
+  "introduction.welcome.action": "Пошли!",
+  "introduction.welcome.headline": "Первые шаги",
+  "introduction.welcome.text": "Добро пожаловать во вселенную! Через несколько минут вы сможете транслировать сообщения и общаться со своими друзьями на различных серверах. Но этот сервер, {домен}, является специальным - он содержит ваш профиль, так что запомните его имя.",
   "keyboard_shortcuts.back": "перейти назад",
   "keyboard_shortcuts.blocked": "чтобы открыть список заблокированных",
   "keyboard_shortcuts.boost": "продвинуть пост",
@@ -214,17 +213,17 @@
   "lists.account.remove": "Убрать из списка",
   "lists.delete": "Удалить список",
   "lists.edit": "Изменить список",
-  "lists.edit.submit": "Change title",
+  "lists.edit.submit": "Изменить название",
   "lists.new.create": "Новый список",
   "lists.new.title_placeholder": "Заголовок списка",
   "lists.search": "Искать из ваших подписок",
   "lists.subheading": "Ваши списки",
-  "loading_indicator.label": "Загрузка...",
+  "loading_indicator.label": "Загрузка…",
   "media_gallery.toggle_visible": "Показать/скрыть",
   "missing_indicator.label": "Не найдено",
   "missing_indicator.sublabel": "Запрашиваемый ресурс не найден",
   "mute_modal.hide_notifications": "Убрать уведомления от этого пользователя?",
-  "navigation_bar.apps": "Mobile apps",
+  "navigation_bar.apps": "Мобильные приложения",
   "navigation_bar.blocks": "Список блокировки",
   "navigation_bar.community_timeline": "Локальная лента",
   "navigation_bar.compose": "Создать новый статус",
@@ -235,8 +234,8 @@
   "navigation_bar.favourites": "Понравившееся",
   "navigation_bar.filters": "Заглушенные слова",
   "navigation_bar.follow_requests": "Запросы на подписку",
-  "navigation_bar.info": "Об узле",
-  "navigation_bar.keyboard_shortcuts": "Сочетания клавиш",
+  "navigation_bar.info": "Об этом сервере",
+  "navigation_bar.keyboard_shortcuts": "Горячие клавиши",
   "navigation_bar.lists": "Списки",
   "navigation_bar.logout": "Выйти",
   "navigation_bar.mutes": "Список глушения",
@@ -248,32 +247,35 @@
   "notification.favourite": "{name} понравился Ваш статус",
   "notification.follow": "{name} подписался(-лась) на Вас",
   "notification.mention": "{name} упомянул(а) Вас",
+  "notification.poll": "Опрос, за который вы проголосовали, закончился",
   "notification.reblog": "{name} продвинул(а) Ваш статус",
   "notifications.clear": "Очистить уведомления",
   "notifications.clear_confirmation": "Вы уверены, что хотите очистить все уведомления?",
   "notifications.column_settings.alert": "Десктопные уведомления",
   "notifications.column_settings.favourite": "Нравится:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
-  "notifications.column_settings.filter_bar.show": "Show",
+  "notifications.column_settings.filter_bar.advanced": "Показать все категории",
+  "notifications.column_settings.filter_bar.category": "Быстрая панель фильтрации",
+  "notifications.column_settings.filter_bar.show": "Показать",
   "notifications.column_settings.follow": "Новые подписчики:",
   "notifications.column_settings.mention": "Упоминания:",
+  "notifications.column_settings.poll": "Результаты опроса:",
   "notifications.column_settings.push": "Push-уведомления",
   "notifications.column_settings.reblog": "Продвижения:",
   "notifications.column_settings.show": "Показывать в колонке",
   "notifications.column_settings.sound": "Проигрывать звук",
-  "notifications.filter.all": "All",
-  "notifications.filter.boosts": "Boosts",
-  "notifications.filter.favourites": "Favourites",
-  "notifications.filter.follows": "Follows",
-  "notifications.filter.mentions": "Mentions",
-  "notifications.group": "{count} уведомл.",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "notifications.filter.all": "Все",
+  "notifications.filter.boosts": "Ускорение",
+  "notifications.filter.favourites": "Избранное",
+  "notifications.filter.follows": "Следит",
+  "notifications.filter.mentions": "Упоминания",
+  "notifications.filter.polls": "Результаты опроса",
+  "notifications.group": "{count} уведомления",
+  "poll.closed": "Закрытый",
+  "poll.refresh": "освежающий",
+  "poll.total_votes": "{count, plural, one {# голосовать} other {# голосов}}",
+  "poll.vote": "Голосуйте",
+  "poll_button.add_poll": "Добавить опрос",
+  "poll_button.remove_poll": "Удалить опрос",
   "privacy.change": "Изменить видимость статуса",
   "privacy.direct.long": "Показать только упомянутым",
   "privacy.direct.short": "Направленный",
@@ -293,7 +295,7 @@
   "reply_indicator.cancel": "Отмена",
   "report.forward": "Переслать для {target}",
   "report.forward_hint": "Этот аккаунт расположен на другом сервере. Отправить туда анонимную копию Вашей жалобы?",
-  "report.hint": "Жалоба будет отправлена модераторам Вашего сервера. Вы также можете указать подробную причину жалобы ниже:",
+  "report.hint": "Отчет будет отправлен модераторам вашего сервера. Ниже вы можете объяснить, почему вы сообщаете об этой учетной записи:",
   "report.placeholder": "Комментарий",
   "report.submit": "Отправить",
   "report.target": "Жалуемся на {target}",
@@ -308,13 +310,12 @@
   "search_results.hashtags": "Хэштеги",
   "search_results.statuses": "Посты",
   "search_results.total": "{count, number} {count, plural, one {результат} few {результата} many {результатов} other {результатов}}",
-  "standalone.public_title": "Прямо сейчас",
-  "status.admin_account": "Open moderation interface for @{name}",
-  "status.admin_status": "Open this status in the moderation interface",
+  "status.admin_account": "Откройте интерфейс модерации для @{name}",
+  "status.admin_status": "Откройте этот статус в интерфейсе модерации",
   "status.block": "Заблокировать @{name}",
   "status.cancel_reblog_private": "Не продвигать",
   "status.cannot_reblog": "Этот статус не может быть продвинут",
-  "status.copy": "Copy link to status",
+  "status.copy": "Скопировать ссылку на статус",
   "status.delete": "Удалить",
   "status.detailed_status": "Подробный просмотр обсуждения",
   "status.direct": "Написать @{name}",
@@ -330,7 +331,7 @@
   "status.open": "Развернуть статус",
   "status.pin": "Закрепить в профиле",
   "status.pinned": "Закреплённый статус",
-  "status.read_more": "Read more",
+  "status.read_more": "Подробнее",
   "status.reblog": "Продвинуть",
   "status.reblog_private": "Продвинуть для своей аудитории",
   "status.reblogged_by": "{name} продвинул(а)",
@@ -346,30 +347,30 @@
   "status.show_less_all": "Свернуть для всех",
   "status.show_more": "Развернуть",
   "status.show_more_all": "Развернуть для всех",
-  "status.show_thread": "Show thread",
+  "status.show_thread": "Показать нить",
   "status.unmute_conversation": "Снять глушение с треда",
   "status.unpin": "Открепить от профиля",
-  "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
+  "suggestions.dismiss": "Отказаться от предложения",
+  "suggestions.header": "Вам может быть интересно…",
   "tabs_bar.federated_timeline": "Глобальная",
   "tabs_bar.home": "Главная",
   "tabs_bar.local_timeline": "Локальная",
   "tabs_bar.notifications": "Уведомления",
   "tabs_bar.search": "Поиск",
-  "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",
+  "time_remaining.days": "{number, plural, one {# день} other {# дни}} осталось",
+  "time_remaining.hours": "{number, plural, one {# час} other {# часы}} осталось",
+  "time_remaining.minutes": "{number, plural, one {# минута} other {# минуты}} oсталось",
+  "time_remaining.moments": "Оставшиеся моменты",
+  "time_remaining.seconds": "{number, plural, one {# секунда} other {# секунды}} oсталось",
   "trends.count_by_accounts": "Популярно у {count} {rawCount, plural, one {человека} few {человек} many {человек} other {человек}}",
   "ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.",
   "upload_area.title": "Перетащите сюда, чтобы загрузить",
-  "upload_button.label": "Добавить медиаконтент",
-  "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_button.label": "Добавить медиа (JPEG, PNG, GIF, WebM, MP4, MOV)",
+  "upload_error.limit": "Превышение лимита загрузки файлов.",
+  "upload_error.poll": "Загрузка файлов с опросами не разрешена.",
   "upload_form.description": "Описать для людей с нарушениями зрения",
-  "upload_form.focus": "Обрезать",
-  "upload_form.undo": "Отменить",
+  "upload_form.focus": "Изменить предварительный просмотр",
+  "upload_form.undo": "Удалить",
   "upload_progress.label": "Загрузка...",
   "video.close": "Закрыть видео",
   "video.exit_fullscreen": "Покинуть полноэкранный режим",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 17b50522f..c73aed643 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "Váš účet nie je {locked}. Ktokoľvek ťa môže nasledovať a vidieť tvoje správy pre sledujúcich.",
   "compose_form.lock_disclaimer.lock": "zamknutý",
   "compose_form.placeholder": "Čo máš na mysli?",
-  "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.add_option": "Pridaj voľbu",
+  "compose_form.poll.duration": "Trvanie ankety",
+  "compose_form.poll.option_placeholder": "Voľba {number}",
+  "compose_form.poll.remove_option": "Odstráň túto voľbu",
   "compose_form.publish": "Pošli",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Médiálny obsah je označený ako chúlostivý",
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Ešte si nestĺmil žiadných užívateľov.",
   "empty_column.notifications": "Ešte nemáš žiadne oznámenia. Začni komunikovať s ostatnými, aby diskusia mohla začať.",
   "empty_column.public": "Ešte tu nič nie je. Napíš niečo verejne, alebo začni sledovať užívateľov z iných serverov, aby tu niečo pribudlo",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Povoľ prístup",
   "follow_request.reject": "Odmietni",
   "getting_started.developers": "Vývojári",
@@ -156,9 +155,9 @@
   "home.column_settings.basic": "Základné",
   "home.column_settings.show_reblogs": "Zobraziť povýšené",
   "home.column_settings.show_replies": "Ukázať odpovede",
-  "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}}",
+  "intervals.full.days": "{number, plural, one {# deň} few {# dní} many {# dní} other {# dni}}",
+  "intervals.full.hours": "{number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodiny}}",
+  "intervals.full.minutes": "{number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}",
   "introduction.federation.action": "Ďalej",
   "introduction.federation.federated.headline": "Federated",
   "introduction.federation.federated.text": "Verejné príspevky z ostatných serverov vo fediverse budú zobrazenie vo federovanej časovej osi.",
@@ -245,9 +244,10 @@
   "navigation_bar.preferences": "Voľby",
   "navigation_bar.public_timeline": "Federovaná časová os",
   "navigation_bar.security": "Zabezbečenie",
-  "notification.favourite": "{name} sa páči tvoj status",
+  "notification.favourite": "{name} si obľúbil/a tvoj príspevok",
   "notification.follow": "{name} ťa začal/a následovať",
   "notification.mention": "{name} ťa spomenul/a",
+  "notification.poll": "Anketa v ktorej si hlasoval/a sa skončila",
   "notification.reblog": "{name} zdieľal/a tvoj status",
   "notifications.clear": "Vyčistiť zoznam notifikácii",
   "notifications.clear_confirmation": "Naozaj chcete nenávratne prečistiť všetky vaše notifikácie?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Ukáž",
   "notifications.column_settings.follow": "Noví následujúci:",
   "notifications.column_settings.mention": "Zmienenia:",
+  "notifications.column_settings.poll": "Výsledky ankiet:",
   "notifications.column_settings.push": "Push notifikácie",
   "notifications.column_settings.reblog": "Boosty:",
   "notifications.column_settings.show": "Zobraziť v stĺpci",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "Obľúbené",
   "notifications.filter.follows": "Sledovania",
   "notifications.filter.mentions": "Iba spomenutia",
+  "notifications.filter.polls": "Výsledky ankiet",
   "notifications.group": "{count} oboznámení",
   "poll.closed": "Uzatvorená",
   "poll.refresh": "Aktualizuj",
   "poll.total_votes": "{count, plural, one {# hlas} few {# hlasov} many {# hlasov} other {# hlasy}}",
   "poll.vote": "Hlasuj",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Pridaj anketu",
+  "poll_button.remove_poll": "Odstráň anketu",
   "privacy.change": "Uprav súkromie príspevku",
   "privacy.direct.long": "Pošli iba spomenutým používateľom",
   "privacy.direct.short": "Súkromne",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Haštagy",
   "search_results.statuses": "Príspevky",
   "search_results.total": "{count, number} {count, plural, one {výsledok} many {výsledkov} other {výsledky}}",
-  "standalone.public_title": "Náhľad dovnútra...",
   "status.admin_account": "Otvor moderovacie rozhranie užívateľa @{name}",
   "status.admin_status": "Otvor tento príspevok v moderovacom rozhraní",
   "status.block": "Blokovať @{name}",
@@ -366,7 +367,7 @@
   "upload_area.title": "Pretiahni a pusť pre nahratie",
   "upload_button.label": "Pridať médiálny súbor (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Limit pre nahrávanie súborov bol prekročený.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "Nahrávanie súborov pri anketách nieje dovolené.",
   "upload_form.description": "Opis pre slabo vidiacich",
   "upload_form.focus": "Pozmeň náhľad",
   "upload_form.undo": "Vymaž",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index 9ee2e5b52..a99d9d437 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "Nimate še nobenih obvestil. Poveži se z drugimi, da začnete pogovor.",
   "empty_column.public": "Tukaj ni ničesar! Da ga napolnite, napišite nekaj javnega ali pa ročno sledite uporabnikom iz drugih vozlišč",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Odobri",
   "follow_request.reject": "Zavrni",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} favourited your status",
   "notification.follow": "{name} followed you",
   "notification.mention": "{name} mentioned you",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} boosted your status",
   "notifications.clear": "Clear notifications",
   "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "New followers:",
   "notifications.column_settings.mention": "Mentions:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Boosts:",
   "notifications.column_settings.show": "Show in column",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Tuti",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index 498b1bdd6..8beaf1323 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "S’keni heshtuar ende ndonjë përdorues.",
   "empty_column.notifications": "Ende s’keni ndonjë njoftim. Ndërveproni me të tjerët që të nisë biseda.",
   "empty_column.public": "S’ka gjë këtu! Shkruani diçka publikisht, ose ndiqni dorazi përdorues prej instancash të tjera, që ta mbushni këtë zonë",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Autorizoje",
   "follow_request.reject": "Hidhe tej",
   "getting_started.developers": "Zhvillues",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} parapëlqeu gjendjen tuaj",
   "notification.follow": "{name} zuri t’ju ndjekë",
   "notification.mention": "{name} ju ka përmendur",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "përforcoi gjendjen tuaj",
   "notifications.clear": "Pastroji njoftimet",
   "notifications.clear_confirmation": "Jeni i sigurt se doni të pastrohen përgjithmonë krejt njoftimet tuaja?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Shfaq",
   "notifications.column_settings.follow": "Ndjekës të rinj:",
   "notifications.column_settings.mention": "Përmendje:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Njoftime Push",
   "notifications.column_settings.reblog": "Përforcime:",
   "notifications.column_settings.show": "Shfaq në shtylla",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Të parapëlqyer",
   "notifications.filter.follows": "Ndjekje",
   "notifications.filter.mentions": "Përmendje",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "%(count)s njoftime",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtagë",
   "search_results.statuses": "Mesazhe",
   "search_results.total": "{count, number} {count, plural, një {result} {results} të tjera}",
-  "standalone.public_title": "Një pamje brenda…",
   "status.admin_account": "Hap ndërfaqe moderimi për @{name}",
   "status.admin_status": "Hape këtë gjendje te ndërfaqja e moderimit",
   "status.block": "Blloko @{name}",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index abc1df5de..ba238d83d 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -133,7 +133,6 @@
   "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_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Odobri",
   "follow_request.reject": "Odbij",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} je stavio Vaš status kao omiljeni",
   "notification.follow": "{name} Vas je zapratio",
   "notification.mention": "{name} Vas je pomenuo",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} je podržao(la) Vaš status",
   "notifications.clear": "Očisti obaveštenja",
   "notifications.clear_confirmation": "Da li ste sigurno da trajno želite da očistite Vaša obaveštenja?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Novi pratioci:",
   "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.show": "Prikaži u koloni",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {rezultat} few {rezultata} other {rezultata}}",
-  "standalone.public_title": "Pogled iznutra...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index ac7f97c6d..4a6f992bb 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Још увек немате ућутканих корисника.",
   "empty_column.notifications": "Тренутно немате обавештења. Дружите се мало да започнете разговор.",
   "empty_column.public": "Овде нема ничега! Напишите нешто јавно, или нађите кориснике са других инстанци које ћете запратити да попуните ову празнину",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Одобри",
   "follow_request.reject": "Одбиј",
   "getting_started.developers": "Програмери",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} је ставио/ла Ваш статус као омиљени",
   "notification.follow": "{name} Вас је запратио/ла",
   "notification.mention": "{name} Вас је поменуо/ла",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} је подржао/ла Ваш статус",
   "notifications.clear": "Очисти обавештења",
   "notifications.clear_confirmation": "Да ли сте сигурно да трајно желите да очистите Ваша обавештења?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Нови пратиоци:",
   "notifications.column_settings.mention": "Помињања:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Гурај обавештења",
   "notifications.column_settings.reblog": "Подршки:",
   "notifications.column_settings.show": "Прикажи у колони",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} обавештења",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Тарабе",
   "search_results.statuses": "Трубе",
   "search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}",
-  "standalone.public_title": "Поглед изнутра...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Блокирај @{name}",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index cd002ee02..b00dda362 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "Du har inga meddelanden än. Interagera med andra för att starta konversationen.",
   "empty_column.public": "Det finns inget här! Skriv något offentligt, eller följ manuellt användarna från andra instanser för att fylla på det",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Godkänn",
   "follow_request.reject": "Avvisa",
   "getting_started.developers": "Utvecklare",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} favoriserade din status",
   "notification.follow": "{name} följer dig",
   "notification.mention": "{name} nämnde dig",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} knuffade din status",
   "notifications.clear": "Rensa meddelanden",
   "notifications.clear_confirmation": "Är du säker på att du vill radera alla dina meddelanden permanent?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Nya följare:",
   "notifications.column_settings.mention": "Omnämningar:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push meddelanden",
   "notifications.column_settings.reblog": "Knuffar:",
   "notifications.column_settings.show": "Visa i kolumnen",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} aviseringar",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, ett {result} andra {results}}",
-  "standalone.public_title": "En titt inuti...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index 9f8f797c8..d6016249d 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
   "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Authorize",
   "follow_request.reject": "Reject",
   "getting_started.developers": "Developers",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} favourited your status",
   "notification.follow": "{name} followed you",
   "notification.mention": "{name} mentioned you",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} boosted your status",
   "notifications.clear": "Clear notifications",
   "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "New followers:",
   "notifications.column_settings.mention": "Mentions:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Boosts:",
   "notifications.column_settings.show": "Show in column",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index 02896333e..d1c77d371 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -73,10 +73,10 @@
   "compose_form.lock_disclaimer": "మీ ఖాతా {locked} చేయబడలేదు. ఎవరైనా మిమ్మల్ని అనుసరించి మీ అనుచరులకు-మాత్రమే పోస్ట్లను వీక్షించవచ్చు.",
   "compose_form.lock_disclaimer.lock": "బిగించబడినది",
   "compose_form.placeholder": "మీ మనస్సులో ఏముంది?",
-  "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.add_option": "ఒక ఎంపికను చేర్చండి",
+  "compose_form.poll.duration": "ఎన్నిక వ్యవధి",
+  "compose_form.poll.option_placeholder": "ఎంపిక {number}",
+  "compose_form.poll.remove_option": "ఈ ఎంపికను తొలగించు",
   "compose_form.publish": "టూట్",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "మీడియా సున్నితమైనదిగా గుర్తించబడింది",
@@ -132,8 +132,7 @@
   "empty_column.lists": "మీకు ఇంకా జాబితాలు ఏమీ లేవు. మీరు ఒకటి సృష్టించగానే, అది ఇక్కడ కనబడుతుంది.",
   "empty_column.mutes": "మీరు ఇంకా ఏ వినియోగదారులనూ మ్యూట్ చేయలేదు.",
   "empty_column.notifications": "మీకు ఇంకా ఏ నోటిఫికేషన్లు లేవు. సంభాషణను ప్రారంభించడానికి ఇతరులతో ప్రతిస్పందించండి.",
-  "empty_column.public": "ఇక్కడ ఏమీ లేదు! దీన్ని నింపడానికి బహిరంగంగా ఏదైనా వ్రాయండి, లేదా ఇతర దృష్టాంతాల్లోని వినియోగదారులను అనుసరించండి",
-  "error_boundary.it_crashed": "It crashed!",
+  "empty_column.public": "ఇక్కడ ఏమీ లేదు! దీన్ని నింపడానికి బహిరంగంగా ఏదైనా వ్రాయండి, లేదా ఇతర సేవికల నుండి వినియోగదారులను అనుసరించండి",
   "follow_request.authorize": "అనుమతించు",
   "follow_request.reject": "తిరస్కరించు",
   "getting_started.developers": "డెవలపర్లు",
@@ -152,7 +151,7 @@
   "hashtag.column_settings.tag_mode.all": "ఇవన్నీ",
   "hashtag.column_settings.tag_mode.any": "వీటిలో ఏవైనా",
   "hashtag.column_settings.tag_mode.none": "ఇవేవీ కావు",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_toggle": "ఈ నిలువు వరుసలో మరికొన్ని ట్యాగులను చేర్చండి",
   "home.column_settings.basic": "ప్రాథమిక",
   "home.column_settings.show_reblogs": "బూస్ట్ లను చూపించు",
   "home.column_settings.show_replies": "ప్రత్యుత్తరాలను చూపించు",
@@ -214,7 +213,7 @@
   "lists.account.remove": "జాబితా నుండి తొలగించు",
   "lists.delete": "జాబితాను తొలగించు",
   "lists.edit": "జాబితాను సవరించు",
-  "lists.edit.submit": "Change title",
+  "lists.edit.submit": "శీర్షిక మార్చు",
   "lists.new.create": "జాబితాను జోడించు",
   "lists.new.title_placeholder": "కొత్త జాబితా శీర్షిక",
   "lists.search": "మీరు అనుసరించే వ్యక్తులలో శోధించండి",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} మీ స్టేటస్ ను ఇష్టపడ్డారు",
   "notification.follow": "{name} మిమ్మల్ని అనుసరిస్తున్నారు",
   "notification.mention": "{name} మిమ్మల్ని ప్రస్తావించారు",
+  "notification.poll": "మీరు పాల్గొనిన ఎన్సిక ముగిసినది",
   "notification.reblog": "{name} మీ స్టేటస్ ను బూస్ట్ చేసారు",
   "notifications.clear": "ప్రకటనలను తుడిచివేయు",
   "notifications.clear_confirmation": "మీరు మీ అన్ని నోటిఫికేషన్లను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "చూపించు",
   "notifications.column_settings.follow": "క్రొత్త అనుచరులు:",
   "notifications.column_settings.mention": "ప్రస్తావనలు:",
+  "notifications.column_settings.poll": "ఎన్నిక ఫలితాలు:",
   "notifications.column_settings.push": "పుష్ ప్రకటనలు",
   "notifications.column_settings.reblog": "బూస్ట్ లు:",
   "notifications.column_settings.show": "నిలువు వరుసలో చూపు",
@@ -267,13 +268,14 @@
   "notifications.filter.favourites": "ఇష్టాలు",
   "notifications.filter.follows": "అనుసరిస్తున్నవి",
   "notifications.filter.mentions": "పేర్కొన్నవి",
+  "notifications.filter.polls": "ఎన్నిక ఫలితాలు",
   "notifications.group": "{count} ప్రకటనలు",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
+  "poll.closed": "మూసివేయబడినవి",
+  "poll.refresh": "నవీకరించు",
   "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll.vote": "ఎన్నుకోండి",
+  "poll_button.add_poll": "ఒక ఎన్నికను చేర్చు",
+  "poll_button.remove_poll": "ఎన్నికను తొలగించు",
   "privacy.change": "స్టేటస్ గోప్యతను సర్దుబాటు చేయండి",
   "privacy.direct.long": "పేర్కొన్న వినియోగదారులకు మాత్రమే పోస్ట్ చేయి",
   "privacy.direct.short": "ప్రత్యక్ష",
@@ -293,7 +295,7 @@
   "reply_indicator.cancel": "రద్దు చెయ్యి",
   "report.forward": "{target}కి ఫార్వార్డ్ చేయండి",
   "report.forward_hint": "ఖాతా మరొక సర్వర్లో ఉంది. నివేదిక యొక్క ఒక అనామకంగా ఉన్న కాపీని అక్కడికి కూడా పంపించమంటారా?",
-  "report.hint": "మీ దుష్టాంత మోడరేటర్లకు నివేదిక పంపబడుతుంది. దిగువ ఈ ఖాతాను ఎందుకు నివేదిస్తున్నారనేదాని వివరణను మీరు అందించవచ్చు:",
+  "report.hint": "మీ సేవిక మోడరేటర్లకు నివేదిక పంపబడుతుంది. ఈ ఖాతాను ఎందుకు నివేదిస్తున్నారనేదాని వివరణను మీరు దిగువన అందించవచ్చు:",
   "report.placeholder": "అదనపు వ్యాఖ్యలు",
   "report.submit": "సమర్పించండి",
   "report.target": "{target}పై ఫిర్యాదు చేయండి",
@@ -308,13 +310,12 @@
   "search_results.hashtags": "హాష్ ట్యాగ్లు",
   "search_results.statuses": "టూట్లు",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "లోపలికి ఒక చూపు...",
   "status.admin_account": "@{name} కొరకు సమన్వయ వినిమయసీమను తెరువు",
   "status.admin_status": "సమన్వయ వినిమయసీమలో ఈ స్టేటస్ ను తెరవండి",
   "status.block": "@{name} ను బ్లాక్ చేయి",
   "status.cancel_reblog_private": "బూస్ట్ను తొలగించు",
   "status.cannot_reblog": "ఈ పోస్ట్ను బూస్ట్ చేయడం సాధ్యం కాదు",
-  "status.copy": "Copy link to status",
+  "status.copy": "లంకెను స్టేటస్కు కాపీ చేయి",
   "status.delete": "తొలగించు",
   "status.detailed_status": "వివరణాత్మక సంభాషణ వీక్షణ",
   "status.direct": "@{name}కు నేరుగా సందేశం పంపు",
@@ -359,7 +360,7 @@
   "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.moments": "కొన్ని క్షణాలు మాత్రమే మిగిలి ఉన్నాయి",
   "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
   "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} మాట్లాడుతున్నారు",
   "ui.beforeunload": "మీరు మాస్టొడొన్ను వదిలివేస్తే మీ డ్రాఫ్ట్లు పోతాయి.",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 6d120ac76..35cca32f9 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -1,74 +1,74 @@
 {
-  "account.add_or_remove_from_list": "Add or Remove from lists",
+  "account.add_or_remove_from_list": "เพิ่มหรือเอาออกจากรายการ",
   "account.badges.bot": "บอต",
-  "account.block": "บล็อค @{name}",
+  "account.block": "ปิดกั้น @{name}",
   "account.block_domain": "ซ่อนทุกอย่างจาก {domain}",
-  "account.blocked": "ถูกบล็อค",
-  "account.direct": "Direct Message @{name}",
+  "account.blocked": "ปิดกั้นอยู่",
+  "account.direct": "ส่งข้อความโดยตรงถึง @{name}",
   "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
-  "account.domain_blocked": "Domain hidden",
-  "account.edit_profile": "Edit profile",
+  "account.domain_blocked": "ซ่อนโดเมนอยู่",
+  "account.edit_profile": "แก้ไขโปรไฟล์",
   "account.endorse": "Feature on profile",
   "account.follow": "ติดตาม",
   "account.followers": "ผู้ติดตาม",
-  "account.followers.empty": "ยังไม่มีใครติดตาม",
+  "account.followers.empty": "ยังไม่มีใครติดตามผู้ใช้นี้",
   "account.follows": "ติดตาม",
-  "account.follows.empty": "ยังไม่ได้ติดตามใคร",
+  "account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร",
   "account.follows_you": "ติดตามคุณ",
-  "account.hide_reblogs": "Hide boosts from @{name}",
+  "account.hide_reblogs": "ซ่อนการดันจาก @{name}",
   "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 moved to:",
-  "account.mute": "Mute @{name}",
-  "account.mute_notifications": "Mute notifications from @{name}",
-  "account.muted": "Muted",
-  "account.posts": "Posts",
-  "account.posts_with_replies": "Toots with replies",
-  "account.report": "Report @{name}",
-  "account.requested": "Awaiting approval",
-  "account.share": "Share @{name}'s profile",
-  "account.show_reblogs": "Show boosts from @{name}",
-  "account.unblock": "Unblock @{name}",
-  "account.unblock_domain": "Unhide {domain}",
+  "account.media": "สื่อ",
+  "account.mention": "กล่าวถึง @{name}",
+  "account.moved_to": "{name} ได้ย้ายไปยัง:",
+  "account.mute": "ปิดเสียง @{name}",
+  "account.mute_notifications": "ปิดเสียงการแจ้งเตือนจาก @{name}",
+  "account.muted": "ปิดเสียงอยู่",
+  "account.posts": "โพสต์",
+  "account.posts_with_replies": "โพสต์และการตอบกลับ",
+  "account.report": "รายงาน @{name}",
+  "account.requested": "กำลังรอการอนุมัติ คลิกเพื่อยกเลิกคำขอติดตาม",
+  "account.share": "แบ่งปันโปรไฟล์ของ @{name}",
+  "account.show_reblogs": "แสดงการดันจาก @{name}",
+  "account.unblock": "เลิกปิดกั้น @{name}",
+  "account.unblock_domain": "เลิกซ่อน {domain}",
   "account.unendorse": "Don't feature on profile",
-  "account.unfollow": "Unfollow",
-  "account.unmute": "Unmute @{name}",
-  "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account.view_full_profile": "View full profile",
-  "alert.unexpected.message": "An unexpected error occurred.",
-  "alert.unexpected.title": "Oops!",
+  "account.unfollow": "เลิกติดตาม",
+  "account.unmute": "เลิกปิดเสียง @{name}",
+  "account.unmute_notifications": "เลิกปิดเสียงการแจ้งเตือนจาก @{name}",
+  "account.view_full_profile": "ดูโปรไฟล์แบบเต็ม",
+  "alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
+  "alert.unexpected.title": "อุปส์!",
   "boost_modal.combo": "You can press {combo} to skip this next time",
   "bundle_column_error.body": "Something went wrong while loading this component.",
-  "bundle_column_error.retry": "Try again",
-  "bundle_column_error.title": "Network error",
-  "bundle_modal_error.close": "Close",
+  "bundle_column_error.retry": "ลองอีกครั้ง",
+  "bundle_column_error.title": "ข้อผิดพลาดเครือข่าย",
+  "bundle_modal_error.close": "ปิด",
   "bundle_modal_error.message": "Something went wrong while loading this component.",
-  "bundle_modal_error.retry": "Try again",
-  "column.blocks": "Blocked users",
-  "column.community": "Local timeline",
-  "column.direct": "Direct messages",
-  "column.domain_blocks": "Hidden domains",
-  "column.favourites": "Favourites",
-  "column.follow_requests": "Follow requests",
-  "column.home": "Home",
-  "column.lists": "Lists",
-  "column.mutes": "Muted users",
-  "column.notifications": "Notifications",
-  "column.pins": "Pinned toot",
-  "column.public": "Federated timeline",
-  "column_back_button.label": "Back",
-  "column_header.hide_settings": "Hide settings",
-  "column_header.moveLeft_settings": "Move column to the left",
-  "column_header.moveRight_settings": "Move column to the right",
-  "column_header.pin": "Pin",
-  "column_header.show_settings": "Show settings",
-  "column_header.unpin": "Unpin",
-  "column_subheading.settings": "Settings",
-  "community.column_settings.media_only": "Media Only",
+  "bundle_modal_error.retry": "ลองอีกครั้ง",
+  "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
+  "column.community": "เส้นเวลาในเว็บ",
+  "column.direct": "ข้อความโดยตรง",
+  "column.domain_blocks": "โดเมนที่ซ่อนอยู่",
+  "column.favourites": "รายการโปรด",
+  "column.follow_requests": "คำขอติดตาม",
+  "column.home": "หน้าแรก",
+  "column.lists": "รายการ",
+  "column.mutes": "ผู้ใช้ที่ปิดเสียงอยู่",
+  "column.notifications": "การแจ้งเตือน",
+  "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.unpin": "ถอนหมุด",
+  "column_subheading.settings": "การตั้งค่า",
+  "community.column_settings.media_only": "สื่อเท่านั้น",
   "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.direct_message_warning_learn_more": "เรียนรู้เพิ่มเติม",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "locked",
@@ -77,89 +77,88 @@
   "compose_form.poll.duration": "Poll duration",
   "compose_form.poll.option_placeholder": "Choice {number}",
   "compose_form.poll.remove_option": "Remove this choice",
-  "compose_form.publish": "Toot",
+  "compose_form.publish": "โพสต์",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Media is marked as sensitive",
   "compose_form.sensitive.unmarked": "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": "Content warning",
-  "confirmation_modal.cancel": "Cancel",
-  "confirmations.block.confirm": "Block",
-  "confirmations.block.message": "Are you sure you want to block {name}?",
-  "confirmations.delete.confirm": "Delete",
-  "confirmations.delete.message": "Are you sure you want to delete this status?",
-  "confirmations.delete_list.confirm": "Delete",
-  "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
+  "compose_form.spoiler_placeholder": "เขียนคำเตือนของคุณที่นี่",
+  "confirmation_modal.cancel": "ยกเลิก",
+  "confirmations.block.confirm": "ปิดกั้น",
+  "confirmations.block.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดกั้น {name}?",
+  "confirmations.delete.confirm": "ลบ",
+  "confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบสถานะนี้?",
+  "confirmations.delete_list.confirm": "ลบ",
+  "confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?",
   "confirmations.domain_block.confirm": "Hide 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.",
-  "confirmations.mute.confirm": "Mute",
-  "confirmations.mute.message": "Are you sure you want to mute {name}?",
-  "confirmations.redraft.confirm": "Delete & redraft",
+  "confirmations.mute.confirm": "ปิดเสียง",
+  "confirmations.mute.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดเสียง {name}?",
+  "confirmations.redraft.confirm": "ลบแล้วร่างใหม่",
   "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.confirm": "ตอบกลับ",
   "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
-  "confirmations.unfollow.confirm": "Unfollow",
-  "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
+  "confirmations.unfollow.confirm": "เลิกติดตาม",
+  "confirmations.unfollow.message": "คุณแน่ใจหรือไม่ว่าต้องการเลิกติดตาม {name}?",
   "embed.instructions": "Embed this status on your website by copying the code below.",
   "embed.preview": "Here is what it will look like:",
-  "emoji_button.activity": "Activity",
-  "emoji_button.custom": "Custom",
-  "emoji_button.flags": "Flags",
-  "emoji_button.food": "Food & Drink",
-  "emoji_button.label": "Insert emoji",
-  "emoji_button.nature": "Nature",
+  "emoji_button.activity": "กิจกรรม",
+  "emoji_button.custom": "กำหนดเอง",
+  "emoji_button.flags": "ธง",
+  "emoji_button.food": "อาหารและเครื่องดื่ม",
+  "emoji_button.label": "แทรกอีโมจิ",
+  "emoji_button.nature": "ธรรมชาติ",
   "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
-  "emoji_button.objects": "Objects",
-  "emoji_button.people": "People",
-  "emoji_button.recent": "Frequently used",
-  "emoji_button.search": "Search...",
-  "emoji_button.search_results": "Search results",
-  "emoji_button.symbols": "Symbols",
-  "emoji_button.travel": "Travel & Places",
-  "empty_column.account_timeline": "No toots here!",
+  "emoji_button.objects": "วัตถุ",
+  "emoji_button.people": "ผู้คน",
+  "emoji_button.recent": "ที่ใช้บ่อย",
+  "emoji_button.search": "ค้นหา...",
+  "emoji_button.search_results": "ผลลัพธ์การค้นหา",
+  "emoji_button.symbols": "สัญลักษณ์",
+  "emoji_button.travel": "การเดินทางและสถานที่",
+  "empty_column.account_timeline": "ไม่มีโพสต์ที่นี่!",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
-  "empty_column.domain_blocks": "There are no hidden domains yet.",
+  "empty_column.domain_blocks": "ยังไม่มีโดเมนที่ซ่อนอยู่",
   "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_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
   "empty_column.hashtag": "There is nothing in this hashtag yet.",
   "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
-  "empty_column.home.public_timeline": "the public timeline",
+  "empty_column.home.public_timeline": "เส้นเวลาสาธารณะ",
   "empty_column.list": "There is nothing in this list yet.",
   "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": "You don't have any notifications yet. Interact with others to start the conversation.",
   "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
-  "error_boundary.it_crashed": "It crashed!",
-  "follow_request.authorize": "Authorize",
-  "follow_request.reject": "Reject",
-  "getting_started.developers": "Developers",
-  "getting_started.directory": "Profile directory",
-  "getting_started.documentation": "Documentation",
-  "getting_started.heading": "Getting started",
-  "getting_started.invite": "Invite people",
+  "follow_request.authorize": "อนุญาต",
+  "follow_request.reject": "ปฏิเสธ",
+  "getting_started.developers": "นักพัฒนา",
+  "getting_started.directory": "ไดเรกทอรีโปรไฟล์",
+  "getting_started.documentation": "เอกสารประกอบ",
+  "getting_started.heading": "เริ่มต้นใช้งาน",
+  "getting_started.invite": "เชิญผู้คน",
   "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
-  "getting_started.security": "Security",
+  "getting_started.security": "ความปลอดภัย",
   "getting_started.terms": "Terms of service",
-  "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_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.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",
-  "home.column_settings.basic": "Basic",
-  "home.column_settings.show_reblogs": "Show boosts",
-  "home.column_settings.show_replies": "Show replies",
+  "home.column_settings.basic": "พื้นฐาน",
+  "home.column_settings.show_reblogs": "แสดงการดัน",
+  "home.column_settings.show_replies": "แสดงการตอบกลับ",
   "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}}",
-  "introduction.federation.action": "Next",
+  "introduction.federation.action": "ถัดไป",
   "introduction.federation.federated.headline": "Federated",
   "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
   "introduction.federation.home.headline": "Home",
@@ -181,7 +180,7 @@
   "keyboard_shortcuts.boost": "to boost",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
-  "keyboard_shortcuts.description": "Description",
+  "keyboard_shortcuts.description": "คำอธิบาย",
   "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
   "keyboard_shortcuts.enter": "to open status",
@@ -190,7 +189,7 @@
   "keyboard_shortcuts.federated": "to open federated timeline",
   "keyboard_shortcuts.heading": "Keyboard Shortcuts",
   "keyboard_shortcuts.home": "to open home timeline",
-  "keyboard_shortcuts.hotkey": "Hotkey",
+  "keyboard_shortcuts.hotkey": "ปุ่มลัด",
   "keyboard_shortcuts.legend": "to display this legend",
   "keyboard_shortcuts.local": "to open local timeline",
   "keyboard_shortcuts.mention": "to mention author",
@@ -207,177 +206,179 @@
   "keyboard_shortcuts.toot": "to start a brand new toot",
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
   "keyboard_shortcuts.up": "to move up in the list",
-  "lightbox.close": "Close",
-  "lightbox.next": "Next",
-  "lightbox.previous": "Previous",
-  "lists.account.add": "Add to list",
-  "lists.account.remove": "Remove from list",
-  "lists.delete": "Delete list",
-  "lists.edit": "Edit list",
-  "lists.edit.submit": "Change title",
-  "lists.new.create": "Add list",
-  "lists.new.title_placeholder": "New list title",
-  "lists.search": "Search among people you follow",
-  "lists.subheading": "Your lists",
-  "loading_indicator.label": "Loading...",
-  "media_gallery.toggle_visible": "Toggle visibility",
-  "missing_indicator.label": "Not found",
-  "missing_indicator.sublabel": "This resource could not be found",
-  "mute_modal.hide_notifications": "Hide notifications from this user?",
-  "navigation_bar.apps": "Mobile apps",
-  "navigation_bar.blocks": "Blocked users",
-  "navigation_bar.community_timeline": "Local timeline",
-  "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
-  "navigation_bar.discover": "Discover",
-  "navigation_bar.domain_blocks": "Hidden domains",
-  "navigation_bar.edit_profile": "Edit profile",
-  "navigation_bar.favourites": "Favourites",
-  "navigation_bar.filters": "Muted words",
-  "navigation_bar.follow_requests": "Follow requests",
-  "navigation_bar.info": "About this instance",
-  "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
-  "navigation_bar.lists": "Lists",
-  "navigation_bar.logout": "Logout",
-  "navigation_bar.mutes": "Muted users",
-  "navigation_bar.personal": "Personal",
-  "navigation_bar.pins": "Pinned toots",
-  "navigation_bar.preferences": "Preferences",
-  "navigation_bar.public_timeline": "Federated timeline",
-  "navigation_bar.security": "Security",
-  "notification.favourite": "{name} favourited your status",
-  "notification.follow": "{name} followed you",
-  "notification.mention": "{name} mentioned you",
-  "notification.reblog": "{name} boosted your status",
-  "notifications.clear": "Clear notifications",
-  "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
+  "lightbox.close": "ปิด",
+  "lightbox.next": "ถัดไป",
+  "lightbox.previous": "ก่อนหน้า",
+  "lists.account.add": "เพิ่มไปยังรายการ",
+  "lists.account.remove": "เอาออกจากรายการ",
+  "lists.delete": "ลบรายการ",
+  "lists.edit": "แก้ไขรายการ",
+  "lists.edit.submit": "เปลี่ยนชื่อเรื่อง",
+  "lists.new.create": "เพิ่มรายการ",
+  "lists.new.title_placeholder": "ชื่อเรื่องรายการใหม่",
+  "lists.search": "ค้นหาในหมู่ผู้คนที่คุณติดตาม",
+  "lists.subheading": "รายการของคุณ",
+  "loading_indicator.label": "กำลังโหลด...",
+  "media_gallery.toggle_visible": "เปิด/ปิดการมองเห็น",
+  "missing_indicator.label": "ไม่พบ",
+  "missing_indicator.sublabel": "ไม่พบทรัพยากรนี้",
+  "mute_modal.hide_notifications": "ซ่อนการแจ้งเตือนจากผู้ใช้นี้?",
+  "navigation_bar.apps": "แอปสำหรับมือถือ",
+  "navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
+  "navigation_bar.community_timeline": "เส้นเวลาในเว็บ",
+  "navigation_bar.compose": "เขียนโพสต์ใหม่",
+  "navigation_bar.direct": "ข้อความโดยตรง",
+  "navigation_bar.discover": "ค้นพบ",
+  "navigation_bar.domain_blocks": "โดเมนที่ซ่อนอยู่",
+  "navigation_bar.edit_profile": "แก้ไขโปรไฟล์",
+  "navigation_bar.favourites": "รายการโปรด",
+  "navigation_bar.filters": "คำที่ปิดเสียงอยู่",
+  "navigation_bar.follow_requests": "คำขอติดตาม",
+  "navigation_bar.info": "เกี่ยวกับเซิร์ฟเวอร์นี้",
+  "navigation_bar.keyboard_shortcuts": "ปุ่มลัด",
+  "navigation_bar.lists": "รายการ",
+  "navigation_bar.logout": "ออกจากระบบ",
+  "navigation_bar.mutes": "ผู้ใช้ที่ปิดเสียงอยู่",
+  "navigation_bar.personal": "ส่วนบุคคล",
+  "navigation_bar.pins": "โพสต์ที่ปักหมุด",
+  "navigation_bar.preferences": "การกำหนดลักษณะ",
+  "navigation_bar.public_timeline": "เส้นเวลาที่ติดต่อกับภายนอก",
+  "navigation_bar.security": "ความปลอดภัย",
+  "notification.favourite": "{name} ได้ชื่นชอบสถานะของคุณ",
+  "notification.follow": "{name} ได้ติดตามคุณ",
+  "notification.mention": "{name} ได้กล่าวถึงคุณ",
+  "notification.poll": "A poll you have voted in has ended",
+  "notification.reblog": "{name} ได้ดันสถานะของคุณ",
+  "notifications.clear": "ล้างการแจ้งเตือน",
+  "notifications.clear_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการล้างการแจ้งเตือนทั้งหมดของคุณอย่างถาวร?",
   "notifications.column_settings.alert": "Desktop notifications",
-  "notifications.column_settings.favourite": "Favourites:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
-  "notifications.column_settings.filter_bar.show": "Show",
-  "notifications.column_settings.follow": "New followers:",
-  "notifications.column_settings.mention": "Mentions:",
-  "notifications.column_settings.push": "Push notifications",
-  "notifications.column_settings.reblog": "Boosts:",
-  "notifications.column_settings.show": "Show in column",
-  "notifications.column_settings.sound": "Play sound",
-  "notifications.filter.all": "All",
-  "notifications.filter.boosts": "Boosts",
-  "notifications.filter.favourites": "Favourites",
-  "notifications.filter.follows": "Follows",
-  "notifications.filter.mentions": "Mentions",
-  "notifications.group": "{count} notifications",
-  "poll.closed": "Closed",
+  "notifications.column_settings.favourite": "รายการโปรด:",
+  "notifications.column_settings.filter_bar.advanced": "แสดงหมวดหมู่ทั้งหมด",
+  "notifications.column_settings.filter_bar.category": "แถบตัวกรองด่วน",
+  "notifications.column_settings.filter_bar.show": "แสดง",
+  "notifications.column_settings.follow": "ผู้ติดตามใหม่:",
+  "notifications.column_settings.mention": "การกล่าวถึง:",
+  "notifications.column_settings.poll": "Poll results:",
+  "notifications.column_settings.push": "การแจ้งเตือนแบบผลัก",
+  "notifications.column_settings.reblog": "การดัน:",
+  "notifications.column_settings.show": "แสดงในคอลัมน์",
+  "notifications.column_settings.sound": "เล่นเสียง",
+  "notifications.filter.all": "ทั้งหมด",
+  "notifications.filter.boosts": "การดัน",
+  "notifications.filter.favourites": "รายการโปรด",
+  "notifications.filter.follows": "การติดตาม",
+  "notifications.filter.mentions": "การกล่าวถึง",
+  "notifications.filter.polls": "Poll results",
+  "notifications.group": "{count} การแจ้งเตือน",
+  "poll.closed": "ปิดแล้ว",
   "poll.refresh": "Refresh",
   "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
   "poll.vote": "Vote",
   "poll_button.add_poll": "Add a poll",
   "poll_button.remove_poll": "Remove poll",
   "privacy.change": "Adjust status privacy",
-  "privacy.direct.long": "Post to mentioned users only",
-  "privacy.direct.short": "Direct",
-  "privacy.private.long": "Post to followers only",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Post to public timelines",
-  "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Do not post to public timelines",
-  "privacy.unlisted.short": "Unlisted",
-  "regeneration_indicator.label": "Loading…",
+  "privacy.direct.long": "โพสต์ไปยังผู้ใช้ที่กล่าวถึงเท่านั้น",
+  "privacy.direct.short": "โดยตรง",
+  "privacy.private.long": "โพสต์ไปยังผู้ติดตามเท่านั้น",
+  "privacy.private.short": "ผู้ติดตามเท่านั้น",
+  "privacy.public.long": "โพสต์ไปยังเส้นเวลาสาธารณะ",
+  "privacy.public.short": "สาธารณะ",
+  "privacy.unlisted.long": "ไม่โพสต์ไปยังเส้นเวลาสาธารณะ",
+  "privacy.unlisted.short": "ไม่อยู่ในรายการ",
+  "regeneration_indicator.label": "กำลังโหลด…",
   "regeneration_indicator.sublabel": "Your home feed is being prepared!",
-  "relative_time.days": "{number}d",
-  "relative_time.hours": "{number}h",
-  "relative_time.just_now": "now",
-  "relative_time.minutes": "{number}m",
-  "relative_time.seconds": "{number}s",
-  "reply_indicator.cancel": "Cancel",
-  "report.forward": "Forward to {target}",
+  "relative_time.days": "{number} วัน",
+  "relative_time.hours": "{number} ชั่วโมง",
+  "relative_time.just_now": "ตอนนี้",
+  "relative_time.minutes": "{number} นาที",
+  "relative_time.seconds": "{number} วินาที",
+  "reply_indicator.cancel": "ยกเลิก",
+  "report.forward": "ส่งต่อไปยัง {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
   "report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
-  "report.placeholder": "Additional comments",
-  "report.submit": "Submit",
-  "report.target": "Reporting",
-  "search.placeholder": "Search",
-  "search_popout.search_format": "Advanced search format",
+  "report.placeholder": "ความคิดเห็นเพิ่มเติม",
+  "report.submit": "ส่ง",
+  "report.target": "กำลังรายงาน {target}",
+  "search.placeholder": "ค้นหา",
+  "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.hashtag": "hashtag",
-  "search_popout.tips.status": "status",
+  "search_popout.tips.hashtag": "แฮชแท็ก",
+  "search_popout.tips.status": "สถานะ",
   "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
-  "search_popout.tips.user": "user",
-  "search_results.accounts": "People",
-  "search_results.hashtags": "Hashtags",
-  "search_results.statuses": "Toots",
+  "search_popout.tips.user": "ผู้ใช้",
+  "search_results.accounts": "ผู้คน",
+  "search_results.hashtags": "แฮชแท็ก",
+  "search_results.statuses": "โพสต์",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "A look inside...",
-  "status.admin_account": "Open moderation interface for @{name}",
-  "status.admin_status": "Open this status in the moderation interface",
-  "status.block": "Block @{name}",
-  "status.cancel_reblog_private": "Unboost",
-  "status.cannot_reblog": "This post cannot be boosted",
-  "status.copy": "Copy link to status",
-  "status.delete": "Delete",
-  "status.detailed_status": "Detailed conversation view",
-  "status.direct": "Direct message @{name}",
+  "status.admin_account": "เปิดส่วนติดต่อการควบคุมสำหรับ @{name}",
+  "status.admin_status": "เปิดสถานะนี้ในส่วนติดต่อการควบคุม",
+  "status.block": "ปิดกั้น @{name}",
+  "status.cancel_reblog_private": "เลิกดัน",
+  "status.cannot_reblog": "ไม่สามารถดันโพสต์นี้",
+  "status.copy": "คัดลอกลิงก์ไปยังสถานะ",
+  "status.delete": "ลบ",
+  "status.detailed_status": "มุมมองการสนทนาโดยละเอียด",
+  "status.direct": "ส่งข้อความโดยตรงถึง @{name}",
   "status.embed": "Embed",
-  "status.favourite": "Favourite",
-  "status.filtered": "Filtered",
-  "status.load_more": "Load more",
-  "status.media_hidden": "Media hidden",
-  "status.mention": "Mention @{name}",
-  "status.more": "More",
-  "status.mute": "Mute @{name}",
-  "status.mute_conversation": "Mute conversation",
-  "status.open": "Expand this status",
-  "status.pin": "Pin on profile",
-  "status.pinned": "Pinned toot",
-  "status.read_more": "Read more",
-  "status.reblog": "Boost",
-  "status.reblog_private": "Boost to original audience",
-  "status.reblogged_by": "{name} boosted",
+  "status.favourite": "ชื่นชอบ",
+  "status.filtered": "กรองอยู่",
+  "status.load_more": "โหลดเพิ่มเติม",
+  "status.media_hidden": "ซ่อนสื่ออยู่",
+  "status.mention": "กล่าวถึง @{name}",
+  "status.more": "เพิ่มเติม",
+  "status.mute": "ปิดเสียง @{name}",
+  "status.mute_conversation": "ปิดเสียงการสนทนา",
+  "status.open": "ขยายสถานะนี้",
+  "status.pin": "ปักหมุดในโปรไฟล์",
+  "status.pinned": "โพสต์ที่ปักหมุด",
+  "status.read_more": "อ่านเพิ่มเติม",
+  "status.reblog": "ดัน",
+  "status.reblog_private": "ดันไปยังผู้ชมดั้งเดิม",
+  "status.reblogged_by": "{name} ได้ดัน",
   "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
-  "status.redraft": "Delete & re-draft",
-  "status.reply": "Reply",
-  "status.replyAll": "Reply to thread",
-  "status.report": "Report @{name}",
-  "status.sensitive_toggle": "Click to view",
-  "status.sensitive_warning": "Sensitive content",
-  "status.share": "Share",
-  "status.show_less": "Show less",
-  "status.show_less_all": "Show less for all",
-  "status.show_more": "Show more",
-  "status.show_more_all": "Show more for all",
-  "status.show_thread": "Show thread",
-  "status.unmute_conversation": "Unmute conversation",
-  "status.unpin": "Unpin from profile",
-  "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
-  "tabs_bar.federated_timeline": "Federated",
-  "tabs_bar.home": "Home",
-  "tabs_bar.local_timeline": "Local",
-  "tabs_bar.notifications": "Notifications",
-  "tabs_bar.search": "Search",
+  "status.redraft": "ลบแล้วร่างใหม่",
+  "status.reply": "ตอบกลับ",
+  "status.replyAll": "ตอบกลับกระทู้",
+  "status.report": "รายงาน @{name}",
+  "status.sensitive_toggle": "คลิกเพื่อดู",
+  "status.sensitive_warning": "เนื้อหาที่ละเอียดอ่อน",
+  "status.share": "แบ่งปัน",
+  "status.show_less": "แสดงน้อยลง",
+  "status.show_less_all": "แสดงน้อยลงทั้งหมด",
+  "status.show_more": "แสดงเพิ่มเติม",
+  "status.show_more_all": "แสดงเพิ่มเติมทั้งหมด",
+  "status.show_thread": "แสดงกระทู้",
+  "status.unmute_conversation": "เลิกปิดเสียงการสนทนา",
+  "status.unpin": "ถอนหมุดจากโปรไฟล์",
+  "suggestions.dismiss": "ยกเลิกข้อเสนอแนะ",
+  "suggestions.header": "คุณอาจสนใจ…",
+  "tabs_bar.federated_timeline": "ที่ติดต่อกับภายนอก",
+  "tabs_bar.home": "หน้าแรก",
+  "tabs_bar.local_timeline": "ในเว็บ",
+  "tabs_bar.notifications": "การแจ้งเตือน",
+  "tabs_bar.search": "ค้นหา",
   "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",
   "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
-  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
-  "upload_area.title": "Drag & drop to upload",
-  "upload_button.label": "Add media",
-  "upload_error.limit": "File upload limit exceeded.",
+  "ui.beforeunload": "แบบร่างของคุณจะหายไปหากคุณออกจาก Mastodon",
+  "upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด",
+  "upload_button.label": "เพิ่มสื่อ (JPEG, PNG, GIF, WebM, MP4, MOV)",
+  "upload_error.limit": "เกินขีดจำกัดการอัปโหลดไฟล์",
   "upload_error.poll": "File upload not allowed with polls.",
   "upload_form.description": "Describe for the visually impaired",
-  "upload_form.focus": "Crop",
-  "upload_form.undo": "Undo",
-  "upload_progress.label": "Uploading...",
-  "video.close": "Close video",
-  "video.exit_fullscreen": "Exit full screen",
-  "video.expand": "Expand video",
-  "video.fullscreen": "Full screen",
-  "video.hide": "Hide video",
-  "video.mute": "Mute sound",
-  "video.pause": "Pause",
-  "video.play": "Play",
-  "video.unmute": "Unmute sound"
+  "upload_form.focus": "ตัวอย่างการเปลี่ยนแปลง",
+  "upload_form.undo": "ลบ",
+  "upload_progress.label": "กำลังอัปโหลด...",
+  "video.close": "ปิดวิดีโอ",
+  "video.exit_fullscreen": "ออกจากเต็มหน้าจอ",
+  "video.expand": "ขยายวิดีโอ",
+  "video.fullscreen": "เต็มหน้าจอ",
+  "video.hide": "ซ่อนวิดีโอ",
+  "video.mute": "ปิดเสียง",
+  "video.pause": "หยุดชั่วคราว",
+  "video.play": "เล่น",
+  "video.unmute": "เลิกปิดเสียง"
 }
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 28b34fa04..e277416fd 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "Henüz hiçbir kullanıcıyı sessize almadınız.",
   "empty_column.notifications": "Henüz hiçbir bildiriminiz yok. Diğer insanlarla sobhet edebilmek için etkileşime geçebilirsiniz.",
   "empty_column.public": "Burada hiçbir şey yok! Herkese açık bir şeyler yazın veya burayı doldurmak için diğer sunuculardaki kullanıcıları takip edin",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Yetkilendir",
   "follow_request.reject": "Reddet",
   "getting_started.developers": "Geliştiriciler",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} senin durumunu favorilere ekledi",
   "notification.follow": "{name} seni takip ediyor",
   "notification.mention": "{name} mentioned you",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} senin durumunu boost etti",
   "notifications.clear": "Bildirimleri temizle",
   "notifications.clear_confirmation": "Tüm bildirimlerinizi kalıcı olarak temizlemek ister misiniz?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Yeni takipçiler:",
   "notifications.column_settings.mention": "Bahsedilenler:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Boost’lar:",
   "notifications.column_settings.show": "Bildirimlerde göster",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} notifications",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {sonuç} other {sonuçlar}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "@{name} için denetim arayüzünü açın",
   "status.admin_status": "Denetim arayüzünde bu durumu açın",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index bd492e9e9..3f02f887c 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "У вас ще немає сповіщень. Переписуйтесь з іншими користувачами, щоб почати розмову.",
   "empty_column.public": "Тут поки нічого немає! Опублікуйте щось, або вручну підпишіться на користувачів інших інстанцій, щоб заповнити стрічку",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "Авторизувати",
   "follow_request.reject": "Відмовити",
   "getting_started.developers": "Розробникам",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} вподобав(-ла) ваш допис",
   "notification.follow": "{name} підписався(-лась) на Вас",
   "notification.mention": "{name} згадав(-ла) Вас",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} передмухнув(-ла) Ваш допис",
   "notifications.clear": "Очистити сповіщення",
   "notifications.clear_confirmation": "Ви впевнені, що хочете назавжди видалити всі сповіщеня?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "Нові підписники:",
   "notifications.column_settings.mention": "Згадки:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push-сповіщення",
   "notifications.column_settings.reblog": "Передмухи:",
   "notifications.column_settings.show": "Показати в колонці",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} сповіщень",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
   "search_results.total": "{count, number} {count, plural, one {результат} few {результати} many {результатів} other {результатів}}",
-  "standalone.public_title": "A look inside...",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Block @{name}",
diff --git a/app/javascript/mastodon/locales/whitelist_bn.json b/app/javascript/mastodon/locales/whitelist_bn.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/mastodon/locales/whitelist_bn.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index ae319d232..f17274e69 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "你还没有收到过任何通知,快向其他用户搭讪吧。",
   "empty_column.public": "这里神马都没有!写一些公开的嘟文,或者关注其他实例的用户后,这里就会有嘟文出现了哦!",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "同意",
   "follow_request.reject": "拒绝",
   "getting_started.developers": "开发",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} 收藏了你的嘟文",
   "notification.follow": "{name} 开始关注你",
   "notification.mention": "{name} 提及你",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} 转嘟了你的嘟文",
   "notifications.clear": "清空通知列表",
   "notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "当有人关注你时:",
   "notifications.column_settings.mention": "当有人在嘟文中提及你时:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "推送通知",
   "notifications.column_settings.reblog": "当有人转嘟了你的嘟文时:",
   "notifications.column_settings.show": "在通知栏显示",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} 条通知",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "话题标签",
   "search_results.statuses": "嘟文",
   "search_results.total": "共 {count, number} 个结果",
-  "standalone.public_title": "大家都在干啥?",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "屏蔽 @{name}",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 4fde7ef45..54b8ab498 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -133,7 +133,6 @@
   "empty_column.mutes": "You haven't muted any users yet.",
   "empty_column.notifications": "你沒有任何通知紀錄,快向其他用戶搭訕吧。",
   "empty_column.public": "跨站時間軸暫時沒有內容!快寫一些公共的文章,或者關注另一些服務站的用戶吧!你和本站、友站的交流,將決定這裏出現的內容。",
-  "error_boundary.it_crashed": "It crashed!",
   "follow_request.authorize": "批准",
   "follow_request.reject": "拒絕",
   "getting_started.developers": "開發者",
@@ -248,6 +247,7 @@
   "notification.favourite": "{name} 收藏了你的文章",
   "notification.follow": "{name} 開始關注你",
   "notification.mention": "{name} 提及你",
+  "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} 轉推你的文章",
   "notifications.clear": "清空通知紀錄",
   "notifications.clear_confirmation": "你確定要清空通知紀錄嗎?",
@@ -258,6 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Show",
   "notifications.column_settings.follow": "關注你:",
   "notifications.column_settings.mention": "提及你:",
+  "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "推送通知",
   "notifications.column_settings.reblog": "轉推你的文章:",
   "notifications.column_settings.show": "在通知欄顯示",
@@ -267,6 +268,7 @@
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} 條通知",
   "poll.closed": "Closed",
   "poll.refresh": "Refresh",
@@ -308,7 +310,6 @@
   "search_results.hashtags": "標籤",
   "search_results.statuses": "文章",
   "search_results.total": "{count, number} 項結果",
-  "standalone.public_title": "站點一瞥…",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "封鎖 @{name}",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 9a116a702..a44a1d90e 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -1,222 +1,221 @@
 {
-  "account.add_or_remove_from_list": "Add or Remove from lists",
+  "account.add_or_remove_from_list": "從名單中新增或移除",
   "account.badges.bot": "機器人",
   "account.block": "封鎖 @{name}",
-  "account.block_domain": "隱藏來自 {domain} 的一切嘟文",
-  "account.blocked": "已被封鎖的",
-  "account.direct": "發送私訊給 @{name}",
-  "account.disclaimer_full": "下列資料不一定完整。",
-  "account.domain_blocked": "站點被隱藏",
-  "account.edit_profile": "編輯使用者資訊",
-  "account.endorse": "在個人資訊頁面上推薦對方",
+  "account.block_domain": "隱藏來自 {domain} 的所有嘟文",
+  "account.blocked": "已封鎖",
+  "account.direct": "傳私訊給 @{name}",
+  "account.disclaimer_full": "下方的使用者個人資料不一定完整。",
+  "account.domain_blocked": "已隱藏網域",
+  "account.edit_profile": "編輯個人資料",
+  "account.endorse": "在個人資料推薦對方",
   "account.follow": "關注",
   "account.followers": "關注者",
-  "account.followers.empty": "還沒有人關注這個使用者。",
+  "account.followers.empty": "還沒有人關注這位使用者。",
   "account.follows": "正在關注",
-  "account.follows.empty": "這個使用者還沒有關注任何人。",
-  "account.follows_you": "關注你",
+  "account.follows.empty": "這個使用者尚未關注任何使用者。",
+  "account.follows_you": "關注了你",
   "account.hide_reblogs": "隱藏來自 @{name} 的轉推",
-  "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.link_verified_on": "此連結的所有權已在 {date} 檢查",
+  "account.locked_info": "此帳號的隱私狀態被設為鎖定,擁有者將手動審核可關注此帳號的人。",
   "account.media": "媒體",
-  "account.mention": "提到 @{name}",
-  "account.moved_to": "{name} 已經移至:",
+  "account.mention": "提及 @{name}",
+  "account.moved_to": "{name} 已遷移至:",
   "account.mute": "靜音 @{name}",
   "account.mute_notifications": "靜音來自 @{name} 的通知",
-  "account.muted": "靜音",
+  "account.muted": "已靜音",
   "account.posts": "嘟文",
   "account.posts_with_replies": "嘟文與回覆",
   "account.report": "檢舉 @{name}",
-  "account.requested": "正在等待對方同意。點擊以取消發送關注請求",
-  "account.share": "分享 @{name} 的使用者資訊",
+  "account.requested": "正在等待核准。按一下取消關注請求",
+  "account.share": "分享 @{name} 的個人資料",
   "account.show_reblogs": "顯示來自 @{name} 的嘟文",
   "account.unblock": "取消封鎖 @{name}",
-  "account.unblock_domain": "不再隱藏 {domain}",
-  "account.unendorse": "不再於個人資訊頁面上推薦對方",
+  "account.unblock_domain": "取消隱藏 {domain}",
+  "account.unendorse": "不再於個人資料頁面推薦對方",
   "account.unfollow": "取消關注",
   "account.unmute": "不再靜音 @{name}",
-  "account.unmute_notifications": "不再對來自 @{name} 的通知靜音",
-  "account.view_full_profile": "查看完整資訊",
-  "alert.unexpected.message": "發生非預期的錯誤。",
+  "account.unmute_notifications": "不再靜音來自 @{name} 的通知",
+  "account.view_full_profile": "查看完整資料",
+  "alert.unexpected.message": "發生了非預期的錯誤。",
   "alert.unexpected.title": "哎呀!",
-  "boost_modal.combo": "下次你可以按 {combo} 來跳過",
-  "bundle_column_error.body": "加載本組件出錯。",
+  "boost_modal.combo": "下次您可以按 {combo} 跳過",
+  "bundle_column_error.body": "載入此組件時發生錯誤。",
   "bundle_column_error.retry": "重試",
   "bundle_column_error.title": "網路錯誤",
   "bundle_modal_error.close": "關閉",
-  "bundle_modal_error.message": "加載本組件出錯。",
+  "bundle_modal_error.message": "載入此組件時發生錯誤。",
   "bundle_modal_error.retry": "重試",
   "column.blocks": "封鎖的使用者",
   "column.community": "本地時間軸",
   "column.direct": "私訊",
-  "column.domain_blocks": "隱藏的站點",
+  "column.domain_blocks": "隱藏的網域",
   "column.favourites": "最愛",
   "column.follow_requests": "關注請求",
   "column.home": "主頁",
   "column.lists": "名單",
-  "column.mutes": "靜音的使用者",
+  "column.mutes": "被靜音的使用者",
   "column.notifications": "通知",
-  "column.pins": "置頂嘟文",
-  "column.public": "其他站點時間軸",
+  "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.moveLeft_settings": "將欄位向左移動",
+  "column_header.moveRight_settings": "將欄位向右移動",
+  "column_header.pin": "釘選",
   "column_header.show_settings": "顯示設定",
-  "column_header.unpin": "取下",
+  "column_header.unpin": "取消釘選",
   "column_subheading.settings": "設定",
   "community.column_settings.media_only": "僅媒體",
-  "compose_form.direct_message_warning": "這條嘟文僅對有被提及的使用者才能看到。",
+  "compose_form.direct_message_warning": "這條嘟文只有被提及的使用者才能看到。",
   "compose_form.direct_message_warning_learn_more": "了解更多",
-  "compose_form.hashtag_warning": "此則推文將不會在任何主題標籤中看見,只有公開的推文可以用主題標籤來搜尋。",
-  "compose_form.lock_disclaimer": "你的帳號沒有{locked}。任何人都可以關注你,看到發給關注者的嘟文。",
+  "compose_form.hashtag_warning": "因這則嘟文設成「不公開」,因此它不會列在任何「#」標籤下。只有公開嘟文才能用「#」標籤找到。",
+  "compose_form.lock_disclaimer": "您的帳戶尚未{locked}。任何人都能關注您並看到您設定成僅關注者能看的嘟文。",
   "compose_form.lock_disclaimer.lock": "上鎖",
-  "compose_form.placeholder": "在想些什麼?",
-  "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.placeholder": "您正在想些什麼?",
+  "compose_form.poll.add_option": "新增選擇",
+  "compose_form.poll.duration": "投票期限",
+  "compose_form.poll.option_placeholder": "第 {number} 個選擇",
+  "compose_form.poll.remove_option": "移除此選擇",
   "compose_form.publish": "嘟掉",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.marked": "此媒體已被標註為敏感的",
-  "compose_form.sensitive.unmarked": "此媒體未被標註為敏感的",
-  "compose_form.spoiler.marked": "文字隱藏在警告後",
-  "compose_form.spoiler.unmarked": "文字不是隱藏的",
-  "compose_form.spoiler_placeholder": "內容警告",
+  "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.confirm": "封鎖",
   "confirmations.block.message": "你確定要封鎖 {name} ?",
   "confirmations.delete.confirm": "刪除",
-  "confirmations.delete.message": "你確定要刪除這個狀態?",
+  "confirmations.delete.message": "你確定要刪除這條嘟文?",
   "confirmations.delete_list.confirm": "刪除",
-  "confirmations.delete_list.message": "確定要永久性地刪除這個名單嗎?",
+  "confirmations.delete_list.message": "確定要永久刪除此名單?",
   "confirmations.domain_block.confirm": "隱藏整個網域",
-  "confirmations.domain_block.message": "你真的確定要靜音所有來自 {domain} 的內容嗎? 多數情況下,封鎖或靜音幾個特定用戶應該就能滿足你的需求了。來自該站點的內容將不再出現在你的公共時間軸或通知裡。來自該站點的關注者將會被移除。",
-  "confirmations.mute.confirm": "消音",
-  "confirmations.mute.message": "你確定要消音 {name} ?",
-  "confirmations.redraft.confirm": "刪除 & 編輯",
-  "confirmations.redraft.message": "你確定要刪除這條嘟文並重新編輯它嗎?所有相關的轉嘟與最愛都會被刪除,而對原始嘟文的回覆將會變成孤兒。",
-  "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.domain_block.message": "確定封鎖整個 {domain} 嗎?多數情況下,封鎖或靜音幾個特定使用者應該就能滿足你的需求了。您將不能在任何公開時間軸或通知中看到來自該網域的內容。來自該網域的關注者將被移除。",
+  "confirmations.mute.confirm": "靜音",
+  "confirmations.mute.message": "確定靜音 {name} ?",
+  "confirmations.redraft.confirm": "刪除並重新編輯",
+  "confirmations.redraft.message": "你確定要刪除這條嘟文並重新編輯它嗎?這麼做將失去轉嘟和最愛,而對原始嘟文的回覆將被孤立。",
+  "confirmations.reply.confirm": "回覆",
+  "confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?",
   "confirmations.unfollow.confirm": "取消關注",
-  "confirmations.unfollow.message": "真的不要繼續關注 {name} 了嗎?",
-  "embed.instructions": "要內嵌此嘟文,請將以下代碼貼進你的網站。",
-  "embed.preview": "看上去會變成這樣:",
+  "confirmations.unfollow.message": "真的要取消關注 {name} 嗎?",
+  "embed.instructions": "要嵌入此嘟文,請將以下代碼貼進你的網站。",
+  "embed.preview": "他會顯示成這樣:",
   "emoji_button.activity": "活動",
   "emoji_button.custom": "自訂",
-  "emoji_button.flags": "旗幟",
+  "emoji_button.flags": "旗標",
   "emoji_button.food": "飲食",
   "emoji_button.label": "插入表情符號",
-  "emoji_button.nature": "自然",
-  "emoji_button.not_found": "沒有表情符號吼!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.nature": "大自然",
+  "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": "符號",
   "emoji_button.travel": "旅遊與地點",
-  "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_timeline": "這裡還沒有嘟文!",
   "empty_column.blocks": "你還沒有封鎖任何使用者。",
-  "empty_column.community": "本地時間軸是空的。公開寫點什麼吧!",
-  "empty_column.direct": "你還沒有使用過私訊。當你發出或著收到私訊時,它會在這裡顯示。",
-  "empty_column.domain_blocks": "還沒有隱藏任何網域。",
-  "empty_column.favourited_statuses": "你還沒有收藏任何嘟文。收藏後的嘟文會顯示在這裡。",
-  "empty_column.favourites": "還沒有人收藏此嘟文。如果有人收藏,會顯示在這裡。",
-  "empty_column.follow_requests": "還沒有人請求關注你。如果收到關注請求,會顯示在這裡。",
-  "empty_column.hashtag": "這個主題標籤下什麼都沒有。",
-  "empty_column.home": "你還沒關注任何人。造訪{public}或利用搜尋功能找到其他用者。",
+  "empty_column.community": "本地時間軸是空的。快公開嘟些文搶頭香啊!",
+  "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。",
+  "empty_column.domain_blocks": "尚未隱藏任何網域。",
+  "empty_column.favourited_statuses": "你還沒有將任何嘟文標為最愛。最愛的嘟文將顯示於此。",
+  "empty_column.favourites": "還沒有人將此嘟文標為最愛。如果有人標成最愛,則會顯示在這裡。",
+  "empty_column.follow_requests": "您尚未收到任何關注請求。收到時會顯示於此。",
+  "empty_column.hashtag": "這個「#」標籤下什麼都沒有。",
+  "empty_column.home": "您的首頁時間軸是空的!前往 {public} 或使用搜尋功能來認識其他人。",
   "empty_column.home.public_timeline": "公開時間軸",
-  "empty_column.list": "此份名單尚未有東西。當此名單的成員嘟出了新的狀態時,它們就會出現在這裡。",
+  "empty_column.list": "此份名單還沒有東西。當此名單的成員嘟出了新的嘟文時,它們就會出現在這裡。",
   "empty_column.lists": "你還沒有建立任何名單。你建立的名單將會顯示在這裡。",
   "empty_column.mutes": "你還沒有靜音任何使用者。",
-  "empty_column.notifications": "還沒有任何通知。和別的使用者互動來開始對話。",
-  "empty_column.public": "這裡什麼都沒有! 寫一些公開的嘟文,或著關注其他站點的使用者後,這裡就會有嘟文出現了",
-  "error_boundary.it_crashed": "It crashed!",
+  "empty_column.notifications": "您尚未收到任何通知,和別人互動開啟對話吧。",
+  "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己關注其他伺服器的使用者後就會有嘟文出現了",
   "follow_request.authorize": "授權",
   "follow_request.reject": "拒絕",
-  "getting_started.developers": "開發",
-  "getting_started.directory": "Profile directory",
+  "getting_started.developers": "開發者",
+  "getting_started.directory": "個人資料目錄",
   "getting_started.documentation": "文件",
-  "getting_started.heading": "馬上開始",
+  "getting_started.heading": "開始使用",
   "getting_started.invite": "邀請使用者",
-  "getting_started.open_source_notice": "Mastodon 是開源軟體。你可以在 GitHub {github} 上做出貢獻或是回報問題。",
-  "getting_started.security": "登入資訊",
-  "getting_started.terms": "使用條款",
-  "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",
+  "getting_started.open_source_notice": "Mastodon 是開源軟體。你可以在 GitHub {github} 上貢獻或是回報問題。",
+  "getting_started.security": "安全性",
+  "getting_started.terms": "服務條款",
+  "hashtag.column_header.tag_mode.all": "以及{additional}",
+  "hashtag.column_header.tag_mode.any": "或是{additional}",
+  "hashtag.column_header.tag_mode.none": "而不用{additional}",
+  "hashtag.column_settings.select.no_options_message": "找不到建議",
+  "hashtag.column_settings.select.placeholder": "輸入「#」標籤…",
+  "hashtag.column_settings.tag_mode.all": "全部",
+  "hashtag.column_settings.tag_mode.any": "任一",
+  "hashtag.column_settings.tag_mode.none": "全都不要",
+  "hashtag.column_settings.tag_toggle": "對此欄位加入額外標籤",
   "home.column_settings.basic": "基本",
   "home.column_settings.show_reblogs": "顯示轉推",
-  "home.column_settings.show_replies": "顯示回應",
-  "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}}",
-  "introduction.federation.action": "Next",
-  "introduction.federation.federated.headline": "Federated",
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
-  "introduction.federation.home.headline": "Home",
-  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
-  "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
-  "introduction.interactions.action": "Finish tutorial!",
-  "introduction.interactions.favourite.headline": "Favourite",
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
-  "introduction.interactions.reblog.headline": "Boost",
-  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
-  "introduction.interactions.reply.headline": "Reply",
-  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
-  "introduction.welcome.headline": "First steps",
-  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
-  "keyboard_shortcuts.back": "回到上一個",
-  "keyboard_shortcuts.blocked": "到封鎖的使用者名單",
-  "keyboard_shortcuts.boost": "到轉推",
-  "keyboard_shortcuts.column": "選擇第 X 欄中的嘟文",
-  "keyboard_shortcuts.compose": "焦點移至撰寫文字區塊",
+  "home.column_settings.show_replies": "顯示回覆",
+  "intervals.full.days": "{number, plural, one {# 天} other {# 天}}",
+  "intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}",
+  "intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}",
+  "introduction.federation.action": "下一步",
+  "introduction.federation.federated.headline": "聯邦",
+  "introduction.federation.federated.text": "來自聯邦網路中其他伺服器的公開嘟文將會在聯邦網路時間軸中顯示。",
+  "introduction.federation.home.headline": "首頁",
+  "introduction.federation.home.text": "您所關注使用者所發的嘟文將顯示在首頁的訊息來源。您能關注任何伺服器上的任何人!",
+  "introduction.federation.local.headline": "本地",
+  "introduction.federation.local.text": "跟您同伺服器之使用者所發的公開嘟文將會顯示在本地時間軸中。",
+  "introduction.interactions.action": "完成教學!",
+  "introduction.interactions.favourite.headline": "最愛",
+  "introduction.interactions.favourite.text": "您能稍候儲存嘟文,或者將嘟文加到最愛,讓作者知道您喜歡這嘟文。",
+  "introduction.interactions.reblog.headline": "轉嘟",
+  "introduction.interactions.reblog.text": "您能透過轉嘟他人嘟文來分享給您的關注者。",
+  "introduction.interactions.reply.headline": "回覆",
+  "introduction.interactions.reply.text": "您能回覆其他人或自己的嘟文。將會把這些回覆串成一串對話。",
+  "introduction.welcome.action": "開始!",
+  "introduction.welcome.headline": "第一步",
+  "introduction.welcome.text": "歡迎來到聯邦!稍候您將可以廣播訊息並跨各種各式各樣的伺服器與朋友聊天。但這台伺服器,{domain},十分特殊 -- 它寄管了您的個人資料,所以請記住這台伺服器的名稱。",
+  "keyboard_shortcuts.back": "返回上一頁",
+  "keyboard_shortcuts.blocked": "開啟「封鎖的使用者」名單",
+  "keyboard_shortcuts.boost": "轉嘟",
+  "keyboard_shortcuts.column": "將焦點放在其中一欄的嘟文",
+  "keyboard_shortcuts.compose": "將焦點移至撰寫文字區塊",
   "keyboard_shortcuts.description": "描述",
-  "keyboard_shortcuts.direct": "到私訊欄",
-  "keyboard_shortcuts.down": "在列表往下移動",
-  "keyboard_shortcuts.enter": "看嘟文",
-  "keyboard_shortcuts.favourite": "收藏",
-  "keyboard_shortcuts.favourites": "到收藏名單",
-  "keyboard_shortcuts.federated": "到其他站點時間軸",
+  "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.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.pinned": "到收藏的嘟文名單",
-  "keyboard_shortcuts.profile": "到嘟文作者的個人資訊頁",
-  "keyboard_shortcuts.reply": "到回應",
-  "keyboard_shortcuts.requests": "打開關注請求名單",
-  "keyboard_shortcuts.search": "把滑鼠移動到搜尋",
-  "keyboard_shortcuts.start": "到「馬上開始」",
-  "keyboard_shortcuts.toggle_hidden": "顯示或隱藏被標為敏感的嘟文",
-  "keyboard_shortcuts.toot": "新的嘟文",
-  "keyboard_shortcuts.unfocus": "取消輸入",
-  "keyboard_shortcuts.up": "在列表往上移動",
+  "keyboard_shortcuts.legend": "顯示此說明",
+  "keyboard_shortcuts.local": "開啟本地時間軸",
+  "keyboard_shortcuts.mention": "提及作者",
+  "keyboard_shortcuts.muted": "開啟靜音使用者名單",
+  "keyboard_shortcuts.my_profile": "開啟個人資料頁面",
+  "keyboard_shortcuts.notifications": "開啟通知欄",
+  "keyboard_shortcuts.pinned": "開啟釘選的嘟文名單",
+  "keyboard_shortcuts.profile": "開啟作者的個人資料頁",
+  "keyboard_shortcuts.reply": "回應嘟文",
+  "keyboard_shortcuts.requests": "開啟關注請求名單",
+  "keyboard_shortcuts.search": "將焦點移至搜尋框",
+  "keyboard_shortcuts.start": "開啟「開始使用」欄位",
+  "keyboard_shortcuts.toggle_hidden": "顯示/隱藏在內容警告之後的正文",
+  "keyboard_shortcuts.toot": "開始發出新嘟文",
+  "keyboard_shortcuts.unfocus": "取消輸入文字區塊 / 搜尋的焦點",
+  "keyboard_shortcuts.up": "在名單中往上移動",
   "lightbox.close": "關閉",
-  "lightbox.next": "繼續",
-  "lightbox.previous": "回退",
-  "lists.account.add": "加到名單裡",
+  "lightbox.next": "下一步",
+  "lightbox.previous": "上一步",
+  "lists.account.add": "新增至名單",
   "lists.account.remove": "從名單中移除",
   "lists.delete": "刪除名單",
-  "lists.edit": "修改名單",
-  "lists.edit.submit": "Change title",
+  "lists.edit": "編輯名單",
+  "lists.edit.submit": "變更標題",
   "lists.new.create": "新增名單",
-  "lists.new.title_placeholder": "名單名稱",
+  "lists.new.title_placeholder": "新名單標題",
   "lists.search": "搜尋您關注的使用者",
   "lists.subheading": "您的名單",
   "loading_indicator.label": "讀取中...",
@@ -227,53 +226,56 @@
   "navigation_bar.apps": "行動應用程式",
   "navigation_bar.blocks": "封鎖的使用者",
   "navigation_bar.community_timeline": "本地時間軸",
-  "navigation_bar.compose": "寫新的嘟文",
+  "navigation_bar.compose": "撰寫新嘟文",
   "navigation_bar.direct": "私訊",
   "navigation_bar.discover": "探索",
-  "navigation_bar.domain_blocks": "隱藏的站點",
-  "navigation_bar.edit_profile": "編輯使用者資訊",
-  "navigation_bar.favourites": "最愛",
-  "navigation_bar.filters": "消音的詞",
+  "navigation_bar.domain_blocks": "隱藏的網域",
+  "navigation_bar.edit_profile": "編輯個人資料",
+  "navigation_bar.favourites": "最愛內容",
+  "navigation_bar.filters": "靜音詞彙",
   "navigation_bar.follow_requests": "關注請求",
-  "navigation_bar.info": "關於本站",
-  "navigation_bar.keyboard_shortcuts": "快捷鍵",
+  "navigation_bar.info": "關於此伺服器",
+  "navigation_bar.keyboard_shortcuts": "快速鍵",
   "navigation_bar.lists": "名單",
   "navigation_bar.logout": "登出",
   "navigation_bar.mutes": "靜音的使用者",
   "navigation_bar.personal": "個人",
-  "navigation_bar.pins": "置頂嘟文",
+  "navigation_bar.pins": "釘選的嘟文",
   "navigation_bar.preferences": "偏好設定",
-  "navigation_bar.public_timeline": "其他站點時間軸",
-  "navigation_bar.security": "登入資訊",
-  "notification.favourite": "{name}把你的嘟文加入了最愛",
-  "notification.follow": "{name}關注了你",
-  "notification.mention": "{name}提到了你",
+  "navigation_bar.public_timeline": "聯邦時間軸",
+  "navigation_bar.security": "安全性",
+  "notification.favourite": "{name} 把你的嘟文加入了最愛",
+  "notification.follow": "{name} 關注了你",
+  "notification.mention": "{name} 提到了你",
+  "notification.poll": "您投過的投票已經結束",
   "notification.reblog": "{name}轉嘟了你的嘟文",
   "notifications.clear": "清除通知",
   "notifications.clear_confirmation": "確定要永久清除你的通知嗎?",
   "notifications.column_settings.alert": "桌面通知",
   "notifications.column_settings.favourite": "最愛:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
-  "notifications.column_settings.filter_bar.show": "Show",
-  "notifications.column_settings.follow": "新的關注者:",
-  "notifications.column_settings.mention": "提到:",
+  "notifications.column_settings.filter_bar.advanced": "顯示所有分類",
+  "notifications.column_settings.filter_bar.category": "快速過濾欄",
+  "notifications.column_settings.filter_bar.show": "顯示",
+  "notifications.column_settings.follow": "新關注者:",
+  "notifications.column_settings.mention": "提及:",
+  "notifications.column_settings.poll": "投票結果:",
   "notifications.column_settings.push": "推送通知",
   "notifications.column_settings.reblog": "轉嘟:",
-  "notifications.column_settings.show": "顯示在欄位中",
+  "notifications.column_settings.show": "在欄位中顯示",
   "notifications.column_settings.sound": "播放音效",
-  "notifications.filter.all": "All",
-  "notifications.filter.boosts": "Boosts",
-  "notifications.filter.favourites": "Favourites",
-  "notifications.filter.follows": "Follows",
-  "notifications.filter.mentions": "Mentions",
+  "notifications.filter.all": "全部",
+  "notifications.filter.boosts": "轉嘟",
+  "notifications.filter.favourites": "最愛",
+  "notifications.filter.follows": "關注的使用者",
+  "notifications.filter.mentions": "提及",
+  "notifications.filter.polls": "投票結果",
   "notifications.group": "{count} 條通知",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll.closed": "已關閉",
+  "poll.refresh": "重新整理",
+  "poll.total_votes": "{count, plural, one {# 個投票} other {# 個投票}}",
+  "poll.vote": "投票",
+  "poll_button.add_poll": "建立投票",
+  "poll_button.remove_poll": "移除投票",
   "privacy.change": "調整隱私狀態",
   "privacy.direct.long": "只有被提到的使用者能看到",
   "privacy.direct.short": "私訊",
@@ -293,7 +295,7 @@
   "reply_indicator.cancel": "取消",
   "report.forward": "轉寄到 {target}",
   "report.forward_hint": "這個帳戶屬於其他站點。要像該站點發送匿名的檢舉訊息嗎?",
-  "report.hint": "這項訊息會發送到你該站點的管理員。你可以提供檢舉這個帳戶的理由:",
+  "report.hint": "這項訊息會發送到您伺服器的管理員。你可以提供檢舉這個帳戶的理由:",
   "report.placeholder": "更多訊息",
   "report.submit": "送出",
   "report.target": "檢舉 {target}",
@@ -301,20 +303,19 @@
   "search_popout.search_format": "進階搜尋格式",
   "search_popout.tips.full_text": "輸入簡單的文字,搜尋由你撰寫、最愛、轉嘟或提你的嘟文,以及符合使用者名稱、帳戶名稱和標籤。",
   "search_popout.tips.hashtag": "主題標籤",
-  "search_popout.tips.status": "狀態",
+  "search_popout.tips.status": "嘟文",
   "search_popout.tips.text": "輸入簡單的文字,搜尋符合的使用者名稱,帳戶名稱與標籤",
   "search_popout.tips.user": "使用者",
   "search_results.accounts": "使用者",
   "search_results.hashtags": "主題標籤",
   "search_results.statuses": "嘟文",
   "search_results.total": "{count, number} 項結果",
-  "standalone.public_title": "站點一瞥…",
-  "status.admin_account": "Open moderation interface for @{name}",
-  "status.admin_status": "Open this status in the moderation interface",
+  "status.admin_account": "開啟 @{name} 的管理介面",
+  "status.admin_status": "在管理介面開啟此嘟文",
   "status.block": "封鎖 @{name}",
   "status.cancel_reblog_private": "取消轉嘟",
   "status.cannot_reblog": "這篇嘟文無法被轉嘟",
-  "status.copy": "Copy link to status",
+  "status.copy": "將連結複製到嘟文中",
   "status.delete": "刪除",
   "status.detailed_status": "對話的詳細內容",
   "status.direct": "發送私訊給 @{name}",
@@ -328,9 +329,9 @@
   "status.mute": "靜音 @{name}",
   "status.mute_conversation": "靜音對話",
   "status.open": "展開嘟文",
-  "status.pin": "置頂到個人資訊頁",
-  "status.pinned": "置頂嘟文",
-  "status.read_more": "Read more",
+  "status.pin": "釘選到個人資料頁",
+  "status.pinned": "釘選的嘟文",
+  "status.read_more": "閱讀更多",
   "status.reblog": "轉嘟",
   "status.reblog_private": "轉嘟給原有關注者",
   "status.reblogged_by": "{name} 轉嘟了",
@@ -346,29 +347,29 @@
   "status.show_less_all": "減少顯示這類嘟文",
   "status.show_more": "顯示更多",
   "status.show_more_all": "顯示更多這類嘟文",
-  "status.show_thread": "Show thread",
+  "status.show_thread": "顯示討論串",
   "status.unmute_conversation": "解除此對話的靜音",
   "status.unpin": "解除置頂",
-  "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
+  "suggestions.dismiss": "關閉建議",
+  "suggestions.header": "您可能對這些東西有興趣…",
   "tabs_bar.federated_timeline": "其他站點",
   "tabs_bar.home": "主頁",
   "tabs_bar.local_timeline": "本站",
   "tabs_bar.notifications": "通知",
   "tabs_bar.search": "搜尋",
-  "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",
+  "time_remaining.days": "剩餘{number, plural, one {# 天數} other {# 天數}}",
+  "time_remaining.hours": "剩餘{number, plural, one {# 小時} other {# 小時}}",
+  "time_remaining.minutes": "剩餘{number, plural, one {# 分鐘} other {# 分鐘}}",
+  "time_remaining.moments": "剩餘時間",
+  "time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}",
   "trends.count_by_accounts": "{count} 位使用者在討論",
   "ui.beforeunload": "如果離開 Mastodon,你的草稿將會不見。",
   "upload_area.title": "拖放來上傳",
   "upload_button.label": "上傳媒體檔案 (JPEG, PNG, GIF, WebM, MP4, MOV)",
-  "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.limit": "已達到檔案上傳限制。",
+  "upload_error.poll": "不允許在投票上傳檔案。",
   "upload_form.description": "為視障人士增加文字說明",
-  "upload_form.focus": "裁切",
+  "upload_form.focus": "變更預覽",
   "upload_form.undo": "刪除",
   "upload_progress.label": "上傳中...",
   "video.close": "關閉影片",
diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js
index 94b570ecd..6a972f967 100644
--- a/app/javascript/mastodon/reducers/timelines.js
+++ b/app/javascript/mastodon/reducers/timelines.js
@@ -78,14 +78,15 @@ const updateTimeline = (state, timeline, status) => {
   }));
 };
 
-const deleteStatus = (state, id, accountId, references) => {
+const deleteStatus = (state, id, accountId, references, exclude_account = null) => {
   state.keySeq().forEach(timeline => {
-    state = state.updateIn([timeline, 'items'], list => list.filterNot(item => item === id));
+    if (exclude_account === null || (timeline !== `account:${exclude_account}` && !timeline.startsWith(`account:${exclude_account}:`)))
+      state = state.updateIn([timeline, 'items'], list => list.filterNot(item => item === id));
   });
 
   // Remove reblogs of deleted status
   references.forEach(ref => {
-    state = deleteStatus(state, ref[0], ref[1], []);
+    state = deleteStatus(state, ref[0], ref[1], [], exclude_account);
   });
 
   return state;
@@ -104,7 +105,7 @@ const filterTimelines = (state, relationship, statuses) => {
     }
 
     references = statuses.filter(item => item.get('reblog') === status.get('id')).map(item => [item.get('id'), item.get('account')]);
-    state      = deleteStatus(state, status.get('id'), status.get('account'), references);
+    state      = deleteStatus(state, status.get('id'), status.get('account'), references, relationship.id);
   });
 
   return state;
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index 42f53f525..05c7821e4 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -220,6 +220,11 @@ $content-width: 840px;
       color: $error-value-color;
       font-weight: 500;
     }
+
+    .neutral-hint {
+      color: $dark-text-color;
+      font-weight: 500;
+    }
   }
 
   @media screen and (max-width: $no-columns-breakpoint) {
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 5b86778bb..53c392062 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -1186,57 +1186,6 @@ a .account__avatar {
   white-space: nowrap;
 }
 
-.account__header {
-  flex: 0 0 auto;
-  background: lighten($ui-base-color, 4%);
-  text-align: center;
-  background-size: cover;
-  background-position: center;
-  position: relative;
-
-  &.inactive {
-    opacity: 0.5;
-
-    .account__header__avatar {
-      filter: grayscale(100%);
-    }
-
-    .account__header__username {
-      color: $secondary-text-color;
-    }
-  }
-
-  & > div {
-    background: rgba(lighten($ui-base-color, 4%), 0.9);
-    padding: 20px 10px;
-  }
-
-  .account__header__content {
-    color: $secondary-text-color;
-  }
-
-  .account__header__display-name {
-    color: $primary-text-color;
-    display: inline-block;
-    width: 100%;
-    font-size: 20px;
-    line-height: 27px;
-    font-weight: 500;
-    overflow: hidden;
-    text-overflow: ellipsis;
-  }
-
-  .account__header__username {
-    color: $highlight-text-color;
-    font-size: 14px;
-    font-weight: 400;
-    display: block;
-    margin-bottom: 10px;
-    overflow: hidden;
-    text-overflow: ellipsis;
-  }
-}
-
 .account__disclaimer {
   padding: 10px;
   border-top: 1px solid lighten($ui-base-color, 8%);
@@ -1265,39 +1214,6 @@ a .account__avatar {
   }
 }
 
-.account__header__content {
-  color: $darker-text-color;
-  font-size: 14px;
-  font-weight: 400;
-  overflow: hidden;
-  word-break: normal;
-  word-wrap: break-word;
-
-  p {
-    margin-bottom: 20px;
-
-    &:last-child {
-      margin-bottom: 0;
-    }
-  }
-
-  a {
-    color: inherit;
-    text-decoration: underline;
-
-    &:hover {
-      text-decoration: none;
-    }
-  }
-}
-
-.account__header__display-name {
-  .emojione {
-    width: 25px;
-    height: 25px;
-  }
-}
-
 .account__action-bar {
   border-top: 1px solid lighten($ui-base-color, 8%);
   border-bottom: 1px solid lighten($ui-base-color, 8%);
@@ -1369,15 +1285,6 @@ a .account__avatar {
   }
 }
 
-.account__header__avatar {
-  background-size: 90px 90px;
-  display: block;
-  height: 90px;
-  margin: 0 auto 10px;
-  overflow: hidden;
-  width: 90px;
-}
-
 .account-authorize {
   padding: 14px 10px;
 
@@ -3154,29 +3061,11 @@ a.status-card.compact:hover {
   }
 }
 
-.account--follows-info {
+.relationship-tag {
   color: $primary-text-color;
-  position: absolute;
-  top: 10px;
-  left: 10px;
+  margin-bottom: 4px;
   opacity: 0.7;
-  display: inline-block;
-  vertical-align: top;
-  background-color: rgba($base-overlay-background, 0.4);
-  text-transform: uppercase;
-  font-size: 11px;
-  font-weight: 500;
-  padding: 4px;
-  border-radius: 4px;
-}
-
-.account--muting-info {
-  color: $primary-text-color;
-  position: absolute;
-  top: 40px;
-  left: 10px;
-  opacity: 0.7;
-  display: inline-block;
+  display: block;
   vertical-align: top;
   background-color: rgba($base-overlay-background, 0.4);
   text-transform: uppercase;
@@ -3186,12 +3075,6 @@ a.status-card.compact:hover {
   border-radius: 4px;
 }
 
-.account--action-button {
-  position: absolute;
-  top: 10px;
-  right: 20px;
-}
-
 .setting-toggle {
   display: block;
   line-height: 24px;
@@ -4245,6 +4128,7 @@ a.status-card.compact:hover {
 
 .confirmation-modal__action-bar,
 .mute-modal__action-bar {
+  .confirmation-modal__secondary-button,
   .confirmation-modal__cancel-button,
   .mute-modal__cancel-button {
     background-color: transparent;
@@ -5348,53 +5232,188 @@ noscript {
   }
 }
 
-.account__header .roles {
-  margin-top: 20px;
-  margin-bottom: 20px;
-  padding: 0 15px;
+.account__header__content {
+  color: $darker-text-color;
+  font-size: 14px;
+  font-weight: 400;
+  overflow: hidden;
+  word-break: normal;
+  word-wrap: break-word;
+
+  p {
+    margin-bottom: 20px;
+
+    &:last-child {
+      margin-bottom: 0;
+    }
+  }
+
+  a {
+    color: inherit;
+    text-decoration: underline;
+
+    &:hover {
+      text-decoration: none;
+    }
+  }
 }
 
-.account__header .account__header__fields {
-  font-size: 14px;
-  line-height: 20px;
+.account__header {
   overflow: hidden;
-  margin: 20px -10px -20px;
-  border-bottom: 0;
-  border-top: 0;
 
-  dl {
-    border-top: 1px solid lighten($ui-base-color, 4%);
-    border-bottom: 0;
-    display: flex;
+  &.inactive {
+    opacity: 0.5;
+
+    .account__header__image,
+    .account__avatar {
+      filter: grayscale(100%);
+    }
   }
 
-  dt,
-  dd {
-    box-sizing: border-box;
-    padding: 14px 5px;
-    text-align: center;
-    max-height: 48px;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
+  &__info {
+    position: absolute;
+    top: 10px;
+    left: 10px;
   }
 
-  dt {
-    color: $darker-text-color;
+  &__image {
+    overflow: hidden;
+    height: 145px;
+    position: relative;
     background: darken($ui-base-color, 4%);
-    width: 120px;
-    flex: 0 0 auto;
-    font-weight: 500;
+
+    img {
+      object-fit: cover;
+      display: block;
+      width: 100%;
+      height: 100%;
+      margin: 0;
+    }
   }
 
-  dd {
-    flex: 1 1 auto;
-    color: $primary-text-color;
-    background: $ui-base-color;
+  &__bar {
+    position: relative;
+    background: lighten($ui-base-color, 4%);
+    padding: 5px;
+    border-bottom: 1px solid lighten($ui-base-color, 12%);
 
-    &.verified {
-      border: 1px solid rgba($valid-value-color, 0.5);
-      background: rgba($valid-value-color, 0.25);
+    .avatar {
+      display: block;
+      flex: 0 0 auto;
+      width: 90px;
+      margin-left: -2px;
+
+      .account__avatar {
+        border: 2px solid lighten($ui-base-color, 4%);
+      }
+    }
+  }
+
+  &__tabs {
+    display: flex;
+    align-items: flex-start;
+    padding: 7px 5px;
+    margin-top: -55px;
+
+    &__buttons {
+      display: flex;
+      align-items: center;
+      padding-top: 55px;
+
+      .icon-button {
+        border: 1px solid lighten($ui-base-color, 12%);
+        border-radius: 4px;
+        box-sizing: content-box;
+        padding: 2px;
+        margin: 0 8px;
+      }
+    }
+
+    &__name {
+      padding: 5px;
+
+      .account-role {
+        vertical-align: top;
+      }
+
+      .emojione {
+        width: 22px;
+        height: 22px;
+      }
+
+      h1 {
+        font-size: 16px;
+        line-height: 24px;
+        color: $primary-text-color;
+        font-weight: 500;
+        overflow: hidden;
+        white-space: nowrap;
+        text-overflow: ellipsis;
+
+        small {
+          display: block;
+          font-size: 14px;
+          color: $darker-text-color;
+          font-weight: 400;
+          overflow: hidden;
+          text-overflow: ellipsis;
+        }
+      }
+    }
+
+    .spacer {
+      flex: 1 1 auto;
+    }
+  }
+
+  &__bio {
+    overflow: hidden;
+    margin: 0 -5px;
+
+    .account__header__content {
+      padding: 20px 15px;
+      padding-bottom: 5px;
+      color: $primary-text-color;
+    }
+
+    .account__header__fields {
+      margin: 0;
+      border-top: 1px solid lighten($ui-base-color, 12%);
+
+      a {
+        color: lighten($ui-highlight-color, 8%);
+      }
+
+      dl:first-child .verified {
+        border-radius: 0 4px 0 0;
+      }
+
+      .verified a {
+        color: $valid-value-color;
+      }
+    }
+  }
+
+  &__extra {
+    margin-top: 4px;
+
+    &__links {
+      font-size: 14px;
+      color: $darker-text-color;
+
+      a {
+        display: inline-block;
+        color: $darker-text-color;
+        text-decoration: none;
+        padding: 10px;
+        padding-top: 20px;
+        font-weight: 500;
+
+        strong {
+          font-weight: 700;
+          color: $primary-text-color;
+        }
+      }
     }
   }
 }
diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss
index a98fa52c4..2b1d988f2 100644
--- a/app/javascript/styles/mastodon/containers.scss
+++ b/app/javascript/styles/mastodon/containers.scss
@@ -677,6 +677,7 @@
           color: $darker-text-color;
           text-decoration: none;
           padding: 15px;
+          font-weight: 500;
 
           strong {
             font-weight: 700;
diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss
index 9ef45e425..3ea104786 100644
--- a/app/javascript/styles/mastodon/forms.scss
+++ b/app/javascript/styles/mastodon/forms.scss
@@ -475,6 +475,42 @@ code {
       }
     }
   }
+
+  &__overlay-area {
+    position: relative;
+
+    &__overlay {
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 100%;
+      height: 100%;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      background: rgba($ui-base-color, 0.65);
+      backdrop-filter: blur(2px);
+      border-radius: 4px;
+
+      &__content {
+        text-align: center;
+
+        &.rich-formatting {
+          &,
+          p {
+            color: $primary-text-color;
+          }
+        }
+      }
+    }
+  }
+}
+
+.block-icon {
+  display: block;
+  margin: 0 auto;
+  margin-bottom: 10px;
+  font-size: 24px;
 }
 
 .flash-message {
diff --git a/app/lib/language_detector.rb b/app/lib/language_detector.rb
index 70a9084d1..1e90af42d 100644
--- a/app/lib/language_detector.rb
+++ b/app/lib/language_detector.rb
@@ -3,7 +3,7 @@
 class LanguageDetector
   include Singleton
 
-  CHARACTER_THRESHOLD    = 140
+  WORDS_THRESHOLD        = 4
   RELIABLE_CHARACTERS_RE = /[\p{Hebrew}\p{Arabic}\p{Syriac}\p{Thaana}\p{Nko}\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}]+/m
 
   def initialize
@@ -37,7 +37,7 @@ class LanguageDetector
   end
 
   def sufficient_text_length?(text)
-    text.size >= CHARACTER_THRESHOLD
+    text.split(/\s+/).size >= WORDS_THRESHOLD
   end
 
   def language_specific_character_set?(text)
diff --git a/app/models/account.rb b/app/models/account.rb
index 6b539f004..a82251d2e 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -98,7 +98,7 @@ class Account < ApplicationRecord
   scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
   scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
   scope :searchable, -> { without_suspended.where(moved_to_account_id: nil) }
-  scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat).where(AccountStat.arel_table[:followers_count].gteq(MIN_FOLLOWERS_DISCOVERY)).by_recent_status }
+  scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat).where(AccountStat.arel_table[:followers_count].gteq(MIN_FOLLOWERS_DISCOVERY)) }
   scope :tagged_with, ->(tag) { joins(:accounts_tags).where(accounts_tags: { tag_id: tag }) }
   scope :by_recent_status, -> { order(Arel.sql('(case when account_stats.last_status_at is null then 1 else 0 end) asc, account_stats.last_status_at desc')) }
   scope :popular, -> { order('account_stats.followers_count desc') }
diff --git a/app/models/follow_request.rb b/app/models/follow_request.rb
index c5451a050..96ac7eaa5 100644
--- a/app/models/follow_request.rb
+++ b/app/models/follow_request.rb
@@ -26,7 +26,7 @@ class FollowRequest < ApplicationRecord
 
   def authorize!
     account.follow!(target_account, reblogs: show_reblogs, uri: uri)
-    MergeWorker.perform_async(target_account.id, account.id)
+    MergeWorker.perform_async(target_account.id, account.id) if account.local?
     destroy!
   end
 
diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb
index 929c65793..0fcbd0605 100644
--- a/app/models/form/admin_settings.rb
+++ b/app/models/form/admin_settings.rb
@@ -3,57 +3,108 @@
 class Form::AdminSettings
   include ActiveModel::Model
 
-  delegate(
-    :site_contact_username,
-    :site_contact_username=,
-    :site_contact_email,
-    :site_contact_email=,
-    :site_title,
-    :site_title=,
-    :site_short_description,
-    :site_short_description=,
-    :site_description,
-    :site_description=,
-    :site_extended_description,
-    :site_extended_description=,
-    :site_terms,
-    :site_terms=,
-    :registrations_mode,
-    :registrations_mode=,
-    :closed_registrations_message,
-    :closed_registrations_message=,
-    :open_deletion,
-    :open_deletion=,
-    :timeline_preview,
-    :timeline_preview=,
-    :show_staff_badge,
-    :show_staff_badge=,
-    :bootstrap_timeline_accounts,
-    :bootstrap_timeline_accounts=,
-    :hide_followers_count,
-    :hide_followers_count=,
-    :flavour,
-    :flavour=,
-    :skin,
-    :skin=,
-    :min_invite_role,
-    :min_invite_role=,
-    :activity_api_enabled,
-    :activity_api_enabled=,
-    :peers_api_enabled,
-    :peers_api_enabled=,
-    :show_known_fediverse_at_about_page,
-    :show_known_fediverse_at_about_page=,
-    :preview_sensitive_media,
-    :preview_sensitive_media=,
-    :custom_css,
-    :custom_css=,
-    :profile_directory,
-    :profile_directory=,
-    to: Setting
-  )
+  KEYS = %i(
+    site_contact_username
+    site_contact_email
+    site_title
+    site_short_description
+    site_description
+    site_extended_description
+    site_terms
+    registrations_mode
+    closed_registrations_message
+    open_deletion
+    timeline_preview
+    show_staff_badge
+    bootstrap_timeline_accounts
+    flavour
+    skin
+    min_invite_role
+    activity_api_enabled
+    peers_api_enabled
+    show_known_fediverse_at_about_page
+    preview_sensitive_media
+    custom_css
+    profile_directory
+    hide_followers_count
+    flavour_and_skin
+  ).freeze
+
+  BOOLEAN_KEYS = %i(
+    open_deletion
+    timeline_preview
+    show_staff_badge
+    activity_api_enabled
+    peers_api_enabled
+    show_known_fediverse_at_about_page
+    preview_sensitive_media
+    profile_directory
+    hide_followers_count
+  ).freeze
+
+  UPLOAD_KEYS = %i(
+    thumbnail
+    hero
+    mascot
+  ).freeze
+
+  PSEUDO_KEYS = %i(
+    flavour_and_skin
+  ).freeze
+
+  attr_accessor(*KEYS)
+
+  validates :site_short_description, :site_description, :site_extended_description, :site_terms, :closed_registrations_message, html: true
+  validates :registrations_mode, inclusion: { in: %w(open approved none) }
+  validates :min_invite_role, inclusion: { in: %w(disabled user moderator admin) }
+  validates :site_contact_email, :site_contact_username, presence: true
+  validates :site_contact_username, existing_username: true
+  validates :bootstrap_timeline_accounts, existing_username: { multiple: true }
+
+  def initialize(_attributes = {})
+    super
+    initialize_attributes
+  end
+
+  def save
+    return false unless valid?
+
+    KEYS.each do |key|
+      next if PSEUDO_KEYS.include?(key)
+      value = instance_variable_get("@#{key}")
+
+      if UPLOAD_KEYS.include?(key)
+        upload = SiteUpload.where(var: key).first_or_initialize(var: key)
+        upload.update(file: value)
+      else
+        setting = Setting.where(var: key).first_or_initialize(var: key)
+        setting.update(value: typecast_value(key, value))
+      end
+    end
+  end
 
   def flavour_and_skin
     "#{Setting.flavour}/#{Setting.skin}"
   end
+
+  def flavour_and_skin=(value)
+    @flavour, @skin = value.split('/', 2)
+  end
+
+  private
+
+  def initialize_attributes
+    KEYS.each do |key|
+      next if PSEUDO_KEYS.include?(key)
+      instance_variable_set("@#{key}", Setting.public_send(key)) if instance_variable_get("@#{key}").nil?
+    end
+  end
+
+  def typecast_value(key, value)
+    if BOOLEAN_KEYS.include?(key)
+      value == '1'
+    else
+      value
+    end
+  end
 end
diff --git a/app/models/instance.rb b/app/models/instance.rb
index 7448d465c..7bf000d40 100644
--- a/app/models/instance.rb
+++ b/app/models/instance.rb
@@ -7,7 +7,7 @@ class Instance
 
   def initialize(resource)
     @domain         = resource.domain
-    @accounts_count = resource.accounts_count
+    @accounts_count = resource.is_a?(DomainBlock) ? nil : resource.accounts_count
     @domain_block   = resource.is_a?(DomainBlock) ? resource : DomainBlock.find_by(domain: domain)
   end
 
@@ -15,6 +15,10 @@ class Instance
     Rails.cache.fetch("#{cache_key}/sample_accounts", expires_in: 12.hours) { Account.where(domain: domain).searchable.joins(:account_stat).popular.limit(3) }
   end
 
+  def cached_accounts_count
+    @accounts_count || Rails.cache.fetch("#{cache_key}/count", expires_in: 12.hours) { Account.where(domain: domain).count }
+  end
+
   def to_param
     domain
   end
diff --git a/app/models/user.rb b/app/models/user.rb
index 47657a670..66c1543ff 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -124,7 +124,8 @@ class User < ApplicationRecord
   end
 
   def confirm
-    new_user = !confirmed?
+    new_user      = !confirmed?
+    self.approved = true if open_registrations?
 
     super
 
@@ -136,7 +137,8 @@ class User < ApplicationRecord
   end
 
   def confirm!
-    new_user = !confirmed?
+    new_user      = !confirmed?
+    self.approved = true if open_registrations?
 
     skip_confirmation!
     save!
@@ -264,7 +266,11 @@ class User < ApplicationRecord
   private
 
   def set_approved
-    self.approved = Setting.registrations_mode == 'open' || invited?
+    self.approved = open_registrations? || invited?
+  end
+
+  def open_registrations?
+    Setting.registrations_mode == 'open'
   end
 
   def sanitize_languages
diff --git a/app/presenters/account_relationships_presenter.rb b/app/presenters/account_relationships_presenter.rb
index e4aaa65f6..b05673a3d 100644
--- a/app/presenters/account_relationships_presenter.rb
+++ b/app/presenters/account_relationships_presenter.rb
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
 class AccountRelationshipsPresenter
-  attr_reader :following, :followed_by, :blocking,
+  attr_reader :following, :followed_by, :blocking, :blocked_by,
               :muting, :requested, :domain_blocking,
               :endorsed
 
@@ -12,6 +12,7 @@ class AccountRelationshipsPresenter
     @following       = cached[:following].merge(Account.following_map(@uncached_account_ids, @current_account_id))
     @followed_by     = cached[:followed_by].merge(Account.followed_by_map(@uncached_account_ids, @current_account_id))
     @blocking        = cached[:blocking].merge(Account.blocking_map(@uncached_account_ids, @current_account_id))
+    @blocked_by      = cached[:blocked_by].merge(Account.blocked_by_map(@uncached_account_ids, @current_account_id))
     @muting          = cached[:muting].merge(Account.muting_map(@uncached_account_ids, @current_account_id))
     @requested       = cached[:requested].merge(Account.requested_map(@uncached_account_ids, @current_account_id))
     @domain_blocking = cached[:domain_blocking].merge(Account.domain_blocking_map(@uncached_account_ids, @current_account_id))
@@ -22,6 +23,7 @@ class AccountRelationshipsPresenter
     @following.merge!(options[:following_map] || {})
     @followed_by.merge!(options[:followed_by_map] || {})
     @blocking.merge!(options[:blocking_map] || {})
+    @blocked_by.merge!(options[:blocked_by_map] || {})
     @muting.merge!(options[:muting_map] || {})
     @requested.merge!(options[:requested_map] || {})
     @domain_blocking.merge!(options[:domain_blocking_map] || {})
@@ -37,6 +39,7 @@ class AccountRelationshipsPresenter
       following: {},
       followed_by: {},
       blocking: {},
+      blocked_by: {},
       muting: {},
       requested: {},
       domain_blocking: {},
@@ -64,6 +67,7 @@ class AccountRelationshipsPresenter
         following:       { account_id => following[account_id] },
         followed_by:     { account_id => followed_by[account_id] },
         blocking:        { account_id => blocking[account_id] },
+        blocked_by:      { account_id => blocked_by[account_id] },
         muting:          { account_id => muting[account_id] },
         requested:       { account_id => requested[account_id] },
         domain_blocking: { account_id => domain_blocking[account_id] },
diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb
index 94a2c1692..d234516e0 100644
--- a/app/presenters/instance_presenter.rb
+++ b/app/presenters/instance_presenter.rb
@@ -8,6 +8,7 @@ class InstancePresenter
     :site_description,
     :site_extended_description,
     :site_terms,
+    :closed_registrations_message,
     to: Setting
   )
 
diff --git a/app/serializers/oembed_serializer.rb b/app/serializers/oembed_serializer.rb
index 0c8350e2d..01689633b 100644
--- a/app/serializers/oembed_serializer.rb
+++ b/app/serializers/oembed_serializer.rb
@@ -43,6 +43,7 @@ class OEmbedSerializer < ActiveModel::Serializer
       style: 'max-width: 100%; border: 0',
       width: width,
       height: height,
+      allowfullscreen: true,
     }
 
     content_tag(:iframe, nil, attributes) + content_tag(:script, nil, src: full_asset_url('embed.js', skip_pipeline: true), async: true)
diff --git a/app/serializers/rest/relationship_serializer.rb b/app/serializers/rest/relationship_serializer.rb
index c6c722a54..1a3fd915c 100644
--- a/app/serializers/rest/relationship_serializer.rb
+++ b/app/serializers/rest/relationship_serializer.rb
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
 class REST::RelationshipSerializer < ActiveModel::Serializer
-  attributes :id, :following, :showing_reblogs, :followed_by, :blocking,
+  attributes :id, :following, :showing_reblogs, :followed_by, :blocking, :blocked_by,
              :muting, :muting_notifications, :requested, :domain_blocking,
              :endorsed
 
@@ -27,6 +27,10 @@ class REST::RelationshipSerializer < ActiveModel::Serializer
     instance_options[:relationships].blocking[object.id] || false
   end
 
+  def blocked_by
+    instance_options[:relationships].blocked_by[object.id] || false
+  end
+
   def muting
     instance_options[:relationships].muting[object.id] ? true : false
   end
diff --git a/app/services/vote_service.rb b/app/services/vote_service.rb
index 0cace6c00..81af9ef3a 100644
--- a/app/services/vote_service.rb
+++ b/app/services/vote_service.rb
@@ -11,14 +11,14 @@ class VoteService < BaseService
     @choices = choices
     @votes   = []
 
-    return if @poll.expired?
-
     ApplicationRecord.transaction do
       @choices.each do |choice|
         @votes << @poll.votes.create!(account: @account, choice: choice)
       end
     end
 
+    ActivityTracker.increment('activity:interactions')
+
     if @poll.account.local?
       distribute_poll!
     else
diff --git a/app/validators/existing_username_validator.rb b/app/validators/existing_username_validator.rb
new file mode 100644
index 000000000..4388a0c98
--- /dev/null
+++ b/app/validators/existing_username_validator.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class ExistingUsernameValidator < ActiveModel::EachValidator
+  def validate_each(record, attribute, value)
+    return if value.blank?
+
+    if options[:multiple]
+      missing_usernames = value.split(',').map { |username| username unless Account.find_local(username) }.compact
+      record.errors.add(attribute, I18n.t('existing_username_validator.not_found_multiple', usernames: missing_usernames.join(', '))) if missing_usernames.any?
+    else
+      record.errors.add(attribute, I18n.t('existing_username_validator.not_found')) unless Account.find_local(value)
+    end
+  end
+
+  private
+
+  def valid_html?(str)
+    Nokogiri::HTML.fragment(str).to_s == str
+  end
+end
diff --git a/app/validators/html_validator.rb b/app/validators/html_validator.rb
new file mode 100644
index 000000000..b7caee5a9
--- /dev/null
+++ b/app/validators/html_validator.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class HtmlValidator < ActiveModel::EachValidator
+  def validate_each(record, attribute, value)
+    return if value.blank?
+    errors = html_errors(value)
+    unless errors.empty?
+      record.errors.add(attribute, I18n.t('html_validator.invalid_markup', error: errors.first.to_s))
+    end
+  end
+
+  private
+
+  def html_errors(str)
+    fragment = Nokogiri::HTML.fragment(str)
+    fragment.errors
+  end
+end
diff --git a/app/views/about/_registration.html.haml b/app/views/about/_registration.html.haml
index 9cb4eb2bc..09cbe2e28 100644
--- a/app/views/about/_registration.html.haml
+++ b/app/views/about/_registration.html.haml
@@ -1,16 +1,23 @@
 = simple_form_for(new_user, url: user_registration_path) do |f|
-  %p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_hostname))
+  .simple_form__overlay-area
+    %p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_hostname))
 
-  .fields-group
-    = f.simple_fields_for :account do |account_fields|
-      = account_fields.input :username, wrapper: :with_label, autofocus: true, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username') }, append: "@#{site_hostname}", hint: false, disabled: closed_registrations?
+    .fields-group
+      = f.simple_fields_for :account do |account_fields|
+        = account_fields.input :username, wrapper: :with_label, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username') }, append: "@#{site_hostname}", hint: false, disabled: closed_registrations?
 
-    = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
-    = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
-    = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
+      = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
+      = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
+      = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
 
-  .fields-group
-    = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), disabled: closed_registrations?
+    .fields-group
+      = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), disabled: closed_registrations?
 
-  .actions
-    = f.button :button, sign_up_message, type: :submit, class: 'button button-primary', disabled: closed_registrations?
+    .actions
+      = f.button :button, sign_up_message, type: :submit, class: 'button button-primary', disabled: closed_registrations?
+
+    - if closed_registrations? && @instance_presenter.closed_registrations_message.present?
+      .simple_form__overlay-area__overlay
+        .simple_form__overlay-area__overlay__content.rich-formatting
+          .block-icon= fa_icon 'warning'
+          = @instance_presenter.closed_registrations_message.html_safe
diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml
index fa3d70e9e..d448e3862 100644
--- a/app/views/admin/dashboard/index.html.haml
+++ b/app/views/admin/dashboard/index.html.haml
@@ -40,35 +40,17 @@
       %h4= t 'admin.dashboard.features'
       %ul
         %li
-          = link_to t('admin.dashboard.feature_registrations'), edit_admin_settings_path
-          - if @registrations_enabled
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
-        %li
-          = link_to t('admin.dashboard.feature_invites'), edit_admin_settings_path
-          - if @invites_enabled
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
-        %li
-          = link_to t('admin.dashboard.feature_deletions'), edit_admin_settings_path
-          - if @deletions_enabled
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
-        %li
-          = link_to t('admin.dashboard.feature_profile_directory'), edit_admin_settings_path
-          - if @profile_directory
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
-        %li
-          = link_to t('admin.dashboard.feature_relay'), admin_relays_path
-          - if @relay_enabled
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
+          = feature_hint(link_to(t('admin.dashboard.feature_registrations'), edit_admin_settings_path), @registrations_enabled)
+        %li
+          = feature_hint(link_to(t('admin.dashboard.feature_invites'), edit_admin_settings_path), @invites_enabled)
+        %li
+          = feature_hint(link_to(t('admin.dashboard.feature_deletions'), edit_admin_settings_path), @deletions_enabled)
+        %li
+          = feature_hint(link_to(t('admin.dashboard.feature_profile_directory'), edit_admin_settings_path), @profile_directory)
+        %li
+          = feature_hint(link_to(t('admin.dashboard.feature_timeline_preview'), edit_admin_settings_path), @timeline_preview)
+        %li
+          = feature_hint(link_to(t('admin.dashboard.feature_relay'), admin_relays_path), @relay_enabled)
 
   .dashboard__widgets__versions
     %div
@@ -103,47 +85,19 @@
       %h4= t 'admin.dashboard.config'
       %ul
         %li
-          = t('admin.dashboard.search')
-          - if @search_enabled
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
-        %li
-          = t('admin.dashboard.single_user_mode')
-          - if @single_user_mode
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
-        %li
-          LDAP
-          - if @ldap_enabled
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
-        %li
-          CAS
-          - if @cas_enabled
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
-        %li
-          SAML
-          - if @saml_enabled
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
-        %li
-          PAM
-          - if @pam_enabled
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
-        %li
-          = t 'admin.dashboard.hidden_service'
-          - if @hidden_service
-            %span.pull-right.positive-hint= fa_icon 'check fw'
-          - else
-            %span.pull-right.negative-hint= fa_icon 'times fw'
+          = feature_hint(t('admin.dashboard.search'), @search_enabled)
+        %li
+          = feature_hint(t('admin.dashboard.single_user_mode'), @single_user_mode)
+        %li
+          = feature_hint('LDAP', @ldap_enabled)
+        %li
+          = feature_hint('CAS', @cas_enabled)
+        %li
+          = feature_hint('SAML', @saml_enabled)
+        %li
+          = feature_hint('PAM', @pam_enabled)
+        %li
+          = feature_hint(t('admin.dashboard.hidden_service'), @hidden_service)
 
   .dashboard__widgets__trends
     %div
diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml
index 235927140..9574c3147 100644
--- a/app/views/admin/instances/index.html.haml
+++ b/app/views/admin/instances/index.html.haml
@@ -33,7 +33,7 @@
       %h4
         = instance.domain
         %small
-          = t('admin.instances.known_accounts', count: instance.accounts_count)
+          = t('admin.instances.known_accounts', count: instance.cached_accounts_count)
 
           - if instance.domain_block
             - if !instance.domain_block.noop?
diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml
index 9995e0b2a..475fb3a2f 100644
--- a/app/views/admin/settings/edit.html.haml
+++ b/app/views/admin/settings/edit.html.haml
@@ -2,6 +2,7 @@
   = t('admin.settings.title')
 
 = simple_form_for @admin_settings, url: admin_settings_path, html: { method: :patch } do |f|
+  = render 'shared/error_messages', object: @admin_settings
 
   .fields-group
     = f.input :site_title, wrapper: :with_label, label: t('admin.settings.site_title')
diff --git a/config/locales/activerecord.ca.yml b/config/locales/activerecord.ca.yml
index 39f6839aa..19e39b5e7 100644
--- a/config/locales/activerecord.ca.yml
+++ b/config/locales/activerecord.ca.yml
@@ -1,6 +1,9 @@
 ---
 ca:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Enquesta
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.co.yml b/config/locales/activerecord.co.yml
index af28d108f..20c35b67f 100644
--- a/config/locales/activerecord.co.yml
+++ b/config/locales/activerecord.co.yml
@@ -1,6 +1,9 @@
 ---
 co:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Scandagliu
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.cs.yml b/config/locales/activerecord.cs.yml
index 838dee15f..e9465228d 100644
--- a/config/locales/activerecord.cs.yml
+++ b/config/locales/activerecord.cs.yml
@@ -1,6 +1,9 @@
 ---
 cs:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Anketa
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.cy.yml b/config/locales/activerecord.cy.yml
index 265530124..60eeea22d 100644
--- a/config/locales/activerecord.cy.yml
+++ b/config/locales/activerecord.cy.yml
@@ -1,6 +1,9 @@
 ---
 cy:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Poll
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.da.yml b/config/locales/activerecord.da.yml
index 5e7266ef1..8e9db715b 100644
--- a/config/locales/activerecord.da.yml
+++ b/config/locales/activerecord.da.yml
@@ -1,6 +1,9 @@
 ---
 da:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Afstemning
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml
index 7d09856d7..19267cc4c 100644
--- a/config/locales/activerecord.de.yml
+++ b/config/locales/activerecord.de.yml
@@ -1,6 +1,9 @@
 ---
 de:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Umfrage
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.el.yml b/config/locales/activerecord.el.yml
index 86672b21d..e396860ea 100644
--- a/config/locales/activerecord.el.yml
+++ b/config/locales/activerecord.el.yml
@@ -1,6 +1,9 @@
 ---
 el:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Ψηφοφορία
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.es.yml b/config/locales/activerecord.es.yml
index d18b16834..aee946bb7 100644
--- a/config/locales/activerecord.es.yml
+++ b/config/locales/activerecord.es.yml
@@ -1,6 +1,9 @@
 ---
 es:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Encuesta
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.fa.yml b/config/locales/activerecord.fa.yml
index 1cd50eec7..0cc6c12d7 100644
--- a/config/locales/activerecord.fa.yml
+++ b/config/locales/activerecord.fa.yml
@@ -1,6 +1,9 @@
 ---
 fa:
   activerecord:
+    attributes:
+      status:
+        owned_poll: رأی‌گیری
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.fr.yml b/config/locales/activerecord.fr.yml
index c4b04c73a..7d5952f3a 100644
--- a/config/locales/activerecord.fr.yml
+++ b/config/locales/activerecord.fr.yml
@@ -1,6 +1,9 @@
 ---
 fr:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Sondage
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.gl.yml b/config/locales/activerecord.gl.yml
index e38131454..65a83fbee 100644
--- a/config/locales/activerecord.gl.yml
+++ b/config/locales/activerecord.gl.yml
@@ -1,6 +1,9 @@
 ---
 gl:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Sondaxe
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.it.yml b/config/locales/activerecord.it.yml
index 4cec9fb63..51280eb32 100644
--- a/config/locales/activerecord.it.yml
+++ b/config/locales/activerecord.it.yml
@@ -1,6 +1,9 @@
 ---
 it:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Sondaggio
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.nl.yml b/config/locales/activerecord.nl.yml
index eeabab34a..bdb87e8e5 100644
--- a/config/locales/activerecord.nl.yml
+++ b/config/locales/activerecord.nl.yml
@@ -1,6 +1,9 @@
 ---
 nl:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Poll
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.oc.yml b/config/locales/activerecord.oc.yml
index cdf0fa0ac..e664bd409 100644
--- a/config/locales/activerecord.oc.yml
+++ b/config/locales/activerecord.oc.yml
@@ -1,6 +1,9 @@
 ---
 oc:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Sondatge
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.pl.yml b/config/locales/activerecord.pl.yml
index bd8e40a6a..d0c86a11e 100644
--- a/config/locales/activerecord.pl.yml
+++ b/config/locales/activerecord.pl.yml
@@ -2,6 +2,8 @@
 pl:
   activerecord:
     attributes:
+      status:
+        owned_poll: Ankiety
       user:
         email: adres e-mail
     errors:
diff --git a/config/locales/activerecord.pt-BR.yml b/config/locales/activerecord.pt-BR.yml
index d2519fe90..eb0fb6785 100644
--- a/config/locales/activerecord.pt-BR.yml
+++ b/config/locales/activerecord.pt-BR.yml
@@ -1,6 +1,9 @@
 ---
 pt-BR:
   activerecord:
+    attributes:
+      status:
+        owned_poll: sondagem
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.pt.yml b/config/locales/activerecord.pt.yml
index 556fcfc4f..9ef0e5f9f 100644
--- a/config/locales/activerecord.pt.yml
+++ b/config/locales/activerecord.pt.yml
@@ -1,6 +1,9 @@
 ---
 pt:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Enquete
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.ru.yml b/config/locales/activerecord.ru.yml
index 2a2d62a7e..945668f30 100644
--- a/config/locales/activerecord.ru.yml
+++ b/config/locales/activerecord.ru.yml
@@ -1,6 +1,9 @@
 ---
 ru:
   activerecord:
+    attributes:
+      status:
+        owned_poll: опрос
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.sk.yml b/config/locales/activerecord.sk.yml
index 9ae71fa9a..bba7c66f2 100644
--- a/config/locales/activerecord.sk.yml
+++ b/config/locales/activerecord.sk.yml
@@ -1,6 +1,9 @@
 ---
 sk:
   activerecord:
+    attributes:
+      status:
+        owned_poll: Anketa
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.th.yml b/config/locales/activerecord.th.yml
index 2a41f4bce..7890ed80c 100644
--- a/config/locales/activerecord.th.yml
+++ b/config/locales/activerecord.th.yml
@@ -6,8 +6,8 @@ th:
         account:
           attributes:
             username:
-              invalid: only letters, numbers and underscores
+              invalid: ตัวอักษร, ตัวเลข และขีดล่างเท่านั้น
         status:
           attributes:
             reblog:
-              taken: of status already exists
+              taken: มีสถานะอยู่แล้ว
diff --git a/config/locales/activerecord.zh_Hant.yml b/config/locales/activerecord.zh_Hant.yml
new file mode 100644
index 000000000..730ab3a51
--- /dev/null
+++ b/config/locales/activerecord.zh_Hant.yml
@@ -0,0 +1,15 @@
+zh_Hant:
+  activerecord:
+    attributes:
+      status:
+        owned_poll: 投票
+    errors:
+      models:
+        account:
+          attributes:
+            username:
+              invalid: 只允許使用字母、數字和底線
+        status:
+          attributes:
+            reblog:
+              taken: 的嘟文已經存在
diff --git a/config/locales/bn.yml b/config/locales/bn.yml
index e76c7ba21..b4eb012f5 100644
--- a/config/locales/bn.yml
+++ b/config/locales/bn.yml
@@ -4,13 +4,138 @@ bn:
     about_hashtag_html: এগুলো প্রকাশ্য লেখা যার হ্যাশট্যাগ <strong>#%{hashtag}</strong>। আপনি এগুলোর ব্যবহার বা সাথে যুক্ত হতে পারবেন যদি আপনার যুক্তবিশ্বের কোথাও নিবন্ধন থেকে থাকে।
     about_mastodon_html: মাস্টাডন উন্মুক্ত ইন্টারনেটজালের নিয়ম এবং স্বাধীন ও মুক্ত উৎসের সফটওয়্যারের ভিত্তিতে তৈরী একটি সামাজিক যোগাযোগ মাধ্যম। এটি ইমেইলের মত বিকেন্দ্রীভূত।
     about_this: কি
+    active_count_after: চালু
+    active_footnote: মাসিক সক্রিয় ব্যবহারকারী
     administered_by: 'পরিচালনা করছেন:'
     api: সফটওয়্যার তৈরীর নিয়ম (API)
     apps: মোবাইল অ্যাপ
+    apps_platforms: মাস্টাডন আইওএস, এন্ড্রোইড বা অন্য মাধ্যমে ব্যবহার করুন
+    browse_directory: একটি ব্যবহারকারীদের তালিকা দেখুন এবং পছন্দ অনুসারে খুজুন
+    browse_public_posts: মাস্টাডনে নতুন প্রকাশ্য লেখাগুলো সরাসরি দেখুন
     contact: যোগাযোগ
     contact_missing: নেই
     contact_unavailable: প্রযোজ্য নয়
+    discover_users: ব্যবহারকারীদের দেখুন
     documentation: ব্যবহারবিলি
     extended_description_html: |
       <h3>নিয়মের জন্য উপযুক্ত জায়গা</h3>
       <p>বিস্তারিত বিবরণ এখনো যুক্ত করা হয়নি</p>
+    federation_hint_html: "%{instance}তে একটা নিবন্ধন থাকলে আপনি যেকোনো মাস্টাডন বা এধরণের অন্যান্য সার্ভারের মানুষের সাথে যুক্ত হতে পারবেন ।"
+    generic_description: নেটওয়ার্কের ভেতরে %{domain} একটি সার্ভার
+    get_apps: মোবাইল এপ্প একটা ব্যবহার করতে পারেন
+    hosted_on: এই মাস্টাডনটি আছে %{domain} এ
+    learn_more: বিস্তারিত জানুন
+    privacy_policy: গোপনীয়তা নীতি
+    see_whats_happening: কী কী হচ্ছে দেখুন
+    server_stats: 'সার্ভারের অবস্থা:'
+    source_code: আসল তৈরীপত্র
+    status_count_after:
+      one: অবস্থা
+      other: স্থিতিগুলি
+    status_count_before: কে লিখেছে
+    tagline: পরিচিতজনদের সাথে যুক্ত হন এবং নতুনদের সাথে পরিচিত হন
+    terms: ব্যবহারের শর্তাবলী
+    user_count_after:
+      one: ব্যবহারকারী
+      other: জনের
+    user_count_before: বাসা
+    what_is_mastodon: মাস্টাডনটি কি ?
+  accounts:
+    choices_html: "%{name} বাছাই:"
+    follow: যুক্ত
+    followers:
+      one: যুক্ত আছে
+      other: যারা যুক্ত হয়েছে
+    following: যুক্ত করা
+    joined: যোগদান হয় %{date}
+    last_active: শেষ সক্রিয় ছিল
+    link_verified_on: এই লিংকের মালিকানা শেষ চেক করা হয়  %{date} তারিখে
+    media: ছবি বা ভিডিও
+    moved_html: "%{name} চলে গেছে %{new_profile_link} তে:"
+    network_hidden: এই তথ্যটি নেই
+    nothing_here: এখানে কিছুই নেই!
+    people_followed_by: "%{name} যাদেরকে অনুসরণ করে"
+    people_who_follow: যারা %{name} কে অনুসরণ করে
+    pin_errors:
+      following: সমর্থন করতে অনুসরণ থাকা লাগবে
+    posts:
+      one: লেখা
+      other: লেখাগুলো
+    posts_tab_heading: লেখাগুলো
+    posts_with_replies: লেখা এবং মতামত
+    reserved_username: নামটি সংরক্ষিত
+    roles:
+      admin: পরিচালক
+      bot: রোবট
+      moderator: পরিচালক
+    unfollow: অনুসরণ বাদ
+  admin:
+    account_actions:
+      action: করা
+      title: 'প্রশাসনা করুন এর উপর : %{acct}'
+    account_moderation_notes:
+      create: কিছু লিখুন
+      created_msg: প্রশাসনবস্তুত লেখাটি সঠিকভাবে তৈরী হয়েছে!
+      delete: মুছে ফেলা
+      destroyed_msg: প্রশাসনবস্তুত লেখাটি সঠিকভাবে মুছে ফেলা হয়েছে!
+    accounts:
+      approve: অনুমোদন দিন
+      are_you_sure: আপনি কি নিশ্চিত ?
+      avatar: অবতার
+      by_domain: ওয়েবসাইট/কার্যক্ষেত্র
+      change_email:
+        changed_msg: নিবন্ধনের ইমেইল সঠিকভাবে পরিবর্তন হয়েছে!
+        current_email: এখনকার ইমেইল
+        label: ইমেইল পরিবর্তন
+        new_email: নতুন ইমেইল
+        submit: ইমেইল পরিবর্তন
+        title: "%{username} এর ইমেইল পরিবর্তন"
+      confirm: নিশ্চিত করুন
+      confirmed: নিশ্চিত হয়েছে
+      confirming: নিশ্চিত করা হচ্ছে
+      deleted: মুছে ফেলা হয়েছে
+      demote: নিচের পদে দিন
+      disable: বন্ধ করুন
+      disable_two_factor_authentication: দুই পদ্ধতির প্রমাণীকরণ(2FA) বন্ধ করুন
+      disabled: বন্ধ করা হয়েছে
+      display_name: দেখানোর জন্য নাম
+      domain: ওয়েবসাইট/কার্যক্ষেত্র
+      edit: বদলান
+      email: ইমেইল
+      email_status: ইমেইলের অবস্থা
+      enable: চালু করুন
+      enabled: চালু করুন
+      feed_url: সম্মিলিত(feed) লিংক
+      followers: অনুসরকারীরা
+      followers_url: অনুসরণকারীদের লিংক
+      follows: অনুসরণ করে
+      header: শিরোলেখা
+      inbox_url: চিঠি পাওয়ার বক্স লিংক
+      invited_by: আমন্ত্রণ করেছে
+      ip: আইপি(IP)
+      joined: যোগ দিয়েছে
+      location:
+        all: সব
+        local: স্থানীয়
+        remote: দূরবর্তী
+        title: জায়গা
+      login_status: নিবন্ধনধারীভাবে প্রবেশের অবস্থা
+      media_attachments: ছবি/ভিডিও যুক্ত
+      memorialize: স্মরণিকা বানান
+      moderation:
+        active: চালু
+        all: সব
+        pending: অপেক্ষিত আছে
+        silenced: নীরব করা হয়েছে
+        suspended: স্থগিত করা হয়েছে
+        title: প্রশাসনা
+      moderation_notes: প্রশাসনের কিছু লেখা
+      most_recent_activity: সর্বশেষ কার্যক্রম
+      most_recent_ip: সর্বশেষ আইপি(IP)
+      no_limits_imposed: কোন সীমা আরোপ করা নেই
+      not_subscribed: সাবস্ক্রাইব নেই
+      outbox_url: চিঠি পাঠানোর বাক্স লিংক
+      pending: পয্র্যবেক্ষণের অপেক্ষায় আছে
+      perform_full_suspension: বাতিল করা
+  verification:
+    verification: সত্যতা নির্ধারণ
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index b17af3169..c9e0e092a 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -4,25 +4,36 @@ ca:
     about_hashtag_html: Aquests són toots públics etiquetats amb <strong>#%{hashtag}</strong>. Pots interactuar amb ells si tens un compte a qualsevol lloc del fediverse.
     about_mastodon_html: Mastodon és una xarxa social basada en protocols web oberts i en programari lliure i de codi obert. Està descentralitzat com el correu electrònic.
     about_this: Quant a
+    active_count_after: actiu
+    active_footnote: Usuaris actius mensuals (UAM)
     administered_by: 'Administrat per:'
     api: API
     apps: Apps mòbil
+    apps_platforms: Utilitza Mastodon des de iOS, Android i altres plataformes
+    browse_directory: Navega per el directori de perfils i filtra segons interessos
+    browse_public_posts: Navega per una transmissió en directe de publicacions públiques a Mastodon
     contact: Contacte
     contact_missing: No configurat
     contact_unavailable: N/D
+    discover_users: Descobreix usuaris
     documentation: Documentació
     extended_description_html: |
       <h3>Un bon lloc per les regles</h3>
       <p>Encara no s'ha configurat la descripció ampliada.</p>
+    federation_hint_html: Amb un compte de %{instance} podràs seguir persones de qualsevol servidor Mastodon i altres.
     generic_description: "%{domain} és un servidor a la xarxa"
+    get_apps: Prova una aplicació mòbil
     hosted_on: Mastodon allotjat a %{domain}
     learn_more: Més informació
     privacy_policy: Política de privacitat
+    see_whats_happening: Mira què està passant
+    server_stats: 'Estadístiques del servidor:'
     source_code: Codi font
     status_count_after:
       one: estat
       other: estats
     status_count_before: Que han escrit
+    tagline: Segueix els teus amics i descobreix-ne de nous
     terms: Termes del servei
     user_count_after:
       one: usuari
@@ -68,6 +79,7 @@ ca:
       delete: Suprimeix
       destroyed_msg: Nota de moderació destruïda amb èxit!
     accounts:
+      approve: Aprova
       are_you_sure: N'estàs segur?
       avatar: Avatar
       by_domain: Domini
@@ -113,6 +125,7 @@ ca:
       moderation:
         active: Actiu
         all: Tot
+        pending: Pendent
         silenced: Silenciat
         suspended: Suspès
         title: Moderació
@@ -122,6 +135,7 @@ ca:
       no_limits_imposed: Sense límits imposats
       not_subscribed: No subscrit
       outbox_url: URL de la bústia de sortida
+      pending: Revisió pendent
       perform_full_suspension: Suspèn
       profile_url: URL del perfil
       promote: Promociona
@@ -129,6 +143,7 @@ ca:
       public: Públic
       push_subscription_expires: La subscripció PuSH expira
       redownload: Actualitza el perfil
+      reject: Rebutja
       remove_avatar: Eliminar avatar
       remove_header: Treu la capçalera
       resend_confirmation:
@@ -400,6 +415,12 @@ ca:
         min_invite_role:
           disabled: Ningú
           title: Permet les invitacions de
+      registrations_mode:
+        modes:
+          approved: Es requereix l’aprovació per registrar-se
+          none: Ningú no pot registrar-se
+          open: Qualsevol pot registrar-se
+        title: Mode de registres
       show_known_fediverse_at_about_page:
         desc_html: Quan s'activa, mostrarà tots els toots de tot el fedivers conegut en vista prèvia. En cas contrari, només es mostraran toots locals.
         title: Mostra el fedivers conegut en vista prèvia de la línia de temps
@@ -462,6 +483,9 @@ ca:
       edit_preset: Edita l'avís predeterminat
       title: Gestiona les configuracions predefinides dels avisos
   admin_mailer:
+    new_pending_account:
+      body: A continuació trobaràs els detalls del compte nou. Pots aprovar o rebutjar aquest registre.
+      subject: Nou compte per a revisar a %{instance} (%{username})
     new_report:
       body: "%{reporter} ha informat de %{target}"
       body_remote: Algú des de el domini %{domain} ha informat sobre %{target}
@@ -483,7 +507,9 @@ ca:
     your_token: El teu identificador d'accés
   auth:
     agreement_html: Al fer clic en "Registre" acceptes respectar <a href="%{rules_path}">les normes del servidor</a> i <a href="%{terms_path}">els nostres termes del servei</a>.
+    apply_for_account: Demana una invitació
     change_password: Contrasenya
+    checkbox_agreement_html: Estic d'acord amb les <a href="%{rules_path}" target="_blank">normes del servidor</a> i <a href="%{terms_path}" target="_blank"> els termes del servei</a>
     confirm_email: Confirmar correu electrònic
     delete_account: Suprimeix el compte
     delete_account_html: Si vols suprimir el compte pots <a href="%{path}">fer-ho aquí</a>. Se't demanarà confirmació.
@@ -499,10 +525,12 @@ ca:
       cas: CAS
       saml: SAML
     register: Registre
+    registration_closed: "%{instance} no accepta nous membres"
     resend_confirmation: Torna a enviar el correu de confirmació
     reset_password: Restableix la contrasenya
     security: Seguretat
     set_new_password: Estableix una contrasenya nova
+    trouble_logging_in: Problemes per iniciar la sessió?
   authorize_follow:
     already_following: Ja estàs seguint aquest compte
     error: Malauradament, ha ocorregut un error cercant el compte remot
@@ -598,6 +626,7 @@ ca:
     more: Més…
     resources: Recursos
   generic:
+    all: Tot
     changes_saved_msg: Els canvis s'han desat correctament!
     copy: Copia
     save_changes: Desa els canvis
@@ -721,6 +750,17 @@ ca:
     other: Altre
     publishing: Publicació
     web: Web
+  relationships:
+    activity: Activitat del compte
+    dormant: Inactiu
+    moved: Mogut
+    mutual: Mútua
+    primary: Primari
+    relationship: Relació
+    remove_selected_domains: Elimina tots els seguidors dels dominis seleccionats
+    remove_selected_followers: Elimina els seguidors seleccionats
+    remove_selected_follows: Deixa de seguir als usuaris seleccionats
+    status: Estat del compte
   remote_follow:
     acct: Escriu el teu usuari@domini des del qual vols seguir
     missing_resource: No s'ha pogut trobar la URL de redirecció necessaria per al compte
@@ -799,6 +839,7 @@ ca:
     migrate: Migració del compte
     notifications: Notificacions
     preferences: Preferències
+    relationships: Seguits i seguidors
     settings: Configuració
     two_factor_authentication: Autenticació de dos factors
     your_apps: Les teves aplicacions
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 651d29781..71882b7cb 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -4,25 +4,36 @@ co:
     about_hashtag_html: Quessi sò statuti pubblichi taggati cù <strong>#%{hashtag}</strong>. Pudete interagisce cù elli sì voi avete un contu in qualche parte di u fediverse.
     about_mastodon_html: Mastodon ghjè una rete suciale custruita incù prutucolli web aperti è lugiziali liberi. Hè decentralizatu cumu l’e-mail.
     about_this: À prupositu
+    active_count_after: attivi
+    active_footnote: Utilizatori Attivi Mensili (UAM)
     administered_by: 'Amministratu da:'
     api: API
     apps: Applicazione per u telefuninu
+    apps_platforms: Utilizà Mastodon dapoi à iOS, Android è altre piattaforme
+    browse_directory: Navigà un'annuariu di i prufili è filtra per interessi
+    browse_public_posts: Navigà un flussu di i statuti publichi nant'à Mastodon
     contact: Cuntattu
     contact_missing: Mancante
     contact_unavailable: Micca dispunibule
+    discover_users: Scopre utilizatori
     documentation: Ducumentazione
     extended_description_html: |
       <h3>Una bona piazza per e regule</h3>
       <p>A descrizzione stesa ùn hè micca stata riempiuta.</p>
+    federation_hint_html: Cù un contu nant'à %{instance} puderete siguità ghjente da tutti i servori Mastodon è ancu più d'altri.
     generic_description: "%{domain} hè un servore di a rete"
+    get_apps: Pruvà un'applicazione di telefuninu
     hosted_on: Mastodon allughjatu nant’à %{domain}
     learn_more: Amparà di più
     privacy_policy: Pulitica di vita privata
+    see_whats_happening: Vede cio chì si passa
+    server_stats: 'Statistiche di u servore:'
     source_code: Codice di fonte
     status_count_after:
       one: statutu
       other: statuti
     status_count_before: chì anu pubblicatu
+    tagline: Siguità amichi è scopre ancu di più altri
     terms: Cundizione di u serviziu
     user_count_after:
       one: utilizatore
@@ -68,6 +79,7 @@ co:
       delete: Toglie
       destroyed_msg: Nota di muderazione sguassata!
     accounts:
+      approve: Appruvà
       are_you_sure: Site sicuru·a?
       avatar: Ritrattu di prufile
       by_domain: Duminiu
@@ -113,6 +125,7 @@ co:
       moderation:
         active: Attivu
         all: Tutti
+        pending: In attesa
         silenced: Silenzati
         suspended: Suspesi
         title: Muderazione
@@ -122,6 +135,7 @@ co:
       no_limits_imposed: Nisuna limita imposta
       not_subscribed: Micca abbunatu
       outbox_url: URL di l’outbox
+      pending: In attesa di rivista
       perform_full_suspension: Suspende
       profile_url: URL di u prufile
       promote: Prumove
@@ -129,6 +143,7 @@ co:
       public: Pubblicu
       push_subscription_expires: Spirata di l’abbunamentu PuSH
       redownload: Mette à ghjornu u prufile
+      reject: Righjittà
       remove_avatar: Toglie l’avatar
       remove_header: Toglie l'intistatura
       resend_confirmation:
@@ -400,6 +415,12 @@ co:
         min_invite_role:
           disabled: Nisunu
           title: Auturizà l’invitazione da
+      registrations_mode:
+        modes:
+          approved: Apprubazione necessaria per arregistrassi
+          none: Nimu ùn pò arregistrassi
+          open: Tutt'ognunu pò arregistrassi
+        title: Modu d'arregistramenti
       show_known_fediverse_at_about_page:
         desc_html: Quandu ghjè selezziunatu, statuti di tuttu l’istanze cunnisciute saranu affissati indè a vista di e linee. Altrimente soli i statuti lucali saranu mustrati.
         title: Vedde tuttu u fediverse cunnisciutu nant’a vista di e linee
@@ -462,6 +483,9 @@ co:
       edit_preset: Cambià a preselezzione d'avertimentu
       title: Amministrà e preselezzione d'avertimentu
   admin_mailer:
+    new_pending_account:
+      body: I ditagli di u novu contu sò quì sottu. Pudete appruvà o righjittà a dumanda.
+      subject: Novu contu in attesa di rivista nant'à %{instance} (%{username})
     new_report:
       body: "%{reporter} hà palisatu %{target}"
       body_remote: Qualch’unu da %{domain} hà palisatu %{target}
@@ -483,7 +507,9 @@ co:
     your_token: Rigenerà a fiscia d’accessu
   auth:
     agreement_html: Cliccà "Arregistrassi" quì sottu vole dì chì site d’accunsentu per siguità <a href="%{rules_path}">e regule di u servore</a> è <a href="%{terms_path}">e cundizione d’usu</a>.
+    apply_for_account: Dumandà un'invitazione
     change_password: Chjave d’accessu
+    checkbox_agreement_html: Sò d'accunsentu cù e <a href="%{rules_path}" target="_blank">regule di u servore</a> è i <a href="%{terms_path}" target="_blank">termini di u serviziu</a>
     confirm_email: Cunfirmà l’e-mail
     delete_account: Sguassà u contu
     delete_account_html: S’è voi vulete toglie u vostru contu <a href="%{path}">ghjè quì</a>. Duverete cunfirmà a vostra scelta.
@@ -499,10 +525,12 @@ co:
       cas: CAS
       saml: SAML
     register: Arregistrassi
+    registration_closed: "%{instance} ùn accetta micca novi socii"
     resend_confirmation: Rimandà l’istruzzioni di cunfirmazione
     reset_password: Cambià a chjave d’accessu
     security: Sicurità
     set_new_password: Creà una nova chjave d’accessu
+    trouble_logging_in: Difficultà per cunnettavi?
   authorize_follow:
     already_following: Site digià abbunatu·a à stu contu
     error: Peccatu, c’hè statu un prublemu ricercandu u contu
@@ -598,6 +626,7 @@ co:
     more: Di più…
     resources: Risorze
   generic:
+    all: Tuttu
     changes_saved_msg: Cambiamenti salvati!
     copy: Cupià
     save_changes: Salvà e mudificazione
@@ -721,6 +750,17 @@ co:
     other: Altre
     publishing: Pubblicazione
     web: Web
+  relationships:
+    activity: Attività di u contu
+    dormant: Inattivu
+    moved: Spiazzatu
+    mutual: Mutuale
+    primary: Primariu
+    relationship: Rilazione
+    remove_selected_domains: Toglie tutti l'abbunati da i dumini selezziunati
+    remove_selected_followers: Toglie l'abbunati selezziunati
+    remove_selected_follows: Ùn siguità più l'utilizatori selezziunati
+    status: Statutu di u contu
   remote_follow:
     acct: Entrate u vostru cugnome@istanza da induve vulete siguità stu contu
     missing_resource: Ùn avemu pussutu à truvà l’indirizzu di ridirezzione
@@ -799,6 +839,7 @@ co:
     migrate: Migrazione di u contu
     notifications: Nutificazione
     preferences: Priferenze
+    relationships: Abbunamenti è abbunati
     settings: Parametri
     two_factor_authentication: Identificazione à dui fattori
     your_apps: E vostre applicazione
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index e455a27fd..386398421 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -1,7 +1,7 @@
 ---
 cs:
   about:
-    about_hashtag_html: Tohle jsou veřejné tooty označené hashtagem <strong>#%{hashtag}</strong>. Pokud máte účet kdekoliv na fediverse, můžete s nimi interagovat.
+    about_hashtag_html: Tohle jsou veřejné tooty označené hashtagem <strong>#%{hashtag}</strong>. Pokud máte účet kdekoliv ve fedivesmíru, můžete s nimi interagovat.
     about_mastodon_html: Mastodon je sociální síť založená na otevřených webových protokolech a svobodném, otevřeném softwaru. Je decentralizovaná jako e-mail.
     about_this: O tomto serveru
     active_count_after: aktivních
@@ -76,12 +76,12 @@ cs:
   admin:
     account_actions:
       action: Vykonat akci
-      title: Vykonat moderační akci pro účet %{acct}
+      title: Vykonat moderátorskou akci pro účet %{acct}
     account_moderation_notes:
       create: Zanechat poznámku
-      created_msg: Poznámka moderátora byla úspěšně vytvořena!
+      created_msg: Moderátorská poznámka byla úspěšně vytvořena!
       delete: Smazat
-      destroyed_msg: Poznámka moderátora byla úspěšně zničena!
+      destroyed_msg: Moderátorská poznámka byla úspěšně zničena!
     accounts:
       approve: Schválit
       are_you_sure: Jste si jistý/á?
@@ -114,7 +114,7 @@ cs:
       followers_url: URL sledujících
       follows: Sledovaní
       header: Záhlaví
-      inbox_url: URL přijatých zpráv
+      inbox_url: URL příchozí schránky
       invited_by: Pozván/a uživatelem
       ip: IP
       joined: Připojil/a se
@@ -132,13 +132,13 @@ cs:
         pending: Čekající
         silenced: Utišen/a
         suspended: Pozastaven/a
-        title: Moderace
-      moderation_notes: Moderační poznámky
+        title: Moderování
+      moderation_notes: Moderátorské poznámky
       most_recent_activity: Nejnovější aktivita
       most_recent_ip: Nejnovější IP
       no_limits_imposed: Nejsou nastavena žádná omezení
       not_subscribed: Neodebírá
-      outbox_url: URL odchozích zpráv
+      outbox_url: URL odchozí schránky
       pending: Čeká na posouzení
       perform_full_suspension: Pozastavit
       profile_url: URL profilu
@@ -165,7 +165,7 @@ cs:
         user: Uživatel
       salmon_url: URL Salmon
       search: Hledat
-      shared_inbox_url: URL sdílených přijatých zpráv
+      shared_inbox_url: URL sdílené příchozí schránky
       show:
         created_reports: Vytvořená nahlášení
         targeted_reports: Nahlášeni ostatními
@@ -270,7 +270,7 @@ cs:
       domain: Doména
       new:
         create: Vytvořit blokaci
-        hint: Blokace domény nezakáže vytváření účtových záznamů v databázi, ale bude na tyto účty zpětně a automaticky aplikovat specifické metody moderace.
+        hint: Blokace domény nezakáže vytváření záznamů účtů v databázi, ale bude na tyto účty zpětně a automaticky aplikovat specifické metody moderování.
         severity:
           desc_html: Funkce <strong>Utišit</strong> zneviditelní příspěvky z účtu komukoliv, kdo jej nesleduje. Funkce <strong>Pozastavit</strong> odstraní všechen obsah, média a profilová data účtu. Pro pouhé odmítnutí mediálních souborů použijte funkci <strong>Žádné</strong>.
           noop: Žádné
@@ -284,8 +284,8 @@ cs:
       rejecting_media: odmítají se mediální soubory
       rejecting_reports: odmítají se nahlášení
       severity:
-        silence: utišené
-        suspend: pozastavené
+        silence: utišeno
+        suspend: pozastaveno
       show:
         affected_accounts:
           few: "%{count} účty v databázi byly ovlivněny"
@@ -305,7 +305,7 @@ cs:
       domain: Doména
       new:
         create: Přidat doménu
-        title: Nový e-mail pro zablokování
+        title: Nová položka pro černou listinu e-mailů
       title: Černá listina e-mailů
     followers:
       back_to_account: Zpět na účet
@@ -320,7 +320,7 @@ cs:
       moderation:
         all: Všechny
         limited: Omezené
-        title: Moderace
+        title: Moderování
       title: Federace
       total_blocked_by_us: Blokované námi
       total_followed_by_them: Sledované jimi
@@ -338,7 +338,7 @@ cs:
     relays:
       add_new: Přidat nový most
       delete: Smazat
-      description_html: "<strong>Federovací most</strong> je přechodný server, který vyměňuje velká množství veřejných tootů mezi servery, které z něj odebírají a poblikují na něj. <strong>Může pomoci malým a středně velkým serverům objevovat obsah z fediverse</strong>, což by jinak vyžadovalo, aby místní uživatelé manuálně sledovali jiné lidi na vzdálených serverech."
+      description_html: "<strong>Federovací most</strong> je přechodný server, který vyměňuje velká množství veřejných tootů mezi servery, které z něj odebírají a publikují na něj. <strong>Může pomoci malým a středně velkým serverům objevovat obsah z fedivesmíru</strong>, což by jinak vyžadovalo, aby místní uživatelé manuálně sledovali jiné lidi na vzdálených serverech."
       disable: Zakázat
       disabled: Zakázáno
       enable: Povolit
@@ -403,7 +403,7 @@ cs:
         desc_html: Zobrazuje se na hlavní stránce. Doporučuje se rozlišení alespoň 293x205 px. Pokud toto není nastaveno, bude zobrazen výchozí maskot
         title: Obrázek maskota
       peers_api_enabled:
-        desc_html: Domény, na které tento server narazil ve fediverse
+        desc_html: Domény, na které tento server narazil ve fedivesmíru
         title: Zveřejnit seznam objevených serverů
       preview_sensitive_media:
         desc_html: Náhledy odkazů na jiných stránkách budou zobrazeny i pokud jsou media označena jako citlivá
@@ -425,22 +425,22 @@ cs:
         modes:
           approved: Pro registraci je vyžadováno schválení
           none: Nikdo se nemůže registrovat
-          open: Všichni se mohou registrovat
+          open: Kdokoliv se může registrovat
         title: Režim registrací
       show_known_fediverse_at_about_page:
-        desc_html: Je-li toto zapnuto, zobrazí se v náhledu tooty ze všech známých serverů na fediverse. Jinak budou zobrazeny pouze místní tooty.
-        title: Zobrazit na náhledu časové osy celé známé fediverse
+        desc_html: Je-li tohle zapnuto, zobrazí se v náhledu tooty z celého známého fedivesmíru. Jinak budou zobrazeny pouze místní tooty.
+        title: Zobrazit na náhledu časové osy celý známý fedivesmír
       show_staff_badge:
         desc_html: Zobrazit na stránce uživatele odznak člena personálu
         title: Zobrazit odznak personálu
       site_description:
-        desc_html: Úvodní odstavec na hlavní straně. Popište, díky čemu je tento server Mastodon zvláštní, a cokoliv jiného, co je důležité. Můžete zde používat HTML značky, hlavně <code>&lt;a&gt;</code> a <code>&lt;em&gt;</code>.
+        desc_html: Úvodní odstavec v API. Popište, díky čemu je tento server Mastodon zvláštní, a cokoliv jiného, co je důležité. Můžete zde používat HTML značky, hlavně <code>&lt;a&gt;</code> a <code>&lt;em&gt;</code>.
         title: Popis serveru
       site_description_extended:
         desc_html: Dobré místo pro vaše pravidla, pokyny a jiné věci, které váš server odlišují od ostatních. Lze použít HTML značky
-        title: Vlastní doplňující informace
+        title: Vlastní rozšířené informace
       site_short_description:
-        desc_html: Zobrazen v postranním panelu a meta značkách. Popište, co je Mastodon a díky čemu je tento server zvláštní v jediném odstavci. Je-li tohle prázdné, zobrazí se popis serveru.
+        desc_html: Zobrazen v postranním panelu a meta značkách. Popište, co je Mastodon a díky čemu je tento server zvláštní v jediném odstavci.
         title: Krátký popis serveru
       site_terms:
         desc_html: Můžete si napsat vlastní zásady soukromí, podmínky používání či jiné legality. Můžete použít HTML značky
@@ -593,6 +593,9 @@ cs:
       content: Omlouváme se, ale něco se u nás pokazilo.
       title: Tato stránka není správná
     noscript_html: Pro použití webové aplikace Mastodon prosím povolte JavaScript. Nebo zkuste jednu z <a href="%{apps_path}">nativních aplikací</a> pro Mastodon pro vaši platformu.
+  existing_username_validator:
+    not_found: nelze najít místního uživatele s tímto uživatelským jménem
+    not_found_multiple: nelze najít %{usernames}
   exports:
     archive_takeout:
       date: Datum
@@ -633,6 +636,7 @@ cs:
     more: Více…
     resources: Zdroje
   generic:
+    all: Všechny
     changes_saved_msg: Změny byly úspěšně uloženy!
     copy: Kopírovat
     save_changes: Uložit změny
@@ -640,6 +644,23 @@ cs:
       few: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyby níže
       one: Něco ještě není úplně v pořádku! Prosím zkontrolujte chybu níže
       other: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyb níže
+  html_validator:
+    invalid_markup: obsahuje neplatné HTML značkování
+  identity_proofs:
+    active: Aktivní
+    authorize: Ano, autorizovat
+    authorize_connection_prompt: Autorizovat tohle kryptografické spojení?
+    errors:
+      failed: Kryptografické spojení selhalo. Prosím zkuste to znovu z %{provider}.
+      keybase:
+        invalid_token: Tokeny Keybase jsou hashe podpisů a musí být 66 znaků dlouhé
+        verification_failed: Keybase nerozpoznává tento token jako podpis uživatele %{kb_username} na Keybase. Prosím zkuste to znovu z Keybase.
+    explanation_html: Zde můžete kryptograficky připojit vaše ostatní identity, například profil Keybase. To dovolí jiným lidem vám posílat šifrované zprávy a důvěřovat obsahu, který jim pošlete.
+    i_am_html: Na %{service} jsem %{username}.
+    identity: Identita
+    inactive: Neaktivní
+    status: Stav ověření
+    view_proof: Zobrazit důkaz
   imports:
     modes:
       merge: Sloučit
@@ -689,9 +710,9 @@ cs:
     acct: přezdívka@doména nového účtu
     currently_redirecting: 'Váš profil má nastaveno přesměrování na:'
     proceed: Uložit
-    updated_msg: Vaše nastavení migrace účtu bylo úspěšně aktualizováno!
+    updated_msg: Vaše nastavení přesunutí účtu bylo úspěšně aktualizováno!
   moderation:
-    title: Moderace
+    title: Moderování
   notification_mailer:
     digest:
       action: Zobrazit všechna oznámení
@@ -759,6 +780,17 @@ cs:
     other: Ostatní
     publishing: Publikování
     web: Web
+  relationships:
+    activity: Aktivita účtu
+    dormant: Nečinné
+    moved: Přesunuté
+    mutual: Vzájemné
+    primary: Primární
+    relationship: Vztah
+    remove_selected_domains: Odstranit všechny sledující ze zvolených domén
+    remove_selected_followers: Odstranit zvolené sledující
+    remove_selected_follows: Přestat sledovat zvolené uživatele
+    status: Stav účtu
   remote_follow:
     acct: Napište svou přezdívku@doménu, ze které chcete jednat
     missing_resource: Nemůžeme najít požadované přesměrovací URL pro váš účet
@@ -833,10 +865,12 @@ cs:
     edit_profile: Upravit profil
     export: Export dat
     featured_tags: Zvýrazněné hashtagy
+    identity_proofs: Důkazy identity
     import: Import
     migrate: Přesunutí účtu
     notifications: Oznámení
     preferences: Předvolby
+    relationships: Sledovaní a sledující
     settings: Nastavení
     two_factor_authentication: Dvoufaktorové ověřování
     your_apps: Vaše aplikace
@@ -905,7 +939,7 @@ cs:
 
       <ul>
         <li>K poskytnutí základních funkcí Mastodonu. Interagovat s obsahem od jiných lidí a přispívat svým vlastním obsahem můžete pouze, pokud jste přihlášeni. Můžete například sledovat jiné lidi a zobrazit si jejich kombinované příspěvky ve vaší vlastní personalizované časové ose.</li>
-        <li>Pro pomoc moderaci komunity, například porovnáním vaší IP adresy s dalšími známými adresami pro určení vyhýbání se zákazům či jiných přestupků.</li>
+        <li>Pro pomoc moderování komunity, například porovnáním vaší IP adresy s dalšími známými adresami pro určení vyhýbání se zákazům či jiných přestupků.</li>
         <li>E-mailová adresa, kterou nám poskytnete, může být použita pro zasílání informací, oznámení o interakcích jiných uživatelů s vaším obsahem nebo přijatých zprávách a k odpovědím na dotazy a/nebo další požadavky či otázky.</li>
       </ul>
 
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 68a445e4c..fe00c9ffc 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -4,20 +4,30 @@ cy:
     about_hashtag_html: Dyma dŵtiau cyhoeddus wedi eu tagio gyda <strong>#%{hashtag}</strong>. Gallwch ryngweithio gyda nhw os oes gennych gyfrif yn unrhyw le yn y ffeddysawd.
     about_mastodon_html: Mae Mastodon yn rwydwaith cymdeithasol sy'n seiliedig ar brotocolau gwe a meddalwedd cod agored rhad ac am ddim. Yn debyg i e-bost mae'n ddatganoledig.
     about_this: Ynghylch
+    active_count_after: yn weithgar
+    active_footnote: Nifer Defnyddwyr Gweithgar Misol
     administered_by: 'Gweinyddir gan:'
     api: API
     apps: Apiau symudol
+    apps_platforms: Defnyddio Mastodon o iOS, Android a platfformau eraill
+    browse_directory: Pori cyfeiriadur proffil a hidlo yn ôl diddordebau
+    browse_public_posts: Pori ffrwd fyw o dŵtiau gyhoeddus ar Mastodon
     contact: Cyswllt
     contact_missing: Heb ei osod
     contact_unavailable: Ddim yn berthnasol
+    discover_users: Darganfod defnyddwyr
     documentation: Dogfennaeth
     extended_description_html: |
       <h3>Lle da ar gyfer rheolau</h3>
       <p>Nid yw'r disgrifiad estynedig wedi ei osod eto.</p>
+    federation_hint_html: Mae cyfrif ar %{instance} yn caniatau i chi ddilyn pobl ar unrhyw weinydd Mastodon a mwy.
     generic_description: Mae %{domain} yn un gweinydd yn y rhwydwaith
+    get_apps: Trio ap symudol
     hosted_on: Mastodon wedi ei weinyddu ar %{domain}
     learn_more: Dysu mwy
     privacy_policy: Polisi preifatrwydd
+    see_whats_happening: Gweld beth sy'n digwydd
+    server_stats: 'Ystadegau gweinydd:'
     source_code: Cod ffynhonnell
     status_count_after:
       few: statwsau
@@ -27,6 +37,7 @@ cy:
       two: statwsau
       zero: statwsau
     status_count_before: Ysgriffennwyd gan
+    tagline: Dilyn ffrindiau a canfod rhai newydd
     terms: Telerau gwasanaeth
     user_count_after:
       few: defnyddwyr
@@ -84,6 +95,7 @@ cy:
       delete: Dileu
       destroyed_msg: Dinistrwyd nodyn cymedroli yn llwyddiannus!
     accounts:
+      approve: Caniatau
       are_you_sure: Ydych chi'n siŵr?
       avatar: Afatar
       by_domain: Parth
@@ -129,6 +141,7 @@ cy:
       moderation:
         active: Yn weithredol
         all: Popeth
+        pending: Yn yr arfaeth
         silenced: Wedi ei dawelu
         suspended: Wedi ei atal
         title: Cymedroli
@@ -138,6 +151,7 @@ cy:
       no_limits_imposed: Dim terfynau wedi'i gosod
       not_subscribed: Heb danysgrifio
       outbox_url: Allflwch URL
+      pending: Yn disgwyl adolygiad
       perform_full_suspension: Atal
       profile_url: URL proffil
       promote: Hyrwyddo
@@ -145,6 +159,7 @@ cy:
       public: Cyhoeddus
       push_subscription_expires: Tanysgrifiad PuSH yn dod i ben
       redownload: Adnewyddu proffil
+      reject: Gwrthod
       remove_avatar: Dileu afatar
       remove_header: Dileu pennawd
       resend_confirmation:
@@ -424,6 +439,12 @@ cy:
         min_invite_role:
           disabled: Neb
           title: Caniatau gwahoddiadau gan
+      registrations_mode:
+        modes:
+          approved: Mae angen caniatad ar gyfer cofrestru
+          none: Does neb yn cael cofrestru
+          open: Mae pawb yn cael cofrestru
+        title: Modd cofrestru
       show_known_fediverse_at_about_page:
         desc_html: Wedi'i ddewis, bydd yn dangos rhagolwg o dŵtiau o'r holl ffedysawd. Fel arall bydd ond yn dangos tŵtiau lleol.
         title: Dangos ffedysawd hysbys ar ragolwg y ffrwd
@@ -486,6 +507,9 @@ cy:
       edit_preset: Golygu rhagosodiad rhybudd
       title: Rheoli rhagosodiadau rhybudd
   admin_mailer:
+    new_pending_account:
+      body: Mae manylion y cyfrif newydd isod. Mae modd caniatau neu gwrthod y cais hwn.
+      subject: Mae cyfrif newydd i'w adolygu i'w weld ar %{instance} (%{username})
     new_report:
       body: Mae %{reporter} wedi cwyno am %{target}
       body_remote: Mae rhywun o %{domain} wedi cwyno am %{target}
@@ -507,7 +531,9 @@ cy:
     your_token: Eich tocyn mynediad
   auth:
     agreement_html: Wrth glicio "Cofrestru" isod yr ydych yn cytuno i ddilyn <a href="%{rules_path}">y rheolau ar gyfer yr achos hwn</a> a <a href="%{terms_path}">ein termau gwasanaeth</a>.
+    apply_for_account: Gwneud cais am wahoddiad
     change_password: Cyfrinair
+    checkbox_agreement_html: Yr wyf yn cytuno i ddilyn <a href="%{rules_path}" target="_blank">rheolau'r gweinydd</a> a <a href="%{terms_path}" target="_blank">termau'r gwasanaeth</a>
     confirm_email: Cadarnhau e-bost
     delete_account: Dileu cyfrif
     delete_account_html: Os hoffech chi ddileu eich cyfrif, mae modd <a href="%{path}">parhau yma</a>. Bydd gofyn i chi gadarnhau.
@@ -523,10 +549,12 @@ cy:
       cas: CAS
       saml: SAML
     register: Cofrestru
+    registration_closed: Nid yw'r %{instance} yn derbyn aelodau newydd
     resend_confirmation: Ailanfon cyfarwyddiadau cadarnhau
     reset_password: Ailosod cyfrinair
     security: Diogelwch
     set_new_password: Gosod cyfrinair newydd
+    trouble_logging_in: Trafferth yn mewngofnodi?
   authorize_follow:
     already_following: Yr ydych yn dilyn y cyfrif hwn yn barod
     error: Yn anffodus, roedd gwall tra'n edrych am y cyfrif anghysbell
@@ -640,10 +668,13 @@ cy:
     modes:
       merge: Cyfuno
       merge_long: Cadw'r cofnodau presennol ac ychwanegu rhai newydd
+      overwrite: Trosysgrifio
+      overwrite_long: Disodli cofnodau presennol a rhai newydd
     preface: Mae modd mewnforio data yr ydych wedi allforio o achos arall, megis rhestr o bobl yr ydych yn ei ddilyn neu yn blocio.
     success: Uwchlwythwyd eich data yn llwyddiannus ac fe fydd yn cael ei brosesu mewn da bryd
     types:
       blocking: Rhestr blocio
+      domain_blocking: Rhestr blocio parth
       following: Rhestr dilyn
       muting: Rhestr tawelu
     upload: Uwchlwytho
@@ -746,17 +777,38 @@ cy:
     older: Hŷn
     prev: Blaenorol
     truncate: "&hellip;"
+  polls:
+    errors:
+      already_voted: Yr ydych wedi pleidleisio'n barod yn y bleidlais hon
+      duplicate_options: cynnwys eitemau dyblyg
+      duration_too_long: yn rhy bell yn y dyfodol
+      duration_too_short: yn rhy fuan
+      expired: Mae'r bleidlais wedi gorffen yn barod
+      over_character_limit: ni all fod yn fwy na %{max} o gymeriadau
+      too_few_options: mae mwy nag un eitem yn angenrheidiol
+      too_many_options: ni all gynnwys mwy na %{max} eitem
   preferences:
     languages: Ieithoedd
     other: Arall
     publishing: Cyhoeddi
     web: Gwe
+  relationships:
+    activity: Gweithgaredd cyfrif
+    dormant: Segur
+    moved: Symudwyd
+    primary: Cynradd
+    relationship: Perthynas
+    remove_selected_domains: Gwaredu pob dilynwr o'r parthau a ddewiswyd
+    remove_selected_followers: Gwaredu'r dilynwyr a ddewiswyd
+    remove_selected_follows: Dad-ddilyn defnyddwyr a ddewiswyd
+    status: Statws cyfrif
   remote_follow:
     acct: Mewnbynnwch eich enwdefnyddiwr@parth yr ydych eisiau gweithredu ohonno
     missing_resource: Ni ellir canfod yr URL ailgyferio angenrheidiol i'ch cyfrif
     no_account_html: Heb gyfrif? Mae modd i chi <a href='%{sign_up_path}' target='_blank'>gofrestru yma</a>
     proceed: Ymlaen i ddilyn
     prompt: 'Yr ydych am ddilyn:'
+    reason_html: "<strong>Pam fod angen y cam hwn?</strong> Gall <code>%{instance}</code> fod yn weinydd gwahanol i'r un yr ydych wedi cofrestru iddo, ac fell mae angen i ni eich allgyfeirio i'ch gweinydd cartref gyntaf."
   remote_unfollow:
     error: Gwall
     title: Teitl
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 625cead43..88bf05d17 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -7,6 +7,7 @@ da:
     administered_by: 'Administreret af:'
     api: API
     apps: Apps til mobilen
+    apps_platforms: Brug Mastodon på iOS, Android og andre platformer
     contact: Kontakt
     contact_missing: Ikke sat
     contact_unavailable: Ikke tilgængeligt
@@ -139,8 +140,8 @@ da:
       search: Søg
       shared_inbox_url: Link til delt indbakke
       show:
-        created_reports: Anmeldelser oprettet af denne konto
-        targeted_reports: Anmeldelser fra denne konto
+        created_reports: Anmeldelser oprettet
+        targeted_reports: Anmeldelser fra andre
       silence: Dæmp
       silenced: Dæmpet
       statuses: Statusser
@@ -232,7 +233,7 @@ da:
       week_users_active: aktive denne uge
       week_users_new: brugere denne uge
     domain_blocks:
-      add_new: Tilføj ny
+      add_new: Tilføj ny domain block
       created_msg: Domæne blokade bliver nu behandlet
       destroyed_msg: Domæne blokade er blevet annulleret
       domain: Domæne
@@ -257,7 +258,7 @@ da:
           suspend: Fjern udelukkelsen af alle eksisterende konti fra dette domæne
         title: Annuller domæne blokeringen for domænet %{domain}
         undo: Fortryd
-      undo: Fortryd
+      undo: Fortryd domain block
     email_domain_blocks:
       add_new: Tilføj ny
       created_msg: Tilføjede succesfuldt email domænet til sortliste
@@ -271,7 +272,7 @@ da:
     followers:
       back_to_account: Tilbage til konto
     instances:
-      title: Kendte instanser
+      title: Førderation
     invites:
       deactivate_all: Deaktiver alle
       filter:
@@ -342,11 +343,11 @@ da:
         desc_html: Ændre udseendet med CSS indlæst på hver side
         title: Brugerdefineret CSS
       hero:
-        desc_html: Vist på forsiden. Mindst 600x100px anbefales. Hvis ikke sat, vil dette falde tilbage til billedet for instansen
+        desc_html: Vist på forsiden. Mindst 600x100px anbefales. Hvis ikke sat, vil dette falde tilbage til billedet fra serveren
         title: Billede af helt
       peers_api_enabled:
-        desc_html: Domæne navne denne instans er stødt på i fediverset
-        title: Udgiv liste over opdagede instanser
+        desc_html: Domæne navne denne server er stødt på i fediverset
+        title: Udgiv liste over opdagede server
       preview_sensitive_media:
         desc_html: Forhåndsvisninger af links på andre websider vil vise et miniaturebillede selv hvis mediet er markeret som følsomt
         title: Vis følsomt medie i OpenGraph forhåndsvisninger
@@ -368,20 +369,20 @@ da:
         title: Vis personale emblem
       site_description:
         desc_html: Introduktions afsnit på forsiden. Beskriv hvad der gør denne Mastodon server speciel og alt andet vigtigt. Du kan bruge HTML tags, især <code>&lt;a&gt;</code> og <code>&lt;em&gt;</code>.
-        title: Beskrivelse af instans
+        title: Beskrivelse af serveren
       site_description_extended:
-        desc_html: Et godt sted for placering af adfærdskodes, regler, retningslinjer og andre ting der gør din instans unik. Du kan bruge HTML tags
+        desc_html: Et godt sted for placering af adfærdskodes, regler, retningslinjer og andre ting der gør din server unik. Du kan bruge HTML tags
         title: Brugerdefineret udvidet information
       site_short_description:
-        desc_html: Vist på sidelinjen og meta tags. Beskriv hvad Mastodon er og hvad der gør denne server speciel i et enkelt afsnit. Hvis tomt, vil standard være beskrivelsen af instansen.
-        title: Kort beskrivelse af instans
+        desc_html: Vist på sidelinjen og meta tags. Beskriv hvad Mastodon er og hvad der gør denne server speciel i et enkelt afsnit. Hvis tomt, vil standard være beskrivelsen af serveren.
+        title: Kort beskrivelse af serveren
       site_terms:
         desc_html: Du kan skrive din egen privatlivpolitik, servicevilkår, eller lignende. Du kan bruge HTML tags
         title: Brugerdefineret servicevilkår
-      site_title: Navn på instans
+      site_title: Navn af serveren
       thumbnail:
         desc_html: Brugt til forhåndsvisninger via OpenGraph og API. 1200x630px anbefales
-        title: Miniaturebillede for instans
+        title: Miniaturebillede for serveren
       timeline_preview:
         desc_html: Vis offentlig tidslinje på landingssiden
         title: Tidslinje forhåndsvisning
@@ -431,7 +432,7 @@ da:
     warning: Vær meget forsigtig med disse data. Del dem aldrig med nogen!
     your_token: Din adgangs token
   auth:
-    agreement_html: Ved at oprette dig erklærer du dig enig i at følge <a href="%{rules_path}">instanses regler</a> og <a href="%{terms_path}">vores servicevilkår</a>.
+    agreement_html: Ved at oprette dig erklærer du dig enig i at følge <a href="%{rules_path}">serverens regler</a> og <a href="%{terms_path}">vores servicevilkår</a>.
     change_password: Kodeord
     confirm_email: Bekræft email
     delete_account: Slet konto
@@ -483,7 +484,7 @@ da:
     description_html: Dette vil <strong>permanent, uigenkaldeligt</strong> fjerne indhold fra din konto samt deaktivere den. Dit brugernavn vil forblive reserveret for at forhindre fremtidige efterligninger.
     proceed: Slet konto
     success_msg: Din konto er nu blevet slettet
-    warning_html: Kun sletning af indhold fra denne specifikke instans er garanteret. Indhold der er blevet delt rundt omkring vil sandsynligvis efterlade spor. Offline servere og servere der ikke længere abonnerer på dine opdateringer vil ikke opdatere deres databaser.
+    warning_html: Kun sletning af indhold fra denne specifikke server er garanteret. Indhold der er blevet delt rundt omkring vil sandsynligvis efterlade spor. Offline servere og servere der ikke længere abonnerer på dine opdateringer vil ikke opdatere deres databaser.
     warning_title: Tilgængelighed af delt indhold
   errors:
     '403': Du har ikke tilladelse til at se denne side.
@@ -538,7 +539,7 @@ da:
       one: Der er noget der ikke er helt som det bør være! Tag lige et kig på følgende fejl forneden
       other: Der er noget der ikke er helt som det bør være! Tag lige et kig på følgende %{count} fejl forneden
   imports:
-    preface: Du kan importere data du har eksporteret fra en anden instans, så som en liste over folk du følger eller blokerer.
+    preface: Du kan importere data du har eksporteret fra en anden server, så som en liste over folk du følger eller blokerer.
     success: Dine data blev succesfuldt uploaded og vil nu blive behandlet hurtigst muligt
     types:
       blocking: Blokeringsliste
@@ -563,7 +564,7 @@ da:
       one: 1 benyttelse
       other: "%{count} benyttelser"
     max_uses_prompt: Ubegrænset
-    prompt: Generer og del links med andre for at give dem adgang til denne instans
+    prompt: Generer og del links med andre for at give dem adgang til denne server
     table:
       expires_at: Udløber
       uses: Benyttelser
@@ -743,9 +744,9 @@ da:
     body_html: "<p><h2> Privatlivspolitik </h2> \n<h3 id=\"collect\">Hvilke information indsamler vi?</h3> \n\n<ul>\n  <li><em>Grundlæggende kontoinformation </em>: Hvis du registrerer dig på denne server, bliver du måske bedt om at indtaste et brugernavn, en e-mail-adresse og et kodeord. Du kan også indtaste yderligere profiloplysninger, såsom et visningsnavn og biografi, og uploade et profilbillede og headerbillede. Brugernavnet, visningsnavnet, biografien, profilbilledet og hovedbilledet vises altid offentligt. </li> \n  <li> <em>Stillinger, følgende og andre offentlige oplysninger </em>: Listen over personer du følger er offentliggjort, det samme gælder for dine tilhængere. Når du sender en besked, gemmes datoen og klokkeslættet såvel som det program, du sendte beskeden fra. Meddelelser kan indeholde medievedhæftninger, som f.eks. Billeder og videoer. Offentlige og unoterede indlæg er offentligt tilgængelige. Når du har et indlæg på din profil, er det også offentligt tilgængelig information. Dine indlæg leveres til dine tilhængere, i nogle tilfælde betyder det, at de leveres til forskellige servere, og der gemmes kopier der. Når du sletter indlæg, leveres det også til dine tilhængere. Handlingen med reblogging eller favorisering af et andet indlæg er altid offentligt. </li>\n  <li><em> Direkte og efterfølger-kun indlæg </ em>: Alle indlæg gemmes og behandles på serveren. Følgere-kun indlæg leveres til dine tilhængere og brugere, der er nævnt i dem, og direkte indlæg leveres kun til brugere nævnt i dem. I nogle tilfælde betyder det, at de leveres til forskellige servere, og der gemmes kopier der. Vi gør en god tro for at begrænse adgangen til disse stillinger kun til autoriserede personer, men andre servere kan undlade at gøre det. Derfor er det vigtigt at gennemgå de servere, dine tilhængere tilhører. Du kan skifte en mulighed for at godkende og afvise nye følgere manuelt i indstillingerne. <em> Vær opmærksom på, at operatørerne af serveren og enhver modtagende server muligvis kan se sådanne meddelelser </em>, og at modtagere muligvis skærmbilleder, kopierer eller på anden vis deler dem igen. <em> Del ikke nogen farlig information over Mastodon. </em> </li>\n  <li> <em> IP'er og andre metadata </em>: Når du logger ind, registrerer vi den IP-adresse, du logger ind fra, samt navnet på din browser-applikation. Alle indloggede sessioner er tilgængelige til din anmeldelse og tilbagekaldelse i indstillingerne. Den seneste anvendte IP-adresse gemmes i op til 12 måneder. Vi kan også beholde serverlogfiler, som indeholder IP-adressen til hver anmodning til vores server. </li>\n</ul>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"use\">Hvad bruger vi dine oplysninger til? </h3>\n\n<p> Enhver af de oplysninger, vi indsamler fra dig, kan bruges på følgende måder: </p>\n\n<ul>\n  <li> At levere kernen funktionalitet Mastodon. Du kan kun interagere med andres indhold og indsende dit eget indhold, når du er logget ind. Du kan f.eks. Følge andre personer for at se deres kombinerede indlæg på din egen personlige tidslinje. </li>\n  <li> For at hjælpe moderering af samfundet, f.eks. sammenligning af din IP-adresse med andre kendte, for at bestemme forbud mod unddragelse eller andre overtrædelser. </li>\n  <li> Den e-mail-adresse, du angiver, kan bruges til at sende dig oplysninger, meddelelser om andre personer, der interagerer med dit indhold eller sender dig beskeder, og for at svare på henvendelser og / eller andre forespørgsler eller spørgsmål. </li>\n</ul>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"protect\">Hvordan beskytter vi dine oplysninger? </h3>\n\n<p> Vi implementerer en række sikkerhedsforanstaltninger for at opretholde sikkerheden for dine personlige oplysninger, når du indtaster, indsender eller har adgang til dine personlige oplysninger. Bl.a. er din browsersession samt trafikken mellem dine applikationer og API'en sikret med SSL, og din adgangskode er hashed ved hjælp af en stærk envejsalgoritme. Du kan muligvis aktivere tofaktors godkendelse for yderligere at sikre adgang til din konto. </p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"data-retention\"> Hvad er vores data retention politik? </h3>\n\n<p> Vi vil gøre en god tro indsats for at: </p>\n\n<ul>\n  <li> Behold serverlogfiler, der indeholder IP-adressen på alle anmodninger til denne server, for så vidt som sådanne logfiler holdes, ikke mere end 90 dage. </li>\n  <li> Behold de IP-adresser, der er forbundet med registrerede brugere, ikke mere end 12 måneder. </li>\n</ul>\n\n<p> Du kan anmode om og downloade et arkiv af dit indhold, herunder dine indlæg, medievedhæftninger, profilbillede og headerbillede. </p>\n\n<p> Du kan til enhver tid slette din konto. </p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"cookies\"> Bruger vi cookies? </h3>\n\n<p> Ja. Cookies er små filer, som et websted eller dets tjenesteudbyder overfører til din computers harddisk via din webbrowser (hvis du tillader det). Disse cookies gør det muligt for webstedet at genkende din browser og, hvis du har en registreret konto, associerer den med din registrerede konto. </p>\n\n<p> Vi bruger cookies til at forstå og gemme dine præferencer til fremtidige besøg. </p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"disclose\"> Viser vi nogen information til eksterne parter? </h3>\n\n<p> Vi sælger ikke, handler eller på anden måde overfører dine personlige identificerbare oplysninger til eksterne parter. Dette omfatter ikke tillid til tredjeparter, der hjælper os med at drive vores hjemmeside, udføre vores forretning eller servicere dig, så længe parterne er enige om at holde disse oplysninger fortrolige. Vi kan også frigive dine oplysninger, når vi mener, at udgivelsen er hensigtsmæssig for at overholde loven, håndhæve vores webstedspolitikker eller beskytte vores eller andre rettigheder, ejendom eller sikkerhed. </p>\n\n<p> Dit offentlige indhold kan downloades af andre servere i netværket. Dine offentlige og efterfølger-kun indlæg leveres til de servere, hvor dine tilhængere er bosat, og direkte meddelelser leveres til modtagerens servere, for så vidt som disse tilhængere eller modtagere opholder sig på en anden server end dette. </p>\n\n<p> Når du autoriserer et program til at bruge din konto, afhænger det af omfanget af tilladelser, du godkender, det kan få adgang til dine offentlige profiloplysninger, din følgende liste, dine tilhængere, dine lister, alle dine indlæg og dine favoritter. Applikationer kan aldrig få adgang til din e-mail-adresse eller adgangskode. </p>\n\n<hr class=\"spacer\" />\n\n<h3 id=\"children\"> Bebyggelse af børn </h3>\n\n<p> Hvis denne server er i EU eller EØS: Vores websted, produkter og tjenester er alle rettet mod personer, der er mindst 16 år gamle. Hvis du er under 16 år, skal du ikke bruge dette websted efter kravene i GDPR (<a href=\"https://en.wikipedia.org/wiki/General_Data_Protection_Regulation\"> Generel databeskyttelsesforordning </a>). . </p>\n\n<p> Hvis denne server er i USA: Vores websted, produkter og tjenester er alle rettet mod personer, der er mindst 13 år. Hvis du er under 13 år, skal du ikke bruge kravene i COPPA (<a href=\"https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act\"> Børns online beskyttelse af personlige oplysninger </a>) dette websted. </p>\n\n<p> Lovkrav kan være anderledes, hvis denne server er i en anden jurisdiktion. </p>\n\n<hr class = \"spacer\" />\n\n<h3 id=\"changes\"> Ændringer i vores privatlivspolitik </h3>\n\n<p> Hvis vi beslutter os for at ændre vores privatlivspolitik, vil vi sende disse ændringer på denne side. </p>\n\n<p> Dette dokument er CC-BY-SA. Det blev senest opdateret 7. marts 2018. </p>\n\n<p> Oprindelig tilpasset fra <a href=\"https://github.com/discourse/discourse\"> Discourse privacy policy </a>.</p>\n"
     title: Vilkår og privatlivpolitik for %{instance}
   themes:
-    contrast: Høj kontrast
-    default: Mastodont
-    mastodon-light: Mastodon (lys)
+    contrast: Mastodon (Høj kontrast)
+    default: Mastodont (Mørk)
+    mastodon-light: Mastodon (Lys)
   time:
     formats:
       default: "%b %d, %Y, %H:%M"
@@ -778,7 +779,7 @@ da:
       final_action: Kom igang med at poste
       final_step: 'Start med at skrive opslag! Selv uden følgere vil dine offentlige beskeder kunne ses af andre, foreksempel på den lokale tidslinje og i hashtags. Måske kunne du tænke dig at introducere dig selv på #introductions hashtagget.'
       full_handle: Dit fulde brugernavn
-      full_handle_hint: Dette er hvad du vil fortælle dine venner så de kan sende dig beskeder eller følge dig fra andre instanser.
+      full_handle_hint: Dette er hvad du vil fortælle dine venner så de kan sende dig beskeder eller følge dig fra andre server.
       review_preferences_action: Ændre præferencer
       review_preferences_step: Vær sikker på at sætte dine præferencer, så som hvilke emails du kunne tænke dig at modtage, eller hvilket niveau af privatliv der skal være standard for dine opslag. Hvis du kunne tænke dig ikke at blive køresyg, kan du vælge at aktivere automatisk afspilning af GIFfer.
       subject: Velkommen til Mastodon
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 5c095c58a..e22198687 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -4,25 +4,36 @@ de:
     about_hashtag_html: Dies sind öffentliche Beiträge, die mit <strong>#%{hashtag}</strong> getaggt wurden. Wenn du irgendwo im Fediversum ein Konto besitzt, kannst du mit ihnen interagieren.
     about_mastodon_html: Mastodon ist ein soziales Netzwerk. Es basiert auf offenen Web-Protokollen und freier, quelloffener Software. Es ist dezentral (so wie E-Mail!).
     about_this: Über diese Instanz
+    active_count_after: aktiv
+    active_footnote: Monatlich Aktive User (MAU)
     administered_by: 'Administriert von:'
     api: API
     apps: Mobile Apps
+    apps_platforms: Benutze Mastodon auf iOS, Android und anderen Plattformen
+    browse_directory: Durchsuche ein Profilverzeichnis und filtere nach Interessen
+    browse_public_posts: Durchsuche einen Zeitleiste an öffentlichen Beiträgen auf Mastodon
     contact: Kontakt
     contact_missing: Nicht angegeben
     contact_unavailable: N/A
+    discover_users: Benutzer entdecken
     documentation: Dokumentation
     extended_description_html: |
       <h3>Ein guter Platz für Regeln</h3>
       <p>Die erweiterte Beschreibung wurde noch nicht aufgesetzt.</p>
+    federation_hint_html: Mit einem Account auf %{instance} wirst du in der Lage sein Nutzern auf irgendeinem Mastodon-Server und darüber hinaus zu folgen.
     generic_description: "%{domain} ist ein Server im Netzwerk"
+    get_apps: Versuche eine mobile App
     hosted_on: Mastodon, beherbergt auf %{domain}
     learn_more: Mehr erfahren
     privacy_policy: Datenschutzerklärung
+    see_whats_happening: Finde heraus, was gerade in der Welt los ist
+    server_stats: 'Serverstatistiken:'
     source_code: Quellcode
     status_count_after:
       one: Statusmeldung
       other: Statusmeldungen
     status_count_before: mit
+    tagline: Finde Freunde und entdecke neue
     terms: Nutzungsbedingungen
     user_count_after:
       one: Benutzer:in
@@ -68,6 +79,7 @@ de:
       delete: Löschen
       destroyed_msg: Moderationsnotiz erfolgreich gelöscht!
     accounts:
+      approve: Aktzeptieren
       are_you_sure: Bist du sicher?
       avatar: Profilbild
       by_domain: Domain
@@ -113,6 +125,7 @@ de:
       moderation:
         active: Aktiv
         all: Alle
+        pending: Ausstehend
         silenced: Stummgeschaltet
         suspended: Gesperrt
         title: Moderation
@@ -122,6 +135,7 @@ de:
       no_limits_imposed: Keine Limits eingesetzt
       not_subscribed: Nicht abonniert
       outbox_url: Postausgangs-URL
+      pending: Ausstehender Review
       perform_full_suspension: Sperren
       profile_url: Profil-URL
       promote: Befördern
@@ -129,6 +143,7 @@ de:
       public: Öffentlich
       push_subscription_expires: PuSH-Abonnement läuft aus
       redownload: Profil neu laden
+      reject: Ablehnen
       remove_avatar: Profilbild entfernen
       remove_header: Header entfernen
       resend_confirmation:
@@ -291,6 +306,7 @@ de:
       back_to_account: Zurück zum Konto
       title: "%{acct}'s Follower"
     instances:
+      by_domain: Domain
       delivery_available: Zustellung ist verfügbar
       known_accounts:
         one: "%{count} bekanntes Konto"
@@ -399,6 +415,12 @@ de:
         min_invite_role:
           disabled: Niemand
           title: Einladungen erlauben von
+      registrations_mode:
+        modes:
+          approved: Zustimmung benötigt zur Registrierung
+          none: Niemand kann sich registrieren
+          open: Jeder kann sich registrieren
+        title: Registrierungsmodus
       show_known_fediverse_at_about_page:
         desc_html: Wenn aktiviert, wird es alle Beiträge aus dem bereits bekannten Teil des Fediversums auf der Startseite anzeigen. Andernfalls werden lokale Beitrage der Instanz angezeigt.
         title: Verwende öffentliche Zeitleiste für die Vorschau
@@ -461,6 +483,9 @@ de:
       edit_preset: Warnungsvorlage bearbeiten
       title: Warnungsvorlagen verwalten
   admin_mailer:
+    new_pending_account:
+      body: Die Details von diesem neuem Konto sind unten. Du kannst die Anfrage akzeptieren oder ablehnen.
+      subject: Neues Konto zur Überprüfung auf %{instance} verfügbar (%{username})
     new_report:
       body: "%{reporter} hat %{target} gemeldet"
       body_remote: Jemand von %{domain} hat %{target} gemeldet
@@ -482,7 +507,9 @@ de:
     your_token: Dein Zugangs-Token
   auth:
     agreement_html: Indem du dich registrierst, erklärst du dich mit den untenstehenden <a href="%{rules_path}">Regeln des Servers</a> und der <a href="%{terms_path}">Datenschutzerklärung</a> einverstanden.
+    apply_for_account: Eine Einladung anfragen
     change_password: Passwort
+    checkbox_agreement_html: Ich akzeptiere die <a href="%{rules_path}" target="_blank">Server-Regeln</a> und die <a href="%{terms_path}" target="_blank">Nutzungsbedingungen</a>
     confirm_email: E-Mail bestätigen
     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.
@@ -498,10 +525,12 @@ de:
       cas: CAS
       saml: SAML
     register: Registrieren
+    registration_closed: "%{instance} akzeptiert keine neuen Mitglieder"
     resend_confirmation: Bestätigungs-Mail erneut versenden
     reset_password: Passwort zurücksetzen
     security: Sicherheit
     set_new_password: Neues Passwort setzen
+    trouble_logging_in: Schwierigkeiten beim anmelden?
   authorize_follow:
     already_following: Du folgst diesem Konto bereits
     error: Das Remote-Konto konnte nicht geladen werden
@@ -557,6 +586,9 @@ de:
       content: Bitte verzeih, etwas ist bei uns schief gegangen.
       title: Diese Seite ist kaputt
     noscript_html: Bitte aktiviere JavaScript, um die Mastodon-Web-Anwendung zu verwenden. Alternativ kannst du auch eine der <a href="%{apps_path}">nativen Mastodon-Anwendungen</a> für deine Plattform probieren.
+  existing_username_validator:
+    not_found: kann lokalen Benutzer nicht mit diesem Nuternamen finden
+    not_found_multiple: kann %{usernames} nicht finden
   exports:
     archive_takeout:
       date: Datum
@@ -597,12 +629,30 @@ de:
     more: Mehr…
     resources: Ressourcen
   generic:
+    all: Alle
     changes_saved_msg: Änderungen gespeichert!
     copy: Kopieren
     save_changes: Änderungen speichern
     validation_errors:
       one: Etwas ist noch nicht ganz richtig! Bitte korrigiere den Fehler
       other: Etwas ist noch nicht ganz richtig! Bitte korrigiere %{count} Fehler
+  html_validator:
+    invalid_markup: enthält ungültiges HTML-Markup
+  identity_proofs:
+    active: Aktiv
+    authorize: Ja, autorisieren
+    authorize_connection_prompt: Diese kryptographische Verbindung autorisieren?
+    errors:
+      failed: Die kryptographische Verbindung ist fehlgeschlagen. Bitte versuche es nochmal von %{provider}.
+      keybase:
+        invalid_token: Keybase-Tokens sind Hashsignaturen und müssen 66 Hexadezimalzeichen lang sein
+        verification_failed: Keybase nimmt dieses Token nicht als Signatur für Keybase-Benutzer %{kb_username} an. Bitte versuche es nochmal über Keybase.
+    explanation_html: Hier kannst du kryptographisch deine anderen Identitäten wie dein Keybase-Profil verbinden. Dadurch können andere Leute dir verschlüsselte Nachrichten senden und dem Inhalt, den sie dir senden, vertrauen.
+    i_am_html: Ich bin %{username} auf %{service}.
+    identity: Identität
+    inactive: Inaktiv
+    status: Verifizierungsstatus
+    view_proof: Zeige Nachweis
   imports:
     modes:
       merge: Zusammenführen
@@ -705,11 +755,32 @@ de:
     older: Älter
     prev: Zurück
     truncate: "&hellip;"
+  polls:
+    errors:
+      already_voted: Du hast bereits für diese Umfrage abgestimmt
+      duplicate_options: enthält doppelte Einträge
+      duration_too_long: ist zu weit in der Zukunft
+      duration_too_short: ist zu früh
+      expired: Die Umfrage ist bereits vorbei
+      over_character_limit: kann nicht länger als jeweils %{max} Zeichen sein
+      too_few_options: muss mindestens einen Eintrag haben
+      too_many_options: kann nicht mehr als %{max} Einträge beinhalten
   preferences:
     languages: Sprachen
     other: Weiteres
     publishing: Beiträge
     web: Web
+  relationships:
+    activity: Kontoaktivität
+    dormant: Inaktiv
+    moved: Umgezogen
+    mutual: Bekannt
+    primary: Primär
+    relationship: Beziehung
+    remove_selected_domains: Entferne alle Follower von den ausgewählten Domains
+    remove_selected_followers: Entferne ausgewählte Follower
+    remove_selected_follows: Entfolge ausgewählte Benutzer
+    status: Kontostatus
   remote_follow:
     acct: Profilname@Domain, von wo aus du dieser Person folgen möchtest
     missing_resource: Die erforderliche Weiterleitungs-URL für dein Konto konnte nicht gefunden werden
@@ -784,10 +855,12 @@ de:
     edit_profile: Profil bearbeiten
     export: Datenexport
     featured_tags: Empfohlene Hashtags
+    identity_proofs: Identitätsnachweise
     import: Datenimport
     migrate: Konto-Umzug
     notifications: Benachrichtigungen
     preferences: Einstellungen
+    relationships: Folgende und Follower
     settings: Einstellungen
     two_factor_authentication: Zwei-Faktor-Auth
     your_apps: Deine Anwendungen
@@ -813,6 +886,11 @@ de:
       ownership: Du kannst nur eigene Beiträge anheften
       private: Du kannst nur öffentliche Beiträge anheften
       reblog: Du kannst keine geteilten Beiträge anheften
+    poll:
+      total_votes:
+        one: "%{count} Stimme"
+        other: "%{count} Stimmen"
+      vote: Abstimmen
     show_more: Mehr anzeigen
     sign_in_to_participate: Melde dich an, um an der Konversation teilzuhaben
     title: '%{name}: "%{quote}"'
@@ -834,7 +912,7 @@ de:
 
       <ul>
         <li><em>Grundlegende Kontoinformationen</em>: Wenn du dich auf diesem Server registrierst, wirst du darum gebeten, einen Benutzer:innen-Namen, eine E-Mail-Adresse und ein Passwort einzugeben. Du kannst auch zusätzliche Profilinformationen wie etwa einen Anzeigenamen oder eine Biografie eingeben und ein Profilbild oder ein Headerbild hochladen. Der Benutzer:innen-Name, der Anzeigename, die Biografie, das Profilbild und das Headerbild werden immer öffentlich angezeigt.</li>
-        <li><em>Beiträge, Folge- und andere öffentliche Informationen</em>: Die Liste der Leute, denen du folgst, wird öffentlich gezeigt, das gleiche gilt für deine Folgenden (Follower). Sobald du eine Nachricht übermittelst, wird das Datum und die Uhrzeit gemeinsam mit der Information, welche Anwendung du dafür verwendet hast, gespeichert. Nachricht können Medienanhänge enthalten, etwa Bilder und Videos. Öffentliche und ungelistete Beiträge sind öffentlich verfügbar. Sobald du einen Beitrag auf deinem Profil featurest, sind dies auch öffentlich verfügbare Informationen. Deine Beiträge werden an deine Folgenden ausgeliefert, was in manchen Fällen bedeutet, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Sobald du Beiträge löschst, wird dies ebenso an deine Follower ausgeliefert. Die Handlungen des Teilens und Favorisieren eines anderen Beitrages ist immer öffentlich.</li>
+        <li><em>Beiträge, Folge- und andere öffentliche Informationen</em>: Die Liste der Leute, denen du folgst, wird öffentlich gezeigt, das gleiche gilt für deine Folgenden (Follower). Sobald du eine Nachricht übermittelst, wird das Datum und die Uhrzeit gemeinsam mit der Information, welche Anwendung du dafür verwendet hast, gespeichert. Nachricht können Medienanhänge enthalten, etwa Bilder und Videos. Öffentliche und ungelistete Beiträge sind öffentlich verfügbar. Sobald du einen Beitrag auf deinem Profil anpinnst, sind dies auch öffentlich verfügbare Informationen. Deine Beiträge werden an deine Folgenden ausgeliefert, was in manchen Fällen bedeutet, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Sobald du Beiträge löschst, wird dies ebenso an deine Follower ausgeliefert. Die Handlungen des Teilens und Favorisieren eines anderen Beitrages ist immer öffentlich.</li>
         <li><em>Direkte und "Nur Folgende"-Beiträge</em>: Alle Beiträge werden auf dem Server gespeichert und verarbeitet. "Nur Folgende"-Beiträge werden an deine Folgenden und an Benutzer:innen, die du in ihnen erwähnst, ausgeliefert, direkte Beiträge nur an in ihnen erwähnte Benutzer:innen. In manchen Fällen bedeutet dass, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Wir bemühen uns nach bestem Wissen und Gewissen, den Zugriff auf diese Beiträge auf nur autorisierte Personen einzuschränken, jedoch könnten andere Server dabei scheitern. Deswegen ist es wichtig, die Server, zu denen deine Folgenden gehören, zu überprüfen. Du kannst eine Option in den Einstellungen umschalten, um neue Folgenden manuell anzunehmen oder abzuweisen. <em>Bitte beachte, dass die Betreiber des Server und jedes empfangenden Servers solche Nachrichten anschauen könnten</em> und dass Empfänger von diesen eine Bildschirmkopie erstellen könnten, sie kopieren oder anderweitig weiterverteilen könnten. <em>Teile nicht irgendwelche gefährlichen Informationen über Mastodon.</em></li>
         <li><em>Internet Protocol-Adressen (IP-Adressen) und andere Metadaten</em>: Sobald du dich anmeldest, erfassen wir sowohl die IP-Adresse, von der aus du dich anmeldest, als auch den Namen deine Browseranwendung. Alle angemeldeten Sitzungen (Sessions) sind für deine Überprüfung und Widerruf in den Einstellungen verfügbar. Die letzte verwendete IP-Adresse wird bis zu 12 Monate lang gespeichert. Wir könnten auch Serverprotokoll behalten, welche die IP-Adresse von jeder Anfrage an unseren Server enthalten.</li>
       </ul>
@@ -870,7 +948,7 @@ de:
 
       <p>Du kannst ein Archiv deines Inhalts anfordern und herunterladen, inkludierend deiner Beiträge, Medienanhänge, Profilbilder und Headerbilder.</p>
 
-      <p>Du kannst dein Konto jederzeit unwiderruflich  löschen.</p>
+      <p>Es ist in den meisten Fällen möglich dein Konto jederzeit eigenmächtig unwiderruflich zu löschen.</p>
 
       <hr class="spacer"/>
 
@@ -894,7 +972,7 @@ de:
 
       <h3 id="children">Webseitenbenutzung durch Kinder</h3>
 
-      <p>Wenn sich dieser Server in der EU oder im Europäischen Wirtschaftsraum befinden: Unsere Website, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 16 Jahre als sind. Wenn du unter 16 bist, darfst du nach den Bestimmungen der DSGVO (<a href="https://de.wikipedia.org/wiki/Datenschutz-Grundverordnung">Datenschutz-Grundverordnung</a>) diese Webseite nicht benutzen.</p>
+      <p>Wenn sich dieser Server in der EU oder im Europäischen Wirtschaftsraum befindet: Unsere Website, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 16 Jahre als sind. Wenn du unter 16 bist, darfst du nach den Bestimmungen der DSGVO (<a href="https://de.wikipedia.org/wiki/Datenschutz-Grundverordnung">Datenschutz-Grundverordnung</a>) diese Webseite nicht benutzen.</p>
 
       <p>Wenn sich dieser Server in den USA befindet: Unsere Webseite, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 13 Jahre alt sind. Wenn du unter 13 bist, darfst du nach den Bestimmungen des COPPA (<a href="https://de.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Children's Online Privacy Protection Act, dt. "Gesetz zum Schutz der Privatsphäre von Kindern im Internet"</a>) diese Webseite nicht benutzen.</p>
 
diff --git a/config/locales/devise.ca.yml b/config/locales/devise.ca.yml
index 89d837571..aea361d0d 100644
--- a/config/locales/devise.ca.yml
+++ b/config/locales/devise.ca.yml
@@ -12,6 +12,7 @@ ca:
       last_attempt: Tens un intent més, abans que es bloqui el compte.
       locked: El compte s'ha blocat.
       not_found_in_database: "%{authentication_keys} o contrasenya no vàlids."
+      pending: El teu compte encara està en revisió.
       timeout: La sessió ha expirat. Inicia sessió una altra vegada 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.
@@ -20,6 +21,7 @@ ca:
         action: Verifica l'adreça de correu
         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 de l'activació. Si no fos així, ignora aquest correu electrònic.
+        explanation_when_pending: Has sol·licitat una invitació a %{host} amb aquesta adreça de correu electrònic. Un cop confirmis la teva adreça de correu electrònic revisarem la teva sol·licitud. No es pot iniciar la sessió fins llavors. Si la teva sol·licitud és rebutjada les teves dades s’eliminaran, de manera que no s’exigirà cap altra acció. Si no has estat tu qui ha fet aquest sol·licitud si us plau ignora aquest correu electrònic.
         extra_html: Si us plau consulta també <a href="%{terms_path}"> les regles del servidor</a> i <a href="%{policy_path}"> les nostres condicions de servei</a>.
         subject: 'Mastodon: Instruccions de confirmació %{instance}'
         title: Verifica l'adreça de correu
@@ -60,6 +62,7 @@ ca:
       signed_up: Benvingut! T'has registrat amb èxit.
       signed_up_but_inactive: T´has registrat amb èxit. No obstant, no podem identificar-te perquè el compte encara no s'ha activat.
       signed_up_but_locked: T´has registrat amb èxit. No obstant, no podem identificar-te perquè el compte està blocat.
+      signed_up_but_pending: S'ha enviat un missatge amb un enllaç de confirmació a la teva adreça de correu electrònic. Després de que hagis fet clic a l'enllaç, revisarem la teva sol·licitud. Se't notificarà si s'aprova.
       signed_up_but_unconfirmed: Un missatge amb un enllaç de confirmació ha estat enviat per correu electrònic. Si us plau segueixi l'enllaç per activar el seu compte.
       update_needs_confirmation: Ha actualitzat el seu compte amb èxit, però necessitem verificar la nova adreça de correu. Si us plau comprovi el correu i segueixi l'enllaç per confirmar la nova adreça de correu.
       updated: el seu compte ha estat actualitzat amb èxit.
diff --git a/config/locales/devise.co.yml b/config/locales/devise.co.yml
index 89688a5a9..16481737f 100644
--- a/config/locales/devise.co.yml
+++ b/config/locales/devise.co.yml
@@ -12,6 +12,7 @@ co:
       last_attempt: Avete un’ultimu tintativu nanzu chì u vostru contu sia chjosu.
       locked: U vostru contu hè chjosu.
       not_found_in_database: L’ %{authentication_keys} o a chjave d’accessu ùn sò curretti.
+      pending: U vostru contu hè sempre in corsu di rivista.
       timeout: A vostra sezzione hè spirata. Ricunnettatevi pè cuntinuà.
       unauthenticated: Cunnettatevi o arregistratevi pè cuntinuà.
       unconfirmed: Duvete cunfirmà u vostru contu pè cuntinuà.
@@ -20,6 +21,7 @@ co:
         action: Verificà l’indirizzu email
         action_with_app: Cunfirmà è rivene à %{app}
         explanation: Avete creatu un contu nant’à %{host} cù st’indirizzu email. Pudete attivallu cù un clic, o ignurà quessu missaghji s’ellu un era micca voi.
+        explanation_when_pending: Avete dumandatu un'invitazione à %{host}, cù st'indirizzu e-mail. Una volta ch'ellu hè cunfirmatu, avemu da dà un'ochjata à a vostra dumanda. Ùn pudete micca cunnettavi nanz'à quessa. S'ella hè righjittata a vostra dumanda, i vostri dati saranu sguassati è ùn duverete fà nund'altru. S'ellu ùn era micca voi, pudete ignurà quess'e-mail.
         extra_html: Pensate à leghje <a href="%{terms_path}">e regule di u servore</a> è <a href="%{policy_path}">i termini d’usu</a>.
         subject: 'Mastodon: Istruzzione di cunfirmazione per %{instance}'
         title: Verificà l’indirizzu email
@@ -60,6 +62,7 @@ co:
       signed_up: Benvinutu! Site cunnettatu·a.
       signed_up_but_inactive: Site arregistratu·a, mà ùn pudete micca cunnettavi perchè u vostru contu deve esse attivatu.
       signed_up_but_locked: Site arregistratu·a, mà ùn pudete micca cunnettavi perchè u vostru contu hè chjosu.
+      signed_up_but_pending: Un missaghju cù un ligame di cunfirmazione hè statu mandatu à u vostr'indirizzu e-mail. Dop'à avè cliccatu u ligame, avemu da rivede a vostra dumanda - sarete nutificatu·a s'ella hè appruvata.
       signed_up_but_unconfirmed: Un missaghju cù un ligame di cunfirmazione hè statu mandatu à u vostru indirizzu e-mail. Aprite stu ligame pè attivà u vostru contu. Pensate à verificà u cartulare di spam s’ellu ùn c’hè nunda.
       update_needs_confirmation: U vostru contu hè statu messu à ghjornu mà duvemu verificà u vostru novu e-mail. Un missaghju cù un ligame di cunfirmazione hè statu mandatu. Pensate à verificà u cartulare di spam s’ellu ùn c’hè nunda.
       updated: U vostru contu hè statu messu à ghjornu.
diff --git a/config/locales/devise.cs.yml b/config/locales/devise.cs.yml
index a1d36042a..bc9340605 100644
--- a/config/locales/devise.cs.yml
+++ b/config/locales/devise.cs.yml
@@ -20,7 +20,7 @@ cs:
       confirmation_instructions:
         action: Potvrdit e-mailovou adresu
         action_with_app: Potvrdit a navrátit se do %{app}
-        explanation: S touto e-mailovou adresou jste si vytvořil/a účet na %{host}. K jeho aktivaci vám zbývá jedno kliknutí. Pokud jste to nebyl/a vy, ignorujte této e-mail.
+        explanation: S touto e-mailovou adresou jste si vytvořil/a účet na %{host}. K jeho aktivaci vám zbývá jedno kliknutí. Pokud jste to nebyl/a vy, prosím ignorujte tento e-mail.
         explanation_when_pending: S touto e-mailovou adresou jste si vyžádal/a pozvánku na %{host}. Jakmile svou e-mailovou adresu potvrdíte, posoudíme váš poadavek. Do té doby se nemůžete přihlásit. Pokud bude váš požadavek zamítnut, budou vaše data odstraněna, takže od vás nebude vyžadována žádná další akce. Pokud jste to nebyl/a vy, prosím ignorujte tento e-mail.
         extra_html: Prosím podívejte se také na <a href="%{terms_path}">pravidla tohoto serveru</a> a <a href="%{policy_path}">naše podmínky používání</a>.
         subject: 'Mastodon: Potvrzovací instrukce pro %{instance}'
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index 5b060e0e7..bd573dc3e 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -12,6 +12,7 @@ de:
       last_attempt: Du hast noch einen Versuch, bevor dein Konto gesperrt wird.
       locked: Dein Konto ist gesperrt.
       not_found_in_database: "%{authentication_keys} oder Passwort ungültig."
+      pending: Dein Konto wird immer noch überprüft.
       timeout: Deine Sitzung ist abgelaufen. Bitte melde dich erneut an, um fortzufahren.
       unauthenticated: Du musst dich anmelden oder registrieren, bevor du fortfahren kannst.
       unconfirmed: Du musst deine E-Mail-Adresse bestätigen, bevor du fortfahren kannst.
@@ -20,6 +21,7 @@ de:
         action: E-Mail-Adresse verifizieren
         action_with_app: Bestätigen und zu %{app} zurückkehren
         explanation: Du hast einen Account auf %{host} mit dieser E-Mail-Adresse erstellt. Du bist nun einen Klick entfernt vor der Aktivierung. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
+        explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst kannst du diese E-Mail ignorieren.
         extra_html: Bitte lies auch die <a href="%{terms_path}">Regeln des Servers</a> und <a href="%{policy_path}">unsere Nutzungsbedingungen</a>.
         subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}'
         title: Verifiziere E-Mail-Adresse
@@ -60,6 +62,7 @@ de:
       signed_up: Willkommen! Du hast dich erfolgreich registriert.
       signed_up_but_inactive: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto inaktiv ist.
       signed_up_but_locked: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto gesperrt ist.
+      signed_up_but_pending: Eine Nachricht mit einem Bestätigungslink wurde an dich per E-Mail geschickt. Nachdem du diesen Link angeklickt hast werden wir deine Anfrage überprüfen. Du wirst benachrichtigt falls die Anfrage angenommen wurde.
       signed_up_but_unconfirmed: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail. Darin ist erklärt, wie du dein Konto freischalten kannst.
       update_needs_confirmation: Deine Daten wurden aktualisiert, aber du musst deine neue E-Mail-Adresse bestätigen. Du erhältst in wenigen Minuten eine E-Mail. Darin ist erklärt, wie du die Änderung deiner E-Mail-Adresse abschließen kannst.
       updated: Deine Daten wurden aktualisiert.
diff --git a/config/locales/devise.el.yml b/config/locales/devise.el.yml
index e9725d96b..0b5c68636 100644
--- a/config/locales/devise.el.yml
+++ b/config/locales/devise.el.yml
@@ -12,6 +12,7 @@ el:
       last_attempt: Έχεις μια ακόμα προσπάθεια πριν κλειδωθεί ο λογαριασμός σου.
       locked: Ο λογαριασμός σου κλειδώθηκε.
       not_found_in_database: Λάθος %{authentication_keys} ή συνθηματικό.
+      pending: Εκκρεμεί η έγκριση του λογαριασμού σου.
       timeout: Η τρέχουσα σύνδεσή σου έληξε. Παρακαλούμε συνδέσου ξανά για να συνεχίσεις.
       unauthenticated: Πρέπει να συνδεθείς ή να εγγραφείς για να συνεχίσεις.
       unconfirmed: Πρέπει να επιβεβαιώσεις τη διεύθυνση email σου για να συνεχίσεις.
@@ -20,6 +21,7 @@ el:
         action: Επιβεβαίωσε διεύθυνση email
         action_with_app: Επιβεβαίωση και επιστροφή στο %{app}
         explanation: Δημιούργησες έναν λογαριασμό στο %{host} με αυτή τη διεύθυνση email. Με ένα κλικ θα τον ενεργοποιήσεις. Αν δεν το έκανες εσύ, παρακαλούμε αγνόησε αυτό το email.
+        explanation_when_pending: Έχεις υποβάλλει αίτηση πρόσκλησης στο %{host} με αυτή την ηλεκτρονική διεύθυνση email. Μόλις επιβεβαιώσεις το email σου, θα ελέγξουμε την αίτηση σου. Μέχρι τότε δε θα μπορεις να συνδεθείς. Αν απορριφθεί η αίτησή σου, τα στοιχεία σου θα αφαιρεθούν, άρα δε θα χρειαστεί να κάνεις κάτι επιπλέον. Αν δεν υπέβαλες εσύ την αίτηση, αγνόησε αυτό το email.
         extra_html: Παρακαλούμε να διαβάσεις <a href="%{terms_path}">του κανόνες αυτού του κόμβου</a> και <a href="%{policy_path}">τους όρους χρήσης της υπηρεσίας μας</a>.
         subject: 'Mastodon: Οδηγίες επιβεβαίωσης για %{instance}'
         title: Επιβεβαίωσε διεύθυνση email
@@ -60,6 +62,7 @@ el:
       signed_up: Καλώς ήρθες! Εγγράφηκες με επιτυχία.
       signed_up_but_inactive: Εγγράφηκες με επιτυχία. Όμως δε μπορέσαμε να σε συνδέσουμε γιατί ο λογαριασμός σου δεν έχει ενεργοποιηθεί ακόμα.
       signed_up_but_locked: Εγγράφηκες με επιτυχία. Όμως δε μπορέσαμε να σε συνδέσουμε γιατί ο λογαριασμός σου είναι κλειδωμένος.
+      signed_up_but_pending: Στάλθηκε στο email σου μήνυμα με ένα σύνδεσμο επιβεβαίωσης. Μόλις τον ακολουθήσεις θα ελέγξουμε την αίτηση σου. Θα ειδοποιήσεις εάν γίνει δεκτή.
       signed_up_but_unconfirmed: Σου στείλαμε ένα μήνυμα με σύνδεσμο επιβεβαίωσης στη διεύθυνση email σου. Παρακαλούμε ακολούθησε το σύνδεσμο για να ενεργοποιήσεις το λογαριασμό σου. Παρακαλούμε έλεγξε το φάκελο με τα ανεπιθύμητα μηνύματα σου αν δεν το λάβεις.
       update_needs_confirmation: Ενημέρωσες το λογαριασμό σου με επιτυχία αλλά χρειαζόμαστε να επιβεβαιώσουμε τη νέα διεύθυνση email σου. Παρακαλούμε έλεγξε τα email σου και ακολούθησε το σύνδεσμο για να την επιβεβαιώσεις. Παρακαλούμε έλεγξε το φάκελο με τα ανεπιθύμητα μηνύματα σου αν δεν το λάβεις.
       updated: Ο λογαριασμός σου επιβεβαιώθηκε με επιτυχία.
diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml
index ecb97fd13..de4ef850e 100644
--- a/config/locales/devise.es.yml
+++ b/config/locales/devise.es.yml
@@ -12,24 +12,27 @@ es:
       last_attempt: Tiene un intento más antes de que su cuenta sea bloqueada.
       locked: Su cuenta está bloqueada.
       not_found_in_database: Inválido %{authentication_keys} o contraseña.
+      pending: Su cuenta aún está bajo revisión.
       timeout: Su sesión ha expirado. Por favor inicie sesión de nuevo para continuar.
       unauthenticated: Necesita iniciar sesión o registrarse antes de continuar.
       unconfirmed: Tiene que confirmar su dirección de correo electrónico antes de continuar.
     mailer:
       confirmation_instructions:
         action: Verificar dirección de correo electrónico
+        action_with_app: Confirmar y volver a %{app}
         explanation: Has creado una cuenta en %{host} con esta dirección de correo electrónico. Estas a un clic de activarla. Si no fue usted, por favor ignore este correo electrónico.
-        extra_html: Por favor revise <a href="%{terms_path}">las reglas de la instancia</a> y <a href="%{policy_path}">nuestros términos de servicio</a>.
+        explanation_when_pending: Ha solicitado una invitación a %{host} con esta dirección de correo electrónico. Una vez que confirme su dirección de correo electrónico, revisaremos su solicitud. No puede iniciar sesión hasta entonces. Si su solicitud es rechazada, sus datos serán eliminados, por lo que no será necesaria ninguna otra acción por su parte. Si no fuiste tú, por favor ignora este correo electrónico.
+        extra_html: Por favor, consulte también <a href="%{terms_path}">las reglas de la instancia</a> y <a href="%{policy_path}">nuestras condiciones de uso</a>.
         subject: 'Mastodon: Instrucciones de confirmación para %{instance}'
         title: Verificar dirección de correo electrónico
       email_changed:
         explanation: 'El correo electrónico para su cuenta esta siendo cambiada a:'
-        extra: Si usted no a cambiado su correo electrónico. es probable que alguien a conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte a el administrador de la instancia si usted esta bloqueado de su cuenta.
+        extra: Si no ha cambiado su correo electrónico, es probable que alguien haya accedido a su cuenta. Por favor, cambie su contraseña inmediatamente o póngase en contacto con el administrador del servidor si está bloqueado fuera de su cuenta.
         subject: 'Mastodon: Correo electrónico cambiado'
         title: Nueva dirección de correo electrónico
       password_change:
         explanation: La contraseña de su cuenta a sido cambiada.
-        extra: Si usted no a cambiado su contraseña. es probable que alguien a conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte a el administrador de la instancia si usted esta bloqueado de su cuenta.
+        extra: Si no ha cambiado su contraseña, es probable que alguien haya tenido acceso a su cuenta. Por favor, cambie su contraseña inmediatamente o póngase en contacto con el administrador de la instancia si está bloqueado de su cuenta.
         subject: 'Mastodon: Contraseña cambiada'
         title: Contraseña cambiada
       reconfirmation_instructions:
@@ -59,6 +62,7 @@ es:
       signed_up: "¡Bienvenido! Se ha registrado con éxito."
       signed_up_but_inactive: Se ha registrado con éxito. Sin embargo, no podemos identificarle porque su cuenta no ha sido activada todavía.
       signed_up_but_locked: Se ha registrado con éxito. Sin embargo, no podemos identificarle porque su cuenta está bloqueada.
+      signed_up_but_pending: Un mensaje con un enlace de confirmación acaba de ser enviado a su dirección de correo electrónico. Después de hacer clic en el enlace, revisaremos su solicitud. Se le notificará si se aprueba.
       signed_up_but_unconfirmed: Un mensaje con un enlace de confirmación ha sido enviado a su correo electrónico. Por favor siga el enlace para activar su cuenta.
       update_needs_confirmation: Ha actualizado su cuenta con éxito, pero necesitamos verificar su nueva dirección de correo. Por favor compruebe su correo y siga el enlace para confirmar su nueva dirección de correo.
       updated: su cuenta ha sido actualizada con éxito.
diff --git a/config/locales/devise.fa.yml b/config/locales/devise.fa.yml
index 1375c43f5..963572e6b 100644
--- a/config/locales/devise.fa.yml
+++ b/config/locales/devise.fa.yml
@@ -12,6 +12,7 @@ fa:
       last_attempt: پیش از آن که حساب شما قفل شود، یک فرصت دیگر دارید.
       locked: حساب شما قفل شده است.
       not_found_in_database: خطای %{authentication_keys} یا رمز نامعتبر.
+      pending: حساب شما همچنان در دست بررسی است.
       timeout: مهلت این ورود شما به سر رسید. برای ادامه، دوباره وارد شوید.
       unauthenticated: برای ادامه باید وارد شوید یا ثبت نام کنید.
       unconfirmed: برای ادامه باید نشانی ایمیل خود را تأیید کنید.
@@ -20,6 +21,7 @@ fa:
         action: تأیید نشانی ایمیل
         action_with_app: تأیید و بازگشت به %{app}
         explanation: شما با این نشانی ایمیل حسابی در %{host} باز کرده‌اید. با یک کلیک می‌توانید این حساب را فعال کنید. اگر شما چنین کاری نکردید، لطفاً این ایمیل را نادیده بگیرید.
+        explanation_when_pending: شما با این نشانی ایمیل برای %{host} درخواست دعوت‌نامه داده‌اید. اگر ایمیل خود را تأیید کنید، ما درخواست شما را بررسی خواهیم کرد. تا وقتی بررسی تمام نشده، شما نمی‌توانید به حساب خود وارد شوید. اگر درخواست شما رد شود، ما اطلاعاتی را که از شما داریم پاک خواهیم کرد پس نیازی به کاری از سمت شما نخواهد بود. اگر شما چنین درخواستی نداده‌اید، لطفاً این ایمیل را نادیده بگیرید.
         extra_html: لطفاً همچنین <a href="%{terms_path}">قانون‌های این سرور</a> و <a href="%{policy_path}">شرایط کاربری</a> آن را ببینید.
         subject: 'ماستدون: راهنمایی برای تأیید %{instance}'
         title: تأیید نشانی ایمیل
@@ -60,6 +62,7 @@ fa:
       signed_up: خوش آمدید! شما با موفقیت ثبت نام کردید.
       signed_up_but_inactive: خوش آمدید! شما با موفقیت ثبت نام کردید. ولی هنوز وارد سیستم نیستید زیرا حساب شما هنوز فعال نیست.
       signed_up_but_locked: خوش آمدید! شما با موفقیت ثبت نام کردید. ولی هنوز وارد سیستم نیستید زیرا حساب شما قفل شده است.
+      signed_up_but_pending: پیغامی که دارای یک پیوند برای تأیید است به نشانی ایمیل شما فرستاده شده. پس از این‌که پیوند را باز کردید، ما درخواست شما را بررسی خواهیم کرد. اگر درخواست شما پذیرفته شود، به شما خواهیم گفت.
       signed_up_but_unconfirmed: یک پیغام برای تأیید به نشانی ایمیل شما فرستاده شده. لطفاً پیوند موجود در ایمیل را دنبال کنید تا حسابتان فعال شود.
       update_needs_confirmation: شما با موفقیت حسابتان را به‌روز کردید، ولی لازم است که ما نشانی ایمیل تازهٔ شما را تأیید کنیم. لطفاً ایمیل خود را ببینید و پیوند موجود در ایمیل را دنبال کنید تا تا نشانی ایمیل تازهٔ شما تأیید شود.
       updated: حساب شما با موفقبت به‌روز شد.
diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml
index f0a5414b8..b7c728549 100644
--- a/config/locales/devise.fr.yml
+++ b/config/locales/devise.fr.yml
@@ -12,6 +12,7 @@ fr:
       last_attempt: Vous avez droit à une tentative avant que votre compte ne soit verrouillé.
       locked: Votre compte est verrouillé.
       not_found_in_database: "%{authentication_keys} invalide."
+      pending: Votre compte est toujours en attente d'approbation.
       timeout: Votre session a expiré. Veuillez vous reconnecter pour continuer.
       unauthenticated: Vous devez vous connecter ou vous inscrire pour continuer.
       unconfirmed: Vous devez valider votre compte pour continuer.
@@ -20,6 +21,7 @@ fr:
         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é une invitation sur %{host} avec cette adresse courriel. Une fois que vous aurez confirmé votre adresse courriel, nous examinerons votre demande. Vous ne pourrez pas vous connecter tant que la demande ne sera pas approuvée. Si votre demande est rejetée, vos données seront supprimées, vous n'aurez donc rien à faire de votre côté. Si ce n'était pas vous, veuillez ignorer ce courriel.
         extra_html: Merci de consultez également <a href="%{terms_path}">les règles de l’instance</a> et <a href="%{policy_path}">nos conditions d’utilisation</a>.
         subject: 'Mastodon : Merci de confirmer votre inscription sur %{instance}'
         title: Vérifier l’adresse courriel
@@ -60,6 +62,7 @@ fr:
       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 vient d'être envoyé sur votre adresse courriel. Après avoir cliqué sur le lien, nous examinerons votre demande. Vous serez notifié·e si elle est 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 d'indésirables.
       updated: Votre compte a été modifié avec succès.
diff --git a/config/locales/devise.gl.yml b/config/locales/devise.gl.yml
index d456d25df..60a935a8a 100644
--- a/config/locales/devise.gl.yml
+++ b/config/locales/devise.gl.yml
@@ -12,6 +12,7 @@ gl:
       last_attempt: Quédalle un intento antes de que a conta sexa bloqueada.
       locked: A súa conta foi bloqueada.
       not_found_in_database: Contrasinal ou %{authentication_keys} non válidos.
+      pending: A súa conta está en proceso de revisión.
       timeout: Caducou a sesión. Por favor conéctese de novo para seguir.
       unauthenticated: Precisa rexistrarse ou conectarse para continuar.
       unconfirmed: Debe confirmar o seu enderezo de correo antes de continuar.
@@ -20,6 +21,7 @@ gl:
         action: Validar enderezo de correo-e
         action_with_app: Confirmar e voltar a %{app}
         explanation: Creou unha conta en %{host} con este enderezo de correo. Está a punto de activalo, si non foi vostede quen fixo a petición, por favor ignore este correo.
+        explanation_when_pending: Vostede solicitou un convite para %{host} con este enderezo de correo. Unha vez confirme o enderezo de correo revisaremos a solicitude. Non pode conectarse ata entón. Si a solicitude fose rexeitada, os seus datos eliminaranse, así que non precisaría facer nada máis. Se non fixo vostede unha solicitude por favor ignore este correo.
         extra_html: Por favor, lea tamén <a href="%{terms_path}">as normas do sevidor</a> e <a href="%{policy_path}">os termos do servizo</a>.
         subject: 'Mastodon: Instruccións de confirmación para %{instance}'
         title: Verificar enderezo de correo-e
@@ -60,6 +62,7 @@ gl:
       signed_up: Ben vida! Rexistrouse con éxito.
       signed_up_but_inactive: Rexistrouse correctamente. Porén, aínda non podemos conectala porque a súa conta aínda non foi activada.
       signed_up_but_locked: Rexistrouse correctamente. Porén, non podemos conectala porque a conta está bloqueada.
+      signed_up_but_pending: Enviouselle unha mensaxe de correo que contén unha ligazón de confirmación. Tras pulsar na ligazón, revisaremos a súa solicitude. Notificarémoslle se está aprobada.
       signed_up_but_unconfirmed: Foi enviada unha mensaxe con unha ligazón de confirmación ao seu enderezo electrónico. Por favor siga a ligazón para activar a súa conta. Por favor comprobe o cartafol de spam si non recibe este correo.
       update_needs_confirmation: Actualizou a súa conta correctamente, pero precisamos verificar o seu enderezo. Por favor comprobe o seu email e siga a ligazón de confirmación para confirmar o seu novo enderezo. Por favor comprobe o cartafol de spam si non recibe este correo.
       updated: A súa conta foi actualizada correctamente.
diff --git a/config/locales/devise.it.yml b/config/locales/devise.it.yml
index fc36fdbff..8f24842d7 100644
--- a/config/locales/devise.it.yml
+++ b/config/locales/devise.it.yml
@@ -11,7 +11,8 @@ it:
       invalid: "%{authentication_keys} o password invalida."
       last_attempt: Hai un altro tentativo prima che il tuo account venga bloccato.
       locked: Il tuo account è stato bloccato.
-      not_found_in_database: "%{authentication_keys} o password invalida."
+      not_found_in_database: "%{authentication_keys} o password non valida."
+      pending: Il tuo account è ancora sotto esame.
       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.
@@ -20,6 +21,7 @@ it:
         action: Verifica indirizzo email
         action_with_app: Conferma e torna a %{app}
         explanation: Hai creato un account su %{host} con questo indirizzo email. Sei lonatno solo un clic dall'attivarlo. Se non sei stato tu, per favore ignora questa email.
+        explanation_when_pending: Hai richiesto di essere invitato su %{host} con questo indirizzo email. Quando avrai confermato il tuo indirizzo email, esamineremo la tua richiesta. Fino a quel momento non puoi accedere. Se la tua richiesta sarà respinta, i tuoi dati saranno eliminati, quindi non dovrai fare nient'altro. Se non hai presentato tu questa richiesta, puoi ignorare 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>.
         subject: 'Mastodon: Istruzioni di conferma per %{instance}'
         title: Verifica indirizzo email
@@ -60,6 +62,7 @@ it:
       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 contenente un link di conferma è stato inviato al tuo indirizzo email. Dopo che avrai fatto clic sul link, esamineremo la tua richiesta. Se sarà approvata ti informeremo.
       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: Hai aggiornato correttamente il tuo account, ma abbiamo bisogno di verificare il tuo nuovo indirizzo email. Per favore, controlla la posta in arrivo e visita il link di conferma per verificare il tuo indirizzo email.
       updated: Il tuo account è stato aggiornato con successo.
diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml
index b4772d8d6..3dac63050 100644
--- a/config/locales/devise.ja.yml
+++ b/config/locales/devise.ja.yml
@@ -21,7 +21,7 @@ ja:
         action: メールアドレスの確認
         action_with_app: 確認し %{app} に戻る
         explanation: このメールアドレスで%{host}にアカウントを作成しました。有効にするまであと一歩です。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
-        explanation_when_pending: このメールアドレスで%{host}への招待を申請しました。メールアドレスを確認したら、サーバー管理者が申請を審査します。それまでログインできません。申請が却下された場合、あなたのデータは削除されますので以降の操作は必要ありません。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
+        explanation_when_pending: このメールアドレスで%{host}への登録を申請しました。メールアドレスを確認したら、サーバー管理者が申請を審査します。それまでログインできません。申請が却下された場合、あなたのデータは削除されますので以降の操作は必要ありません。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
         extra_html: また <a href="%{terms_path}">サーバーのルール</a> と <a href="%{policy_path}">利用規約</a> もお読みください。
         subject: 'Mastodon: メールアドレスの確認 %{instance}'
         title: メールアドレスの確認
diff --git a/config/locales/devise.nl.yml b/config/locales/devise.nl.yml
index a768d3c1d..fa4c3dd5c 100644
--- a/config/locales/devise.nl.yml
+++ b/config/locales/devise.nl.yml
@@ -13,6 +13,7 @@ nl:
       last_attempt: Je hebt nog één poging over voordat jouw account wordt opgeschort.
       locked: Jouw account is opgeschort.
       not_found_in_database: "%{authentication_keys} of wachtwoord ongeldig."
+      pending: Jouw account moet nog steeds worden beoordeeld.
       timeout: Jouw sessie is verlopen, log opnieuw in.
       unauthenticated: Je dient in te loggen of te registreren.
       unconfirmed: Je dient eerst jouw account te bevestigen.
@@ -21,6 +22,7 @@ nl:
         action: E-mailadres verifiëren
         action_with_app: Bevestigen en naar %{app} teruggaan
         explanation: Je hebt een account op %{host} aangemaakt en met één klik kun je deze activeren. Wanneer jij dit account niet hebt aangemaakt, mag je deze e-mail negeren.
+        explanation_when_pending: Je vroeg met dit e-mailadres een uitnodiging aan voor %{host}. Nadat je jouw e-mailadres hebt bevestigd, beoordelen we jouw aanvraag. Je kunt tot dan niet inloggen.  Wanneer jouw aanvraag wordt verworpen, worden jouw gegevens verwijderd en dus hoef je daarna niets meer te doen. Wanneer jij dit niet was, kun je deze e-mail negeren.
         extra_html: Bekijk ook de <a href="%{terms_path}">regels van de Mastodonserver</a> en <a href="%{policy_path}">onze gebruiksvoorwaarden</a>.
         subject: 'Mastodon: E-mail bevestigen voor %{instance}'
         title: E-mailadres verifiëren
@@ -61,6 +63,7 @@ nl:
       signed_up: Je bent geregistreerd.
       signed_up_but_inactive: Je bent geregistreerd. Je kon alleen niet automatisch ingelogd worden omdat jouw account nog niet geactiveerd is.
       signed_up_but_locked: Je bent ingeschreven. Je kon alleen niet automatisch ingelogd worden omdat jouw account is opgeschort.
+      signed_up_but_pending: Er is een bericht met een bevestigingslink naar jouw e-mailadres verzonden. Nadat je op deze link hebt geklikt nemen we jouw aanvraag in behandeling. Je wordt op de hoogte gesteld wanneer deze wordt goedgekeurd.
       signed_up_but_unconfirmed: Je ontvangt via e-mail instructies hoe je jouw account kunt activeren. Kijk tussen je spam wanneer niks werd ontvangen.
       update_needs_confirmation: Je hebt je e-mailadres succesvol gewijzigd, maar we moeten je nieuwe mailadres nog bevestigen. Controleer jouw e-mail en klik op de link in de mail om jouw e-mailadres te bevestigen. Kijk tussen je spam wanneer niks werd ontvangen.
       updated: Jouw accountgegevens zijn opgeslagen.
diff --git a/config/locales/devise.oc.yml b/config/locales/devise.oc.yml
index e167f7e19..42be33f6b 100644
--- a/config/locales/devise.oc.yml
+++ b/config/locales/devise.oc.yml
@@ -12,6 +12,7 @@ oc:
       last_attempt: Vos demòra un ensag abans que vòstre compte siasque blocat.
       locked: Vòstre compte es blocat.
       not_found_in_database: "%{authentication_keys} invalida."
+      pending: Vòstre compte es encara en aprobacion.
       timeout: Vòstra session a expirat. Mercés de vos tornar connectar per contunhar.
       unauthenticated: Vos cal vos connectar o marcar abans de contunhar.
       unconfirmed: Vos cal confirmar vòstra adreça de corrièl abans de contunhar.
@@ -20,6 +21,7 @@ oc:
         action: Verificar l’adreça de corrièl
         action_with_app: Confirmar e tornar a %{app}
         explanation: Venètz de crear un compte sus %{host} amb aquesta adreça de corrièl. Vos manca pas qu’un clic per l’activar. S’èra pas vosautre mercés de far pas cas a aqueste messatge.
+        explanation_when_pending: Avètz demandat una invitacion a %{host} amb aquesta adreça electronica. Un còp que confirmetz vòstra adreça electronica revisarem vòstra demanda. Se pòt iniciar la session fins alara. Se vòstra demanda es pas acceptada vòstras donadas seràn suprimidas, de manièra que caldrà pas cap d’autra accion. S’èra pas vos qu’avètz fach la demanda, se vos plai ignoratz aqueste corrièl.
         extra_html: Pensatz tanben de gaitar <a href="%{terms_path}">las règlas del servidor</a> e <a href="%{policy_path}">nòstres tèrmes e condicions d’utilizacion</a>.
         subject: 'Mastodon : consignas de confirmacion per %{instance}'
         title: Verificatz l’adreça de corrièl
@@ -60,6 +62,7 @@ oc:
       signed_up: La benvenguda ! Sètz ben marcat al malhum.
       signed_up_but_inactive: Sètz ben marcat. Pasmens, avèm pas pogut vos connectar perque vòstre compte es pas encara validat.
       signed_up_but_locked: Sètz ben marcat. Pasmens, avèm pas pogut vos connectar perque vòstre compte es pas encara blocat.
+      signed_up_but_pending: Un messatge amb un ligam de confirmacion es estat enviat a vòstra adreça electronica. Aprèp aver clicat lo ligam, revisarem vòstra demanda. Seretz avisat se’s aprovada.
       signed_up_but_unconfirmed: Un messatge amb un ligam de confirmacion es estat enviat a vòstra adreça de corrièl. Clicatz sul ligam per activar vòstre compte. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables.
       update_needs_confirmation: Avètz ben mes a jorn vòstre compte, mai nos cal verificar vòstra nòva adreça de corrièl. Mercés de verificar vòstres messatges e clicar sul ligam de confirmacion per confirmar vòstra nòva adreça de corrièl. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables.
       updated: Vòstre compte es estat mes a jorn amb succès.
diff --git a/config/locales/devise.pl.yml b/config/locales/devise.pl.yml
index 4f9007e1d..7ac5cb6a8 100644
--- a/config/locales/devise.pl.yml
+++ b/config/locales/devise.pl.yml
@@ -12,6 +12,7 @@ pl:
       last_attempt: Masz jeszcze jedną próbę; Twoje konto zostanie zablokowane jeśli się nie powiedzie.
       locked: Twoje konto zostało zablokowane.
       not_found_in_database: Nieprawidłowy %{authentication_keys} lub hasło.
+      pending: Twoje konto jest nadal w trakcie przeglądu.
       timeout: Twoja sesja wygasła. Zaloguj się ponownie, aby kontynuować..
       unauthenticated: Zapisz się lub zaloguj, aby kontynuować.
       unconfirmed: Zweryfikuj adres e-mail, aby kontynuować.
@@ -20,6 +21,7 @@ pl:
         action: Zweryfikuj adres e-mail
         action_with_app: Potwierdź i wróć do %{app}
         explanation: Utworzyłeś(-aś) konto na %{host} podając ten adres e-mail. Jedno kliknięcie dzieli Cię od aktywacji tego konta. Jeżeli to nie Ty, zignoruj ten e-mail.
+        explanation_when_pending: Złożyłeś wniosek o zaproszenie do %{host} z tym adresem e-mail. Po potwierdzeniu adresu e-mail, zostaniesz poproszony o ponowne rozpatrzenie wniosku. Do tego momentu nie można się zalogować. Jeśli Twoja aplikacja zostanie odrzucona, Twoje dane zostaną usunięte, więc dalsze działania nie będą wymagane. Jeśli tak nie było, zignoruj tę wiadomość e-mail.
         extra_html: Przeczytaj też <a href="%{terms_path}">regulamin serwera</a> i <a href="%{policy_path}">nasze zasady użytkowania</a>.
         subject: 'Mastodon: Instrukcje weryfikacji adresu e-mail na %{instance}'
         title: Zweryfikuj adres e-mail
@@ -60,6 +62,7 @@ pl:
       signed_up: Witamy! Twoje konto zostało utworzone.
       signed_up_but_inactive: Twoje konto zostało utworzone. Nie mogliśmy Cię jednak zalogować, ponieważ konto nie zostało jeszcze aktywowane.
       signed_up_but_locked: Twoje konto zostało utworzone. Nie mogliśmy Cię jednak zalogować, ponieważ konto jest zablokowane.
+      signed_up_but_pending: Na Twój adres e-mail została wysłana wiadomość z linkiem potwierdzającym. Po kliknięciu na link, zostaniesz poproszony o zapoznanie się z Twoją aplikacją. Zostaniesz powiadomiony o zatwierdzeniu wniosku.
       signed_up_but_unconfirmed: Na Twój adres e-mail została wysłana wiadomosć z odnośnikiem potwierdzającym. Kliknij w odnośnik, aby aktywować konto. Jeżeli nie otrzymano wiadomości, sprawdź folder ze spamem.
       update_needs_confirmation: Konto zostało zaktualizowane, musimy jednak zweryfikować Twój nowy adres e-mail. Została na niego wysłana wiadomość z odnośnikiem potwierdzającym. Jeżeli nie otrzymano wiadomości, sprawdź folder ze spamem.
       updated: Konto zostało zaktualizowane.
diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml
index ede004892..0b6d36187 100644
--- a/config/locales/devise.pt-BR.yml
+++ b/config/locales/devise.pt-BR.yml
@@ -12,6 +12,7 @@ pt-BR:
       last_attempt: Você tem apenas mais uma tentativa sobrando antes que a sua conta seja bloqueada.
       locked: A sua conta está bloqueada.
       not_found_in_database: "%{authentication_keys} ou senha inválida."
+      pending: Sua conta ainda está sendo revisada.
       timeout: A sua sessão expirou. Por favor, entre novamente para continuar.
       unauthenticated: Você precisa entrar ou cadastrar-se antes de continuar.
       unconfirmed: Você precisa confirmar o seu endereço de e-mail antes de continuar.
@@ -20,6 +21,7 @@ pt-BR:
         action: Verificar endereço de e-mail
         action_with_app: Confirmar e voltar para %{app}
         explanation: Você criou uma conta em %{host} com esse endereço de e-mail. Você está a um clique de ativá-la. Se não foi você, por favor ignore esse e-mail.
+        explanation_when_pending: Você pediu um convite para %{host} com esse endereço de email. Assim que você confirmar o seu endereço de e-mail, iremos revisar o seu pedido. Você não poderá fazer login até então. Se sua aplicação for rejeitada, seus dados serão removidos e nenhuma ação será necessária da sua parte. Se você não pediu por isso, por favor ignore esse e-mail.
         extra_html: Por favor confira também <a href="%{terms_path}">as regras da instância</a> e <a href="%{policy_path}">nossos termos de serviço</a>.
         subject: 'Mastodon: Instruções de confirmação para %{instance}'
         title: Verifique o endereço de e-mail
@@ -60,6 +62,7 @@ pt-BR:
       signed_up: Bem vindo! A sua conta foi registrada com sucesso.
       signed_up_but_inactive: A sua conta foi registrada. No entanto, não abrimos a sua sessão porque a sua conta ainda não foi ativada.
       signed_up_but_locked: A sua conta foi registrada. No entanto, não abrimos a sua sessão porque a sua conta está bloqueada.
+      signed_up_but_pending: Uma mensagem com um link de confirmação foi enviada ao seu endereço de e-mail. Depois que você clicar no link, revisaremos seu pedido. Você será notificado se seu pedido for aprovado.
       signed_up_but_unconfirmed: Uma mensagem com um link de confirmação foi enviada para o seu endereço de e-mail. Por favor, siga o link para ativar a sua conta e, caso não tenha recebido esta mensagem, cheque a sua pasta de spam.
       update_needs_confirmation: Você mudou o seu endereço de e-mail ou a sua senha, mas é necessário confirmar a mudança. Por favor siga o link que foi enviado para o seu novo endereço de e-mail e, caso não tenha recebido esta mensagem, cheque a sua pasta de spam.
       updated: A sua conta foi alterada com sucesso.
diff --git a/config/locales/devise.pt.yml b/config/locales/devise.pt.yml
index 9b44bbf00..64f2a2a90 100644
--- a/config/locales/devise.pt.yml
+++ b/config/locales/devise.pt.yml
@@ -12,6 +12,7 @@ pt:
       last_attempt: Tens mais uma tentativa antes de a tua conta ficar bloqueada.
       locked: A tua conta está bloqueada.
       not_found_in_database: "%{authentication_keys} ou palavra-passe inválida."
+      pending: A sua conta ainda está a ser analisada.
       timeout: A tua sessão expirou. Por favor, entra de novo para continuares.
       unauthenticated: Precisas de entrar na tua conta ou de te registares antes de continuar.
       unconfirmed: Tens de confirmar o teu endereço de email antes de continuar.
@@ -20,6 +21,7 @@ pt:
         action: Verificar o endereço de e-mail
         action_with_app: Confirmar e regressar a %{app}
         explanation: Criaste uma conta em %{host} com este endereço de e-mail. Estás a um clique de activá-la. Se não foste tu que fizeste este registo, por favor ignora esta mensagem.
+        explanation_when_pending: Você se candidatou a um convite para %{host} com este endereço de e-mail. Depois de confirmar o seu endereço de e-mail, iremos rever a sua candidatura. Você não poderá fazer login até lá. Se a sua candidatura for rejeitada, os seus dados serão removidos, pelo que não será necessária qualquer acção adicional da sua parte. Se não foi você, ignore este e-mail.
         extra_html: Por favor lê <a href="%{terms_path}">as regras da instância</a> e os <a href="%{policy_path}"> nossos termos de serviço</a>.
         subject: 'Mastodon: Instruções de confirmação %{instance}'
         title: Verificar o endereço de e-mail
@@ -60,6 +62,7 @@ pt:
       signed_up: Bem-vindo! A tua conta foi registada com sucesso.
       signed_up_but_inactive: A tua conta foi registada. No entanto ainda não está activa.
       signed_up_but_locked: A tua conta foi registada. No entanto está bloqueada.
+      signed_up_but_pending: Uma mensagem com um link de confirmação foi enviada para o seu endereço de e-mail. Depois de clicar no link, iremos rever a sua candidatura. Você será notificado se for aprovado.
       signed_up_but_unconfirmed: Uma mensagem com um link de confirmação foi enviada para o teu email. Por favor segue esse link para activar a tua conta.
       update_needs_confirmation: Alteraste o teu endereço de email ou palavra-passe, mas é necessário confirmar essa alteração. Por favor vai ao teu email e segue link que te enviámos.
       updated: A tua conta foi actualizada com sucesso.
diff --git a/config/locales/devise.ru.yml b/config/locales/devise.ru.yml
index 2186066c9..a1bf05b2d 100644
--- a/config/locales/devise.ru.yml
+++ b/config/locales/devise.ru.yml
@@ -12,14 +12,17 @@ ru:
       last_attempt: У Вас есть последняя попытка, после чего вход будет заблокирован.
       locked: Ваш аккаунт заблокирован.
       not_found_in_database: Неверно введены %{authentication_keys} или пароль.
+      pending: Ваша учетная запись все еще находится на просмотре.
       timeout: Ваша сессия истекла. Пожалуйста, войдите снова, чтобы продолжить.
       unauthenticated: Вам необходимо войти или зарегистрироваться.
       unconfirmed: Вам необходимо подтвердить ваш адрес e-mail для продолжения.
     mailer:
       confirmation_instructions:
         action: Подтвердите e-mail адрес
+        action_with_app: Подтверждение и возврат в %{app}
         explanation: Вы создали учётную запись на сайте %{host}, используя этот e-mail адрес. Остался лишь один шаг для активации. Если это были не вы, просто игнорируйте письмо.
-        extra_html: Пожалуйста, ознакомьтесь <a href="%{terms_path}">правилами узла</a> and <a href="%{policy_path}">условиями пользования Сервисом</a>.
+        explanation_when_pending: Вы подали заявку на приглашение на адрес электронной почты %{host}. Как только вы подтвердите свой адрес электронной почты, мы рассмотрим ваше заявление. Ты не сможешь войти до тех пор. Если ваше заявление будет отклонено, ваши данные будут удалены, поэтому никаких дальнейших действий от вас не потребуется. Если это был не ты, пожалуйста, проигнорируй это письмо.
+        extra_html: Также обратитесь к <a href="%{terms_path}"> правилам экземпляра</a> и <a href="%{policy_path}"> нашим условиям использования</a>.
         subject: 'Mastodon: Инструкция по подтверждению на узле %{instance}'
         title: Подтвердите e-mail адрес
       email_changed:
@@ -59,6 +62,7 @@ ru:
       signed_up: Добро пожаловать! Вы успешно зарегистрировались.
       signed_up_but_inactive: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать Вас, поскольку Ваш аккаунт еще не активирован.
       signed_up_but_locked: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать Вас, поскольку Ваш аккаунт заблокирован.
+      signed_up_but_pending: На ваш электронный адрес только что было отправлено сообщение со ссылкой для подтверждения. После нажатия на ссылку мы рассмотрим ваш запрос. Вы будете уведомлены, если он будет одобрен.
       signed_up_but_unconfirmed: Сообщение со ссылкой для подтверждения было выслано на Ваш адрес e-mail. Пожалуйста, пройдите по ссылке для активации Вашего аккаунта.
       update_needs_confirmation: Вы успешно обновили Ваш аккаунт, но нам нужно подтвердить ваш новый адрес e-mail. Пожалуйста, проверьте почту и пройдите по ссылке для подтверждения Вашего нового адреса.
       updated: Ваш аккаунт был успешно обновлен.
diff --git a/config/locales/devise.sk.yml b/config/locales/devise.sk.yml
index e054efb30..0052bc0bc 100644
--- a/config/locales/devise.sk.yml
+++ b/config/locales/devise.sk.yml
@@ -12,6 +12,7 @@ sk:
       last_attempt: Máš posledný pokus pred zamknutím tvojho účtu.
       locked: Tvoj účet je zamknutý.
       not_found_in_database: Nesprávny %{authentication_keys} alebo heslo.
+      pending: Tvoj účet je stále prehodnocovaný.
       timeout: Vaša aktívna sezóna vypršala. Pre pokračovanie sa prosím znovu prihláste.
       unauthenticated: K pokračovaniu sa musíš zaregistrovať alebo prihlásiť.
       unconfirmed: Pred pokračovaním musíš potvrdiť svoj email.
@@ -60,8 +61,9 @@ sk:
       signed_up: Vitaj! Tvoja registrácia bola úspešná.
       signed_up_but_inactive: Registrácia bola úspešná. Avšak, účet ešte nebol aktivovaný, takže ťa nemožno prihlásiť.
       signed_up_but_locked: Registroval/a si sa úspešné. Avšak, tvoj účet je zamknutý, takže ťa nemožno prihlásiť.
-      signed_up_but_unconfirmed: Správa s odkazom na potvrdenie registrácie bola odoslaná na tvoj email. Pre aktváciu účtu, klikni prosím na daný odkaz. Takisto ale skontroluj aj svoju spam zložku, pokiaľ sa ti zdá, že si tento email nedostal/a.
-      update_needs_confirmation: Účet bol úspešne zmenený ale ešte potrebujeme overiť tvoju novú emailovú adresu. Pre overenie prosím klikni na link v správe ktorú si dostal/a na email. Takisto ale skontroluj aj svoju spam zložku, ak sa ti zdá, že si tento email nedostal/a.
+      signed_up_but_pending: Na tvoj email bola odoslaná správa s odkazom na potvrdenie. Po tom, čo naňho klikneš, bude tvoje uchádzanie posúdené. Budeš informovaný, ak sa tvoja požiadavka schváli.
+      signed_up_but_unconfirmed: Správa s odkazom na potvrdenie registrácie bola odoslaná na tvoj email. Pre aktváciu účtu, následuj prosím daný odkaz. Takisto ale skontroluj aj svoju spam zložku, pokiaľ sa ti zdá, že si tento email nedostal/a.
+      update_needs_confirmation: Účet bol úspešne pozmenený, ale ešte potrebujeme overiť tvoju novú emailovú adresu. Pre overenie prosím klikni na link v správe ktorú si dostal/a na email. Takisto ale skontroluj aj svoju spam zložku, ak sa ti zdá, že si tento email nedostal/a.
       updated: Tvoj účet bol úspešne aktualizovaný.
     sessions:
       already_signed_out: Odhlásil/a si sa úspešné.
diff --git a/config/locales/devise.sl.yml b/config/locales/devise.sl.yml
index 13c48e199..7d1e05fdf 100644
--- a/config/locales/devise.sl.yml
+++ b/config/locales/devise.sl.yml
@@ -12,13 +12,16 @@ sl:
       last_attempt: Pred zaklepom računa imate še en poskus.
       locked: Vaš račun je zaklenjen.
       not_found_in_database: Neveljavno %{authentication_keys} ali geslo.
+      pending: Vaš račun je še vedno pod drobnogledom.
       timeout: Vaša seja je potekla. Če želite nadaljevati, se znova prijavite.
       unauthenticated: Pred nadaljevanjem se morate prijaviti ali vpisati.
       unconfirmed: Pred nadaljevanjem morate potrditi svoj e-poštni naslov.
     mailer:
       confirmation_instructions:
         action: Potrdi e-poštni naslov
+        action_with_app: Potrdi in se vrni v %{app}
         explanation: S tem e-poštnim naslovom ste ustvarili račun na %{host}. Z enim samim klikom ga aktivirate. Če to niste bili vi, prosimo, prezrite to e-poštno sporočilo.
+        explanation_when_pending: S tem e-poštnim naslovom ste zaprosili za povabilo na %{host}. Ko potrdite svoj e-poštni naslov, bomo pregledali vašo prijavo. Do takrat se ne morete prijaviti. Če bo vaša prijava zavrnjena, bodo vaši podatki odstranjeni, zato ne bo potrebno nadaljnje ukrepanje. Če to niste bili vi, prezrite to e-poštno sporočilo.
         extra_html: Preverite tudi <a href="%{terms_path}">pravila vozlišča</a> in <a href="%{policy_path}">naše pogoje storitve</a>.
         subject: 'Mastodon: Navodila za potrditev za %{instance}'
         title: Potrdi e-poštni naslov
@@ -34,3 +37,17 @@ sl:
         title: Geslo je spremenjeno
       reconfirmation_instructions:
         explanation: Potrdite novi naslov, da spremenite svoj e-poštni naslov.
+        extra: Če te spremembe niste sprožili, prezrite to e-poštno sporočilo. E-poštni naslov za račun Mastodon se ne bo spremenil, dokler ne kliknete na zgornjo povezavo.
+        subject: 'Mastodon: Potrdite e-pošto za %{instance}'
+        title: Potrdi e-poštni naslov
+      reset_password_instructions:
+        action: Spremeni geslo
+        explanation: Zahtevali ste novo geslo za svoj račun.
+        extra: Če tega niste zahtevali, prezrite to e-poštno sporočilo. Vaše geslo se ne bo spremenilo, dokler ne kliknete na zgornjo povezavo in ustvarite novega.
+        subject: 'Mastodon: Navodila za ponastavitev gesla'
+        title: Ponastavitev gesla
+      unlock_instructions:
+        subject: 'Mastodon: Odkleni navodila'
+    omniauth_callbacks:
+      failure: Overitev iz %{kind} ni možna zaradi "%{reason}".
+      success: Overitev iz računa %{kind} je bila uspešna.
diff --git a/config/locales/devise.th.yml b/config/locales/devise.th.yml
index fec944310..e20df69af 100644
--- a/config/locales/devise.th.yml
+++ b/config/locales/devise.th.yml
@@ -54,7 +54,7 @@ th:
       already_confirmed: was already confirmed, please try signing in
       confirmation_period_expired: needs to be confirmed within %{period}, please request a new one
       expired: has expired, please request a new one
-      not_found: not found
+      not_found: ไม่พบ
       not_locked: was not locked
       not_saved:
         one: '1 error prohibited this %{resource} from being saved:'
diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml
index 4ee021fcc..bef2baa18 100644
--- a/config/locales/devise.zh-CN.yml
+++ b/config/locales/devise.zh-CN.yml
@@ -59,7 +59,7 @@ zh-CN:
       signed_up: 欢迎!你已注册成功。
       signed_up_but_inactive: 你已注册,但尚未激活帐户。
       signed_up_but_locked: 你已注册,但帐户被锁定了。
-      signed_up_but_unconfirmed: 一封带有确认链接的邮件已经发送至你的邮箱,请点击邮件中的链接以激活你的帐户。如果没有,请检查你的垃圾邮箱。
+      signed_up_but_unconfirmed: 一封带有确认链接的邮件已经发送至你的邮箱,请点击邮件中的链接以激活你的帐户。如果没有,请检查你的垃圾邮件。
       update_needs_confirmation: 信息更新成功,但我们需要验证你的新电子邮件地址,请点击邮件中的链接以确认。如果没有,请检查你的垃圾邮箱。
       updated: 帐户资料更新成功。
     sessions:
diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml
index abbe45942..0ade1e60a 100644
--- a/config/locales/devise.zh-TW.yml
+++ b/config/locales/devise.zh-TW.yml
@@ -2,81 +2,85 @@
 zh-TW:
   devise:
     confirmations:
-      confirmed: 您的 E-mail 驗證成功。
-      send_instructions: 您將會在幾分鐘內收到驗證信。
-      send_paranoid_instructions: 如果您的 E-mail 存在於我們的資料庫,將會在幾分鐘內收到驗證信。
+      confirmed: 您的電子信箱位址已確認成功。
+      send_instructions: 幾分鐘後您將收到確認信件。若未收到此信件,請檢查垃圾郵件資料夾。
+      send_paranoid_instructions: 如果您的電子信箱存在於我們的資料庫,將會在幾分鐘內收到確認信。若未收到請檢查垃圾郵件資料夾。
     failure:
-      already_authenticated: 您已經登入了。
+      already_authenticated: 您已登入。
       inactive: 您的帳戶尚未啟用。
-      invalid: 不正確的 %{authentication_keys} 或密碼。
-      last_attempt: 您剩下最後一次嘗試機會,如失敗將會進行帳戶鎖定。如有問題請洽詢站點管理員。
+      invalid: 無效的 %{authentication_keys} 或密碼。
+      last_attempt: 在帳號遭封鎖前您還有最後一次嘗試機會。
       locked: 您的帳戶已被鎖定。
-      not_found_in_database: 不正確的 %{authentication_keys} 或密碼。
-      timeout: 您的登入階段已經逾期,請重新登入以繼續使用。
-      unauthenticated: 您必須先登入或註冊,以繼續使用。
-      unconfirmed: 您必須先完成 E-mail 驗證,以繼續使用。
+      not_found_in_database: 無效的 %{authentication_keys} 或密碼。
+      pending: 您的帳戶仍在審核中。
+      timeout: 登入階段逾時。請重新登入以繼續。
+      unauthenticated: 您必須先登入或註冊以繼續使用。
+      unconfirmed: 您必須先確認電子信箱才能繼續使用。
     mailer:
       confirmation_instructions:
-        action: 驗證 E-mail 地址
-        explanation: 您已經在 %{host} 上以此 E-mail 地址建立了一個帳號。您距離啟用它只剩一次點擊之遙了。如果這不是你,請忽略此 E-mail 。
-        extra_html: 同時也請看看<a href="%{terms_path}">該站點的規則</a>與<a href="%{policy_path}">我們的服務條款</a>。
-        subject: 'Mastodon: 信箱驗證 %{instance}'
-        title: 驗證 E-mail 地址
+        action: 驗證電子信箱位址
+        action_with_app: 確認並返回 %{app}
+        explanation: 您已經在 %{host} 上以此電子信箱位址建立了一支帳戶。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。
+        explanation_when_pending: 您使用此電子信箱位址申請了 %{host} 的邀請。當您確認電子信箱後我們將審核您的申請,而直到核准前您都無法登入。當您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。
+        extra_html: 同時也請看看<a href="%{terms_path}">該伺服器的規則</a>與<a href="%{policy_path}">服務條款</a>。
+        subject: Mastodon:%{instance} 確認說明
+        title: 驗證電子信箱位址
       email_changed:
-        explanation: 您帳號的 E-mail 地址被變更為:
-        extra: 如果您並未變更您的 E-mail ,那麼很有可能是某人取得了你帳號的存取權限。請立刻變更您的密碼,或是若您的帳號已被鎖定,請聯絡站點的管理員。
-        subject: Mastodon  E-mail 變更
-        title: 新 E-mail 地址
+        explanation: 您帳戶的電子信箱位址將變更為:
+        extra: 若您未變更電子信箱,那麼很有可能是某人取得了你帳戶的存取權限。請立刻變更密碼,或當帳戶被鎖定時,請聯絡伺服器的管理員。
+        subject: Mastodon:已變更電子信箱
+        title: 新電子信箱位址
       password_change:
-        explanation: 您帳號的密碼已變更。
-        extra: 如果您並未變更您的密碼,那麼很有可能是某人取得了您帳號的存取權限。請立刻變更您的密碼,或是若您的帳號已被鎖定,請聯絡站點的管理員。
-        subject: 'Mastodon: 更改密碼'
+        explanation: 您帳戶的密碼已變更。
+        extra: 如果您未變更密碼,那麼很有可能是某人取得了帳戶的存取權限。請立刻變更密碼,或若帳戶被鎖定時,請聯絡伺服器的管理員。
+        subject: Mastodon:已變更密碼
         title: 密碼已變更
       reconfirmation_instructions:
-        explanation: 確認新的 E-mail 地址以變更您的 E-mail 。
-        extra: 若此次變更不是由您開啟的,請忽略這個 E-mail 。Mastodon 帳號的 E-mail 地址在您存取上面的連結前不會變更。
-        subject: Mastodon:%{instance} 的確認 E-mail
-        title: 驗證 E-mail 地址
+        explanation: 請確認新的電子信箱位址以變更。
+        extra: 若此次變更不是由您開啟的,請忽略此信件。Mastodon 帳戶的電子信箱位址在您存取上面的連結前不會變更。
+        subject: Mastodon:確認 %{instance} 的電子信箱位址
+        title: 驗證電子信箱位址
       reset_password_instructions:
         action: 變更密碼
-        explanation: 您為您的帳號請求了一個新密碼。
-        extra: 若您並未請求這個,請忽略此 E-mail 。您的密碼在您存取上面的連結並建立一個新的之前不會變更。
-        subject: 'Mastodon: 重設密碼'
+        explanation: 您已請求設定帳號的新密碼。
+        extra: 若您並未請求,請忽略此信件。您的密碼在存取上方連結並建立新連結前不會變更。
+        subject: Mastodon:重設密碼指引
         title: 重設密碼
       unlock_instructions:
-        subject: 'Mastodon: 帳號解鎖'
+        subject: Mastodon:帳戶解鎖指引
     omniauth_callbacks:
-      failure: 無法以 %{kind} 登入您的帳號,原因是︰「%{reason}」。
-      success: 成功以 %{kind} 登入您的帳號。
+      failure: 無法透過 %{kind} 認證是否為您,因為「%{reason}」。
+      success: 成功透過 %{kind} 登入帳戶。
     passwords:
-      no_token: 您請使用重設密碼信中的網址,並確認您用了完整的網址。
-      send_instructions: 您將在幾分鐘內收到重設密碼信。
-      send_paranoid_instructions: 如果您的電子信箱已經存在於我們的資料庫,您將會在幾分鐘內收到重設密碼信。
-      updated: 您的密碼已經更新,您現在正登入本站。
-      updated_not_active: 您的密碼已經更新。
+      no_token: 您必須透過密碼重設信件才能存取此頁面。若確實如此,請確定輸入的網址是完整的。
+      send_instructions: 若電子信箱位址存在於資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。
+      send_paranoid_instructions: 若電子信箱位址存在於資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。
+      updated: 您的密碼已成功變更,現在已經登入。
+      updated_not_active: 您的密碼已成功變更。
     registrations:
-      destroyed: 再見了!您的帳號已被取消,期待再相逢。
-      signed_up: 歡迎您!您的已成功註冊。
-      signed_up_but_inactive: 您已成功註冊,但由於您的帳號尚未啟用,我們暫時無法讓您登入。
-      signed_up_but_locked: 您已成功註冊,但由於您的帳號已被鎖定,我們無法讓您登入。
-      signed_up_but_unconfirmed: 驗證信已寄出。請使用該連結啟用您的帳號。
-      update_needs_confirmation: 已更新您的帳號,但我們需要進行信箱驗證。請開啟您的信箱,使用確認信中的連結進行驗證。
-      updated: 您的帳號已成功更新。
+      destroyed: 再見!您的帳戶已成功取消,期待再相逢。
+      signed_up: 歡迎!您已成功註冊。
+      signed_up_but_inactive: 您已註冊成功,但由於您的帳戶尚未啟用,我們暫時無法讓您登入。
+      signed_up_but_locked: 您已註冊成功,但由於您的帳戶已被鎖定,我們無法讓您登入。
+      signed_up_but_pending: 包含確認連結的訊息已寄到您的電子信箱。按下此連結後我們將審核您的申請。核准後將通知您。
+      signed_up_but_unconfirmed: 包含確認連結的訊息已寄到您的電子信箱。請前往連結以啟用帳號。若未收到請檢查垃圾郵件資料夾。
+      update_needs_confirmation: 已更新您的帳號,但仍需驗證您的新信箱。請檢查電子信箱並前往確認連結來確認新信箱位址。若未收到請檢查垃圾郵件資料夾。
+      updated: 您的帳戶已成功更新。
     sessions:
-      already_signed_out: 成功登出。
-      signed_in: 成功登入。
-      signed_out: 成功登出。
+      already_signed_out: 已成功登出。
+      signed_in: 已成功登入。
+      signed_out: 已成功登出。
     unlocks:
-      send_instructions: 您將在幾分鐘內收到帳號解鎖信。
-      send_paranoid_instructions: 如果您的電子信箱已經存在於我們的資料庫,您將在幾分鐘內收到帳號解鎖信。
-      unlocked: 已解鎖您的帳號,請登入以繼續。
+      send_instructions: 幾分鐘後您將收到解鎖帳號的指引信件。若未收到請檢查垃圾郵件資料夾。
+      send_paranoid_instructions: 若此帳號存在,您將在幾分鐘後收到解鎖指引信件。若未收到請檢查垃圾郵件資料夾。
+      unlocked: 已解鎖您的帳戶,請登入繼續。
   errors:
     messages:
       already_confirmed: 已經確認,請嘗試登入
       confirmation_period_expired: 需要在 %{period} 內完成驗證。請重新申請
-      expired: 已經過期,請重新申請
+      expired: 已經過期,請重新請求
       not_found: 找不到
       not_locked: 並未被鎖定
       not_saved:
-        one: 有 1 個錯誤讓此 %{resource} 無法儲存:
-        other: 有 %{count} 個錯誤讓此 %{resource} 無法儲存:
+        one: 因 1 個錯誤導致 %{resource} 無法儲存:
+        other: 因 %{count} 錯誤導致 %{resource} 無法儲存:
diff --git a/config/locales/el.yml b/config/locales/el.yml
index d78d63955..5b067358b 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -4,25 +4,36 @@ el:
     about_hashtag_html: Αυτά είναι κάποια από τα δημόσια τουτ σημειωμένα με <strong>#%{hashtag}</strong>. Μπορείς να αλληλεπιδράσεις με αυτά αν έχεις λογαριασμό οπουδήποτε στο fediverse.
     about_mastodon_html: Το Mastodon είναι ένα κοινωνικό δίκτυο που βασίζεται σε ανοιχτά δικτυακά πρωτόκολλα και ελεύθερο λογισμικό ανοιχτού κώδικα. Είναι αποκεντρωμένο όπως το e-mail.
     about_this: Σχετικά
+    active_count_after: ενεργοί
+    active_footnote: Μηνιαίοι Ενεργοί Χρήστες (ΜΕΧ)
     administered_by: 'Διαχειριστής:'
     api: API
     apps: Εφαρμογές κινητών
+    apps_platforms: Χρησιμοποίησε το Mastodon από το iOS, το Android και αλλού
+    browse_directory: Ξεφύλλισε ένα κατάλογο χρηστών και φίλτραρε ανά ενδιαφέροντα
+    browse_public_posts: Κοίταξε μια ζωντανή ροή δημοσιεύσεων στο Mastodon
     contact: Επικοινωνία
     contact_missing: Δεν έχει οριστεί
     contact_unavailable: Μ/Δ
+    discover_users: Ανακάλυψε χρήστες
     documentation: Τεκμηρίωση
     extended_description_html: |
       <h3>Ένα καλό σημείο για κανόνες</h3>
       <p>Η αναλυτική περιγραφή δεν έχει ακόμα οριστεί</p>
+    federation_hint_html: Με ένα λογαριασμό στο %{instance} θα μπορείς να ακολουθείς ανθρώπους σε οποιοδήποτε κόμβο στο Mastodon αλλά και αλλού.
     generic_description: "%{domain} είναι ένας εξυπηρετητής στο δίκτυο"
+    get_apps: Δοκίμασε μια εφαρμογή κινητού
     hosted_on: Το Mastodon φιλοξενείται στο %{domain}
     learn_more: Μάθε περισσότερα
     privacy_policy: Πολιτική απορρήτου
+    see_whats_happening: Μάθε τι συμβαίνει
+    server_stats: 'Στατιστικά κόμβου:'
     source_code: Πηγαίος κώδικας
     status_count_after:
       one: δημοσίευση
       other: δημοσιεύσεις
     status_count_before: Που έγραψαν
+    tagline: Ακολούθησε τους γνωστούς σου και ανακάλυψε νέους ανθρώπους
     terms: Όροι χρήσης
     user_count_after:
       one: χρήστης
@@ -68,6 +79,7 @@ el:
       delete: Διαγραφή
       destroyed_msg: Επιτυχής καταστροφή σημειώματος μεσολάβησης!
     accounts:
+      approve: Έγκριση
       are_you_sure: Σίγουρα;
       avatar: Αβατάρ
       by_domain: Τομέας
@@ -113,6 +125,7 @@ el:
       moderation:
         active: Ενεργός/ή
         all: Όλα
+        pending: Εκκρεμούν
         silenced: Αποσιωπημένα
         suspended: Σε αναστολή
         title: Μεσολάβηση
@@ -122,6 +135,7 @@ el:
       no_limits_imposed: Χωρίς όρια
       not_subscribed: Άνευ συνδρομής
       outbox_url: URL εξερχομένων
+      pending: Εκκρεμεί έγκριση
       perform_full_suspension: Αναστολή
       profile_url: URL προφίλ
       promote: Προβίβασε
@@ -129,6 +143,7 @@ el:
       public: Δημόσιο
       push_subscription_expires: Η εγγραφή PuSH λήγει
       redownload: Ανανέωση αβατάρ
+      reject: Απόρριψη
       remove_avatar: Απομακρυσμένο αβατάρ
       remove_header: Αφαίρεση επικεφαλίδας
       resend_confirmation:
@@ -400,6 +415,12 @@ el:
         min_invite_role:
           disabled: Κανείς
           title: Επέτρεψε προσκλήσεις από
+      registrations_mode:
+        modes:
+          approved: Απαιτείται έγκριση για εγγραφή
+          none: Δεν μπορεί να εγγραφεί κανείς
+          open: Μπορεί να εγγραφεί ο οποιοσδήποτε
+        title: Μέθοδος εγγραφής
       show_known_fediverse_at_about_page:
         desc_html: Όταν αντιστραφεί, θα δείχνει τα τουτ από όλο το γνωστό fediverse στην προεπισκόπηση. Διαφορετικά θα δείχνει μόνο τοπικά τουτ.
         title: Εμφάνιση του γνωστού fediverse στην προεπισκόπηση ροής
@@ -462,6 +483,9 @@ el:
       edit_preset: Ενημέρωση προκαθορισμένης προειδοποίησης
       title: Διαχείριση προκαθορισμένων προειδοποιήσεων
   admin_mailer:
+    new_pending_account:
+      body: Τα στοιχεία του νέου λογαριασμού είναι παρακάτω. Μπορείς να εγκρίνεις ή να απορρίψεις αυτή την αίτηση.
+      subject: Νέος λογαριασμός προς έγκριση στο %{instance} (%{username})
     new_report:
       body: Ο/Η %{reporter} κατήγγειλε τον/την %{target}
       body_remote: Κάποιος/α από τον τομέα %{domain} κατήγγειλε τον/την %{target}
@@ -483,7 +507,9 @@ el:
     your_token: Το διακριτικό πρόσβασής σου (access token)
   auth:
     agreement_html: Επιλέγοντας το "Εγγραφή", συμφωνείς πως δέχεσαι <a href="%{rules_path}">τους κανόνες αυτού του κόμβου</a> και <a href="%{terms_path}">τους όρους χρήσης του</a>.
+    apply_for_account: Αίτηση πρόσκλησης
     change_password: Συνθηματικό
+    checkbox_agreement_html: Συμφωνώ με τους <a href="%{rules_path}" target="_blank">κανονισμούς του κόμβου</a> και <a href="%{terms_path}" target="_blank">τους όρους χρήσης</a>
     confirm_email: Επιβεβαίωση email
     delete_account: Διαγραφή email
     delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς <a href="%{path}">να συνεχίσεις εδώ</a>. Θα σου ζητηθεί επιβεβαίωση.
@@ -499,10 +525,12 @@ el:
       cas: Υπηρεσία Κεντρικής Πιστοποίησης (CAS)
       saml: SAML
     register: Εγγραφή
+    registration_closed: Το %{instance} δεν δέχεται νέα μέλη
     resend_confirmation: Στείλε ξανά τις οδηγίες επιβεβαίωσης
     reset_password: Επαναφορά συνθηματικού
     security: Ασφάλεια
     set_new_password: Ορισμός νέου συνθηματικού
+    trouble_logging_in: Πρόβλημα σύνδεσης;
   authorize_follow:
     already_following: Ήδη ακολουθείς αυτό το λογαριασμό
     error: Δυστυχώς παρουσιάστηκε ένα σφάλμα κατά την αναζήτηση του απομακρυσμένου λογαριασμού
@@ -558,6 +586,9 @@ el:
       content: Λυπούμαστε, κάτι πήγε στραβά από τη δική μας μεριά.
       title: Η σελίδα αυτή δεν είναι σωστή
     noscript_html: Για να χρησιμοποιήσετε τη δικτυακή εφαρμογή του Mastodon, ενεργοποίησε την Javascript. Εναλλακτικά, δοκίμασε μια από τις <a href="%{apps_path}">εφαρμογές</a> για το Mastodon στην πλατφόρμα σου.
+  existing_username_validator:
+    not_found: δεν βρέθηκε τοπικός χρήστης με αυτό το όνομα
+    not_found_multiple: δεν βρέθηκε %{usernames}
   exports:
     archive_takeout:
       date: Ημερομηνία
@@ -598,12 +629,30 @@ el:
     more: Περισσότερα…
     resources: Πόροι
   generic:
+    all: Όλα
     changes_saved_msg: Οι αλλαγές αποθηκεύτηκαν!
     copy: Αντιγραφή
     save_changes: Αποθήκευσε τις αλλαγές
     validation_errors:
       one: Κάτι δεν είναι εντάξει ακόμα! Για κοίταξε το παρακάτω σφάλμα
       other: Κάτι δεν είναι εντάξει ακόμα! Για κοίταξε τα παρακάτω %{count} σφάλματα
+  html_validator:
+    invalid_markup: περιέχει λάθος μορφοποίηση HTML
+  identity_proofs:
+    active: Ενεργή
+    authorize: Ναι, εξουσιοδότησε
+    authorize_connection_prompt: Εξουσιοδότηση αυτής της κρυπτογραφικής σύνδεσης;
+    errors:
+      failed: Η κρυπτογραφική σύνδεση απέτυχε. Παρακαλώ ξανά δοκίμασε μέσω %{provider}.
+      keybase:
+        invalid_token: Τα κλειδιά Keybase είναι κατακερματισμένες υπογραφές και πρέπει να έχουν μήκος 66 δεκαεξαδικών χαρακτήρων
+        verification_failed: Το Keybase δεν δέχτηκε αυτό το κλειδί ως υπογραφή του χρήστη %{kb_username}. Παρακαλούμε δοκίμασε μέσω Keybase.
+    explanation_html: Εδώ μπορείς να συνδέσεις κρυπτογραφικά τις υπόλοιπες ταυτοτητές σου, όπως για παράδειγμα ένα προφίλ στο Keybase. Αυτό επιτρέπει σε άλλους ανθρώπους να σου στέλνουν κρυπτογραφημένα μηνύματα και να μπορούν να εμπιστευτούν το περιεχόμενο που τους στέλνεις εσύ.
+    i_am_html: Είμαι ο/η %{username} στην υπηρεσία %{service}.
+    identity: Ταυτότητα
+    inactive: Ανενεργή
+    status: Κατάσταση επαλήθευσης
+    view_proof: Εμφάνιση απόδειξης
   imports:
     modes:
       merge: Συγχώνευση
@@ -720,6 +769,17 @@ el:
     other: Άλλο
     publishing: Δημοσίευση
     web: Διαδίκτυο
+  relationships:
+    activity: Δραστηριότητα λογαριασμού
+    dormant: Αδρανής
+    moved: Μετακόμισε
+    mutual: Αμοιβαίος
+    primary: Βασικός
+    relationship: Σχέση
+    remove_selected_domains: Αφαίρεση ακόλουθων που βρίσκονται στους επιλεγμένους κόμβους
+    remove_selected_followers: Αφαίρεση επιλεγμένων ακόλουθων
+    remove_selected_follows: Διακοπή παρακολούθησης επιλεγμένων χρηστών
+    status: Κατάσταση λογαριασμού
   remote_follow:
     acct: Γράψε το ΌνομαΧρήστη@τομέα από όπου θέλεις να εκτελέσεις την ενέργεια αυτή
     missing_resource: Δεν βρέθηκε το απαιτούμενο URL ανακατεύθυνσης για το λογαριασμό σου
@@ -794,10 +854,12 @@ el:
     edit_profile: Επεξεργασία προφίλ
     export: Εξαγωγή δεδομένων
     featured_tags: Χαρακτηριστικές ταμπέλες
+    identity_proofs: Αποδείξεις ταυτοτήτων
     import: Εισαγωγή
     migrate: Μετακόμιση λογαριασμού
     notifications: Ειδοποιήσεις
     preferences: Προτιμήσεις
+    relationships: Ακολουθεί και ακολουθείται
     settings: Ρυθμίσεις
     two_factor_authentication: Πιστοποίηση 2 παραγόντων (2FA)
     your_apps: Οι εφαρμογές σου
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 7e1d92884..e52ed7951 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -245,6 +245,7 @@ en:
       feature_profile_directory: Profile directory
       feature_registrations: Registrations
       feature_relay: Federation relay
+      feature_timeline_preview: Timeline preview
       features: Features
       hidden_service: Federation with hidden services
       open_reports: open reports
@@ -431,13 +432,13 @@ en:
         desc_html: Show a staff badge on a user page
         title: Show staff badge
       site_description:
-        desc_html: Introductory paragraph on the frontpage. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <code>&lt;a&gt;</code> and <code>&lt;em&gt;</code>.
+        desc_html: Introductory paragraph on the API. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <code>&lt;a&gt;</code> and <code>&lt;em&gt;</code>.
         title: Server description
       site_description_extended:
         desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML tags
         title: Custom extended information
       site_short_description:
-        desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. If empty, defaults to server description.
+        desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph.
         title: Short server description
       site_terms:
         desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML tags
@@ -589,6 +590,9 @@ en:
       content: We're sorry, but something went wrong on our end.
       title: This page is not correct
     noscript_html: To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the <a href="%{apps_path}">native apps</a> for Mastodon for your platform.
+  existing_username_validator:
+    not_found: could not find a local user with that username
+    not_found_multiple: could not find %{usernames}
   exports:
     archive_takeout:
       date: Date
@@ -637,6 +641,8 @@ en:
     validation_errors:
       one: Something isn't quite right yet! Please review the error below
       other: Something isn't quite right yet! Please review %{count} errors below
+  html_validator:
+    invalid_markup: 'contains invalid HTML markup: %{error}'
   identity_proofs:
     active: Active
     authorize: Yes, authorize
diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml
index d9e1a256f..9e6eb5e94 100644
--- a/config/locales/en_GB.yml
+++ b/config/locales/en_GB.yml
@@ -1,2 +1,1056 @@
 ---
-{}
+en_GB:
+  about:
+    about_hashtag_html: These are public toots tagged with <strong>#%{hashtag}</strong>. You can interact with them if you have an account anywhere in the fediverse.
+    about_mastodon_html: Mastodon is a social network based on open web protocols and free, open-source software. It is decentralized like e-mail.
+    about_this: About
+    active_count_after: active
+    active_footnote: Monthly Active Users (MAU)
+    administered_by: 'Administered by:'
+    api: API
+    apps: Mobile apps
+    apps_platforms: Use Mastodon from iOS, Android and other platforms
+    browse_directory: Browse a profile directory and filter by interests
+    browse_public_posts: Browse a live stream of public posts on Mastodon
+    contact: Contact
+    contact_missing: Not set
+    contact_unavailable: N/A
+    discover_users: Discover users
+    documentation: Documentation
+    extended_description_html: |
+      <h3>1A good place for rules</h3>2
+      <p>3The extended description has not been set up yet.</p>4
+    federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond.
+    generic_description: "%{domain} is one server in the network"
+    get_apps: Try a mobile app
+    hosted_on: Mastodon hosted on %{domain}
+    learn_more: Learn more
+    privacy_policy: Privacy policy
+    see_whats_happening: See what's happening
+    server_stats: 'Server stats:'
+    source_code: Source code
+    status_count_after:
+      one: status
+      other: statuses
+    status_count_before: Who authored
+    tagline: Follow friends and discover new ones
+    terms: Terms of service
+    user_count_after:
+      one: user
+      other: users
+    user_count_before: Home to
+    what_is_mastodon: What is Mastodon?
+  accounts:
+    choices_html: "%{name}'s choices:"
+    follow: Follow
+    followers:
+      one: Follower
+      other: Follower
+    following: Following
+    joined: Joined %{date}
+    last_active: last active
+    link_verified_on: Ownership of this link was checked on %{date}
+    media: Media
+    moved_html: "%{name} has moved to %{new_profile_link}:"
+    network_hidden: This information is not available
+    nothing_here: There is nothing here!
+    people_followed_by: People whom %{name} follows
+    people_who_follow: People who follow %{name}
+    pin_errors:
+      following: You must be already following the person you want to endorse
+    posts:
+      one: Toot
+      other: Toots
+    posts_tab_heading: Toots
+    posts_with_replies: Toots and replies
+    reserved_username: The username is reserved
+    roles:
+      admin: Admin
+      bot: Bot
+      moderator: Mod
+    unfollow: Unfollow
+  admin:
+    account_actions:
+      action: Perform action
+      title: Perform moderation action on %{acct}
+    account_moderation_notes:
+      create: Leave note
+      created_msg: Moderation note successfully created!
+      delete: Delete
+      destroyed_msg: Moderation note successfully destroyed!
+    accounts:
+      approve: Approve
+      are_you_sure: Are you sure?
+      avatar: Avatar
+      by_domain: Domain
+      change_email:
+        changed_msg: Account email successfully changed!
+        current_email: Current email
+        label: Change email
+        new_email: New email
+        submit: Change email
+        title: Change email for %{username}
+      confirm: Confirm
+      confirmed: Confirmed
+      confirming: Confirming
+      deleted: Deleted
+      demote: Demote
+      disable: Disable
+      disable_two_factor_authentication: Disable 2FA
+      disabled: Disabled
+      display_name: Display name
+      domain: Domain
+      edit: Edit
+      email: Email
+      email_status: Email status
+      enable: Enable
+      enabled: Enabled
+      feed_url: Feed URL
+      followers: Followers
+      followers_url: Followers URL
+      follows: Follows
+      header: Header
+      inbox_url: Inbox URL
+      invited_by: Invited by
+      ip: IP
+      joined: Joined
+      location:
+        all: All
+        local: Local
+        remote: Remote
+        title: Location
+      login_status: Login status
+      media_attachments: Media attachments
+      memorialize: Turn into memoriam
+      moderation:
+        active: Active
+        all: All
+        pending: Pending
+        silenced: Silenced
+        suspended: Suspended
+        title: Moderation
+      moderation_notes: Moderation notes
+      most_recent_activity: Most recent activity
+      most_recent_ip: Most recent IP
+      no_limits_imposed: No limits imposed
+      not_subscribed: Not subscribed
+      outbox_url: Outbox URL
+      pending: Pending review
+      perform_full_suspension: Suspend
+      profile_url: Profile URL
+      promote: Promote
+      protocol: Protocol
+      public: Public
+      push_subscription_expires: PuSH subscription expires
+      redownload: Refresh profile
+      reject: Reject
+      remove_avatar: Remove avatar
+      remove_header: Remove header
+      resend_confirmation:
+        already_confirmed: This user is already confirmed
+        send: Resend confirmation email
+        success: Confirmation email successfully sent!
+      reset: Reset
+      reset_password: Reset password
+      resubscribe: Resubscribe
+      role: Permissions
+      roles:
+        admin: Administrator
+        moderator: Moderator
+        staff: Staff
+        user: User
+      salmon_url: Salmon URL
+      search: Search
+      shared_inbox_url: Shared inbox URL
+      show:
+        created_reports: Made reports
+        targeted_reports: Reported by others
+      silence: Silence
+      silenced: Silenced
+      statuses: Statuses
+      subscribe: Subscribe
+      suspended: Suspended
+      title: Accounts
+      unconfirmed_email: Unconfirmed email
+      undo_silenced: Undo silence
+      undo_suspension: Undo suspension
+      unsubscribe: Unsubscribe
+      username: Username
+      warn: Warn
+      web: Web
+    action_logs:
+      actions:
+        assigned_to_self_report: "%{name} assigned report %{target} to themselves"
+        change_email_user: "%{name} changed the e-mail address of user %{target}"
+        confirm_user: "%{name} confirmed e-mail address of user %{target}"
+        create_account_warning: "%{name} sent a warning to %{target}"
+        create_custom_emoji: "%{name} uploaded new emoji %{target}"
+        create_domain_block: "%{name} blocked domain %{target}"
+        create_email_domain_block: "%{name} blacklisted e-mail domain %{target}"
+        demote_user: "%{name} demoted user %{target}"
+        destroy_custom_emoji: "%{name} destroyed emoji %{target}"
+        destroy_domain_block: "%{name} unblocked domain %{target}"
+        destroy_email_domain_block: "%{name} whitelisted e-mail domain %{target}"
+        destroy_status: "%{name} removed status by %{target}"
+        disable_2fa_user: "%{name} disabled two factor requirement for user %{target}"
+        disable_custom_emoji: "%{name} disabled emoji %{target}"
+        disable_user: "%{name} disabled login for user %{target}"
+        enable_custom_emoji: "%{name} enabled emoji %{target}"
+        enable_user: "%{name} enabled login for user %{target}"
+        memorialize_account: "%{name} turned %{target}'s account into a memoriam page"
+        promote_user: "%{name} promoted user %{target}"
+        remove_avatar_user: "%{name} removed %{target}'s avatar"
+        reopen_report: "%{name} reopened report %{target}"
+        reset_password_user: "%{name} reset password of user %{target}"
+        resolve_report: "%{name} resolved report %{target}"
+        silence_account: "%{name} silenced %{target}'s account"
+        suspend_account: "%{name} suspended %{target}'s account"
+        unassigned_report: "%{name} unassigned report %{target}"
+        unsilence_account: "%{name} unsilenced %{target}'s account"
+        unsuspend_account: "%{name} unsuspended %{target}'s account"
+        update_custom_emoji: "%{name} updated emoji %{target}"
+        update_status: "%{name} updated status by %{target}"
+      deleted_status: "(deleted status)"
+      title: Audit log
+    custom_emojis:
+      by_domain: Domain
+      copied_msg: Successfully created local copy of the emoji
+      copy: Copy
+      copy_failed_msg: Could not make a local copy of that emoji
+      created_msg: Emoji successfully created!
+      delete: Delete
+      destroyed_msg: Emojo successfully destroyed!
+      disable: Disable
+      disabled_msg: Successfully disabled that emoji
+      emoji: Emoji
+      enable: Enable
+      enabled_msg: Successfully enabled that emoji
+      image_hint: PNG up to 50KB
+      listed: Listed
+      new:
+        title: Add new custom emoji
+      overwrite: Overwrite
+      shortcode: Shortcode
+      shortcode_hint: At least 2 characters, only alphanumeric characters and underscores
+      title: Custom emojis
+      unlisted: Unlisted
+      update_failed_msg: Could not update that emoji
+      updated_msg: Emoji successfully updated!
+      upload: Upload
+    dashboard:
+      backlog: backlogged jobs
+      config: Configuration
+      feature_deletions: Account deletions
+      feature_invites: Invite links
+      feature_profile_directory: Profile directory
+      feature_registrations: Registrations
+      feature_relay: Federation relay
+      features: Features
+      hidden_service: Federation with hidden services
+      open_reports: open reports
+      recent_users: Recent users
+      search: Full-text search
+      single_user_mode: Single user mode
+      software: Software
+      space: Space usage
+      title: Dashboard
+      total_users: users in total
+      trends: Trends
+      week_interactions: interactions this week
+      week_users_active: active this week
+      week_users_new: users this week
+    domain_blocks:
+      add_new: Add new domain block
+      created_msg: Domain block is now being processed
+      destroyed_msg: Domain block has been undone
+      domain: Domain
+      new:
+        create: Create block
+        hint: The domain block will not prevent creation of account entries in the database, but will retroactively and automatically apply specific moderation methods on those accounts.
+        severity:
+          desc_html: "<strong>Silence</strong> will make the account's posts invisible to anyone who isn't following them. <strong>Suspend</strong> will remove all of the account's content, media, and profile data. Use <strong>None</strong> if you just want to reject media files."
+          noop: None
+          silence: Silence
+          suspend: Suspend
+        title: New domain block
+      reject_media: Reject media files
+      reject_media_hint: Removes locally stored media files and refuses to download any in the future. Irrelevant for suspensions
+      reject_reports: Reject reports
+      reject_reports_hint: Ignore all reports coming from this domain. Irrelevant for suspensions
+      rejecting_media: rejecting media files
+      rejecting_reports: rejecting reports
+      severity:
+        silence: silenced
+        suspend: suspended
+      show:
+        affected_accounts:
+          one: One account in the database affected
+          other: "%{count} accounts in the database affected"
+        retroactive:
+          silence: Unsilence all existing accounts from this domain
+          suspend: Unsuspend all existing accounts from this domain
+        title: Undo domain block for %{domain}
+        undo: Undo
+      undo: Undo domain block
+    email_domain_blocks:
+      add_new: Add new
+      created_msg: Successfully added e-mail domain to blacklist
+      delete: Delete
+      destroyed_msg: Successfully deleted e-mail domain from blacklist
+      domain: Domain
+      new:
+        create: Add domain
+        title: New e-mail blacklist entry
+      title: E-mail blacklist
+    followers:
+      back_to_account: Back To Account
+      title: "%{acct}'s Followers"
+    instances:
+      by_domain: Domain
+      delivery_available: Delivery is available
+      known_accounts:
+        one: "%{count} known account"
+        other: "%{count} known accounts"
+      moderation:
+        all: All
+        limited: Limited
+        title: Moderation
+      title: Federation
+      total_blocked_by_us: Blocked by us
+      total_followed_by_them: Followed by them
+      total_followed_by_us: Followed by us
+      total_reported: Reports about them
+      total_storage: Media attachments
+    invites:
+      deactivate_all: Deactivate all
+      filter:
+        all: All
+        available: Available
+        expired: Expired
+        title: Filter
+      title: Invites
+    relays:
+      add_new: Add new relay
+      delete: Delete
+      description_html: A <strong>federation relay</strong> is an intermediary server that exchanges large volumes of public toots between servers that subscribe and publish to it. <strong>It can help small and medium servers discover content from the fediverse</strong>, which would otherwise require local users manually following other people on remote servers.
+      disable: Disable
+      disabled: Disabled
+      enable: Enable
+      enable_hint: Once enabled, your server will subscribe to all public toots from this relay, and will begin sending this server's public toots to it.
+      enabled: Enabled
+      inbox_url: Relay URL
+      pending: Waiting for relay's approval
+      save_and_enable: Save and enable
+      setup: Setup a relay connection
+      status: Status
+      title: Relays
+    report_notes:
+      created_msg: Report note successfully created!
+      destroyed_msg: Report note successfully deleted!
+    reports:
+      account:
+        note: note
+        report: report
+      action_taken_by: Action taken by
+      are_you_sure: Are you sure?
+      assign_to_self: Assign to me
+      assigned: Assigned moderator
+      comment:
+        none: None
+      created_at: Reported
+      mark_as_resolved: Mark as resolved
+      mark_as_unresolved: Mark as unresolved
+      notes:
+        create: Add note
+        create_and_resolve: Resolve with note
+        create_and_unresolve: Reopen with note
+        delete: Delete
+        placeholder: Describe what actions have been taken, or any other related updates...
+      reopen: Reopen report
+      report: 'Report #%{id}'
+      reported_account: Reported account
+      reported_by: Reported by
+      resolved: Resolved
+      resolved_msg: Report successfully resolved!
+      status: Status
+      title: Reports
+      unassign: Unassign
+      unresolved: Unresolved
+      updated_at: Updated
+    settings:
+      activity_api_enabled:
+        desc_html: Counts of locally posted statuses, active users, and new registrations in weekly buckets
+        title: Publish aggregate statistics about user activity
+      bootstrap_timeline_accounts:
+        desc_html: Separate multiple usernames by comma. Only local and unlocked accounts will work. Default when empty is all local admins.
+        title: Default follows for new users
+      contact_information:
+        email: Business e-mail
+        username: Contact username
+      custom_css:
+        desc_html: Modify the look with CSS loaded on every page
+        title: Custom CSS
+      hero:
+        desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to server thumbnail
+        title: Hero image
+      mascot:
+        desc_html: Displayed on multiple pages. At least 293×205px recommended. When not set, falls back to default mascot
+        title: Mascot image
+      peers_api_enabled:
+        desc_html: Domain names this server has encountered in the fediverse
+        title: Publish list of discovered servers
+      preview_sensitive_media:
+        desc_html: Link previews on other websites will display a thumbnail even if the media is marked as sensitive
+        title: Show sensitive media in OpenGraph previews
+      profile_directory:
+        desc_html: Allow users to be discoverable
+        title: Enable profile directory
+      registrations:
+        closed_message:
+          desc_html: Displayed on frontpage when registrations are closed. You can use HTML tags
+          title: Closed registration message
+        deletion:
+          desc_html: Allow anyone to delete their account
+          title: Open account deletion
+        min_invite_role:
+          disabled: No one
+          title: Allow invitations by
+      registrations_mode:
+        modes:
+          approved: Approval required for sign up
+          none: Nobody can sign up
+          open: Anyone can sign up
+        title: Registrations mode
+      show_known_fediverse_at_about_page:
+        desc_html: When toggled, it will show toots from all the known fediverse on preview. Otherwise it will only show local toots.
+        title: Show known fediverse on timeline preview
+      show_staff_badge:
+        desc_html: Show a staff badge on a user page
+        title: Show staff badge
+      site_description:
+        desc_html: Introductory paragraph on the frontpage. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <code>&lt;a&gt;</code> and <code>&lt;em&gt;</code>.
+        title: Server description
+      site_description_extended:
+        desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML tags
+        title: Custom extended information
+      site_short_description:
+        desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. If empty, defaults to server description.
+        title: Short server description
+      site_terms:
+        desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML tags
+        title: Custom terms of service
+      site_title: Server name
+      thumbnail:
+        desc_html: Used for previews via OpenGraph and API. 1200x630px recommended
+        title: Server thumbnail
+      timeline_preview:
+        desc_html: Display public timeline on landing page
+        title: Timeline preview
+      title: Site settings
+    statuses:
+      back_to_account: Back to account page
+      batch:
+        delete: Delete
+        nsfw_off: Mark as not sensitive
+        nsfw_on: Mark as sensitive
+      failed_to_execute: Failed to execute
+      media:
+        title: Media
+      no_media: No media
+      no_status_selected: No statuses were changed as none were selected
+      title: Account statuses
+      with_media: With media
+    subscriptions:
+      callback_url: Callback URL
+      confirmed: Confirmed
+      expires_in: Expires in
+      last_delivery: Last delivery
+      title: WebSub
+      topic: Topic
+    tags:
+      accounts: Accounts
+      hidden: Hidden
+      hide: Hide from directory
+      name: Hashtag
+      title: Hashtags
+      unhide: Show in directory
+      visible: Visible
+    title: Administration
+    warning_presets:
+      add_new: Add new
+      delete: Delete
+      edit: Edit
+      edit_preset: Edit warning preset
+      title: Manage warning presets
+  admin_mailer:
+    new_pending_account:
+      body: The details of the new account are below. You can approve or reject this application.
+      subject: New account up for review on %{instance} (%{username})
+    new_report:
+      body: "%{reporter} has reported %{target}"
+      body_remote: Someone from %{domain} has reported %{target}
+      subject: New report for %{instance} (#%{id})
+  application_mailer:
+    notification_preferences: Change e-mail preferences
+    salutation: "%{name},"
+    settings: 'Change e-mail preferences: %{link}'
+    view: 'View:'
+    view_profile: View Profile
+    view_status: View status
+  applications:
+    created: Application successfully created
+    destroyed: Application successfully deleted
+    invalid_url: The provided URL is invalid
+    regenerate_token: Regenerate access token
+    token_regenerated: Access token successfully regenerated
+    warning: Be very careful with this data. Never share it with anyone!
+    your_token: Your access token
+  auth:
+    agreement_html: By clicking "Sign up" below you agree to follow <a href="%{rules_path}">the rules of the server</a> and <a href="%{terms_path}">our terms of service</a>.
+    apply_for_account: Request an invite
+    change_password: Password
+    checkbox_agreement_html: I agree to the <a href="%{rules_path}" target="_blank">server rules</a> and <a href="%{terms_path}" target="_blank">terms of service</a>
+    confirm_email: Confirm email
+    delete_account: Delete account
+    delete_account_html: If you wish to delete your account, you can <a href="%{path}">proceed here</a>. You will be asked for confirmation.
+    didnt_get_confirmation: Didn't receive confirmation instructions?
+    forgot_password: Forgot your password?
+    invalid_reset_password_token: Password reset token is invalid or expired. Please request a new one.
+    login: Log in
+    logout: Logout
+    migrate_account: Move to a different account
+    migrate_account_html: If you wish to redirect this account to a different one, you can <a href="%{path}">configure it here</a>.
+    or_log_in_with: Or log in with
+    providers:
+      cas: CAS
+      saml: SAML
+    register: Sign up
+    registration_closed: "%{instance} is not accepting new members"
+    resend_confirmation: Resend confirmation instructions
+    reset_password: Reset password
+    security: Security
+    set_new_password: Set new password
+    trouble_logging_in: Trouble logging in?
+  authorize_follow:
+    already_following: You are already following this account
+    error: Unfortunately, there was an error looking up the remote account
+    follow: Follow
+    follow_request: 'You have sent a follow request to:'
+    following: 'Success! You are now following:'
+    post_follow:
+      close: Or, you can just close this window.
+      return: Show the user's profile
+      web: Go to web
+    title: Follow %{acct}
+  datetime:
+    distance_in_words:
+      about_x_hours: "%{count}h"
+      about_x_months: "%{count}mo"
+      about_x_years: "%{count}y"
+      almost_x_years: "%{count}y"
+      half_a_minute: Just now
+      less_than_x_minutes: "%{count}m"
+      less_than_x_seconds: Just now
+      over_x_years: "%{count}y"
+      x_days: "%{count}d"
+      x_minutes: "%{count}m"
+      x_months: "%{count}mo"
+      x_seconds: "%{count}s"
+  deletes:
+    bad_password_msg: Nice try, hackers! Incorrect password
+    confirm_password: Enter your current password to verify your identity
+    description_html: This will <strong>permanently, irreversibly</strong> remove content from your account and deactivate it. Your username will remain reserved to prevent future impersonations.
+    proceed: Delete account
+    success_msg: Your account was successfully deleted
+    warning_html: Only deletion of content from this particular server is guaranteed. Content that has been widely shared is likely to leave traces. Offline servers and servers that have unsubscribed from your updates will not update their databases.
+    warning_title: Disseminated content availability
+  directories:
+    directory: Profile directory
+    enabled: You are currently listed in the directory.
+    enabled_but_waiting: You have opted-in to be listed in the directory, but you do not have the minimum number of followers (%{min_followers}) to be listed yet.
+    explanation: Discover users based on their interests
+    explore_mastodon: Explore %{title}
+    how_to_enable: You are not currently opted-in to the directory. You can opt-in below. Use hashtags in your bio text to be listed under specific hashtags!
+    people:
+      one: "%{count} person"
+      other: "%{count} people"
+  errors:
+    '403': You don't have permission to view this page.
+    '404': The page you are looking for isn't here.
+    '410': The page you were looking for doesn't exist here anymore.
+    '422':
+      content: Security verification failed. Are you blocking cookies?
+      title: Security verification failed
+    '429': Throttled
+    '500':
+      content: We're sorry, but something went wrong on our end.
+      title: This page is not correct
+    noscript_html: To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the <a href="%{apps_path}">native apps</a> for Mastodon for your platform.
+  exports:
+    archive_takeout:
+      date: Date
+      download: Download your archive
+      hint_html: You can request an archive of your <strong>toots and uploaded media</strong>. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days.
+      in_progress: Compiling your archive...
+      request: Request your archive
+      size: Size
+    blocks: You block
+    csv: CSV
+    domain_blocks: Domain blocks
+    follows: You follow
+    lists: Lists
+    mutes: You mute
+    storage: Media storage
+  featured_tags:
+    add_new: Add new
+    errors:
+      limit: You have already featured the maximum amount of hashtags
+  filters:
+    contexts:
+      home: Home timeline
+      notifications: Notifications
+      public: Public timelines
+      thread: Conversations
+    edit:
+      title: Edit filter
+    errors:
+      invalid_context: None or invalid context supplied
+      invalid_irreversible: Irreversible filtering only works with home or notifications context
+    index:
+      delete: Delete
+      title: Filters
+    new:
+      title: Add new filter
+  footer:
+    developers: Developers
+    more: More…
+    resources: Resources
+  generic:
+    all: All
+    changes_saved_msg: Changes successfully saved!
+    copy: Copy
+    save_changes: Save changes
+    validation_errors:
+      one: Something isn't quite right yet! Please review the error below
+      other: Something isn't quite right yet! Please review %{count} errors below
+  identity_proofs:
+    active: Active
+    authorize: Yes, authorize
+    authorize_connection_prompt: Authorize this cryptographic connection?
+    errors:
+      failed: The cryptographic connection failed. Please try again from %{provider}.
+      keybase:
+        invalid_token: Keybase tokens are hashes of signatures and must be 66 hex characters
+        verification_failed: Keybase does not recognize this token as a signature of Keybase user %{kb_username}. Please retry from Keybase.
+    explanation_html: Here you can cryptographically connect your other identities, such as a Keybase profile. This lets other people send you encrypted messages and trust content you send them.
+    i_am_html: I am %{username} on %{service}.
+    identity: Identity
+    inactive: Inactive
+    status: Verification status
+    view_proof: View proof
+  imports:
+    modes:
+      merge: Merge
+      merge_long: Keep existing records and add new ones
+      overwrite: Overwrite
+      overwrite_long: Replace current records with the new ones
+    preface: You can import data that you have exported from another server, such as a list of the people you are following or blocking.
+    success: Your data was successfully uploaded and will now be processed in due time
+    types:
+      blocking: Blocking list
+      domain_blocking: Domain blocking list
+      following: Following list
+      muting: Muting list
+    upload: Upload
+  in_memoriam_html: In Memoriam.
+  invites:
+    delete: Deactivate
+    expired: Expired
+    expires_in:
+      '1800': 30 minutes
+      '21600': 6 hours
+      '3600': 1 hour
+      '43200': 12 hours
+      '604800': 1 week
+      '86400': 1 day
+    expires_in_prompt: Never
+    generate: Generate
+    invited_by: 'You were invited by:'
+    max_uses:
+      one: 1 use
+      other: "%{count} uses"
+    max_uses_prompt: No limit
+    prompt: Generate and share links with others to grant access to this server
+    table:
+      expires_at: Expires
+      uses: Uses
+    title: Invite people
+  lists:
+    errors:
+      limit: You have reached the maximum amount of lists
+  media_attachments:
+    validations:
+      images_and_video: Cannot attach a video to a status that already contains images
+      too_many: Cannot attach more than 4 files
+  migrations:
+    acct: username@domain of the new account
+    currently_redirecting: 'Your profile is set to redirect to:'
+    proceed: Save
+    updated_msg: Your account migration setting successfully updated!
+  moderation:
+    title: Moderation
+  notification_mailer:
+    digest:
+      action: View all notifications
+      body: Here is a brief summary of the messages you missed since your last visit on %{since}
+      mention: "%{name} mentioned you in:"
+      new_followers_summary:
+        one: Also, you have acquired one new follower while being away! Yay!
+        other: Also, you have acquired %{count} new followers while being away! Amazing!
+      subject:
+        one: "1 new notification since your last visit \U0001F418"
+        other: "%{count} new notifications since your last visit \U0001F418"
+      title: In your absence...
+    favourite:
+      body: 'Your status was favourited by %{name}:'
+      subject: "%{name} favourited your status"
+      title: New favourite
+    follow:
+      body: "%{name} is now following you!"
+      subject: "%{name} is now following you"
+      title: New follower
+    follow_request:
+      action: Manage follow requests
+      body: "%{name} has requested to follow you"
+      subject: 'Pending follower: %{name}'
+      title: New follow request
+    mention:
+      action: Reply
+      body: 'You were mentioned by %{name} in:'
+      subject: You were mentioned by %{name}
+      title: New mention
+    reblog:
+      body: 'Your status was boosted by %{name}:'
+      subject: "%{name} boosted your status"
+      title: New boost
+  number:
+    human:
+      decimal_units:
+        format: "%n%u"
+        units:
+          billion: B
+          million: M
+          quadrillion: Q
+          thousand: K
+          trillion: T
+  pagination:
+    newer: Newer
+    next: Next
+    older: Older
+    prev: Prev
+    truncate: "&hellip;"
+  polls:
+    errors:
+      already_voted: You have already voted on this poll
+      duplicate_options: contain duplicate items
+      duration_too_long: is too far into the future
+      duration_too_short: is too soon
+      expired: The poll has already ended
+      over_character_limit: cannot be longer than %{max} characters each
+      too_few_options: must have more than one item
+      too_many_options: can't contain more than %{max} items
+  preferences:
+    languages: Languages
+    other: Other
+    publishing: Publishing
+    web: Web
+  relationships:
+    activity: Account activity
+    dormant: Dormant
+    moved: Moved
+    mutual: Mutual
+    primary: Primary
+    relationship: Relationship
+    remove_selected_domains: Remove all followers from the selected domains
+    remove_selected_followers: Remove selected followers
+    remove_selected_follows: Unfollow selected users
+    status: Account status
+  remote_follow:
+    acct: Enter your username@domain you want to act from
+    missing_resource: Could not find the required redirect URL for your account
+    no_account_html: Don't have an account? You can <a href='%{sign_up_path}' target='_blank'>sign up here</a>
+    proceed: Proceed to follow
+    prompt: 'You are going to follow:'
+    reason_html: "<strong>Why is this step necessary?</strong> <code>%{instance}</code> might not be the server where you are registered, so we need to redirect you to your home server first."
+  remote_interaction:
+    favourite:
+      proceed: Proceed to favourite
+      prompt: 'You want to favourite this toot:'
+    reblog:
+      proceed: Proceed to boost
+      prompt: 'You want to boost this toot:'
+    reply:
+      proceed: Proceed to reply
+      prompt: 'You want to reply to this toot:'
+  remote_unfollow:
+    error: Error
+    title: Title
+    unfollowed: Unfollowed
+  scheduled_statuses:
+    over_daily_limit: You have exceeded the limit of %{limit} scheduled toots for that day
+    over_total_limit: You have exceeded the limit of %{limit} scheduled toots
+    too_soon: The scheduled date must be in the future
+  sessions:
+    activity: Last activity
+    browser: Browser
+    browsers:
+      alipay: Alipay
+      blackberry: Blackberry
+      chrome: Chrome
+      edge: Microsoft Edge
+      electron: Electron
+      firefox: Firefox
+      generic: Unknown browser
+      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: UCBrowser
+      weibo: Weibo
+    current_session: Current session
+    description: "%{browser} on %{platform}"
+    explanation: These are the web browsers currently logged in to your Mastodon account.
+    ip: IP
+    platforms:
+      adobe_air: Adobe Air
+      android: Android
+      blackberry: Blackberry
+      chrome_os: ChromeOS
+      firefox_os: Firefox OS
+      ios: iOS
+      linux: Linux
+      mac: Mac
+      other: unknown platform
+      windows: Windows
+      windows_mobile: Windows Mobile
+      windows_phone: Windows Phone
+    revoke: Revoke
+    revoke_success: Session successfully revoked
+    title: Sessions
+  settings:
+    authorized_apps: Authorized apps
+    back: Back to Mastodon
+    delete: Account deletion
+    development: Development
+    edit_profile: Edit profile
+    export: Data export
+    featured_tags: Featured hashtags
+    identity_proofs: Identity proofs
+    import: Import
+    migrate: Account migration
+    notifications: Notifications
+    preferences: Preferences
+    relationships: Follows and followers
+    settings: Settings
+    two_factor_authentication: Two-factor Auth
+    your_apps: Your applications
+  statuses:
+    attached:
+      description: 'Attached: %{attached}'
+      image:
+        one: "%{count} image"
+        other: "%{count} images"
+      video:
+        one: "%{count} video"
+        other: "%{count} videos"
+    boosted_from_html: Boosted from %{acct_link}
+    content_warning: 'Content warning: %{warning}'
+    disallowed_hashtags:
+      one: 'contained a disallowed hashtag: %{tags}'
+      other: 'contained the disallowed hashtags: %{tags}'
+    language_detection: Automatically detect language
+    open_in_web: Open in web
+    over_character_limit: character limit of %{max} exceeded
+    pin_errors:
+      limit: You have already pinned the maximum number of toots
+      ownership: Someone else's toot cannot be pinned
+      private: Non-public toot cannot be pinned
+      reblog: A boost cannot be pinned
+    poll:
+      total_votes:
+        one: "%{count} vote"
+        other: "%{count} votes"
+      vote: Vote
+    show_more: Show more
+    sign_in_to_participate: Sign in to participate in the conversation
+    title: '%{name}: "%{quote}"'
+    visibilities:
+      private: Followers-only
+      private_long: Only show to followers
+      public: Public
+      public_long: Everyone can see
+      unlisted: Unlisted
+      unlisted_long: Everyone can see, but not listed on public timelines
+  stream_entries:
+    pinned: Pinned toot
+    reblogged: boosted
+    sensitive_content: Sensitive content
+  terms:
+    body_html: |
+      <h2>Privacy Policy</h2>
+      <h3 id="collect">What information do we collect?</h3>
+
+      <ul>
+        <li><em>Basic account information</em>: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.</li>
+        <li><em>Posts, following and other public information</em>: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.</li>
+        <li><em>Direct and followers-only posts</em>: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. <em>Please keep in mind that the operators of the server and any receiving server may view such messages</em>, and that recipients may screenshot, copy or otherwise re-share them. <em>Do not share any dangerous information over Mastodon.</em></li>
+        <li><em>IPs and other metadata</em>: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.</li>
+      </ul>
+
+      <hr class="spacer" />
+
+      <h3 id="use">What do we use your information for?</h3>
+
+      <p>Any of the information we collect from you may be used in the following ways:</p>
+
+      <ul>
+        <li>To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.</li>
+        <li>To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.</li>
+        <li>The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.</li>
+      </ul>
+
+      <hr class="spacer" />
+
+      <h3 id="protect">How do we protect your information?</h3>
+
+      <p>We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.</p>
+
+      <hr class="spacer" />
+
+      <h3 id="data-retention">What is our data retention policy?</h3>
+
+      <p>We will make a good faith effort to:</p>
+
+      <ul>
+        <li>Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.</li>
+        <li>Retain the IP addresses associated with registered users no more than 12 months.</li>
+      </ul>
+
+      <p>You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.</p>
+
+      <p>You may irreversibly delete your account at any time.</p>
+
+      <hr class="spacer"/>
+
+      <h3 id="cookies">Do we use cookies?</h3>
+
+      <p>Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.</p>
+
+      <p>We use cookies to understand and save your preferences for future visits.</p>
+
+      <hr class="spacer" />
+
+      <h3 id="disclose">Do we disclose any information to outside parties?</h3>
+
+      <p>We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.</p>
+
+      <p>Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.</p>
+
+      <p>When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.</p>
+
+      <hr class="spacer" />
+
+      <h3 id="children">Site usage by children</h3>
+
+      <p>If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (<a href="https://en.wikipedia.org/wiki/General_Data_Protection_Regulation">General Data Protection Regulation</a>) do not use this site.</p>
+
+      <p>If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (<a href="https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Children's Online Privacy Protection Act</a>) do not use this site.</p>
+
+      <p>Law requirements can be different if this server is in another jurisdiction.</p>
+
+      <hr class="spacer" />
+
+      <h3 id="changes">Changes to our Privacy Policy</h3>
+
+      <p>If we decide to change our privacy policy, we will post those changes on this page.</p>
+
+      <p>This document is CC-BY-SA. It was last updated March 7, 2018.</p>
+
+      <p>Originally adapted from the <a href="https://github.com/discourse/discourse">Discourse privacy policy</a>.</p>
+    title: "%{instance} Terms of Service and Privacy Policy"
+  themes:
+    contrast: Mastodon (High contrast)
+    default: Mastodon (Dark)
+    mastodon-light: Mastodon (Light)
+  time:
+    formats:
+      default: "%b %d, %Y, %H:%M"
+      month: "%b %Y"
+  two_factor_authentication:
+    code_hint: Enter the code generated by your authenticator app to confirm
+    description_html: If you enable <strong>two-factor authentication</strong>, logging in will require you to be in possession of your phone, which will generate tokens for you to enter.
+    disable: Disable
+    enable: Enable
+    enabled: Two-factor authentication is enabled
+    enabled_success: Two-factor authentication successfully enabled
+    generate_recovery_codes: Generate recovery codes
+    instructions_html: "<strong>Scan this QR code into Google Authenticator or a similiar TOTP app on your phone</strong>. From now on, that app will generate tokens that you will have to enter when logging in."
+    lost_recovery_codes: Recovery codes allow you to regain access to your account if you lose your phone. If you've lost your recovery codes, you can regenerate them here. Your old recovery codes will be invalidated.
+    manual_instructions: 'If you can''t scan the QR code and need to enter it manually, here is the plain-text secret:'
+    recovery_codes: Backup recovery codes
+    recovery_codes_regenerated: Recovery codes successfully regenerated
+    recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. <strong>Keep the recovery codes safe</strong>. For example, you may print them and store them with other important documents.
+    setup: Set up
+    wrong_code: The entered code was invalid! Are server time and device time correct?
+  user_mailer:
+    backup_ready:
+      explanation: You requested a full backup of your Mastodon account. It's now ready for download!
+      subject: Your archive is ready for download
+      title: Archive takeout
+    warning:
+      explanation:
+        disable: While your account is frozen, your account data remains intact, but you cannot perform any actions until it is unlocked.
+        silence: While your account is limited, only people who are already following you will see your toots on this server, and you may be excluded from various public listings. However, others may still manually follow you.
+        suspend: Your account has been suspended, and all of your toots and your uploaded media files have been irreversibly removed from this server, and servers where you had followers.
+      review_server_policies: Review server policies
+      subject:
+        disable: Your account %{acct} has been frozen
+        none: Warning for %{acct}
+        silence: Your account %{acct} has been limited
+        suspend: Your account %{acct} has been suspended
+      title:
+        disable: Account frozen
+        none: Warning
+        silence: Account limited
+        suspend: Account suspended
+    welcome:
+      edit_profile_action: Setup profile
+      edit_profile_step: You can customize your profile by uploading an avatar, header, changing your display name and more. If you’d like to review new followers before they’re allowed to follow you, you can lock your account.
+      explanation: Here are some tips to get you started
+      final_action: Start posting
+      final_step: 'Start posting! Even without followers your public messages may be seen by others, for example on the local timeline and in hashtags. You may want to introduce yourself on the #introductions hashtag.'
+      full_handle: Your full handle
+      full_handle_hint: This is what you would tell your friends so they can message or follow you from another server.
+      review_preferences_action: Change preferences
+      review_preferences_step: Make sure to set your preferences, such as which emails you'd like to receive, or what privacy level you’d like your posts to default to. If you don’t have motion sickness, you could choose to enable GIF autoplay.
+      subject: Welcome to Mastodon
+      tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete.
+      tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines.
+      tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours!
+      tip_mobile_webapp: If your mobile browser offers you to add Mastodon to your homescreen, you can receive push notifications. It acts like a native app in many ways!
+      tips: Tips
+      title: Welcome aboard, %{name}!
+  users:
+    follow_limit_reached: You cannot follow more than %{limit} people
+    invalid_email: The e-mail address is invalid
+    invalid_otp_token: Invalid two-factor code
+    otp_lost_help_html: If you lost access to both, you may get in touch with %{email}
+    seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available.
+    signed_in_as: 'Signed in as:'
+  verification:
+    explanation_html: 'You can <strong>verify yourself as the owner of the links in your profile metadata</strong>. For that, the linked website must contain a link back to your Mastodon profile. The link back <strong>must</strong> have a <code>rel="me"</code> attribute. The text content of the link does not matter. Here is an example:'
+    verification: Verification
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index bad9e6487..4621b93fc 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -4,17 +4,23 @@ eo:
     about_hashtag_html: Ĉi tiuj estas la publikaj mesaĝoj markitaj per <strong>#%{hashtag}</strong>. Vi povas interagi kun ili se vi havas konton ie ajn en la fediverse.
     about_mastodon_html: Mastodon estas socia reto bazita sur malfermitaj retaj protokoloj kaj sur libera malfermitkoda programo. Ĝi estas sencentra kiel retmesaĝoj.
     about_this: Pri
+    active_count_after: aktiva
     administered_by: 'Administrata de:'
     api: API
     apps: Poŝtelefonaj aplikaĵoj
+    apps_platforms: Uzu Mastodon ĉe iOS, Android kaj aliajn platformojn
+    browse_directory: Esplori profilujo kaj filtri per interesoj
     contact: Kontakti
     contact_missing: Ne elektita
     contact_unavailable: Ne disponebla
+    discover_users: Malkovri uzantojn
     documentation: Dokumentado
     extended_description_html: |
       <h3>Bona loko por reguloj</h3>
       <p>La detala priskribo ne estis elektita.</p>
+    federation_hint_html: Per konto ĉe %{instance}, vi povos sekvi homojn ĉe iu ajn Mastodon nodo kaj preter.
     generic_description: "%{domain} estas unu servilo en la reto"
+    get_apps: Provu telefonan aplikaĵon
     hosted_on: "%{domain} estas nodo de Mastodon"
     learn_more: Lerni pli
     privacy_policy: Privateca politiko
diff --git a/config/locales/es.yml b/config/locales/es.yml
index bb06bd5cf..579481b5a 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -4,25 +4,36 @@ es:
     about_hashtag_html: Estos son toots públicos etiquetados con <strong>#%{hashtag}</strong>. Puedes interactuar con ellos si tienes una cuenta en cualquier parte del fediverso.
     about_mastodon_html: Mastodon es un servidor de red social <em>libre y de código abierto</em>. Una alternativa <em>descentralizada</em> a plataformas comerciales, que evita el riesgo de que una única compañía monopolice tu comunicación. Cualquiera puede ejecutar Mastodon y participar sin problemas en la <em>red social</em>.
     about_this: Acerca de esta instancia
+    active_count_after: activo
+    active_footnote: Usuarios Activos Mensuales (UAM)
     administered_by: 'Administrado por:'
     api: API
     apps: Aplicaciones móviles
+    apps_platforms: Utiliza Mastodon desde iOS, Android y otras plataformas
+    browse_directory: Busca perfiles de acuerdo a tus aficiones
+    browse_public_posts: Navega por la cronología pública en Mastodon
     contact: Contacto
     contact_missing: No especificado
     contact_unavailable: N/A
+    discover_users: Descubra a nuevas personas
     documentation: Documentación
     extended_description_html: |
       <h3>Un buen lugar para las reglas</h3>
       <p>La descripción extendida no se ha colocado aún.</p>
+    federation_hint_html: Con una cuenta en %{instance}, podrás rastrear personas en cualquier instancia de Mastodon y más allá.
     generic_description: "%{domain} es un servidor en la red"
+    get_apps: Pruebe una aplicación móvil
     hosted_on: Mastodon hosteado en %{domain}
     learn_more: Aprende más
     privacy_policy: Política de privacidad
+    see_whats_happening: Vea lo que sucede
+    server_stats: 'Estadísticas de la instancia:'
     source_code: Código fuente
     status_count_after:
       one: estado
       other: estados
     status_count_before: Qué han escrito
+    tagline: Sigue a tus amigos y descubre a otros
     terms: Condiciones de servicio
     user_count_after:
       one: usuario
@@ -60,6 +71,7 @@ es:
     unfollow: Dejar de seguir
   admin:
     account_actions:
+      action: Realizar una acción
       title: Moderar %{acct}
     account_moderation_notes:
       create: Crear
@@ -67,6 +79,7 @@ es:
       delete: Borrar
       destroyed_msg: "¡Nota de moderación destruida con éxito!"
     accounts:
+      approve: Aprobar
       are_you_sure: "¿Estás seguro?"
       avatar: Avatar
       by_domain: Dominio
@@ -88,8 +101,8 @@ es:
       display_name: Nombre
       domain: Dominio
       edit: Editar
-      email: E-mail
-      email_status: E-mail Status
+      email: Email
+      email_status: Email status
       enable: Habilitar
       enabled: Habilitada
       feed_url: URL de notificaciones
@@ -100,6 +113,7 @@ es:
       inbox_url: URL de la bandeja de entrada
       invited_by: Invitado por
       ip: IP
+      joined: Registrado desde
       location:
         all: Todos
         local: Local
@@ -111,6 +125,7 @@ es:
       moderation:
         active: Activo
         all: Todos
+        pending: Pendiente
         silenced: Silenciados
         suspended: Suspendidos
         title: Moderación
@@ -120,14 +135,17 @@ es:
       no_limits_imposed: Sin límites impuestos
       not_subscribed: No se está suscrito
       outbox_url: URL de bandeja de salida
+      pending: A la espera de la moderación
       perform_full_suspension: Suspender
       profile_url: URL del perfil
       promote: Promocionar
       protocol: Protocolo
       public: Público
       push_subscription_expires: Expiración de la suscripción PuSH
-      redownload: Refrescar avatar
+      redownload: Refrescar el perfil
+      reject: Rechazar
       remove_avatar: Eliminar el avatar
+      remove_header: Eliminar la cabecera
       resend_confirmation:
         already_confirmed: Este usuario ya está confirmado
         send: Reenviar el correo electrónico de confirmación
@@ -143,27 +161,29 @@ es:
         user: Usuario
       salmon_url: URL de salmón
       search: Buscar
-      shared_inbox_url: URL de bandeja compartida
+      shared_inbox_url: URL de la bandeja de entrada compartida
       show:
-        created_reports: Reportes hechos por esta cuenta
-        targeted_reports: Reportes hechos sobre esta cuenta
+        created_reports: Reportes realizados
+        targeted_reports: Reportado por otros
       silence: Silenciar
       silenced: Silenciado
       statuses: Estados
       subscribe: Suscribir
       suspended: Susependido
       title: Cuentas
-      unconfirmed_email: Correo electrónico sin confirmar
+      unconfirmed_email: Correo electrónico no confirmado
       undo_silenced: Des-silenciar
       undo_suspension: Des-suspender
       unsubscribe: Desuscribir
       username: Nombre de usuario
+      warn: Aviso de advertencia
       web: Web
     action_logs:
       actions:
         assigned_to_self_report: "%{name} se ha asignado la denuncia %{target} a sí mismo"
         change_email_user: "%{name} ha cambiado la dirección de correo del usuario %{target}"
         confirm_user: "%{name} confirmó la dirección de correo del usuario %{target}"
+        create_account_warning: "%{name} envió una atención a %{target}"
         create_custom_emoji: "%{name} subió un nuevo emoji %{target}"
         create_domain_block: "%{name} bloqueó el dominio %{target}"
         create_email_domain_block: "%{name} puso en lista negra el dominio de correos %{target}"
@@ -222,6 +242,7 @@ es:
       config: Configuración
       feature_deletions: Borrados de cuenta
       feature_invites: Enlaces de invitación
+      feature_profile_directory: Directorio de perfiles
       feature_registrations: Registros
       feature_relay: Relés de federación
       features: Características
@@ -239,7 +260,7 @@ es:
       week_users_active: activo esta semana
       week_users_new: usuarios esta semana
     domain_blocks:
-      add_new: Añadir nuevo
+      add_new: Añadir un nuevo bloque de dominio
       created_msg: El bloque de dominio está siendo procesado
       destroyed_msg: El bloque de dominio se deshizo
       domain: Dominio
@@ -256,6 +277,11 @@ es:
       reject_media_hint: Remueve localmente archivos multimedia almacenados para descargar cualquiera en el futuro. Irrelevante para suspensiones
       reject_reports: Rechazar informes
       reject_reports_hint: Ignore todos los reportes de este dominio. Irrelevante para suspensiones
+      rejecting_media: rechazo de archivos multimedia
+      rejecting_reports: rechazar un informe
+      severity:
+        silence: silenciada
+        suspend: suspendido
       show:
         affected_accounts:
           one: Una cuenta en la base de datos afectada
@@ -265,7 +291,7 @@ es:
           suspend: Des-suspender todas las cuentas existentes de este dominio
         title: Deshacer bloque de dominio para %{domain}
         undo: Deshacer
-      undo: Deshacer
+      undo: Deshacer el bloque de dominio
     email_domain_blocks:
       add_new: Añadir nuevo
       created_msg: Dominio de correo añadido a la lista negra con éxito
@@ -276,8 +302,25 @@ es:
         create: Añadir dominio
         title: Nueva entrada en la lista negra de correo
       title: Lista negra de correo
+    followers:
+      back_to_account: Volver a la cuenta
+      title: Suscriptores de %{acct}
     instances:
-      title: Instancias conocidas
+      by_domain: Dominio
+      delivery_available: Entrega disponible
+      known_accounts:
+        one: "%{count} cuenta conocida"
+        other: "%{count} cuentas conocidas"
+      moderation:
+        all: Todo
+        limited: Limitado
+        title: Moderación
+      title: Federación
+      total_blocked_by_us: Bloqueado por nosotros
+      total_followed_by_them: Seguido por ellos
+      total_followed_by_us: Seguido por nosotros
+      total_reported: Alertas sobre ellos
+      total_storage: Archivos adjuntos
     invites:
       deactivate_all: Desactivar todos
       filter:
@@ -354,11 +397,14 @@ es:
         desc_html: Mostrado en múltiples páginas. Se recomienda un tamaño mínimo de 293x205px. Cuando no se especifica, se muestra la mascota por defecto
         title: Imagen de la mascota
       peers_api_enabled:
-        desc_html: Nombres de dominio que esta instancia ha encontrado en el fediverso
-        title: Publicar lista de instancias descubiertas
+        desc_html: Nombres de los dominios que esta instancia ha descubierto en el fediverso
+        title: Publicar la lista de instancias descubiertas
       preview_sensitive_media:
         desc_html: Los enlaces de vistas previas en otras web mostrarán una miniatura incluso si el medio está marcado como contenido sensible
         title: Mostrar contenido sensible en previews de OpenGraph
+      profile_directory:
+        desc_html: Permitir que los usuarios sean descubiertos
+        title: Activar el directorio de los perfiles
       registrations:
         closed_message:
           desc_html: Se muestra en la portada cuando los registros están cerrados. Puedes usar tags HTML
@@ -369,6 +415,12 @@ es:
         min_invite_role:
           disabled: Nadie
           title: Permitir invitaciones de
+      registrations_mode:
+        modes:
+          approved: Se requiere aprobación para el registro
+          none: Nadie puede registrarse
+          open: Cualquiera puede registrarse
+        title: Métodos de registro
       show_known_fediverse_at_about_page:
         desc_html: Cuando esté activado, se mostrarán toots de todo el fediverso conocido en la vista previa. En otro caso, se mostrarán solamente toots locales.
         title: Mostrar fediverso conocido en la vista previa de la historia
@@ -377,20 +429,20 @@ es:
         title: Mostrar parche de staff
       site_description:
         desc_html: Párrafo introductorio en la portada y en meta tags. Puedes usar tags HTML, en particular <code>&lt;a&gt;</code> y <code>&lt;em&gt;</code>.
-        title: Descripción de instancia
+        title: Descripción de la instancia
       site_description_extended:
-        desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar tags HTML
+        desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar etiquetas HTML
         title: Información extendida personalizada
       site_short_description:
-        desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodon y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia.
-        title: Descripción corta de la instancia
+        desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describa lo que hace que esta instancia de Mastodon sea específica en un solo párrafo. Si se deja en blanco, la descripción de la instancia se mostrará por defecto.
+        title: Breve descripción de la instancia
       site_terms:
         desc_html: Puedes escribir tus propias políticas de privacidad, términos de servicio u otras legalidades. Puedes usar tags HTML
         title: Términos de servicio personalizados
-      site_title: Nombre de instancia
+      site_title: Nombre de la instancia
       thumbnail:
         desc_html: Se usa para muestras con OpenGraph y APIs. Se recomienda 1200x630px
-        title: Portada de instancia
+        title: Miniatura de la instancia
       timeline_preview:
         desc_html: Mostrar línea de tiempo pública en la portada
         title: Previsualización
@@ -415,8 +467,25 @@ es:
       last_delivery: Última entrega
       title: WebSub
       topic: Tópico
+    tags:
+      accounts: Comptes
+      hidden: Oculto
+      hide: Ocultar en el directorio
+      name: Etiqueta
+      title: Etiquetas
+      unhide: Mostrar en el directorio
+      visible: Visible
     title: Administración
+    warning_presets:
+      add_new: Añadir uno nuevo
+      delete: Borrar
+      edit: Editar
+      edit_preset: Editar la preselección de atención
+      title: Gestionar los presets de atención
   admin_mailer:
+    new_pending_account:
+      body: Los detalles de la nueva cuenta se detallan a continuación. Puede autorizar o rechazar esta solicitud.
+      subject: Nueva cuenta para revisión en %{instance} (%{username})
     new_report:
       body: "%{reporter} ha reportado a %{target}"
       body_remote: Alguien de %{domain} a reportado a %{target}
@@ -437,8 +506,10 @@ es:
     warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie!
     your_token: Tu token de acceso
   auth:
-    agreement_html: Al hacer click en "Registrarse" acepta seguir <a href="%{rules_path}">las reglas de la instancia</a> y <a href="%{terms_path}">nuestros términos de servicio</a>.
+    agreement_html: Al hacer click en "Registrarse" acepta seguir <a href="%{rules_path}">las reglas de la instancia</a> y <a href="%{terms_path}">nuestros términos de uso</a>.
+    apply_for_account: Solicitar una invitación
     change_password: Contraseña
+    checkbox_agreement_html: Acepto las <a href="%{rules_path}" target="_blank">reglas de la instancia</a> y <a href="%{terms_path}" target="_blank">las condiciones de uso</a>
     confirm_email: Confirmar email
     delete_account: Borrar cuenta
     delete_account_html: Si desea eliminar su cuenta, puede <a href="%{path}">proceder aquí</a>. Será pedido de una confirmación.
@@ -454,10 +525,12 @@ es:
       cas: CAS
       saml: SAML
     register: Registrarse
+    registration_closed: "%{instance} no admite nuevos miembros"
     resend_confirmation: Volver a enviar el correo de confirmación
     reset_password: Restablecer contraseña
     security: Cambiar contraseña
     set_new_password: Establecer nueva contraseña
+    trouble_logging_in: "¿Problemas de conexión?"
   authorize_follow:
     already_following: Ya estás siguiendo a esta cuenta
     error: Desafortunadamente, ha ocurrido un error buscando la cuenta remota
@@ -489,12 +562,22 @@ es:
     description_html: Esto removerá el contenido de tu cuenta y la desactivará <strong>permanente e irrevesiblemente</strong>. Tu nombre de usuario quedará reservado para prevenir futuros robos de identidad.
     proceed: Eliminar cuenta
     success_msg: Tu cuenta se eliminó con éxito
-    warning_html: Se garantiza únicamente la eliminación del contenido de esta instancia. El contenido que se haya compartido extensamente dejará sus huellas. Los servidores fuera de línea y los que se hayan desuscrito de tus actualizaciones ya no actualizarán sus bases de datos.
+    warning_html: Sólo se garantiza la eliminación del contenido de esta instancia. Es probable que el contenido que se ha compartido deje rastros. Las instancias fuera de línea, así como aquellas que ya no están suscritas a tus publicaciones, no actualizarán sus bases de datos.
     warning_title: Disponibilidad diseminada del contenido
+  directories:
+    directory: Directorio de perfiles
+    enabled: Actualmente se encuentra en el directorio.
+    enabled_but_waiting: Usted ha elegido ser incluido en el directorio, pero aún no tiene el número mínimo de seguidores (%{min_followers}} para ser incluido.
+    explanation: Descubrir a los usuarios en función de sus intereses
+    explore_mastodon: Explorar %{title}
+    how_to_enable: Aún no se encuentra en el directorio. Puede registrarse a continuación. ¡Utilice etiquetas en su texto biográfico para que aparezca en la lista de hashtags específicos!
+    people:
+      one: "%{count} persona"
+      other: "%{count} personas"
   errors:
     '403': No tienes permiso para acceder a esta página.
-    '404': La página que estabas buscando no existe.
-    '410': La página que estabas buscando no existe más.
+    '404': La página que está buscando no existe.
+    '410': La página que está buscando ya no existe.
     '422':
       content: Verificación de seguridad fallida. ¿Estás bloqueando algunas cookies?
       title: Verificación de seguridad fallida
@@ -507,15 +590,21 @@ es:
     archive_takeout:
       date: Fecha
       download: Descargar tu archivo
-      hint_html: Puedes solicitar un archivo de tus <strong>toots y materiales subidos</strong>. Los datos exportados estarán en formato ActivityPub, legibles por cualquier software compatible.
+      hint_html: Puede solicitar un archivo de sus <strong>pouets y medios subidos</strong>. Los datos exportados estarán en formato ActivityPub, legibles por cualquier software compatible. Puede solicitar un archivo cada 7 días.
       in_progress: Recopilando tu archivo...
       request: Solicitar tu archivo
       size: Tamaño
     blocks: Personas que has bloqueado
     csv: CSV
+    domain_blocks: Bloqueo de dominios
     follows: Personas que sigues
+    lists: Listas
     mutes: Tienes en silencio
     storage: Almacenamiento
+  featured_tags:
+    add_new: Añadir una nueva etiqueta
+    errors:
+      limit: Ya ha resaltado el número máximo de etiquetas
   filters:
     contexts:
       home: Timeline propio
@@ -537,17 +626,39 @@ es:
     more: Mas…
     resources: Recursos
   generic:
+    all: Todo
     changes_saved_msg: "¡Cambios guardados con éxito!"
     copy: Copiar
     save_changes: Guardar cambios
     validation_errors:
       one: "¡Algo no está bien! Por favor, revisa el error"
       other: "¡Algo no está bien! Por favor, revise %{count} errores más abajo"
+  identity_proofs:
+    active: Activo
+    authorize: Sí, autorizar
+    authorize_connection_prompt: Permitir esta conexión criptográfica?
+    errors:
+      failed: La conexión criptográfica falló. Por favor, inténtelo de nuevo desde %{provider}.
+      keybase:
+        invalid_token: Los tokens Keybase son hashes de firma y deben tener una longitud de 66 caracteres hexa
+        verification_failed: Keybase no reconoce este token como una firma de la base de claves de usuario %{kb_username}. Por favor, inténtelo de nuevo desde Keybase.
+    explanation_html: Aquí puede conectar criptográficamente sus otras identidades, como por ejemplo un perfil Keybase. Esto permite que otras personas te envíen mensajes cifrados y confíen en el contenido que tú les envías.
+    i_am_html: Estoy %{username} sobre %{service}.
+    identity: Identidad
+    inactive: Inactivo
+    status: Estado de la verificación
+    view_proof: Ver prueba
   imports:
-    preface: Puedes importar ciertos datos, como todas las personas que estás siguiendo o bloqueando en tu cuenta en esta instancia, desde archivos exportados de otra instancia.
+    modes:
+      merge: Fusionar
+      merge_long: Mantenga los registros existentes y añada otros nuevos
+      overwrite: Reescribir
+      overwrite_long: Sustituir los registros actuales por otros nuevos
+    preface: Puede importar algunos datos que haya exportado desde otra instancia, como una lista de personas a las que está siguiendo o bloqueando en su cuenta.
     success: Sus datos se han cargado correctamente y serán procesados en brevedad
     types:
       blocking: Lista de bloqueados
+      domain_blocking: Lista de instancias bloqueadas
       following: Lista de seguidos
       muting: Lista de silenciados
     upload: Cargar
@@ -569,7 +680,7 @@ es:
       one: 1 uso
       other: "%{count} usos"
     max_uses_prompt: Sin límite
-    prompt: Generar y compartir enlaces con otros para conceder acceso a este nodo
+    prompt: Generar y compartir enlaces con otros para proporcionar acceso a esta instancia
     table:
       expires_at: Expira
       uses: Usos
@@ -639,21 +750,57 @@ es:
     older: Más antiguo
     prev: Anterior
     truncate: "&hellip;"
+  polls:
+    errors:
+      already_voted: Usted ya ha votado sobre esta encuesta
+      duplicate_options: contiene duplicados
+      duration_too_long: está demasiado lejos en el futuro
+      duration_too_short: es demasiado pronto
+      expired: Esta encuesta ya ha sido completada
+      over_character_limit: no puede ser mayor que %{max} caracteres cada uno
+      too_few_options: debe tener más de una propuesta
+      too_many_options: no podrá contener más de %{max} propuestas
   preferences:
     languages: Idiomas
     other: Otros
     publishing: Publicación
     web: Web
+  relationships:
+    activity: Actividad de la cuenta
+    dormant: Dormido
+    moved: Mudado
+    mutual: Mutuo
+    primary: Primaria
+    relationship: Relación
+    remove_selected_domains: Eliminar todos los suscriptores de las instancias seleccionadas
+    remove_selected_followers: Eliminar suscriptores seleccionados
+    remove_selected_follows: Dejar de seguir a los usuarios seleccionados
+    status: Estado de cuenta
   remote_follow:
     acct: Ingesa tu usuario@dominio desde el que quieres seguir
     missing_resource: No se pudo encontrar la URL de redirección requerida para tu cuenta
     no_account_html: "¿No tienes una cuenta? Puedes <a href='%{sign_up_path}' target='_blank'>registrarte aqui</a>"
     proceed: Proceder a seguir
     prompt: 'Vas a seguir a:'
+    reason_html: "<strong>¿Por qué es necesario este paso?</strong> Es possible que <code>%{instance}</code> no sea la instancia donde te registraste, así que necesitamos redirigirte primero a tu instancia base."
+  remote_interaction:
+    favourite:
+      proceed: Confirmar la adición a favoritos
+      prompt: 'Quieres hacer de este piojo un favorito:'
+    reblog:
+      proceed: Confirmar la repartición
+      prompt: 'Quieres compartir este piojo de nuevo:'
+    reply:
+      proceed: Confirme la respuesta
+      prompt: 'Quieres responder a este toot:'
   remote_unfollow:
     error: Error
     title: Título
     unfollowed: Ha dejado de seguirse
+  scheduled_statuses:
+    over_daily_limit: Ha excedido el límite de %{limit} toots planificadas para este día
+    over_total_limit: Ha excedido el límite de %{limit} toots planificadas
+    too_soon: La fecha prevista debe ser en el futuro
   sessions:
     activity: Última actividad
     browser: Navegador
@@ -702,10 +849,13 @@ es:
     development: Desarrollo
     edit_profile: Editar perfil
     export: Exportar información
+    featured_tags: Etiquetos presentados
+    identity_proofs: Pruebas de identidad
     import: Importar
     migrate: Migración de cuenta
     notifications: Notificaciones
     preferences: Preferencias
+    relationships: Suscripciones y suscriptores
     settings: Ajustes
     two_factor_authentication: Autenticación de dos factores
     your_apps: Tus aplicaciones
@@ -731,6 +881,11 @@ es:
       ownership: El toot de alguien más no puede fijarse
       private: Los toots no-públicos no pueden fijarse
       reblog: Un boost no puede fijarse
+    poll:
+      total_votes:
+        one: "%{count} voto"
+        other: "%{count} votos"
+      vote: Votar
     show_more: Mostrar más
     sign_in_to_participate: Regístrate para participar en la conversación
     title: '%{name}: "%{quote}"'
@@ -746,7 +901,92 @@ es:
     reblogged: retooteado
     sensitive_content: Contenido sensible
   terms:
+    body_html: |
+      <h2>Política de Privacidad</h2>
+      <h3 id="collect">¿Qué información recopilamos?</h3>
+
+      <ul>
+        <li><em>Basic account information</em>: Si te resgitras en este servidor, se te podrá solicitar que introduzcas un nombre de usuario, una dirección de correo electrónico y una contraseña. También podrás introducir información extra de perfil tal como un nombre a mostrar, una biografía, y subir una imagen de perfil y de cabecera. El nombre de usuario, nombre a mostrar, biografía e imágenes de perfil y cabecera siempre serán públicos.</li>
+        <li><em>Publicaciones, seguidores y otra infomración pública</em>: La lista de usuarios que sigues se muestra de forma pública, al igual que la lista de usuarios que te siguen. Cuando envías un mensaje, la fecha y hora se almacenan al igual que la plicación utilizada para enviarlo. Los mensajes pueden contener ficheros adjuntos, como imágenes o vídeos. Las publicaciones públicas y no listadas están disponibles de forma pública. Cuando destacas una publicación en tu perfil, esta infomración también se muestra de forma pública. Tus publicaciones son enviadas a tus seguidores, lo que en algunos casos significa que son enviados a diferentes servidores y se almacenan copias allí. Cuando borras una publicación, esta acción también es enviada a tus seguidores. La acción de republicar y marcar como favorita una publicación siempre es pública.</li>
+        <li><em>Publicaciones directas y sólo a seguidores</em>: Todas las publicaciones se almacenan y procesan en el servidor. Las publicaciones solo para los seguidores sólo se envían a tus seguidores y a los usuarios mencionados en ellas, y las publicaciones directas son enviadas únicamente a los usuarios mencionados en ellas. en algunos casos signifca que son enviadas a diferentes servidores que almacenarán copias de ellas. Hacemos un esfuerzo de buena fe al limitar el acceso a estas publicaciones únicamente a las personas autorizadas, pero otros servidores pueden no hacerlo. Por ello es importante revisar los servidores a los que pertenecen tus segidores. Puedes marcar una opción para apribar o rechazar seguidores manualmente en las preferencias. <em>Por favor, recuerda que los operadores del servidor y de los servidores receptores podrían ver esos mensajes</em>, y los receptores podrían hacer capturas de pantalla, copiar o recompartirlas. <em>No compartas infomración peligrosa en Mastodon.</em></li>
+        <li><em>IPs y otros metadatos</em>: Cuando accedes al servicio, grabamos la dirección IP desde la que accedes, al igual que el nombre de tu aplicación de navegación. Toda la información registrada en las sesiones está disponible para tu revisión y poder revocarla en las preferencias. La última dirección IP almacenada puede ser de hasta 12 meses atrás. También guardamos logs de servidor, lo que incluye la dirección IP de cada petición a nuestros servidores.</li>
+      </ul>
+
+      <hr class="spacer" />
+
+      <h3 id="use">¿Para qué utilizamos tu información?</h3>
+
+      <p>Cualquier información que recolectemos sobre tí podrá usarse de las siguientes maneras:</p>
+
+      <ul>
+        <li>TPra proveer la funcionalidad central de Mastodon. solo podrás interactuar con el contenido de otros usuarios y publicar tu propio contenido cuando estés conectado. Por ejemplo: puedes seguir a otros usuarios y ver sus publicaciones combinadas en tu timeline propio personalizado.</li>
+        <li>Ayudar a la moderación de la comunidad, por ejemplo comparando tu IP con las de otras cuentas para verificar evasión de prohibiciones de acceso u otras acciones no permitidas.</li>
+        <li>La dirección de correo que proveas puede ser utilizada para enviarte infomración, notificaciones sobre otros usuarios interactuando con tu conetenido o enviándote mensahes, y para responder a preguntas y/o peticiones.</li>
+      </ul>
+
+      <hr class="spacer" />
+
+      <h3 id="protect">¿Cómo protegemos la información?</h3>
+
+      <p>Implementamos una variedad de medidas de seguridad para mantener a salvo tu infomración personal cuando entroduces, envías o accedes a tu información personal. entre otras cosas, tu sesión de navegador, al igual que el tráfico entre tus aplicaciones y la API, están securizadas mediante SSL, y tu password es encriptado mediante un potente algoritmo. Puedes activar el doble factor de autenticación para aumentar la seguridad de tu cuenta.</p>
+
+      <hr class="spacer" />
+
+      <h3 id="data-retention">¿Cuál es nuestra política de retención de datos?</h3>
+
+      <p>Hacemos un esfuerzo de buena fé para:</p>
+
+      <ul>
+        <li>Mantener los registros de servidor conteniendo la dirección IP de todas las peticiones a este servidor mientras se mantiene estos registros, que no es mas de 90 días.</li>
+        <li>Mantener las direcciones IP asociadas con usuarios registrados no mas de 12 meses.</li>
+      </ul>
+
+      <p>Puedes solicitar y descargar un archivo con tu contenido, incluyendo tus publicaciones, adjuntos multimedia, imagen de perfil y de cabecera.</p>
+
+      <p>Puedes borrar irreversiblemente tu cuenta en cualquier momento.</p>
+
+      <hr class="spacer"/>
+
+      <h3 id="cookies">¿Usamos cookies?</h3>
+
+      <p>Yes. Los Cookies son ficheros pequeños que un sitio o proveedor de servicio transfieren al disco duro de tu ordenador via tu nevgador web (si así lo permites). Estos cookies permiten al sitio reconocer tu navegador web y, si tienes una cuenta registrada, para asociarlo con dicha cuenta.</p>
+
+      <p>Usamos cookies pra comprender y guardar tus preferencias para futuras visitas.</p>
+
+      <hr class="spacer" />
+
+      <h3 id="disclose">¿Damos alguna información a terceras partes?</h3>
+
+      <p>No vendemos, comerciamos o transferimos a terceras partes tu información identificable. Esto no incluye a sitios de confianza que nos ayudan a operar el sitio, llevar a cabo nuestro negocio o darte servicio, mientras estas partes acuerden a mantener dicha infomración de forma confidencial. Podríamos revelar tu información si creyéramos oportuno para cumplir con las leyes establecidas, aplicar las políticas de nuestro sitio, o proteger los derechos de otros usuarios como propiedad o seguridad.</p>
+
+      <p>Tu contendio público podría ser descargado por otros servidores en la red. Tus publicaciones y las marcadas como "solo para tus seguidores" son enviadas a los servidores donde residen tus seguidores, y los mensajes directos son enviados a los servidores de los receptores, que podrían residir en un servidor diferente a este.</p>
+
+      <p>Cuando autorizas a una aplicación a utilizar tu cuenta, dependiendo del alcance de los permisos que apruebes, podría tener acceso la información públcia de tu perfil, tu lista de seguidores, de usuarios a los que sigues, tus listas, todas tus publicaciones y tus favoritos. Las aplicaciones nuca pueden acceder a tu dirección de correo electrónico ni a tu password.</p>
+
+      <hr class="spacer" />
+
+      <h3 id="children">Uso de este sitio por niños</h3>
+
+      <p>Si este servidor se ubica en la Unión Europea o EEA: nuestro sitio, productos y servidios están dirigidos a personas de al menos 16 años. Si tu edad es inferior a los 16, por requerimientos de la GDPR (<a href="https://en.wikipedia.org/wiki/General_Data_Protection_Regulation">General Data Protection Regulation</a>) no uses este sitio.</p>
+
+      <p>Si este servidor está en Estados Unidos: nuestro sitio, productos y servidios están dirigidos a personas de al menos 13 años, por requerimientos de la COPPA (<a href="https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Children's Online Privacy Protection Act</a>) no uses este sitio.</p>
+
+      <p>Los requerimientos legales pueden ser diferentes si este servidor se encuentra en otra jurisdicción.</p>
+
+      <hr class="spacer" />
+
+      <h3 id="changes">Cambios en nuestra política de privacidad</h3>
+
+      <p>Si decidimos cambiar nuestra olítica de privacidad, publicaremos los cambios en esta página.</p>
+
+      <p>Este documento es CC-BY-SA. Fue actualizado por última vez el 7 de Marzo de 2018.</p>
+
+      <p>Adaptado originalmente de <a href="https://github.com/discourse/discourse">Discurso de política de privacidad</a>.</p>
     title: Términos del Servicio y Políticas de Privacidad de %{instance}
+  themes:
+    contrast: Mastodon (Alto contraste)
+    default: Mastodon (Oscuro)
+    mastodon-light: Mastodon (Claro)
   time:
     formats:
       default: "%d de %b del %Y, %H:%M"
@@ -772,6 +1012,22 @@ es:
       explanation: Has solicitado una copia completa de tu cuenta de Mastodon. ¡Ya está preparada para descargar!
       subject: Tu archivo está preparado para descargar
       title: Descargar archivo
+    warning:
+      explanation:
+        disable: Mientras su cuenta esté congelada, los datos de su cuenta permanecerán intactos, pero no podrá realizar ninguna acción hasta que se desbloquee.
+        silence: Cuando tu cuenta es limitada, sólo los usuarios que ya te están siguiendo verán tus pouets en este servidor, y puedes ser excluido de varias listas públicas. Sin embargo, otros usuarios pueden seguirte manualmente.
+        suspend: Su cuenta ha sido suspendida, y todos sus pouets y archivos multimedia descargados han sido borrados irreversiblemente de este servidor, y de los servidores donde usted tenía suscriptores.
+      review_server_policies: Revisar las políticas de la instancia
+      subject:
+        disable: Su cuenta %{acct} ha sido congelada
+        none: Advertencia para %{acct}
+        silence: Su cuenta %{acct} ha sido limitada
+        suspend: Su cuenta %{acct} ha sido suspendida
+      title:
+        disable: Cuenta congelada
+        none: Aviso de advertencia
+        silence: Cuenta limitada
+        suspend: Cuenta suspendida
     welcome:
       edit_profile_action: Configurar el perfil
       edit_profile_step: Puedes personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre de usuario y más cosas. Si quieres revisar a tus nuevos seguidores antes de que se les permita seguirte, puedes bloquear tu cuenta.
@@ -779,7 +1035,7 @@ es:
       final_action: Empezar a publicar
       final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea de tiempo local y con "hashtags". Podrías querer introducirte con el "hashtag" #introductions.'
       full_handle: Su sobrenombre completo
-      full_handle_hint: Esto es lo que le dirías a tus amigos para que ellos puedan enviarte mensajes o seguirte desde otra instancia.
+      full_handle_hint: Esto es lo que le dirías a tus amigos para que te envíen un mensaje o te sigan desde otra instancia.
       review_preferences_action: Cambiar preferencias
       review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs".
       subject: Bienvenido a Mastodon
@@ -787,7 +1043,7 @@ es:
       tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada.
       tip_local_timeline: La linea de tiempo local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos!
       tip_mobile_webapp: Si el navegador de tu dispositivo móvil ofrece agregar Mastodon a tu página de inicio, puedes recibir notificaciones. Actúa como una aplicación nativa en muchas formas!
-      tips: Tips
+      tips: Trucos
       title: Te damos la bienvenida a bordo, %{name}!
   users:
     follow_limit_reached: No puedes seguir a más de %{limit} personas
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index ff8f80f13..7c026212f 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -4,25 +4,36 @@ fa:
     about_hashtag_html: این‌ها نوشته‌های عمومی هستند که برچسب (هشتگ) <strong>#%{hashtag}</strong> را دارند. اگر شما روی هر سروری حساب داشته باشید می‌توانید به این نوشته‌ها واکنش نشان دهید.
     about_mastodon_html: ماستدون (Mastodon) یک شبکهٔ اجتماعی است که بر اساس پروتکل‌های آزاد وب و نرم‌افزارهای آزاد و کدباز ساخته شده است. این شبکه مانند ایمیل غیرمتمرکز است.
     about_this: درباره
+    active_count_after: فعال
+    active_footnote: کاربران فعال در ماه گذشته
     administered_by: 'با مدیریت:'
     api: رابط برنامه‌نویسی کاربردی
     apps: اپ‌های موبایل
+    apps_platforms: ماستدون را در iOS، اندروید، و سایر سیستم‌ها داشته باشید
+    browse_directory: در فهرست گزیدهٔ کاربران این سرور چرخی بزنید و کاربران را بر اساس علاقه‌مندی‌هایشان پیدا کنید
+    browse_public_posts: فهرست لحظه‌ای نوشته‌های عمومی در ماستدون را ببینید
     contact: تماس
     contact_missing: تعیین نشده
     contact_unavailable: موجود نیست
+    discover_users: یافتن کاربران
     documentation: مستندات
     extended_description_html: |
       <h3>جای خوبی برای قانون‌ها</h3>
       <p>توضیحات تکمیلی نوشته نشده است.</p>
+    federation_hint_html: با داشتن حساب روی %{instance} می‌توانید کاربران همهٔ سرورهای دیگر ماستدون (و سایر شبکه‌های سازگار با آن) را پی بگیرید.
     generic_description: "%{domain} یک سرور روی شبکه است"
+    get_apps: یک اپ موبایل را امتحان کنید
     hosted_on: ماستدون، میزبانی‌شده روی %{domain}
     learn_more: بیشتر بدانید
     privacy_policy: سیاست رازداری
+    see_whats_happening: ببینید چه خبر است
+    server_stats: 'آمار سرور:'
     source_code: کدهای منبع
     status_count_after:
       one: چیز نوشته‌اند
       other: چیز نوشته‌اند
     status_count_before: که در کنار هم
+    tagline: با دوستان خود در ارتباط باشید و دوستان تازه پیدا کنید
     terms: شرایط کاربری
     user_count_after:
       one: کاربر
@@ -68,6 +79,7 @@ fa:
       delete: پاک کردن
       destroyed_msg: یادداشت مدیر با موفقیت پاک شد!
     accounts:
+      approve: پذیرفتن
       are_you_sure: آیا مطمئن هستید؟
       avatar: تصویر نمایه
       by_domain: دامین
@@ -113,6 +125,7 @@ fa:
       moderation:
         active: فعال
         all: همه
+        pending: در انتظار
         silenced: بی‌صدا شده
         suspended: معلق شده
         title: وضعیت
@@ -122,6 +135,7 @@ fa:
       no_limits_imposed: بدون محدودیت
       not_subscribed: عضو نیست
       outbox_url: نشانی صندوق خروجی
+      pending: در انتظار بررسی
       perform_full_suspension: تعلیق
       profile_url: نشانی نمایه
       promote: ترفیع‌دادن
@@ -129,6 +143,7 @@ fa:
       public: عمومی
       push_subscription_expires: عضویت از راه PuSH منقضی شد
       redownload: به‌روزرسانی نمایه
+      reject: نپذیرفتن
       remove_avatar: حذف تصویر نمایه
       remove_header: برداشتن تصویر زمینه
       resend_confirmation:
@@ -400,6 +415,12 @@ fa:
         min_invite_role:
           disabled: هیچ کس
           title: اجازهٔ دعوت به
+      registrations_mode:
+        modes:
+          approved: ثبت نام نیازمند تأیید مدیران است
+          none: کسی نمی‌تواند ثبت نام کند
+          open: همه می‌توانند ثبت نام کنند
+        title: شرایط ثبت نام
       show_known_fediverse_at_about_page:
         desc_html: اگر انتخاب شود، بوق‌های همهٔ سرورهای دیگر نیز در پیش‌نمایش این سرور نمایش می‌یابد. وگرنه فقط بوق‌های محلی نشان داده می‌شوند.
         title: نمایش سرورهای دیگر در پیش‌نمایش این سرور
@@ -407,13 +428,13 @@ fa:
         desc_html: نمایش علامت همکار روی صفحهٔ کاربر
         title: نمایش علامت همکار
       site_description:
-        desc_html: معرفی کوتاهی که روی صفحهٔ اصلی نمایش می‌یابد. دربارهٔ این که چه چیزی دربارهٔ این سرور ماستدون ویژه است یا هر چیز مهم دیگری بنویسید. می‌توانید HTML بنویسید، به‌ویژه <code>&lt;a&gt;</code> و <code>&lt;em&gt;</code>.
+        desc_html: معرفی کوتاهی دربارهٔ رابط برنامه‌نویسی کاربردی. دربارهٔ این که چه چیزی دربارهٔ این سرور ماستدون ویژه است یا هر چیز مهم دیگری بنویسید. می‌توانید HTML بنویسید، به‌ویژه <code>&lt;a&gt;</code> و <code>&lt;em&gt;</code>.
         title: دربارهٔ این سرور
       site_description_extended:
         desc_html: جای خوبی برای نوشتن سیاست‌های کاربری، قانون‌ها، راهنماها، و هر چیزی که ویژهٔ این سرور است. تگ‌های HTML هم مجاز است
         title: اطلاعات تکمیلی سفارشی
       site_short_description:
-        desc_html: روی نوار کناری و همچنین به عنوان فرادادهٔ صفحه‌ها نمایش می‌یابد. در یک بند توضیح دهید که ماستدون چیست و چرا این سرور با بقیه فرق دارد. اگر خالی بگذارید، به جایش «دربارهٔ سایت» نمایش می‌یابد.
+        desc_html: روی نوار کناری و همچنین به عنوان فرادادهٔ صفحه‌ها نمایش می‌یابد. در یک بند توضیح دهید که ماستدون چیست و چرا این سرور با بقیه فرق دارد.
         title: توضیح کوتاه دربارهٔ سرور
       site_terms:
         desc_html: می‌توانید سیاست رازداری، شرایط استفاده، یا سایر مسائل قانونی را به دلخواه خود بنویسید. تگ‌های HTML هم مجاز است
@@ -462,6 +483,9 @@ fa:
       edit_preset: ویرایش هشدار پیش‌فرض
       title: مدیریت هشدارهای پیش‌فرض
   admin_mailer:
+    new_pending_account:
+      body: جزئیات حساب تازه این‌جاست. شما می‌توانید آن را تأیید یا رد کنید.
+      subject: حساب تازه‌ای در %{instance} نیازمند بررسی است (%{username})
     new_report:
       body: کاربر %{reporter} کاربر %{target} را گزارش داد
       body_remote: کسی از %{domain} گزارش %{target} را فرستاده
@@ -483,7 +507,9 @@ fa:
     your_token: کد دسترسی شما
   auth:
     agreement_html: با کلیک روی دکمهٔ عضو شدن، شما <a href="%{rules_path}">قوانین این سرور</a> و <a href="%{terms_path}">شرایط استفادهٔ</a> ما را می‌پذیرید.
+    apply_for_account: درخواست دعوت‌نامه
     change_password: رمز
+    checkbox_agreement_html: من <a href="%{rules_path}" target="_blank">قانون‌های این سرور</a> و <a href="%{terms_path}" target="_blank">شرایط کاربری</a> را می‌پذیرم
     confirm_email: تأیید ایمیل
     delete_account: پاک‌کردن حساب
     delete_account_html: اگر می‌خواهید حساب خود را پاک کنید، از <a href="%{path}">این‌جا</a> پیش بروید. از شما درخواست تأیید خواهد شد.
@@ -499,10 +525,12 @@ fa:
       cas: CAS
       saml: SAML
     register: عضو شوید
+    registration_closed: سرور %{instance} عضو تازه‌ای نمی‌پذیرد
     resend_confirmation: راهنمایی برای تأیید را دوباره بفرست
     reset_password: بازنشانی رمز
     security: امنیت
     set_new_password: تعیین رمز تازه
+    trouble_logging_in: برای ورود مشکلی دارید؟
   authorize_follow:
     already_following: شما همین الان هم این حساب را پی‌می‌گیرید
     error: متأسفانه حین یافتن آن حساب خطایی رخ داد
@@ -558,6 +586,9 @@ fa:
       content: شرمنده، یک چیزی از سمت ما اشتباه شده.
       title: این صفحه درست نیست
     noscript_html: برای استفاده از نسخهٔ تحت وب ماستدون، لطفاً جاوااسکریپت را فعال کنید. یا به جایش می‌توانید <a href="%{apps_path}">یک اپ ماستدون</a> را به‌کار ببرید.
+  existing_username_validator:
+    not_found: کاربری در این سرور با این نام کاربری پیدا نشد
+    not_found_multiple: "%{usernames} پیدا نشد"
   exports:
     archive_takeout:
       date: تاریخ
@@ -598,12 +629,30 @@ fa:
     more: بیشتر…
     resources: منابع
   generic:
+    all: همه
     changes_saved_msg: تغییرات با موفقیت ذخیره شدند!
     copy: رونوشت
     save_changes: ذخیرهٔ تغییرات
     validation_errors:
       one: یک چیزی هنوز درست نیست! لطفاً خطاهای زیر را ببینید
       other: یک چیزی هنوز درست نیست! لطفاً %{count} خطای زیر را ببینید
+  html_validator:
+    invalid_markup: دارای نشانه‌گذاری نامعتبر HTML است
+  identity_proofs:
+    active: فعال
+    authorize: بله، اجازه بده
+    authorize_connection_prompt: آیا اجازهٔ این ارتباط رمزگذاری را می‌دهید؟
+    errors:
+      failed: برقراری ارتباط  رمزگذاری شکست خورد. لطفاً دوباره از %{provider} تلاش کنید.
+      keybase:
+        invalid_token: کدهای Keybase چکیده (هش) امضاهای دیجیتال هستند و دست‌کم ۶۶ نویسه در مبنای ۱۶ دارند
+        verification_failed: این کد را Keybase به عنوان امضای دیجیتال کاربر %{kb_username} تأیید نمی‌کند. لطفاً دوباره از Keybase تلاش کنید.
+    explanation_html: این‌جا می‌توانید به شناسه‌های دیگر خود مانند نمایهٔ Keybase خودتان به طور رمزنگارانه متصل شوید. با این کار دیگران می‌توانند به شما پیغام‌های رمزشده بفرستند و به چیزی که شما به آن‌ها می‌فرستید اعتماد کنند.
+    i_am_html: من %{username} روی %{service} هستم.
+    identity: شناسه
+    inactive: غیرفعال
+    status: وضعیت تأیید
+    view_proof: دیدن مدرک
   imports:
     modes:
       merge: ادغام
@@ -721,6 +770,17 @@ fa:
     other: سایر تنظیمات
     publishing: تنظیمات انتشار مطالب
     web: وب
+  relationships:
+    activity: فعالیت حساب
+    dormant: غیرفعال
+    moved: منتقل‌شده
+    mutual: دوطرفه
+    primary: اصلی
+    relationship: رابطه
+    remove_selected_domains: همهٔ پیگیران از طرف این سرور را بردار
+    remove_selected_followers: پیگیران انتخاب‌شده را بردار
+    remove_selected_follows: به پیگیری از کاربران انتخاب‌شده پایان بده
+    status: وضعیت حساب
   remote_follow:
     acct: نشانی حساب username@domain خود را این‌جا بنویسید
     missing_resource: نشانی اینترنتی برای رسیدن به حساب شما پیدا نشد
@@ -795,10 +855,12 @@ fa:
     edit_profile: ویرایش نمایه
     export: برون‌سپاری داده‌ها
     featured_tags: برچسب‌های منتخب
+    identity_proofs: مدرک شناسه‌ها
     import: درون‌ریزی
     migrate: انتقال حساب
     notifications: اعلان‌ها
     preferences: ترجیحات
+    relationships: پیگیری‌ها و پیگیران
     settings: تنظیمات
     two_factor_authentication: ورود دومرحله‌ای
     your_apps: برنامهٔ شما
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 0d5dd08ad..ff065e865 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -4,25 +4,36 @@ fr:
     about_hashtag_html: Figurent ci-dessous les pouets tagués avec <strong>#%{hashtag}</strong>. Vous pouvez interagir avec eux si vous avez un compte n’importe où dans le Fediverse.
     about_mastodon_html: Mastodon est un réseau social utilisant des formats ouverts et des logiciels libres. Comme le courriel, il est décentralisé.
     about_this: À propos
+    active_count_after: actif·ve·s
+    active_footnote: Utilisateur·ice·s Actif·ve·s par Mois (UAM)
     administered_by: 'Administrée par :'
     api: API
     apps: Applications mobiles
+    apps_platforms: Utilisez Mastodon depuis iOS, Android et d'autres plateformes
+    browse_directory: Parcourez les profils selon vos hobbies
+    browse_public_posts: Parcourez la timeline publique sur Mastodon
     contact: Contact
     contact_missing: Manquant
     contact_unavailable: Non disponible
+    discover_users: Découvrez de nouvelles personnes
     documentation: Documentation
     extended_description_html: |
       <h3>Un bon endroit pour les règles</h3>
       <p>La description étendue n’a pas été remplie.</p>
+    federation_hint_html: Avec un compte sur %{instance}, vous pourrez suivre des gens sur n'importe quelle instance Mastodon et au-delà.
     generic_description: "%{domain} est seulement un serveur du réseau"
+    get_apps: Essayez une application mobile
     hosted_on: Instance Mastodon hébergée par %{domain}
     learn_more: En savoir plus
     privacy_policy: Politique de vie privée
+    see_whats_happening: Voyez ce qu'il se passe
+    server_stats: 'Statistiques de l''instance :'
     source_code: Code source
     status_count_after:
       one: Statut
       other: Statuts
     status_count_before: Ayant publié
+    tagline: Suivez vos ami·e·s et découvrez-en d'autres
     terms: Conditions d'utilisation
     user_count_after:
       one: utilisateur
@@ -37,7 +48,7 @@ fr:
       other: Abonné⋅e⋅s
     following: Abonnements
     joined: Inscrit·e en %{date}
-    last_active: actif dernièrement
+    last_active: dernière activité
     link_verified_on: La propriété de ce lien a été vérifiée le %{date}
     media: Médias
     moved_html: "%{name} a changé de compte pour %{new_profile_link} :"
@@ -68,6 +79,7 @@ fr:
       delete: Supprimer
       destroyed_msg: Note de modération supprimée avec succès !
     accounts:
+      approve: Approuver
       are_you_sure: Êtes-vous certain⋅e ?
       avatar: Avatar
       by_domain: Domaine
@@ -113,6 +125,7 @@ fr:
       moderation:
         active: Actif
         all: Tous
+        pending: En attente
         silenced: Masqués
         suspended: Suspendus
         title: Modération
@@ -122,6 +135,7 @@ fr:
       no_limits_imposed: Aucune limite imposée
       not_subscribed: Non abonné
       outbox_url: URL de sortie
+      pending: En attente de modération
       perform_full_suspension: Suspendre
       profile_url: URL du profil
       promote: Promouvoir
@@ -129,6 +143,7 @@ fr:
       public: Publique
       push_subscription_expires: Expiration de l’abonnement PuSH
       redownload: Rafraîchir le profil
+      reject: Rejeter
       remove_avatar: Supprimer l’avatar
       remove_header: Supprimer l'entête
       resend_confirmation:
@@ -245,7 +260,7 @@ fr:
       week_users_active: actif·ve·s cette semaine
       week_users_new: utilisateur·rice·s cette semaine
     domain_blocks:
-      add_new: Ajouter un nouveau bloqueur de domaine
+      add_new: Ajouter un nouveau blocage de domaine
       created_msg: Le blocage de domaine est désormais activé
       destroyed_msg: Le blocage de domaine a été désactivé
       domain: Domaine
@@ -265,7 +280,7 @@ fr:
       rejecting_media: rejet des fichiers multimédia
       rejecting_reports: rejet de rapports
       severity:
-        silence: silencié
+        silence: réduit au silence
         suspend: suspendu
       show:
         affected_accounts:
@@ -276,7 +291,7 @@ fr:
           suspend: Annuler la suspension sur tous les comptes existants pour ce domaine
         title: Annuler le blocage de domaine pour %{domain}
         undo: Annuler
-      undo: Annuler le bloqueur de domaine
+      undo: Annuler le blocage de domaine
     email_domain_blocks:
       add_new: Ajouter
       created_msg: Le blocage de domaine de courriel est désormais activé
@@ -374,7 +389,7 @@ fr:
         username: Entrez un nom d’utilisateur⋅ice
       custom_css:
         desc_html: Modifier l'apparence avec une CSS chargée sur chaque page
-        title: CSS personnalisé
+        title: CSS personalisé
       hero:
         desc_html: Affichée sur la page d’accueil. Au moins 600x100px recommandé. Lorsqu’elle n’est pas définie, se rabat sur la vignette de l’instance
         title: Image d’en-tête
@@ -400,6 +415,12 @@ fr:
         min_invite_role:
           disabled: Personne
           title: Autoriser les invitations par
+      registrations_mode:
+        modes:
+          approved: Approbation requise pour l'inscription
+          none: Personne ne peut s'inscrire
+          open: N'importe qui peut s'inscrire
+        title: Modes d'inscription
       show_known_fediverse_at_about_page:
         desc_html: Lorsque l’option est activée, les pouets provenant de toutes les instances connues sont affichés dans la prévisualisation. Sinon, seuls les pouets locaux sont affichés.
         title: Afficher le fediverse connu dans la prévisualisation du fil
@@ -462,6 +483,9 @@ fr:
       edit_preset: Éditer la présélection d'attention
       title: Gérer les présélections d'attention
   admin_mailer:
+    new_pending_account:
+      body: Les détails du nouveau compte sont ci-dessous. Vous pouvez approuver ou rejeter cette candidature.
+      subject: Demande de création de compte sur %{instance} (%{username})
     new_report:
       body: "%{reporter} a signalé %{target}"
       body_remote: Quelqu’un de %{domain} a signalé %{target}
@@ -483,7 +507,9 @@ fr:
     your_token: Votre jeton d’accès
   auth:
     agreement_html: En cliquant sur "S'inscrire" ci-dessous, vous souscrivez <a href="%{rules_path}">aux règles de l’instance</a> et à <a href="%{terms_path}">nos conditions d’utilisation</a>.
+    apply_for_account: Demander une invitation
     change_password: Mot de passe
+    checkbox_agreement_html: J'accepte les <a href="%{rules_path}" target="_blank">règles de l'instance</a> et les <a href="%{terms_path}" target="_blank">conditions d'utilisation</a>
     confirm_email: Confirmer mon adresse mail
     delete_account: Supprimer le compte
     delete_account_html: Si vous désirez supprimer votre compte, vous pouvez <a href="%{path}">cliquer ici</a>. Il vous sera demandé de confirmer cette action.
@@ -499,10 +525,12 @@ fr:
       cas: CAS
       saml: SAML
     register: S’inscrire
+    registration_closed: "%{instance} n'accepte pas de nouveaux membres"
     resend_confirmation: Envoyer à nouveau les consignes de confirmation
     reset_password: Réinitialiser le mot de passe
     security: Sécurité
     set_new_password: Définir le nouveau mot de passe
+    trouble_logging_in: Problèmes de connexion ?
   authorize_follow:
     already_following: Vous suivez déjà ce compte
     error: Malheureusement, il y a eu une erreur en cherchant les détails du compte distant
@@ -534,7 +562,7 @@ fr:
     description_html: Cela va supprimer votre compte et le désactiver de manière <strong>permanente et irréversible</strong>. Votre nom d’utilisateur⋅ice restera réservé afin d’éviter la confusion.
     proceed: Supprimer compte
     success_msg: Votre compte a été supprimé avec succès
-    warning_html: Seule la suppression du contenu depuis cette instance est garantie. Le contenu qui a été partagé est susceptible de laisser des traces. Les instances hors-ligne ainsi que ceux n’étant plus abonnées à vos publications ne mettront pas leur base de données à jour.
+    warning_html: Seule la suppression du contenu depuis cette instance est garantie. Le contenu qui a été partagé est susceptible de laisser des traces. Les instances hors-ligne ainsi que celles n’étant plus abonnées à vos publications ne mettront pas leur base de données à jour.
     warning_title: Disponibilité du contenu disséminé
   directories:
     directory: Annuaire des profils
@@ -558,6 +586,9 @@ fr:
       content: Nous sommes désolé·e·s, mais quelque chose s’est mal passé de notre côté.
       title: Cette page n’est pas correcte
     noscript_html: Pour utiliser Mastodon, veuillez activer JavaScript. Sinon, essayez l’une des <a href="%{apps_path}">applications natives</a> pour Mastodon pour votre plate-forme.
+  existing_username_validator:
+    not_found: impossible de trouver un compte local avec ce nom
+    not_found_multiple: impossible de trouver %{usernames}
   exports:
     archive_takeout:
       date: Date
@@ -568,7 +599,7 @@ fr:
       size: Taille
     blocks: Vous bloquez
     csv: CSV
-    domain_blocks: Bloqueurs de domaine
+    domain_blocks: Blocage de domaine
     follows: Vous suivez
     lists: Listes
     mutes: Vous masquez
@@ -598,12 +629,30 @@ fr:
     more: Davantage…
     resources: Ressources
   generic:
+    all: Tout
     changes_saved_msg: Les modifications ont été enregistrées avec succès !
     copy: Copier
     save_changes: Enregistrer les modifications
     validation_errors:
       one: Quelque chose ne va pas ! Vérifiez l’erreur ci-dessous
       other: Certaines choses ne vont pas ! Vérifiez les %{count} erreurs ci-dessous
+  html_validator:
+    invalid_markup: contiens du code HTML invalide
+  identity_proofs:
+    active: Active
+    authorize: Oui, autoriser
+    authorize_connection_prompt: Autoriser cette connexion cryptographique ?
+    errors:
+      failed: La connexion cryptographique a échoué. Merci d’essayer de nouveau depuis %{provider}.
+      keybase:
+        invalid_token: Les jetons Keybase sont des hashs de signatures et doivent être 66 caractères hexa
+        verification_failed: Keybase ne reconnait pas ce jeton comme une signature de l’utilisateur·rice Keybase %{kb_username}. Merci de réessayer depuis Keybase.
+    explanation_html: Ici vous pouvez connecter cryptographiquement vos autres identités, telles qu’un profil Keybase. Ceci permet à d’autres personnes de vous envoyer des messages chiffrés et qu’elles aient confiance dans le contenu que vous leur envoyez.
+    i_am_html: Je suis %{username} sur %{service}.
+    identity: Identité
+    inactive: Inactive
+    status: Statut de la vérification
+    view_proof: Voir la preuve
   imports:
     modes:
       merge: Fusionner
@@ -715,19 +764,30 @@ fr:
       expired: Ce sondage est déjà terminé
       over_character_limit: ne peuvent être plus long que %{max} caractères chacun
       too_few_options: doit avoir plus qu'une proposition
-      too_many_options: ne peut contenir plus que %{max} propositions
+      too_many_options: ne peut contenir plus de %{max} propositions
   preferences:
     languages: Langues
     other: Autre
     publishing: Publication
     web: Web
+  relationships:
+    activity: Activité du compte
+    dormant: Inactif
+    moved: Déplacé
+    mutual: Mutuel
+    primary: Primaire
+    relationship: Relation
+    remove_selected_domains: Retirer tous les abonné·e·s des instances sélectionnées
+    remove_selected_followers: Retirer les abonné·e·s sélectionné·e·s
+    remove_selected_follows: Ne plus suivre les utilisateur·ice·s sélectionné·e·s
+    status: Statut du compte
   remote_follow:
     acct: Entrez l’adresse profil@instance depuis laquelle vous voulez vous abonner
     missing_resource: L’URL de redirection n’a pas pu être trouvée
     no_account_html: Vous n’avez pas de compte ? Vous pouvez <a href='%{sign_up_path}' target='_blank'>vous inscrire ici</a>
     proceed: Confirmer l’abonnement
     prompt: 'Vous allez suivre :'
-    reason_html: "<strong>Pourquoi cette étape est-elle nécessaire?</strong> <code>%{instance}</code> pourrait ne pas être le serveur où vous vous êtes inscrit, et nous devons donc vous rediriger vers votre serveur de base en premier."
+    reason_html: "<strong>Pourquoi cette étape est-elle nécessaire?</strong> <code>%{instance}</code> pourrait ne pas être l'instance où vous vous êtes inscrit, et nous devons donc vous rediriger vers votre instance de base en premier."
   remote_interaction:
     favourite:
       proceed: Confirmer l'ajout aux favoris
@@ -795,10 +855,12 @@ fr:
     edit_profile: Modifier le profil
     export: Export de données
     featured_tags: Hashtags mis en avant
+    identity_proofs: Preuves d’identité
     import: Import de données
     migrate: Migration de compte
     notifications: Notifications
     preferences: Préférences
+    relationships: Abonnements et abonné·e·s
     settings: Réglages
     two_factor_authentication: Identification à deux facteurs
     your_apps: Vos applications
@@ -960,7 +1022,7 @@ fr:
         disable: Lorsque votre compte est gelé, les données de votre compte demeurent intactes, mais vous ne pouvez effectuer aucune action jusqu'à ce qu'il soit débloqué.
         silence: Lorsque votre compte est limité, seulement les utilisateurs qui vous suivent déjà verront vos pouets sur ce serveur, et vous pourriez être exclu de plusieurs listes publiques. Néanmoins, d'autres utilisateurs peuvent vous suivre manuellement.
         suspend: Votre compte a été suspendu, et tous vos pouets et vos fichiers multimédia téléversés ont été supprimés irréversiblement de ce serveur, et des serveurs où vous aviez des abonné⋅e⋅s.
-      review_server_policies: Passer en revue les politiques du serveur
+      review_server_policies: Passer en revue les politiques de l'instance
       subject:
         disable: Votre compte %{acct} a été gelé
         none: Avertissement pour %{acct}
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
index 9f586aa37..4087ef331 100644
--- a/config/locales/ga.yml
+++ b/config/locales/ga.yml
@@ -2,3 +2,4 @@
 ga:
   about:
     about_hashtag_html: Is toots phoiblí iad seo atá clibáilte le <strong>#%{hashtag}</strong>. Is féidir leat idirghníomhú leo má tá cuntas agat áit ar bith sa fediverse.
+    about_mastodon_html: Mastodon is a social network based on open web protocols and free, open-source software. It is decentralized like e-mail.
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 1a1f6c590..32f642e16 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -4,25 +4,36 @@ gl:
     about_hashtag_html: Estas son mensaxes públicas etiquetadas con <strong>#%{hashtag}</strong>. Pode interactuar con elas si ten unha conta nalgures do fediverso.
     about_mastodon_html: Mastodon é unha rede social que se basea en protocolos web abertos e libres, software de código aberto. É descentralizada como o correo electrónico.
     about_this: Sobre
+    active_count_after: activo
+    active_footnote: Usuarias Activas no Mes (UAM)
     administered_by: 'Administrada por:'
     api: API
     apps: Apps móbiles
+    apps_platforms: Utilice Mastodon desde iOS, Android e outras plataformas
+    browse_directory: Navegue no directorio de perfís e filtre por intereses
+    browse_public_posts: Vexa o fluxo de comentarios públicos en Mastodon
     contact: Contacto
     contact_missing: Non establecido
     contact_unavailable: N/A
+    discover_users: Descubra usuarias
     documentation: Documentación
     extended_description_html: |
       <h3>Un bo lugar para regras</h3>
       <p>A descrición extendida aínda non se proporcionou.</p>
+    federation_hint_html: Con unha conta en %{instance} poderá seguir a outras persoas en calquera dos servidores Mastodon e incluso máis.
     generic_description: "%{domain} é un servidor na rede"
+    get_apps: Probe cunha app móbil
     hosted_on: Mastodon aloxado en %{domain}
     learn_more: Coñeza máis
     privacy_policy: Política de intimidade
+    see_whats_happening: Mire o que acontece
+    server_stats: 'Estatísticas:'
     source_code: Código fonte
     status_count_after:
       one: estado
       other: estados
     status_count_before: Que publicaron
+    tagline: Siga as amizades e faga outras novas
     terms: Termos do servizo
     user_count_after:
       one: usuaria
@@ -68,6 +79,7 @@ gl:
       delete: Eliminar
       destroyed_msg: Nota a moderación destruída con éxito!
     accounts:
+      approve: Aprobar
       are_you_sure: Está segura?
       avatar: Avatar
       by_domain: Dominio
@@ -113,6 +125,7 @@ gl:
       moderation:
         active: Activa
         all: Todo
+        pending: Pendente
         silenced: Acalado
         suspended: Suspendido
         title: Moderación
@@ -122,6 +135,7 @@ gl:
       no_limits_imposed: Sen límites impostos
       not_subscribed: Non suscrita
       outbox_url: URL caixa de saída
+      pending: Pendente revisión
       perform_full_suspension: Suspender
       profile_url: URL do perfil
       promote: Promocionar
@@ -129,6 +143,7 @@ gl:
       public: Público
       push_subscription_expires: A suscrición PuSH caduca
       redownload: Actualizar perfil
+      reject: Rexeitar
       remove_avatar: Eliminar avatar
       remove_header: Eliminar cabeceira
       resend_confirmation:
@@ -400,6 +415,12 @@ gl:
         min_invite_role:
           disabled: Ninguén
           title: Permitir convites por
+      registrations_mode:
+        modes:
+          approved: Precisa aprobación para rexistrarse
+          none: Rexistro pechado
+          open: Rexistro aberto
+        title: Estado do rexistro
       show_known_fediverse_at_about_page:
         desc_html: Si activado, mostraralle os toots de todo o fediverso coñecido nunha vista previa. Si non só mostrará os toots locais.
         title: Mostrar vista previa do fediverso na liña temporal
@@ -462,6 +483,9 @@ gl:
       edit_preset: Editar aviso preestablecido
       title: Xestionar avisos preestablecidos
   admin_mailer:
+    new_pending_account:
+      body: Abaixo están os detalles da conta. Pode aprobar ou rexeitar esta solicitude.
+      subject: Hai unha conta nova para revisar en %{instance} (%{username})
     new_report:
       body: "%{reporter} informou sobre %{target}"
       body_remote: Alguén desde %{domain} informou sobre %{target}
@@ -483,7 +507,9 @@ gl:
     your_token: O seu testemuño de acceso
   auth:
     agreement_html: Ao pulsar "Rexistrar" vostede acorda seguir <a href="%{rules_path}">as normas do servidor</a> e <a href="%{terms_path}">os termos do servizo</a>.
+    apply_for_account: Solicite un convite
     change_password: Contrasinal
+    checkbox_agreement_html: Acepto as <a href="%{rules_path}" target="_blank">regras do servidor</a> e os <a href="%{terms_path}" target="_blank">termos do servizo</a>
     confirm_email: Confirmar correo-e
     delete_account: Eliminar conta
     delete_account_html: Se desexa eliminar a súa conta, pode <a href="%{path}">facelo aquí</a>. Pediráselle confirmación.
@@ -499,10 +525,12 @@ gl:
       cas: CAS
       saml: SAML
     register: Rexistro
+    registration_closed: "%{instance} non está a aceptar novas usuarias"
     resend_confirmation: Voltar a enviar intruccións de confirmación
     reset_password: Restablecer contrasinal
     security: Seguridade
     set_new_password: Establecer novo contrasinal
+    trouble_logging_in: Problemas para conectar?
   authorize_follow:
     already_following: Xa está a seguir esta conta
     error: Desgraciadamente, algo fallou ao buscar a conta remota
@@ -598,12 +626,28 @@ gl:
     more: Máis…
     resources: Recursos
   generic:
+    all: Todo
     changes_saved_msg: Cambios gardados correctamente!!
     copy: Copiar
     save_changes: Gardar cambios
     validation_errors:
       one: Algo non está ben de todo! Por favor revise abaixo o erro
       other: Algo aínda non está ben! Por favor revise os %{count} erros abaixo
+  identity_proofs:
+    active: Activo
+    authorize: Si, autorizar
+    authorize_connection_prompt: Autorizar esta conexión criptográfica?
+    errors:
+      failed: Fallou a conexión criptográfica. Por favor inténteo de novo desde %{provider}.
+      keybase:
+        invalid_token: Os testemuños Keybase son hashes de firma e deben ter 66 caracteres hexadecimais
+        verification_failed: Keybase non recoñece este testemuño como firma da usuaria de Keybase %{kb_username}. Por favor inténteo desde Keybase.
+    explanation_html: Aquí pódese conectar criptográficamente as suas outras identidades, como a un perfil Keybase. Esto permitelle a outras persoas enviarlle mensaxes cifradas e confiar no contido que vostede lle envía.
+    i_am_html: Eu son %{username} en %{service}.
+    identity: Identidade
+    inactive: Inactiva
+    status: Estado da validación
+    view_proof: Ver proba
   imports:
     modes:
       merge: Fusionar
@@ -721,6 +765,17 @@ gl:
     other: Outro
     publishing: Publicando
     web: Web
+  relationships:
+    activity: Actividade da conta
+    dormant: En repouso
+    moved: Movida
+    mutual: Mutuo
+    primary: Principal
+    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
+    status: Estado da conta
   remote_follow:
     acct: Introduza o seu usuaria@servidor desde onde quere interactuar
     missing_resource: Non se puido atopar o URL de redirecionamento requerido para a súa conta
@@ -795,10 +850,12 @@ gl:
     edit_profile: Editar perfil
     export: Exportar datos
     featured_tags: Etiquetas destacadas
+    identity_proofs: Probas de identidade
     import: Importar
     migrate: Migrar conta
     notifications: Notificacións
     preferences: Preferencias
+    relationships: Seguindo e seguidoras
     settings: Axustes
     two_factor_authentication: Validar Doble Factor
     your_apps: As súas aplicacións
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 384ba918b..9eac0d3ee 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -4,25 +4,36 @@ it:
     about_hashtag_html: Questi sono i toot pubblici etichettati con <strong>#%{hashtag}</strong>. Puoi interagire con loro se hai un account nel fediverse.
     about_mastodon_html: Mastodon è un social network <em>gratuito e open-source</em>. Un'alternativa <em>decentralizzata</em> alle piattaforme commerciali che evita che una singola compagnia monopolizzi il tuo modo di comunicare. Scegli un server di cui ti fidi &mdash; qualunque sia la tua scelta, potrai interagire con chiunque altro. Chiunque può sviluppare un suo server Mastodon e partecipare alla vita del <em>social network</em>.
     about_this: A proposito di questo server
+    active_count_after: attivo
+    active_footnote: Utenti attivi per mese
     administered_by: 'Amministrato da:'
     api: API
     apps: Applicazioni Mobile
+    apps_platforms: Usa Mastodon da iOS, Android e altre piattaforme
+    browse_directory: Sfoglia un elenco di profili e filtra per interessi
+    browse_public_posts: Guarda in diretta i post pubblici su Mastodon
     contact: Contatti
     contact_missing: Non impostato
     contact_unavailable: N/D
+    discover_users: Scopri utenti
     documentation: Documentazione
     extended_description_html: |
       <h3>Un buon posto per le regole</h3>
       <p>La descrizione estesa non è ancora stata preparata.</p>
+    federation_hint_html: Con un account su %{instance} potrai seguire persone su ogni server Mastodon e oltre.
     generic_description: "%{domain} è un server nella rete"
+    get_apps: Prova un'applicazione mobile
     hosted_on: Mastodon ospitato su %{domain}
     learn_more: Scopri altro
-    privacy_policy: Politica della privacy
+    privacy_policy: Policy sulla Privacy
+    see_whats_happening: Scopri cosa sta succedendo
+    server_stats: 'Statistiche del server:'
     source_code: Codice sorgente
     status_count_after:
       one: status
       other: status
     status_count_before: Che hanno pubblicato
+    tagline: Segui i tuoi amici e scoprine di nuovi
     terms: Termini di Servizio
     user_count_after:
       one: utente
@@ -37,7 +48,7 @@ it:
       other: Seguaci
     following: Segui
     joined: Dal %{date}
-    last_active: ultima attività
+    last_active: ultima volta on-line
     link_verified_on: La proprietà di questo link è stata controllata il %{date}
     media: Media
     moved_html: "%{name} è stato spostato su %{new_profile_link}:"
@@ -60,7 +71,7 @@ it:
     unfollow: Non seguire più
   admin:
     account_actions:
-      action: Esegui azione
+      action: Esegui
       title: Esegui azione di moderazione su %{acct}
     account_moderation_notes:
       create: Lascia nota
@@ -68,6 +79,7 @@ it:
       delete: Elimina
       destroyed_msg: Nota di moderazione distrutta con successo!
     accounts:
+      approve: Approva
       are_you_sure: Sei sicuro?
       avatar: Avatar
       by_domain: Dominio
@@ -81,7 +93,7 @@ it:
       confirm: Conferma
       confirmed: Confermato
       confirming: Confermando
-      deleted: Cancellato
+      deleted: Eliminati
       demote: Declassa
       disable: Disabilita
       disable_two_factor_authentication: Disabilita 2FA
@@ -101,7 +113,7 @@ it:
       inbox_url: URL inbox
       invited_by: Invitato da
       ip: IP
-      joined: Unito
+      joined: Iscritti
       location:
         all: Tutto
         local: Locale
@@ -113,6 +125,7 @@ it:
       moderation:
         active: Attivo
         all: Tutto
+        pending: In attesa
         silenced: Silenziati
         suspended: Sospesi
         title: Moderazione
@@ -122,6 +135,7 @@ it:
       no_limits_imposed: Nessun limite imposto
       not_subscribed: Non sottoscritto
       outbox_url: URL outbox
+      pending: In attesa di esame
       perform_full_suspension: Sospendi
       profile_url: URL profilo
       promote: Promuovi
@@ -129,6 +143,7 @@ it:
       public: Pubblico
       push_subscription_expires: Sottoscrizione PuSH scaduta
       redownload: Aggiorna avatar
+      reject: Rifiuta
       remove_avatar: Rimuovi avatar
       remove_header: Rimuovi intestazione
       resend_confirmation:
@@ -196,7 +211,7 @@ it:
         update_custom_emoji: "%{name} ha aggiornato l'emoji %{target}"
         update_status: "%{name} stato aggiornato da %{target}"
       deleted_status: "(stato cancellato)"
-      title: Audit log
+      title: Registro di controllo
     custom_emojis:
       by_domain: Dominio
       copied_msg: Creata con successo una copia locale dell'emoji
@@ -223,7 +238,7 @@ it:
       updated_msg: Emoji aggiornata con successo!
       upload: Carica
     dashboard:
-      backlog: backlogged jobs
+      backlog: lavori arretrati
       config: Configurazione
       feature_deletions: Cancellazioni di account
       feature_invites: Link di invito
@@ -262,6 +277,8 @@ it:
       reject_media_hint: Rimuovi i file media salvati in locale e blocca i download futuri. Irrilevante per le sospensioni
       reject_reports: Respingi rapporti
       reject_reports_hint: Ignora tutti i rapporti provenienti da questo dominio. Irrilevante per sospensioni
+      rejecting_media: rifiuto di file multimediali
+      rejecting_reports: respingendo i rapporti
       severity:
         silence: silenziato
         suspend: sospeso
@@ -290,16 +307,19 @@ it:
       title: Seguaci di %{acct}
     instances:
       by_domain: Dominio
+      delivery_available: La consegna è disponibile
       known_accounts:
         one: "%{count} account noto"
         other: "%{count} account noti"
       moderation:
+        all: Tutti
         limited: Limitato
         title: Moderazione
       title: Istanze conosciute
       total_blocked_by_us: Bloccato da noi
       total_followed_by_them: Seguito da loro
       total_followed_by_us: Seguito da noi
+      total_reported: Rapporti su di loro
       total_storage: Media allegati
     invites:
       deactivate_all: Disattiva tutto
@@ -365,6 +385,7 @@ it:
         desc_html: Separa i nomi utente con virgola. Funziona solo con account locali e non bloccati. Quando vuoto, valido per tutti gli amministratori locali.
         title: Seguiti predefiniti per i nuovi utenti
       contact_information:
+        email: Email di lavoro
         username: Nome utente del contatto
       custom_css:
         desc_html: Modifica l'aspetto con il CSS caricato in ogni pagina
@@ -394,10 +415,17 @@ it:
         min_invite_role:
           disabled: Nessuno
           title: Permetti inviti da
+      registrations_mode:
+        modes:
+          approved: Approvazione richiesta per la registrazione
+          none: Nessuno può registrarsi
+          open: Chiunque può registrarsi
+        title: Modalità di registrazione
       show_known_fediverse_at_about_page:
         desc_html: Quando attivato, mostra nell'anteprima i toot da tutte le istanze conosciute. Altrimenti mostra solo i toot locali.
         title: Mostra la fediverse conosciuta nell'anteprima della timeline
       show_staff_badge:
+        desc_html: Mostra il badge personale su una pagina utente
         title: Mostra badge staff
       site_description:
         desc_html: Paragrafo introduttivo nella pagina iniziale. Descrive ciò che rende speciale questo server Mastodon e qualunque altra cosa sia importante dire. Potete usare marcatori HTML, in particolare <code>&lt;a&gt;</code> e <code>&lt;em&gt;</code>.
@@ -436,6 +464,8 @@ it:
       callback_url: URL Callback
       confirmed: Confermato
       expires_in: Scade in
+      last_delivery: Ultima consegna
+      title: WebSub
       topic: Argomento
     tags:
       accounts: Account
@@ -452,6 +482,14 @@ it:
       edit: Modifica
       edit_preset: Modifica avviso predefinito
       title: Gestisci avvisi predefiniti
+  admin_mailer:
+    new_pending_account:
+      body: Qui sotto trovi le informazioni sul nuovo account. Puoi approvare o respingere la richiesta.
+      subject: Nuovo account da esaminare su %{instance} (%{username})
+    new_report:
+      body: "%{reporter} ha fatto rapporto su %{target}"
+      body_remote: Qualcuno da %{domain} ha fatto rapporto su %{target}
+      subject: Nuovo rapporto per %{instance} (#%{id})
   application_mailer:
     notification_preferences: Cambia preferenze email
     salutation: "%{name},"
@@ -466,24 +504,33 @@ it:
     regenerate_token: Rigenera il token di accesso
     token_regenerated: Token di accesso rigenerato
     warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro!
+    your_token: Il tuo token di accesso
   auth:
     agreement_html: Iscrivendoti, accetti di seguire <a href="%{rules_path}">le regole del server</a> e <a href="%{terms_path}"> le nostre condizioni di servizio</a>.
+    apply_for_account: Richiedi un invito
     change_password: Password
+    checkbox_agreement_html: Accetto le <a href="%{rules_path}" target="_blank">regole del server</a> e le <a href="%{terms_path}" target="_blank">condizioni del servizio</a>
     confirm_email: Conferma email
     delete_account: Elimina account
     delete_account_html: Se desideri cancellare il tuo account, puoi <a href="%{path}">farlo qui</a>. Ti sarà chiesta conferma.
     didnt_get_confirmation: Non hai ricevuto le istruzioni di conferma?
     forgot_password: Hai dimenticato la tua password?
+    invalid_reset_password_token: Il token per la reimpostazione della password non è valido o è scaduto. Si prega di richiederne uno nuovo.
     login: Entra
     logout: Esci da Mastodon
     migrate_account: Sposta ad un account differente
     migrate_account_html: Se vuoi che questo account sia reindirizzato a uno diverso, puoi <a href="%{path}">configurarlo qui</a>.
     or_log_in_with: Oppure accedi con
+    providers:
+      cas: CAS
+      saml: SAML
     register: Iscriviti
+    registration_closed: "%{instance} non accetta nuovi iscritti"
     resend_confirmation: Invia di nuovo le istruzioni di conferma
     reset_password: Resetta la password
     security: Credenziali
     set_new_password: Imposta una nuova password
+    trouble_logging_in: Hai problemi ad accedere?
   authorize_follow:
     already_following: Stai già seguendo questo account
     error: Sfortunatamente c'è stato un errore nel consultare l'account remoto
@@ -516,6 +563,7 @@ it:
     proceed: Cancella l'account
     success_msg: Il tuo account è stato cancellato
     warning_html: È garantita la cancellazione del contenuto solo da questo server. I contenuti che sono stati ampiamente condivisi probabilmente lasceranno delle tracce. I server offline e quelli che non ricevono più i tuoi aggiornamenti non aggiorneranno i loro database.
+    warning_title: Disponibilità di contenuti divulgati
   directories:
     directory: Directory dei profili
     enabled: Attualmente sei elencato nella directory.
@@ -533,6 +581,7 @@ it:
     '422':
       content: Verifica di sicurezza non riuscita. Stai bloccando i cookies?
       title: Verifica di sicurezza non riuscita
+    '429': Valvola a farfalla
     '500':
       content: Siamo spiacenti, ma qualcosa non ha funzionato dal nostro lato.
       title: Questa pagina non è corretta
@@ -566,6 +615,7 @@ it:
       title: Modifica filtro
     errors:
       invalid_context: Contesto mancante o non valido
+      invalid_irreversible: Il filtraggio irreversibile funziona solo nel contesto domestico o nel contesto delle notifiche
     index:
       delete: Cancella
       title: Filtri
@@ -574,13 +624,30 @@ it:
   footer:
     developers: Sviluppatori
     more: Altro…
+    resources: Risorse
   generic:
+    all: Tutti
     changes_saved_msg: Modifiche effettuate con successo!
     copy: Copia
     save_changes: Salva modifiche
     validation_errors:
       one: Qualcosa ancora non va bene! Per favore, controlla l'errore qui sotto
       other: Qualcosa ancora non va bene! Per favore, controlla i %{count} errori qui sotto
+  identity_proofs:
+    active: Attivo
+    authorize: Sì, autorizzo
+    authorize_connection_prompt: Autorizzare questa connessione crittografica?
+    errors:
+      failed: La connessione crittografica è fallita. Riprovare da %{provider}.
+      keybase:
+        invalid_token: I token Keybase sono hash di firme e devono essere 66 caratteri esadecimali
+        verification_failed: Keybase non riconosce questo token come firma dell'utente Keybase %{kb_username}. Riprovare da Keybase.
+    explanation_html: Qui puoi criptograficamente collegare le tue altre identità, come ad esempio un profilo Keybase. Questo permette ad altre persone di inviare messaggi criptati e di fidarsi del contenuto inviato.
+    i_am_html: Sono %{username} su %{service}.
+    identity: Identità
+    inactive: Inattivo
+    status: Stato della verifica
+    view_proof: Visualizza prova
   imports:
     modes:
       merge: Fondi
@@ -686,6 +753,7 @@ it:
   polls:
     errors:
       already_voted: Hai già votato in questo sondaggio
+      duplicate_options: contiene elementi duplicati
       duration_too_long: è troppo lontano nel futuro
       duration_too_short: è troppo presto
       expired: Il sondaggio si è già concluso
@@ -697,12 +765,24 @@ it:
     other: Altro
     publishing: Pubblicazione
     web: Web
+  relationships:
+    activity: Attività del conto
+    dormant: Dormire
+    moved: Spostato
+    mutual: Mutuo
+    primary: Primario
+    relationship: Relazione
+    remove_selected_domains: Rimuovi tutti i seguaci dai domini selezionati
+    remove_selected_followers: Rimuovi i seguaci selezionati
+    remove_selected_follows: Seguire gli utenti selezionati
+    status: Stato del conto
   remote_follow:
     acct: Inserisci il tuo username@dominio da cui vuoi seguire questo utente
     missing_resource: Impossibile trovare l'URL di reindirizzamento richiesto per il tuo account
     no_account_html: Non hai un account? Puoi <a href='%{sign_up_path}' target='_blank'>iscriverti qui</a>
     proceed: Conferma
     prompt: 'Stai per seguire:'
+    reason_html: "<strong>Perché questo passaggio è necessario?</strong><code>%{instance}</code>potrebbe non essere il server dove sei registrato, quindi dobbiamo prima mandarti al tuo server."
   remote_interaction:
     favourite:
       proceed: Continua per segnare come apprezzato
@@ -725,14 +805,23 @@ it:
     activity: Ultima attività
     browser: Browser
     browsers:
+      alipay: Alipay
       blackberry: Blackberry
       chrome: Chrome
       edge: Microsoft Edge
+      electron: Elettrone
       firefox: Firefox
       generic: Browser sconosciuto
       ie: Internet Explorer
+      micro_messenger: MicroMessenger
+      nokia: Browser Nokia S40 Ovi Browser Ovi
       opera: Opera
+      otter: Lontra
+      phantom_js: PhantomJS
+      qq: QQ Browser
       safari: Safari
+      uc_browser: UCBrowser
+      weibo: Weibo
     current_session: Sessione corrente
     description: "%{browser} su %{platform}"
     explanation: Questi sono i browser da cui attualmente è avvenuto l'accesso al tuo account Mastodon.
@@ -750,6 +839,8 @@ it:
       windows: Windows
       windows_mobile: Windows Mobile
       windows_phone: Windows Phone
+    revoke: Revoca
+    revoke_success: Sessione revocata con successo
     title: Sessioni
   settings:
     authorized_apps: Applicazioni autorizzate
@@ -759,10 +850,12 @@ it:
     edit_profile: Modifica profilo
     export: Esporta impostazioni
     featured_tags: Hashtag in evidenza
+    identity_proofs: Prove d'identità
     import: Importa
     migrate: Migrazione dell'account
     notifications: Notifiche
     preferences: Preferenze
+    relationships: Seguiti e seguaci
     settings: Impostazioni
     two_factor_authentication: Autenticazione a due fattori
     your_apps: Le tue applicazioni
@@ -776,6 +869,7 @@ it:
         one: "%{count} video"
         other: "%{count} video"
     boosted_from_html: Condiviso da %{acct_link}
+    content_warning: 'Avviso sul contenuto: %{warning}'
     disallowed_hashtags:
       one: 'contiene un hashtag non permesso: %{tags}'
       other: 'contiene gli hashtags non permessi: %{tags}'
@@ -794,6 +888,7 @@ it:
       vote: Vota
     show_more: Mostra di più
     sign_in_to_participate: Accedi per partecipare alla conversazione
+    title: '%{name}: "%{quote}"'
     visibilities:
       private: Mostra solo ai tuoi seguaci
       private_long: Mostra solo ai seguaci
@@ -814,6 +909,7 @@ it:
   time:
     formats:
       default: "%b %d, %Y, %H:%M"
+      month: "%b %Y"
   two_factor_authentication:
     code_hint: Inserisci il codice generato dalla tua app di autenticazione
     description_html: Se abiliti <strong>l'autorizzazione a due fattori</strong>, entrare nel tuo account ti richiederà di avere vicino il tuo telefono, il quale ti genererà un codice per eseguire l'accesso.
@@ -835,7 +931,24 @@ it:
       explanation: Hai richiesto un backup completo del tuo account Mastodon. È pronto per essere scaricato!
       subject: Il tuo archivio è pronto per essere scaricato
       title: Esportazione archivio
+    warning:
+      explanation:
+        disable: Mentre il tuo account è congelato, i tuoi dati restano intatti, ma non puoi fare nulla finché non sarà sbloccato.
+        silence: Mentre il tuo account è limitato, solo le persone che già ti seguono vedranno i tuoi toot su questo server, e potresti essere escluso dalle viste pubbliche. Ma altri utenti possono comunque seguirti manualmente.
+        suspend: Il tuo account è stato sospeso, e tutti i tuoi toot e file media sono stati eliminati in modo irreversibile da questo server e dai server su cui avevi dei seguaci.
+      review_server_policies: Esamina le politiche del server
+      subject:
+        disable: Il tuo account %{acct} è stato congelato
+        none: Avviso per %{acct}
+        silence: Il tuo account %{acct} è stato limitato
+        suspend: Il tuo account %{acct} è stato sospeso
+      title:
+        disable: Account congelato
+        none: Avviso
+        silence: Account limitato
+        suspend: Account sospeso
     welcome:
+      edit_profile_action: Crea profilo
       edit_profile_step: Puoi personalizzare il tuo profilo caricando un avatar, un'intestazione, modificando il tuo nome visualizzato e così via. Se vuoi controllare i tuoi nuovi seguaci prima di autorizzarli a seguirti, puoi bloccare il tuo account.
       explanation: Ecco alcuni suggerimenti per iniziare
       final_action: Inizia a postare
@@ -855,6 +968,7 @@ it:
     follow_limit_reached: Non puoi seguire più di %{limit} persone
     invalid_email: L'indirizzo email inserito non è valido
     invalid_otp_token: Codice d'accesso non valido
+    otp_lost_help_html: Se si è perso l'accesso a entrambi, è possibile contattare %{email}
     seamless_external_login: Ti sei collegato per mezzo di un servizio esterno, quindi le impostazioni di email e password non sono disponibili.
     signed_in_as: 'Hai effettuato l''accesso come:'
   verification:
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 985d4f100..054d90833 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -437,7 +437,7 @@ ja:
         desc_html: サイドバーと meta タグに表示されます。Mastodon とは何か、そしてこのサーバーの特別な何かを1段落で記述してください。空欄の場合、サーバーの説明が使用されます。
         title: 短いサーバーの説明
       site_terms:
-        desc_html: あなたは独自のプライバシーポリシーや利用規約、そのほかの法的根拠を書くことができます。HTMLタグが使えます
+        desc_html: 独自のプライバシーポリシーや利用規約、その他の法的根拠を記述できます。HTMLタグが使えます
         title: カスタム利用規約
       site_title: サーバーの名前
       thumbnail:
@@ -737,9 +737,13 @@ ja:
     truncate: "&hellip;"
   polls:
     errors:
-      duplicate_options: 項目が重複しています
-      duration_too_short: 期限が短すぎます
+      duplicate_options: に同じものがあります
+      duration_too_long: が長過ぎます
+      duration_too_short: が短過ぎます
       expired: 既に終了している投票です
+      over_character_limit: は%{max}文字より長くすることはできません
+      too_few_options: は複数必要です
+      too_many_options: は%{max}個までです
   preferences:
     languages: 言語
     other: その他
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 7793a2108..32a16f1b4 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -4,25 +4,36 @@ ko:
     about_hashtag_html: "<strong>#%{hashtag}</strong> 라는 해시태그가 붙은 공개 툿 입니다. 같은 연합에 속한 임의의 인스턴스에 계정을 생성하면 당신도 대화에 참여할 수 있습니다."
     about_mastodon_html: 마스토돈은 <em>오픈 소스 기반의</em> 소셜 네트워크 서비스 입니다. 상용 플랫폼의 대체로서 <em>분산형 구조</em>를 채택해, 여러분의 대화가 한 회사에 독점되는 것을 방지합니다. 신뢰할 수 있는 인스턴스를 선택하세요 &mdash; 어떤 인스턴스를 고르더라도, 누구와도 대화할 수 있습니다. 누구나 자신만의 마스토돈 인스턴스를 만들 수 있으며, 아주 매끄럽게 <em>소셜 네트워크</em>에 참가할 수 있습니다.
     about_this: 이 인스턴스에 대해서
+    active_count_after: 활성 사용자
+    active_footnote: 월간 활성 사용자
     administered_by: '관리자:'
     api: API
     apps: 모바일 앱
+    apps_platforms: 마스토돈을 iOS, 안드로이드, 다른 플랫폼들에서도 사용하세요
+    browse_directory: 프로필 디렉터리를 둘러보고 관심사 찾기
+    browse_public_posts: 마스토돈의 공개 라이브 스트림을 둘러보기
     contact: 연락처
     contact_missing: 미설정
     contact_unavailable: N/A
+    discover_users: 유저 발견하기
     documentation: 문서
     extended_description_html: |
       <h3>룰을 작성하는 장소</h3>
       <p>아직 설명이 작성되지 않았습니다.</p>
+    federation_hint_html: "%{instance}에 계정을 만드는 것으로 모든 마스토돈 서버, 그리고 호환 되는 모든 서버의 사용자를 팔로우 할 수 있습니다."
     generic_description: "%{domain} 은 네트워크에 있는 한 서버입니다"
+    get_apps: 모바일 앱 사용해 보기
     hosted_on: "%{domain}에서 호스팅 되는 마스토돈"
     learn_more: 자세히
     privacy_policy: 개인정보 정책
+    see_whats_happening: 무슨 일이 일어나는 지 보기
+    server_stats: '서버 통계:'
     source_code: 소스 코드
     status_count_after:
       one: 툿
       other: 툿
     status_count_before: 툿 수
+    tagline: 친구들을 팔로우 하고 새로운 사람들도 만나기
     terms: 이용약관
     user_count_after:
       one: 명
@@ -68,6 +79,7 @@ ko:
       delete: 삭제
       destroyed_msg: 모더레이션 기록이 성공적으로 삭제되었습니다!
     accounts:
+      approve: 승인
       are_you_sure: 정말로 실행하시겠습니까?
       avatar: 아바타
       by_domain: 도메인
@@ -113,6 +125,7 @@ ko:
       moderation:
         active: 활동
         all: 전체
+        pending: 대기중
         silenced: 침묵 중
         suspended: 정지 중
         title: 모더레이션
@@ -122,6 +135,7 @@ ko:
       no_limits_imposed: 제한 없음
       not_subscribed: 구독하지 않음
       outbox_url: 발신함 URL
+      pending: 심사 대기
       perform_full_suspension: 정지시키기
       profile_url: 프로필 URL
       promote: 승급
@@ -129,6 +143,7 @@ ko:
       public: 전체 공개
       push_subscription_expires: PuSH 구독 기간 만료
       redownload: 프로필 업데이트
+      reject: 거부
       remove_avatar: 아바타 지우기
       remove_header: 헤더 삭제
       resend_confirmation:
@@ -136,7 +151,7 @@ ko:
         send: 다시 확인 이메일
         success: 확인 이메일이 전송되었습니다!
       reset: 초기화
-      reset_password: 비밀번호 초기화
+      reset_password: 암호 초기화
       resubscribe: 다시 구독
       role: 권한
       roles:
@@ -402,6 +417,12 @@ ko:
         min_invite_role:
           disabled: 아무도 못 하게
           title: 초대링크를 만들 수 있는 권한
+      registrations_mode:
+        modes:
+          approved: 가입하려면 승인이 필요함
+          none: 아무도 가입 할 수 없음
+          open: 누구나 가입 할 수 있음
+        title: 가입 모드
       show_known_fediverse_at_about_page:
         desc_html: 활성화 되면 프리뷰 페이지에서 페디버스의 모든 툿을 표시합니다. 비활성화시 로컬에 있는 툿만 표시 됩니다.
         title: 타임라인 프리뷰에 알려진 페디버스 표시하기
@@ -409,13 +430,13 @@ ko:
         desc_html: 유저 페이지에 스태프 배지를 표시합니다
         title: 스태프 배지 표시
       site_description:
-        desc_html: 프론트 페이지의 소개문에 사용 됩니다.이 마스토돈 서버의 특별한 점 등을 설명하세요. HTML 태그, 주로 <code>&lt;a&gt;</code>, <code>&lt;em&gt;</code> 같은 것을 사용 가능합니다.
+        desc_html: API의 소개문에 사용 됩니다.이 마스토돈 서버의 특별한 점 등을 설명하세요. HTML 태그, 주로 <code>&lt;a&gt;</code>, <code>&lt;em&gt;</code> 같은 것을 사용 가능합니다.
         title: 서버 설명
       site_description_extended:
         desc_html: 규칙, 가이드라인 등을 작성하기 좋은 곳입니다. HTML 태그를 사용할 수 있습니다
         title: 사이트 상세 설명
       site_short_description:
-        desc_html: 사이드바와 메타 태그에 나타납니다. 마스토돈이 무엇이고 이 서버의 특징은 무엇인지 한 문장으로 설명하세요. 비워두면 서버 설명이 대신 사용됩니다.
+        desc_html: 사이드바와 메타 태그에 나타납니다. 마스토돈이 무엇이고 이 서버의 특징은 무엇인지 한 문장으로 설명하세요.
         title: 짧은 서버 설명
       site_terms:
         desc_html: 당신은 독자적인 개인정보 취급 방침이나 이용약관, 그 외의 법적 근거를 작성할 수 있습니다. HTML태그를 사용할 수 있습니다
@@ -464,6 +485,9 @@ ko:
       edit_preset: 경고 틀 수정
       title: 경고 틀 관리
   admin_mailer:
+    new_pending_account:
+      body: 아래에 새 계정에 대한 상세정보가 있습니다. 이 가입을 승인하거나 거부할 수 있습니다.
+      subject: "%{instance}의 새 계정(%{username})에 대한 심사가 대기중입니다"
     new_report:
       body: "%{reporter} 가 %{target} 를 신고했습니다"
       body_remote: "%{domain}의 누군가가 %{target}을 신고했습니다"
@@ -485,13 +509,15 @@ ko:
     your_token: 액세스 토큰
   auth:
     agreement_html: 이 등록으로 이 서버의 <a href="%{rules_path}">이용규약</a> 과 <a href="%{terms_path}">약관</a>에 동의하는 것으로 간주됩니다.
+    apply_for_account: 가입 요청하기
     change_password: 패스워드
+    checkbox_agreement_html: <a href="%{rules_path}" target="_blank">서버 규칙</a>과 <a href="%{terms_path}" target="_blank">이용약관</a>에 동의합니다
     confirm_email: 확인 메일 승인
     delete_account: 계정 삭제
     delete_account_html: 계정을 삭제하고 싶은 경우, <a href="%{path}">여기서</a> 삭제할 수 있습니다. 삭제 전 확인 화면이 표시됩니다.
     didnt_get_confirmation: 확인 메일을 받지 못하셨습니까?
     forgot_password: 비밀번호를 잊어버리셨습니까?
-    invalid_reset_password_token: 비밀번호 리셋 토큰이 올바르지 못하거나 기간이 만료되었습니다. 다시 요청해주세요.
+    invalid_reset_password_token: 암호 리셋 토큰이 올바르지 못하거나 기간이 만료되었습니다. 다시 요청해주세요.
     login: 로그인
     logout: 로그아웃
     migrate_account: 계정 옮기기
@@ -501,10 +527,12 @@ ko:
       cas: CAS
       saml: SAML
     register: 등록하기
+    registration_closed: "%{instance}는 새로운 가입을 받지 않고 있습니다"
     resend_confirmation: 확인 메일을 다시 보내기
-    reset_password: 비밀번호 재설정
+    reset_password: 암호 재설정
     security: 보안
-    set_new_password: 새 비밀번호
+    set_new_password: 새 암호
+    trouble_logging_in: 로그인 하는데 문제가 있나요?
   authorize_follow:
     already_following: 이미 이 계정을 팔로우 하고 있습니다
     error: 리모트 계정을 확인하는 도중 오류가 발생했습니다
@@ -560,6 +588,9 @@ ko:
       content: 죄송합니다, 뭔가 잘못 되었습니다.
       title: 이 페이지는 잘못되었습니다
     noscript_html: 마스토돈을 사용하기 위해서는 자바스크립트를 켜 주십시오. 아니면 <a href="%{apps_path}">네이티브 앱</a> 중 하나를 사용할 수 있습니다.
+  existing_username_validator:
+    not_found: 해당 유저네임에 대한 로컬 유저를 찾을 수 없습니다
+    not_found_multiple: "%{usernames}를 찾을 수 없습니다"
   exports:
     archive_takeout:
       date: 날짜
@@ -600,12 +631,30 @@ ko:
     more: 더 보기…
     resources: 리소스
   generic:
+    all: 모두
     changes_saved_msg: 정상적으로 변경되었습니다!
     copy: 복사
     save_changes: 변경 사항을 저장
     validation_errors:
       one: 오류가 발생했습니다. 아래 오류를 확인해 주십시오
       other: 오류가 발생했습니다. 아래 %{count}개 오류를 확인해 주십시오
+  html_validator:
+    invalid_markup: 올바르지 않은 HTML 마크업을 포함하고 있습니다
+  identity_proofs:
+    active: 활성
+    authorize: 네, 인증합니다
+    authorize_connection_prompt: 이 암호화 연결을 인증합니까?
+    errors:
+      failed: 암호화 연결에 실패했습니다. %{provider}에서 다시 시도해 주세요.
+      keybase:
+        invalid_token: 키베이스 토큰은 서명의 해시이며 66자의 16진수 문자여야 합니다
+        verification_failed: 키베이스가 이 토큰을 키베이스 유저 %{kb_username}의 서명으로 인식하지 못했습니다. 키베이스에서 다시 시도하세요.
+    explanation_html: 키베이스와 같은 다른 명의에 대한 암호화 연결을 할 수 있습니다. 이것으로 다른 사람들이 당신에게 암호화 된 메시지를 보낼 수 있고 당신의 메시지를 믿을 수 있습니다.
+    i_am_html: 나는 %{service}의 %{username} 입니다.
+    identity: 신원
+    inactive: 비활성
+    status: 인증 상태
+    view_proof: 증명 보기
   imports:
     modes:
       merge: 병합
@@ -723,6 +772,17 @@ ko:
     other: 기타
     publishing: 퍼블리싱
     web: 웹
+  relationships:
+    activity: 계정 활동
+    dormant: 휴면
+    moved: 이동함
+    mutual: 상호 팔로우
+    primary: 주 계정
+    relationship: 관계
+    remove_selected_domains: 선택한 도메인의 모든 팔로워 삭제
+    remove_selected_followers: 선택한 팔로워 삭제
+    remove_selected_follows: 선택한 유저들을 팔로우 해제
+    status: 계정 상태
   remote_follow:
     acct: 당신이 사용하는 아이디@도메인을 입력해 주십시오
     missing_resource: 리디렉션 대상을 찾을 수 없습니다
@@ -797,10 +857,12 @@ ko:
     edit_profile: 프로필 편집
     export: 데이터 내보내기
     featured_tags: 추천 해시태그
+    identity_proofs: 신원 증명
     import: 데이터 가져오기
     migrate: 계정 이동
     notifications: 알림
     preferences: 사용자 설정
+    relationships: 팔로잉과 팔로워
     settings: 설정
     two_factor_authentication: 2단계 인증
     your_apps: 애플리케이션
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 36a030fa4..962116e59 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -4,25 +4,36 @@ nl:
     about_hashtag_html: Dit zijn openbare toots die getagged zijn met <strong>#%{hashtag}</strong>. Je kunt er op reageren of iets anders mee doen als je op Mastodon (of ergens anders in de fediverse) een account hebt.
     about_mastodon_html: Mastodon is een sociaal netwerk dat gebruikt maakt van open webprotocollen en vrije software. Het is net zoals e-mail gedecentraliseerd.
     about_this: Over deze server
+    active_count_after: actief
+    active_footnote: Actieve gebruikers per maand (MAU)
     administered_by: 'Beheerd door:'
     api: API
     apps: Mobiele apps
+    apps_platforms: Gebruik Mastodon op iOS, Android en op andere platformen
+    browse_directory: Gebruikersgids doorbladeren en op interesses filteren
+    browse_public_posts: Livestream van openbare Mastodonberichten bekijken
     contact: Contact
     contact_missing: Niet ingesteld
     contact_unavailable: n.v.t
+    discover_users: Gebruikers ontdekken
     documentation: Documentatie
     extended_description_html: |
       <h3>Een goede plek voor richtlijnen</h3>
       <p>De uitgebreide omschrijving is nog niet ingevuld.</p>
+    federation_hint_html: Met een account op %{instance} ben je in staat om op elke Mastodonserver (en op meer plekken) mensen te volgen.
     generic_description: "%{domain} is een server in het Mastodonnetwerk"
+    get_apps: Mobiele apps
     hosted_on: Mastodon op %{domain}
     learn_more: Meer leren
     privacy_policy: Privacybeleid
+    see_whats_happening: Kijk wat er aan de hand is
+    server_stats: 'Serverstatistieken:'
     source_code: Broncode
     status_count_after:
       one: toot
       other: toots
     status_count_before: Zij schreven
+    tagline: Vrienden volgen en nieuwe ontdekken
     terms: Gebruiksvoorwaarden
     user_count_after:
       one: gebruiker
@@ -68,6 +79,7 @@ nl:
       delete: Verwijderen
       destroyed_msg: Verwijderen van opmerking voor moderatoren geslaagd!
     accounts:
+      approve: Goedkeuren
       are_you_sure: Weet je het zeker?
       avatar: Avatar
       by_domain: Domein
@@ -113,6 +125,7 @@ nl:
       moderation:
         active: Actief
         all: Alles
+        pending: In afwachting
         silenced: Genegeerd
         suspended: Opgeschort
         title: Moderatie
@@ -122,6 +135,7 @@ nl:
       no_limits_imposed: Geen limieten ingesteld
       not_subscribed: Niet geabonneerd
       outbox_url: Outbox-URL
+      pending: Moet nog beoordeeld worden
       perform_full_suspension: Opschorten
       profile_url: Profiel-URL
       promote: Promoveren
@@ -129,6 +143,7 @@ nl:
       public: Openbaar
       push_subscription_expires: PuSH-abonnement verloopt op
       redownload: Profiel vernieuwen
+      reject: Afwijzen
       remove_avatar: Avatar verwijderen
       remove_header: Omslagfoto verwijderen
       resend_confirmation:
@@ -400,6 +415,12 @@ nl:
         min_invite_role:
           disabled: Niemand
           title: Uitnodigingen toestaan door
+      registrations_mode:
+        modes:
+          approved: Goedkeuring vereist om te kunnen registreren
+          none: Niemand kan zich registreren
+          open: Iedereen kan zich registreren
+        title: Registratiemodus
       show_known_fediverse_at_about_page:
         desc_html: Wanneer ingeschakeld wordt de globale tijdlijn op de voorpagina getoond en wanneer uitgeschakeld de lokale tijdljn.
         title: De globale tijdlijn op de voorpagina tonen
@@ -462,6 +483,9 @@ nl:
       edit_preset: Voorinstelling van waarschuwing bewerken
       title: Voorinstellingen van waarschuwingen beheren
   admin_mailer:
+    new_pending_account:
+      body: Zie hieronder de details van het nieuwe account. Je kunt de aanvraag goedkeuren of afwijzen.
+      subject: Er dient een nieuw account op %{instance} te worden beoordeeld (%{username})
     new_report:
       body: "%{reporter} heeft %{target} gerapporteerd"
       body_remote: Iemand van %{domain} heeft %{target} gerapporteerd
@@ -483,7 +507,9 @@ nl:
     your_token: Jouw toegangscode
   auth:
     agreement_html: Wanneer je op registreren klikt ga je akkoord met het opvolgen van <a href="%{rules_path}">de regels van deze server</a> en <a href="%{terms_path}">onze gebruiksvoorwaarden</a>.
+    apply_for_account: Een uitnodiging aanvragen
     change_password: Wachtwoord
+    checkbox_agreement_html: Ik ga akkoord met de <a href="%{rules_path}" target="_blank">regels van deze server</a> en de <a href="%{terms_path}" target="_blank">gebruiksvoorwaarden</a>
     confirm_email: E-mail bevestigen
     delete_account: Account verwijderen
     delete_account_html: Wanneer je jouw account graag wilt verwijderen, kan je dat <a href="%{path}">hier doen</a>. We vragen jou daar om een bevestiging.
@@ -499,10 +525,12 @@ nl:
       cas: CAS
       saml: SAML
     register: Registreren
+    registration_closed: "%{instance} laat geen nieuwe gebruikers toe"
     resend_confirmation: Verstuur de bevestigingsinstructies nogmaals
     reset_password: Wachtwoord opnieuw instellen
     security: Beveiliging
     set_new_password: Nieuw wachtwoord instellen
+    trouble_logging_in: Problemen met inloggen?
   authorize_follow:
     already_following: Je volgt dit account al
     error: Helaas, er is een fout opgetreden bij het opzoeken van de externe account
@@ -598,12 +626,28 @@ nl:
     more: Meer…
     resources: Hulpmiddelen
   generic:
+    all: Alles
     changes_saved_msg: Wijzigingen succesvol opgeslagen!
     copy: Kopiëren
     save_changes: Wijzigingen opslaan
     validation_errors:
       one: Er is iets niet helemaal goed! Bekijk onderstaande fout
       other: Er is iets niet helemaal goed! Bekijk onderstaande %{count} fouten
+  identity_proofs:
+    active: Actief
+    authorize: Ja, autoriseren
+    authorize_connection_prompt: Deze cryptografische verbinding autoriseren?
+    errors:
+      failed: De cryptografische verbinding is mislukt. Probeer het opnieuw vanaf %{provider}.
+      keybase:
+        invalid_token: Keybase tokens zijn hashes van handtekeningen en moeten 66 hex tekens zijn
+        verification_failed: Keybase herkent dit token niet als een handtekening van Keybase gebruiker %{kb_username}. Probeer het opnieuw vanuit Keybase.
+    explanation_html: Hier kunt u cryptografisch uw andere identiteiten, zoals een Keybase profiel, met elkaar verbinden. Hierdoor kunnen andere mensen u versleutelde berichten sturen en vertrouwen op de inhoud die u hen stuurt.
+    i_am_html: Ik ben %{username} op %{service}.
+    identity: Identiteit
+    inactive: Inactief
+    status: Verificatiestatus
+    view_proof: Bekijk bewijs
   imports:
     modes:
       merge: Samenvoegen
@@ -721,6 +765,17 @@ nl:
     other: Overig
     publishing: Publiceren
     web: Webapp
+  relationships:
+    activity: Accountactiviteit
+    dormant: Sluimerend
+    moved: Verhuisd
+    mutual: Wederzijds
+    primary: Primair
+    relationship: Relatie
+    remove_selected_domains: Alle volgers van de geselecteerde domeinen verwijderen
+    remove_selected_followers: Geselecteerde volgers verwijderen
+    remove_selected_follows: Geselecteerde gebruikers ontvolgen
+    status: Accountstatus
   remote_follow:
     acct: Geef jouw account@domein op die je wilt gebruiken
     missing_resource: Kon vereiste doorverwijzings-URL voor jouw account niet vinden
@@ -795,10 +850,12 @@ nl:
     edit_profile: Profiel bewerken
     export: Exporteren
     featured_tags: Uitgelichte hashtags
+    identity_proofs: Identiteitsbewijzen
     import: Importeren
     migrate: Accountmigratie
     notifications: Meldingen
     preferences: Voorkeuren
+    relationships: Volgers en gevolgden
     settings: Instellingen
     two_factor_authentication: Tweestapsverificatie
     your_apps: Jouw toepassingen
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 8c115a436..85df11cf6 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -4,20 +4,29 @@ oc:
     about_hashtag_html: Vaquí los estatuts publics ligats a <strong>#%{hashtag}</strong>. Podètz interagir amb eles s’avètz un compte ont que siasque sul fediverse.
     about_mastodon_html: Mastodon es un malhum social bastit amb de protocòls liures e gratuits. Es descentralizat coma los corrièls.
     about_this: A prepaus d’aquesta instància
+    active_count_after: actius
+    active_footnote: Utilizaire actius per mes (UAM)
     administered_by: 'Administrat per :'
     api: API
     apps: Aplicacions per mobil
+    apps_platforms: Utilizatz Mastodon d‘iOS, Android o d’autras plataforma estant
+    browse_directory: Navigatz per l’annuari de perfil e filtratz segon çò qu’aimatz
+    browse_public_posts: Navigatz pel flux public a Mastodon
     contact: Contacte
     contact_missing: Pas parametrat
     contact_unavailable: Pas disponible
+    discover_users: Descobrissètz de nòvas personas
     documentation: Documentacion
     extended_description_html: |
       <h3>Una bona plaça per las règlas</h3>
       <p>La descripcion longa es pas estada causida pel moment.</p>
     generic_description: "%{domain} es un dels servidors del malhum"
+    get_apps: Ensajatz una aplicacion mobil
     hosted_on: Mastodon albergat sus %{domain}
     learn_more: Ne saber mai
     privacy_policy: Politica de confidencialitat
+    see_whats_happening: Agachatz çò qu’arriba
+    server_stats: 'Estatisticas del servidor :'
     source_code: Còdi font
     status_count_after:
       one: estatut
@@ -68,6 +77,7 @@ oc:
       delete: Suprimir
       destroyed_msg: Nòta de moderacion ben suprimida !
     accounts:
+      approve: Aprovar
       are_you_sure: Sètz segur ?
       avatar: Avatar
       by_domain: Domeni
@@ -113,6 +123,7 @@ oc:
       moderation:
         active: Actius
         all: Totes
+        pending: En espèra
         silenced: Resconduts
         suspended: Suspenduts
         title: Moderacion
@@ -122,6 +133,7 @@ oc:
       no_limits_imposed: Cap de limit impausat
       not_subscribed: Pas seguidor
       outbox_url: URL Outbox
+      pending: Revision en espèra
       perform_full_suspension: Suspendre
       profile_url: URL del perfil
       promote: Promòure
@@ -400,6 +412,10 @@ oc:
         min_invite_role:
           disabled: Degun
           title: Autorizat amb invitacions
+      registrations_mode:
+        modes:
+          none: Degun pòt pas se marcar
+        title: Mòdes d’inscripcion
       show_known_fediverse_at_about_page:
         desc_html: Un còp activat mostrarà los tuts de totes los fediverse dins l’apercebut. Autrament mostrarà pas que los tuts locals.
         title: Mostrar los fediverse coneguts dins l’apercebut del flux
@@ -483,7 +499,9 @@ oc:
     your_token: Vòstre geton d’accès
   auth:
     agreement_html: En vos marcar acceptatz <a href="%{rules_path}">las règlas del servidor</a> e <a href="%{terms_path}">politica de confidencialitat</a>.
+    apply_for_account: Demandar una invitacion
     change_password: Senhal
+    checkbox_agreement_html: Accepti las <a href="%{rules_path}" target="_blank">règlas del servidor</a> e <a href="%{terms_path}" target="_blank">los tèrmes del servici</a>
     confirm_email: Confirmar lo corrièl
     delete_account: Suprimir lo compte
     delete_account_html: Se volètz suprimir vòstre compte, podètz <a href="%{path}">o far aquí</a>. Vos demandarem que confirmetz.
@@ -499,10 +517,12 @@ oc:
       cas: CAS
       saml: SAML
     register: Se marcar
+    registration_closed: "%{instance} accepta pas de nòus membres"
     resend_confirmation: Tornar mandar las instruccions de confirmacion
     reset_password: Reïnicializar lo senhal
     security: Seguretat
     set_new_password: Picar un nòu senhal
+    trouble_logging_in: Problèmas de connexion ?
   authorize_follow:
     already_following: Seguètz ja aqueste compte
     error: O planhèm, i a agut una error al moment de cercar lo compte
@@ -654,12 +674,19 @@ oc:
     more: Mai…
     resources: Ressorsas
   generic:
+    all: Tot
     changes_saved_msg: Cambiaments ben realizats !
     copy: Copiar
     save_changes: Salvar los cambiaments
     validation_errors:
       one: I a quicòm que truca ! Mercés de corregir l’error çai-jos
       other: I a quicòm que truca ! Mercés de corregir las %{count} errors çai-jos
+  identity_proofs:
+    authorize: Òc, autorizar
+    authorize_connection_prompt: Autorizar aquesta connexion criptografica ?
+    i_am_html: Soi %{username} a %{service}.
+    identity: Identitat
+    status: Estatut de verificacion
   imports:
     modes:
       merge: Fondre
@@ -769,7 +796,7 @@ oc:
       duration_too_long: es tròp alonhat dins lo futur
       duration_too_short: es tròp d’ora
       expired: Lo sondatge es ja acabat
-      over_character_limit: pòt pas èsser superior a %{max}  caractèrs cadun
+      over_character_limit: pòt pas èsser superior a %{max} caractèrs cadun
       too_few_options: deu contenir mai d’una opcion
       too_many_options: pòt pas contenir mai de %{max} opcions
   preferences:
@@ -777,6 +804,14 @@ oc:
     other: Autre
     publishing: Publicar
     web: Interfàcia Web
+  relationships:
+    activity: Activitat del compte
+    dormant: Inactiu
+    moved: Mudat
+    mutual: Mutuala
+    primary: Pirmària
+    relationship: Relacion
+    status: Estat del compte
   remote_follow:
     acct: Picatz vòstre utilizaire@domeni que que volètz utilizar per sègre aqueste utilizaire
     missing_resource: URL de redireccion pas trobada
@@ -855,6 +890,7 @@ oc:
     migrate: Migracion de compte
     notifications: Notificacions
     preferences: Preferéncias
+    relationships: Abonaments e seguidors
     settings: Paramètres
     two_factor_authentication: Autentificacion en dos temps
     your_apps: Vòstras aplicacions
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 9470e875a..bacb457bf 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -4,20 +4,30 @@ pl:
     about_hashtag_html: Znajdują się tu publiczne wpisy oznaczone hashtagiem <strong>#%{hashtag}</strong>. Możesz dołączyć do dyskusji, jeżeli posiadasz konto gdziekolwiek w Fediwersum.
     about_mastodon_html: Mastodon jest wolną i otwartą siecią społecznościową, zdecentralizowaną alternatywą dla zamkniętych, komercyjnych platform.
     about_this: O tej instancji
+    active_count_after: aktywny
+    active_footnote: Aktywni użytkownicy miesięcznie (AUM)
     administered_by: 'Administrowana przez:'
     api: API
     apps: Aplikacje
+    apps_platforms: Używaj Mastodon z iOS, Androida i innych platform
+    browse_directory: Przeglądaj katalog profilu i filtruj według zainteresowań
+    browse_public_posts: Przeglądaj na żywo strumień publicznych posterunków na Mastodon
     contact: Kontakt
     contact_missing: Nie ustawiono
     contact_unavailable: Nie dotyczy
+    discover_users: Odkryj użytkowników
     documentation: Dokumentacja
     extended_description_html: |
       <h3>Dobre miejsce na zasady użytkowania</h3>
       <p>Nie ustawiono jeszcze szczegółowego opisu</p>
+    federation_hint_html: Z kontem na %{instance} będziesz mógł śledzić ludzi na dowolnym serwerze Mastodon i nie tylko.
     generic_description: "%{domain} jest jednym z serwerów sieci"
+    get_apps: Wypróbuj aplikację mobilną
     hosted_on: Mastodon uruchomiony na %{domain}
     learn_more: Dowiedz się więcej
     privacy_policy: Polityka prywatności
+    see_whats_happening: Zobacz, co się dzieje
+    server_stats: 'Statystyki serwera:'
     source_code: Kod źródłowy
     status_count_after:
       few: wpisów
@@ -25,6 +35,7 @@ pl:
       one: wpisu
       other: wpisów
     status_count_before: Są autorami
+    tagline: Śledź przyjaciół i odkrywaj nowych
     terms: Zasady użytkowania
     user_count_after:
       few: użytkowników
@@ -63,7 +74,7 @@ pl:
     reserved_username: Ta nazwa użytkownika jest zarezerwowana
     roles:
       admin: Administrator
-      bot: Bot
+      bot: Botka
       moderator: Moderator
     unfollow: Przestań śledzić
   admin:
@@ -76,6 +87,7 @@ pl:
       delete: Usuń
       destroyed_msg: Pomyślnie usunięto notatkę moderacyjną!
     accounts:
+      approve: Zatwierdzenie
       are_you_sure: Jesteś tego pewien?
       avatar: Awatar
       by_domain: Domena
@@ -121,6 +133,7 @@ pl:
       moderation:
         active: Aktywne
         all: Wszystkie
+        pending: W trakcie oczekiwania
         silenced: Wyciszone
         suspended: Zawieszone
         title: Moderacja
@@ -130,6 +143,7 @@ pl:
       no_limits_imposed: Nie nałożono ograniczeń
       not_subscribed: Nie zasubskrybowano
       outbox_url: Adres skrzynki nadawczej
+      pending: Oczekiwany przegląd
       perform_full_suspension: Zawieś
       profile_url: Adres profilu
       promote: Podnieś uprawnienia
@@ -137,6 +151,7 @@ pl:
       public: Publiczne
       push_subscription_expires: Subskrypcja PuSH wygasa
       redownload: Odśwież profil
+      reject: Odrzuć
       remove_avatar: Usun awatar
       remove_header: Usuń nagłówek
       resend_confirmation:
@@ -149,7 +164,7 @@ pl:
       role: Uprawnienia
       roles:
         admin: Administrator
-        moderator: Moderator
+        moderator: Prowadzący
         staff: Ekipa
         user: Użytkownik
       salmon_url: Adres Salmon
@@ -223,7 +238,7 @@ pl:
       new:
         title: Dodaj nowe niestandardowe emoji
       overwrite: Zastąp
-      shortcode: Shortcode
+      shortcode: Kod skrótu
       shortcode_hint: Co najmniej 2 znaki, tylko znaki alfanumeryczne i podkreślniki
       title: Niestandardowe emoji
       unlisted: Niewidoczne
@@ -412,6 +427,12 @@ pl:
         min_invite_role:
           disabled: Nikt
           title: Kto może zapraszać użytkowników
+      registrations_mode:
+        modes:
+          approved: Zatwierdzenie wymagane do rejestracji
+          none: Nikt nie może się zarejestrować
+          open: Każdy może zarejestrować się
+        title: Tryb rejestracji
       show_known_fediverse_at_about_page:
         desc_html: Jeśli włączone, podgląd instancji będzie wyświetlał wpisy z całego Fediwersum. W innym przypadku, będą wyświetlane tylko lokalne wpisy.
         title: Pokazuj wszystkie znane wpisy na podglądzie instancji
@@ -462,7 +483,7 @@ pl:
       accounts: Konta
       hidden: Ukryte
       hide: Ukryj w katalogu
-      name: Hashtag
+      name: Hasztag
       title: Hashtagi
       unhide: Pokazuj w katalogu
       visible: Widoczne
@@ -474,6 +495,9 @@ pl:
       edit_preset: Edytuj szablon ostrzeżenia
       title: Zarządzaj szablonami ostrzeżeń
   admin_mailer:
+    new_pending_account:
+      body: Szczegóły dotyczące nowego konta znajdują się poniżej. Możesz zatwierdzić lub odrzucić ten wniosek.
+      subject: Nowe konto do przeglądu w %{instance} (%{username})
     new_report:
       body: Użytkownik %{reporter} zgłosił(a) %{target}
       body_remote: Użytkownik instancji %{domain} zgłosił(a) %{target}
@@ -495,7 +519,9 @@ pl:
     your_token: Twój token dostępu
   auth:
     agreement_html: Rejestrując się, oświadczasz, że zapoznałeś(-aś) się z <a href="%{rules_path}">informacjami o serwerze</a> i <a href="%{terms_path}">zasadami korzystania z usługi</a>.
+    apply_for_account: Prośba o zaproszenie
     change_password: Hasło
+    checkbox_agreement_html: Zgadzam się na <a href="%{rules_path}" target="_blank">server rules</a> i <a href="%{terms_path}" target="_blank">terms of service</a>
     confirm_email: Potwierdź adres e-mail
     delete_account: Usunięcie konta
     delete_account_html: Jeżeli chcesz usunąć konto, <a href="%{path}">przejdź tutaj</a>. Otrzymasz prośbę o potwierdzenie.
@@ -511,10 +537,12 @@ pl:
       cas: CAS
       saml: SAML
     register: Rejestracja
+    registration_closed: "%{instance} nie przyjmuje nowych członków"
     resend_confirmation: Ponownie prześlij instrukcje weryfikacji
     reset_password: Zresetuj hasło
     security: Bezpieczeństwo
     set_new_password: Ustaw nowe hasło
+    trouble_logging_in: Problemy z logowaniem?
   authorize_follow:
     already_following: Już śledzisz to konto
     error: Niestety, podczas sprawdzania zdalnego konta wystąpił błąd
@@ -550,7 +578,7 @@ pl:
     warning_title: Dostępność usuniętej zawartości
   directories:
     directory: Katalog profilów
-    enabled: Jesteś obecnie zapisany(-a) do katalogu
+    enabled: Jesteś obecnie zapisany(-a) do katalogu.
     enabled_but_waiting: Jesteś zapisany(-a) do katalogu, ale jeszcze nie śledzi Cię wystarczająca liczba osób (%{min_followers}), aby się tam pojawić.
     explanation: Poznaj profile na podstawie zainteresowań
     explore_mastodon: Odkrywaj %{title}
@@ -612,6 +640,7 @@ pl:
     more: Więcej…
     resources: Zasoby
   generic:
+    all: Wszystkie
     changes_saved_msg: Ustawienia zapisane!
     copy: Kopiuj
     save_changes: Zapisz zmiany
@@ -621,6 +650,21 @@ pl:
       many: Coś jest wciąż nie tak! Przejrzyj %{count} poniższych błędów
       one: Coś jest wciąż nie tak! Przyjrzyj się poniższemu błędowi
       other: Coś jest wciąż nie tak! Przejrzyj poniższe błędy (%{count})
+  identity_proofs:
+    active: Aktywny
+    authorize: Tak, upoważnić
+    authorize_connection_prompt: Autoryzować to połączenie kryptograficzne?
+    errors:
+      failed: Połączenie kryptograficzne nie powiodło się. Proszę spróbować ponownie od %{provider}.
+      keybase:
+        invalid_token: Tokeny klawiaturowe są skrótami podpisów i muszą składać się z 66 znaków heksadecymalnych
+        verification_failed: Keybase nie rozpoznaje tego tokena jako podpis użytkownika Keybase user %{kb_username}. Proszę spróbować ponownie z Keybase.
+    explanation_html: Tutaj możesz kryptograficznie połączyć swoje inne tożsamości, takie jak profil w bazie danych. Pozwala to innym osobom wysyłać zaszyfrowane wiadomości i ufać treści, które im wysyłasz.
+    i_am_html: Jestem %{username} na %{service}.
+    identity: Tożsamość
+    inactive: Nieaktywny
+    status: Status weryfikacji
+    view_proof: Proporcjonalny widok
   imports:
     modes:
       merge: Połącz
@@ -744,6 +788,17 @@ pl:
     other: Pozostałe
     publishing: Publikowanie
     web: Sieć
+  relationships:
+    activity: Działalność rachunkowa
+    dormant: Uśpiony
+    moved: Przemieszczone
+    mutual: Wzajemne korzystanie
+    primary: Podstawowy
+    relationship: Relacje z innymi osobami
+    remove_selected_domains: Usuń wszystkich zwolenników z wybranych domen
+    remove_selected_followers: Usuwanie wybranych naśladowców
+    remove_selected_follows: Rozwiń wybranych użytkowników
+    status: Status konta
   remote_follow:
     acct: Podaj swój adres (nazwa@domena), z którego chcesz wykonać działanie
     missing_resource: Nie udało się znaleźć adresu przekierowania z Twojej domeny
@@ -819,10 +874,12 @@ pl:
     export: Eksportowanie danych
     featured_tags: Wyróżnione hashtagi
     flavours: Odmiany
+    identity_proofs: Dowody tożsamości
     import: Importowanie danych
     migrate: Migracja konta
     notifications: Powiadomienia
     preferences: Preferencje
+    relationships: Śledzi i naśladowcy
     settings: Ustawienia
     two_factor_authentication: Uwierzytelnianie dwuetapowe
     your_apps: Twoje aplikacje
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 46b3ec089..97cc73e9f 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -4,25 +4,36 @@ pt-BR:
     about_hashtag_html: Estes são toots públicos com a hashtag <strong>#%{hashtag}</strong>. Você pode interagir com eles se tiver uma conta em qualquer lugar no fediverso.
     about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos e software gratuito e de código aberto. É descentralizada como e-mail.
     about_this: Sobre
+    active_count_after: Ativo
+    active_footnote: Usuários ativos mensais (UAM)
     administered_by: 'Administrado por:'
     api: API
     apps: Apps
+    apps_platforms: Use o Mastodon a partir de iOS, Android e outras plataformas
+    browse_directory: Procurar um diretório de perfil e filtrar por interesses
+    browse_public_posts: Navegue por um fluxo ao vivo de posts públicos no Mastodon
     contact: Contato
     contact_missing: Não definido
     contact_unavailable: Não disponível
+    discover_users: Descubra os usuários
     documentation: Documentação
     extended_description_html: |
       <h3>Um bom lugar para regras</h3>
       <p>A descrição da instância ainda não foi feita.</p>
+    federation_hint_html: Com uma conta em %{instance} poderá seguir pessoas em qualquer servidor Mastodon e para além dele.
     generic_description: "%{domain} é um servidor na rede"
+    get_apps: Experimente uma aplicação móvel
     hosted_on: Mastodon hospedado em %{domain}
     learn_more: Saiba mais
     privacy_policy: Política de Privacidade
+    see_whats_happening: Veja o que está acontecendo
+    server_stats: 'Estatísticas do servidor:'
     source_code: Código-fonte
     status_count_after:
       one: status
       other: status
     status_count_before: Autores de
+    tagline: Siga amigos e descubra novos
     terms: Termos de serviço
     user_count_after:
       one: usuário
@@ -68,6 +79,7 @@ pt-BR:
       delete: Excluir
       destroyed_msg: Nota de moderação excluída com sucesso!
     accounts:
+      approve: Aprovar
       are_you_sure: Você tem certeza?
       avatar: Avatar
       by_domain: Domínio
@@ -113,6 +125,7 @@ pt-BR:
       moderation:
         active: Ativo
         all: Todos
+        pending: Pendente
         silenced: Silenciados
         suspended: Suspensos
         title: Moderação
@@ -122,6 +135,7 @@ pt-BR:
       no_limits_imposed: Nenhum limite imposto
       not_subscribed: Não está inscrito
       outbox_url: URL da caixa de saída
+      pending: Esperando revisão
       perform_full_suspension: Suspender
       profile_url: URL do perfil
       promote: Promover
@@ -129,6 +143,7 @@ pt-BR:
       public: Público
       push_subscription_expires: Inscrição PuSH expira
       redownload: Atualizar perfil
+      reject: Rejeitar
       remove_avatar: Remover avatar
       remove_header: Remover cabeçalho
       resend_confirmation:
@@ -291,6 +306,7 @@ pt-BR:
       back_to_account: Voltar para a conta
       title: Pessoas que seguem %{acct}
     instances:
+      by_domain: Domínio
       delivery_available: Entrega está disponível
       known_accounts:
         one: "%{count} conta conhecida"
@@ -399,6 +415,12 @@ pt-BR:
         min_invite_role:
           disabled: Ninguém
           title: Permitir convites de
+      registrations_mode:
+        modes:
+          approved: Aprovação necessária para cadastro
+          none: Ninguém pode se cadastrar
+          open: Qualquer um pode se cadastrar
+        title: Modo de inscrição
       show_known_fediverse_at_about_page:
         desc_html: Quando ligado, vai mostrar toots de todo o fediverso conhecido na prévia da timeline. Senão, mostra somente toots locais.
         title: Mostrar fediverso conhecido na prévia da timeline
@@ -461,6 +483,9 @@ pt-BR:
       edit_preset: Editar o aviso pré-definido
       title: Gerenciar os avisos pré-definidos
   admin_mailer:
+    new_pending_account:
+      body: Os detalhes da nova conta estão abaixo. Você pode aprovar ou rejeitar essa aplicação.
+      subject: Nova conta para revisão em %{instance} (%{username})
     new_report:
       body: "%{reporter} denunciou %{target}"
       body_remote: Alguém da instância %{domain} reportou %{target}
@@ -482,7 +507,9 @@ pt-BR:
     your_token: Seu token de acesso
   auth:
     agreement_html: Ao se cadastrar você concorda em seguir <a href="%{rules_path}">as regras da instância</a> e <a href="%{terms_path}">os nossos termos de serviço</a>.
+    apply_for_account: Pedir um convite
     change_password: Senha
+    checkbox_agreement_html: Eu concordo com <a href="%{rules_path}" target="_blank">as regras do servidor</a> e com <a href="%{terms_path}" target="_blank">os termos de serviço</a>
     confirm_email: Confirmar e-mail
     delete_account: Excluir conta
     delete_account_html: Se você deseja excluir a sua conta, você pode <a href="%{path}">prosseguir para cá</a>. Uma confirmação será requisitada.
@@ -498,10 +525,12 @@ pt-BR:
       cas: CAS
       saml: SAML
     register: Cadastrar-se
+    registration_closed: "%{instance} não está aceitando novos membros"
     resend_confirmation: Reenviar instruções de confirmação
     reset_password: Redefinir senha
     security: Segurança
     set_new_password: Definir uma nova senha
+    trouble_logging_in: Problemas para se conectar?
   authorize_follow:
     already_following: Você já está seguindo esta conta
     error: Infelizmente, ocorreu um erro ao buscar a conta remota
@@ -537,8 +566,11 @@ pt-BR:
     warning_title: Disponibilidade de conteúdo disseminado
   directories:
     directory: Diretório de perfis
+    enabled: Você está na lista do diretório.
+    enabled_but_waiting: Você escolheu ser listado no diretório, mas você ainda não tem o mínimo de seguidores (%{min_followers}) para ser listado.
     explanation: Descobrir usuários baseado em seus interesses
     explore_mastodon: Explorar %{title}
+    how_to_enable: Você não se inscreveu no diretório. Você pode se inscrever abaixo. Use hashtags no texto da sua bio para ser listado em hashtags específicas!
     people:
       one: "%{count} pessoa"
       other: "%{count} pessoas"
@@ -569,6 +601,10 @@ pt-BR:
     lists: Listas
     mutes: Você silenciou
     storage: Armazenamento de mídia
+  featured_tags:
+    add_new: Adicionar uma nova hashtag
+    errors:
+      limit: Você atingiu o limite de hashtags em destaque
   filters:
     contexts:
       home: Página inicial
@@ -590,17 +626,39 @@ pt-BR:
     more: Mais…
     resources: Recursos
   generic:
+    all: Tudo
     changes_saved_msg: Mudanças salvas com sucesso!
     copy: Copiar
     save_changes: Salvar mudanças
     validation_errors:
       one: Algo não está certo! Por favor, reveja o erro abaixo
       other: Algo não está certo! Por favor, reveja os %{count} erros abaixo
+  identity_proofs:
+    active: Ativo
+    authorize: Sim, autorizar
+    authorize_connection_prompt: Autorizar essa conexão criptográfica?
+    errors:
+      failed: A conexão criptográfica falhou. Por favor tente novamente a partir de %{provider}.
+      keybase:
+        invalid_token: Tokens keybase são hashs de assinatura e devem conter 66 caracteres hexa
+        verification_failed: Keybase não reconhece esse token como uma assinatura do usuário keybase %{kb_username}. Por favor tente novamente a partir de Keybase.
+    explanation_html: Você pode conectar criptograficamente suas outras identidades, tais quais seu perfil Keybase. Isso permite outras pessoas de lhe enviarem mensagens encriptadas e confiar no conteúdo que você as envia.
+    i_am_html: Eu sou %{username} em %{service}.
+    identity: Identidade
+    inactive: Inativo
+    status: Status da verificação
+    view_proof: Ver prova
   imports:
+    modes:
+      merge: Juntar
+      merge_long: Manter os registros existentes e adicionar os novos
+      overwrite: Sobreescrever
+      overwrite_long: Substituir os registros atuais com os novos
     preface: Você pode importar dados que você exportou de outra instância, como a lista de pessoas que você segue ou bloqueou.
     success: Os seus dados foram enviados com sucesso e serão processados em instantes
     types:
       blocking: Lista de bloqueio
+      domain_blocking: Lista de domínios bloqueados
       following: Pessoas que você segue
       muting: Lista de silêncio
     upload: Enviar
@@ -692,11 +750,32 @@ pt-BR:
     older: Mais antigo
     prev: Anterior
     truncate: "&hellip;"
+  polls:
+    errors:
+      already_voted: Você já votou nessa pesquisa
+      duplicate_options: contém itens duplicados
+      duration_too_long: está muito longe no futuro
+      duration_too_short: é curto demais
+      expired: A enquete já terminou
+      over_character_limit: não pode ter mais que %{max} caracteres em cada
+      too_few_options: deve ter mais que um item
+      too_many_options: não pode ter mais que %{max} itens
   preferences:
     languages: Idiomas
     other: Outro
     publishing: Publicação
     web: Web
+  relationships:
+    activity: Atividade da conta
+    dormant: Inativo
+    moved: Mudou-se
+    mutual: Mútuo
+    primary: Primário
+    relationship: Relação
+    remove_selected_domains: Remover todos os seguidores dos domínios selecionados
+    remove_selected_followers: Remover os seguidores selecionados
+    remove_selected_follows: Deixar de seguir usuários selecionados
+    status: Status da conta
   remote_follow:
     acct: Insira o seu usuário@domínio a partir do qual você deseja agir
     missing_resource: Não foi possível encontrar a URL de direcionamento para a sua conta
@@ -770,10 +849,13 @@ pt-BR:
     development: Desenvolvimento
     edit_profile: Editar perfil
     export: Exportar dados
+    featured_tags: Hashtags em destaque
+    identity_proofs: Provas de identidade
     import: Importar
     migrate: Migração de conta
     notifications: Notificações
     preferences: Preferências
+    relationships: Seguindo e seguidores
     settings: Configurações
     two_factor_authentication: Autenticação em dois passos
     your_apps: Seus aplicativos
@@ -799,6 +881,11 @@ pt-BR:
       ownership: Toots de outras pessoas não podem ser fixados
       private: Toot não-público não pode ser fixado
       reblog: Um compartilhamento não pode ser fixado
+    poll:
+      total_votes:
+        one: "%{count} voto"
+        other: "%{count} votos"
+      vote: Votar
     show_more: Mostrar mais
     sign_in_to_participate: Entre para participar dessa conversa
     title: '%{name}: "%{quote}"'
@@ -896,6 +983,10 @@ pt-BR:
 
       <p>Adaptado originalmente a partir da <a href="https://github.com/discourse/discourse">política de privacidade Discourse</a>.</p>
     title: "%{instance} Termos de Serviço e Política de Privacidade"
+  themes:
+    contrast: Mastodon  (Alto contraste)
+    default: Mastodon (Escuro)
+    mastodon-light: Mastodon (claro)
   time:
     formats:
       default: "%b %d, %Y, %H:%M"
diff --git a/config/locales/pt.yml b/config/locales/pt.yml
index d943d6511..886d5d895 100644
--- a/config/locales/pt.yml
+++ b/config/locales/pt.yml
@@ -4,25 +4,36 @@ pt:
     about_hashtag_html: Estes são toots públicos marcados com <strong>#%{hashtag}</strong>. Podes interagir com eles se tiveres uma conta Mastodon.
     about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos da web e software livre e gratuito. É descentralizado como e-mail.
     about_this: Sobre esta instância
+    active_count_after: ativo
+    active_footnote: Usuários ativos mensais (UAM)
     administered_by: 'Administrado por:'
     api: API
     apps: Aplicações móveis
+    apps_platforms: Use o Mastodon a partir de iOS, Android e outras plataformas
+    browse_directory: Procurar um diretório de perfil e filtrar por interesses
+    browse_public_posts: Navegue por um fluxo ao vivo de posts públicos no Mastodon
     contact: Contacto
     contact_missing: Não configurado
     contact_unavailable: n.d.
+    discover_users: Descubra os usuários
     documentation: Documentação
     extended_description_html: |
       <h3>Um bom lugar para regras</h3>
       <p>A descrição estendida ainda não foi configurada.</p>
+    federation_hint_html: Com uma conta em %{instance} poderá seguir pessoas em qualquer servidor Mastodon e para além dele.
     generic_description: "%{domain} é um servidor na rede"
+    get_apps: Experimente uma aplicação móvel
     hosted_on: Mastodon em %{domain}
     learn_more: Saber mais
     privacy_policy: Política de privacidade
+    see_whats_happening: Veja o que está acontecendo
+    server_stats: 'Estatisticas do servidor:'
     source_code: Código fonte
     status_count_after:
       one: publicação
       other: publicações
     status_count_before: Que fizeram
+    tagline: Siga os amigos e descubra novos amigos
     terms: termos de serviço
     user_count_after:
       one: utilizador
@@ -68,6 +79,7 @@ pt:
       delete: Eliminar
       destroyed_msg: Nota de moderação excluída com sucesso!
     accounts:
+      approve: Aprovar
       are_you_sure: Tens a certeza?
       avatar: Avatar
       by_domain: Domínio
@@ -113,6 +125,7 @@ pt:
       moderation:
         active: Activo
         all: Todos
+        pending: Pendente
         silenced: Silenciados
         suspended: Supensos
         title: Moderação
@@ -122,6 +135,7 @@ pt:
       no_limits_imposed: Sem limites impostos
       not_subscribed: Não inscrito
       outbox_url: URL da caixa de saída
+      pending: Revisão pendente
       perform_full_suspension: Fazer suspensão completa
       profile_url: URL do perfil
       promote: Promover
@@ -129,6 +143,7 @@ pt:
       public: Público
       push_subscription_expires: A Inscrição PuSH expira
       redownload: Atualizar avatar
+      reject: Rejeitar
       remove_avatar: Remover o avatar
       remove_header: Remover o cabeçalho
       resend_confirmation:
@@ -400,6 +415,12 @@ pt:
         min_invite_role:
           disabled: Ninguém
           title: Permitir convites de
+      registrations_mode:
+        modes:
+          approved: Aprovação necessária para inscrição
+          none: Ninguém pode se inscrever
+          open: Qualquer um pode se inscrever
+        title: Modo de registo
       show_known_fediverse_at_about_page:
         desc_html: Quando comutado, irá mostrar a previsualização de publicações de todo o fediverse conhecido. De outro modo só mostrará publicações locais.
         title: Mostrar o fediverse conhecido na previsualização da cronologia
@@ -462,6 +483,9 @@ pt:
       edit_preset: Editar o aviso predefinido
       title: Gerir os avisos predefinidos
   admin_mailer:
+    new_pending_account:
+      body: Os detalhes da nova conta estão abaixo. Você pode aprovar ou rejeitar este pedido.
+      subject: Nova conta para revisão em %{instance} (%{username})
     new_report:
       body: "%{reporter} relatou %{target}"
       body_remote: Alguém de %{domain} relatou %{target}
@@ -483,7 +507,9 @@ pt:
     your_token: O teu token de acesso
   auth:
     agreement_html: Registando-te concordas em seguir <a href="%{rules_path}">as regras da instância</a> e <a href="%{terms_path}">os nossos termos de serviço</a>.
+    apply_for_account: Solicite um convite
     change_password: Palavra-passe
+    checkbox_agreement_html: Eu concordo com a <a href="%{rules_path}" target="_blank">regras do servidor</a> e <a href="%{terms_path}" target="_blank">terms of service</a>
     confirm_email: Confirmar e-mail
     delete_account: Eliminar conta
     delete_account_html: Se desejas eliminar a conta, podes <a href="%{path}">continua aqui</a>. Uma confirmação será pedida.
@@ -499,10 +525,12 @@ pt:
       cas: CAS
       saml: SAML
     register: Registar
+    registration_closed: "%{instance} não aceita novos membros"
     resend_confirmation: Reenviar instruções de confirmação
     reset_password: Criar nova palavra-passe
     security: Alterar palavra-passe
     set_new_password: Editar palavra-passe
+    trouble_logging_in: Problemas para entrar?
   authorize_follow:
     already_following: Tu já estás a seguir esta conta
     error: Infelizmente, ocorreu um erro ao buscar a conta remota
@@ -600,12 +628,28 @@ pt:
     more: Mais…
     resources: Recursos
   generic:
+    all: Todos
     changes_saved_msg: Alterações guardadas!
     copy: Copiar
     save_changes: Guardar alterações
     validation_errors:
       one: Algo não está correcto. Por favor vê o erro abaixo
       other: Algo não está correto. Por favor vê os %{count} erros abaixo
+  identity_proofs:
+    active: Ativo
+    authorize: Sim, autorizar
+    authorize_connection_prompt: Autorizar esta ligação criptográfica?
+    errors:
+      failed: A ligação criptográfica falhou. Por favor tente novamente a partir de %{provider}.
+      keybase:
+        invalid_token: Os tokens do Keybase são hashes de assinaturas e devem ter 66 caracteres hexadecimais
+        verification_failed: O Keybase não reconhece este token como uma assinatura do usuário do Keybase %{kb_username}. Por favor, tente novamente a partir do Keybase.
+    explanation_html: Aqui você pode conectar criptograficamente suas outras identidades, como um perfil Keybase. Isto permite que outras pessoas lhe enviem mensagens encriptadas e conteúdos de confiança que você lhes envia.
+    i_am_html: Eu sou %{username} em %{service}.
+    identity: Identidade
+    inactive: Inativo
+    status: Status de verificação
+    view_proof: Ver prova
   imports:
     modes:
       merge: Juntar
@@ -723,6 +767,17 @@ pt:
     other: Outro
     publishing: Publicação
     web: Web
+  relationships:
+    activity: Atividade da conta
+    dormant: Dorminhoco
+    moved: Movido
+    mutual: Mútuo
+    primary: Primário
+    relationship: Relacionamento
+    remove_selected_domains: Remover todos os seguidores dos domínios selecionados
+    remove_selected_followers: Remover seguidores selecionados
+    remove_selected_follows: Usuários selecionados não acompanhados
+    status: Status da conta
   remote_follow:
     acct: Entre seu usuário@domínio do qual quer seguir
     missing_resource: Não foi possível achar a URL de redirecionamento para sua conta
@@ -797,10 +852,12 @@ pt:
     edit_profile: Editar perfil
     export: Exportar dados
     featured_tags: Hashtags destacadas
+    identity_proofs: Provas de identidade
     import: Importar
     migrate: Migração de conta
     notifications: Notificações
     preferences: Preferências
+    relationships: Seguidores e seguidores
     settings: Configurações
     two_factor_authentication: Autenticação em dois passos
     your_apps: As tuas aplicações
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index ffc9471cd..f852b7d79 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -4,19 +4,30 @@ ru:
     about_hashtag_html: Это публичные статусы, отмеченные хэштегом <strong>#%{hashtag}</strong>. Вы можете взаимодействовать с ними при наличии у Вас аккаунта в глобальной сети Mastodon.
     about_mastodon_html: Mastodon - это <em>свободная</em> социальная сеть с <em>открытым исходным кодом</em>. Как <em>децентрализованная</em> альтернатива коммерческим платформам, Mastodon предотвращает риск монополизации Вашего общения одной компанией. Выберите сервер, которому Вы доверяете &mdash; что бы Вы ни выбрали, Вы сможете общаться со всеми остальными. Любой может запустить свой собственный узел Mastodon и участвовать в <em>социальной сети</em> совершенно бесшовно.
     about_this: Об этом узле
+    active_count_after: деятельный
+    active_footnote: Ежемесячные активные пользователи (ЕAП)
     administered_by: 'Администратор узла:'
     api: API
     apps: Приложения
+    apps_platforms: Используйте Mastodon с iOS, Android и других платформ
+    browse_directory: Просмотр каталога профилей и фильтрация по интересам
+    browse_public_posts: Просмотрите прямую трансляцию публичных сообщений на Мастодоне
     contact: Связаться
     contact_missing: Не установлено
     contact_unavailable: Недоступен
+    discover_users: Обнаружить пользователей
+    documentation: Документация
     extended_description_html: |
       <h3>Хорошее место для правил</h3>
       <p>Расширенное описание еще не настроено.</p>
+    federation_hint_html: Имея учетную запись на %{instance}, вы сможете следить за людьми на любом сервере Mastodon и за его пределами.
     generic_description: "%{domain} - один из серверов сети"
+    get_apps: Попробуйте мобильное приложение
     hosted_on: Mastodon размещен на %{domain}
     learn_more: Узнать больше
     privacy_policy: Политика конфиденциальности
+    see_whats_happening: Посмотрим, что происходит
+    server_stats: 'Статистика сервера:'
     source_code: Исходный код
     status_count_after:
       few: статуса
@@ -24,6 +35,7 @@ ru:
       one: статус
       other: статусов
     status_count_before: Опубликовано
+    tagline: Следите за друзьями и открывайте для себя новых
     terms: Условия использования
     user_count_after:
       few: пользователя
@@ -42,6 +54,8 @@ ru:
       other: подписчиков
     following: подписки
     joined: 'Дата регистрации: %{date}'
+    last_active: последний активный
+    link_verified_on: Владение этой ссылкой было проверено в %{date}
     media: Медиа
     moved_html: "%{name} переехал(а) на %{new_profile_link}:"
     network_hidden: Эта информация недоступна
@@ -64,25 +78,30 @@ ru:
       moderator: Модератор
     unfollow: Отписаться
   admin:
+    account_actions:
+      action: Выполнить действие
+      title: Выполните умеренное действие на %{acct}
     account_moderation_notes:
       create: Создать
       created_msg: Заметка модератора успешно создана!
       delete: Удалить
       destroyed_msg: Заметка модератора успешно удалена!
     accounts:
+      approve: Одобрить
       are_you_sure: Вы уверены?
       avatar: Аватар
       by_domain: Домен
       change_email:
         changed_msg: E-mail аккаунта успешно изменён!
-        current_email: Текущий e-mail
-        label: Сменить e-mail
-        new_email: Новый e-mail
-        submit: Сменить e-mail
-        title: Сменить e-mail для %{username}
+        current_email: Текущая электронная почта
+        label: Изменить адрес электронной почты
+        new_email: Новое сообщение электронной почты
+        submit: Изменить адрес электронной почты
+        title: Изменить адрес электронной почты для %{username}
       confirm: Подтвердить
       confirmed: Подтверждено
       confirming: Подтверждение
+      deleted: Удаленный
       demote: Разжаловать
       disable: Отключить
       disable_two_factor_authentication: Отключить 2FA
@@ -90,16 +109,19 @@ ru:
       display_name: Отображаемое имя
       domain: Домен
       edit: Изменить
-      email: E-mail
-      email_status: Статус e-mail
+      email: электронная почта
+      email_status: Состояние электронной почты
       enable: Включить
       enabled: Включен
       feed_url: URL фида
       followers: Подписчики
       followers_url: URL подписчиков
       follows: Подписки
+      header: Заголовок
       inbox_url: URL входящих
+      invited_by: По приглашению
       ip: IP
+      joined: Присоединился
       location:
         all: Все
         local: Локальные
@@ -109,23 +131,29 @@ ru:
       media_attachments: Мультимедийные вложения
       memorialize: Превратить в Памятник
       moderation:
+        active: Активный
         all: Все
+        pending: В ожидании
         silenced: Заглушенные
         suspended: Заблокированные
         title: Модерация
       moderation_notes: Заметки модератора
       most_recent_activity: Последняя активность
       most_recent_ip: Последний IP
+      no_limits_imposed: Никаких ограничений
       not_subscribed: Не подписаны
       outbox_url: URL исходящих
-      perform_full_suspension: Полная блокировка
+      pending: Ожидаемый обзор
+      perform_full_suspension: приостанавливать
       profile_url: URL профиля
       promote: Повысить
       protocol: Протокол
       public: Публичный
       push_subscription_expires: Подписка PuSH истекает
-      redownload: Обновить аватар
+      redownload: Обновить профиль
+      reject: Отклонить
       remove_avatar: Удалить аватар
+      remove_header: Удалить заголовок
       resend_confirmation:
         already_confirmed: Этот пользователь уже подтвержден
         send: Повторно отправить подтверждение по электронной почте
@@ -139,31 +167,36 @@ ru:
         moderator: Модератор
         staff: Персонал
         user: Пользователь
-      salmon_url: Salmon URL
+      salmon_url: URL-адрес лосося
       search: Поиск
-      shared_inbox_url: URL общих входящих
+      shared_inbox_url: URL-адрес общей папки входящих сообщений
       show:
-        created_reports: Жалобы, отправленные этим аккаунтом
-        targeted_reports: Жалобы на этот аккаунт
+        created_reports: Составленные отчеты
+        targeted_reports: Сообщенные другими
       silence: Глушение
+      silenced: Замалченный
       statuses: Статусы
       subscribe: Подписаться
+      suspended: Приостановлено
       title: Аккаунты
-      unconfirmed_email: Неподтверждённый e-mail
+      unconfirmed_email: Неподтверждённая электронная почта
       undo_silenced: Снять глушение
       undo_suspension: Снять блокировку
       unsubscribe: Отписаться
       username: Имя пользователя
+      warn: Предупреждение
       web: Веб
     action_logs:
       actions:
         assigned_to_self_report: "%{name} назначил(а) жалобу %{target} на себя"
         change_email_user: "%{name} сменил(а) e-mail пользователя %{target}"
         confirm_user: "%{name} подтвердил(а) e-mail адрес пользователя %{target}"
+        create_account_warning: "%{name}  послал предупреждение %{target}"
         create_custom_emoji: "%{name} загрузил(а) новый эмодзи %{target}"
         create_domain_block: "%{name} заблокировал(а) домен %{target}"
         create_email_domain_block: "%{name} добавил(а) e-mail домен %{target} в чёрный список"
         demote_user: "%{name} разжаловал(а) пользователя %{target}"
+        destroy_custom_emoji: "%{name} уничтоженный эмодзи %{target}"
         destroy_domain_block: "%{name} разблокировал(а) домен %{target}"
         destroy_email_domain_block: "%{name} добавил(а) e-mail домен %{target} в белый список"
         destroy_status: "%{name} удалил(а) статус пользователя %{target}"
@@ -217,6 +250,7 @@ ru:
       config: Конфигурация
       feature_deletions: Удаление аккаунтов
       feature_invites: Пригласительные ссылки
+      feature_profile_directory: Каталог профиля
       feature_registrations: Регистрация
       feature_relay: Ретрансляторы
       features: Возможности
@@ -234,7 +268,7 @@ ru:
       week_users_active: активно на этой неделе
       week_users_new: пользователей на этой неделе
     domain_blocks:
-      add_new: Добавить новую
+      add_new: Добавить новый доменный блок
       created_msg: Блокировка домена обрабатывается
       destroyed_msg: Блокировка домена снята
       domain: Домен
@@ -249,6 +283,13 @@ ru:
         title: Новая доменная блокировка
       reject_media: Запретить медиаконтент
       reject_media_hint: Удаляет локально хранимый медиаконтент и запрещает его загрузку в будущем. Не имеет значения в случае блокировки
+      reject_reports: Отказывать в отчетах
+      reject_reports_hint: Игнорировать все отчеты, поступающие из этого домена. Не имеет отношения к отстранению от должности
+      rejecting_media: отбраковка медиафайлов
+      rejecting_reports: отрицательные отчёты
+      severity:
+        silence: глухой
+        suspend: приостановленный
       show:
         affected_accounts:
           few: Влияет на %{count} аккаунта в базе данных
@@ -260,7 +301,7 @@ ru:
           suspend: Снять блокировку со всех существующих аккаунтов этого домена
         title: Снять блокировку с домена %{domain}
         undo: Отменить
-      undo: Отменить
+      undo: Отменить блокировку домена
     email_domain_blocks:
       add_new: Добавить новую
       created_msg: Доменная блокировка еmail успешно создана
@@ -271,8 +312,27 @@ ru:
         create: Создать блокировку
         title: Новая доменная блокировка еmail
       title: Доменная блокировка email
+    followers:
+      back_to_account: Назад в учет
+      title: "%{acct}'s Подписчики"
     instances:
-      title: Известные узлы
+      by_domain: Домен
+      delivery_available: Возможна доставка
+      known_accounts:
+        few: "%{count} известные счета"
+        many: "%{count} известные счета"
+        one: "%{count} известная учётная запись"
+        other: "%{count} известные счета"
+      moderation:
+        all: Все
+        limited: Ограничено
+        title: Умеренность
+      title: Федерация
+      total_blocked_by_us: Заблокированы нами
+      total_followed_by_them: За ними следуют они
+      total_followed_by_us: За нами
+      total_reported: Отчеты о них
+      total_storage: Медиа-вложения
     invites:
       deactivate_all: Отключить все
       filter:
@@ -283,8 +343,13 @@ ru:
       title: Приглашения
     relays:
       add_new: Добавить ретранслятор
+      delete: Удалить
       description_html: "<strong>Федеративный ретранслятор</strong> – это промежуточный сервер, который передаёт большие объёмы публичных статусов между серверами, которые подписываются и публикуют туда. <strong>Это может помочь небольшим и средним серверам находить записи со всей федерации</strong>, ведь в противном случае пользователям нужно будет вручную подписываться на людей с удалённых узлов."
+      disable: Отключить
+      disabled: Инвалид
+      enable: Включить
       enable_hint: Если включено, ваш сервер будет подписан на все публичные статусы с этого ретранслятора и начнёт туда отправлять публичные статусы со своего узла.
+      enabled: Включено
       inbox_url: URL ретранслятора
       pending: Ожидание подтверждения ретранслятора
       save_and_enable: Сохранить и включить
@@ -298,7 +363,7 @@ ru:
       account:
         note: заметка
         report: жалоба
-      action_taken_by: 'Действие предпринято:'
+      action_taken_by: Меры, принятые
       are_you_sure: Вы уверены?
       assign_to_self: Назначить себе
       assigned: Назначенный модератор
@@ -338,14 +403,20 @@ ru:
         desc_html: Измените внешний вид с CSS, загружаемым на каждой странице
         title: Особый CSS
       hero:
-        desc_html: Отображается на главной странице. Рекомендуется разрешение не менее 600х100px. Если не установлено, используется изображение узла
+        desc_html: Отображается на первой странице. Рекомендуется как минимум 600x100px. Если флажок не установлен, возвращается к миниатюре сервера
         title: Баннер узла
+      mascot:
+        desc_html: Отображается на нескольких страницах. Рекомендуется не менее 293×205px пикселей. Если не установлено, возвращается к талисману по умолчанию
+        title: Талисман
       peers_api_enabled:
         desc_html: Домены, которые были замечены этим узлом среди всей федерации
         title: Публикация списка обнаруженных узлов
       preview_sensitive_media:
         desc_html: Предпросмотр ссылок с остальных веб-сайтов будет показан даже если медиаконтент отмечен как чувствительный
         title: Показывать чувствительный медиаконтент в предпросмотре OpenGraph
+      profile_directory:
+        desc_html: Позволяет пользователям быть доступными для обнаружения
+        title: Включить каталог профиля
       registrations:
         closed_message:
           desc_html: Отображается на титульной странице, когда закрыта регистрация<br>Можно использовать HTML-теги
@@ -356,6 +427,12 @@ ru:
         min_invite_role:
           disabled: Никого
           title: Разрешать приглашения от
+      registrations_mode:
+        modes:
+          approved: Разрешение, необходимое для регистрации
+          none: Никто не может зарегистрироваться
+          open: Любой желающий может зарегистрироваться
+        title: Режим регистрации
       show_known_fediverse_at_about_page:
         desc_html: Если включено, показывает посты со всех известных узлов в предпросмотре ленты. В противном случае отображаются только локальные посты.
         title: Показывать известные узлы в предпросмотре ленты
@@ -363,21 +440,21 @@ ru:
         desc_html: Показывать метку персонала на странице пользователя
         title: Показывать метку персонала
       site_description:
-        desc_html: Отображается в качестве параграфа на титульной странице и используется в качестве мета-тега.<br>Можно использовать HTML-теги, в особенности <code>&lt;a&gt;</code> и <code>&lt;em&gt;</code>.
-        title: Описание сайта
+        desc_html: Вступительный абзац на первой странице. Опишите, что делает этот сервер Mastodon особенным и что еще важно. Вы можете использовать HTML-теги, в частности <code>&lt;a&lt;</code> и <code>gt;a&lt;</code>.
+        title: Описание сервера
       site_description_extended:
         desc_html: Отображается на странице дополнительной информации<br>Можно использовать HTML-теги
         title: Расширенное описание узла
       site_short_description:
-        desc_html: Отображается в боковой панели и в тегах. Опишите, что такое Mastodon и что делает именно этот узел особенным. Если пусто, используется описание узла по умолчанию.
-        title: Краткое описание узла
+        desc_html: Отображается в виде боковой панели и мета-тегов. Опишите, что такое Mastodon и что делает этот сервер особенным, в одном абзаце. Если пусто, по умолчанию используется описание сервера.
+        title: Краткое описание сервера
       site_terms:
         desc_html: Вы можете добавить сюда собственную политику конфиденциальности, пользовательское соглашение и другие документы. Можно использовать теги HTML
         title: Условия использования
-      site_title: Название сайта
+      site_title: Имя сервера
       thumbnail:
         desc_html: Используется для предпросмотра с помощью OpenGraph и API. Рекомендуется разрешение 1200x630px
-        title: Картинка узла
+        title: Эскиз сервера
       timeline_preview:
         desc_html: Показывать публичную ленту на приветственной странице
         title: Предпросмотр ленты
@@ -396,14 +473,31 @@ ru:
       title: Статусы аккаунта
       with_media: С медиаконтентом
     subscriptions:
-      callback_url: Callback URL
+      callback_url: Обратный вызов URL
       confirmed: Подтверждено
       expires_in: Истекает через
       last_delivery: Последняя доставка
-      title: WebSub
+      title: Веб-суб
       topic: Тема
+    tags:
+      accounts: Счета
+      hidden: Скрытый
+      hide: Скрыть из директории
+      name: Хэштег
+      title: Хэштеги
+      unhide: Показать в каталоге
+      visible: Видимый
     title: Администрирование
+    warning_presets:
+      add_new: Добавить новый
+      delete: Удалить
+      edit: Редактировать
+      edit_preset: Редактирование предустановленных предупреждений
+      title: Управление предварительными настройками предупреждений
   admin_mailer:
+    new_pending_account:
+      body: Детали нового счета приведены ниже. Вы можете одобрить или отклонить это заявление.
+      subject: Новая учетная запись для просмотра на %{instance} (%{username})
     new_report:
       body: "%{reporter} подал(а) жалобу на %{target}"
       body_remote: Кто-то с узла %{domain} пожаловался на %{target}
@@ -424,8 +518,10 @@ ru:
     warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем!
     your_token: Ваш токен доступа
   auth:
-    agreement_html: Создавая аккаунт, вы соглашаетесь с <a href="%{rules_path}">правилами узла</a> и <a href="%{terms_path}">нашими условиями обслуживания</a>.
+    agreement_html: Нажимая кнопку "Зарегистрироваться" ниже, Вы соглашаетесь следовать правилам <a href="%{rules_path}">сервера</a> и <a href="%{terms_path}">нашим условиям предоставления услуг</a>.
+    apply_for_account: Запросить приглашение
     change_password: Пароль
+    checkbox_agreement_html: Я согласен с мишенью <a href="%{rules_path}" target="_blank">server rules</a>2 и <a href="%{terms_path}" target="_blank">терминала обслуживания</a>
     confirm_email: Подтвердите email
     delete_account: Удалить аккаунт
     delete_account_html: Если Вы хотите удалить свой аккаунт, вы можете <a href="%{path}">перейти сюда</a>. У Вас будет запрошено подтверждение.
@@ -441,10 +537,12 @@ ru:
       cas: CAS
       saml: SAML
     register: Зарегистрироваться
+    registration_closed: "%{instance} не принимает новых членов"
     resend_confirmation: Повторить отправку инструкции для подтверждения
     reset_password: Сбросить пароль
     security: Безопасность
     set_new_password: Задать новый пароль
+    trouble_logging_in: Проблемы с входом в систему?
   authorize_follow:
     already_following: Вы уже подписаны на этот аккаунт
     error: К сожалению, при поиске удаленного аккаунта возникла ошибка
@@ -476,12 +574,24 @@ ru:
     description_html: Это действие <strong>перманентно и необратимо</strong> удалит контент Вашего аккаунта и деактивирует его. Ваше имя пользователя будет зарезервировано для предотвращения имперсонации в будущем.
     proceed: Удалить аккаунт
     success_msg: Ваш аккаунт был успешно удален
-    warning_html: Гарантируется удаление контента только на этом узле. Широко распространившийся контент, скорее всего, оставит следы. Сервера, отключенные от сети или отписавшиеся от Ваших обновлений, не обновят свои базы данных.
+    warning_html: Гарантируется только удаление содержимого с данного сервера. Широко распространенный контент, вероятно, оставит следы. Автономные серверы и серверы, которые отказались от подписки на ваши обновления, не будут обновлять свои базы данных.
     warning_title: О доступности распространившегося контента
+  directories:
+    directory: Каталог профиля
+    enabled: В настоящее время вы находитесь в этом каталоге.
+    enabled_but_waiting: Вы согласились на включение в каталог, но у вас еще нет минимального количества последователей (%{min_followers}), которые должны быть включены в каталог.
+    explanation: Обнаружение пользователей на основе их интересов
+    explore_mastodon: Исследуйте %{title}
+    how_to_enable: В настоящее время вы не зарегистрированы в каталоге. Вы можете зарегистрироваться ниже. Используйте хэштэги в своем биографическом тексте, чтобы попасть в список определенных хэштэгов!
+    people:
+      few: "%{count} народ"
+      many: "%{count} народ"
+      one: "%{count} особа"
+      other: "%{count} народ"
   errors:
     '403': У Вас нет доступа к просмотру этой страницы.
-    '404': Страница, которую Вы искали, не существует.
-    '410': Страница, которую Вы искали, больше не существует.
+    '404': Страницы, которую вы ищете, здесь нет.
+    '410': Страницы, которую вы искали, здесь больше не существует.
     '422':
       content: Проверка безопасности не удалась. Возможно, Вы блокируете cookies?
       title: Проверка безопасности не удалась
@@ -494,15 +604,21 @@ ru:
     archive_takeout:
       date: Дата
       download: Скачать ваш архив
-      hint_html: Вы можете запросить архив своих <strong>статусов и загруженных медиа-файлов</strong>. Экспортированные данные будут в формате ActivityPub, который можно прочесть любой соответствующей программой. Запрашивать архив можно каждые 7 дней.
+      hint_html: Вы можете запросить архив ваших <strong>toots и загруженных мультимедийных файлов</strong>. Экспортируемые данные будут в формате ActivityPub, доступном для чтения любым совместимым программным обеспечением. Вы можете запрашивать архив каждые 7 дней.
       in_progress: Собирается ваш архив...
       request: Запросить ваш архив
       size: Размер
     blocks: Список блокировки
     csv: CSV
+    domain_blocks: Блоки домена
     follows: Подписки
+    lists: Списки
     mutes: Список глушения
     storage: Ваш медиаконтент
+  featured_tags:
+    add_new: Добавить новый
+    errors:
+      limit: У вас уже есть максимальное количество хэштэгов
   filters:
     contexts:
       home: Домашняя лента
@@ -524,7 +640,9 @@ ru:
     more: Ещё…
     resources: Ссылки
   generic:
+    all: Все
     changes_saved_msg: Изменения успешно сохранены!
+    copy: Копировать
     save_changes: Сохранить изменения
     validation_errors:
       few: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
@@ -532,10 +650,16 @@ ru:
       one: Что-то здесь не так! Пожалуйста, прочитайте об ошибке ниже
       other: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
   imports:
-    preface: Вы можете загрузить некоторые данные, например, списки людей, на которых Вы подписаны или которых блокируете, в Ваш аккаунт на этом узле из файлов, экспортированных с другого узла.
+    modes:
+      merge: Слияние
+      merge_long: Хранение существующих и добавление новых записей
+      overwrite: Перезаписать
+      overwrite_long: Замените текущие записи на новые
+    preface: Можно импортировать данные, экспортированные с другого сервера, например, список людей, которых вы отслеживаете или блокируете.
     success: Ваши данные были успешно загружены и будут обработаны с должной скоростью
     types:
       blocking: Список блокировки
+      domain_blocking: Блокирующий список доменов
       following: Подписки
       muting: Список глушения
     upload: Загрузить
@@ -552,13 +676,14 @@ ru:
       '86400': 1 день
     expires_in_prompt: Никогда
     generate: Сгенерировать
+    invited_by: 'Вы были приглашены:'
     max_uses:
       few: "%{count} исп."
       many: "%{count} исп."
       one: 1 исп
       other: "%{count} исп"
     max_uses_prompt: Без лимита
-    prompt: Генерируйте и делитесь ссылками с другими, чтобы предоставить им доступ к этому узлу
+    prompt: Генерировать ссылки и обмениваться ими с другими пользователями для предоставления доступа к этому серверу
     table:
       expires_at: Истекает
       uses: Исп.
@@ -632,21 +757,57 @@ ru:
     older: Старше
     prev: Пред
     truncate: "&hellip;"
+  polls:
+    errors:
+      already_voted: Вы уже проголосовали по этому опросу
+      duplicate_options: содержат дубликаты
+      duration_too_long: слишком далеко в будущее
+      duration_too_short: слишком рано
+      expired: Опрос уже закончился
+      over_character_limit: не может быть больше %{max} символов каждый
+      too_few_options: должны иметь более одного предмета
+      too_many_options: не может содержать больше %{max} элементов
   preferences:
     languages: Языки
     other: Другое
     publishing: Публикация
     web: WWW
+  relationships:
+    activity: Активность счета
+    dormant: Дремлющий
+    moved: Перемещенный
+    mutual: Взаимный
+    primary: Первичный
+    relationship: Отношения
+    remove_selected_domains: Удалить всех последователей с выбранных доменов
+    remove_selected_followers: Удалить выбранных последователей
+    remove_selected_follows: Развернуть выбранных пользователей
+    status: Состояние счета
   remote_follow:
     acct: Введите свой username@domain для продолжения
     missing_resource: Поиск требуемого перенаправления URL для Вашего аккаунта завершился неудачей
     no_account_html: Нет учётной записи? Вы можете <a href='%{sign_up_path}' target='_blank'>зарегистрироваться здесь</a>
     proceed: Продолжить подписку
     prompt: 'Вы хотите подписаться на:'
+    reason_html: "<strong> Почему этот шаг необходим?</strong> <code>%{instance}</code> может не быть сервером, на котором вы зарегистрированы, поэтому сначала нам нужно перенаправить вас на ваш домашний сервер."
+  remote_interaction:
+    favourite:
+      proceed: Перейти к избранному
+      prompt: 'Ты хочешь любить этот зуб:'
+    reblog:
+      proceed: Приступите к ускорению
+      prompt: 'Ты хочешь поднять этот зуб:'
+    reply:
+      proceed: Перейти к ответу
+      prompt: 'Ты хочешь ответить на этот вопрос:'
   remote_unfollow:
     error: Ошибка
     title: Заголовок
     unfollowed: Отписаны
+  scheduled_statuses:
+    over_daily_limit: Вы превысили лимит в %{limit} запланированных на этот день лимитов
+    over_total_limit: Вы превысили лимит %{limit} запланированных перерасходов
+    too_soon: Запланированная дата должна быть в будущем
   sessions:
     activity: Последняя активность
     browser: Браузер
@@ -655,7 +816,7 @@ ru:
       blackberry: Blackberry
       chrome: Chrome
       edge: Microsoft Edge
-      electron: Electron
+      electron: Электрон
       firefox: Firefox
       generic: Неизвестный браузер
       ie: Internet Explorer
@@ -695,10 +856,12 @@ ru:
     development: Разработка
     edit_profile: Изменить профиль
     export: Экспорт данных
+    featured_tags: Особенные хэштэги
     import: Импорт
     migrate: Перенос аккаунта
     notifications: Уведомления
     preferences: Настройки
+    relationships: Следы и последователи
     settings: Опции
     two_factor_authentication: Двухфакторная аутентификация
     your_apps: Ваши приложения
@@ -730,6 +893,13 @@ ru:
       ownership: Нельзя закрепить чужой статус
       private: Нельзя закрепить непубличный статус
       reblog: Нельзя закрепить продвинутый статус
+    poll:
+      total_votes:
+        few: "%{count} голоса"
+        many: "%{count} голоса"
+        one: "%{count} голосование"
+        other: "%{count} голоса"
+      vote: голос
     show_more: Ещё
     sign_in_to_participate: Войдите, чтобы принять участие в дискуссии
     title: '%{name}: "%{quote}"'
@@ -746,90 +916,93 @@ ru:
     sensitive_content: Чувствительный контент
   terms:
     body_html: |
-      <h2>Privacy Policy</h2>
-      <h3 id="collect">What information do we collect?</h3>
+      <h2>Политика конфиденциальности</h2>
+      <h3 id="collect">3Какую информацию мы собираем?</h3>
 
       <ul>
-        <li><em>Basic account information</em>: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.</li>
-        <li><em>Posts, following and other public information</em>: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.</li>
-        <li><em>Direct and followers-only posts</em>: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. <em>Please keep in mind that the operators of the server and any receiving server may view such messages</em>, and that recipients may screenshot, copy or otherwise re-share them. <em>Do not share any dangerous information over Mastodon.</em></li>
-        <li><em>IPs and other metadata</em>: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.</li>
+        <li><em>Базовая информация учетной записи</em>: Если вы зарегистрируетесь на этом сервере, вам может быть предложено ввести имя пользователя, адрес электронной почты и пароль. Можно также ввести дополнительную информацию о профиле, например, отображаемое имя и биографию, а также загрузить фотографию профиля и изображение заголовка. Имя пользователя, отображаемое имя, биография, фотография профиля и изображение заголовка всегда указаны публично.</li>
+        <li><em>Посты, следующая и другая публичная информация</em>: Список людей, за которыми вы следите, находится в открытом доступе, то же самое справедливо и для ваших последователей. При отправке сообщения сохраняются дата и время, а также заявление, из которого было отправлено сообщение. Сообщения могут содержать мультимедийные вложения, такие как фотографии и видео. Публичный доступ к публичным должностям и должностям, не включенным в списки. Когда вы размещаете сообщение в своем профиле, оно также является общедоступной информацией. Ваши сообщения доставляются вашим последователям, в некоторых случаях это означает, что они доставляются на различные серверы, а копии хранятся там. Когда вы удаляете сообщения, они также доставляются вашим подписчикам. Действия по перерегистрации или предпочтению другого сообщения всегда являются общедоступными.</li>
+        <li><em>Прямые и только для последователей сообщения</em>: Все сообщения хранятся и обрабатываются на сервере. Последователи - только сообщения доставляются вашим последователям и пользователям, которые упомянуты в них, а прямые сообщения доставляются только тем пользователям, которые упомянуты в них. В некоторых случаях это означает, что они доставляются на различные серверы, а копии хранятся на них. Мы прилагаем добросовестные усилия, чтобы ограничить доступ к этим должностям только уполномоченными лицами, но другие серверы могут этого не сделать. Поэтому важно просматривать серверы, к которым принадлежат ваши последователи. Вы можете переключать опцию одобрения и отклонения новых последователей вручную в настройках. <em>Пожалуйста, имейте в виду, что операторы сервера и любого принимающего сервера могут просматривать такие сообщения</em>, и что получатели могут делать скриншоты, копировать или иным образом передавать их повторно. <em>Не делитесь опасной информацией о Мастодоне.</em></li>
+        <li><em>IPs и другие метаданные</em>: При входе в систему мы записываем IP-адрес, с которого вы входите, а также имя вашего браузера. Все зарегистрированные сеансы доступны для просмотра и отзыва в настройках. Последний использованный IP-адрес хранится до 12 месяцев. Мы также можем сохранять журналы регистрации сервера, которые включают IP-адрес каждого запроса к нашему серверу.</li>.
       </ul>
 
       <hr class="spacer" />
 
-      <h3 id="use">What do we use your information for?</h3>
+      <h3 id="use">Что мы используем вашу информацию для?</h3>
 
-      <p>Any of the information we collect from you may be used in the following ways:</p>
+      <p>Любая информация, которую мы собираем у вас, может быть использована следующим образом:</p>.
 
       <ul>
-        <li>To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.</li>
-        <li>To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.</li>
-        <li>The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.</li>
+        <li>Для обеспечения основной функциональности Mastodon. Вы можете взаимодействовать с контентом других людей и размещать свои собственные материалы только после входа в систему. Например, вы можете следить за другими пользователями для просмотра их сводных сообщений в вашей персонализированной домашней хронологии.</li>
+        <li>Для содействия модерации сообщества, например, сравнения вашего IP-адреса с другими известными для определения случаев уклонения от запрета или других нарушений.</li>
+        <li> Адрес электронной почты, который вы предоставляете, может быть использован для отправки вам информации, уведомлений о других лицах, взаимодействующих с вашим контентом или отправляющих вам сообщения, а также для ответа на запросы и/или другие запросы или вопросы.</li>
       </ul>
 
       <hr class="spacer" />
 
-      <h3 id="protect">How do we protect your information?</h3>
+      <h3 id="protect">Как мы защищаем вашу информацию?</h3>
 
-      <p>We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.</p>
+      <p>Мы принимаем различные меры безопасности для обеспечения безопасности вашей личной информации при вводе, передаче или доступе к ней. Помимо всего прочего, сеанс браузера, а также трафик между вашими приложениями и API, защищены SSL, и ваш пароль хэшируется с помощью надежного однонаправленного алгоритма. Вы можете включить двухфакторную аутентификацию для дальнейшего безопасного доступа к вашей учетной записи.</p>
 
       <hr class="spacer" />
 
-      <h3 id="data-retention">What is our data retention policy?</h3>
+      <h3 id="data-retention">Какова наша политика хранения данных?</h3>
 
-      <p>We will make a good faith effort to:</p>
+      <p>Мы приложим добросовестные усилия:</p>
 
       <ul>
-        <li>Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.</li>
-        <li>Retain the IP addresses associated with registered users no more than 12 months.</li>
+        <li>Сохранять журналы сервера, содержащие IP-адрес всех запросов к этому серверу, до тех пор, пока такие журналы хранятся, не более 90 дней.</li>
+        <li>Сохраняйте IP-адреса зарегистрированных пользователей не более 12 месяцев.</li>
       </ul>
 
-      <p>You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.</p>
-
-      <p>You may irreversibly delete your account at any time.</p>
+      <p>Вы можете запросить и загрузить архив своего контента, включая ваши сообщения, медиафайлы, фотографии профилей и изображения заголовков.</p>
 
-      <hr class="spacer"/>
+      <hr class="spacer" />
 
-      <h3 id="cookies">Do we use cookies?</h3>
+      <h3 id="cookies">Вы используете cookies?</h3>
 
-      <p>Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.</p>
+      <p>Да. Cookies - это небольшие файлы, которые сайт или его поставщик услуг передает на жесткий диск вашего компьютера через ваш веб-браузер (если вы разрешаете). Эти файлы cookie позволяют сайту распознать ваш браузер и, если у вас есть зарегистрированная учетная запись, связать ее с вашей зарегистрированной учетной записью.</p>.
 
-      <p>We use cookies to understand and save your preferences for future visits.</p>
+      <p> Мы используем файлы cookie, чтобы понять и сохранить ваши предпочтения для будущих посещений сайта.
 
       <hr class="spacer" />
 
-      <h3 id="disclose">Do we disclose any information to outside parties?</h3>
+      <h3 id="disclose">раскрываем ли мы какую-либо информацию внешним сторонам?</h3>
 
-      <p>We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.</p>
+      <p>Мы не продаем, не обмениваемся и не передаем другим лицам Вашу личную информацию. Сюда не входят доверенные третьи лица, которые помогают нам управлять нашим сайтом, вести наш бизнес или обслуживать вас при условии, что эти лица согласны сохранять конфиденциальность этой информации. Мы также можем раскрывать вашу информацию, если мы считаем, что это необходимо для соблюдения закона, обеспечения соблюдения политики нашего сайта или защиты наших или других прав, собственности или безопасности.</p>
 
-      <p>Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.</p>
+      <p>Ваш публичный контент может быть загружен другими серверами в сети. Ваши публичные сообщения и сообщения только для подписчиков доставляются на серверы, где они находятся, а прямые сообщения доставляются на серверы получателей, если эти подписчики или получатели находятся на сервере, отличном от этого.</p>.
 
-      <p>When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.</p>
+      <p>Когда вы разрешаете заявку на использование вашей учетной записи, в зависимости от объема одобренных вами разрешений, она может получить доступ к вашей личной информации, вашему следующему списку, вашим подписчикам, вашим спискам, всем вашим сообщениям и вашим избранным. Приложения никогда не смогут получить доступ к вашему электронному адресу или паролю.</p>
 
       <hr class="spacer" />
 
-      <h3 id="coppa">Children's Online Privacy Protection Act Compliance</h3>
+      <h3 id="children">Пользование сайтом детьми</h3>.
+
+      <p>Если этот сервер находится в ЕС или ЕЭЗ: Наш сайт, все продукты и услуги предназначены для людей не моложе 16 лет. Если вам меньше 16 лет, в соответствии с требованиями GDPR (<a href="https://en.wikipedia.org/wiki/General_Data_Protection_Regulation">General Data Protection Regulation</a>) не используйте этот сайт.</p>.
 
-      <p>Our site, products and services are all directed to people who are at least 13 years old. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA (<a href="https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Children's Online Privacy Protection Act</a>) do not use this site.</p>
+      <p>Если этот сервер находится в США: Наш сайт, все продукты и услуги направлены на людей не моложе 13 лет. Если вам меньше 13 лет, в соответствии с требованиями COPPA (<a href="https://ru.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Закон о защите личной информации детей в Интернете</a>) не используйте этот сайт.</p>.
+
+      <p>Правовые требования могут отличаться, если этот сервер находится в другой юрисдикции.</p>
 
       <hr class="spacer" />
 
-      <h3 id="changes">Changes to our Privacy Policy</h3>
+      <h3 id="changes">Наши изменения в Политике конфиденциальности</h3>.
 
-      <p>If we decide to change our privacy policy, we will post those changes on this page.</p>
+      <p>Если мы решим изменить нашу политику конфиденциальности, мы опубликуем эти изменения на этой странице.</p>.
 
-      <p>This document is CC-BY-SA. It was last updated March 7, 2018.</p>
+      <p>Это документ CC-BY-SA. Последнее обновление 7 марта 2018.</p>
 
-      <p>Originally adapted from the <a href="https://github.com/discourse/discourse">Discourse privacy policy</a>.</p>
+      <p> Первоначально адаптировано из документа <a href="https://github.com/discourse/discourse">Discourse privacy policy</a>.</p>
     title: Условия обслуживания и политика конфиденциальности %{instance}
   themes:
-    contrast: Высококонтрастная
-    default: Mastodon
+    contrast: Мастодон (Высокий контраст)
+    default: Мастодон (Темный)
     mastodon-light: Mastodon (светлая)
   time:
     formats:
       default: "%b %d, %Y, %H:%M"
+      month: "%b %Y"
   two_factor_authentication:
     code_hint: Для подтверждения введите код, сгенерированный приложением аутентификатора
     description_html: При включении <strong>двухфакторной аутентификации</strong>, вход потребует от Вас использования Вашего телефона, который сгенерирует входные токены.
@@ -843,7 +1016,7 @@ ru:
     manual_instructions: 'Если Вы не можете отсканировать QR-код и хотите ввести его вручную, секрет представлен здесь открытым текстом:'
     recovery_codes: Коды восстановления
     recovery_codes_regenerated: Коды восстановления успешно сгенерированы
-    recovery_instructions_html: В случае утери доступа к Вашему телефону Вы можете использовать один из кодов восстановления, указанных ниже, чтобы вернуть доступ к аккаунту. Держите коды восстановления в безопасности, например, распечатав их и храня с другими важными документами.
+    recovery_instructions_html: Если вы когда-либо потеряете доступ к телефону, вы можете использовать один из приведенных ниже кодов восстановления для восстановления доступа к своей учетной записи. <strong> Храните коды восстановления в безопасности</strong>. Например, вы можете распечатать их и сохранить вместе с другими важными документами.
     setup: Настроить
     wrong_code: Введенный код неверен! Правильно ли установлены серверное время и время устройства?
   user_mailer:
@@ -851,6 +1024,22 @@ ru:
       explanation: Вы запросили полный архив вашего аккаунта Mastodon. Он готов к загрузке!
       subject: Ваш архив готов к загрузке
       title: Вынос архива
+    warning:
+      explanation:
+        disable: Пока ваша учетная запись заморожена, данные вашей учетной записи остаются неизменными, но вы не можете совершать никаких действий, пока она не будет разблокирована.
+        silence: Хотя ваша учетная запись ограничена, только те, кто уже следит за вами, будут видеть ваши тотализаторы на этом сервере, и вы можете быть исключены из различных публичных объявлений. Тем не менее, другие могут следовать за вами вручную.
+        suspend: Ваша учетная запись была приостановлена, и все ваши хитрости и загруженные медиафайлы были безвозвратно удалены с этого сервера, а также с серверов, на которых у вас были последователи.
+      review_server_policies: Просмотр политик сервера
+      subject:
+        disable: Ваш счет %{acct} был заморожен
+        none: Предупреждение для %{acct}
+        silence: Ваш аккаунт %{acct}  был ограничен
+        suspend: Ваш аккаунт %{acct} был приостановлен
+      title:
+        disable: Замороженный счет
+        none: Предупреждение
+        silence: Учетная запись ограничена
+        suspend: Учетная запись приостановлена
     welcome:
       edit_profile_action: Настроить профиль
       edit_profile_step: Вы можете настроить свой профиль, загрузив аватар, обложку, сменив имя и много чего ещё. Если Вы хотите фильтровать подписчиков до того, как они смогут на Вас подписаться, Вы можете закрыть свой аккаунт.
@@ -858,7 +1047,7 @@ ru:
       final_action: Начать постить
       final_step: 'Начните постить! Ваши публичные посты могут видеть другие, например, в локальной ленте или по хэштегам, даже если у Вас нет подписчиков. Вы также можете поздороваться с остальными и представиться, используя хэштек #приветствие.'
       full_handle: Ваше обращение
-      full_handle_hint: То, что Вы хотите сообщить своим друзьям, чтобы они могли написать Вам или подписаться с другого узла.
+      full_handle_hint: Это то, что вы можете сказать своим друзьям, чтобы они могли отправлять сообщения или следовать за вами с другого сервера.
       review_preferences_action: Изменить настройки
       review_preferences_step: Проверьте все настройки, например, какие письма Вы хотите получать или уровень приватности статусов по умолчанию. Если Вы не страдаете морской болезнь, можете включить автовоспроизведение GIF.
       subject: Добро пожаловать в Mastodon
@@ -869,8 +1058,12 @@ ru:
       tips: Советы
       title: Добро пожаловать на борт, %{name}!
   users:
+    follow_limit_reached: Вы не можете следовать за более чем %{limit} людьми
     invalid_email: Введенный e-mail неверен
     invalid_otp_token: Введен неверный код двухфакторной аутентификации
     otp_lost_help_html: Если Вы потеряли доступ к обоим, свяжитесь с %{email}
     seamless_external_login: Вы залогинены через сторонний сервис, поэтому настройки e-mail и пароля недоступны.
     signed_in_as: 'Выполнен вход под именем:'
+  verification:
+    explanation_html: 'Вы можете <strong> подтвердить себя в качестве владельца ссылок в метаданных вашего профиля</strong>, для этого сайт, на который сделана ссылка, должен содержать ссылку на ваш профиль Mastodon. Ссылка обратно <strong> должна</strong> иметь атрибут <code>rel="me"</code>. Текстовое содержание ссылки не имеет значения. Вот пример:'
+    verification: Проверка
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index 14a7db048..21134d07c 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -33,7 +33,7 @@ cs:
         setting_display_media_show_all: Vždy zobrazovat média označená jako citlivá
         setting_hide_network: Koho sledujete a kdo sleduje vás nebude zobrazeno na vašem profilu
         setting_noindex: Ovlivňuje váš veřejný profil a stránky tootů
-        setting_show_application: Aplikace, kterou používáte psaní tootů, bude zobrazena v detailním zobrazení vašich tootů
+        setting_show_application: Aplikace, kterou používáte k psaní tootů, bude zobrazena v detailním zobrazení vašich tootů
         setting_theme: Ovlivňuje jak Mastodon vypadá, jste-li přihlášen na libovolném zařízení.
         username: Vaše uživatelské jméno bude na %{domain} unikátní
         whole_word: Je-li klíčové slovo či fráze pouze alfanumerická, bude aplikována pouze, pokud se shoduje s celým slovem
@@ -78,7 +78,7 @@ cs:
         expires_in: Vypršet za
         fields: Metadata profilu
         header: Záhlaví
-        inbox_url: URL schránky mostu
+        inbox_url: URL příchozí schránky mostu
         irreversible: Zahodit místo skrytí
         locale: Jazyk rozhraní
         locked: Uzamknout účet
diff --git a/config/locales/simple_form.en_GB.yml b/config/locales/simple_form.en_GB.yml
index d9e1a256f..6eac4bf3c 100644
--- a/config/locales/simple_form.en_GB.yml
+++ b/config/locales/simple_form.en_GB.yml
@@ -1,2 +1,133 @@
 ---
-{}
+en_GB:
+  simple_form:
+    hints:
+      account_warning_preset:
+        text: You can use toot syntax, such as URLs, hashtags and mentions
+      admin_account_action:
+        send_email_notification: The user will receive an explanation of what happened with their account
+        text_html: Optional. You can use toot syntax. You can <a href="%{path}">add warning presets</a> to save time
+        type_html: Choose what to do with <strong>%{acct}</strong>
+        warning_preset_id: Optional. You can still add custom text to end of the preset
+      defaults:
+        autofollow: People who sign up through the invite will automatically follow you
+        avatar: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
+        bot: This account mainly performs automated actions and might not be monitored
+        context: One or multiple contexts where the filter should apply
+        digest: Only sent after a long period of inactivity and only if you have received any personal messages in your absence
+        discoverable_html: The <a href="%{path}" target="_blank">directory</a> lets people find accounts based on interests and activity. Requires at least %{min_followers} followers
+        email: You will be sent a confirmation e-mail
+        fields: You can have up to 4 items displayed as a table on your profile
+        header: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
+        inbox_url: Copy the URL from the frontpage of the relay you want to use
+        irreversible: Filtered toots will disappear irreversibly, even if filter is later removed
+        locale: The language of the user interface, e-mails and push notifications
+        locked: Requires you to manually approve followers
+        password: Use at least 8 characters
+        phrase: Will be matched regardless of casing in text or content warning of a toot
+        scopes: Which APIs the application will be allowed to access. If you select a top-level scope, you don't need to select individual ones.
+        setting_aggregate_reblogs: Do not show new boosts for toots that have been recently boosted (only affects newly-received boosts)
+        setting_default_language: The language of your toots can be detected automatically, but it's not always accurate
+        setting_display_media_default: Hide media marked as sensitive
+        setting_display_media_hide_all: Always hide all media
+        setting_display_media_show_all: Always show media marked as sensitive
+        setting_hide_network: Who you follow and who follows you will not be shown on your profile
+        setting_noindex: Affects your public profile and status pages
+        setting_show_application: The application you use to toot will be displayed in the detailed view of your toots
+        setting_theme: Affects how Mastodon looks when you're logged in from any device.
+        username: Your username will be unique on %{domain}
+        whole_word: When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word
+      featured_tag:
+        name: 'You might want to use one of these:'
+      imports:
+        data: CSV file exported from another Mastodon server
+      sessions:
+        otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:'
+      user:
+        chosen_languages: When checked, only toots in selected languages will be displayed in public timelines
+    labels:
+      account:
+        fields:
+          name: Label
+          value: Content
+      account_warning_preset:
+        text: Preset text
+      admin_account_action:
+        send_email_notification: Notify the user per e-mail
+        text: Custom warning
+        type: Action
+        types:
+          disable: Disable
+          none: Do nothing
+          silence: Silence
+          suspend: Suspend and irreversibly delete account data
+        warning_preset_id: Use a warning preset
+      defaults:
+        autofollow: Invite to follow your account
+        avatar: Avatar
+        bot: This is a bot account
+        chosen_languages: Filter languages
+        confirm_new_password: Confirm new password
+        confirm_password: Confirm password
+        context: Filter contexts
+        current_password: Current password
+        data: Data
+        discoverable: List this account on the directory
+        display_name: Display name
+        email: E-mail address
+        expires_in: Expire after
+        fields: Profile metadata
+        header: Header
+        inbox_url: URL of the relay inbox
+        irreversible: Drop instead of hide
+        locale: Interface language
+        locked: Lock account
+        max_uses: Max number of uses
+        new_password: New password
+        note: Bio
+        otp_attempt: Two-factor code
+        password: Password
+        phrase: Keyword or phrase
+        setting_aggregate_reblogs: Group boosts in timelines
+        setting_auto_play_gif: Auto-play animated GIFs
+        setting_boost_modal: Show confirmation dialog before boosting
+        setting_default_language: Posting language
+        setting_default_privacy: Post privacy
+        setting_default_sensitive: Always mark media as sensitive
+        setting_delete_modal: Show confirmation dialog before deleting a toot
+        setting_display_media: Media display
+        setting_display_media_default: Default
+        setting_display_media_hide_all: Hide all
+        setting_display_media_show_all: Show all
+        setting_expand_spoilers: Always expand toots marked with content warnings
+        setting_hide_network: Hide your network
+        setting_noindex: Opt-out of search engine indexing
+        setting_reduce_motion: Reduce motion in animations
+        setting_show_application: Disclose application used to send toots
+        setting_system_font_ui: Use system's default font
+        setting_theme: Site theme
+        setting_unfollow_modal: Show confirmation dialog before unfollowing someone
+        severity: Severity
+        type: Import type
+        username: Username
+        username_or_email: Username or Email
+        whole_word: Whole word
+      featured_tag:
+        name: Hashtag
+      interactions:
+        must_be_follower: Block notifications from non-followers
+        must_be_following: Block notifications from people you don't follow
+        must_be_following_dm: Block direct messages from people you don't follow
+      notification_emails:
+        digest: Send digest e-mails
+        favourite: Send e-mail when someone favourites your status
+        follow: Send e-mail when someone follows you
+        follow_request: Send e-mail when someone requests to follow you
+        mention: Send e-mail when someone mentions you
+        reblog: Send e-mail when someone boosts your status
+        report: Send e-mail when a new report is submitted
+    'no': 'No'
+    required:
+      mark: "*"
+      text: required
+    'yes': 'Yes'
diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml
index c0d72dc27..b5353c0f3 100644
--- a/config/locales/simple_form.es.yml
+++ b/config/locales/simple_form.es.yml
@@ -2,27 +2,45 @@
 es:
   simple_form:
     hints:
+      account_warning_preset:
+        text: Puede utilizar la sintaxis de los piojos, como URLs, hashtags y referencias
+      admin_account_action:
+        send_email_notification: El usuario recibirá una explicación de lo que pasó con su cuenta
+        text_html: Opcional. Puedes usar la sintaxis de los toots. Puede <a href="%{path}">añadir presets de atención</a> para ahorrar tiempo
+        type_html: Elija qué hacer con <strong>%{acct}</strong>
+        warning_preset_id: Opcional. Siempre puede añadir un texto personalizado al final de la preselección
       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á escalado a %{dimensions}px
         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
         digest: Solo enviado tras un largo periodo de inactividad y solo si has recibido mensajes personales durante tu ausencia
+        discoverable_html: El <a href="%{path}" target="_blank">directorio</a> permite a la gente encontrar cuentas basadas en intereses y actividades. Requiere al menos %{min_followers} de suscriptores
+        email: Recibirá un correo electrónico de confirmación
         fields: Puedes tener hasta 4 elementos mostrándose como una tabla en tu perfil
         header: PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px
         inbox_url: Copia la URL de la página principal del relés que quieres utilizar
         irreversible: Los toots filtrados desaparecerán irreversiblemente, incluso si este filtro es eliminado más adelante
         locale: El idioma de la interfaz de usuario, correos y notificaciones push
         locked: Requiere que manualmente apruebes seguidores y las publicaciones serán mostradas solamente a tus seguidores
+        password: Utilice al menos 8 caracteres
         phrase: Se aplicará sin importar las mayúsculas o los avisos de contenido de un toot
         scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionas el alcance de nivel mas alto, no necesitas seleccionar las individuales.
+        setting_aggregate_reblogs: No mostrar nuevos boosts para los que han sido recientemente aumentados (sólo afecta a los que acaban de recibirlos)
         setting_default_language: El idioma de tus toots podrá detectarse automáticamente, pero no siempre es preciso
+        setting_display_media_default: Ocultar los soportes marcados como sensibles
+        setting_display_media_hide_all: Ocultar siempre todos los medios
+        setting_display_media_show_all: Visualizar siempre los medios marcados como sensibles
         setting_hide_network: A quién sigues y quién te sigue no será mostrado en tu perfil
         setting_noindex: Afecta a tu perfil público y páginas de estado
+        setting_show_application: El nombre de la aplicación que utiliza para enviar los pouets se mostrará en la vista detallada de los toots
         setting_theme: Afecta al aspecto de Mastodon cuando te identificas desde cualquier dispositivo.
+        username: Su nombre de usuario será único en %{domain}
         whole_word: Cuando la palabra clave o frase es solo alfanumérica, solo será aplicado si concuerda con toda la palabra
+      featured_tag:
+        name: 'Tal vez quieras usar uno de estos:'
       imports:
-        data: Archivo CSV exportado desde otra instancia de Mastodon
+        data: Un archivo CSV generado por otra instancia de Mastodon
       sessions:
         otp: 'Introduce el código de autenticación de dos factores geberado por tu aplicación de teléfono o usa uno de tus códigos de recuperación:'
       user:
@@ -32,6 +50,18 @@ es:
         fields:
           name: Etiqueta
           value: Contenido
+      account_warning_preset:
+        text: Texto predefinido
+      admin_account_action:
+        send_email_notification: Notificar al usuario por correo electrónico
+        text: Atención personalizada
+        type: Acción
+        types:
+          disable: Desactivar
+          none: No hacer nada
+          silence: Silencio
+          suspend: Suspender y eliminar datos de la cuenta de forma irreversible
+        warning_preset_id: Utilice una plantilla de advertencia
       defaults:
         autofollow: Invitar a seguir tu cuenta
         avatar: Avatar
@@ -42,6 +72,7 @@ es:
         context: Filtrar contextos
         current_password: Contraseña actual
         data: Información
+        discoverable: Registre esta cuenta en el directorio
         display_name: Nombre para mostrar
         email: Dirección de correo electrónico
         expires_in: Expirar tras
@@ -57,15 +88,22 @@ es:
         otp_attempt: Código de dos factores
         password: Contraseña
         phrase: Palabra clave o frase
+        setting_aggregate_reblogs: Promociones de grupo en las líneas de tiempo
         setting_auto_play_gif: Reproducir automáticamente los GIFs animados
         setting_boost_modal: Mostrar ventana de confirmación antes de un Retoot
         setting_default_language: Idioma de publicación
         setting_default_privacy: Privacidad de publicaciones
         setting_default_sensitive: Marcar siempre imágenes como sensibles
         setting_delete_modal: Mostrar diálogo de confirmación antes de borrar un toot
+        setting_display_media: Pantalla de medios
+        setting_display_media_default: Predeterminado
+        setting_display_media_hide_all: Ocultar todo
+        setting_display_media_show_all: Mostrar todo
+        setting_expand_spoilers: Expandir siempre los toots marcados con avisos de contenido
         setting_hide_network: Ocultar tu red
         setting_noindex: Excluirse del indexado de motores de búsqueda
         setting_reduce_motion: Reducir el movimiento de las animaciones
+        setting_show_application: Mostrar la aplicación usada para enviar toots
         setting_system_font_ui: Utilizar la tipografía por defecto del sistema
         setting_theme: Tema del sitio
         setting_unfollow_modal: Mostrar diálogo de confirmación antes de dejar de seguir a alguien
@@ -74,6 +112,8 @@ es:
         username: Nombre de usuario
         username_or_email: Usuario o Email
         whole_word: Toda la palabra
+      featured_tag:
+        name: Etiqueta
       interactions:
         must_be_follower: Bloquear notificaciones de personas que no te siguen
         must_be_following: Bloquear notificaciones de personas que no sigues
diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml
index f6e654d7b..b7ba444aa 100644
--- a/config/locales/simple_form.fa.yml
+++ b/config/locales/simple_form.fa.yml
@@ -2,12 +2,20 @@
 fa:
   simple_form:
     hints:
+      account_warning_preset:
+        text: می‌توانید مانند بوق‌های معمولی کاربران دیگر را نام ببرید یا پیوند و برچسب بگذارید
+      admin_account_action:
+        send_email_notification: توضیحی که کاربر می‌بینید که برای حسابش چه رخ داده است
+        text_html: اختیاری. می‌توانید مثل بوق‌های معمولی بنویسید. می‌توانید برای صرفه‌جویی در زمان <a href="%{path}">هشدارهای ازپیش‌آماده بیفزایید</a>
+        type_html: با حساب <strong>%{acct}</strong> می‌خواهید چه کار کنید؟‌
+        warning_preset_id: اختیاری. همچنان می‌توانید در پایان متن آماده چیزی بیفزایید
       defaults:
         autofollow: کسانی که از راه دعوت‌نامه عضو می‌شوند به طور خودکار پیگیر شما خواهند شد
         avatar: یکی از قالب‌های PNG یا  GIF یا JPG. بیشترین اندازه %{size}. تصویر به اندازهٔ %{dimensions} پیکسل تبدیل خواهد شد
         bot: این حساب بیشتر به طور خودکار فعالیت می‌کند و نظارت پیوسته‌ای روی آن وجود ندارد
         context: یک یا چند زمینه که فیلتر باید در آن‌ها اعمال شود
         digest: تنها وقتی فرستاده می‌شود که مدتی طولانی فعالیتی نداشته باشید و در این مدت برای شما پیغام خصوصی‌ای نوشته شده باشد
+        discoverable_html: با <a href="%{path}" target="_blank">فهرست گزیدهٔ کاربران</a> مردم می‌توانند حساب‌های این سرور را بر اساس علاقه‌مندی‌ها و فعالیت‌شان پیدا کنند. هر حساب دست‌کم باید %{min_followers} پیگیر داشته باشد
         email: به شما ایمیل تأییدی فرستاده خواهد شد
         fields: شما می‌توانید تا چهار مورد را در یک جدول در نمایهٔ خود نمایش دهید
         header: یکی از قالب‌های PNG یا  GIF یا JPG. بیشترین اندازه %{size}. تصویر به اندازهٔ %{dimensions} پیکسل تبدیل خواهد شد
@@ -25,9 +33,12 @@ fa:
         setting_display_media_show_all: همیشه تصویرهایی را که به عنوان حساس علامت زده شده‌اند را نشان بده
         setting_hide_network: فهرست پیگیران شما و فهرست کسانی که شما پی می‌گیرید روی نمایهٔ شما دیده نخواهد شد
         setting_noindex: روی نمایهٔ عمومی و صفحهٔ نوشته‌های شما تأثیر می‌گذارد
+        setting_show_application: برنامه‌ای که به کمک آن بوق می‌زنید، در جزئیات بوق شما نمایش خواهد یافت
         setting_theme: ظاهر ماستدون را وقتی که از هر دستگاهی به آن وارد می‌شوید تعیین می‌کند.
         username: نام کاربری شما روی %{domain} یکتا خواهد بود
         whole_word: اگر کلیدواژه فقط دارای حروف و اعداد باشد، تنها وقتی پیدا می‌شود که با کل یک واژه در متن منطبق باشد، نه با بخشی از یک واژه
+      featured_tag:
+        name: 'شاید بخواهید چنین چیزهایی را به کار ببرید:'
       imports:
         data: پروندهٔ CSV که از سرور ماستدون دیگری برون‌سپاری شده
       sessions:
@@ -39,6 +50,18 @@ fa:
         fields:
           name: برچسب
           value: محتوا
+      account_warning_preset:
+        text: متن از پیش آماده‌شده
+      admin_account_action:
+        send_email_notification: اطلاع‌رسانی به کاربر از راه ایمیل
+        text: هشدار موردی
+        type: نوع کنش
+        types:
+          disable: غیرفعال‌کردن
+          none: کاری نکن
+          silence: بی‌صدا کردن
+          suspend: تعلیق و پاک‌کردن کامل همهٔ اطلاعات حساب
+        warning_preset_id: یک هشدار از پیش‌آماده را به کار ببرید
       defaults:
         autofollow: دعوت از دیگران برای عضو شدن و پیگیری حساب شما
         avatar: تصویر نمایه
@@ -49,6 +72,7 @@ fa:
         context: زمینه‌های فیلترکردن
         current_password: رمز فعلی
         data: داده‌ها
+        discoverable: این حساب را در فهرست گزیدهٔ کاربران نشان بده
         display_name: نمایش به نام
         email: نشانی ایمیل
         expires_in: تاریخ انقضا
@@ -79,6 +103,7 @@ fa:
         setting_hide_network: نهفتن شبکهٔ ارتباطی
         setting_noindex: درخواست از موتورهای جستجوگر برای ظاهر نشدن در نتایج جستجو
         setting_reduce_motion: کاستن از حرکت در پویانمایی‌ها
+        setting_show_application: برنامه‌ای که به کار می‌برید آشکار شود
         setting_system_font_ui: به‌کاربردن قلم پیش‌فرض سیستم
         setting_theme: تم سایت
         setting_unfollow_modal: نمایش پیغام تأیید پیش از لغو پیگیری دیگران
@@ -87,6 +112,8 @@ fa:
         username: نام کاربری (لاتین)
         username_or_email: نام کاربری یا ایمیل
         whole_word: تطابق واژهٔ کامل
+      featured_tag:
+        name: برچسب
       interactions:
         must_be_follower: مسدودکردن اعلان‌های همه به جز پیگیران
         must_be_following: مسدودکردن اعلان‌های کسانی که شما پی نمی‌گیرید
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 42be5a93c..81392c8be 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -67,10 +67,10 @@ ko:
         avatar: 아바타
         bot: 이것은 봇 계정입니다
         chosen_languages: 언어 필터링
-        confirm_new_password: 새로운 비밀번호 다시 입력
-        confirm_password: 현재 비밀번호 다시 입력
+        confirm_new_password: 암호 다시 입력
+        confirm_password: 암호 다시 입력
         context: 필터 컨텍스트
-        current_password: 현재 비밀번호 입력
+        current_password: 현재 암호 입력
         data: 데이터
         discoverable: 이 계정을 디렉토리에서 찾을 수 있도록 합니다
         display_name: 표시되는 이름
@@ -83,10 +83,10 @@ ko:
         locale: 인터페이스 언어
         locked: 계정 잠금
         max_uses: 사용 횟수 제한
-        new_password: 새로운 비밀번호 입력
+        new_password: 새로운 암호 입력
         note: 자기소개
         otp_attempt: 2단계 인증 코드
-        password: 비밀번호
+        password: 암호
         phrase: 키워드 또는 문장
         setting_aggregate_reblogs: 타임라인의 부스트를 그룹화
         setting_auto_play_gif: 애니메이션 GIF를 자동 재생
diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml
index 664c07a46..6cd6c7c85 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -6,7 +6,7 @@ pt-BR:
         text: Você pode usar a sintaxe de um toot, como URLs, hashtags e menções
       admin_account_action:
         send_email_notification: O usuário vai receber uma explicação do que aconteceu com a sua conta
-        text_html: Opcional. Você pode usar a sintaxe de toots. Você pode <a href="%{path}">adicionar avisos pré-definidos</a> para ganhar tempo.
+        text_html: Opcional. Você pode usar a sintaxe de toots. Você pode <a href="%{path}">adicionar avisos pré-definidos</a> para ganhar tempo
         type_html: Escolha o que fazer com <strong>%{acct}</strong>
         warning_preset_id: Opcional. Você ainda pode adicionar texto customizado no fim do texto pré-definido
       defaults:
@@ -33,9 +33,12 @@ pt-BR:
         setting_display_media_show_all: Sempre mostrar mídia marcada como sensível
         setting_hide_network: Quem você segue e quem segue você não serão exibidos no seu perfil
         setting_noindex: Afeta seu perfil público e as páginas de suas postagens
+        setting_show_application: A aplicação que você usar para enviar seus toots vai aparecer na visão detalhada dos seus toots
         setting_theme: Afeta a aparência do Mastodon quando em sua conta em qualquer aparelho.
         username: Seu nome de usuário será único em %{domain}
         whole_word: Quando a palavra ou frase é inteiramente alfanumérica, ela será aplicada somente se corresponder a palavra inteira
+      featured_tag:
+        name: 'Você pode querer usar um destes:'
       imports:
         data: Arquivo CSV exportado de outra instância do Mastodon
       sessions:
@@ -100,6 +103,7 @@ pt-BR:
         setting_hide_network: Esconder as suas redes
         setting_noindex: Não quero ser indexado por mecanismos de busca
         setting_reduce_motion: Reduz movimento em animações
+        setting_show_application: Mostrar o nome da aplicação utilizada para enviar os toots
         setting_system_font_ui: Usar a fonte padrão de seu sistema
         setting_theme: Tema do site
         setting_unfollow_modal: Mostrar diálogo de confirmação antes de deixar de seguir alguém
@@ -108,6 +112,8 @@ pt-BR:
         username: Nome de usuário
         username_or_email: Nome de usuário ou e-mail
         whole_word: Palavra inteira
+      featured_tag:
+        name: Hashtag
       interactions:
         must_be_follower: Bloquear notificações de não-seguidores
         must_be_following: Bloquear notificações de pessoas que você não segue
diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml
index 44cd7ccd6..a53605e8c 100644
--- a/config/locales/simple_form.ru.yml
+++ b/config/locales/simple_form.ru.yml
@@ -2,27 +2,45 @@
 ru:
   simple_form:
     hints:
+      account_warning_preset:
+        text: Вы можете использовать такие синтаксические элементы, как URL-адреса, хэш-теги и ссылки
+      admin_account_action:
+        send_email_notification: Пользователь получит объяснение того, что случилось с его учетной записью
+        text_html: Необязательно. Вы можете использовать синтаксис зубов. Вы можете <a href="%{path}">добавить предустановки предупреждений</a>, чтобы сэкономить время
+        type_html: Выберите, что делать с <strong>%{acct}</strong>
+        warning_preset_id: Необязательно. Вы все еще можете добавить пользовательский текст в конец предустановки
       defaults:
         autofollow: Люди, пришедшие по этому приглашению автоматически будут подписаны на Вас
         avatar: PNG, GIF или JPG. Максимально %{size}. Будет уменьшено до %{dimensions}px
         bot: Этот аккаунт обычно выполяет автоматизированные действия и может не просматриваться владельцем
         context: Один или несколько контекстов, к которым должны быть применены фильтры
         digest: Отсылается лишь после длительной неактивности, если Вы в это время получали личные сообщения
+        discoverable_html: Цель <a href="%{path}" target="_blank">>директория</a> позволяет людям находить учетные записи на основе интересов и активности. Требуется не менее %{min_followers} последователей
+        email: Вам будет отправлено подтверждение по электронной почте
         fields: В профиле можно отобразить до 4 пунктов как таблицу
         header: PNG, GIF или JPG. Максимально %{size}. Будет уменьшено до %{dimensions}px
         inbox_url: Копировать URL с главной страницы ретранслятора, который Вы хотите использовать
         irreversible: Отфильтрованные статусы будут утеряны навсегда, даже если в будущем фильтр будет убран
         locale: Язык интерфейса, e-mail писем и push-уведомлений
         locked: Потребует от Вас ручного подтверждения подписчиков, изменит приватность постов по умолчанию на "только для подписчиков"
+        password: Используйте не менее 8 символов
         phrase: Будет сопоставлено независимо от присутствия в тексте или предупреждения о содержании статуса
         scopes: Какие API приложению будет позволено использовать. Если Вы выберите самый верхний, нижестоящие будут выбраны автоматически.
+        setting_aggregate_reblogs: Не показывайте новых импульсов для недавно активированных импульсов (только для вновь полученных импульсов)
         setting_default_language: Язык Ваших статусов может быть определён автоматически, но не всегда правильно
+        setting_display_media_default: Скрыть носители, помеченные как чувствительные
+        setting_display_media_hide_all: Всегда прятать все средства массовой информации
+        setting_display_media_show_all: Всегда показывайте носители, помеченные как чувствительные
         setting_hide_network: Те, на кого Вы подписаны и кто подписан на Вас, не будут отображены в Вашем профиле
         setting_noindex: Относится к Вашему публичному профилю и страницам статусов
+        setting_show_application: Приложение, которое вы используете, чтобы зубрить будет отображаться в подробном виде ваших черепах
         setting_theme: Влияет на внешний вид Mastodon при выполненном входе в аккаунт.
+        username: Ваше имя пользователя будет уникальным в %{domain}
         whole_word: Если слово или фраза состоит только из букв и цифр, сопоставление произойдёт только по полному совпадению
+      featured_tag:
+        name: 'Возможно, тебе стоит воспользоваться одним из них:'
       imports:
-        data: Файл CSV, экспортированный с другого узла Mastodon
+        data: CSV-файл, экспортированный с другого сервера Mastodon
       sessions:
         otp: 'Введите код двухфакторной аутентификации, сгенерированный в мобильном приложении, или используйте один из Ваших кодов восстановления:'
       user:
@@ -32,6 +50,18 @@ ru:
         fields:
           name: Пункт
           value: Значение
+      account_warning_preset:
+        text: Предустановленный текст
+      admin_account_action:
+        send_email_notification: Уведомить пользователя по электронной почте
+        text: Пользовательское предупреждение
+        type: поступок
+        types:
+          disable: Отключить
+          none: Ничего не делай
+          silence: Тишина
+          suspend: Приостановить и необратимо удалить данные аккаунта
+        warning_preset_id: Использовать предустановку предупреждений
       defaults:
         autofollow: Пригласите подписаться на Ваш аккаунт
         avatar: Аватар
@@ -42,6 +72,7 @@ ru:
         context: Контекст фильтра
         current_password: Текущий пароль
         data: Данные
+        discoverable: Перечислите этот аккаунт в каталоге
         display_name: Показываемое имя
         email: Адрес e-mail
         expires_in: Истекает через
@@ -57,15 +88,22 @@ ru:
         otp_attempt: Двухфакторный код
         password: Пароль
         phrase: Слово или фраза
+        setting_aggregate_reblogs: Ускорение темпов роста группы во времени
         setting_auto_play_gif: Автоматически проигрывать анимированные GIF
         setting_boost_modal: Показывать диалог подтверждения перед продвижением
         setting_default_language: Язык отправляемых статусов
         setting_default_privacy: Видимость постов
         setting_default_sensitive: Всегда отмечать медиаконтент как чувствительный
         setting_delete_modal: Показывать диалог подтверждения перед удалением
+        setting_display_media: Медиа-дисплей
+        setting_display_media_default: дефолт
+        setting_display_media_hide_all: Скрыть все
+        setting_display_media_show_all: Показать все
+        setting_expand_spoilers: Всегда расширяйте чересчур ярлыки, помеченные предупреждениями о содержании
         setting_hide_network: Скрыть свои связи
         setting_noindex: Отказаться от индексации в поисковых машинах
         setting_reduce_motion: Уменьшить движение в анимации
+        setting_show_application: Раскрыть приложение используется для отправки черешков
         setting_system_font_ui: Использовать шрифт системы по умолчанию
         setting_theme: Тема сайта
         setting_unfollow_modal: Показывать диалог подтверждения перед тем, как отписаться от аккаунта
@@ -74,6 +112,8 @@ ru:
         username: Имя пользователя
         username_or_email: Имя пользователя или e-mail
         whole_word: Слово целиком
+      featured_tag:
+        name: Хэштег
       interactions:
         must_be_follower: Заблокировать уведомления не от подписчиков
         must_be_following: Заблокировать уведомления от людей, на которых Вы не подписаны
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index a8611c2f7..bce5eaac6 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -2,48 +2,132 @@
 th:
   simple_form:
     hints:
+      account_warning_preset:
+        text: คุณสามารถใช้ไวยากรณ์โพสต์ เช่น URL, แฮชแท็ก และการกล่าวถึง
+      admin_account_action:
+        send_email_notification: ผู้ใช้จะได้รับคำอธิบายว่าเกิดอะไรขึ้นกับบัญชีของเขา
+        text_html: ตัวเลือกเพิ่มเติม คุณสามารถใช้ไวยากรณ์โพสต์ คุณสามารถ <a href="%{path}">เพิ่มคำเตือนที่ตั้งไว้ล่วงหน้า</a> เพื่อประหยัดเวลา
+        type_html: เลือกสิ่งที่จะทำกับ <strong>%{acct}</strong>
+        warning_preset_id: ตัวเลือกเพิ่มเติม คุณยังคงสามารถเพิ่มข้อความที่กำหนดเองที่จุดสิ้นสุดของค่าที่ตั้งไว้ล่วงหน้า
       defaults:
-        avatar: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
-        header: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
-        locked: Requires you to manually approve followers and defaults post privacy to followers-only
+        autofollow: ผู้คนที่ลงทะเบียนผ่านคำเชิญจะติดตามคุณโดยอัตโนมัติ
+        avatar: PNG, GIF หรือ JPG สูงสุด %{size} จะถูกย่อขนาดเป็น %{dimensions}px
+        bot: บัญชีนี้ทำการกระทำอัตโนมัติเป็นหลักและอาจไม่ได้รับการสังเกตการณ์
+        context: บริบทจำนวนหนึ่งหรือมากกว่าที่ตัวกรองควรใช้
+        digest: ส่งเฉพาะหลังจากไม่มีการใช้งานเป็นเวลานานและในกรณีที่คุณได้รับข้อความส่วนบุคคลใด ๆ เมื่อคุณไม่อยู่เท่านั้น
+        discoverable_html: <a href="%{path}" target="_blank">ไดเรกทอรี</a> ช่วยให้ผู้คนค้นหาบัญชีตามความสนใจและกิจกรรม ต้องการอย่างน้อย %{min_followers} ผู้ติดตาม
+        email: คุณจะได้รับอีเมลยืนยัน
+        fields: คุณสามารถมีได้มากถึง 4 รายการแสดงผลเป็นตารางในโปรไฟล์ของคุณ
+        header: PNG, GIF หรือ JPG สูงสุด %{size} จะถูกย่อขนาดเป็น %{dimensions}px
+        inbox_url: คัดลอก URL จากหน้าแรกของรีเลย์ที่คุณต้องการใช้
+        irreversible: โพสต์ที่กรองจะหายไปอย่างถาวร แม้ว่าจะเอาตัวกรองออกในภายหลัง
+        locale: ภาษาของส่วนติดต่อผู้ใช้, อีเมล และการแจ้งเตือนแบบผลัก
+        locked: คุณต้องอนุมัติผู้ติดตามด้วยตนเอง
+        password: ใช้อย่างน้อย 8 ตัวอักษร
+        phrase: จะถูกจับคู่โดยไม่คำนึงถึงตัวอักษรใหญ่เล็กในข้อความหรือคำเตือนเนื้อหาของโพสต์
+        scopes: API ใดที่แอปพลิเคชันจะได้รับอนุญาตให้เข้าถึง หากคุณเลือกขอบเขตระดับบนสุด คุณไม่จำเป็นต้องเลือกแต่ละขอบเขต
+        setting_aggregate_reblogs: ไม่แสดงการดันใหม่สำหรับโพสต์ที่เพิ่งดัน (มีผลต่อการดันที่ได้รับใหม่เท่านั้น)
+        setting_default_language: สามารถตรวจพบภาษาของโพสต์ของคุณโดยอัตโนมัติ แต่อาจไม่แม่นยำเสมอไป
+        setting_display_media_default: ซ่อนสื่อที่ถูกทำเครื่องหมายว่าละเอียดอ่อน
+        setting_display_media_hide_all: ซ่อนสื่อทั้งหมดเสมอ
+        setting_display_media_show_all: แสดงสื่อที่ถูกทำเครื่องหมายว่าละเอียดอ่อนเสมอ
+        setting_hide_network: จะไม่แสดงผู้ที่คุณติดตามและผู้ที่ติดตามคุณในโปรไฟล์ของคุณ
+        setting_noindex: มีผลต่อโปรไฟล์สาธารณะและหน้าสถานะของคุณ
+        setting_show_application: จะแสดงผลแอปพลิเคชันที่คุณใช้เพื่อโพสต์ในมุมมองโดยละเอียดของโพสต์ของคุณ
+        setting_theme: มีผลต่อลักษณะของ Mastodon เมื่อคุณเข้าสู่ระบบจากอุปกรณ์ใด ๆ
+        username: ชื่อผู้ใช้ของคุณจะไม่ซ้ำกันบน %{domain}
+        whole_word: เมื่อคำสำคัญหรือวลีมีแค่ตัวอักษรและตัวเลข จะถูกใช้หากตรงกันทั้งคำเท่านั้น
+      featured_tag:
+        name: 'คุณอาจต้องการใช้หนึ่งในนี้:'
       imports:
-        data: CSV file exported from another Mastodon instance
+        data: ไฟล์ CSV ที่ส่งออกจากเซิร์ฟเวอร์ Mastodon อื่น
       sessions:
-        otp: Enter the Two-factor code from your phone or use one of your recovery codes.
+        otp: 'ป้อนรหัสสองปัจจัยที่สร้างโดยแอปในโทรศัพท์ของคุณหรือใช้หนึ่งในรหัสกู้คืนของคุณ:'
+      user:
+        chosen_languages: เมื่อกาเครื่องหมาย จะแสดงผลเฉพาะโพสต์ในภาษาที่เลือกในเส้นเวลาสาธารณะ
     labels:
+      account:
+        fields:
+          name: ป้ายชื่อ
+          value: เนื้อหา
+      account_warning_preset:
+        text: ข้อความที่ตั้งไว้ล่วงหน้า
+      admin_account_action:
+        send_email_notification: แจ้งเตือนผู้ใช้ทางอีเมล
+        text: คำเตือนที่กำหนดเอง
+        type: การกระทำ
+        types:
+          disable: ปิดใช้งาน
+          none: ไม่ทำสิ่งใด
+          silence: เงียบ
+          suspend: ระงับและลบข้อมูลบัญชีอย่างถาวร
+        warning_preset_id: ใช้คำเตือนที่ตั้งไว้ล่วงหน้า
       defaults:
-        avatar: Avatar
-        confirm_new_password: Confirm new password
-        confirm_password: Confirm password
-        current_password: Current password
+        autofollow: เชิญให้ติดตามบัญชีของคุณ
+        avatar: ภาพประจำตัว
+        bot: นี่คือบัญชีบอต
+        chosen_languages: กรองภาษา
+        confirm_new_password: ยืนยันรหัสผ่านใหม่
+        confirm_password: ยืนยันรหัสผ่าน
+        context: บริบทตัวกรอง
+        current_password: รหัสผ่านปัจจุบัน
         data: ข้อมูล
-        display_name: Display name
-        email: E-mail address
-        header: Header
-        locale: ภาษา
-        locked: Lock account
-        new_password: New password
-        note: Bio
-        otp_attempt: Two-factor code
-        password: พาร์สเวิร์ด
-        setting_auto_play_gif: Auto-play animated GIFs
-        setting_boost_modal: Show confirmation dialog before boosting
-        setting_default_privacy: Post privacy
-        severity: Severity
-        type: Import type
-        username: Username
+        discoverable: แสดงรายการบัญชีนี้ในไดเรกทอรี
+        display_name: ชื่อที่แสดงผล
+        email: ที่อยู่อีเมล
+        expires_in: หมดอายุหลังจาก
+        fields: ข้อมูลเมตาโปรไฟล์
+        header: ส่วนหัว
+        inbox_url: URL กล่องขาเข้าแบบรีเลย์
+        irreversible: ลบแทนที่จะซ่อน
+        locale: ภาษาส่วนติดต่อ
+        locked: ล็อคบัญชี
+        max_uses: จำนวนการใช้งานสูงสุด
+        new_password: รหัสผ่านใหม่
+        note: ชีวประวัติ
+        otp_attempt: รหัสสองปัจจัย
+        password: รหัสผ่าน
+        phrase: คำสำคัญหรือวลี
+        setting_aggregate_reblogs: จัดกลุ่มการดันในเส้นเวลา
+        setting_auto_play_gif: เล่น GIF แบบเคลื่อนไหวโดยอัตโนมัติ
+        setting_boost_modal: แสดงกล่องโต้ตอบการยืนยันก่อนดัน
+        setting_default_language: ภาษาที่โพสต์
+        setting_default_privacy: ความเป็นส่วนตัวของโพสต์
+        setting_default_sensitive: ทำเครื่องหมายสื่อว่าละเอียดอ่อนเสมอ
+        setting_delete_modal: แสดงกล่องโต้ตอบการยืนยันก่อนลบโพสต์
+        setting_display_media: การแสดงผลสื่อ
+        setting_display_media_default: ค่าเริ่มต้น
+        setting_display_media_hide_all: ซ่อนทั้งหมด
+        setting_display_media_show_all: แสดงทั้งหมด
+        setting_expand_spoilers: ขยายโพสต์ที่ทำเครื่องหมายด้วยคำเตือนเนื้อหาเสมอ
+        setting_hide_network: ซ่อนเครือข่ายของคุณ
+        setting_noindex: เลือกไม่รับการทำดัชนีโดยเครื่องมือค้นหา
+        setting_reduce_motion: ลดการเคลื่อนไหวในภาพเคลื่อนไหว
+        setting_show_application: เปิดเผยแอปพลิเคชันที่ใช้ในการส่งโพสต์
+        setting_system_font_ui: ใช้แบบอักษรเริ่มต้นของระบบ
+        setting_theme: ชุดรูปแบบไซต์
+        setting_unfollow_modal: แสดงกล่องโต้ตอบการยืนยันก่อนเลิกติดตามใครสักคน
+        severity: ความรุนแรง
+        type: ชนิดการนำเข้า
+        username: ชื่อผู้ใช้
+        username_or_email: ชื่อผู้ใช้หรืออีเมล
+        whole_word: ทั้งคำ
+      featured_tag:
+        name: แฮชแท็ก
       interactions:
-        must_be_follower: Block notifications from non-followers
-        must_be_following: Block notifications from people you don't follow
+        must_be_follower: ปิดกั้นการแจ้งเตือนจากที่ไม่ใช่ผู้ติดตาม
+        must_be_following: ปิดกั้นการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม
+        must_be_following_dm: ปิดกั้นข้อความโดยตรงจากผู้คนที่คุณไม่ได้ติดตาม
       notification_emails:
-        digest: Send digest e-mails
-        favourite: Send e-mail when someone favourites your status
-        follow: Send e-mail when someone follows you
-        follow_request: Send e-mail when someone requests to follow you
-        mention: Send e-mail when someone mentions you
-        reblog: Send e-mail when someone boosts your status
+        digest: ส่งอีเมลสรุป
+        favourite: ส่งอีเมลเมื่อใครสักคนชื่นชอบสถานะของคุณ
+        follow: ส่งอีเมลเมื่อใครสักคนติดตามคุณ
+        follow_request: ส่งอีเมลเมื่อใครสักคนขอติดตามคุณ
+        mention: ส่งอีเมลเมื่อใครสักคนกล่าวถึงคุณ
+        reblog: ส่งอีเมลเมื่อใครสักคนดันสถานะของคุณ
+        report: ส่งอีเมลเมื่อมีการส่งรายงานใหม่
     'no': ไม่
     required:
       mark: "*"
-      text: required
+      text: ต้องระบุ
     'yes': ใช่
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 3747fbb98..61d07825c 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -2,90 +2,130 @@
 zh-TW:
   simple_form:
     hints:
+      account_warning_preset:
+        text: 您可使用嘟文語法,例如網址、「#」標籤和提及功能
+      admin_account_action:
+        send_email_notification: 使用者將收到帳戶發生之事情的解釋
+        text_html: 選用。您能使用嘟文語法。您可 <a href="%{path}">新增警告預設</a> 來節省時間
+        type_html: 設定要使用 <strong>%{acct}</strong> 做的事
+        warning_preset_id: 選用。您仍可在預設的結尾新增自訂文字
       defaults:
-        autofollow: 通過邀請網址註冊的使用者將會自動關注你
-        avatar: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會縮裁成 %{dimensions}px
-        bot: 這個帳號由程式進行自動式操作
+        autofollow: 通過邀請網址註冊的使用者將自動關注你
+        avatar: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會等比例縮減成 %{dimensions} 像素
+        bot: 此帳戶主要執行自動操作且可能未被監控
         context: 應該套用過濾器的一項或多項內容
-        digest: 僅在你長時間未登入,並且收到了私訊時發送
-        fields: 個人資訊頁至多可顯示 4 個項目
-        header: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會縮裁成 %{dimensions}px
-        inbox_url: 從您想要使用的中繼首頁複製 URL
-        irreversible: 已過濾的嘟文將會不可逆的消失,即便過濾器之後也一樣
-        locale: 使用者介面、 E-mail 與通知的語言
-        locked: 你必須手動核准每個使用者對你的關注請求,而你的貼文隱私將會被設定為「只有關注你的人能看」
+        digest: 僅在你長時間未登入且在未登入期間收到私訊時傳送
+        discoverable_html: <a href="%{path}" target="_blank">目錄</a> 讓使用者們能基於興趣與活動尋找帳戶。需要至少 %{min_followers} 位關注者
+        email: 您將收到一封確認電子郵件
+        fields: 您可在個人資料上有至多 4 個以表格形式顯示的項目
+        header: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會按比例縮小成 %{dimensions} 像素
+        inbox_url: 從您想要使用的中繼首頁複製網址
+        irreversible: 已過濾的嘟文將會不可逆的消失,即便過濾器移除之後也一樣
+        locale: 使用者介面、電子信件和推送通知的語言
+        locked: 需要您手動核准關注請求
+        password: 使用至少 8 個字元
         phrase: 無論是嘟文的本文或是內容警告都會被過濾
-        scopes: 應用程式將會被允許存取哪些 API。若您選取了最高階的範圍,您就不需要再選取單獨的了。
-        setting_default_language: 你嘟文的語言會被自動偵測,但不一定完全準確
+        scopes: 允許讓應用程式存取的 API。 若您選擇最高階範圍,則無須選擇個別項目。
+        setting_aggregate_reblogs: 請勿顯示最近已被轉嘟之嘟文的最新轉嘟(只影響最新收到的嘟文)
+        setting_default_language: 您嘟文的語言可被自動偵測,但不一定每次都準確
+        setting_display_media_default: 隱藏標為敏感的媒體
+        setting_display_media_hide_all: 總是隱藏所有媒體
+        setting_display_media_show_all: 總是顯示標為敏感的媒體
         setting_hide_network: 你關注的人與關注你的人將不會在你的個人資料頁上顯示
-        setting_noindex: 此設定會影響到你的公開個人資料與嘟文頁面
-        setting_theme: 此設定會影響到你從任意設備登入 Mastodon 時的顯示樣式。
-        whole_word: 如果關鍵字或詞組僅有字母與數字,它將只會在符合整個單字的時候才會套用
+        setting_noindex: 會影響您的公開個人資料與嘟文頁面
+        setting_show_application: 您用來發嘟文的應用程式將會在您嘟文的詳細檢視顯示
+        setting_theme: 會影響從任何裝置登入所看到的 Mastodon 樣式。
+        username: 您的使用者名稱將在 %{domain} 是獨一無二的
+        whole_word: 如果關鍵字或詞組僅有字母與數字,則其將只在符合整個單字的時候才會套用
+      featured_tag:
+        name: 您可能想使用其中一個:
       imports:
-        data: 自其他站點匯出的 CSV 檔案
+        data: 從其他 Mastodon 伺服器匯出的 CSV 檔案
       sessions:
-        otp: 輸入你手機上產生的兩階段認證碼,或著任意一個備用驗證碼:
+        otp: 請輸入產生自您手機 App 的兩步驟驗證碼,或輸入其中一個復原代碼:
       user:
-        chosen_languages: 只有被選擇的語言會在公開時間軸內顯示
+        chosen_languages: 當核取時,只有選取語言的嘟文會在公開時間軸中顯示
     labels:
       account:
         fields:
           name: 標籤
           value: 內容
+      account_warning_preset:
+        text: 預設文字
+      admin_account_action:
+        send_email_notification: 透過電子信件通知使用者
+        text: 自訂警告
+        type: 動作
+        types:
+          disable: 停用
+          none: 什麼也不做
+          silence: 安靜
+          suspend: 停權並不可逆的刪除帳戶資料
+        warning_preset_id: 使用警告預設
       defaults:
         autofollow: 邀請別人關注你的帳戶
-        avatar: 頭像
-        bot: 這個帳號是機器人
-        chosen_languages: 語言篩選
+        avatar: 大頭貼
+        bot: 此帳號是台機器人
+        chosen_languages: 過濾語言
         confirm_new_password: 確認新密碼
         confirm_password: 確認密碼
-        context: 過濾範圍
+        context: 過濾情境
         current_password: 目前密碼
         data: 資料
+        discoverable: 在目錄列出此帳戶
         display_name: 顯示名稱
-        email: E-mail
+        email: 電子信箱位址
         expires_in: 失效時間
-        fields: 資料
-        header: 個人頁面圖片
+        fields: 個人資料中繼資料
+        header: 頁面頂端
         inbox_url: 中繼收件匣的 URL
         irreversible: 放棄而非隱藏
         locale: 介面語言
-        locked: 將帳號轉為「私密」
+        locked: 鎖定帳號
         max_uses: 最大使用次數
         new_password: 新密碼
         note: 簡介
-        otp_attempt: 兩階段認證碼
+        otp_attempt: 兩步驟驗證碼
         password: 密碼
         phrase: 關鍵字或片語
-        setting_auto_play_gif: 自動播放 GIF
+        setting_aggregate_reblogs: 時間軸中的群組轉嘟
+        setting_auto_play_gif: 自動播放 GIF 動畫
         setting_boost_modal: 在轉嘟前先詢問我
         setting_default_language: 嘟文語言
-        setting_default_privacy: 嘟文預設為
+        setting_default_privacy: 嘟文可見範圍
         setting_default_sensitive: 總是將媒體標記為敏感內容
         setting_delete_modal: 刪除嘟文前先詢問我
-        setting_hide_network: 隱藏你的社交網路
-        setting_noindex: 阻止搜尋引擎收錄
-        setting_reduce_motion: 減低動畫效果
+        setting_display_media: 媒體顯示
+        setting_display_media_default: 預設
+        setting_display_media_hide_all: 全部隱藏
+        setting_display_media_show_all: 全部顯示
+        setting_expand_spoilers: 永遠展開標有內容警告的嘟文
+        setting_hide_network: 隱藏您的社交網路
+        setting_noindex: 阻止搜尋引擎建立索引
+        setting_reduce_motion: 減少過渡動畫效果
+        setting_show_application: 顯示用來傳送嘟文的應用程式
         setting_system_font_ui: 使用系統預設字型
-        setting_theme: 主題外觀
-        setting_unfollow_modal: 取消關注前先詢問我
-        severity: 等級
-        type: 匯入資料類型
+        setting_theme: 站點主題
+        setting_unfollow_modal: 取消關注某人前先詢問我
+        severity: 優先級
+        type: 匯入類型
         username: 使用者名稱
-        username_or_email: 使用者名稱或 E-mail
-        whole_word: 整個詞
+        username_or_email: 使用者名稱或電子信箱位址
+        whole_word: 整個詞彙
+      featured_tag:
+        name: "「#」標籤"
       interactions:
-        must_be_follower: 隱藏沒有關注你的使用者通知
-        must_be_following: 隱藏你沒關注的使用者通知
-        must_be_following_dm: 隱藏你沒關注的使用者私訊
+        must_be_follower: 封鎖非關注者的通知
+        must_be_following: 封鎖您未關注之使用者的通知
+        must_be_following_dm: 封鎖您未關注之使用者的私訊
       notification_emails:
-        digest: 定期發送摘要郵件
-        favourite: 當有使用者喜歡你的嘟文時,發送 E-mail 通知
-        follow: 當有使用者關注你時,發送 E-mail 通知
-        follow_request: 當有使用者要求關注你時,發送 E-mail 通知
-        mention: 當有使用者在嘟文提及你時,發送 E-mail 通知
-        reblog: 都有使用者轉嘟你的嘟文時,發送 E-mail 通知
-        report: 當遞交新報告時傳送電子郵件
+        digest: 傳送摘要信件
+        favourite: 當有使用者喜歡你的嘟文時,傳送電子信件通知
+        follow: 當有使用者關注你時,傳送電子信件通知
+        follow_request: 當有使用者請求關注你時,傳送電子信件通知
+        mention: 當有使用者在嘟文提及你時,傳送電子信件通知
+        reblog: 當有使用者轉嘟你的嘟文時,傳送電子信件通知
+        report: 當提交新檢舉時傳送電子郵件
     'no': 否
     required:
       mark: "*"
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 3bda6a814..d1ff178fd 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -4,26 +4,37 @@ sk:
     about_hashtag_html: Toto sú verejné príspevky, otagované pod <strong>#%{hashtag}</strong>. Ak máš účet hocikde v rámci fediversa, môžeš s nimi narábať.
     about_mastodon_html: Mastodon je sociálna sieť založená na otvorených webových protokoloch a na slobodnom softvéri. Je decentralizovaná, podobne ako email.
     about_this: O tomto serveri
+    active_count_after: aktívni
+    active_footnote: Mesačne aktívnych užívateľov (MAU)
     administered_by: 'Správcom je:'
     api: API
     apps: Aplikácie
+    apps_platforms: Uživaj Mastodon z iOSu, Androidu a iných platforiem
+    browse_directory: Prehľadávaj databázu profilov a filtruj ju podľa záujmov
+    browse_public_posts: Prebádaj naživo prúd verejných príspevkov na Mastodone
     contact: Kontakt
     contact_missing: Nezadaný
     contact_unavailable: Neuvedený
+    discover_users: Objavuj užívateľov
     documentation: Dokumentácia
     extended_description_html: |
       <h3>Pravidlá</h3>
       <p>Žiadne zatiaľ uvedené nie sú</p>
+    federation_hint_html: S účtom na %{instance} budeš môcť následovať ľúdí na hociakom inom Mastodon serveri, ale aj inde.
     generic_description: "%{domain} je jeden server v sieti"
+    get_apps: Vyskúšaj mobilnú aplikáciu
     hosted_on: Mastodon hostovaný na %{domain}
     learn_more: Zisti viac
     privacy_policy: Ustanovenia o súkromí
+    see_whats_happening: Pozoruj, čo sa deje
+    server_stats: 'Serverové štatistiky:'
     source_code: Zdrojový kód
     status_count_after:
       few: príspevkov
       one: príspevok
       other: príspevkov
     status_count_before: Ktorí napísali
+    tagline: Následuj kamarátov, a objavuj nových
     terms: Podmienky užívania
     user_count_after:
       few: užívatelia
@@ -72,6 +83,7 @@ sk:
       delete: Vymaž
       destroyed_msg: Moderátorska poznámka bola úspešne zmazaná!
     accounts:
+      approve: Schváľ
       are_you_sure: Si si istý/á?
       avatar: Maskot
       by_domain: Doména
@@ -117,6 +129,7 @@ sk:
       moderation:
         active: Aktívny
         all: Všetko
+        pending: Čakajúci
         silenced: Umlčané
         suspended: Vylúčený/á
         title: Moderácia
@@ -126,6 +139,7 @@ sk:
       no_limits_imposed: Nie sú stanovené žiadné obmedzenia
       not_subscribed: Neodoberá
       outbox_url: URL poslaných
+      pending: Vyžaduje posúdenie
       perform_full_suspension: Vylúč
       profile_url: URL profilu
       promote: Povýš
@@ -133,6 +147,7 @@ sk:
       public: Verejná os
       push_subscription_expires: PuSH odoberanie expiruje
       redownload: Obnov profil
+      reject: Odmietni
       remove_avatar: Odstrániť avatár
       remove_header: Odstráň hlavičku
       resend_confirmation:
@@ -406,6 +421,12 @@ sk:
         min_invite_role:
           disabled: Nikto
           title: Povoliť pozvánky od
+      registrations_mode:
+        modes:
+          approved: Pre registráciu je nutné povolenie
+          none: Nikto sa nemôže registrovať
+          open: Ktokoľvek sa môže zaregistrovať
+        title: Režím registrácií
       show_known_fediverse_at_about_page:
         desc_html: Pokiaľ je zapnuté, bude v ukážke osi možné nahliadnúť príspevky z celého známeho fediversa. Inak budú ukázané iba príspevky z miestnej osi.
         title: Ukáž celé známe fediverse na náhľade osi
@@ -468,6 +489,8 @@ sk:
       edit_preset: Uprav varovnú predlohu
       title: Spravuj varovné predlohy
   admin_mailer:
+    new_pending_account:
+      body: Podrobnosti o novom účte sú uvedené nižšie. Môžeš túto registračnú požiadavku buď prijať, alebo zamietnúť.
     new_report:
       body: "%{reporter} nahlásil/a %{target}"
       body_remote: Niekto z %{domain} nahlásil/a %{target}
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 5a4ffb6cd..3d99f7708 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -22,14 +22,14 @@ sl:
     status_count_after:
       few: stanja
       one: stanje
-      other: stanja
+      other: stanj
       two: stanja
-    status_count_before: Kdo je avtor
+    status_count_before: Ki so avtorji
     terms: Pogoji storitve
     user_count_after:
       few: uporabniki
       one: uporabnik
-      other: uporabniki
+      other: uporabnikov
       two: uporabniki
     user_count_before: Dom za
     what_is_mastodon: Kaj je Mastodon?
diff --git a/config/locales/th.yml b/config/locales/th.yml
index b562c8f7c..729865c83 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -1,224 +1,530 @@
 ---
 th:
   about:
-    about_mastodon_html: แมสโทดอน เป็น  <em>ดีเซ็นทรัลไลซ์</em><em>ฟรีโอเพ่นซอร์ส</em> โซเชี่ยวเน็ตเวริ์ค.  เป็นทางเลือกทดแทนโซเชี่ยวเน็ตเวิร์คที่ทำเป็นธุรกิจการค้า, ป้องกันการผูกขาดช่องทางการสื่อสารของคุณ. เลือกเซร์ฟเวอร์ที่คุณไว้ใจ &mdash; ที่คุณเลือกได้เอง, สื่อสารกับคนที่คุณต้องการได้เสมอ. ใครๆก็รันแมสโทดอนอินซะแตนซ์ได้ และ เชื่อมต่อกับ<em>โซเชี่ยวเน็ตเวิร์ค</em> โดยไม่มีอะไรมาขวางกั้น.
-    about_this: เกี่ยวกับอินซะแตนซ์นี้
+    about_mastodon_html: Mastodon เป็นเครือข่ายสังคมที่ทำงานบนโปรโตคอลเว็บแบบเปิดและซอฟต์แวร์เสรีที่เปิดต้นฉบับ กระจายศูนย์เหมือนอีเมล
+    about_this: เกี่ยวกับ
+    active_count_after: ที่ใช้งาน
+    active_footnote: ผู้ใช้งานรายเดือน (MAU)
+    administered_by: 'ดูแลโดย:'
+    api: API
+    apps: แอปสำหรับมือถือ
+    apps_platforms: ใช้ Mastodon จาก iOS, Android และแพลตฟอร์มอื่น ๆ
+    browse_directory: เรียกดูไดเรกทอรีโปรไฟล์และกรองตามความสนใจ
+    browse_public_posts: เรียกดูสตรีมสดของโพสต์สาธารณะใน Mastodon
     contact: ติดต่อ
-    source_code: ซอร์สโค๊ด
-    status_count_after: สถานะ
-    status_count_before: Who authored
-    user_count_after: ผู้ใช้
-    user_count_before: Home to
+    contact_missing: ไม่ได้ตั้ง
+    contact_unavailable: ไม่มี
+    discover_users: ค้นพบผู้ใช้
+    documentation: เอกสารประกอบ
+    extended_description_html: |
+      <h3>สถานที่ที่ดีสำหรับกฎ</h3>
+      <p>ยังไม่ได้ตั้งคำอธิบายแบบขยาย</p>
+    generic_description: "%{domain} เป็นเซิร์ฟเวอร์หนึ่งในเครือข่าย"
+    get_apps: ลองแอปสำหรับมือถือ
+    learn_more: เรียนรู้เพิ่มเติม
+    privacy_policy: นโยบายความเป็นส่วนตัว
+    server_stats: 'สถิติเซิร์ฟเวอร์:'
+    source_code: โค้ดต้นฉบับ
+    status_count_after:
+      one: สถานะ
+      other: สถานะ
+    status_count_before: ผู้สร้าง
+    user_count_after:
+      one: ผู้ใช้
+      other: ผู้ใช้
+    user_count_before: บ้านของ
+    what_is_mastodon: Mastodon คืออะไร?
   accounts:
     follow: ติดตาม
-    followers: ผู้ติดตาม
+    followers:
+      one: ผู้ติดตาม
+      other: ผู้ติดตาม
     following: กำลังติดตาม
-    nothing_here: ไม่พบสิ่งใดที่นี่!
-    people_followed_by: ถูกติดตามโดย %{name}
-    people_who_follow: คนที่ติดตาม %{name}
-    posts: โพสต์
+    joined: เข้าร่วมเมื่อ %{date}
+    last_active: ใช้งานล่าสุด
+    media: สื่อ
+    moved_html: "%{name} ได้ย้ายไปยัง %{new_profile_link}:"
+    network_hidden: ไม่มีข้อมูลนี้
+    nothing_here: ไม่มีสิ่งใดที่นี่!
+    people_followed_by: ผู้คนที่ %{name} ติดตาม
+    people_who_follow: ผู้คนที่ติดตาม %{name}
+    posts:
+      one: โพสต์
+      other: โพสต์
+    posts_tab_heading: โพสต์
+    posts_with_replies: โพสต์และการตอบกลับ
+    roles:
+      admin: ผู้ดูแล
+      bot: บอต
+      moderator: ผู้ควบคุม
     unfollow: เลิกติดตาม
   admin:
+    account_moderation_notes:
+      created_msg: สร้างหมายเหตุการควบคุมสำเร็จ!
+      delete: ลบ
+      destroyed_msg: ทำลายหมายเหตุการควบคุมสำเร็จ!
     accounts:
-      are_you_sure: แน่ใจนะ?
+      approve: อนุมัติ
+      are_you_sure: คุณแน่ใจหรือไม่?
+      avatar: ภาพประจำตัว
+      by_domain: โดเมน
+      change_email:
+        changed_msg: เปลี่ยนอีเมลบัญชีสำเร็จ!
+        current_email: อีเมลปัจจุบัน
+        label: เปลี่ยนอีเมล
+        new_email: อีเมลใหม่
+        submit: เปลี่ยนอีเมล
+        title: เปลี่ยนอีเมลสำหรับ %{username}
       confirm: ยืนยัน
-      confirmed: ยึนยันแล้ว
-      confirming: ยืนยัน
-      disable_two_factor_authentication: Disable 2FA
-      display_name: ชื่อสำหรับดีสเพล
+      confirmed: ยืนยันแล้ว
+      confirming: กำลังยืนยัน
+      deleted: ลบแล้ว
+      demote: ลดระดับ
+      disable: ปิดใช้งาน
+      disable_two_factor_authentication: ปิดใช้งาน 2FA
+      disabled: ปิดใช้งานอยู่
+      display_name: ชื่อที่แสดงผล
       domain: โดเมน
       edit: แก้ไข
-      email: อีเมล์
+      email: อีเมล
       email_status: สถานะอีเมล
-      feed_url: Feed URL
+      enable: เปิดใช้งาน
+      enabled: เปิดใช้งานอยู่
+      feed_url: URL ฟีด
       followers: ผู้ติดตาม
+      followers_url: URL ผู้ติดตาม
       follows: ติดตาม
+      header: ส่วนหัว
+      inbox_url: URL กล่องขาเข้า
+      invited_by: เชิญโดย
+      ip: IP
+      joined: เข้าร่วมเมื่อ
       location:
         all: ทั้งหมด
-        local: บนอินแสตนซ์นี้
-        remote: บนอินแสตนซ์อื่น
-        title: สถานที่
-      media_attachments: สื่อที่แนบมา
+        local: ในเว็บ
+        remote: ระยะไกล
+        title: ตำแหน่งที่ตั้ง
+      login_status: สถานะการเข้าสู่ระบบ
+      media_attachments: ไฟล์แนบสื่อ
       moderation:
         all: ทั้งหมด
-        silenced: ปิดเสียง
-        suspended: หยุดไว้
-        title: Moderation
+        silenced: เงียบอยู่
+        suspended: ระงับอยู่
+        title: การควบคุม
+      moderation_notes: หมายเหตุการควบคุม
       most_recent_activity: กิจกรรมล่าสุด
       most_recent_ip: IP ล่าสุด
-      not_subscribed: Not subscribed
-      perform_full_suspension: Perform full suspension
-      profile_url: Profile URL
+      not_subscribed: ไม่ได้บอกรับ
+      outbox_url: URL กล่องขาออก
+      perform_full_suspension: ระงับ
+      profile_url: URL โปรไฟล์
+      protocol: โปรโตคอล
       public: สาธารณะ
-      push_subscription_expires: PuSH subscription expires
+      push_subscription_expires: การบอกรับ PuSH หมดอายุเมื่อ
+      reject: ปฏิเสธ
+      remove_avatar: เอาภาพประจำตัวออก
+      remove_header: เอาส่วนหัวออก
       resend_confirmation:
-        already_confirmed: ผู้ใช้รายนี้ได้รับการยืนยันแล้ว
+        already_confirmed: ผู้ใช้นี้ได้รับการยืนยันอยู่แล้ว
         send: ส่งอีเมลยืนยันอีกครั้ง
-        success: ยืนยันอีเมลเรียบร้อยแล้ว!
-      reset_password: รีเซ็ตรหัสผ่าน
+        success: ส่งอีเมลยืนยันสำเร็จ!
+      reset_password: ตั้งรหัสผ่านใหม่
+      resubscribe: บอกรับใหม่
+      roles:
+        admin: ผู้ดูแล
+        moderator: ผู้ควบคุม
+        staff: พนักงาน
+        user: ผู้ใช้
       salmon_url: Salmon URL
+      search: ค้นหา
       show:
-        created_reports: รายงานที่ถูกสร้างโดย แอคเคาท์นี้
-        targeted_reports: รายงานเกี่ยวกับแอคเคาท์นี้
-      silence: ปิดเสียง
+        created_reports: รายงานที่สร้าง
+        targeted_reports: รายงานโดยผู้อื่น
+      silence: เงียบ
+      silenced: เงียบอยู่
       statuses: สถานะ
+      subscribe: บอกรับ
+      suspended: ระงับอยู่
       title: บัญชี
-      undo_silenced: ยกเลิกการปิดเสียง
-      undo_suspension: ยกเลิกการหยุด
+      undo_silenced: เลิกทำการเงียบ
+      undo_suspension: เลิกทำการระงับ
+      unsubscribe: เลิกบอกรับ
       username: ชื่อผู้ใช้
+      warn: เตือน
       web: เว็บ
+    action_logs:
+      deleted_status: "(สถานะที่ลบแล้ว)"
+      title: รายการบันทึกการตรวจสอบ
+    custom_emojis:
+      by_domain: โดเมน
+      copy: คัดลอก
+      created_msg: สร้างอีโมจิสำเร็จ!
+      delete: ลบ
+      disable: ปิดใช้งาน
+      emoji: อีโมจิ
+      enable: เปิดใช้งาน
+      new:
+        title: เพิ่มอีโมจิที่กำหนดเองใหม่
+      overwrite: เขียนทับ
+      shortcode: รหัสย่อ
+      title: อีโมจิที่กำหนดเอง
+      unlisted: ไม่อยู่ในรายการ
+      update_failed_msg: ไม่สามารถอัปเดตอีโมจินั้น
+      updated_msg: อัปเดตอีโมจิสำเร็จ!
+      upload: อัปโหลด
+    dashboard:
+      config: การกำหนดค่า
+      feature_deletions: การลบบัญชี
+      feature_invites: ลิงก์เชิญ
+      feature_profile_directory: ไดเรกทอรีโปรไฟล์
+      feature_registrations: การลงทะเบียน
+      features: คุณลักษณะ
+      open_reports: รายงานที่เปิด
+      recent_users: ผู้ใช้ล่าสุด
+      search: การค้นหาข้อความแบบเต็ม
+      single_user_mode: โหมดผู้ใช้เดี่ยว
+      software: ซอฟต์แวร์
+      space: การใช้พื้นที่
+      title: แดชบอร์ด
+      total_users: ผู้ใช้ทั้งหมด
+      trends: แนวโน้ม
+      week_interactions: การโต้ตอบในสัปดาห์นี้
+      week_users_active: ที่ใช้งานในสัปดาห์นี้
+      week_users_new: ผู้ใช้ในสัปดาห์นี้
     domain_blocks:
-      add_new: เพิ่มใหม่
-      created_msg: กำลังบล๊อกโดเมน
-      destroyed_msg: ยกเลิกการบล๊อกโดเมน
+      add_new: เพิ่มการปิดกั้นโดเมนใหม่
+      created_msg: กำลังประมวลผลการปิดกั้นโดเมน
+      destroyed_msg: เลิกทำการปิดกั้นโดเมนแล้ว
       domain: โดเมน
       new:
-        create: สร้างการบล๊อก
-        hint: การบล๊อคโดเมนไม่สามารถป้องกันการสร้างแอคเค๊าท์ในฐานข้อมูล, but will retroactively and automatically apply specific moderation methods on those accounts.
+        create: สร้างการปิดกั้น
+        hint: การปิดกั้นโดเมนจะไม่ป้องกันการสร้างรายการบัญชีในฐานข้อมูล แต่จะใช้วิธีการควบคุมเฉพาะกับบัญชีเหล่านั้นย้อนหลังและโดยอัตโนมัติ
         severity:
-          desc_html: "<strong>การปิดเสียง</strong> จะทำให้ผู้ที่ไมไ่ด้ติดตามไม่เห็นโพสต์ของเขา. <strong>การหยุด</strong> จะนำเนื้อหา สื่อ และ โปรไฟล์ ออก."
-          silence: ปิดเสียง
-          suspend: หยุดไว้
-        title: การบล๊อกโดเมนใหม่
-      reject_media: ไม่อนุมัติไฟล์สื่อ
-      reject_media_hint: ลบไฟล์สื่อที่เก็บไว้ในเครื่อง และ ป้องกันการดาวน์โหลดในอนาคต. Irrelevant for suspensions
+          desc_html: "<strong>เงียบ</strong> จะทำให้โพสต์ของบัญชีมองไม่เห็นกับใครก็ตามที่ไม่ได้กำลังติดตามบัญชี <strong>ระงับ</strong> จะเอาเนื้อหา, สื่อ และข้อมูลโปรไฟล์ทั้งหมดของบัญชีออก ใช้ <strong>ไม่มี</strong> หากคุณเพียงแค่ต้องการปฏิเสธไฟล์สื่อ"
+          noop: ไม่มี
+          silence: เงียบ
+          suspend: ระงับ
+        title: การปิดกั้นโดเมนใหม่
+      reject_media: ปฏิเสธไฟล์สื่อ
+      reject_media_hint: เอาไฟล์สื่อที่จัดเก็บไว้ในเว็บออกและปฏิเสธที่จะดาวน์โหลดไฟล์ใด ๆ ในอนาคต ไม่เกี่ยวข้องกับการระงับ
+      reject_reports: ปฏิเสธรายงาน
+      severity:
+        silence: เงียบอยู่
+        suspend: ระงับอยู่
       show:
         affected_accounts:
-          one: มีผลต่อหนึ่งแอคเค๊าท์ในฐานข้อมูล
-          other: มีผลต่อแอคเค๊าท์ในฐานข้อมูลจำนวน %{count}
+          one: มีผลต่อหนึ่งบัญชีในฐานข้อมูล
+          other: มีผลต่อ %{count} บัญชีในฐานข้อมูล
         retroactive:
-          silence: ยกเลิกการปิดเสียงทุกแอคเค๊าท์จากโดเมน
-          suspend: ยกเลิกการหยุดทุกแอคเค๊าท์จากโดเมน
-        title: ยกเลิกการบล๊อกโดเมน %{domain}
-        undo: ยกเลิก
-      undo: ยกเลิก
+          silence: เลิกเงียบบัญชีที่มีอยู่ทั้งหมดจากโดเมนนี้
+          suspend: เลิกระงับบัญชีที่มีอยู่ทั้งหมดจากโดเมนนี้
+        title: เลิกทำการปิดกั้นโดเมนสำหรับ %{domain}
+        undo: เลิกทำ
+      undo: เลิกทำการปิดกั้นโดเมน
+    email_domain_blocks:
+      add_new: เพิ่มใหม่
+      delete: ลบ
+      domain: โดเมน
+      new:
+        create: เพิ่มโดเมน
+    followers:
+      back_to_account: กลับไปที่บัญชี
+      title: ผู้ติดตามของ %{acct}
     instances:
-      title: Known Instances
+      by_domain: โดเมน
+      moderation:
+        all: ทั้งหมด
+        limited: จำกัดอยู่
+        title: การควบคุม
+      title: การติดต่อกับภายนอก
+      total_storage: ไฟล์แนบสื่อ
+    invites:
+      deactivate_all: ปิดใช้งานทั้งหมด
+      title: คำเชิญ
+    relays:
+      add_new: เพิ่มรีเลย์ใหม่
+      delete: ลบ
+      disable: ปิดใช้งาน
+      disabled: ปิดใช้งานอยู่
+      enable: เปิดใช้งาน
+      enabled: เปิดใช้งานอยู่
+      inbox_url: URL รีเลย์
+      status: สถานะ
+      title: รีเลย์
+    report_notes:
+      created_msg: สร้างหมายเหตุรายงานสำเร็จ!
+      destroyed_msg: ลบหมายเหตุรายงานสำเร็จ!
     reports:
+      account:
+        note: หมายเหตุ
+        report: รายงาน
+      are_you_sure: คุณแน่ใจหรือไม่?
+      assign_to_self: มอบหมายให้ฉัน
       comment:
-        none: None
-      mark_as_resolved: ทำเครื่องหมายว่าจัดการแล้ว
-      report: 'Report #%{id}'
-      reported_account: รายงานแอคเคาท์
+        none: ไม่มี
+      created_at: รายงานเมื่อ
+      mark_as_resolved: ทำเครื่องหมายว่าแก้ปัญหาแล้ว
+      mark_as_unresolved: ทำเครื่องหมายว่ายังไม่ได้แก้ปัญหา
+      notes:
+        create: เพิ่มหมายเหตุ
+        delete: ลบ
+      report: 'รายงาน #%{id}'
+      reported_account: บัญชีที่ได้รับการรายงาน
       reported_by: รายงานโดย
-      resolved: จัดการแล้ว
+      resolved: แก้ปัญหาแล้ว
+      resolved_msg: แก้ปัญหารายงานสำเร็จ!
       status: สถานะ
       title: รายงาน
-      unresolved: Unresolved
+      unassign: เลิกมอบหมาย
+      unresolved: ยังไม่ได้แก้ปัญหา
+      updated_at: อัปเดตเมื่อ
     settings:
       contact_information:
-        email: กรอกที่อยู่อีเมล์สาธารณะ
-        username: กรอกชื่อผู้ใช้
+        email: อีเมลธุรกิจ
+        username: ชื่อผู้ใช้ในการติดต่อ
+      custom_css:
+        title: CSS ที่กำหนดเอง
+      profile_directory:
+        title: เปิดใช้งานไดเรกทอรีโปรไฟล์
       registrations:
         closed_message:
-          desc_html: Displayed on frontpage when registrations are closed<br> ใช้ HTML tags ได้
-          title: ปิดข้อความลงทะเบียน
+          desc_html: แสดงผลในหน้าแรกเมื่อปิดการลงทะเบียน คุณสามารถใช้แท็ก HTML
+          title: ข้อความการปิดการลงทะเบียน
+        deletion:
+          desc_html: อนุญาตให้ใครก็ตามลบบัญชีของเขา
+          title: เปิดการลบบัญชี
+        min_invite_role:
+          disabled: ไม่มีใคร
+          title: อนุญาตคำเชิญโดย
+      registrations_mode:
+        modes:
+          none: ไม่มีใครสามารถลงทะเบียน
+          open: ใครก็ตามสามารถลงทะเบียน
+        title: โหมดการลงทะเบียน
+      show_staff_badge:
+        desc_html: แสดงป้ายพนักงานในหน้าผู้ใช้
+        title: แสดงป้ายพนักงาน
       site_description:
-        desc_html: Displayed as a paragraph on the frontpage and used as a meta tag.<br> ใช้ HTML tags ได้, in particular <code>&lt;a&gt;</code> และ <code>&lt;em&gt;</code>.
-        title: คำอธิบายไซต์
+        desc_html: ย่อหน้าเกริ่นนำในหน้าแรก อธิบายถึงสิ่งที่ทำให้เซิร์ฟเวอร์ Mastodon นี้พิเศษและสิ่งอื่นใดที่สำคัญ คุณสามารถใช้แท็ก HTML โดยเฉพาะอย่างยิ่ง <code>&lt;a&gt;</code> และ <code>&lt;em&gt;</code>
+        title: คำอธิบายเซิร์ฟเวอร์
       site_description_extended:
-        desc_html: Displayed on extended information page<br>You can use HTML tags
-        title: คำอธิบายไซต์เพิ่มเติม
-      site_title: ชื่อไซต์
-      title: ตั้งค่าไซต์
+        desc_html: สถานที่ที่ดีสำหรับแนวทางปฏิบัติ, กฎ, หลักเกณฑ์ และสิ่งอื่น ๆ ของคุณที่ทำให้เซิร์ฟเวอร์ของคุณแตกต่าง คุณสามารถใช้แท็ก HTML
+        title: ข้อมูลแบบขยายที่กำหนดเอง
+      site_short_description:
+        title: คำอธิบายเซิร์ฟเวอร์แบบสั้น
+      site_title: ชื่อเซิร์ฟเวอร์
+      timeline_preview:
+        desc_html: แสดงเส้นเวลาสาธารณะในหน้าเริ่มต้น
+        title: ตัวอย่างเส้นเวลา
+      title: การตั้งค่าไซต์
+    statuses:
+      back_to_account: กลับไปที่หน้าบัญชี
+      batch:
+        delete: ลบ
+        nsfw_off: ทำเครื่องหมายว่าไม่ละเอียดอ่อน
+        nsfw_on: ทำเครื่องหมายว่าละเอียดอ่อน
+      media:
+        title: สื่อ
+      no_media: ไม่มีสื่อ
+      title: สถานะบัญชี
     subscriptions:
-      callback_url: Callback URL
-      confirmed: ยืนยัน
+      callback_url: URL เรียกกลับ
+      confirmed: ยืนยันแล้ว
       expires_in: หมดอายุภายใน
-      last_delivery: จัดส่งครั้งล่าสุด
+      last_delivery: ส่งล่าสุด
       title: WebSub
-      topic: ชื่อเรื่อง
-    title: แอดมิน
+      topic: หัวข้อ
+    tags:
+      accounts: บัญชี
+      hidden: ซ่อนอยู่
+      hide: ซ่อนจากไดเรกทอรี
+      name: แฮชแท็ก
+      title: แฮชแท็ก
+      unhide: แสดงในไดเรกทอรี
+      visible: มองเห็น
+    title: การดูแล
+    warning_presets:
+      add_new: เพิ่มใหม่
+      delete: ลบ
+      edit: แก้ไข
+      edit_preset: แก้ไขคำเตือนที่ตั้งไว้ล่วงหน้า
+      title: จัดการคำเตือนที่ตั้งไว้ล่วงหน้า
   application_mailer:
-    settings: 'เปลี่ยนอีเมล์ preferences: %{link}'
-    view: 'วิว:'
+    notification_preferences: เปลี่ยนการกำหนดลักษณะอีเมล
+    settings: 'เปลี่ยนการกำหนดลักษณะอีเมล: %{link}'
+    view: 'มุมมอง:'
+    view_profile: ดูโปรไฟล์
+    view_status: ดูสถานะ
   applications:
-    invalid_url: URL ที่ระบุไม่ถูกตั้ง
+    invalid_url: URL ที่ระบุไม่ถูกต้อง
   auth:
+    apply_for_account: ขอคำเชิญ
+    change_password: รหัสผ่าน
+    confirm_email: ยืนยันอีเมล
+    delete_account: ลบบัญชี
     didnt_get_confirmation: Didn't receive confirmation instructions?
-    forgot_password: คุณลืมพาสเวริ์ดใช่ัม้ย?
-    login: ล๊อคอิน
-    logout: ล๊อคเอาท์
-    register: สมัคร
+    forgot_password: ลืมรหัสผ่านของคุณ?
+    login: เข้าสู่ระบบ
+    logout: ออกจากระบบ
+    migrate_account: ย้ายไปยังบัญชีอื่น
+    or_log_in_with: หรือเข้าสู่ระบบด้วย
+    providers:
+      cas: CAS
+      saml: SAML
+    register: ลงทะเบียน
     resend_confirmation: ส่งขั้นตอนวิธีการยืนยันใหม่อีกครั้ง
-    reset_password: เปลี่ยนรหัสผ่าน
-    security: Credentials
+    reset_password: ตั้งรหัสผ่านใหม่
+    security: ความปลอดภัย
     set_new_password: ตั้งรหัสผ่านใหม่
+    trouble_logging_in: มีปัญหาในการเข้าสู่ระบบ?
   authorize_follow:
+    already_following: คุณกำลังติดตามบัญชีนี้อยู่แล้ว
     error: Unfortunately, there was an error looking up the remote account
     follow: ติดตาม
+    following: 'สำเร็จ! คุณกำลังติดตาม:'
+    post_follow:
+      return: แสดงโปรไฟล์ของผู้ใช้
+      web: ไปยังเว็บ
     title: ติดตาม %{acct}
   datetime:
     distance_in_words:
-      about_x_hours: "%{count}ช"
-      about_x_months: "%{count}ด"
-      about_x_years: "%{count}ป"
-      almost_x_years: "%{count}ป"
-      half_a_minute: ครึ่งนาที
-      less_than_x_minutes: "%{count}ม"
-      less_than_x_seconds: ไม่ถึงนาที
-      over_x_years: "%{count}ป"
-      x_days: "%{count}ด"
-      x_minutes: "%{count}น"
-      x_months: "%{count}ด"
-      x_seconds: "%{count}ว"
+      about_x_hours: "%{count} ชั่วโมง"
+      about_x_months: "%{count} เดือน"
+      about_x_years: "%{count} ปี"
+      almost_x_years: "%{count} ปี"
+      half_a_minute: เมื่อกี้นี้
+      less_than_x_minutes: "%{count} นาที"
+      less_than_x_seconds: เมื่อกี้นี้
+      over_x_years: "%{count} ปี"
+      x_days: "%{count} วัน"
+      x_minutes: "%{count} นาที"
+      x_months: "%{count} เดือน"
+      x_seconds: "%{count} วินาที"
+  deletes:
+    proceed: ลบบัญชี
+    success_msg: ลบบัญชีของคุณสำเร็จ
+  directories:
+    directory: ไดเรกทอรีโปรไฟล์
+    explanation: ค้นพบผู้ใช้ตามความสนใจของเขา
+    explore_mastodon: สำรวจ %{title}
   errors:
-    '403': คุณไม่มีสิทธิ์เข้าดูหน้านี้.
-    '404': ไม่พบเพจที่คุณต้องการดู.
-    '410': เพจที่คุณต้องการดูไม่มีแล้ว.
+    '403': คุณไม่มีสิทธิดูหน้านี้
+    '404': หน้าที่คุณกำลังมองหาไม่ได้อยู่ที่นี่
+    '410': หน้าที่คุณกำลังมองหาไม่มีอยู่ที่นี่อีกต่อไป
     '422':
-      content: การตรวจสอบความปลอดภัยล้มเหลว. คุณกำลังบล๊อกคุกกี้อยู่?
+      content: การตรวจสอบความปลอดภัยล้มเหลว คุณกำลังปิดกั้นคุกกี้หรือไม่?
       title: การตรวจสอบความปลอดภัยล้มเหลว
     '429': Throttled
+    '500':
+      title: หน้านี้ไม่ถูกต้อง
   exports:
-    blocks: คุณบล๊อก
+    archive_takeout:
+      date: วันที่
+      download: ดาวน์โหลดการเก็บถาวรของคุณ
+      request: ขอการเก็บถาวรของคุณ
+      size: ขนาด
+    blocks: คุณปิดกั้น
     csv: CSV
+    domain_blocks: การปิดกั้นโดเมน
     follows: คุณติดตาม
+    lists: รายการ
     mutes: คุณปิดเสียง
-    storage: ที่เก็บสื่อ
+    storage: ที่เก็บข้อมูลสื่อ
+  featured_tags:
+    add_new: เพิ่มใหม่
+  filters:
+    contexts:
+      home: เส้นเวลาหน้าแรก
+      notifications: การแจ้งเตือน
+      public: เส้นเวลาสาธารณะ
+      thread: การสนทนา
+    edit:
+      title: แก้ไขตัวกรอง
+    index:
+      delete: ลบ
+      title: ตัวกรอง
+    new:
+      title: เพิ่มตัวกรองใหม่
+  footer:
+    developers: นักพัฒนา
+    more: เพิ่มเติม…
+    resources: ทรัพยากร
   generic:
-    changes_saved_msg: บันทึกการแก้ไขแล้ว!
+    all: ทั้งหมด
+    changes_saved_msg: บันทึกการเปลี่ยนแปลงสำเร็จ!
+    copy: คัดลอก
     save_changes: บันทึกการเปลี่ยนแปลง
     validation_errors:
       one: Something isn't quite right yet! Please review the error below
       other: Something isn't quite right yet! Please review %{count} errors below
   imports:
+    modes:
+      merge: ผสาน
+      overwrite: เขียนทับ
     preface: You can import certain data like all the people you are following or blocking into your account on this instance, from files created by an export on another instance.
     success: Your data was successfully uploaded and will now be processed in due time
     types:
-      blocking: Blocking list
-      following: Following list
-      muting: Muting list
-    upload: Upload
+      blocking: รายการปิดกั้น
+      following: รายการติดตาม
+      muting: รายการปิดเสียง
+    upload: อัปโหลด
+  invites:
+    delete: ปิดใช้งาน
+    expires_in:
+      '1800': 30 นาที
+      '21600': 6 ชั่วโมง
+      '3600': 1 ชั่วโมง
+      '43200': 12 ชั่วโมง
+      '604800': 1 สัปดาห์
+      '86400': 1 วัน
+    expires_in_prompt: ไม่เลย
+    generate: สร้าง
+    max_uses_prompt: ไม่มีขีดจำกัด
+    table:
+      expires_at: หมดอายุเมื่อ
+    title: เชิญผู้คน
   media_attachments:
     validations:
-      images_and_video: Cannot attach a video to a status that already contains images
-      too_many: แนบมากกว่า 4 ไฟล์ไม่ได้
+      images_and_video: ไม่สามารถแนบวิดีโอกับสถานะที่มีภาพอยู่แล้ว
+      too_many: ไม่สามารถแนบมากกว่า 4 ไฟล์
+  migrations:
+    acct: username@domain ของบัญชีใหม่
+    proceed: บันทึก
+  moderation:
+    title: การควบคุม
   notification_mailer:
     digest:
+      action: ดูการแจ้งเตือนทั้งหมด
       body: Here is a brief summary of the messages you missed since your last visit on %{since}
-      mention: "%{name} ส่งข้อความถึงคุณ:"
+      mention: "%{name} ได้กล่าวถึงคุณใน:"
       new_followers_summary:
-        one: ยินดีด้วยคุณได้ผู้ติดตามคนใหม่! Yay!
+        one: นอกจากนี้คุณยังมีหนึ่งผู้ติดตามใหม่ขณะที่ไม่อยู่! เย่!
         other: You have gotten %{count} new followers! Amazing!
       subject:
         one: "1 new notification since your last visit \U0001F418"
         other: "%{count} new notifications since your last visit \U0001F418"
     favourite:
-      body: 'สเตตัสของคุณได้รับการกดถูกใจโดย %{name} :'
-      subject: "%{name} กดถูกใจสเตตัสของคุณ"
+      body: 'สถานะของคุณได้รับการชื่นชอบโดย %{name}:'
+      subject: "%{name} ได้ชื่นชอบสถานะของคุณ"
+      title: รายการโปรดใหม่
     follow:
-      body: "%{name} กำลังติดตามคุณ"
-      subject: "%{name} ได้ติดตามคุณแล้ว"
+      body: "%{name} กำลังติดตามคุณ!"
+      subject: "%{name} กำลังติดตามคุณ"
+      title: ผู้ติดตามใหม่
     follow_request:
+      action: จัดการคำขอติดตาม
       body: "%{name} ได้ขอติดตามคุณ"
-      subject: 'Pending follower: %{name}'
+      subject: 'ผู้ติดตามที่รอดำเนินการ: %{name}'
+      title: คำขอติดตามใหม่
     mention:
-      body: 'You were mentioned by %{name} in:'
-      subject: You were mentioned by %{name}
+      action: ตอบกลับ
+      body: 'คุณได้รับการกล่าวถึงโดย %{name} ใน:'
+      subject: คุณได้รับการกล่าวถึงโดย %{name}
+      title: การกล่าวถึงใหม่
     reblog:
-      body: 'Your status was boosted by %{name}:'
-      subject: "%{name} boosted your status"
+      body: 'สถานะของคุณได้รับการดันโดย %{name}:'
+      subject: "%{name} ได้ดันสถานะของคุณ"
+      title: การดันใหม่
   number:
     human:
       decimal_units:
@@ -231,54 +537,130 @@ th:
           trillion: T
           unit: ''
   pagination:
-    next: ต่อไป
-    prev: ย้อนกลับ
+    newer: ใหม่กว่า
+    next: ถัดไป
+    older: เก่ากว่า
+    prev: ก่อนหน้า
     truncate: "&hellip;"
+  preferences:
+    languages: ภาษา
+    other: อื่น ๆ
+    publishing: การเผยแพร่
+    web: เว็บ
+  relationships:
+    activity: กิจกรรมบัญชี
+    relationship: ความสัมพันธ์
+    remove_selected_domains: เอาผู้ติดตามทั้งหมดออกจากโดเมนที่เลือก
+    remove_selected_followers: เอาผู้ติดตามที่เลือกออก
+    remove_selected_follows: เลิกติดตามผู้ใช้ที่เลือก
+    status: สถานะบัญชี
   remote_follow:
-    acct: Enter your username@domain you want to follow from
+    acct: ป้อน username@domain ของคุณที่คุณต้องการกระทำจาก
     missing_resource: Could not find the required redirect URL for your account
-    proceed: Proceed to follow
-    prompt: 'You are going to follow:'
+    no_account_html: ไม่มีบัญชี? คุณสามารถ <a href='%{sign_up_path}' target='_blank'>ลงทะเบียนที่นี่</a>
+    proceed: ดำเนินการต่อเพื่อติดตาม
+    prompt: 'คุณกำลังจะติดตาม:'
+  remote_interaction:
+    favourite:
+      proceed: ดำเนินการต่อเพื่อชื่นชอบ
+      prompt: 'คุณต้องการชื่นชอบโพสต์นี้:'
+    reblog:
+      proceed: ดำเนินการต่อเพื่อดัน
+      prompt: 'คุณต้องการดันโพสต์นี้:'
+    reply:
+      proceed: ดำเนินการต่อเพื่อตอบกลับ
+      prompt: 'คุณต้องการตอบกลับโพสต์นี้:'
+  remote_unfollow:
+    error: ข้อผิดพลาด
+    title: ชื่อเรื่อง
+    unfollowed: เลิกติดตามแล้ว
+  sessions:
+    activity: กิจกรรมล่าสุด
+    browser: เบราว์เซอร์
+    ip: IP
+    revoke: เพิกถอน
   settings:
-    authorized_apps: Authorized apps
-    back: กลับไปที่แมสโทดอน
+    authorized_apps: แอปที่ได้รับอนุญาต
+    back: กลับไปที่ Mastodon
+    delete: การลบบัญชี
+    development: การพัฒนา
     edit_profile: แก้ไขโปรไฟล์
-    export: นำข้อมูลออก
+    export: การส่งออกข้อมูล
     import: นำเข้า
-    preferences: Preferences
-    settings: ตั้งค่า
-    two_factor_authentication: Two-factor Authentication
+    notifications: การแจ้งเตือน
+    preferences: การกำหนดลักษณะ
+    relationships: การติดตามและผู้ติดตาม
+    settings: การตั้งค่า
+    two_factor_authentication: การรับรองความถูกต้องด้วยสองปัจจัย
+    your_apps: แอปพลิเคชันของคุณ
   statuses:
+    attached:
+      description: 'แนบ: %{attached}'
+      image:
+        one: "%{count} ภาพ"
+        other: "%{count} ภาพ"
+      video:
+        one: "%{count} วิดีโอ"
+        other: "%{count} วิดีโอ"
+    content_warning: 'คำเตือนเนื้อหา: %{warning}'
     open_in_web: เปิดในเว็บ
     over_character_limit: character limit of %{max} exceeded
-    show_more: แสดงเพิ่มอีก
+    pin_errors:
+      reblog: ไม่สามารถปักหมุดการดัน
+    poll:
+      total_votes:
+        one: "%{count} การลงคะแนน"
+        other: "%{count} การลงคะแนน"
+    show_more: แสดงเพิ่มเติม
+    sign_in_to_participate: ลงชื่อเข้าเพื่อเข้าร่วมการสนทนา
+    title: '%{name}: "%{quote}"'
     visibilities:
-      private: สำหรับผู้ติดตามเท่านั้น
-      private_long: ให้เห็นเฉพาะผู้ติดตาม
-      public: Public
-      public_long: เปิดให้ทุกคนเห็นได้
-      unlisted: Unlisted
+      private: ผู้ติดตามเท่านั้น
+      private_long: แสดงต่อผู้ติดตามเท่านั้น
+      public: สาธารณะ
+      public_long: ทุกคนสามารถเห็น
+      unlisted: ไม่อยู่ในรายการ
       unlisted_long: Everyone can see, but not listed on public timelines
   stream_entries:
+    pinned: โพสต์ที่ปักหมุด
     reblogged: boosted
-    sensitive_content: Sensitive content
+    sensitive_content: เนื้อหาที่ละเอียดอ่อน
+  themes:
+    contrast: Mastodon (ความคมชัดสูง)
+    default: Mastodon (มืด)
+    mastodon-light: Mastodon (สว่าง)
   time:
     formats:
-      default: "%b %d, %Y, %H:%M"
+      default: "%d %b %Y, %H:%M"
+      month: "%b %Y"
   two_factor_authentication:
     code_hint: Enter the code generated by your authenticator app to confirm
     description_html: If you enable <strong>two-factor authentication</strong>, logging in will require you to be in possession of your phone, which will generate tokens for you to enter.
-    disable: ปิด
-    enable: เปิด
-    enabled_success: Two-factor authentication successfully enabled
-    generate_recovery_codes: สร้าง Recovery Codes
+    disable: ปิดใช้งาน
+    enable: เปิดใช้งาน
+    enabled: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว
+    enabled_success: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยสำเร็จ
+    generate_recovery_codes: สร้างรหัสกู้คืน
     instructions_html: "<strong>Scan this QR code into Google Authenticator or a similiar TOTP app on your phone</strong>. From now on, that app will generate tokens that you will have to enter when logging in."
     lost_recovery_codes: Recovery codes allow you to regain access to your account if you lose your phone. If you've lost your recovery codes, you can regenerate them here. Your old recovery codes will be invalidated.
     manual_instructions: 'If you can''t scan the QR code and need to enter it manually, here is the plain-text secret:'
     recovery_codes_regenerated: Recovery codes successfully regenerated
     recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. Keep the recovery codes safe, for example by printing them and storing them with other important documents.
     setup: ตั้งค่า
-    wrong_code: รหัสที่กรอกไม่ถูกต้อง! Are server time and device time correct?
+    wrong_code: รหัสที่ป้อนไม่ถูกต้อง! เวลาเซิร์ฟเวอร์และเวลาอุปกรณ์ถูกต้องหรือไม่?
+  user_mailer:
+    warning:
+      title:
+        none: คำเตือน
+        silence: จำกัดบัญชีอยู่
+        suspend: ระงับบัญชีอยู่
+    welcome:
+      review_preferences_action: เปลี่ยนการกำหนดลักษณะ
+      subject: ยินดีต้อนรับสู่ Mastodon
+      tips: เคล็ดลับ
   users:
-    invalid_email: อีเมล์ไม่ถูกต้อง
-    invalid_otp_token: two-factor code ไม่ถูกต้อง
+    invalid_email: ที่อยู่อีเมลไม่ถูกต้อง
+    invalid_otp_token: รหัสสองปัจจัยไม่ถูกต้อง
+    signed_in_as: 'ลงชื่อเข้าเป็น:'
+  verification:
+    verification: การตรวจสอบ
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 12a92a698..bfacc86fc 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -4,6 +4,8 @@ zh-CN:
     about_hashtag_html: 这里展示的是带有话题标签 <strong>#%{hashtag}</strong> 的公开嘟文。如果你想与他们互动,你需要在任意一个 Mastodon 实例或与其兼容的网站上拥有一个帐户。
     about_mastodon_html: Mastodon(长毛象)是一个建立在开放式网络协议和自由、开源软件之上的社交网络,有着类似于电子邮件的分布式设计。
     about_this: 关于本实例
+    active_count_after: 活跃
+    active_footnote: 每月活跃用户
     administered_by: 本实例的管理员:
     api: API
     apps: 移动应用
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index fb3d4f1f5..913442e17 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -2,84 +2,115 @@
 zh-TW:
   about:
     about_hashtag_html: 這些是包含「<strong>#%{hashtag}</strong>」標籤的公開文章。只要你有任何 Mastodon 站點、或者其他站點的使用者,便可以與他們互動。
-    about_mastodon_html: Mastodon (長毛象)是一個<em>自由、開放原始碼</em>的社群網站。它是一個分散式的服務,避免您的通訊被單一商業機構壟斷操控。請您選擇一家您信任的 Mastodon 站點,在上面建立帳號,然後您就可以和任一 Mastodon 站點上的使用者互通,享受無縫的<em>社群網路</em>交流。
+    about_mastodon_html: Mastodon (長毛象)是一個<em>自由、開放原始碼</em>的社群網站。它是一個分散式的服務,避免您的通訊被單一商業機構壟斷操控。請您選擇一家您信任的 Mastodon 站點,在上面建立帳戶,然後您就可以和任一 Mastodon 站點上的使用者互通,享受無縫的<em>社群網路</em>交流。
     about_this: 關於本站
+    active_count_after: 活躍
+    active_footnote: 每月活躍使用者 (MAU)
     administered_by: 管理者:
     api: API
-    apps: Mobile apps
+    apps: 行動應用程式
+    apps_platforms: 在 iOS、Android 和其他平台使用 Mastodon
+    browse_directory: 依興趣瀏覽個人資料目錄和過濾器
+    browse_public_posts: 在 Mastodon 瀏覽公開嘟文的即時串流
     contact: 聯絡我們
     contact_missing: 未設定
     contact_unavailable: 未公開
+    discover_users: 探索使用者
     documentation: 文件
     extended_description_html: |
       <h3>這裡可以寫一些網站規則</h3>
       <p>本站點未有詳細介紹</p>
     generic_description: "%{domain} 是 Mastodon 網路中其中一個站點"
+    get_apps: 嘗試行動應用程式
     hosted_on: 在 %{domain} 運作的 Mastodon 站點
     learn_more: 了解詳細
+    privacy_policy: 隱私權政策
+    see_whats_happening: 看看發生什麼事
+    server_stats: 伺服器統計:
     source_code: 原始碼
-    status_count_after: 狀態
+    status_count_after:
+      one: 條嘟文
+      other: 條嘟文
     status_count_before: 他們共嘟出了
+    tagline: 關注朋友並探索新朋友
     terms: 使用條款
-    user_count_after: 使用者
-    user_count_before: 這裡共註冊有
+    user_count_after:
+      one: 位使用者
+      other: 位使用者
+    user_count_before: 註冊使用者數
     what_is_mastodon: 什麼是 Mastodon?
   accounts:
+    choices_html: "%{name} 的選擇:"
     follow: 關注
-    followers: 關注者
+    followers:
+      one: 關注者
+      other: 關注者
     following: 正在關注
+    joined: 加入於 %{date}
+    last_active: 上次活躍時間
+    link_verified_on: 此連結的所有權已在 %{date} 檢查過
     media: 媒體
     moved_html: "%{name} 已經搬遷到 %{new_profile_link}:"
     network_hidden: 此訊息不可用
     nothing_here: 暫時沒有內容可供顯示!
     people_followed_by: "%{name} 關注的人"
     people_who_follow: 關注 %{name} 的人
-    posts: 嘟文
+    posts:
+      one: 嘟文
+      other: 嘟文
     posts_tab_heading: 嘟文
     posts_with_replies: 嘟文與回覆
-    reserved_username: 此用戶名已被保留
+    reserved_username: 此使用者名稱已被保留
     roles:
       admin: 管理員
       bot: 機器人
       moderator: 版主
     unfollow: 取消關注
   admin:
+    account_actions:
+      action: 執行動作
+      title: 在 %{acct} 執行管理員動作
     account_moderation_notes:
       create: 記錄
       created_msg: 已新增管理備忘!
       delete: 刪除
       destroyed_msg: 成功刪除管理備忘!
     accounts:
+      approve: 核准
       are_you_sure: 您確定嗎?
       avatar: 頭像
-      by_domain: 網域
+      by_domain: 站點
       change_email:
-        changed_msg: E-mail更改成功!
-        current_email: 目前的E-mail
-        label: 更改E-mail
-        new_email: 新的E-mail
-        submit: 更改E-mail
-        title: 為 %{username} 更改E-mail
+        changed_msg: 已成功變更帳戶電子信箱位址!
+        current_email: 目前的電子信箱位址
+        label: 變更電子信箱位址
+        new_email: 新的電子信箱位址
+        submit: 變更電子信箱位址
+        title: 為 %{username} 變更電子信箱位址
       confirm: 確定
       confirmed: 已確定
       confirming: 確定
+      deleted: 已刪除
       demote: 降級
       disable: 停用
       disable_two_factor_authentication: 停用兩階段認證
       disabled: 已停用
       display_name: 暱稱
-      domain: 網域
+      domain: 站點
       edit: 編輯
-      email: E-mail
-      email_status: E-mail狀態
+      email: 電子信箱位址
+      email_status: 電子信箱狀態
       enable: 啟用
       enabled: 已啟用
       feed_url: 訂閱 URL
       followers: 關注者
       followers_url: 關注者(Followers)URL
       follows: 正在關注
+      header: 開頭
       inbox_url: 收件箱 (Inbox) URL
+      invited_by: 邀請者
       ip: IP 位址
+      joined: 已加入
       location:
         all: 全部
         local: 本站
@@ -89,25 +120,31 @@ zh-TW:
       media_attachments: 多媒體附件
       memorialize: 設定為追悼帳戶
       moderation:
+        active: 活躍
         all: 全部
+        pending: 等待中
         silenced: 已靜音
         suspended: 已停權
         title: 版務
       moderation_notes: 管理備忘
       most_recent_activity: 最近活動
       most_recent_ip: 最近 IP 位址
+      no_limits_imposed: 未受限制
       not_subscribed: 未訂閱
       outbox_url: 寄件箱 (Outbox) URL
-      perform_full_suspension: 進行停權
+      pending: 等待審核中
+      perform_full_suspension: 停權
       profile_url: 個人檔案 URL
       promote: 晉級
       protocol: 協議
       public: 公開
       push_subscription_expires: PuSH 訂閱過期
-      redownload: 更新頭像
+      redownload: 重新整理個人資料
+      reject: 拒絕
       remove_avatar: 取消頭像
+      remove_header: 移除開頭
       resend_confirmation:
-        already_confirmed: 此用戶已被確認
+        already_confirmed: 此使用者已被確認
         send: 重新發送驗證信
         success: 驗證信發送成功!
       reset: 重設
@@ -118,34 +155,39 @@ zh-TW:
         admin: 管理員
         moderator: 版主
         staff: 管理人員
-        user: 普通用戶
+        user: 普通使用者
       salmon_url: Salmon 網址
       search: 搜尋
-      shared_inbox_url: 公共收件箱 (Shared Inbox) URL
+      shared_inbox_url: 共享收件箱網址
       show:
-        created_reports: 這個使用者提交的檢舉
-        targeted_reports: 針對這個使用者的檢舉
+        created_reports: 建立檢舉
+        targeted_reports: 由其他人檢舉
       silence: 靜音
+      silenced: 已靜音
       statuses: 嘟文
       subscribe: 訂閱
+      suspended: 已停權
       title: 帳戶
-      unconfirmed_email: 等待驗證的E-mail
+      unconfirmed_email: 未確認的電子信箱位址
       undo_silenced: 取消靜音
       undo_suspension: 取消停權
       unsubscribe: 取消訂閱
       username: 使用者名稱
+      warn: 警告
       web: 頁面
     action_logs:
       actions:
         assigned_to_self_report: "%{name} 接受了檢舉 %{target}"
-        change_email_user: "%{name} 更改了使用者 %{target} 的E-mail"
-        confirm_user: "%{name} 確認了使用者 %{target} 的E-mail"
+        change_email_user: "%{name} 變更了使用者 %{target} 的電子信箱位址"
+        confirm_user: "%{name} 確認了使用者 %{target} 的電子信箱位址"
+        create_account_warning: "%{name} 已對 %{target} 送出警告"
         create_custom_emoji: "%{name} 加入自訂表情符號 %{target}"
-        create_domain_block: "%{name} 封鎖了網域 %{target}"
-        create_email_domain_block: "%{name} 封鎖了E-mail %{target}"
+        create_domain_block: "%{name} 封鎖了站點 %{target}"
+        create_email_domain_block: "%{name} 封鎖了電子信箱網域 %{target}"
         demote_user: "%{name} 把使用者 %{target} 降級"
-        destroy_domain_block: "%{name} 取消了對網域 %{target} 的封鎖"
-        destroy_email_domain_block: "%{name} 取消了對E-mail %{target} 的封鎖"
+        destroy_custom_emoji: "%{name} 破壞了 %{target} 表情符號"
+        destroy_domain_block: "%{name} 取消了對站點 %{target} 的封鎖"
+        destroy_email_domain_block: "%{name} 取消了對電子信箱網域 %{target} 的封鎖"
         destroy_status: "%{name} 刪除了 %{target} 的嘟文"
         disable_2fa_user: "%{name} 停用了使用者 %{target} 的兩階段認證"
         disable_custom_emoji: "%{name} 停用了自訂表情符號 %{target}"
@@ -165,9 +207,10 @@ zh-TW:
         unsuspend_account: "%{name} 取消了使用者 %{target} 的停權狀態"
         update_custom_emoji: "%{name} 更新了自訂表情符號 %{target}"
         update_status: "%{name} 重整了 %{target} 的嘟文"
+      deleted_status: "(已刪除嘟文)"
       title: 營運日誌
     custom_emojis:
-      by_domain: 網域
+      by_domain: 站點
       copied_msg: 成功將表情複製到本地
       copy: 複製
       copy_failed_msg: 無法將表情複製到本地
@@ -191,42 +234,76 @@ zh-TW:
       update_failed_msg: 無法更新表情符號
       updated_msg: 已更新表情符號!
       upload: 上傳新的表情符號
+    dashboard:
+      backlog: 未處理工作數
+      config: 設定
+      feature_deletions: 帳戶刪除
+      feature_invites: 邀請連結
+      feature_profile_directory: 個人資料目錄
+      feature_registrations: 註冊
+      feature_relay: 聯邦中繼站
+      features: 功能
+      hidden_service: 與隱密服務互連
+      open_reports: 待處理檢舉數
+      recent_users: 最近加入的使用者
+      search: 全文搜尋
+      single_user_mode: 單一使用者模式
+      software: 軟體
+      space: 儲存空間用量
+      title: 儀表板
+      total_users: 總使用者數
+      trends: 趨勢
+      week_interactions: 本週互動次數
+      week_users_active: 本週活躍使用者數
+      week_users_new: 本週新使用者數
     domain_blocks:
-      add_new: 新增
-      created_msg: 正在進行網域封鎖
-      destroyed_msg: 已撤銷網域封鎖
-      domain: 網域
+      add_new: 新增欲封鎖域名
+      created_msg: 正在進行站點封鎖
+      destroyed_msg: 已撤銷站點封鎖
+      domain: 站點
       new:
         create: 新增封鎖
-        hint: 網域封鎖動作並不會阻止帳戶紀錄被新增至資料庫,但會自動回溯性地對那些帳戶套用特定管理設定。
+        hint: 站點封鎖動作並不會阻止帳戶紀錄被新增至資料庫,但會自動回溯性地對那些帳戶套用特定管理設定。
         severity:
-          desc_html: "「<strong>自動靜音</strong>」令該網域下使用者的嘟文,設定為只對關注者顯示,沒有關注的人會看不到。 「<strong>自動刪除</strong>」會刪除將該網域下使用者的嘟文、媒體檔案和個人資料。「<strong>無</strong>」則會拒絕接收來自該網域的媒體檔案。"
+          desc_html: "「<strong>靜音</strong>」令該站點下使用者的嘟文,設定為只對關注者顯示,沒有關注的人會看不到。「<strong>停權</strong>」會刪除將該站點下使用者的嘟文、媒體檔案和個人資料。「<strong>無</strong>」則會拒絕接收來自該站點的媒體檔案。"
           noop: 無
-          silence: 自動靜音
+          silence: 靜音
           suspend: 停權
-        title: 新增封鎖網域
+        title: 新增封鎖站點
       reject_media: 拒絕媒體檔案
-      reject_media_hint: 刪除本地緩存的媒體檔案,並且不再接收來自該網域的任何媒體檔案。與自動封鎖無關
+      reject_media_hint: 刪除本地快取的媒體檔案,並且不再接收來自該站點的任何媒體檔案。與停權無關
+      reject_reports: 拒絕檢舉
+      reject_reports_hint: 忽略所有來自此站點的檢舉。與停權無關
+      rejecting_media: 拒絕媒體檔案
+      rejecting_reports: 拒絕檢舉中
+      severity:
+        silence: 已靜音
+        suspend: 已停權
       show:
-        affected_accounts: 資料庫中有%{count}個使用者受影響
+        affected_accounts:
+          one: 將影響到資料庫中的 1 個帳戶
+          other: 將影響到資料庫中的 %{count} 個帳戶
         retroactive:
-          silence: 對此網域的所有使用者取消靜音
-          suspend: 對此網域的所有使用者取消封鎖
-        title: 撤銷 %{domain} 的網域封鎖
+          silence: 對此站點的所有使用者取消靜音
+          suspend: 對此站點的所有使用者取消停權
+        title: 撤銷 %{domain} 的站點封鎖
         undo: 撤銷
-      undo: 撤銷
+      undo: 復原欲封鎖域名
     email_domain_blocks:
       add_new: 加入新項目
-      created_msg: 已新增E-mail封鎖
+      created_msg: 已成功將電子信箱網域加入黑名單
       delete: 刪除
-      destroyed_msg: 已刪除E-mail封鎖
-      domain: 網域
+      destroyed_msg: 已成功從黑名單刪除電子信箱網域
+      domain: 站點
       new:
-        create: 新增網域
-        title: 新增E-mail封鎖
-      title: E-mail封鎖
+        create: 新增站點
+        title: 新增電子信箱黑名單項目
+      title: 電子信箱黑名單
+    followers:
+      back_to_account: 返回帳戶
+      title: "%{acct} 的關注者"
     instances:
-      title: 已知站點
+      title: 聯邦
     invites:
       filter:
         all: 全部
@@ -234,6 +311,8 @@ zh-TW:
         expired: 已失效
         title: 篩選
       title: 邀請使用者
+    relays:
+      description_html: "<strong>聯邦中繼站</strong> 是種中繼伺服器,會在訂閱並推送至此中繼站的伺服器之間交換大量的公開嘟文。<strong>中繼站也能協助小型或中型伺服器從聯邦中探索內容</strong>,而無須本地使用者手動關注遠端伺服器的其他使用者。"
     report_notes:
       created_msg: 檢舉記錄建立成功!
       destroyed_msg: 檢舉記錄刪除成功!
@@ -262,7 +341,7 @@ zh-TW:
       reported_by: 檢舉人
       resolved: 已解決
       resolved_msg: 檢舉已處理!
-      status: 狀態
+      status: 嘟文
       title: 檢舉
       unassign: 取消指派
       unresolved: 未解決
@@ -272,17 +351,17 @@ zh-TW:
         desc_html: 本站使用者發佈的嘟文數量,以及本站的活躍使用者與一週內新使用者數量
         title: 公開使用者活躍度的統計數據
       bootstrap_timeline_accounts:
-        desc_html: 以半形逗號分隔多個使用者名。只能加入來自本站且未開啟保護的帳號。如果留空,則預設關注本站所有管理員。
+        desc_html: 以半形逗號分隔多個使用者名。只能加入來自本站且未開啟保護的帳戶。如果留空,則預設關注本站所有管理員。
         title: 新使用者預設關注
       contact_information:
-        email: 請輸入一個公開E-mail
+        email: 用於聯絡的公開電子信箱位址
         username: 請輸入使用者名稱
       hero:
-        desc_html: 在首頁顯示。推薦最小 600x100px。如果留空,就會預設為站點預覽圖
+        desc_html: 在首頁顯示。推薦最小 600x100px。如果留空,就會重設回伺服器預覽圖
         title: 主題圖片
       peers_api_enabled:
-        desc_html: 現在本站點在網路中已發現的網域
-        title: 公開已知站點的列表
+        desc_html: 本伺服器在聯邦中發現的站點
+        title: 發布已知伺服器的列表
       registrations:
         closed_message:
           desc_html: 關閉註冊時顯示在首頁的內容,可使用 HTML 標籤
@@ -300,18 +379,18 @@ zh-TW:
         desc_html: 在個人資料頁面上顯示管理人員標誌
         title: 顯示管理人員標誌
       site_description:
-        desc_html: "</code>在首頁顯示,及在 meta 標籤中的站點簡介。可以使用 HTML 標籤,包括 <code>&lt;a&gt;</code> 和 <code>&lt;em&gt;</code>。"
-        title: 站點描述
+        desc_html: 首頁上的介紹文字,描述此 Mastodon 伺服器的特別之處和其他重要資訊。可使用 HTML 標籤,包括 <code>&lt;a&gt;</code> 和 <code>&lt;em&gt;</code>。
+        title: 伺服器描述
       site_description_extended:
-        desc_html: 顯示在資訊頁的長版描述,可使用 HTML 標籤
+        desc_html: 可放置行為準則、規定以及其他此伺服器特有的內容。可使用 HTML 標籤
         title: 本站詳細資訊
       site_terms:
         desc_html: 可以填寫自己的隱私權政策、使用條款或其他法律文本。可以使用 HTML 標籤
         title: 自訂使用條款
-      site_title: 站點名稱
+      site_title: 伺服器名稱
       thumbnail:
         desc_html: 用於在 OpenGraph 和 API 中顯示預覽圖。推薦大小 1200×630px
-        title: 本站縮圖
+        title: 伺服器縮圖
       timeline_preview:
         desc_html: 在主頁顯示本站時間軸
         title: 時間軸預覽
@@ -342,9 +421,9 @@ zh-TW:
       body_remote: 來自 %{domain} 的使用者檢舉了使用者 %{target}
       subject: 來自 %{instance} 的使用者檢舉(#%{id})
   application_mailer:
-    notification_preferences: 更改E-mail設定
-    salutation: "%{name},"
-    settings: 修改E-mail設定︰ %{link}
+    notification_preferences: 變更電子信件設定
+    salutation: "%{name}、"
+    settings: 變更電子信箱設定︰%{link}
     view: '進入瀏覽:'
     view_profile: 檢視個人資料頁
     view_status: 檢視嘟文
@@ -357,9 +436,9 @@ zh-TW:
     warning: 警告,不要把它分享給任何人!
     your_token: 你的 token
   auth:
-    agreement_html: 註冊即表示你同意遵守<a href="%{rules_path}">本站點的規則</a>和<a href="%{terms_path}">使用條款</a>。
+    agreement_html: 按下下方的「註冊」即代表同意遵守 <a href="%{rules_path}">此伺服器的規則</a> 以及 <a href="%{terms_path}">使用條款</a>。
     change_password: 密碼
-    confirm_email: 確認E-mail
+    confirm_email: 確認電子信箱位址
     delete_account: 刪除帳戶
     delete_account_html: 如果你想刪除你的帳戶,請<a href="%{path}">點擊這裡繼續</a>。你需要確認你的操作。
     didnt_get_confirmation: 沒有收到驗證信?
@@ -367,14 +446,14 @@ zh-TW:
     invalid_reset_password_token: 密碼重設 token 無效或已過期。請重新設定密碼。
     login: 登入
     logout: 登出
-    migrate_account: 轉移到另一個帳號
+    migrate_account: 轉移到另一個帳戶
     migrate_account_html: 如果你希望引導他人關注另一個帳戶,請<a href="%{path}">到這裡設定</a>。
     or_log_in_with: 或透過其他方式登入
     providers:
       cas: CAS
       saml: SAML
     register: 註冊
-    resend_confirmation: 重新寄送E-mail
+    resend_confirmation: 重新寄送確認指引
     reset_password: 重設密碼
     security: 登入資訊
     set_new_password: 設定新密碼
@@ -406,15 +485,15 @@ zh-TW:
   deletes:
     bad_password_msg: 想得美,駭客! 密碼輸入錯誤
     confirm_password: 輸入你現在的密碼來驗證身份
-    description_html: 繼續操作將會<strong>永久地、不可還原地</strong>刪除帳戶中的所有內容,然後凍結帳戶。你的用戶名將會被保留,以防有人冒用你的身份。
+    description_html: 繼續操作將會<strong>永久地、不可還原地</strong>刪除帳戶中的所有內容,然後凍結帳戶。你的使用者名稱將會被保留,以防有人冒用你的身份。
     proceed: 刪除帳戶
     success_msg: 你的帳戶已經成功刪除
-    warning_html: 我們只能保證本站點上的內容將會被徹底刪除。對於已經被廣泛傳播的內容,它們在本站點以外的某些地方可能仍然可見。此外,失去連接的站點以及停止接收訂閱的站點所儲存的數據亦無法刪除。
+    warning_html: 我們只能保證本伺服器上的內容將會被徹底刪除。對於已經被廣泛傳播的內容,它們在本伺服器以外的某些地方可能仍然可見。此外,離線伺服器以及停止接收訂閱的伺服器所儲存的資料亦無法刪除。
     warning_title: 關於已傳播的內容警告
   errors:
     '403': 你沒有觀看這個頁面的權限。
     '404': 您所尋找的網頁不存在。
-    '410': 您所尋找的網頁已不存在。
+    '410': 您所尋找的網頁此處已不存在。
     '422':
       content: 安全驗證失敗。請確定有開啟瀏覽器 Cookies 功能?
       title: 安全驗證失敗
@@ -441,7 +520,7 @@ zh-TW:
     save_changes: 儲存修改
     validation_errors: 送出的資料有 %{count} 個問題
   imports:
-    preface: 您可以在此匯入您在其他站點所匯出的資料檔,包括關注的使用者、封鎖的使用者名單。
+    preface: 您可以在此匯入您在其他伺服器所匯出的資料檔,包括關注的使用者、封鎖的使用者名單。
     success: 資料檔上傳成功,正在匯入,請稍候
     types:
       blocking: 您封鎖的使用者名單
@@ -464,7 +543,7 @@ zh-TW:
     invited_by: 你的邀請人是:
     max_uses: "%{count} 次"
     max_uses_prompt: 無限制
-    prompt: 建立分享連結,邀請他人在本站點註冊
+    prompt: 建立分享連結,邀請他人在本伺服器註冊
     table:
       expires_at: 失效時間
       uses: 已使用次數
@@ -536,7 +615,7 @@ zh-TW:
     publishing: 發佈
     web: 站內
   remote_follow:
-    acct: 請輸入您的︰使用者名稱@站點網域
+    acct: 請輸入您的使用者名稱@站點網域
     missing_resource: 無法找到資源
     proceed: 下一步
     prompt: '您希望關注:'
@@ -567,7 +646,7 @@ zh-TW:
       weibo: 新浪微博
     current_session: 目前的 session
     description: "%{platform} 上的 %{browser}"
-    explanation: 這些是現在正登入於你的 Mastodon 帳號的瀏覽器。
+    explanation: 這些是現在正登入於你的 Mastodon 帳戶的瀏覽器。
     ip: IP 位址
     platforms:
       adobe_air: ''
@@ -623,8 +702,8 @@ zh-TW:
   terms:
     title: "%{instance} 使用條款和隱私權政策"
   themes:
-    contrast: 高對比
-    mastodon-light: Mastodon (亮色主題)
+    contrast: Mastodon(高對比)
+    mastodon-light: Mastodon(亮色主題)
   time:
     formats:
       default: "%Y年%-m月%d日 %H:%M"
@@ -646,18 +725,18 @@ zh-TW:
     wrong_code: 您輸入的認證碼無效! 請確認伺服器時間與設備時間是否正確?
   user_mailer:
     backup_ready:
-      explanation: 你要求的 Mastodon 帳號完整備份檔案現已就緒,可供下載!
+      explanation: 你要求的 Mastodon 帳戶完整備份檔案現已就緒,可供下載!
       subject: 你的備份檔已可供下載
       title: 檔案匯出
     welcome:
       edit_profile_action: 設定個人資料
-      edit_profile_step: 你可以設定你的個人資料,包括上傳頭像、橫幅圖片、更改顯示名稱等等。如果你想在新的關注者關注你之前對他們進行審核,你也可以選擇為你的帳戶設為「私人」。
+      edit_profile_step: 你可以設定你的個人資料,包括上傳頭像、橫幅圖片、變更顯示名稱等等。如果你想在新的關注者關注你之前對他們進行審核,你也可以選擇為你的帳戶設為「私人」。
       explanation: 下面是幾個小幫助,希望它們能幫到你
       final_action: 開始嘟嘟
       final_step: '開始嘟嘟吧! 即使你現在沒有關注者,其他人仍然能在本站時間軸或著話題標籤等地方看到你的公開嘟文。試著用 #introductions 這個話題標籤介紹一下自己吧。'
       full_handle: 你的完整帳戶名稱
-      full_handle_hint: 你需要把這個告訴你的朋友們,這樣他們就能從另一個站點向你發送訊息或著關注你。
-      review_preferences_action: 更改偏好設定
+      full_handle_hint: 你需要把這告訴你的朋友們,這樣他們就能從另一個伺服器向你發送訊息或著關注你。
+      review_preferences_action: 變更偏好設定
       review_preferences_step: 記得調整你的偏好設定,比如你想接收什麼類型的電子郵件,或著你想把你的嘟文可見範圍預設設定什麼級別。如果你沒有暈車的話,考慮一下啟用「自動播放 GIF 動畫」這個選項吧。
       subject: 歡迎來到 Mastodon
       tip_federated_timeline: 跨站公共時間軸可以讓你一窺更廣闊的 Mastodon 網路。不過,由於它們只顯示你的鄰居們所訂閱的內容,所以並不是全部。
@@ -667,7 +746,7 @@ zh-TW:
       tips: 小幫手
       title: "%{name} 歡迎你的加入!"
   users:
-    invalid_email: E-mail格式不正確
+    invalid_email: 電子信箱位址不正確
     invalid_otp_token: 兩階段認證碼不正確
     otp_lost_help_html: 如果你無法訪問這兩者,可以通過 %{email} 與我們聯繫
     seamless_external_login: 由於你是從外部系統登入,所以不能設定密碼與電子郵件。
diff --git a/config/navigation.rb b/config/navigation.rb
index 86c2572d7..34b566188 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -14,7 +14,7 @@ SimpleNavigation::Configuration.run do |navigation|
       settings.item :import, safe_join([fa_icon('cloud-upload fw'), t('settings.import')]), settings_import_url
       settings.item :export, safe_join([fa_icon('cloud-download fw'), t('settings.export')]), settings_export_url
       settings.item :authorized_apps, safe_join([fa_icon('list fw'), t('settings.authorized_apps')]), oauth_authorized_applications_url
-      settings.item :identity_proofs, safe_join([fa_icon('key fw'), t('settings.identity_proofs')]), settings_identity_proofs_path, highlights_on: %r{/settings/identity_proofs*}
+      settings.item :identity_proofs, safe_join([fa_icon('key fw'), t('settings.identity_proofs')]), settings_identity_proofs_path, highlights_on: %r{/settings/identity_proofs*}, if: proc { current_account.identity_proofs.exists? }
     end
 
     primary.item :flavours, safe_join([fa_icon('paint-brush fw'), t('settings.flavours')]), settings_flavours_url do |flavours|
@@ -43,7 +43,7 @@ SimpleNavigation::Configuration.run do |navigation|
 
     primary.item :admin, safe_join([fa_icon('cogs fw'), t('admin.title')]), admin_dashboard_url, if: proc { current_user.staff? } do |admin|
       admin.item :dashboard, safe_join([fa_icon('tachometer fw'), t('admin.dashboard.title')]), admin_dashboard_url
-      admin.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), edit_admin_settings_url, if: -> { current_user.admin? }
+      admin.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), edit_admin_settings_url, if: -> { current_user.admin? }, highlights_on: %r{/admin/settings}
       admin.item :custom_emojis, safe_join([fa_icon('smile-o fw'), t('admin.custom_emojis.title')]), admin_custom_emojis_url, highlights_on: %r{/admin/custom_emojis}
       admin.item :relays, safe_join([fa_icon('exchange fw'), t('admin.relays.title')]), admin_relays_url, if: -> { current_user.admin? }, highlights_on: %r{/admin/relays}
       admin.item :subscriptions, safe_join([fa_icon('paper-plane-o fw'), t('admin.subscriptions.title')]), admin_subscriptions_url, if: -> { current_user.admin? }
diff --git a/spec/controllers/admin/settings_controller_spec.rb b/spec/controllers/admin/settings_controller_spec.rb
index 34f6bbdae..6cf0ee20a 100644
--- a/spec/controllers/admin/settings_controller_spec.rb
+++ b/spec/controllers/admin/settings_controller_spec.rb
@@ -19,6 +19,10 @@ RSpec.describe Admin::SettingsController, type: :controller do
     end
 
     describe 'PUT #update' do
+      before do
+        allow_any_instance_of(Form::AdminSettings).to receive(:valid?).and_return(true)
+      end
+
       describe 'for a record that doesnt exist' do
         around do |example|
           before = Setting.site_extended_description