about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Gemfile.lock118
-rw-r--r--app/controllers/api/v1/accounts/lookup_controller.rb2
-rw-r--r--app/javascript/mastodon/components/status_action_bar.js1
-rw-r--r--app/javascript/mastodon/features/account/components/header.js1
-rw-r--r--app/javascript/mastodon/features/direct_timeline/index.js5
-rw-r--r--app/javascript/mastodon/features/getting_started/index.js2
-rw-r--r--app/javascript/mastodon/features/keyboard_shortcuts/index.js2
-rw-r--r--app/javascript/mastodon/features/ui/components/navigation_panel.js2
-rw-r--r--app/javascript/mastodon/locales/cs.json16
-rw-r--r--app/javascript/mastodon/locales/cy.json230
-rw-r--r--app/javascript/mastodon/locales/de.json6
-rw-r--r--app/javascript/mastodon/locales/es.json4
-rw-r--r--app/javascript/mastodon/locales/gd.json12
-rw-r--r--app/javascript/mastodon/locales/gl.json2
-rw-r--r--app/javascript/mastodon/locales/hy.json66
-rw-r--r--app/javascript/mastodon/locales/io.json90
-rw-r--r--app/javascript/mastodon/locales/is.json20
-rw-r--r--app/javascript/mastodon/locales/ja.json68
-rw-r--r--app/javascript/mastodon/locales/pt-PT.json16
-rw-r--r--app/javascript/mastodon/locales/sv.json10
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json122
-rw-r--r--app/javascript/styles/mastodon/components.scss2
-rw-r--r--app/services/activitypub/fetch_featured_collection_service.rb34
-rw-r--r--app/services/resolve_account_service.rb2
-rw-r--r--config/locales/activerecord.io.yml31
-rw-r--r--config/locales/activerecord.ja.yml4
-rw-r--r--config/locales/ca.yml2
-rw-r--r--config/locales/cs.yml2
-rw-r--r--config/locales/cy.yml2
-rw-r--r--config/locales/da.yml4
-rw-r--r--config/locales/devise.ja.yml22
-rw-r--r--config/locales/devise.zh-CN.yml2
-rw-r--r--config/locales/doorkeeper.fa.yml10
-rw-r--r--config/locales/doorkeeper.hy.yml22
-rw-r--r--config/locales/doorkeeper.io.yml140
-rw-r--r--config/locales/doorkeeper.ja.yml6
-rw-r--r--config/locales/el.yml3
-rw-r--r--config/locales/en-GB.yml12
-rw-r--r--config/locales/en.yml2
-rw-r--r--config/locales/es.yml2
-rw-r--r--config/locales/fr.yml2
-rw-r--r--config/locales/gd.yml18
-rw-r--r--config/locales/gl.yml2
-rw-r--r--config/locales/hu.yml2
-rw-r--r--config/locales/hy.yml74
-rw-r--r--config/locales/id.yml2
-rw-r--r--config/locales/io.yml3
-rw-r--r--config/locales/is.yml2
-rw-r--r--config/locales/it.yml2
-rw-r--r--config/locales/ja.yml434
-rw-r--r--config/locales/ko.yml2
-rw-r--r--config/locales/pl.yml12
-rw-r--r--config/locales/pt-PT.yml16
-rw-r--r--config/locales/ru.yml4
-rw-r--r--config/locales/simple_form.ckb.yml3
-rw-r--r--config/locales/simple_form.gd.yml2
-rw-r--r--config/locales/simple_form.is.yml6
-rw-r--r--config/locales/simple_form.ja.yml14
-rw-r--r--config/locales/sv.yml30
-rw-r--r--config/locales/tr.yml2
-rw-r--r--config/locales/vi.yml2
-rw-r--r--config/locales/zh-CN.yml6
-rw-r--r--config/locales/zh-TW.yml2
-rw-r--r--lib/mastodon/settings_cli.rb14
-rw-r--r--package.json14
-rw-r--r--spec/services/activitypub/fetch_featured_collection_service_spec.rb123
-rw-r--r--yarn.lock514
67 files changed, 1516 insertions, 890 deletions
diff --git a/Gemfile.lock b/Gemfile.lock
index 32a4a17fc..2aa318499 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,40 +1,40 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    actioncable (6.1.5)
-      actionpack (= 6.1.5)
-      activesupport (= 6.1.5)
+    actioncable (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (6.1.5)
-      actionpack (= 6.1.5)
-      activejob (= 6.1.5)
-      activerecord (= 6.1.5)
-      activestorage (= 6.1.5)
-      activesupport (= 6.1.5)
+    actionmailbox (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      activejob (= 6.1.5.1)
+      activerecord (= 6.1.5.1)
+      activestorage (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       mail (>= 2.7.1)
-    actionmailer (6.1.5)
-      actionpack (= 6.1.5)
-      actionview (= 6.1.5)
-      activejob (= 6.1.5)
-      activesupport (= 6.1.5)
+    actionmailer (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      actionview (= 6.1.5.1)
+      activejob (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.1.5)
-      actionview (= 6.1.5)
-      activesupport (= 6.1.5)
+    actionpack (6.1.5.1)
+      actionview (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       rack (~> 2.0, >= 2.0.9)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actiontext (6.1.5)
-      actionpack (= 6.1.5)
-      activerecord (= 6.1.5)
-      activestorage (= 6.1.5)
-      activesupport (= 6.1.5)
+    actiontext (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      activerecord (= 6.1.5.1)
+      activestorage (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       nokogiri (>= 1.8.5)
-    actionview (6.1.5)
-      activesupport (= 6.1.5)
+    actionview (6.1.5.1)
+      activesupport (= 6.1.5.1)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
@@ -45,22 +45,22 @@ GEM
       case_transform (>= 0.2)
       jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
     active_record_query_trace (1.8)
-    activejob (6.1.5)
-      activesupport (= 6.1.5)
+    activejob (6.1.5.1)
+      activesupport (= 6.1.5.1)
       globalid (>= 0.3.6)
-    activemodel (6.1.5)
-      activesupport (= 6.1.5)
-    activerecord (6.1.5)
-      activemodel (= 6.1.5)
-      activesupport (= 6.1.5)
-    activestorage (6.1.5)
-      actionpack (= 6.1.5)
-      activejob (= 6.1.5)
-      activerecord (= 6.1.5)
-      activesupport (= 6.1.5)
+    activemodel (6.1.5.1)
+      activesupport (= 6.1.5.1)
+    activerecord (6.1.5.1)
+      activemodel (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
+    activestorage (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      activejob (= 6.1.5.1)
+      activerecord (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       marcel (~> 1.0)
       mini_mime (>= 1.1.0)
-    activesupport (6.1.5)
+    activesupport (6.1.5.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -81,7 +81,7 @@ GEM
     attr_required (1.0.1)
     awrence (1.1.1)
     aws-eventstream (1.2.0)
-    aws-partitions (1.579.0)
+    aws-partitions (1.582.0)
     aws-sdk-core (3.130.2)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.525.0)
@@ -90,7 +90,7 @@ GEM
     aws-sdk-kms (1.56.0)
       aws-sdk-core (~> 3, >= 3.127.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.113.1)
+    aws-sdk-s3 (1.113.2)
       aws-sdk-core (~> 3, >= 3.127.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.4)
@@ -377,7 +377,7 @@ GEM
       activesupport (>= 4)
       railties (>= 4)
       request_store (~> 1.0)
-    loofah (2.16.0)
+    loofah (2.17.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mail (2.7.1)
@@ -450,7 +450,7 @@ GEM
     pastel (0.8.0)
       tty-color (~> 0.5)
     pg (1.3.5)
-    pghero (2.8.2)
+    pghero (2.8.3)
       activerecord (>= 5)
     pkg-config (1.4.7)
     posix-spawn (0.3.15)
@@ -492,20 +492,20 @@ GEM
       rack
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
-    rails (6.1.5)
-      actioncable (= 6.1.5)
-      actionmailbox (= 6.1.5)
-      actionmailer (= 6.1.5)
-      actionpack (= 6.1.5)
-      actiontext (= 6.1.5)
-      actionview (= 6.1.5)
-      activejob (= 6.1.5)
-      activemodel (= 6.1.5)
-      activerecord (= 6.1.5)
-      activestorage (= 6.1.5)
-      activesupport (= 6.1.5)
+    rails (6.1.5.1)
+      actioncable (= 6.1.5.1)
+      actionmailbox (= 6.1.5.1)
+      actionmailer (= 6.1.5.1)
+      actionpack (= 6.1.5.1)
+      actiontext (= 6.1.5.1)
+      actionview (= 6.1.5.1)
+      activejob (= 6.1.5.1)
+      activemodel (= 6.1.5.1)
+      activerecord (= 6.1.5.1)
+      activestorage (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       bundler (>= 1.15.0)
-      railties (= 6.1.5)
+      railties (= 6.1.5.1)
       sprockets-rails (>= 2.0.0)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
@@ -521,9 +521,9 @@ GEM
       railties (>= 6.0.0, < 7)
     rails-settings-cached (0.6.6)
       rails (>= 4.2.0)
-    railties (6.1.5)
-      actionpack (= 6.1.5)
-      activesupport (= 6.1.5)
+    railties (6.1.5.1)
+      actionpack (= 6.1.5.1)
+      activesupport (= 6.1.5.1)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
@@ -555,10 +555,10 @@ GEM
     rspec-expectations (3.11.0)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.11.0)
-    rspec-mocks (3.11.0)
+    rspec-mocks (3.11.1)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.11.0)
-    rspec-rails (5.1.1)
+    rspec-rails (5.1.2)
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       railties (>= 5.2)
diff --git a/app/controllers/api/v1/accounts/lookup_controller.rb b/app/controllers/api/v1/accounts/lookup_controller.rb
index aee6be18a..8597f891d 100644
--- a/app/controllers/api/v1/accounts/lookup_controller.rb
+++ b/app/controllers/api/v1/accounts/lookup_controller.rb
@@ -12,5 +12,7 @@ class Api::V1::Accounts::LookupController < Api::BaseController
 
   def set_account
     @account = ResolveAccountService.new.call(params[:acct], skip_webfinger: true) || raise(ActiveRecord::RecordNotFound)
+  rescue Addressable::URI::InvalidURIError
+    raise(ActiveRecord::RecordNotFound)
   end
 end
diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js
index a21b066a5..1d8fe23da 100644
--- a/app/javascript/mastodon/components/status_action_bar.js
+++ b/app/javascript/mastodon/components/status_action_bar.js
@@ -266,6 +266,7 @@ class StatusActionBar extends ImmutablePureComponent {
       menu.push({ text: intl.formatMessage(messages.redraft), action: this.handleRedraftClick });
     } else {
       menu.push({ text: intl.formatMessage(messages.mention, { name: account.get('username') }), action: this.handleMentionClick });
+      menu.push({ text: intl.formatMessage(messages.direct, { name: account.get('username') }), action: this.handleDirectClick });
       menu.push(null);
 
       if (relationship && relationship.get('muting')) {
diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js
index 83dc8d9b8..2830bee29 100644
--- a/app/javascript/mastodon/features/account/components/header.js
+++ b/app/javascript/mastodon/features/account/components/header.js
@@ -177,6 +177,7 @@ class Header extends ImmutablePureComponent {
 
     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);
     }
 
diff --git a/app/javascript/mastodon/features/direct_timeline/index.js b/app/javascript/mastodon/features/direct_timeline/index.js
index 46a56e942..debb2d721 100644
--- a/app/javascript/mastodon/features/direct_timeline/index.js
+++ b/app/javascript/mastodon/features/direct_timeline/index.js
@@ -10,7 +10,7 @@ import { connectDirectStream } from '../../actions/streaming';
 import ConversationsListContainer from './containers/conversations_list_container';
 
 const messages = defineMessages({
-  title: { id: 'column.conversations', defaultMessage: 'Conversations' },
+  title: { id: 'column.direct', defaultMessage: 'Direct messages' },
 });
 
 export default @connect()
@@ -91,7 +91,8 @@ class DirectTimeline extends React.PureComponent {
           scrollKey={`direct_timeline-${columnId}`}
           timelineId='direct'
           onLoadMore={this.handleLoadMore}
-          emptyMessage={<FormattedMessage id='empty_column.conversations' defaultMessage="Once you send or receive a post that's only visible to people mentioned in it, it will show up here." />}
+          prepend={<div className='follow_requests-unlocked_explanation'><span><FormattedMessage id='compose_form.encryption_warning' defaultMessage='Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a></span></div>}
+          emptyMessage={<FormattedMessage id='empty_column.direct' defaultMessage="You don't have any direct messages yet. When you send or receive one, it will show up here." />}
         />
       </Column>
     );
diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.js
index 678fb089c..65cee7498 100644
--- a/app/javascript/mastodon/features/getting_started/index.js
+++ b/app/javascript/mastodon/features/getting_started/index.js
@@ -22,7 +22,7 @@ const messages = defineMessages({
   settings_subheading: { id: 'column_subheading.settings', defaultMessage: 'Settings' },
   community_timeline: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
   explore: { id: 'navigation_bar.explore', defaultMessage: 'Explore' },
-  direct: { id: 'column.conversations', defaultMessage: 'Conversations' },
+  direct: { id: 'navigation_bar.direct', defaultMessage: 'Direct messages' },
   bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' },
   preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
   follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.js
index 5f38e2f4e..8f1631d82 100644
--- a/app/javascript/mastodon/features/keyboard_shortcuts/index.js
+++ b/app/javascript/mastodon/features/keyboard_shortcuts/index.js
@@ -122,7 +122,7 @@ class KeyboardShortcuts extends ImmutablePureComponent {
               </tr>
               <tr>
                 <td><kbd>g</kbd>+<kbd>d</kbd></td>
-                <td><FormattedMessage id='keyboard_shortcuts.conversations' defaultMessage='to open conversations column' /></td>
+                <td><FormattedMessage id='keyboard_shortcuts.direct' defaultMessage='to open direct messages column' /></td>
               </tr>
               <tr>
                 <td><kbd>g</kbd>+<kbd>s</kbd></td>
diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.js b/app/javascript/mastodon/features/ui/components/navigation_panel.js
index 9a3940b5b..fe4ed5d77 100644
--- a/app/javascript/mastodon/features/ui/components/navigation_panel.js
+++ b/app/javascript/mastodon/features/ui/components/navigation_panel.js
@@ -16,7 +16,7 @@ const NavigationPanel = () => (
     <NavLink className='column-link column-link--transparent' to='/explore' data-preview-title-id='explore.title' data-preview-icon='hashtag'><Icon className='column-link__icon' id='hashtag' fixedWidth /><FormattedMessage id='explore.title' defaultMessage='Explore' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/public/local' data-preview-title-id='column.community' data-preview-icon='users' ><Icon className='column-link__icon' id='users' fixedWidth /><FormattedMessage id='tabs_bar.local_timeline' defaultMessage='Local' /></NavLink>
     <NavLink className='column-link column-link--transparent' exact to='/public' data-preview-title-id='column.public' data-preview-icon='globe' ><Icon className='column-link__icon' id='globe' fixedWidth /><FormattedMessage id='tabs_bar.federated_timeline' defaultMessage='Federated' /></NavLink>
-    <NavLink className='column-link column-link--transparent' to='/conversations'><Icon className='column-link__icon' id='at' fixedWidth /><FormattedMessage id='column.conversations' defaultMessage='Conversations' /></NavLink>
+    <NavLink className='column-link column-link--transparent' to='/conversations'><Icon className='column-link__icon' id='at' fixedWidth /><FormattedMessage id='navigation_bar.direct' defaultMessage='Direct messages' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/favourites'><Icon className='column-link__icon' id='star' fixedWidth /><FormattedMessage id='navigation_bar.favourites' defaultMessage='Favourites' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/bookmarks'><Icon className='column-link__icon' id='bookmark' fixedWidth /><FormattedMessage id='navigation_bar.bookmarks' defaultMessage='Bookmarks' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/lists'><Icon className='column-link__icon' id='list-ul' fixedWidth /><FormattedMessage id='navigation_bar.lists' defaultMessage='Lists' /></NavLink>
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index 6260e2cb8..df1e750b7 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -93,7 +93,7 @@
   "community.column_settings.media_only": "Pouze média",
   "community.column_settings.remote_only": "Pouze vzdálené",
   "compose_form.direct_message_warning_learn_more": "Zjistit více",
-  "compose_form.encryption_warning": "Příspěvky v Mastodonu nejsou šifrovány end-to-end. Nesdílejte žádné nebezpečné informace přes Mastodon.",
+  "compose_form.encryption_warning": "Příspěvky na Mastodonu nejsou end-to-end šifrovány. Nesdílejte přes Mastodon žádné nebezpečné informace.",
   "compose_form.hashtag_warning": "Tento příspěvek nebude zobrazen pod žádným hashtagem, neboť je neuvedený. Pouze veřejné příspěvky mohou být vyhledány podle hashtagu.",
   "compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky učené pouze pro sledující.",
   "compose_form.lock_disclaimer.lock": "uzamčen",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ještě jste nezablokovali žádného uživatele.",
   "empty_column.bookmarked_statuses": "Ještě nemáte v záložkách žádné příspěvky. Pokud si do nich nějaký přidáte, zobrazí se zde.",
   "empty_column.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!",
-  "empty_column.conversations": "Jakmile pošlete nebo obdržíte příspěvek, který je viditelný pouze pro lidi v něm uvedené, zobrazí se zde.",
+  "empty_column.conversations": "Jakmile pošlete nebo obdržíte příspěvek, který je viditelný pouze lidem v něm zmíněným, objeví se tady.",
   "empty_column.domain_blocks": "Ještě nemáte žádné blokované domény.",
   "empty_column.explore_statuses": "Momentálně není nic populární. Vraťte se později!",
   "empty_column.favourited_statuses": "Ještě nemáte žádné oblíbené příspěvky. Pokud si nějaký oblíbíte, zobrazí se zde.",
@@ -230,7 +230,7 @@
   "keyboard_shortcuts.boost": "Boostnout příspěvek",
   "keyboard_shortcuts.column": "Focus na sloupec",
   "keyboard_shortcuts.compose": "Focus na textové pole nového příspěvku",
-  "keyboard_shortcuts.conversations": "pro otevření sloupce konverzací",
+  "keyboard_shortcuts.conversations": "Otevřít sloupec konverzací",
   "keyboard_shortcuts.description": "Popis",
   "keyboard_shortcuts.down": "Posunout dolů v seznamu",
   "keyboard_shortcuts.enter": "Otevřít příspěvek",
@@ -365,13 +365,13 @@
   "poll_button.add_poll": "Přidat anketu",
   "poll_button.remove_poll": "Odstranit anketu",
   "privacy.change": "Změnit soukromí příspěvku",
-  "privacy.direct.long": "Viditelné pouze pro zmíněné uživatele",
-  "privacy.direct.short": "Pouze lidé, které zmiňuji",
-  "privacy.private.long": "Viditelné pouze pro sledující",
+  "privacy.direct.long": "Viditelný pouze pro zmíněné uživatele",
+  "privacy.direct.short": "Pouze lidé, které zmíním",
+  "privacy.private.long": "Viditelný pouze pro sledující",
   "privacy.private.short": "Pouze sledující",
-  "privacy.public.long": "Viditelné pro všechny",
+  "privacy.public.long": "Viditelný pro všechny",
   "privacy.public.short": "Veřejný",
-  "privacy.unlisted.long": "Viditelné pro všechny, ale bez objevovacích funkcí",
+  "privacy.unlisted.long": "Viditelný pro všechny, ale vyňat z funkcí objevování",
   "privacy.unlisted.short": "Neuvedený",
   "refresh": "Obnovit",
   "regeneration_indicator.label": "Načítání…",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 039379315..7edb1d1cf 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -4,20 +4,20 @@
   "account.badges.bot": "Bot",
   "account.badges.group": "Grŵp",
   "account.block": "Blocio @{name}",
-  "account.block_domain": "Cuddio popeth rhag {domain}",
+  "account.block_domain": "Blocio parth {domain}",
   "account.blocked": "Blociwyd",
   "account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol",
   "account.cancel_follow_request": "Canslo cais dilyn",
   "account.direct": "Neges breifat @{name}",
   "account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio",
-  "account.domain_blocked": "Parth wedi ei guddio",
+  "account.domain_blocked": "Parth wedi ei flocio",
   "account.edit_profile": "Golygu proffil",
   "account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio",
   "account.endorse": "Arddangos ar fy mhroffil",
   "account.follow": "Dilyn",
   "account.followers": "Dilynwyr",
-  "account.followers.empty": "Nid oes neb yn dilyn y defnyddiwr hwn eto.",
-  "account.followers_counter": "{count, plural, one {{counter} Ddilynwr} other {{counter} o Ddilynwyr}}",
+  "account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
+  "account.followers_counter": "{count, plural, one {{counter} Dilynwr} other {{counter} o Ddilynwyr}}",
   "account.following": "Yn dilyn",
   "account.following_counter": "{count, plural, one {{counter} yn Dilyn} other {{counter} yn Dilyn}}",
   "account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.",
@@ -32,8 +32,8 @@
   "account.mute": "Tawelu @{name}",
   "account.mute_notifications": "Cuddio hysbysiadau o @{name}",
   "account.muted": "Distewyd",
-  "account.posts": "Tŵtiau",
-  "account.posts_with_replies": "Tŵtiau ac atebion",
+  "account.posts": "Postiadau",
+  "account.posts_with_replies": "Postiadau ac atebion",
   "account.report": "Adrodd @{name}",
   "account.requested": "Aros am gymeradwyaeth. Cliciwch er mwyn canslo cais dilyn",
   "account.share": "Rhannwch broffil @{name}",
@@ -48,17 +48,17 @@
   "account.unmute_notifications": "Dad-dawelu hysbysiadau o @{name}",
   "account.unmute_short": "Dad-dewi",
   "account_note.placeholder": "Clicio i ychwanegu nodyn",
-  "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
-  "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
+  "admin.dashboard.daily_retention": "Cyfradd cadw defnyddwyr fesul diwrnod ar ôl cofrestru",
+  "admin.dashboard.monthly_retention": "Cyfradd cadw defnyddwyr fesul mis ar ôl cofrestru",
   "admin.dashboard.retention.average": "Cyfartaledd",
-  "admin.dashboard.retention.cohort": "Sign-up month",
+  "admin.dashboard.retention.cohort": "Mis cofrestru",
   "admin.dashboard.retention.cohort_size": "Defnyddwyr newydd",
   "alert.rate_limited.message": "Ceisiwch eto ar ôl {retry_time, time, medium}.",
   "alert.rate_limited.title": "Cyfradd gyfyngedig",
   "alert.unexpected.message": "Digwyddodd gwall annisgwyl.",
   "alert.unexpected.title": "Wps!",
   "announcement.announcement": "Cyhoeddiad",
-  "attachments_list.unprocessed": "(unprocessed)",
+  "attachments_list.unprocessed": "(heb eu prosesu)",
   "autosuggest_hashtag.per_week": "{count} yr wythnos",
   "boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa",
   "bundle_column_error.body": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.",
@@ -70,7 +70,7 @@
   "column.blocks": "Defnyddwyr a flociwyd",
   "column.bookmarks": "Tudalnodau",
   "column.community": "Ffrwd lleol",
-  "column.conversations": "Conversations",
+  "column.conversations": "Sgyrsiau",
   "column.directory": "Pori proffiliau",
   "column.domain_blocks": "Parthau cuddiedig",
   "column.favourites": "Ffefrynnau",
@@ -79,7 +79,7 @@
   "column.lists": "Rhestrau",
   "column.mutes": "Defnyddwyr a ddistewyd",
   "column.notifications": "Hysbysiadau",
-  "column.pins": "Tŵtiau wedi eu pinio",
+  "column.pins": "Postiadau wedi eu pinio",
   "column.public": "Ffrwd y ffederasiwn",
   "column_back_button.label": "Nôl",
   "column_header.hide_settings": "Cuddio dewisiadau",
@@ -93,9 +93,9 @@
   "community.column_settings.media_only": "Cyfryngau yn unig",
   "community.column_settings.remote_only": "Anghysbell yn unig",
   "compose_form.direct_message_warning_learn_more": "Dysgu mwy",
-  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
-  "compose_form.hashtag_warning": "Ni fydd y tŵt hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond tŵtiau cyhoeddus gellid chwilota amdanynt drwy hashnod.",
-  "compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich tŵtiau dilynwyr-yn-unig.",
+  "compose_form.encryption_warning": "Dyw postiadau ar Mastodon ddim wedi'u hamgryptio o ben i ben. Peidiwch â rhannu unrhyw wybodaeth beryglus dros Mastodon.",
+  "compose_form.hashtag_warning": "Ni fydd y post hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond postiadau cyhoeddus gellid chwilio amdanynt drwy hashnod.",
+  "compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich postiadau dilynwyr-yn-unig.",
   "compose_form.lock_disclaimer.lock": "wedi ei gloi",
   "compose_form.placeholder": "Beth sydd ar eich meddwl?",
   "compose_form.poll.add_option": "Ychwanegu Dewisiad",
@@ -106,7 +106,7 @@
   "compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis",
   "compose_form.publish": "Tŵt",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Save changes",
+  "compose_form.save_changes": "Cadw newidiadau",
   "compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif",
   "compose_form.sensitive.marked": "Cyfryngau wedi'u marcio'n sensitif",
   "compose_form.sensitive.unmarked": "Nid yw'r cyfryngau wedi'u marcio'n sensitif",
@@ -118,11 +118,11 @@
   "confirmations.block.confirm": "Blocio",
   "confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
   "confirmations.delete.confirm": "Dileu",
-  "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y tŵt hwn?",
+  "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
   "confirmations.delete_list.confirm": "Dileu",
   "confirmations.delete_list.message": "Ydych chi'n sicr eich bod eisiau dileu y rhestr hwn am byth?",
   "confirmations.discard_edit_media.confirm": "Gwaredu",
-  "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
+  "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg, eu taflu beth bynnag?",
   "confirmations.domain_block.confirm": "Cuddio parth cyfan",
   "confirmations.domain_block.message": "A ydych yn hollol, hollol sicr eich bod am flocio y {domain} cyfan? Yn y nifer helaeth o achosion mae blocio neu tawelu ambell gyfrif yn ddigonol ac yn well. Ni fyddwch yn gweld cynnwys o'r parth hwnnw mewn unrhyw ffrydiau cyhoeddus na chwaith yn eich hysbysiadau. Bydd hyn yn cael gwared o'ch dilynwyr o'r parth hwnnw.",
   "confirmations.logout.confirm": "Allgofnodi",
@@ -131,7 +131,7 @@
   "confirmations.mute.explanation": "Bydd hyn yn cuddio pyst oddi wrthynt a physt sydd yn sôn amdanynt, ond bydd hyn dal yn gadael iddyn nhw gweld eich pyst a'ch dilyn.",
   "confirmations.mute.message": "Ydych chi'n sicr eich bod am ddistewi {name}?",
   "confirmations.redraft.confirm": "Dileu & ailddrafftio",
-  "confirmations.redraft.message": "Ydych chi'n siwr eich bod eisiau dileu y tŵt hwn a'i ailddrafftio? Bydd ffefrynnau a bwstiau'n cael ei colli, a bydd ymatebion i'r tŵt gwreiddiol yn cael eu hamddifadu.",
+  "confirmations.redraft.message": "Ydych chi'n siwr eich bod eisiau dileu y post hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael ei colli, a bydd ymatebion i'r post gwreiddiol yn cael eu hamddifadu.",
   "confirmations.reply.confirm": "Ateb",
   "confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n sicr yr ydych am barhau?",
   "confirmations.unfollow.confirm": "Dad-ddilynwch",
@@ -140,11 +140,11 @@
   "conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
   "conversation.open": "Gweld sgwrs",
   "conversation.with": "Gyda {names}",
-  "directory.federated": "O ffedysawd hysbys",
+  "directory.federated": "O'r ffedysawd cyfan",
   "directory.local": "O {domain} yn unig",
   "directory.new_arrivals": "Newydd-ddyfodiaid",
   "directory.recently_active": "Yn weithredol yn ddiweddar",
-  "embed.instructions": "Mewnblannwch y tŵt hwn ar eich gwefan drwy gopïo'r côd isod.",
+  "embed.instructions": "Gosodwch y post hwn ar eich gwefan drwy gopïo'r côd isod.",
   "embed.preview": "Dyma sut olwg fydd arno:",
   "emoji_button.activity": "Gweithgarwch",
   "emoji_button.custom": "Unigryw",
@@ -160,42 +160,42 @@
   "emoji_button.search_results": "Canlyniadau chwilio",
   "emoji_button.symbols": "Symbolau",
   "emoji_button.travel": "Teithio & Llefydd",
-  "empty_column.account_suspended": "Account suspended",
-  "empty_column.account_timeline": "Dim tŵtiau fama!",
+  "empty_column.account_suspended": "Cyfrif wedi'i atal",
+  "empty_column.account_timeline": "Dim postiadau yma!",
   "empty_column.account_unavailable": "Proffil ddim ar gael",
   "empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
   "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw dwtiau tudalnodiedig eto. Pan y byddwch yn tudalnodi un, mi fydd yn ymddangos yma.",
   "empty_column.community": "Mae'r ffrwd lleol yn wag. Ysgrifenwch rhywbeth yn gyhoeddus i gael dechrau arni!",
-  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+  "empty_column.conversations": "Unwaith y byddwch chi'n anfon neu'n derbyn post sydd ond yn weladwy i'r bobl a grybwyllir ynddo, bydd yn ymddangos yma.",
   "empty_column.domain_blocks": "Nid oes yna unrhyw barthau cuddiedig eto.",
-  "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
+  "empty_column.explore_statuses": "Does dim byd yn trendio ar hyn o bryd. Gwiriwch yn ôl yn nes ymlaen!",
   "empty_column.favourited_statuses": "Nid oes gennych unrhyw hoff dwtiau eto. Pan y byddwch yn hoffi un, mi fydd yn ymddangos yma.",
-  "empty_column.favourites": "Nid oes neb wedi hoffi'r tŵt yma eto. Pan bydd rhywun yn ei hoffi, byddent yn ymddangos yma.",
-  "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
+  "empty_column.favourites": "Does neb wedi hoffi'r post hwn eto. Pan bydd rhywun yn ei hoffi, byddent yn ymddangos yma.",
+  "empty_column.follow_recommendations": "Does dim awgrymiadau yma i chi. Gallwch geisio chwilio am bobl yr ydych yn eu hadnabod neu archwilio hashnodau sy'n trendio.",
   "empty_column.follow_requests": "Nid oes gennych unrhyw geisiadau dilyn eto. Pan dderbyniwch chi un, byddent yn ymddangos yma.",
   "empty_column.hashtag": "Nid oes dim ar yr hashnod hwn eto.",
   "empty_column.home": "Mae eich ffrwd gartref yn wag! Ymwelwch a {public} neu defnyddiwch y chwilotwr i ddechrau arni ac i gwrdd a defnyddwyr eraill.",
-  "empty_column.home.suggestions": "See some suggestions",
+  "empty_column.home.suggestions": "Gweler awgrymiadau",
   "empty_column.list": "Nid oes dim yn y rhestr yma eto. Pan y bydd aelodau'r rhestr yn cyhoeddi statws newydd, mi fydd yn ymddangos yma.",
   "empty_column.lists": "Nid oes gennych unrhyw restrau eto. Pan grëwch chi un, mi fydd yn ymddangos yma.",
   "empty_column.mutes": "Nid ydych wedi tawelu unrhyw ddefnyddwyr eto.",
   "empty_column.notifications": "Nid oes gennych unrhyw hysbysiadau eto. Rhyngweithiwch ac eraill i ddechrau'r sgwrs.",
   "empty_column.public": "Does dim byd yma! Ysgrifennwch rhywbeth yn gyhoeddus, neu dilynwch ddefnyddwyr o achosion eraill i'w lenwi",
   "error.unexpected_crash.explanation": "Oherwydd gwall yn ein cod neu oherwydd problem cysondeb porwr, nid oedd y dudalen hon gallu cael ei dangos yn gywir.",
-  "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
+  "error.unexpected_crash.explanation_addons": "Ni ellid arddangos y dudalen hon yn gywir. Mae'r gwall hwn yn debygol o gael ei achosi gan ategyn porwr neu offer cyfieithu awtomatig.",
   "error.unexpected_crash.next_steps": "Ceisiwch ail-lwytho y dudalen. Os nad yw hyn yn eich helpu, efallai gallech defnyddio Mastodon trwy borwr neu ap brodorol gwahanol.",
-  "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+  "error.unexpected_crash.next_steps_addons": "Ceisiwch eu hanalluogi ac adnewyddu'r dudalen. Os nad yw hynny'n helpu, efallai y byddwch yn dal i allu defnyddio Mastodon trwy borwr neu ap cynhenid arall.",
   "errors.unexpected_crash.copy_stacktrace": "Copïo'r olrhain stac i'r clipfwrdd",
   "errors.unexpected_crash.report_issue": "Rhoi gwybod am broblem",
-  "explore.search_results": "Search results",
+  "explore.search_results": "Canlyniadau chwilio",
   "explore.suggested_follows": "I chi",
   "explore.title": "Archwilio",
   "explore.trending_links": "Newyddion",
   "explore.trending_statuses": "Postiau",
   "explore.trending_tags": "Hanshnodau",
   "follow_recommendations.done": "Wedi gorffen",
-  "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
-  "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
+  "follow_recommendations.heading": "Dilynwch y bobl yr hoffech chi weld eu postiadau! Dyma ambell i awgrymiad.",
+  "follow_recommendations.lead": "Bydd postiadau gan bobl rydych chi'n eu dilyn yn ymddangos mewn trefn amser ar eich ffrwd cartref. Peidiwch â bod ofn gwneud camgymeriadau, gallwch chi ddad-ddilyn pobl yr un mor hawdd unrhyw bryd!",
   "follow_request.authorize": "Caniatau",
   "follow_request.reject": "Gwrthod",
   "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
@@ -218,7 +218,7 @@
   "hashtag.column_settings.tag_mode.none": "Dim o'r rhain",
   "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
   "home.column_settings.basic": "Syml",
-  "home.column_settings.show_reblogs": "Dangos bŵstiau",
+  "home.column_settings.show_reblogs": "Dangos hybiau",
   "home.column_settings.show_replies": "Dangos ymatebion",
   "home.hide_announcements": "Cuddio cyhoeddiadau",
   "home.show_announcements": "Dangos cyhoeddiadau",
@@ -228,26 +228,26 @@
   "keyboard_shortcuts.back": "i lywio nôl",
   "keyboard_shortcuts.blocked": "i agor rhestr defnyddwyr a flociwyd",
   "keyboard_shortcuts.boost": "i fŵstio",
-  "keyboard_shortcuts.column": "i ffocysu tŵt yn un o'r colofnau",
+  "keyboard_shortcuts.column": "Ffocysu colofn",
   "keyboard_shortcuts.compose": "i ffocysu yr ardal cyfansoddi testun",
-  "keyboard_shortcuts.conversations": "to open conversations column",
+  "keyboard_shortcuts.conversations": "i agor colofn sgyrsiau",
   "keyboard_shortcuts.description": "Disgrifiad",
   "keyboard_shortcuts.down": "i symud lawr yn y rhestr",
-  "keyboard_shortcuts.enter": "i agor tŵt",
+  "keyboard_shortcuts.enter": "Agor post",
   "keyboard_shortcuts.favourite": "i hoffi",
   "keyboard_shortcuts.favourites": "i agor rhestr hoffi",
   "keyboard_shortcuts.federated": "i agor ffrwd y ffederasiwn",
   "keyboard_shortcuts.heading": "Llwybrau byr allweddell",
   "keyboard_shortcuts.home": "i agor ffrwd cartref",
   "keyboard_shortcuts.hotkey": "Bysell brys",
-  "keyboard_shortcuts.legend": "i ddangos yr arwr yma",
+  "keyboard_shortcuts.legend": "i ddangos y rhestr hon",
   "keyboard_shortcuts.local": "i agor ffrwd lleol",
   "keyboard_shortcuts.mention": "i grybwyll yr awdur",
   "keyboard_shortcuts.muted": "i agor rhestr defnyddwyr a dawelwyd",
   "keyboard_shortcuts.my_profile": "i agor eich proffil",
   "keyboard_shortcuts.notifications": "i agor colofn hysbysiadau",
   "keyboard_shortcuts.open_media": "i agor cyfryngau",
-  "keyboard_shortcuts.pinned": "i agor rhestr tŵtiau wedi'i pinio",
+  "keyboard_shortcuts.pinned": "Agor rhestr postiadau wedi'u pinio",
   "keyboard_shortcuts.profile": "i agor proffil yr awdur",
   "keyboard_shortcuts.reply": "i ateb",
   "keyboard_shortcuts.requests": "i agor rhestr ceisiadau dilyn",
@@ -256,7 +256,7 @@
   "keyboard_shortcuts.start": "i agor colofn \"dechrau arni\"",
   "keyboard_shortcuts.toggle_hidden": "i ddangos/cuddio testun tu ôl i CW",
   "keyboard_shortcuts.toggle_sensitivity": "i ddangos/gyddio cyfryngau",
-  "keyboard_shortcuts.toot": "i ddechrau tŵt newydd sbon",
+  "keyboard_shortcuts.toot": "Dechrau post newydd",
   "keyboard_shortcuts.unfocus": "i ddad-ffocysu ardal cyfansoddi testun/chwilio",
   "keyboard_shortcuts.up": "i symud yn uwch yn y rhestr",
   "lightbox.close": "Cau",
@@ -275,7 +275,7 @@
   "lists.replies_policy.list": "Aelodau'r rhestr",
   "lists.replies_policy.none": "Neb",
   "lists.replies_policy.title": "Dangos ymatebion i:",
-  "lists.search": "Chwilio ymysg pobl yr ydych yn ei ddilyn",
+  "lists.search": "Chwilio ymysg pobl yr ydych yn eu dilyn",
   "lists.subheading": "Eich rhestrau",
   "load_pending": "{count, plural, one {# eitem newydd} other {# eitemau newydd}}",
   "loading_indicator.label": "Llwytho...",
@@ -289,7 +289,7 @@
   "navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
   "navigation_bar.bookmarks": "Tudalnodau",
   "navigation_bar.community_timeline": "Ffrwd leol",
-  "navigation_bar.compose": "Cyfansoddi tŵt newydd",
+  "navigation_bar.compose": "Cyfansoddi post newydd",
   "navigation_bar.discover": "Darganfod",
   "navigation_bar.domain_blocks": "Parthau cuddiedig",
   "navigation_bar.edit_profile": "Golygu proffil",
@@ -304,28 +304,28 @@
   "navigation_bar.logout": "Allgofnodi",
   "navigation_bar.mutes": "Defnyddwyr a dawelwyd",
   "navigation_bar.personal": "Personol",
-  "navigation_bar.pins": "Tŵtiau wedi eu pinio",
+  "navigation_bar.pins": "Postiadau wedi eu pinio",
   "navigation_bar.preferences": "Dewisiadau",
   "navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
   "navigation_bar.security": "Diogelwch",
-  "notification.admin.sign_up": "{name} signed up",
-  "notification.favourite": "hoffodd {name} eich tŵt",
-  "notification.follow": "dilynodd {name} chi",
+  "notification.admin.sign_up": "Cofrestrodd {name}",
+  "notification.favourite": "Hoffodd {name} eich post",
+  "notification.follow": "Dilynodd {name} chi",
   "notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn",
   "notification.mention": "Soniodd {name} amdanoch chi",
   "notification.own_poll": "Mae eich pôl wedi diweddu",
   "notification.poll": "Mae pleidlais rydych wedi pleidleisio ynddi wedi dod i ben",
-  "notification.reblog": "Hysbysebodd {name} eich tŵt",
+  "notification.reblog": "Hybodd {name} eich post",
   "notification.status": "{name} newydd ei bostio",
-  "notification.update": "{name} edited a post",
+  "notification.update": "Golygodd {name} bost",
   "notifications.clear": "Clirio hysbysiadau",
   "notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?",
-  "notifications.column_settings.admin.sign_up": "New sign-ups:",
+  "notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:",
   "notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith",
   "notifications.column_settings.favourite": "Ffefrynnau:",
   "notifications.column_settings.filter_bar.advanced": "Dangos pob categori",
   "notifications.column_settings.filter_bar.category": "Bar hidlo",
-  "notifications.column_settings.filter_bar.show_bar": "Show filter bar",
+  "notifications.column_settings.filter_bar.show_bar": "Dangos bar hidlo",
   "notifications.column_settings.follow": "Dilynwyr newydd:",
   "notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:",
   "notifications.column_settings.mention": "Crybwylliadau:",
@@ -335,10 +335,10 @@
   "notifications.column_settings.show": "Dangos yn y golofn",
   "notifications.column_settings.sound": "Chwarae sain",
   "notifications.column_settings.status": "New toots:",
-  "notifications.column_settings.unread_notifications.category": "Unread notifications",
-  "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
+  "notifications.column_settings.unread_notifications.category": "Hysbysiadau heb eu darllen",
+  "notifications.column_settings.unread_notifications.highlight": "Amlygu hysbysiadau heb eu darllen",
   "notifications.column_settings.update": "Golygiadau:",
-  "notifications.filter.all": "Pob",
+  "notifications.filter.all": "Popeth",
   "notifications.filter.boosts": "Hybiadau",
   "notifications.filter.favourites": "Ffefrynnau",
   "notifications.filter.follows": "Yn dilyn",
@@ -361,116 +361,116 @@
   "poll.total_votes": "{count, plural, one {# bleidlais} other {# o bleidleisiau}}",
   "poll.vote": "Pleidleisio",
   "poll.voted": "Pleidleisioch chi am yr ateb hon",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, one {# bleidlais} other {# o bleidleisiau}}",
   "poll_button.add_poll": "Ychwanegu pleidlais",
   "poll_button.remove_poll": "Tynnu pleidlais",
-  "privacy.change": "Addasu preifatrwdd y tŵt",
+  "privacy.change": "Addasu preifatrwdd y post",
   "privacy.direct.long": "Cyhoeddi i'r defnyddwyr sy'n cael eu crybwyll yn unig",
-  "privacy.direct.short": "Direct",
+  "privacy.direct.short": "Dim ond pobl rwy'n eu crybwyll",
   "privacy.private.long": "Cyhoeddi i ddilynwyr yn unig",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all",
+  "privacy.private.short": "Dilynwyr yn unig",
+  "privacy.public.long": "Gweladwy i bawb",
   "privacy.public.short": "Cyhoeddus",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Gweladwy i bawb, ond wedi optio allan o nodweddion darganfod",
   "privacy.unlisted.short": "Heb ei restru",
   "refresh": "Adnewyddu",
   "regeneration_indicator.label": "Llwytho…",
   "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!",
   "relative_time.days": "{number}dydd",
-  "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
-  "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
+  "relative_time.full.days": "{number, plural, one {# dydd} other {# o ddyddiau}} yn ôl",
+  "relative_time.full.hours": "{number, plural, one {# awr} other {# o oriau}} yn ôl",
   "relative_time.full.just_now": "jyst nawr",
-  "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
-  "relative_time.hours": "{number}awr",
+  "relative_time.full.minutes": "{number, plural, one {# funud} other {# o funudau}} yn ôl",
+  "relative_time.full.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} yn ôl",
+  "relative_time.hours": "{number} awr",
   "relative_time.just_now": "nawr",
-  "relative_time.minutes": "{number}munud",
+  "relative_time.minutes": "{number} munud",
   "relative_time.seconds": "{number}eiliad",
   "relative_time.today": "heddiw",
   "reply_indicator.cancel": "Canslo",
   "report.block": "Blocio",
-  "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
+  "report.block_explanation": "Ni welwch chi eu postiadau. Ni allan nhw weld eich postiadau na'ch dilyn. Byddan nhw'n gallu gweld eu bod nhw wedi'u rhwystro.",
   "report.categories.other": "Arall",
   "report.categories.spam": "Sbam",
-  "report.categories.violation": "Content violates one or more server rules",
-  "report.category.subtitle": "Choose the best match",
-  "report.category.title": "Tell us what's going on with this {type}",
-  "report.category.title_account": "profile",
+  "report.categories.violation": "Mae cynnwys yn torri un neu fwy o reolau'r gweinydd",
+  "report.category.subtitle": "Dewiswch yr ateb gorau",
+  "report.category.title": "Beth sy'n bod â'r {type} hwn?",
+  "report.category.title_account": "proffil",
   "report.category.title_status": "post",
-  "report.close": "Done",
-  "report.comment.title": "Is there anything else you think we should know?",
+  "report.close": "Iawn",
+  "report.comment.title": "Oes unrhyw beth arall y dylem ei wybod yn eich barn chi?",
   "report.forward": "Ymlaen i {target}",
   "report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?",
-  "report.mute": "Mute",
-  "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
-  "report.next": "Next",
+  "report.mute": "Mudo",
+  "report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u mudo.",
+  "report.next": "Nesaf",
   "report.placeholder": "Sylwadau ychwanegol",
-  "report.reasons.dislike": "I don't like it",
-  "report.reasons.dislike_description": "It is not something you want to see",
-  "report.reasons.other": "It's something else",
-  "report.reasons.other_description": "The issue does not fit into other categories",
-  "report.reasons.spam": "It's spam",
-  "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
-  "report.reasons.violation": "It violates server rules",
-  "report.reasons.violation_description": "You are aware that it breaks specific rules",
-  "report.rules.subtitle": "Select all that apply",
-  "report.rules.title": "Which rules are being violated?",
-  "report.statuses.subtitle": "Select all that apply",
-  "report.statuses.title": "Are there any posts that back up this report?",
+  "report.reasons.dislike": "Dydw i ddim yn ei hoffi",
+  "report.reasons.dislike_description": "Nid yw'n rhywbeth yr ydych am ei weld",
+  "report.reasons.other": "Mae'n rhywbeth arall",
+  "report.reasons.other_description": "Nid yw'r mater yn ffitio i gategorïau eraill",
+  "report.reasons.spam": "Sothach yw e",
+  "report.reasons.spam_description": "Cysylltiadau maleisus, ymgysylltu ffug, neu atebion ailadroddus",
+  "report.reasons.violation": "Mae'n torri rheolau'r gweinydd",
+  "report.reasons.violation_description": "Rydych yn ymwybodol ei fod yn torri rheolau penodol",
+  "report.rules.subtitle": "Dewiswch bob un sy'n berthnasol",
+  "report.rules.title": "Pa reolau sy'n cael eu torri?",
+  "report.statuses.subtitle": "Dewiswch bob un sy'n berthnasol",
+  "report.statuses.title": "Oes postiadau eraill sy'n cefnogi'r adroddiad hwn?",
   "report.submit": "Cyflwyno",
   "report.target": "Cwyno am {target}",
-  "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
-  "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
-  "report.thanks.title": "Don't want to see this?",
-  "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
-  "report.unfollow": "Unfollow @{name}",
-  "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
+  "report.thanks.take_action": "Dyma'ch opsiynau ar gyfer rheoli'r hyn a welwch ar Mastodon:",
+  "report.thanks.take_action_actionable": "Tra byddwn yn edrych ar hyn, gallwch gymryd camau yn erbyn @{name}:",
+  "report.thanks.title": "Ddim eisiau gweld hwn?",
+  "report.thanks.title_actionable": "Diolch am adrodd, byddwn yn ymchwilio i hyn.",
+  "report.unfollow": "Dad-ddilyn @{name}",
+  "report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich porthiant cartref mwyach, dad-ddilynwch nhw.",
   "search.placeholder": "Chwilio",
   "search_popout.search_format": "Fformat chwilio uwch",
-  "search_popout.tips.full_text": "Mae testun syml yn dychwelyd tŵtiau yr ydych wedi ysgrifennu, hoffi, wedi'u bŵstio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
+  "search_popout.tips.full_text": "Mae testun syml yn dychwelyd postiadau yr ydych wedi ysgrifennu, hoffi, wedi'u hybio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
   "search_popout.tips.hashtag": "hashnod",
-  "search_popout.tips.status": "tŵt",
+  "search_popout.tips.status": "post",
   "search_popout.tips.text": "Mae testun syml yn dychwelyd enwau arddangos, enwau defnyddwyr a hashnodau sy'n cyfateb",
   "search_popout.tips.user": "defnyddiwr",
   "search_results.accounts": "Pobl",
-  "search_results.all": "Pob",
+  "search_results.all": "Popeth",
   "search_results.hashtags": "Hanshnodau",
-  "search_results.nothing_found": "Could not find anything for these search terms",
-  "search_results.statuses": "Tŵtiau",
-  "search_results.statuses_fts_disabled": "Nid yw chwilio Tŵtiau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.",
-  "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
+  "search_results.nothing_found": "Methu dod o hyd i unrhyw beth ar gyfer y termau chwilio hyn",
+  "search_results.statuses": "Postiadau",
+  "search_results.statuses_fts_disabled": "Nid yw chwilio postiadau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.",
+  "search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {o ganlyniadau}}",
   "status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}",
-  "status.admin_status": "Agor y tŵt yn y rhyngwyneb goruwchwylio",
+  "status.admin_status": "Agor y post hwn yn y rhyngwyneb goruwchwylio",
   "status.block": "Blocio @{name}",
   "status.bookmark": "Tudalnodi",
   "status.cancel_reblog_private": "Dadfŵstio",
-  "status.cannot_reblog": "Ni ellir sbarduno'r tŵt hwn",
-  "status.copy": "Copïo cysylltiad i'r tŵt",
+  "status.cannot_reblog": "Ni ellir hybio'r post hwn",
+  "status.copy": "Copïo dolen i'r post",
   "status.delete": "Dileu",
   "status.detailed_status": "Golwg manwl o'r sgwrs",
   "status.direct": "Neges breifat @{name}",
   "status.edit": "Golygu",
-  "status.edited": "Edited {date}",
-  "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
+  "status.edited": "Ymunodd {date}",
+  "status.edited_x_times": "Golygwyd {count, plural, one {unwaith} two {dwywaith} other {{count} gwaith}}",
   "status.embed": "Plannu",
   "status.favourite": "Hoffi",
   "status.filtered": "Wedi'i hidlo",
-  "status.history.created": "{name} created {date}",
-  "status.history.edited": "{name} edited {date}",
+  "status.history.created": "{name} greuodd {date}",
+  "status.history.edited": "{name} olygodd {date}",
   "status.load_more": "Llwythwch mwy",
   "status.media_hidden": "Cyfryngau wedi'u cuddio",
   "status.mention": "Crybwyll @{name}",
   "status.more": "Mwy",
   "status.mute": "Tawelu @{name}",
   "status.mute_conversation": "Tawelu sgwrs",
-  "status.open": "Ehangu'r tŵt hwn",
+  "status.open": "Ehangu'r post hwn",
   "status.pin": "Pinio ar y proffil",
-  "status.pinned": "Pinio tŵt",
+  "status.pinned": "Pinio post",
   "status.read_more": "Darllen mwy",
   "status.reblog": "Hybu",
   "status.reblog_private": "Hybu i'r gynulleidfa wreiddiol",
-  "status.reblogged_by": "Bŵstio {name}",
-  "status.reblogs.empty": "Does neb wedi bŵstio'r tŵt yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
+  "status.reblogged_by": "Hybio {name}",
+  "status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
   "status.redraft": "Dileu & ailddrafftio",
   "status.remove_bookmark": "Tynnu'r tudalnod",
   "status.reply": "Ateb",
@@ -501,7 +501,7 @@
   "timeline_hint.remote_resource_not_displayed": "ni chaiff {resource} o gweinyddion eraill ei ddangos.",
   "timeline_hint.resources.followers": "Dilynwyr",
   "timeline_hint.resources.follows": "Yn dilyn",
-  "timeline_hint.resources.statuses": "Tŵtiau henach",
+  "timeline_hint.resources.statuses": "Postiadau hŷn",
   "trends.counter_by_accounts": "{count, plural, one {{counter} berson} other {{counter} o bobl}}",
   "trends.trending_now": "Yn tueddu nawr",
   "ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.",
@@ -514,20 +514,20 @@
   "upload_error.poll": "Nid oes modd uwchlwytho ffeiliau â phleidleisiau.",
   "upload_form.audio_description": "Disgrifio ar gyfer pobl sydd â cholled clyw",
   "upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
-  "upload_form.description_missing": "No description added",
+  "upload_form.description_missing": "Dim disgrifiad wedi'i ychwanegu",
   "upload_form.edit": "Golygu",
   "upload_form.thumbnail": "Newid mân-lun",
   "upload_form.undo": "Dileu",
   "upload_form.video_description": "Disgrifio ar gyfer pobl sydd â cholled clyw neu amhariad golwg",
   "upload_modal.analyzing_picture": "Dadansoddi llun…",
   "upload_modal.apply": "Gweithredu",
-  "upload_modal.applying": "Applying…",
+  "upload_modal.applying": "Gweithio…",
   "upload_modal.choose_image": "Dewis delwedd",
   "upload_modal.description_placeholder": "Mae ei phen bach llawn jocs, 'run peth a fy nghot golff, rhai dyddiau",
   "upload_modal.detect_text": "Canfod testun o'r llun",
   "upload_modal.edit_media": "Golygu cyfryngau",
   "upload_modal.hint": "Cliciwch neu llusgwch y cylch ar y rhagolwg i ddewis y canolbwynt a fydd bob amser i'w weld ar bob mân-lunau.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Paratoi OCR…",
   "upload_modal.preview_label": "Rhagolwg ({ratio})",
   "upload_progress.label": "Uwchlwytho...",
   "video.close": "Cau fideo",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 1bf817c7b..87f2b2017 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -368,10 +368,10 @@
   "privacy.direct.long": "Wird an erwähnte Profile gesendet",
   "privacy.direct.short": "Nur Leute, die ich erwähne",
   "privacy.private.long": "Nur für Folgende sichtbar",
-  "privacy.private.short": "Nur Folgende",
-  "privacy.public.long": "Sichtbar für alle",
+  "privacy.private.short": "Nur Follower",
+  "privacy.public.long": "Für alle sichtbar",
   "privacy.public.short": "Öffentlich",
-  "privacy.unlisted.long": "Sichtbar für alle, aber nicht für Entdeckungsfunktionen",
+  "privacy.unlisted.long": "Sichtbar für alle, aber nicht über Entdeckungsfunktionen",
   "privacy.unlisted.short": "Nicht gelistet",
   "refresh": "Aktualisieren",
   "regeneration_indicator.label": "Laden…",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 723b7d333..83888e634 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -369,9 +369,9 @@
   "privacy.direct.short": "Solo la gente que yo menciono",
   "privacy.private.long": "Sólo mostrar a seguidores",
   "privacy.private.short": "Solo seguidores",
-  "privacy.public.long": "Visible por todos",
+  "privacy.public.long": "Visible para todos",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "Visible para todos, pero excluido de las características de descubrimiento",
+  "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
   "privacy.unlisted.short": "No listado",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "Cargando…",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index 8fec2747c..be1b10025 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -93,7 +93,7 @@
   "community.column_settings.media_only": "Meadhanan a-mhàin",
   "community.column_settings.remote_only": "Feadhainn chèin a-mhàin",
   "compose_form.direct_message_warning_learn_more": "Barrachd fiosrachaidh",
-  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
+  "compose_form.encryption_warning": "Chan eil crioptachadh ceann gu ceann air postaichean Mhastodon. Na co-roinn fiosrachadh cunnartach idir le Mastodon.",
   "compose_form.hashtag_warning": "Cha nochd am post seo fon taga hais on a tha e falaichte o liostaichean. Cha ghabh ach postaichean poblach a lorg a-rèir an tagaichean hais.",
   "compose_form.lock_disclaimer": "Chan eil an cunntas agad {locked}. ’S urrainn do dhuine sam bith leantainn ort is na postaichean agad a tha ag amas air an luchd-leantainn agad a-mhàin a shealltainn.",
   "compose_form.lock_disclaimer.lock": "glaiste",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Cha do bhac thu cleachdaiche sam bith fhathast.",
   "empty_column.bookmarked_statuses": "Chan eil comharra-lìn ri post agad fhathast. Nuair a nì thu comharra-lìn de dh’fhear, nochdaidh e an-seo.",
   "empty_column.community": "Tha an loidhne-ama ionadail falamh. Sgrìobh rudeigin gu poblach airson toiseach-tòiseachaidh a dhèanamh!",
-  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+  "empty_column.conversations": "Nuair a chuireas no gheibh thu post nach fhaic ach an fheadhainn le iomradh orra ann, nochdaidh e an-seo.",
   "empty_column.domain_blocks": "Cha deach àrainn sam bith a bhacadh fhathast.",
   "empty_column.explore_statuses": "Chan eil dad a’ treandadh an-dràsta fhèin. Thoir sùil a-rithist an ceann greis!",
   "empty_column.favourited_statuses": "Chan eil annsachd air post agad fhathast. Nuair a nì thu annsachd de dh’fhear, nochdaidh e an-seo.",
@@ -230,7 +230,7 @@
   "keyboard_shortcuts.boost": "Brosnaich post",
   "keyboard_shortcuts.column": "Cuir am fòcas air colbh",
   "keyboard_shortcuts.compose": "Cuir am fòcas air raon teacsa an sgrìobhaidh",
-  "keyboard_shortcuts.conversations": "to open conversations column",
+  "keyboard_shortcuts.conversations": "a dh’fhosgladh colbh nan còmhraidhean",
   "keyboard_shortcuts.description": "Tuairisgeul",
   "keyboard_shortcuts.down": "Gluais sìos air an liosta",
   "keyboard_shortcuts.enter": "Fosgail post",
@@ -290,7 +290,7 @@
   "navigation_bar.bookmarks": "Comharran-lìn",
   "navigation_bar.community_timeline": "Loidhne-ama ionadail",
   "navigation_bar.compose": "Sgrìobh post ùr",
-  "navigation_bar.discover": "Fidir",
+  "navigation_bar.discover": "Rùraich",
   "navigation_bar.domain_blocks": "Àrainnean bacte",
   "navigation_bar.edit_profile": "Deasaich a’ phròifil",
   "navigation_bar.explore": "Rùraich",
@@ -369,9 +369,9 @@
   "privacy.direct.short": "Daoine air an dug mi iomradh a-mhàin",
   "privacy.private.long": "Chan fhaic ach na daoine a tha a’ leantainn ort seo",
   "privacy.private.short": "Luchd-leantainn a-mhàin",
-  "privacy.public.long": "Visible for all",
+  "privacy.public.long": "Chì a h-uile duine e",
   "privacy.public.short": "Poblach",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Chì a h-uile duine e ach cha nochd e ann an gleusan rùrachaidh",
   "privacy.unlisted.short": "Falaichte o liostaichean",
   "refresh": "Ath-nuadhaich",
   "regeneration_indicator.label": "’Ga luchdadh…",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 0879afb36..114d90335 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -314,7 +314,7 @@
   "notification.follow_request": "{name} solicitou seguirte",
   "notification.mention": "{name} mencionoute",
   "notification.own_poll": "A túa enquisa rematou",
-  "notification.poll": "Unha enquisa na que votaches rematou",
+  "notification.poll": "Rematou a enquisa na que votaches",
   "notification.reblog": "{name} compartiu a túa publicación",
   "notification.status": "{name} publicou",
   "notification.update": "{name} editou unha publicación",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index ed70d1a21..c7ba3b852 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -18,8 +18,8 @@
   "account.followers": "Հետեւողներ",
   "account.followers.empty": "Այս օգտատիրոջը դեռ ոչ մէկ չի հետեւում։",
   "account.followers_counter": "{count, plural, one {{counter} Հետեւորդ} other {{counter} Հետեւորդ}}",
-  "account.following": "Following",
-  "account.following_counter": "{count, plural, one {{counter} հետեւած} other {{counter} հետեւած}}",
+  "account.following": "Հետեւած",
+  "account.following_counter": "{count, plural, one {{counter} Հետեւած} other {{counter} Հետեւած}}",
   "account.follows.empty": "Այս օգտատէրը դեռ ոչ մէկի չի հետեւում։",
   "account.follows_you": "Հետեւում է քեզ",
   "account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները",
@@ -41,12 +41,12 @@
   "account.statuses_counter": "{count, plural, one {{counter} Գրառում} other {{counter} Գրառումներ}}",
   "account.unblock": "Ապաարգելափակել @{name}֊ին",
   "account.unblock_domain": "Ցուցադրել {domain} թաքցուած տիրոյթի գրառումները",
-  "account.unblock_short": "Unblock",
+  "account.unblock_short": "Արգելաբացել",
   "account.unendorse": "Չցուցադրել անձնական էջում",
   "account.unfollow": "Ապահետեւել",
   "account.unmute": "Ապալռեցնել @{name}֊ին",
   "account.unmute_notifications": "Միացնել ծանուցումները @{name}֊ից",
-  "account.unmute_short": "Unmute",
+  "account.unmute_short": "Ապախլացնել",
   "account_note.placeholder": "Սեղմէ՛ք գրառելու համար\n",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
@@ -70,7 +70,7 @@
   "column.blocks": "Արգելափակուած օգտատէրեր",
   "column.bookmarks": "Էջանիշեր",
   "column.community": "Տեղական հոսք",
-  "column.conversations": "Conversations",
+  "column.conversations": "Զրոյցներ",
   "column.directory": "Զննել անձնական էջերը",
   "column.domain_blocks": "Թաքցուած տիրոյթները",
   "column.favourites": "Հաւանածներ",
@@ -106,7 +106,7 @@
   "compose_form.poll.switch_to_single": "Հարցումը դարձնել եզակի ընտրութեամբ",
   "compose_form.publish": "Հրապարակել",
   "compose_form.publish_loud": "Հրապարակե՜լ",
-  "compose_form.save_changes": "Save changes",
+  "compose_form.save_changes": "Պահպանել փոփոխութիւնները",
   "compose_form.sensitive.hide": "Նշել մեդիան որպէս դիւրազգաց",
   "compose_form.sensitive.marked": "Մեդիան նշուած է որպէս դիւրազգաց",
   "compose_form.sensitive.unmarked": "Մեդիան նշուած չէ որպէս դիւրազգաց",
@@ -189,7 +189,7 @@
   "errors.unexpected_crash.report_issue": "Զեկուցել խնդրի մասին",
   "explore.search_results": "Որոնման արդիւնքներ",
   "explore.suggested_follows": "Ձեզ համար",
-  "explore.title": "Explore",
+  "explore.title": "Բացայայտել",
   "explore.trending_links": "Նորութիւններ",
   "explore.trending_statuses": "Գրառումներ",
   "explore.trending_tags": "Պիտակներ",
@@ -293,7 +293,7 @@
   "navigation_bar.discover": "Բացայայտել",
   "navigation_bar.domain_blocks": "Թաքցուած տիրոյթներ",
   "navigation_bar.edit_profile": "Խմբագրել անձնական էջը",
-  "navigation_bar.explore": "Explore",
+  "navigation_bar.explore": "Բացայայտել",
   "navigation_bar.favourites": "Հաւանածներ",
   "navigation_bar.filters": "Լռեցուած բառեր",
   "navigation_bar.follow_requests": "Հետեւելու հայցեր",
@@ -308,7 +308,7 @@
   "navigation_bar.preferences": "Նախապատուութիւններ",
   "navigation_bar.public_timeline": "Դաշնային հոսք",
   "navigation_bar.security": "Անվտանգութիւն",
-  "notification.admin.sign_up": "{name} signed up",
+  "notification.admin.sign_up": "{name}-ը գրանցուած է",
   "notification.favourite": "{name} հաւանեց գրառումդ",
   "notification.follow": "{name} սկսեց հետեւել քեզ",
   "notification.follow_request": "{name} քեզ հետեւելու հայց է ուղարկել",
@@ -317,10 +317,10 @@
   "notification.poll": "Հարցումը, ուր դու քուէարկել ես, աւարտուեց։",
   "notification.reblog": "{name} տարածեց գրառումդ",
   "notification.status": "{name} հենց նոր գրառում արեց",
-  "notification.update": "{name} edited a post",
+  "notification.update": "{name}-ը փոխել է գրառումը",
   "notifications.clear": "Մաքրել ծանուցումները",
   "notifications.clear_confirmation": "Վստա՞հ ես, որ ուզում ես մշտապէս մաքրել քո բոլոր ծանուցումները։",
-  "notifications.column_settings.admin.sign_up": "New sign-ups:",
+  "notifications.column_settings.admin.sign_up": "Նոր գրանցումներ՝",
   "notifications.column_settings.alert": "Աշխատատիրոյթի ծանուցումներ",
   "notifications.column_settings.favourite": "Հաւանածներից՝",
   "notifications.column_settings.filter_bar.advanced": "Ցուցադրել բոլոր կատեգորիաները",
@@ -337,7 +337,7 @@
   "notifications.column_settings.status": "Նոր գրառումներ։",
   "notifications.column_settings.unread_notifications.category": "Չկարդացուած ծանուցումներ",
   "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
-  "notifications.column_settings.update": "Edits:",
+  "notifications.column_settings.update": "Խմբագրածներ՝",
   "notifications.filter.all": "Բոլորը",
   "notifications.filter.boosts": "Տարածածները",
   "notifications.filter.favourites": "Հաւանածները",
@@ -361,15 +361,15 @@
   "poll.total_votes": "{count, plural, one {# ձայն} other {# ձայն}}",
   "poll.vote": "Քուէարկել",
   "poll.voted": "Դու քուէարկել ես այս տարբերակի համար",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, one {# ձայն} other {# ձայն}}",
   "poll_button.add_poll": "Աւելացնել հարցում",
   "poll_button.remove_poll": "Հեռացնել հարցումը",
   "privacy.change": "Կարգաւորել գրառման գաղտնիութիւնը",
   "privacy.direct.long": "Կը տեսնեն միայն նշուած օգտատէրերը",
-  "privacy.direct.short": "Direct",
+  "privacy.direct.short": "Միայն նշածս մարդիկ",
   "privacy.private.long": "Կը տեսնեն միայն հետեւորդները",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all",
+  "privacy.private.short": "Միայն հետեւողները",
+  "privacy.public.long": "Տեսանելի բոլորին",
   "privacy.public.short": "Հրապարակային",
   "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Ծածուկ",
@@ -377,39 +377,39 @@
   "regeneration_indicator.label": "Բեռնւում է…",
   "regeneration_indicator.sublabel": "պատրաստւում է հիմնական հոսքդ",
   "relative_time.days": "{number}օր",
-  "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
-  "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
-  "relative_time.full.just_now": "just now",
-  "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
+  "relative_time.full.days": "{number, plural, one {# օր} other {# օր}} առաջ",
+  "relative_time.full.hours": "{number, plural, one {# ժամ} other {# ժամ}} առաջ",
+  "relative_time.full.just_now": "հէնց նոր",
+  "relative_time.full.minutes": "{number, plural, one {# րոպէ} other {# րոպէ}} առաջ",
+  "relative_time.full.seconds": "{number, plural, one {# վայրկեան} other {# վայրկեան}} առաջ",
   "relative_time.hours": "{number}ժ",
   "relative_time.just_now": "նոր",
   "relative_time.minutes": "{number}ր",
   "relative_time.seconds": "{number}վ",
   "relative_time.today": "Այսօր",
   "reply_indicator.cancel": "Չեղարկել",
-  "report.block": "Block",
+  "report.block": "Արգելափակել",
   "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
-  "report.categories.other": "Other",
-  "report.categories.spam": "Spam",
+  "report.categories.other": "Այլ",
+  "report.categories.spam": "Սպամ",
   "report.categories.violation": "Content violates one or more server rules",
   "report.category.subtitle": "Choose the best match",
   "report.category.title": "Tell us what's going on with this {type}",
-  "report.category.title_account": "profile",
-  "report.category.title_status": "post",
-  "report.close": "Done",
+  "report.category.title_account": "հաշիւ",
+  "report.category.title_status": "գրառում",
+  "report.close": "Աւարտել",
   "report.comment.title": "Is there anything else you think we should know?",
   "report.forward": "Փոխանցել {target}֊ին",
   "report.forward_hint": "Այս հաշիւ այլ հանգոյցից է։ Ուղարկե՞մ այնտեղ էլ այս բողոքի անոնիմ պատճէնը։",
-  "report.mute": "Mute",
+  "report.mute": "Լռեցնել",
   "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
-  "report.next": "Next",
+  "report.next": "Յաջորդ",
   "report.placeholder": "Լրացուցիչ մեկնաբանութիւններ",
-  "report.reasons.dislike": "I don't like it",
+  "report.reasons.dislike": "Ինձ դուր չի գալիս",
   "report.reasons.dislike_description": "It is not something you want to see",
-  "report.reasons.other": "It's something else",
+  "report.reasons.other": "Այլ բան է",
   "report.reasons.other_description": "The issue does not fit into other categories",
-  "report.reasons.spam": "It's spam",
+  "report.reasons.spam": "Սպամ է",
   "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
   "report.reasons.violation": "It violates server rules",
   "report.reasons.violation_description": "You are aware that it breaks specific rules",
@@ -499,7 +499,7 @@
   "time_remaining.moments": "Մնացել է մի քանի վարկեան",
   "time_remaining.seconds": "{number, plural, one {# վարկեան} other {# վարկեան}} անց",
   "timeline_hint.remote_resource_not_displayed": "{resource} այլ սպասարկիչներից չեն ցուցադրվել:",
-  "timeline_hint.resources.followers": "Հետևորդներ",
+  "timeline_hint.resources.followers": "Հետեւորդ",
   "timeline_hint.resources.follows": "Հետեւել",
   "timeline_hint.resources.statuses": "Հին գրառումներ",
   "trends.counter_by_accounts": "{count, plural, one {{counter} մարդ} other {{counter} մարդիկ}} խօսում են",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 6637e992a..d0ce09335 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -1,72 +1,72 @@
 {
-  "account.account_note_header": "Note",
-  "account.add_or_remove_from_list": "Add or Remove from lists",
-  "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
+  "account.account_note_header": "Noto",
+  "account.add_or_remove_from_list": "Insertez o removez de listi",
+  "account.badges.bot": "Boto",
+  "account.badges.group": "Grupo",
   "account.block": "Blokusar @{name}",
   "account.block_domain": "Hide everything from {domain}",
-  "account.blocked": "Blocked",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
-  "account.cancel_follow_request": "Cancel follow request",
+  "account.blocked": "Restriktita",
+  "account.browse_more_on_origin_server": "Videz plu che originala profilo",
+  "account.cancel_follow_request": "Removez sequodemando",
   "account.direct": "Direct Message @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Cesez avizar me kande @{name} postas",
   "account.domain_blocked": "Domain hidden",
   "account.edit_profile": "Modifikar profilo",
-  "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Feature on profile",
+  "account.enable_notifications": "Avizez me kande @{name} postas",
+  "account.endorse": "Traito di profilo",
   "account.follow": "Sequar",
   "account.followers": "Sequanti",
-  "account.followers.empty": "No one follows this user yet.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following": "Following",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
-  "account.follows.empty": "This user doesn't follow anyone yet.",
+  "account.followers.empty": "Nulu sequas ca uzanto til nun.",
+  "account.followers_counter": "{count, plural, one {{counter} Sequanto} other {{counter} Sequanti}}",
+  "account.following": "Sequata",
+  "account.following_counter": "{count, plural, one {{counter} Sequas} other {{counter} Sequanti}}",
+  "account.follows.empty": "Ca uzanto ne sequa irgu til nun.",
   "account.follows_you": "Sequas tu",
-  "account.hide_reblogs": "Hide boosts from @{name}",
-  "account.joined": "Joined {date}",
-  "account.link_verified_on": "Ownership of this link was checked on {date}",
-  "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
-  "account.media": "Media",
+  "account.hide_reblogs": "Celez busti de @{name}",
+  "account.joined": "Juntas ye {date}",
+  "account.link_verified_on": "Proprieteso di ca ligilo kontrolesis ye {date}",
+  "account.locked_info": "La privatesostaco di ca konto fixesas quale lokata. Proprietato manue kontrolas personi qui povas sequar.",
+  "account.media": "Medio",
   "account.mention": "Mencionar @{name}",
-  "account.moved_to": "{name} has moved to:",
+  "account.moved_to": "{name} movesis a:",
   "account.mute": "Celar @{name}",
-  "account.mute_notifications": "Mute notifications from @{name}",
-  "account.muted": "Muted",
+  "account.mute_notifications": "Silencigez avizi de @{name}",
+  "account.muted": "Silencigata",
   "account.posts": "Mesaji",
   "account.posts_with_replies": "Toots with replies",
   "account.report": "Denuncar @{name}",
   "account.requested": "Vartante aprobo",
-  "account.share": "Share @{name}'s profile",
-  "account.show_reblogs": "Show boosts from @{name}",
+  "account.share": "Partigez profilo di @{name}",
+  "account.show_reblogs": "Montrez busti de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
   "account.unblock": "Desblokusar @{name}",
   "account.unblock_domain": "Unhide {domain}",
-  "account.unblock_short": "Unblock",
-  "account.unendorse": "Don't feature on profile",
+  "account.unblock_short": "Derestriktez",
+  "account.unendorse": "Ne publikigez che profilo",
   "account.unfollow": "Ne plus sequar",
   "account.unmute": "Ne plus celar @{name}",
-  "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account.unmute_short": "Unmute",
+  "account.unmute_notifications": "Desilencigez avizi de @{name}",
+  "account.unmute_short": "Desilencigez",
   "account_note.placeholder": "Click to add a note",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
-  "admin.dashboard.retention.average": "Average",
-  "admin.dashboard.retention.cohort": "Sign-up month",
-  "admin.dashboard.retention.cohort_size": "New users",
-  "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Rate limited",
-  "alert.unexpected.message": "An unexpected error occurred.",
-  "alert.unexpected.title": "Oops!",
-  "announcement.announcement": "Announcement",
-  "attachments_list.unprocessed": "(unprocessed)",
-  "autosuggest_hashtag.per_week": "{count} per week",
+  "admin.dashboard.retention.average": "Averajo",
+  "admin.dashboard.retention.cohort": "Registromonato",
+  "admin.dashboard.retention.cohort_size": "Nova uzanti",
+  "alert.rate_limited.message": "Riprobez pos {retry_time, time, medium}.",
+  "alert.rate_limited.title": "Limitizita multeso",
+  "alert.unexpected.message": "Neexpektita eroro eventis.",
+  "alert.unexpected.title": "Problemo!",
+  "announcement.announcement": "Anunco",
+  "attachments_list.unprocessed": "(neprocedita)",
+  "autosuggest_hashtag.per_week": "{count} dum singla semano",
   "boost_modal.combo": "Tu povas presar sur {combo} por omisar co en la venonta foyo",
-  "bundle_column_error.body": "Something went wrong while loading this component.",
-  "bundle_column_error.retry": "Try again",
-  "bundle_column_error.title": "Network error",
-  "bundle_modal_error.close": "Close",
-  "bundle_modal_error.message": "Something went wrong while loading this component.",
-  "bundle_modal_error.retry": "Try again",
+  "bundle_column_error.body": "Nulo ne functionis dum chargar ca kompozaj.",
+  "bundle_column_error.retry": "Probez itere",
+  "bundle_column_error.title": "Rederor",
+  "bundle_modal_error.close": "Klozez",
+  "bundle_modal_error.message": "Nulo ne functionis dum chargar ca kompozaj.",
+  "bundle_modal_error.retry": "Probez itere",
   "column.blocks": "Blokusita uzeri",
   "column.bookmarks": "Bookmarks",
   "column.community": "Lokala tempolineo",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 7df325463..053c18fcf 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -1,7 +1,7 @@
 {
   "account.account_note_header": "Minnispunktur",
   "account.add_or_remove_from_list": "Bæta við eða fjarlægja af listum",
-  "account.badges.bot": "Róbót",
+  "account.badges.bot": "Vélmenni",
   "account.badges.group": "Hópur",
   "account.block": "Loka á @{name}",
   "account.block_domain": "Útiloka lénið {domain}",
@@ -71,7 +71,7 @@
   "column.bookmarks": "Bókamerki",
   "column.community": "Staðvær tímalína",
   "column.conversations": "Samtöl",
-  "column.directory": "Skoða notandasnið",
+  "column.directory": "Vafra notandasnið",
   "column.domain_blocks": "Útilokuð lén",
   "column.favourites": "Eftirlæti",
   "column.follow_requests": "Beiðnir um að fylgjast með",
@@ -95,8 +95,8 @@
   "compose_form.direct_message_warning_learn_more": "Kanna nánar",
   "compose_form.encryption_warning": "Færslur á Mastodon eru ekki enda-í-enda dulritaðar. Ekki deila viðkvæmum upplýsingum á Mastodon.",
   "compose_form.hashtag_warning": "Þessi færsla verður ekki talin með undir nokkru myllumerki þar sem það er óskráð. Einungis er hægt að leita að opinberum færslum eftir myllumerkjum.",
-  "compose_form.lock_disclaimer": "Aðgangurinn þinn er ekki {locked}. Hver sem er getur fylgst með þeim færslum þínum sem einungis eru til fylgjenda þinna.",
-  "compose_form.lock_disclaimer.lock": "læst",
+  "compose_form.lock_disclaimer": "Aðgangurinn þinn er ekki {locked}. Hver sem er getur fylgst með þér til að sjá þær færslur sem einungis eru til fylgjenda þinna.",
+  "compose_form.lock_disclaimer.lock": "læstur",
   "compose_form.placeholder": "Hvað varstu að hugsa?",
   "compose_form.poll.add_option": "Bæta við valkosti",
   "compose_form.poll.duration": "Tímalengd könnunar",
@@ -130,7 +130,7 @@
   "confirmations.mute.confirm": "Þagga",
   "confirmations.mute.explanation": "Þetta mun fela færslur frá þeim og þær færslur þar sem minnst er á þau, en það mun samt sem áður gera þeim kleift að sjá færslurnar þínar og að fylgjast með þér.",
   "confirmations.mute.message": "Ertu viss um að þú viljir þagga niður í {name}?",
-  "confirmations.redraft.confirm": "Eyða og enduvinna drög",
+  "confirmations.redraft.confirm": "Eyða og endurvinna drög",
   "confirmations.redraft.message": "Ertu viss um að þú viljir eyða þessari færslu og enduvinna drögin? Eftirlæti og endurbirtingar munu glatast og svör við upprunalegu færslunni munu verða munaðarlaus.",
   "confirmations.reply.confirm": "Svara",
   "confirmations.reply.message": "Ef þú svarar núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?",
@@ -147,7 +147,7 @@
   "embed.instructions": "Felldu þessa færslu inn í vefsvæðið þitt með því að afrita kóðann hér fyrir neðan.",
   "embed.preview": "Svona mun þetta líta út:",
   "emoji_button.activity": "Virkni",
-  "emoji_button.custom": "Sérsniðið",
+  "emoji_button.custom": "Sérsniðin",
   "emoji_button.flags": "Flögg",
   "emoji_button.food": "Matur og drykkur",
   "emoji_button.label": "Setja inn tjáningartákn",
@@ -155,7 +155,7 @@
   "emoji_button.not_found": "Engin samsvarandi tjáningartákn fundust",
   "emoji_button.objects": "Hlutir",
   "emoji_button.people": "Fólk",
-  "emoji_button.recent": "Oft notað",
+  "emoji_button.recent": "Oft notuð",
   "emoji_button.search": "Leita...",
   "emoji_button.search_results": "Leitarniðurstöður",
   "emoji_button.symbols": "Tákn",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Þú hefur ekki ennþá útilokað neina notendur.",
   "empty_column.bookmarked_statuses": "Þú ert ekki ennþá með neinar bókamerktar færslur. Þegar þú bókamerkir færslu, mun það birtast hér.",
   "empty_column.community": "Staðværa tímalínan er tóm. Skrifaðu eitthvað opinberlega til að láta boltann fara að rúlla!",
-  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+  "empty_column.conversations": "Þegar þú hefur sent eða móttekið færslu sem er aðeins sýnileg fólki sem nefnt er í henni þá birtist hún hér.",
   "empty_column.domain_blocks": "Það eru ennþá engin útilokuð lén.",
   "empty_column.explore_statuses": "Ekkert er á uppleið í augnablikinu. Athugaðu aftur síðar!",
   "empty_column.favourited_statuses": "Þú ert ekki ennþá með neinar eftirlætisfærslur. Þegar þú setur færslu í eftirlæti, munu þau birtast hér.",
@@ -371,7 +371,7 @@
   "privacy.private.short": "Einungis fylgjendur",
   "privacy.public.long": "Sýnilegt fyrir alla",
   "privacy.public.short": "Opinbert",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Sýnilegt öllum, en ekki tekið með í uppgötvunareiginleikum",
   "privacy.unlisted.short": "Óskráð",
   "refresh": "Endurlesa",
   "regeneration_indicator.label": "Hleð inn…",
@@ -471,7 +471,7 @@
   "status.reblog_private": "Endurbirta til upphaflegra lesenda",
   "status.reblogged_by": "{name} endurbirti",
   "status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.",
-  "status.redraft": "Eyða og enduvinna drög",
+  "status.redraft": "Eyða og endurvinna drög",
   "status.remove_bookmark": "Fjarlægja bókamerki",
   "status.reply": "Svara",
   "status.replyAll": "Svara þræði",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index aecd3a911..c607e84a5 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "リモートで表示",
   "account.cancel_follow_request": "フォローリクエストを取り消す",
   "account.direct": "@{name}さんにダイレクトメッセージ",
-  "account.disable_notifications": "@{name} の投稿時の通知を停止",
+  "account.disable_notifications": "@{name}さんの投稿時の通知を停止",
   "account.domain_blocked": "ドメインブロック中",
   "account.edit_profile": "プロフィール編集",
-  "account.enable_notifications": "@{name} の投稿時に通知",
+  "account.enable_notifications": "@{name}さんの投稿時に通知",
   "account.endorse": "プロフィールで紹介する",
   "account.follow": "フォロー",
   "account.followers": "フォロワー",
@@ -27,7 +27,7 @@
   "account.link_verified_on": "このリンクの所有権は{date}に確認されました",
   "account.locked_info": "このアカウントは承認制アカウントです。相手が承認するまでフォローは完了しません。",
   "account.media": "メディア",
-  "account.mention": "@{name}さんに投稿",
+  "account.mention": "@{name}さんにメンション",
   "account.moved_to": "{name}さんは引っ越しました:",
   "account.mute": "@{name}さんをミュート",
   "account.mute_notifications": "@{name}さんからの通知を受け取らない",
@@ -70,7 +70,7 @@
   "column.blocks": "ブロックしたユーザー",
   "column.bookmarks": "ブックマーク",
   "column.community": "ローカルタイムライン",
-  "column.conversations": "ダイレクトメッセージ",
+  "column.conversations": "会話",
   "column.directory": "ディレクトリ",
   "column.domain_blocks": "ブロックしたドメイン",
   "column.favourites": "お気に入り",
@@ -97,7 +97,7 @@
   "community.column_settings.media_only": "メディアのみ表示",
   "community.column_settings.remote_only": "リモートのみ表示",
   "compose_form.direct_message_warning_learn_more": "もっと詳しく",
-  "compose_form.encryption_warning": "Mastodon の投稿はエンドツーエンド暗号化に対応していません。安全に送受信されるべき情報を Mastodon で共有しないでください。",
+  "compose_form.encryption_warning": "Mastodonの投稿はエンドツーエンド暗号化に対応していません。安全に送受信されるべき情報をMastodonで共有しないでください。",
   "compose_form.hashtag_warning": "この投稿は公開設定ではないのでハッシュタグの一覧に表示されません。公開投稿だけがハッシュタグで検索できます。",
   "compose_form.lock_disclaimer": "あなたのアカウントは{locked}になっていません。誰でもあなたをフォローすることができ、フォロワー限定の投稿を見ることができます。",
   "compose_form.lock_disclaimer.lock": "承認制",
@@ -170,7 +170,7 @@
   "empty_column.blocks": "まだ誰もブロックしていません。",
   "empty_column.bookmarked_statuses": "まだ何もブックマーク登録していません。ブックマーク登録するとここに表示されます。",
   "empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!",
-  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+  "empty_column.conversations": "メンションした相手にだけ表示されるメッセージを一度でも送受信した場合、ここに表示されます。",
   "empty_column.domain_blocks": "ブロックしているドメインはありません。",
   "empty_column.explore_statuses": "まだ何もありません。後で確認してください。",
   "empty_column.favourited_statuses": "まだ何もお気に入り登録していません。お気に入り登録するとここに表示されます。",
@@ -202,18 +202,18 @@
   "follow_recommendations.lead": "あなたがフォローしている人の投稿は、ホームフィードに時系列で表示されます。いつでも簡単に解除できるので、気軽にフォローしてみてください!",
   "follow_request.authorize": "許可",
   "follow_request.reject": "拒否",
-  "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain} のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。",
+  "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain}のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。",
   "generic.saved": "保存しました",
   "getting_started.developers": "開発",
   "getting_started.directory": "ディレクトリ",
   "getting_started.documentation": "ドキュメント",
   "getting_started.heading": "スタート",
   "getting_started.invite": "招待",
-  "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ( {github} ) から開発に参加したり、問題を報告したりできます。",
+  "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ({github}) から開発に参加したり、問題を報告したりできます。",
   "getting_started.security": "アカウント設定",
   "getting_started.terms": "プライバシーポリシー",
-  "hashtag.column_header.tag_mode.all": "と {additional}",
-  "hashtag.column_header.tag_mode.any": "か {additional}",
+  "hashtag.column_header.tag_mode.all": "と{additional}",
+  "hashtag.column_header.tag_mode.any": "か{additional}",
   "hashtag.column_header.tag_mode.none": "({additional} を除く)",
   "hashtag.column_settings.select.no_options_message": "提案はありません",
   "hashtag.column_settings.select.placeholder": "ハッシュタグを入力してください…",
@@ -234,7 +234,7 @@
   "keyboard_shortcuts.boost": "ブースト",
   "keyboard_shortcuts.column": "左からn番目のカラムの最新に移動",
   "keyboard_shortcuts.compose": "投稿の入力欄に移動",
-  "keyboard_shortcuts.conversations": "to open conversations column",
+  "keyboard_shortcuts.conversations": "会話カラムを開く",
   "keyboard_shortcuts.description": "説明",
   "keyboard_shortcuts.down": "カラム内一つ下に移動",
   "keyboard_shortcuts.enter": "投稿の詳細を表示",
@@ -281,7 +281,7 @@
   "lists.replies_policy.title": "リプライを表示:",
   "lists.search": "フォローしている人の中から検索",
   "lists.subheading": "あなたのリスト",
-  "load_pending": "{count} 件の新着",
+  "load_pending": "{count}件の新着",
   "loading_indicator.label": "読み込み中...",
   "media_gallery.toggle_visible": "メディアを隠す",
   "missing_indicator.label": "見つかりません",
@@ -303,7 +303,7 @@
   "navigation_bar.follow_requests": "フォローリクエスト",
   "navigation_bar.follows_and_followers": "フォロー・フォロワー",
   "navigation_bar.info": "このサーバーについて",
-  "navigation_bar.keyboard_shortcuts": "ホットキー",
+  "navigation_bar.keyboard_shortcuts": "キーボードショートカット",
   "navigation_bar.lists": "リスト",
   "navigation_bar.logout": "ログアウト",
   "navigation_bar.mutes": "ミュートしたユーザー",
@@ -313,16 +313,16 @@
   "navigation_bar.public_timeline": "連合タイムライン",
   "navigation_bar.misc": "その他",
   "navigation_bar.security": "セキュリティ",
-  "notification.admin.sign_up": "{name} がサインアップしました",
+  "notification.admin.sign_up": "{name}さんがサインアップしました",
   "notification.favourite": "{name}さんがあなたの投稿をお気に入りに登録しました",
   "notification.follow": "{name}さんにフォローされました",
-  "notification.follow_request": "{name} さんがあなたにフォローリクエストしました",
+  "notification.follow_request": "{name}さんがあなたにフォローリクエストしました",
   "notification.mention": "{name}さんがあなたに返信しました",
   "notification.own_poll": "アンケートが終了しました",
   "notification.poll": "アンケートが終了しました",
   "notification.reblog": "{name}さんがあなたの投稿をブーストしました",
   "notification.status": "{name}さんが投稿しました",
-  "notification.update": "{name} が投稿を編集しました",
+  "notification.update": "{name}さんが投稿を編集しました",
   "notifications.clear": "通知を消去",
   "notifications.clear_confirmation": "本当に通知を消去しますか?",
   "notifications.column_settings.admin.sign_up": "新規登録:",
@@ -351,13 +351,13 @@
   "notifications.filter.polls": "アンケート結果",
   "notifications.filter.statuses": "フォローしている人の新着情報",
   "notifications.grant_permission": "権限の付与",
-  "notifications.group": "{count} 件の通知",
+  "notifications.group": "{count}件の通知",
   "notifications.mark_as_read": "すべて既読にする",
   "notifications.permission_denied": "ブラウザの通知が拒否されているためデスクトップ通知は利用できません",
   "notifications.permission_denied_alert": "ブラウザの通知が拒否されているためデスクトップ通知を有効にできません",
   "notifications.permission_required": "必要な権限が付与されていないため、デスクトップ通知は利用できません。",
   "notifications_permission_banner.enable": "デスクトップ通知を有効にする",
-  "notifications_permission_banner.how_to_control": "Mastodon を閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {icon} ボタンから通知の内容を細かくカスタマイズできます。",
+  "notifications_permission_banner.how_to_control": "Mastodonを閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {icon} ボタンから通知の内容を細かくカスタマイズできます。",
   "notifications_permission_banner.title": "お見逃しなく",
   "picture_in_picture.restore": "元に戻す",
   "poll.closed": "終了",
@@ -371,7 +371,7 @@
   "poll_button.remove_poll": "アンケートを削除",
   "privacy.change": "公開範囲を変更",
   "privacy.direct.long": "送信した相手のみ閲覧可",
-  "privacy.direct.short": "ダイレクト",
+  "privacy.direct.short": "メンションした相手のみ",
   "privacy.private.long": "フォロワーのみ閲覧可",
   "privacy.private.short": "フォロワーのみ",
   "privacy.public.long": "誰でも閲覧可",
@@ -382,11 +382,11 @@
   "regeneration_indicator.label": "読み込み中…",
   "regeneration_indicator.sublabel": "ホームタイムラインは準備中です!",
   "relative_time.days": "{number}日前",
-  "relative_time.full.days": "{number} 日前",
-  "relative_time.full.hours": "{number} 時間前",
+  "relative_time.full.days": "{number}日前",
+  "relative_time.full.hours": "{number}時間前",
   "relative_time.full.just_now": "今",
-  "relative_time.full.minutes": "{number} 分前",
-  "relative_time.full.seconds": "{number} 秒前",
+  "relative_time.full.minutes": "{number}分前",
+  "relative_time.full.seconds": "{number}秒前",
   "relative_time.hours": "{number}時間前",
   "relative_time.just_now": "今",
   "relative_time.minutes": "{number}分前",
@@ -404,7 +404,7 @@
   "report.category.title_status": "投稿",
   "report.close": "完了",
   "report.comment.title": "その他に私たちに伝えておくべき事はありますか?",
-  "report.forward": "{target} に転送する",
+  "report.forward": "{target}に転送する",
   "report.forward_hint": "このアカウントは別のサーバーに所属しています。通報内容を匿名で転送しますか?",
   "report.mute": "ミュート",
   "report.mute_explanation": "相手の投稿は表示されなくなります。相手は引き続きあなたをフォローして、あなたの投稿を表示することができますが、ミュートされていることはわかりません。",
@@ -425,10 +425,10 @@
   "report.submit": "通報する",
   "report.target": "{target}さんを通報する",
   "report.thanks.take_action": "次のような方法はいかがでしょうか?",
-  "report.thanks.take_action_actionable": "私達が確認している間でも、あなたは @{name} さんに対して対応することが出来ます:",
+  "report.thanks.take_action_actionable": "私達が確認している間でも、あなたは@{name}さんに対して対応することが出来ます:",
   "report.thanks.title": "見えないようにしたいですか?",
   "report.thanks.title_actionable": "ご報告ありがとうございます、追って確認します。",
-  "report.unfollow": "@{name}のフォローを解除",
+  "report.unfollow": "@{name}さんのフォローを解除",
   "report.unfollow_explanation": "このアカウントをフォローしています。ホームフィードに彼らの投稿を表示しないようにするには、彼らのフォローを外してください。",
   "search.placeholder": "検索",
   "search_popout.search_format": "高度な検索フォーマット",
@@ -444,7 +444,7 @@
   "search_results.statuses": "投稿",
   "search_results.statuses_fts_disabled": "このサーバーでは投稿本文の検索は利用できません。",
   "search_results.total": "{count, number}件の結果",
-  "status.admin_account": "@{name} のモデレーション画面を開く",
+  "status.admin_account": "@{name}さんのモデレーション画面を開く",
   "status.admin_status": "この投稿をモデレーション画面で開く",
   "status.block": "@{name}さんをブロック",
   "status.bookmark": "ブックマーク",
@@ -455,13 +455,13 @@
   "status.detailed_status": "詳細な会話ビュー",
   "status.direct": "@{name}さんにダイレクトメッセージ",
   "status.edit": "編集",
-  "status.edited": "{date} 編集済み",
-  "status.edited_x_times": "{count} 回編集",
+  "status.edited": "{date}に編集",
+  "status.edited_x_times": "{count}回編集",
   "status.embed": "埋め込み",
   "status.favourite": "お気に入り",
   "status.filtered": "フィルターされました",
-  "status.history.created": "{name}さんが {date} に作成",
-  "status.history.edited": "{name}さんが {date} に編集",
+  "status.history.created": "{name}さんが{date}に作成",
+  "status.history.edited": "{name}さんが{date}に編集",
   "status.load_more": "もっと見る",
   "status.media_hidden": "非表示のメディア",
   "status.mention": "@{name}さんに投稿",
@@ -507,7 +507,7 @@
   "timeline_hint.resources.followers": "フォロワー",
   "timeline_hint.resources.follows": "フォロー",
   "timeline_hint.resources.statuses": "以前の投稿",
-  "trends.counter_by_accounts": "{counter} 人が投稿",
+  "trends.counter_by_accounts": "{counter}人が投稿",
   "trends.trending_now": "トレンドタグ",
   "ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。",
   "units.short.billion": "{count}B",
@@ -517,7 +517,7 @@
   "upload_button.label": "メディアを追加 (複数の画像または1つの動画か音声ファイル)",
   "upload_error.limit": "アップロードできる上限を超えています。",
   "upload_error.poll": "アンケートではファイルをアップロードできません。",
-  "upload_form.audio_description": "聴取が難しいユーザーへの説明",
+  "upload_form.audio_description": "聴き取りが難しいユーザーへの説明",
   "upload_form.description": "閲覧が難しいユーザーへの説明",
   "upload_form.description_missing": "説明を追加していません",
   "upload_form.edit": "編集",
@@ -532,7 +532,7 @@
   "upload_modal.detect_text": "画像からテキストを検出",
   "upload_modal.edit_media": "メディアを編集",
   "upload_modal.hint": "サムネイルの焦点にしたい場所をクリックするか円形の枠をその場所にドラッグしてください。",
-  "upload_modal.preparing_ocr": "OCR の準備中…",
+  "upload_modal.preparing_ocr": "OCRの準備中…",
   "upload_modal.preview_label": "プレビュー ({ratio})",
   "upload_progress.label": "アップロード中...",
   "video.close": "動画を閉じる",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index 12860d7ab..f36683346 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -70,7 +70,7 @@
   "column.blocks": "Utilizadores Bloqueados",
   "column.bookmarks": "Itens salvos",
   "column.community": "Cronologia local",
-  "column.conversations": "Conversations",
+  "column.conversations": "Conversações",
   "column.directory": "Procurar perfis",
   "column.domain_blocks": "Domínios escondidos",
   "column.favourites": "Favoritos",
@@ -93,7 +93,7 @@
   "community.column_settings.media_only": "Somente media",
   "community.column_settings.remote_only": "Remoto apenas",
   "compose_form.direct_message_warning_learn_more": "Conhecer mais",
-  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
+  "compose_form.encryption_warning": "As publicações no Mastodon não são criptografadas de ponta a ponta. Não partilhe nenhuma informação sensível através do Mastodon.",
   "compose_form.hashtag_warning": "Este toot não será listado em nenhuma hashtag por ser não listado. Apenas toots públics podem ser pesquisados por hashtag.",
   "compose_form.lock_disclaimer": "A sua conta não é {locked}. Qualquer pessoa pode segui-lo e ver as publicações direcionadas apenas a seguidores.",
   "compose_form.lock_disclaimer.lock": "bloqueado",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ainda não bloqueaste qualquer utilizador.",
   "empty_column.bookmarked_statuses": "Ainda não adicionou nenhum toot aos Itens salvos. Quando adicionar, eles serão exibidos aqui.",
   "empty_column.community": "A timeline local está vazia. Escreve algo publicamente para começar!",
-  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+  "empty_column.conversations": "Quando enviar ou receber uma publicação que seja visível apenas para as pessoas nela mencionadas, ela aparecerá aqui.",
   "empty_column.domain_blocks": "Ainda não há qualquer domínio escondido.",
   "empty_column.explore_statuses": "Nada em destaque por agora. Volte mais tarde!",
   "empty_column.favourited_statuses": "Ainda não tens quaisquer toots favoritos. Quando tiveres algum, ele irá aparecer aqui.",
@@ -230,7 +230,7 @@
   "keyboard_shortcuts.boost": "para partilhar",
   "keyboard_shortcuts.column": "para focar uma publicação numa das colunas",
   "keyboard_shortcuts.compose": "para focar na área de publicação",
-  "keyboard_shortcuts.conversations": "to open conversations column",
+  "keyboard_shortcuts.conversations": "para abrir a coluna de conversações",
   "keyboard_shortcuts.description": "Descrição",
   "keyboard_shortcuts.down": "para mover para baixo na lista",
   "keyboard_shortcuts.enter": "para expandir uma publicação",
@@ -366,12 +366,12 @@
   "poll_button.remove_poll": "Remover votação",
   "privacy.change": "Ajustar a privacidade da publicação",
   "privacy.direct.long": "Apenas para utilizadores mencionados",
-  "privacy.direct.short": "Direct",
+  "privacy.direct.short": "Apenas pessoas que menciono",
   "privacy.private.long": "Apenas para os seguidores",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all",
+  "privacy.private.short": "Apenas seguidores",
+  "privacy.public.long": "Visível para todos",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Visível para todos, mas não incluir em funcionalidades de divulgação",
   "privacy.unlisted.short": "Não listar",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "A carregar…",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index da2a4588c..15d2f7aeb 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -32,8 +32,8 @@
   "account.mute": "Tysta @{name}",
   "account.mute_notifications": "Stäng av notifieringar från @{name}",
   "account.muted": "Tystad",
-  "account.posts": "Tutningar",
-  "account.posts_with_replies": "Tutningar och svar",
+  "account.posts": "Inlägg",
+  "account.posts_with_replies": "Inlägg och svar",
   "account.report": "Rapportera @{name}",
   "account.requested": "Inväntar godkännande. Klicka för att avbryta följarförfrågan",
   "account.share": "Dela @{name}s profil",
@@ -247,7 +247,7 @@
   "keyboard_shortcuts.my_profile": "för att öppna din profil",
   "keyboard_shortcuts.notifications": "för att öppna Meddelanden",
   "keyboard_shortcuts.open_media": "öppna media",
-  "keyboard_shortcuts.pinned": "för att öppna Nålade toots",
+  "keyboard_shortcuts.pinned": "för att öppna nålade inlägg",
   "keyboard_shortcuts.profile": "för att öppna skaparens profil",
   "keyboard_shortcuts.reply": "för att svara",
   "keyboard_shortcuts.requests": "för att öppna Följförfrågningar",
@@ -334,7 +334,7 @@
   "notifications.column_settings.reblog": "Knuffar:",
   "notifications.column_settings.show": "Visa i kolumnen",
   "notifications.column_settings.sound": "Spela upp ljud",
-  "notifications.column_settings.status": "Nya tutor:",
+  "notifications.column_settings.status": "Nya inlägg:",
   "notifications.column_settings.unread_notifications.category": "O-lästa aviseringar",
   "notifications.column_settings.unread_notifications.highlight": "Markera o-lästa aviseringar",
   "notifications.column_settings.update": "Redigeringar:",
@@ -436,7 +436,7 @@
   "search_results.all": "Alla",
   "search_results.hashtags": "Hashtaggar",
   "search_results.nothing_found": "Kunde inte hitta något för dessa sökord",
-  "search_results.statuses": "Tutor",
+  "search_results.statuses": "Inlägg",
   "search_results.statuses_fts_disabled": "Att söka toots med deras innehåll är inte möjligt på denna Mastodon-server.",
   "search_results.total": "{count, number} {count, plural, ett {result} andra {results}}",
   "status.admin_account": "Öppet modereringsgränssnitt för @{name}",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index b38cbc278..0195dee2e 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -13,7 +13,7 @@
   "account.domain_blocked": "域名已屏蔽",
   "account.edit_profile": "修改个人资料",
   "account.enable_notifications": "当 @{name} 发嘟时通知我",
-  "account.endorse": "推荐在个人页上",
+  "account.endorse": "在个人资料中推荐此用户",
   "account.follow": "关注",
   "account.followers": "关注者",
   "account.followers.empty": "目前无人关注此用户。",
@@ -24,8 +24,8 @@
   "account.follows_you": "关注了你",
   "account.hide_reblogs": "隐藏来自 @{name} 的转贴",
   "account.joined": "加入于 {date}",
-  "account.link_verified_on": "此链接的所有权已在 {date} 检查",
-  "account.locked_info": "此账户已锁嘟。账户所有者会手动审核关注者。",
+  "account.link_verified_on": "此链接的所有权已在 {date} 被检查",
+  "account.locked_info": "此账户已锁嘟。账户所有者会手动审核关注申请。",
   "account.media": "媒体",
   "account.mention": "提及 @{name}",
   "account.moved_to": "{name} 已经迁移到:",
@@ -35,8 +35,8 @@
   "account.posts": "帖子",
   "account.posts_with_replies": "帖子和回复",
   "account.report": "举报 @{name}",
-  "account.requested": "正在等待对方同意。点击以取消发送关注请求",
-  "account.share": "分享 @{name} 的个人资料",
+  "account.requested": "正在等待对方通过关注申请。点击以取消发送关注申请",
+  "account.share": "分享 @{name} 的用户简介",
   "account.show_reblogs": "显示来自 @{name} 的转嘟",
   "account.statuses_counter": "{counter} 条嘟文",
   "account.unblock": "取消屏蔽 @{name}",
@@ -68,19 +68,19 @@
   "bundle_modal_error.message": "载入这个组件时发生了错误。",
   "bundle_modal_error.retry": "重试",
   "column.blocks": "已屏蔽的用户",
-  "column.bookmarks": "书签",
+  "column.bookmarks": "收藏夹",
   "column.community": "本站时间轴",
-  "column.conversations": "对话",
+  "column.conversations": "会话",
   "column.directory": "浏览用户资料",
   "column.domain_blocks": "已屏蔽的域名",
-  "column.favourites": "收藏",
-  "column.follow_requests": "关注请求",
+  "column.favourites": "喜欢",
+  "column.follow_requests": "关注申请",
   "column.home": "主页",
   "column.lists": "列表",
   "column.mutes": "已隐藏的用户",
   "column.notifications": "通知",
   "column.pins": "置顶帖子",
-  "column.public": "跨站公共时间轴",
+  "column.public": "跨站时间轴",
   "column_back_button.label": "返回",
   "column_header.hide_settings": "隐藏设置",
   "column_header.moveLeft_settings": "将此栏左移",
@@ -89,16 +89,16 @@
   "column_header.show_settings": "显示设置",
   "column_header.unpin": "取消置顶",
   "column_subheading.settings": "设置",
-  "community.column_settings.local_only": "仅限本站",
+  "community.column_settings.local_only": "仅在本站显示",
   "community.column_settings.media_only": "仅限媒体",
   "community.column_settings.remote_only": "仅限外部",
   "compose_form.direct_message_warning_learn_more": "了解更多",
-  "compose_form.encryption_warning": "Mastodon上的帖子不是端到端加密的。不要在Mastodon上分享敏感信息。",
+  "compose_form.encryption_warning": "Mastodon 上的嘟文并未端到端加密。请不要在 Mastodon 上分享敏感信息。",
   "compose_form.hashtag_warning": "此帖子被设置为“不公开”,因此它不会出现在任何话题标签的列表下。只有公开帖子才能通过话题标签进行搜索。",
   "compose_form.lock_disclaimer": "你的账号没有{locked}。任何人在关注你后都能立即查看仅关注者可见的帖子。",
-  "compose_form.lock_disclaimer.lock": "开启保护",
+  "compose_form.lock_disclaimer.lock": "锁嘟",
   "compose_form.placeholder": "在想些什么?",
-  "compose_form.poll.add_option": "添加选项",
+  "compose_form.poll.add_option": "添加一个选项",
   "compose_form.poll.duration": "投票持续时间",
   "compose_form.poll.option_placeholder": "选项 {number}",
   "compose_form.poll.remove_option": "移除此选项",
@@ -112,28 +112,28 @@
   "compose_form.sensitive.unmarked": "媒体未被标记为敏感内容",
   "compose_form.spoiler.marked": "移除内容警告",
   "compose_form.spoiler.unmarked": "添加内容警告",
-  "compose_form.spoiler_placeholder": "写下你的警告",
+  "compose_form.spoiler_placeholder": "在此处写下内容警告",
   "confirmation_modal.cancel": "取消",
   "confirmations.block.block_and_report": "屏蔽与举报",
   "confirmations.block.confirm": "屏蔽",
   "confirmations.block.message": "你确定要屏蔽 {name} 吗?",
   "confirmations.delete.confirm": "删除",
-  "confirmations.delete.message": "你确定要删除这条嘟文吗?",
+  "confirmations.delete.message": "你确定要删除这个帖子吗?",
   "confirmations.delete_list.confirm": "删除",
   "confirmations.delete_list.message": "你确定要永久删除此列表吗?",
   "confirmations.discard_edit_media.confirm": "丢弃",
-  "confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍然丢弃它们吗?",
-  "confirmations.domain_block.confirm": "屏蔽整个域名",
-  "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,屏蔽或隐藏几个特定的用户就已经足够了。来自该网站的内容将不再出现在你的任何公共时间轴或通知列表里。来自该网站的关注者将会被移除。",
+  "confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍然要丢弃它们吗?",
+  "confirmations.domain_block.confirm": "隐藏所有来自此域名的内容",
+  "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,屏蔽或隐藏几个特定的用户就已经足够了。来自该域名的内容将不再出现在你的公共时间轴或通知列表里。来自该域名的关注者将会被移除。",
   "confirmations.logout.confirm": "登出",
   "confirmations.logout.message": "你确定要登出吗?",
   "confirmations.mute.confirm": "隐藏",
   "confirmations.mute.explanation": "这将隐藏他们的嘟文以及提到他们的嘟文,但他们仍可以看到你的嘟文并关注你。",
   "confirmations.mute.message": "你确定要隐藏 {name} 吗?",
   "confirmations.redraft.confirm": "删除并重新编辑",
-  "confirmations.redraft.message": "你确定要删除这条嘟文并重新编辑它吗?所有相关的转嘟和喜欢都会被清除,回复将会失去关联。",
+  "confirmations.redraft.message": "你确定要删除这条嘟文并重新编辑它吗?所有相关的转嘟和喜欢都会被清除,回复将失去与这条嘟文的关联。",
   "confirmations.reply.confirm": "回复",
-  "confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?",
+  "confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。仍要继续吗?",
   "confirmations.unfollow.confirm": "取消关注",
   "confirmations.unfollow.message": "你确定要取消关注 {name} 吗?",
   "conversation.delete": "删除对话",
@@ -142,9 +142,9 @@
   "conversation.with": "与 {names}",
   "directory.federated": "来自联邦宇宙的已知部分",
   "directory.local": "仅来自 {domain}",
-  "directory.new_arrivals": "新来者",
+  "directory.new_arrivals": "新用户",
   "directory.recently_active": "最近活跃",
-  "embed.instructions": "复制以下代码在你的网站上嵌入此文章,",
+  "embed.instructions": "要在你的网站上嵌入此嘟文,请复制以下代码。",
   "embed.preview": "它会像这样显示出来:",
   "emoji_button.activity": "活动",
   "emoji_button.custom": "自定义",
@@ -156,31 +156,31 @@
   "emoji_button.objects": "物体",
   "emoji_button.people": "人物",
   "emoji_button.recent": "常用",
-  "emoji_button.search": "搜索…",
+  "emoji_button.search": "搜索……",
   "emoji_button.search_results": "搜索结果",
   "emoji_button.symbols": "符号",
   "emoji_button.travel": "旅行和地点",
   "empty_column.account_suspended": "账户已停用",
   "empty_column.account_timeline": "这里没有帖子!",
-  "empty_column.account_unavailable": "个人资料不可用",
+  "empty_column.account_unavailable": "用户资料不可用",
   "empty_column.blocks": "你还未屏蔽任何用户。",
-  "empty_column.bookmarked_statuses": "你还未将任何帖子加入书签。在你添加书签后,帖子将显示在此。",
-  "empty_column.community": "本站时间轴一片空白,快写点什么让它动起来吧!",
-  "empty_column.conversations": "一旦您发送或接收了一个只对其中提到的人可见的帖子,它就会显示在这里。",
+  "empty_column.bookmarked_statuses": "你还未将任何帖子加入收藏夹。在你加入收藏夹后,帖子将显示在此。",
+  "empty_column.community": "本站时间轴暂时没有内容,快写点什么让它动起来吧!",
+  "empty_column.conversations": "发送或收到仅对提及对象可见的嘟文后,就会显示在这里。",
   "empty_column.domain_blocks": "目前没有被隐藏的站点。",
   "empty_column.explore_statuses": "目前没有热门话题,稍后再来看看吧!",
   "empty_column.favourited_statuses": "你还未喜欢过任何帖子。当你喜欢帖子时,它将显示在此。",
-  "empty_column.favourites": "没有人喜欢过这条嘟文。如果有人喜欢会显示在此。",
+  "empty_column.favourites": "没有人喜欢过这条嘟文。如果有人喜欢了,就会显示在这里。",
   "empty_column.follow_recommendations": "似乎无法为你生成任何建议。你可以尝试使用搜索寻找你可能知道的人或探索热门标签。",
-  "empty_column.follow_requests": "你没有收到新的关注请求。收到后将显示在此。",
+  "empty_column.follow_requests": "你没有收到新的关注申请。收到后将显示在此。",
   "empty_column.hashtag": "这个话题标签下暂时没有内容。",
   "empty_column.home": "你的主页时间线是空的!快去关注更多人吧。 {suggestions}",
   "empty_column.home.suggestions": "查看一些建议",
-  "empty_column.list": "此列表中暂时没有内容。列表中用户所发送的的新嘟文将会在这里显示。",
-  "empty_column.lists": "你还没有创建过列表。你创建的列表会在这里显示。",
+  "empty_column.list": "此列表中暂时没有内容。列表中用户所发送的的新嘟文将会显示在这里。",
+  "empty_column.lists": "你还没有创建过列表。你创建的列表会显示在这里。",
   "empty_column.mutes": "你没有隐藏任何用户。",
   "empty_column.notifications": "你还没有收到过任何通知,快和其他用户互动吧。",
-  "empty_column.public": "这里什么都没有!写一些公开帖子,或者关注其他服务器的用户后,这里就会有嘟文出现了",
+  "empty_column.public": "这里什么都没有!写一些公开帖子,或者关注来自其他服务器的用户后,这里就会有嘟文出现了",
   "error.unexpected_crash.explanation": "此页面无法正确显示,这可能是因为我们的代码中有错误,也可能是因为浏览器兼容问题。",
   "error.unexpected_crash.explanation_addons": "此页面无法正确显示,这个错误很可能是由浏览器附加组件或自动翻译工具造成的。",
   "error.unexpected_crash.next_steps": "刷新一下页面试试。如果没用,你可以换个浏览器或者用本地应用。",
@@ -190,7 +190,7 @@
   "explore.search_results": "搜索结果",
   "explore.suggested_follows": "为你推荐",
   "explore.title": "探索",
-  "explore.trending_links": "最新消息",
+  "explore.trending_links": "新闻",
   "explore.trending_statuses": "帖子",
   "explore.trending_tags": "话题标签",
   "follow_recommendations.done": "完成",
@@ -198,7 +198,7 @@
   "follow_recommendations.lead": "你关注的人的帖子将按时间顺序显示在你的主页。 别担心,你可以随时取消关注!",
   "follow_request.authorize": "授权",
   "follow_request.reject": "拒绝",
-  "follow_requests.unlocked_explanation": "虽说你没有锁嘟,但是 {domain} 的工作人员觉得你可能想手工审核这些账号的关注请求。",
+  "follow_requests.unlocked_explanation": "虽然你没有锁嘟,但是 {domain} 的管理人员觉得你可能想人工审核这些账号的关注申请。",
   "generic.saved": "已保存",
   "getting_started.developers": "开发",
   "getting_started.directory": "用户目录",
@@ -212,7 +212,7 @@
   "hashtag.column_header.tag_mode.any": "或是 {additional}",
   "hashtag.column_header.tag_mode.none": "而不用 {additional}",
   "hashtag.column_settings.select.no_options_message": "没有找到建议",
-  "hashtag.column_settings.select.placeholder": "输入话题标签…",
+  "hashtag.column_settings.select.placeholder": "输入话题标签……",
   "hashtag.column_settings.tag_mode.all": "全部",
   "hashtag.column_settings.tag_mode.any": "任一",
   "hashtag.column_settings.tag_mode.none": "无一",
@@ -226,8 +226,8 @@
   "intervals.full.hours": "{number} 小时",
   "intervals.full.minutes": "{number} 分钟",
   "keyboard_shortcuts.back": "返回上一页",
-  "keyboard_shortcuts.blocked": "打开被屏蔽用户列表",
-  "keyboard_shortcuts.boost": "转贴",
+  "keyboard_shortcuts.blocked": "打开已屏蔽用户列表",
+  "keyboard_shortcuts.boost": "转嘟",
   "keyboard_shortcuts.column": "选择某栏",
   "keyboard_shortcuts.compose": "选择输入框",
   "keyboard_shortcuts.conversations": "打开对话栏",
@@ -250,7 +250,7 @@
   "keyboard_shortcuts.pinned": "打开置顶帖子列表",
   "keyboard_shortcuts.profile": "打开作者的个人资料",
   "keyboard_shortcuts.reply": "回复帖子",
-  "keyboard_shortcuts.requests": "打开关注请求列表",
+  "keyboard_shortcuts.requests": "打开关注申请列表",
   "keyboard_shortcuts.search": "选择搜索框",
   "keyboard_shortcuts.spoilers": "显示或隐藏被折叠的正文",
   "keyboard_shortcuts.start": "打开“开始使用”栏",
@@ -273,21 +273,21 @@
   "lists.new.title_placeholder": "新列表的标题",
   "lists.replies_policy.followed": "任何被关注的用户",
   "lists.replies_policy.list": "列表成员",
-  "lists.replies_policy.none": "没人",
+  "lists.replies_policy.none": "没有人",
   "lists.replies_policy.title": "显示回复给:",
   "lists.search": "搜索你关注的人",
   "lists.subheading": "你的列表",
   "load_pending": "{count} 项",
-  "loading_indicator.label": "加载中…",
+  "loading_indicator.label": "加载中……",
   "media_gallery.toggle_visible": "隐藏图片",
   "missing_indicator.label": "找不到内容",
   "missing_indicator.sublabel": "无法找到此资源",
   "mute_modal.duration": "持续时长",
-  "mute_modal.hide_notifications": "同时隐藏来自这个用户的通知?",
+  "mute_modal.hide_notifications": "是否同时隐藏来自这个用户的通知?",
   "mute_modal.indefinite": "无期限",
   "navigation_bar.apps": "移动应用",
   "navigation_bar.blocks": "已屏蔽的用户",
-  "navigation_bar.bookmarks": "书签",
+  "navigation_bar.bookmarks": "收藏夹",
   "navigation_bar.community_timeline": "本站时间轴",
   "navigation_bar.compose": "撰写新帖子",
   "navigation_bar.discover": "发现",
@@ -296,7 +296,7 @@
   "navigation_bar.explore": "探索",
   "navigation_bar.favourites": "喜欢",
   "navigation_bar.filters": "隐藏关键词",
-  "navigation_bar.follow_requests": "关注请求",
+  "navigation_bar.follow_requests": "关注申请",
   "navigation_bar.follows_and_followers": "关注管理",
   "navigation_bar.info": "关于此服务",
   "navigation_bar.keyboard_shortcuts": "快捷键列表",
@@ -305,17 +305,17 @@
   "navigation_bar.mutes": "已隐藏的用户",
   "navigation_bar.personal": "个人",
   "navigation_bar.pins": "置顶帖子",
-  "navigation_bar.preferences": "首选项",
-  "navigation_bar.public_timeline": "跨站公共时间轴",
-  "navigation_bar.security": "安全性",
-  "notification.admin.sign_up": "{name} 已注册",
+  "navigation_bar.preferences": "偏好",
+  "navigation_bar.public_timeline": "跨站时间轴",
+  "navigation_bar.security": "安全",
+  "notification.admin.sign_up": "{name} 已被注册",
   "notification.favourite": "{name} 喜欢了你的帖子",
   "notification.follow": "{name} 开始关注你",
   "notification.follow_request": "{name} 向你发送了关注请求",
   "notification.mention": "{name} 提及了你",
   "notification.own_poll": "你的投票已经结束",
   "notification.poll": "你参与的一个投票已经结束",
-  "notification.reblog": "{name} 转贴了你的帖子",
+  "notification.reblog": "{name} 转发了你的帖子",
   "notification.status": "{name} 刚刚发帖",
   "notification.update": "{name} 编辑了帖子",
   "notifications.clear": "清空通知列表",
@@ -327,19 +327,19 @@
   "notifications.column_settings.filter_bar.category": "快速过滤栏",
   "notifications.column_settings.filter_bar.show_bar": "显示过滤栏",
   "notifications.column_settings.follow": "新关注者:",
-  "notifications.column_settings.follow_request": "新关注请求:",
+  "notifications.column_settings.follow_request": "新关注申请:",
   "notifications.column_settings.mention": "提及:",
   "notifications.column_settings.poll": "投票结果:",
   "notifications.column_settings.push": "推送通知",
-  "notifications.column_settings.reblog": "转贴:",
+  "notifications.column_settings.reblog": "转发:",
   "notifications.column_settings.show": "在通知栏显示",
-  "notifications.column_settings.sound": "播放声音",
-  "notifications.column_settings.status": "新贴:",
+  "notifications.column_settings.sound": "播放音效",
+  "notifications.column_settings.status": "新帖:",
   "notifications.column_settings.unread_notifications.category": "未读通知",
   "notifications.column_settings.unread_notifications.highlight": "高亮显示未读通知",
   "notifications.column_settings.update": "编辑:",
   "notifications.filter.all": "全部",
-  "notifications.filter.boosts": "转贴",
+  "notifications.filter.boosts": "转发",
   "notifications.filter.favourites": "喜欢",
   "notifications.filter.follows": "关注",
   "notifications.filter.mentions": "提及",
@@ -348,9 +348,9 @@
   "notifications.grant_permission": "授予权限",
   "notifications.group": "{count} 条通知",
   "notifications.mark_as_read": "将所有通知标为已读",
-  "notifications.permission_denied": "由于权限被拒绝,无法启用桌面通知。",
+  "notifications.permission_denied": "由于权限不可用,无法启用桌面通知。",
   "notifications.permission_denied_alert": "由于在此之前浏览器权限请求就已被拒绝,所以启用桌面通知失败",
-  "notifications.permission_required": "所需权限未被授予,所以桌面通知不可用",
+  "notifications.permission_required": "未授予所需权限,所以桌面通知不可用",
   "notifications_permission_banner.enable": "启用桌面通知",
   "notifications_permission_banner.how_to_control": "启用桌面通知以在 Mastodon 未打开时接收通知。你可以通过交互通过上面的 {icon} 按钮来精细控制可以发送桌面通知的交互类型。",
   "notifications_permission_banner.title": "精彩不容错过",
@@ -366,15 +366,15 @@
   "poll_button.remove_poll": "移除投票",
   "privacy.change": "设置帖子的可见范围",
   "privacy.direct.long": "只有被提及的用户能看到",
-  "privacy.direct.short": "仅我提到的人",
+  "privacy.direct.short": "仅对提及的人可见",
   "privacy.private.long": "仅关注者可见",
-  "privacy.private.short": "仅关注者",
+  "privacy.private.short": "仅对关注者可见",
   "privacy.public.long": "所有人可见",
   "privacy.public.short": "公开",
-  "privacy.unlisted.long": "对所有人都可见,但关闭发现功能",
-  "privacy.unlisted.short": "不公开",
+  "privacy.unlisted.long": "对所有人可见,但不加入探索功能",
+  "privacy.unlisted.short": "非公开",
   "refresh": "刷新",
-  "regeneration_indicator.label": "加载中…",
+  "regeneration_indicator.label": "加载中……",
   "regeneration_indicator.sublabel": "你的主页动态正在准备中!",
   "relative_time.days": "{number} 天",
   "relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前",
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 9d29f1cb5..694f5e928 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -4053,7 +4053,7 @@ a.status-card.compact:hover {
   }
 
   & > span {
-    max-width: 400px;
+    max-width: 500px;
   }
 
   a {
diff --git a/app/services/activitypub/fetch_featured_collection_service.rb b/app/services/activitypub/fetch_featured_collection_service.rb
index 07a9fe039..37d05e055 100644
--- a/app/services/activitypub/fetch_featured_collection_service.rb
+++ b/app/services/activitypub/fetch_featured_collection_service.rb
@@ -7,19 +7,33 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
     return if account.featured_collection_url.blank? || account.suspended? || account.local?
 
     @account = account
-    @json    = fetch_resource(@account.featured_collection_url, true)
+    @json    = fetch_resource(@account.featured_collection_url, true, local_follower)
 
-    return unless supported_context?
+    return unless supported_context?(@json)
 
-    case @json['type']
+    process_items(collection_items(@json))
+  end
+
+  private
+
+  def collection_items(collection)
+    collection = fetch_collection(collection['first']) if collection['first'].present?
+    return unless collection.is_a?(Hash)
+
+    case collection['type']
     when 'Collection', 'CollectionPage'
-      process_items @json['items']
+      collection['items']
     when 'OrderedCollection', 'OrderedCollectionPage'
-      process_items @json['orderedItems']
+      collection['orderedItems']
     end
   end
 
-  private
+  def fetch_collection(collection_or_uri)
+    return collection_or_uri if collection_or_uri.is_a?(Hash)
+    return if invalid_origin?(collection_or_uri)
+
+    fetch_resource_without_id_validation(collection_or_uri, local_follower, true)
+  end
 
   def process_items(items)
     status_ids = items.filter_map do |item|
@@ -53,11 +67,9 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
     end
   end
 
-  def supported_context?
-    super(@json)
-  end
-
   def local_follower
-    @local_follower ||= @account.followers.local.without_suspended.first
+    return @local_follower if defined?(@local_follower)
+
+    @local_follower = @account.followers.local.without_suspended.first
   end
 end
diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb
index 21332a03e..387e2e09b 100644
--- a/app/services/resolve_account_service.rb
+++ b/app/services/resolve_account_service.rb
@@ -66,7 +66,7 @@ class ResolveAccountService < BaseService
       @username = @account.username
       @domain   = @account.domain
     else
-      @username, @domain = uri.split('@')
+      @username, @domain = uri.strip.gsub(/\A@/, '').split('@')
     end
 
     @domain = begin
diff --git a/config/locales/activerecord.io.yml b/config/locales/activerecord.io.yml
index c63dc0e8d..38304ef93 100644
--- a/config/locales/activerecord.io.yml
+++ b/config/locales/activerecord.io.yml
@@ -1 +1,32 @@
+---
 io:
+  activerecord:
+    attributes:
+      poll:
+        expires_at: Fina dato
+        options: Selektaji
+      user:
+        agreement: Servokonkordo
+        email: Retpostoadreso
+        locale: Regiono
+        password: Pasvorto
+      user/account:
+        username: Uzantonomo
+      user/invite_request:
+        text: Rezono
+    errors:
+      models:
+        account:
+          attributes:
+            username:
+              invalid: mustas konsistar nur literi, nombri e sublinei
+              reserved: rezervitas
+        status:
+          attributes:
+            reblog:
+              taken: de postajo ja existas
+        user:
+          attributes:
+            email:
+              blocked: uzas nepermisata retpostodomeno
+              unreachable: semblas ne existar
diff --git a/config/locales/activerecord.ja.yml b/config/locales/activerecord.ja.yml
index ad4c1eccf..ab13dce6c 100644
--- a/config/locales/activerecord.ja.yml
+++ b/config/locales/activerecord.ja.yml
@@ -28,5 +28,5 @@ ja:
         user:
           attributes:
             email:
-              blocked: は禁止されているプロバイダメールを使用します
-              unreachable: 存在しないようです
+              blocked: は禁止されているメールプロバイダを使用しています
+              unreachable: は存在しないようです
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 779b43fe9..3e1c1c6b7 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -802,6 +802,7 @@ ca:
           other: Compartit per %{count} persones en la darrera setmana
         title: Enllaços en tendència
         usage_comparison: Compartit %{today} vegades avui, comparat amb %{yesterday} d'ahir
+      only_allowed: Només permesos
       pending_review: Revisió pendent
       preview_card_providers:
         allowed: Els enllaços d'aquest mitjà poden estar en tendència
@@ -843,6 +844,7 @@ ca:
           one: Emprat per una persona en la darrera setmana
           other: Emprat per %{count} persones en la darrera setmana
       title: Tendència
+      trending: Tendència
     warning_presets:
       add_new: Afegir-ne un de nou
       delete: Esborra
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 4c373d74c..717bb5614 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -832,6 +832,7 @@ cs:
           other: Sdílený %{count} lidmi za poslední týden
         title: Populární odkazy
         usage_comparison: Za dnešek %{today} sdílení, oproti %{yesterday} včera
+      only_allowed: Jen povolené
       pending_review: Čeká na posouzení
       preview_card_providers:
         allowed: Odkazy z tohoto vydavatele se smí objevovat mezi populárními
@@ -877,6 +878,7 @@ cs:
           one: Použit jedním člověkem za poslední týden
           other: Použit %{count} lidmi za poslední týden
       title: Trendy
+      trending: Populární
     warning_presets:
       add_new: Přidat nové
       delete: Smazat
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 812b97c77..1b788574e 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -527,6 +527,8 @@ cy:
       review: Adolygu statws
       updated_msg: Gosodiadau hashnodau wedi'i diweddaru'n llwyddiannus
     title: Gweinyddiaeth
+    trends:
+      only_allowed: Derbyniwyd yn unig
     warning_presets:
       add_new: Ychwanegu newydd
       delete: Dileu
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 86f926574..28c009ef3 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -801,6 +801,7 @@ da:
           other: Delt af %{count} personer den seneste uge
         title: Populære links
         usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går
+      only_allowed: Kun tilladte
       pending_review: Afventer revision
       preview_card_providers:
         allowed: Links fra denne udgiver kan trende
@@ -842,6 +843,7 @@ da:
           one: Brugt af én person den seneste uge
           other: Brugt af %{count} personer den seneste uge
       title: Trends
+      trending: Populært
     warning_presets:
       add_new: Tilføj ny
       delete: Slet
@@ -1027,6 +1029,7 @@ da:
     strikes:
       action_taken: Handling foretaget
       appeal: Appel
+      appeal_approved: Kontoanmeldelsen er blevet appelleret og er ikke længere gyldig
       appeal_rejected: Appellen er afvist
       appeal_submitted_at: Appel indgivet
       appealed_msg: Din appel er indgivet. Godkendes den, underrettes du.
@@ -1553,6 +1556,7 @@ da:
       title: Arkiv download
     suspicious_sign_in:
       change_password: skift din adgangskode
+      details: 'Her er nogle detaljer om login-forsøget:'
       explanation: Indlogning på din konto fra en ny IP-adresse detekteret.
       further_actions_html: Hvis dette ikke var dig, anbefaler vi, at du %{action} med det samme og aktiverer to-faktor godkendelse for at holde din konto sikker.
       subject: Din konto er blevet tilgået fra en ny IP-adresse
diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml
index 73e79be23..ca8ac0584 100644
--- a/config/locales/devise.ja.yml
+++ b/config/locales/devise.ja.yml
@@ -19,10 +19,10 @@ ja:
     mailer:
       confirmation_instructions:
         action: メールアドレスの確認
-        action_with_app: 確認し %{app} に戻る
+        action_with_app: 確認し%{app}に戻る
         explanation: このメールアドレスで%{host}にアカウントを作成しました。アカウントの有効化まであと一歩です。なお、もし心当たりがない場合は、申し訳ありませんがこのメールを無視してください。
-        explanation_when_pending: このメールアドレスで %{host} への登録を申請しました。あなたがメールアドレスを確認したら、サーバー管理者が申請を審査します。ログインして一部設定を変更したりアカウントを削除できますが、ほとんどの機能は申請が承認されるまで利用できません。申請が却下された場合、あなたのデータは削除されますので以降の操作は必要ありません。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
-        extra_html: あわせて、<a href="%{terms_path}">サーバーのルール</a> と <a href="%{policy_path}">利用規約</a> もお読みください。
+        explanation_when_pending: このメールアドレスで%{host}への登録を申請しました。あなたがメールアドレスを確認したら、サーバー管理者が申請を審査します。ログインして一部設定を変更したりアカウントを削除できますが、ほとんどの機能は申請が承認されるまで利用できません。申請が却下された場合、あなたのデータは削除されますので以降の操作は必要ありません。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
+        extra_html: あわせて、<a href="%{terms_path}">サーバーのルール</a>と<a href="%{policy_path}">利用規約</a>もお読みください。
         subject: 'Mastodon: メールアドレスの確認 %{instance}'
         title: メールアドレスの確認
       email_changed:
@@ -47,17 +47,17 @@ ja:
         subject: 'Mastodon: パスワード再発行'
         title: パスワード再発行
       two_factor_disabled:
-        explanation: あなたのアカウントの二段階認証が無効化されました。メールとパスワードのみでログインできます。
-        subject: 'Mastodon: 二段階認証が無効になりました'
-        title: 二段階認証が無効化されました
+        explanation: あなたのアカウントの二要素認証が無効化されました。メールとパスワードのみでログインできます。
+        subject: 'Mastodon: 二要素認証が無効になりました'
+        title: 二要素認証が無効化されました
       two_factor_enabled:
-        explanation: あなたのアカウントの二段階認証が有効化されました。ログインするには TOTP アプリで生成されたコードが必要です。
-        subject: 'Mastodon: 二段階認証が有効になりました'
-        title: 二段階認証が有効化されました
+        explanation: あなたのアカウントの二要素認証が有効化されました。ログインするには TOTP アプリで生成されたコードが必要です。
+        subject: 'Mastodon: 二要素認証が有効になりました'
+        title: 二要素認証が有効化されました
       two_factor_recovery_codes_changed:
         explanation: 以前のリカバリーコードが無効化され、新しいコードが生成されました。
-        subject: 'Mastodon: 二段階認証のリカバリーコードが再生成されました'
-        title: 二段階認証のリカバリーコードが変更されました
+        subject: 'Mastodon: 二要素認証のリカバリーコードが再生成されました'
+        title: 二要素認証のリカバリーコードが変更されました
       unlock_instructions:
         subject: 'Mastodon: アカウントのロックの解除'
       webauthn_credential:
diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml
index 072d4bc8d..dc87d8ddb 100644
--- a/config/locales/devise.zh-CN.yml
+++ b/config/locales/devise.zh-CN.yml
@@ -22,7 +22,7 @@ zh-CN:
         action_with_app: 确认并返回%{app}
         explanation: 你在 %{host} 上使用此电子邮箱地址创建了一个账号。点击下面的链接即可激活账号。如果你没有创建账号,请忽略此邮件。
         explanation_when_pending: 你用这个电子邮件申请了在 %{host} 注册。在确认电子邮件地址之后,我们会审核你的申请。在此之前,你不能登录。如果你的申请被驳回,你的数据会被移除,因此你无需再采取任何行动。如果申请人不是你,请忽略这封邮件。
-        extra_html: 请记得阅读<a href="%{terms_path}">本服务器的相关规定</a>和<a href="%{policy_path}">我们的使用条款</a>。
+        extra_html: 请记得阅读<a href="%{terms_path}">本实例的相关规定</a>和<a href="%{policy_path}">我们的使用条款</a>。
         subject: Mastodon:来自 %{instance} 的确认指引
         title: 验证电子邮件地址
       email_changed:
diff --git a/config/locales/doorkeeper.fa.yml b/config/locales/doorkeeper.fa.yml
index 9f455e64b..799f46945 100644
--- a/config/locales/doorkeeper.fa.yml
+++ b/config/locales/doorkeeper.fa.yml
@@ -60,6 +60,7 @@ fa:
       error:
         title: خطایی رخ داد
       new:
+        prompt_html: "%{client_name} خواهان اجازه دسترسی به حساب کاربری شماست. <strong>اگر به آن اعتماد ندارید، نباید تاییدش کنید.</strong>"
         review_permissions: بازبینی اجازه‌ها
         title: نیاز به اجازه دادن
       show:
@@ -70,7 +71,12 @@ fa:
       confirmations:
         revoke: آیا مطمئن هستید؟
       index:
+        authorized_at: تایید شده در %{date}
+        description_html: اینها نرم‌افزار هایی هستند که می‌توانند به حساب کاربری شما با استفاده از رابط نرم‌افزاری دسترسی پیدا کنند. اگر نرم‌افزار های در اینجا هستند که نمی‌شناسید، یا نرم‌افزاری که رفتار مشکوک دارد، می‌توانید دسترسی اش را باطل کنید.
+        last_used_at: آخرین استفاده در %{date}
+        never_used: هرگز استفاده نشده
         scopes: اجازه‌ها
+        superapp: داخلی
         title: برنامه‌های مجاز
     errors:
       messages:
@@ -113,6 +119,9 @@ fa:
         write: فقط دسترسی نوشتن
       title:
         accounts: حساب‌ها
+        admin/accounts: مدیریت حساب های کاربری
+        admin/all: تمامی عملکرد های مدیریتی
+        admin/reports: مدیریت بازخورد ها
         all: همه چیز
         blocks: مسدودها
         bookmarks: نشانک‌ها
@@ -120,6 +129,7 @@ fa:
         crypto: رمزگذاری سرتاسری
         favourites: پسندیده‌ها
         filters: پالایه‌ها
+        follow: ارتباطات
         follows: پی‌گرفتگان
         lists: سیاهه‌ها
         media: پیوست‌های رسانه‌ای
diff --git a/config/locales/doorkeeper.hy.yml b/config/locales/doorkeeper.hy.yml
index f9e1e22bd..94ef091f3 100644
--- a/config/locales/doorkeeper.hy.yml
+++ b/config/locales/doorkeeper.hy.yml
@@ -69,6 +69,9 @@ hy:
       confirmations:
         revoke: Վստա՞հ ես
       index:
+        never_used: Երբեք չի օգտագործուել
+        scopes: Թոյլտուութիւններ
+        superapp: Ներքին
         title: Քո նոյնականացրած ծրագրերը
     errors:
       messages:
@@ -104,6 +107,25 @@ hy:
       authorized_applications:
         destroy:
           notice: Յաւելուածը չեղարկուել է։
+    grouped_scopes:
+      access:
+        read: Միայն կարդալու հնարաւորութիւն
+        read/write: Կարդալու եւ գրելու հնարաւորութիւն
+        write: Միայն գրելու հնարաւորութիւն
+      title:
+        accounts: Հաշիւներ
+        all: Բոլորը
+        blocks: Արգելափակումներ
+        bookmarks: Էջանիշեր
+        conversations: Զրոյցներ
+        favourites: Հաւանածներ
+        filters: Զտիչներ
+        follow: Կապեր
+        lists: Ցանկեր
+        mutes: Լռեցուածներ
+        notifications: Ծանուցումներ
+        push: Հրելու ծանուցումներ
+        statuses: Գրառումներ
     layouts:
       admin:
         nav:
diff --git a/config/locales/doorkeeper.io.yml b/config/locales/doorkeeper.io.yml
index ff1fdf9c2..0e03ab79f 100644
--- a/config/locales/doorkeeper.io.yml
+++ b/config/locales/doorkeeper.io.yml
@@ -5,6 +5,8 @@ io:
       doorkeeper/application:
         name: Nomo
         redirect_uri: URI di plussendo
+        scopes: Skopi
+        website: Apliksito
     errors:
       models:
         doorkeeper/application:
@@ -31,15 +33,153 @@ io:
       help:
         native_redirect_uri: Uzez %{native_redirect_uri} por lokala probi
         redirect_uri: Uzez un lineo por singla URI
+        scopes: Separez skopi per spaci. Lasez quale vakua por uzar originala skopi.
       index:
+        application: Apliko
+        callback_url: Retrovokligilo
+        delete: Efacez
+        empty: Vu ne havas apliki.
+        name: Nomo
         new: New Application
+        scopes: Skopi
+        show: Montrez
+        title: Vua apliki
       new:
         title: New Application
       show:
+        actions: Agi
         application_id: Application Id
         callback_urls: Callback urls
+        scopes: Skopi
         secret: Secret
+        title: 'Apliko: %{name}'
+    authorizations:
+      buttons:
+        authorize: Permisez
+        deny: Despermisez
+      error:
+        title: Eroro eventis
+      new:
+        prompt_html: "%{client_name} volas permiso por acesar vua konti. Ol esas externa apliko. <strong>Se vu ne fidas, lore vu debas ne permisar.</strong>"
+        review_permissions: Kontrolez permisi
+        title: Permiso bezonesas
+      show:
+        title: Kopiez ca permisnumero e glutinez adsur la apliko.
+    authorized_applications:
+      buttons:
+        revoke: Deaprobez
+      confirmations:
+        revoke: Ka vu esas certa?
+      index:
+        authorized_at: Permisesis ye %{date}
+        description_html: Co esas apliki quo povas acesar vua konto per API. Se existas apliki quon vu ne rikonocas hike, o apliko misfuncionas, vu povas desaprobar ola aceso.
+        last_used_at: Antee uzesis ye %{date}
+        never_used: Nulaloke uzesas
+        scopes: Permisi
+        superapp: Interna
+        title: Vua permisita apliki
+    errors:
+      messages:
+        access_denied: Resursproprietanto o permisservilo refuzis la demando.
+        credential_flow_not_configured: Resursproprietantpasvortidentesesofluo faliis pro ke Doorkeeper.configure.resource_owner_from_credentials ne ajustesis.
+        invalid_client: Klientpermiso falias pro nesavita kliento, neinkluzita klientpermiso o nesuportita permismetodo.
+        invalid_grant: Provizita permiso esis nevalida, expiris, deaprobesis, ne parigas uzita ridirektoligilo dum permisdemando o facesis a altra kliento.
+        invalid_redirect_uri: La inkluzita ridirektoligilo esas nevalida.
+        invalid_request:
+          missing_param: 'Bezonita parametro: %{value}.'
+          request_not_authorized: Demando bezonas permisesar. Bezonita parametro por permisar demando ne existas o esas nevalida.
+          unknown: La demando ne havas bezonita parametro, inkluzas nesuportita parametro o malformesas.
+        invalid_resource_owner: Provizita resursproprietantidenteso esas nevalida o resursproprietanto ne existas
+        invalid_scope: La demandita skopo esas nevalida, nesavata o malformata.
+        invalid_token:
+          expired: La acesficho expiris
+          revoked: Acesficho deaprobesis
+          unknown: Acesficho esas nevalida
+        resource_owner_authenticator_not_configured: Resursproprietanto falias trovar pro ke Doorkeeper.configure.resource_owner_authenticator ne ajustesis.
+        server_error: Permisservilo trovas neanticipata situeso quo preventas ol finar la demando.
+        temporarily_unavailable: Permisservilo nu ne povas direktar la demando pro provizora eceso o servilmanteno.
+        unauthorized_client: La kliento ne permisesis agar ca demando per ca metodo.
+        unsupported_grant_type: Permisprovizontipo ne suportesas da permisservilo.
+        unsupported_response_type: La permisservilo ne suportas ca responsotipo.
+    flash:
+      applications:
+        create:
+          notice: Apliko kreesis.
+        destroy:
+          notice: Apliko efacesis.
+        update:
+          notice: Apliko novigesis.
+      authorized_applications:
+        destroy:
+          notice: Apliko aprobesis.
+    grouped_scopes:
+      access:
+        read: Lekto-nura aceso
+        read/write: Lekto e skrib-nura aceso
+        write: Skrib-nura aceso
+      title:
+        accounts: Konti
+        admin/accounts: Administrar di konti
+        admin/all: Omna administrofuncioni
+        admin/reports: Administro di raporti
+        all: Omno
+        blocks: Restriktita
+        bookmarks: Libromarki
+        conversations: Konversi
+        crypto: Intersequanta chifro
+        favourites: Favorati
+        filters: Filtrili
+        follow: Relataji
+        follows: Sequati
+        lists: Listi
+        media: Mediatachaji
+        mutes: Silencigati
+        notifications: Avizi
+        push: Pulsavizi
+        reports: Raportigi
+        search: Trovez
+        statuses: Posti
+    layouts:
+      admin:
+        nav:
+          applications: Apliki
+          oauth2_provider: Provizanto di OAuth2
+      application:
+        title: Permiso di OAuth bezonesas
     scopes:
+      admin:read: lektez omna informi di la servilo
+      admin:read:accounts: lektez privata informo di omna konti
+      admin:read:reports: lektez privata informo di omna raportigo e raportigita konti
+      admin:write: modifikez omna informi di la servilo
+      admin:write:accounts: jerez konti
+      admin:write:reports: jerez raportigi
+      crypto: uzas intersequanta chifro
       follow: follow, block, unblock and unfollow accounts
+      push: ganez vua pulsavizi
       read: read your account's data
+      read:accounts: videz kontinformo
+      read:blocks: videz restrikti
+      read:bookmarks: videz vua libromarki
+      read:favourites: videz vua favorati
+      read:filters: videz vua filtrili
+      read:follows: videz vua sequinti
+      read:lists: videz vua listi
+      read:mutes: videz vua silencigi
+      read:notifications: videz vua avizi
+      read:reports: videz vua rapotigi
+      read:search: trovez por vu
+      read:statuses: videz omna posti
       write: post on your behalf
+      write:accounts: modifikez vua porfilo
+      write:blocks: restriktez konti e domeni
+      write:bookmarks: libromarkez posti
+      write:conversations: silencigez e efacez konversi
+      write:favourites: favorata posti
+      write:filters: kreez filtrili
+      write:follows: sequez personi
+      write:lists: kreez listi
+      write:media: chargez medifaili
+      write:mutes: silencigez personi e konversi
+      write:notifications: efacez vua avizi
+      write:reports: raportigez altra omni
+      write:statuses: publikigez posti
diff --git a/config/locales/doorkeeper.ja.yml b/config/locales/doorkeeper.ja.yml
index 8f99abcb1..30c48f0dc 100644
--- a/config/locales/doorkeeper.ja.yml
+++ b/config/locales/doorkeeper.ja.yml
@@ -60,7 +60,7 @@ ja:
       error:
         title: エラーが発生しました
       new:
-        prompt_html: "%{client_name} があなたのアカウントにアクセスする許可を求めています。<strong>心当たりが無い場合はアクセス許可しないでください。</strong>"
+        prompt_html: "%{client_name}があなたのアカウントにアクセスする許可を求めています。<strong>心当たりが無い場合はアクセス許可しないでください。</strong>"
         review_permissions: アクセス許可を確認
         title: 認証が必要です
       show:
@@ -71,7 +71,7 @@ ja:
       confirmations:
         revoke: 本当に取り消しますか?
       index:
-        authorized_at: "%{date} に承認されました"
+        authorized_at: "%{date}に承認されました"
         description_html: これらは、APIを使用してアカウントにアクセスできるアプリケーションです。ここに見覚えのないアプリケーションがある場合、またはアプリケーションの動作がおかしい場合、そのアクセスを取り消すことができます。
         last_used_at: 最終使用日 %{date}
         never_used: 使用されていない
@@ -95,7 +95,7 @@ ja:
           expired: アクセストークンの有効期限が切れています
           revoked: アクセストークンは取り消されています
           unknown: アクセストークンが無効です
-        resource_owner_authenticator_not_configured: Doorkeeper.configure.resource_owner_authenticator が設定されていないため、リソース所有者の検索に失敗しました。
+        resource_owner_authenticator_not_configured: Doorkeeper.configure.resource_owner_authenticatorが設定されていないため、リソース所有者の検索に失敗しました。
         server_error: 認証サーバーに予期せぬ例外が発生したため、リクエストを実行できなくなりました。
         temporarily_unavailable: 現在、認証サーバーに一時的な過負荷が掛かっているか、またはメンテナンス中のため、リクエストを処理できません。
         unauthorized_client: クライアントはこのメゾットで要求を実行する権限がありません。
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 2d475c518..71b07a24d 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -608,6 +608,9 @@ el:
       review: Κατάσταση έγκρισης
       updated_msg: Οι ρυθμίσεις των ετικετών ενημερώθηκαν επιτυχώς
     title: Διαχείριση
+    trends:
+      only_allowed: Μόνο επιτρεπόμενα
+      trending: Δημοφιλή
     warning_presets:
       add_new: Πρόσθεση νέου
       delete: Διαγραφή
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
new file mode 100644
index 000000000..fc7fc9edf
--- /dev/null
+++ b/config/locales/en-GB.yml
@@ -0,0 +1,12 @@
+---
+en-GB:
+  errors:
+    '400': The request you submitted was invalid or malformed.
+    '403': You don't have permission to view this page.
+    '404': The page you are looking for isn't here.
+    '406': This page is not available in the requested format.
+    '410': The page you were looking for doesn't exist here anymore.
+    '422': 
+    '429': Too many requests
+    '500': 
+    '503': The page could not be served due to a temporary server failure.
diff --git a/config/locales/en.yml b/config/locales/en.yml
index a4310ad60..a90409a7c 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -802,6 +802,7 @@ en:
           other: Shared by %{count} people over the last week
         title: Trending links
         usage_comparison: Shared %{today} times today, compared to %{yesterday} yesterday
+      only_allowed: Only allowed
       pending_review: Pending review
       preview_card_providers:
         allowed: Links from this publisher can trend
@@ -843,6 +844,7 @@ en:
           one: Used by one person over the last week
           other: Used by %{count} people over the last week
       title: Trends
+      trending: Trending
     warning_presets:
       add_new: Add new
       delete: Delete
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 3a369f38e..8988ddadc 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -802,6 +802,7 @@ es:
           other: Compartido por %{count} personas durante la última semana
         title: Enlaces en tendencia
         usage_comparison: Compartido %{today} veces hoy, comparado con %{yesterday} ayer
+      only_allowed: Sólo permitido
       pending_review: Revisión pendiente
       preview_card_providers:
         allowed: Los enlaces de este medio pueden ser tendencia
@@ -843,6 +844,7 @@ es:
           one: Usada por una persona durante la última semana
           other: Usada por %{count} personas durante la última semana
       title: Tendencias
+      trending: En tendencia
     warning_presets:
       add_new: Añadir nuevo
       delete: Borrar
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 7b8d3a581..63fce2af6 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -802,6 +802,7 @@ fr:
           other: Partagé par %{count} personnes au cours de la dernière semaine
         title: Liens tendances
         usage_comparison: Partagé %{today} fois aujourd'hui, comparé à %{yesterday} hier
+      only_allowed: Seuls autorisés
       pending_review: En attente de révision
       preview_card_providers:
         allowed: Les liens de cet éditeur peuvent être tendance
@@ -843,6 +844,7 @@ fr:
           one: Utilisé par %{count} personne au cours de la dernière semaine
           other: Utilisé par %{count} personnes au cours de la dernière semaine
       title: Tendances
+      trending: Tendances
     warning_presets:
       add_new: Ajouter un nouveau
       delete: Supprimer
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index 074ca49ba..f46ba4f8f 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -17,7 +17,7 @@ gd:
     contact_missing: Cha deach a shuidheachadh
     contact_unavailable: Chan eil seo iomchaidh
     continue_to_web: Lean air adhart dhan aplacaid-lìn
-    discover_users: Lorg cleachdaichean
+    discover_users: Rùraich cleachdaichean
     documentation: Docamaideadh
     federation_hint_html: Le cunntas air %{instance}, ’s urrainn dhut leantainn air daoine air frithealaiche Mastodon sam bith is a bharrachd.
     get_apps: Feuch aplacaid mobile
@@ -40,7 +40,7 @@ gd:
       other: post
       two: phost
     status_count_before: A dh’fhoillsich
-    tagline: Lean air caraidean ’s lorg feadhainn ùra
+    tagline: Lean air caraidean ’s rùraich feadhainn ùra
     terms: Teirmichean na seirbheise
     unavailable_content: Frithealaichean fo mhaorsainneachd
     unavailable_content_description:
@@ -598,7 +598,7 @@ gd:
     relays:
       add_new: Cuir ath-sheachadan ùr ris
       delete: Sguab às
-      description_html: "’S e frithealaiche eadar-mheadhanach a th’ ann an <strong>ath-sheachadan co-nasgaidh</strong> a nì iomlaid air grunnan mòra de phostaichean poblach eadar na frithealaichean a dh’fho-sgrìobhas ’s a dh’fhoillsicheas dha. <strong>’S urrainn dha cuideachadh a thoirt do dh’fhrithealaichean beaga is meadhanach mòr ach an lorg iad susbaint sa cho-shaoghal</strong> agus às an aonais, bhiodh aig cleachdaichean ionadail leantainn air daoine eile air frithealaichean cèine a làimh."
+      description_html: "’S e frithealaiche eadar-mheadhanach a th’ ann an <strong>ath-sheachadan co-nasgaidh</strong> a nì iomlaid air grunnan mòra de phostaichean poblach eadar na frithealaichean a dh’fho-sgrìobhas ’s a dh’fhoillsicheas dha. <strong>’S urrainn dha cuideachadh a thoirt do dh’fhrithealaichean beaga is meadhanach mòr ach an rùraich iad susbaint sa cho-shaoghal</strong> agus às an aonais, bhiodh aig cleachdaichean ionadail leantainn air daoine eile air frithealaichean cèine a làimh."
       disable: Cuir à comas
       disabled: Chaidh a chur à comas
       enable: Cuir an comas
@@ -714,12 +714,12 @@ gd:
         title: Dealbh suaichnein
       peers_api_enabled:
         desc_html: Ainmean àrainne air an do thachair am frithealaiche seo sa cho-shaoghal
-        title: Foillsich liosta nam frithealaichean a chaidh a lorg san API
+        title: Foillsich liosta nam frithealaichean a chaidh a rùrachadh san API
       preview_sensitive_media:
         desc_html: Ro-sheallaidh ceanglaichean dealbhag fhiù ’s ma chaidh comharradh gu bheil am meadhan frionasach
         title: Seall meadhanan frionasach ann an ro-sheallaidhean OpenGraph
       profile_directory:
-        desc_html: Suidhich gun gabh cleachdaichean a lorg
+        desc_html: Suidhich gun gabh cleachdaichean a rùrachadh
         title: Cuir eòlaire nam pròifil an comas
       registrations:
         closed_message:
@@ -845,7 +845,7 @@ gd:
         description_html: Seo na postaichean air a bheil am frithealaiche agad eòlach ’s a tha ’gan co-roinneadh is ’nan annsachd gu tric aig an àm seo. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh ùr no a thill ach an lorg iad daoine airson leantainn orra. Cha dèid postaichean a shealltainn gu poblach gus an gabh thu ris an ùghdar agus gus an aontaich an t-ùghdar gun dèid an cunntas aca a mholadh do dhaoine eile. ’S urrainn dhut postaichean àraidh a cheadachadh no a dhiùltadh cuideachd.
         disallow: Na ceadaich am post
         disallow_account: Na ceadaich an t-ùghdar
-        not_discoverable: Cha do chuir an t-ùghdar roimhe gun gabh a lorg
+        not_discoverable: Cha do chuir an t-ùghdar roimhe gun gabh a rùrachadh
         shared_by:
           few: Chaidh a cho-roinneadh no ’na annsachd %{friendly_count} tursan
           one: Chaidh a cho-roinneadh no ’na annsachd %{friendly_count} turas
@@ -930,7 +930,7 @@ gd:
     advanced_web_interface_hint: 'Ma tha thu airson leud gu lèir na sgrìn agad a chleachdadh, leigidh an eadar-aghaidh-lìn adhartach leat gun rèitich thu mòran cholbhan eadar-dhealaichte ach am faic thu na thogras tu de dh’fhiosrachadh aig an aon àm: Dachaigh, brathan, loidhne-ama cho-naisgte, na thogras tu de liostaichean is tagaichean hais.'
     animations_and_accessibility: Beòthachaidhean agus so-ruigsinneachd
     confirmation_dialogs: Còmhraidhean dearbhaidh
-    discovery: Lorg
+    discovery: Rùrachadh
     localization:
       body: Tha Mastodon ’ga eadar-theangachadh le saor-thoilich.
       guide_link: https://crowdin.com/project/mastodon
@@ -1056,7 +1056,7 @@ gd:
       username_unavailable: Cha bhi an t-ainm-cleachdaiche agad ri fhaighinn fhathast
   directories:
     directory: Eòlaire nam pròifil
-    explanation: Lorg cleachdaichean stèidhichte air an ùidhean
+    explanation: Rùraich cleachdaichean stèidhichte air an ùidhean
     explore_mastodon: Rùraich %{title}
   disputes:
     strikes:
@@ -1627,7 +1627,7 @@ gd:
         disable: Chan urrainn dhut an cunntas agad a chleachdadh tuilleadh ach mairidh a’ phròifil ’s an dàta eile agad. Faodaidh tu lethbhreac-glèidhidh dhen dàta agad iarraidh, roghainnean a’ chunntais atharrachadh no an cunntas agad a sguabadh às.
         mark_statuses_as_sensitive: Chuir maoir %{instance} comharra na frionasachd ri cuid dhe na postaichean agad. Is ciall dha seo gum feumar gnogag a thoirt air na meadhanan sna postaichean mus faicear ro-shealladh. ’S urrainn dhut fhèin comharra a chur gu bheil meadhan frionasach nuair a sgrìobhas tu post san à ri teachd.
         sensitive: O seo a-mach, thèid comharra na frionasachd a chur ri faidhle meadhain sam bith a luchdaicheas tu suas agus thèid am falach air cùlaibh rabhaidh a ghabhas briogadh air.
-        silence: "’S urrainn dhut an cunntas agad a chleachdadh fhathast ach chan fhaic ach na daoine a tha a’ leantainn ort mu thràth na postaichean agad air an fhrithealaiche seo agus dh’fhaoidte gun dèid d’ às-dhùnadh o iomadh gleus luirg. Gidheadh, faodaidh càch leantainn ort a làimh fhathast."
+        silence: "’S urrainn dhut an cunntas agad a chleachdadh fhathast ach chan fhaic ach na daoine a tha a’ leantainn ort mu thràth na postaichean agad air an fhrithealaiche seo agus dh’fhaoidte gun dèid d’ às-dhùnadh o iomadh gleus rùrachaidh. Gidheadh, faodaidh càch leantainn ort a làimh fhathast."
         suspend: Chan urrainn dhut an cunntas agad a chleachdadh tuilleadh agus chan fhaigh thu grèim air a’ phròifil no air an dàta eile agad. ’S urrainn dhut clàradh a-steach fhathast airson lethbhreac-glèidhidh dhen dàta agad iarraidh mur dèid an dàta a thoirt air falbh an ceann 30 latha gu slàn ach cumaidh sinn cuid dhen dàta bhunasach ach nach seachain thu an cur à rèim.
       reason: 'Adhbhar:'
       statuses: 'Iomradh air postaichean:'
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index c85f89b40..a183c6436 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -802,6 +802,7 @@ gl:
           other: Compartido por %{count} persoas na última semana
         title: Ligazóns en voga
         usage_comparison: Compartido %{today} veces hoxe, comparado con %{yesterday} onte
+      only_allowed: Só as permitidas
       pending_review: Revisión pendente
       preview_card_providers:
         allowed: As ligazóns desta orixe poden estar en voga
@@ -843,6 +844,7 @@ gl:
           one: Utilizado por unha persoa na última semana
           other: Utilizado por %{count} persoas na última semana
       title: Tendencias
+      trending: Tendencias
     warning_presets:
       add_new: Engadir novo
       delete: Eliminar
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 73a63b3de..0a1fd439c 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -804,6 +804,7 @@ hu:
           other: "%{count} ember osztotta meg a múlt héten"
         title: Felkapott hivatkozások
         usage_comparison: "%{today} alkalommal lett ma megosztva, a tegnapi %{yesterday} alkalomhoz képest"
+      only_allowed: Csak engedélyezett
       pending_review: Áttekintésre vár
       preview_card_providers:
         allowed: A közzétevő hivatkozásai felkapottak lehetnek
@@ -845,6 +846,7 @@ hu:
           one: Egy ember használta a múlt héten
           other: "%{count} ember használta a múlt héten"
       title: Trendek
+      trending: Felkapott
     warning_presets:
       add_new: Új hozzáadása
       delete: Törlés
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index 4c10773cb..b12349596 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -8,7 +8,7 @@ hy:
     active_footnote: Ամսեկան ակտիւ օգտատէրեր (MAU)
     administered_by: Ադմինիստրատոր՝
     api: API
-    apps: Բջջային հավելվածներ
+    apps: Բջջային յաւելուածներ
     apps_platforms: Մաստադոնը հասանելի է iOS, Android եւ այլ տարբեր հենքերում
     browse_directory: Պրպտիր օգտատէրերի շտեմարանը եւ գտիր հետաքրքիր մարդկանց
     browse_local_posts: Տես այս հանգոյցի հանրային գրառումների հոսքը
@@ -18,8 +18,8 @@ hy:
     contact_unavailable: Ոչինչ չկա
     discover_users: Գտնել օգտատերներ
     documentation: Փաստաթղթեր
-    federation_hint_html: "«%{instance}»-ում հաշիւ բացելով դուք կը կարողանաք հետեւել մարդկանց Մաստադոնի ցանկացած հանգոյցից և ոչ միայն։"
-    get_apps: Փորձեք բջջային հավելվածը
+    federation_hint_html: "«%{instance}»-ում հաշիւ բացելով դու կը կարողանաս հետեւել մարդկանց Մաստոդոնի ցանկացած հանգոյցից և ոչ միայն։"
+    get_apps: Փորձէք բջջային յաւելուածը
     hosted_on: Մաստոդոնը տեղակայուած է %{domain}ում
     instance_actor_flash: "Այս հաշիւ վիրտուալ դերասան է, օգտագործուում է սպասարկիչը, այլ ոչ անհատ օգտատիրոջը ներկայացնելու, համար։ Օգտագործուում է ֆեդերացիայի նպատակով, ու չպէտք է արգելափակուի, եթէ չէք ցանկանում արգելափակել ողջ հանգոյցը, որի դէպքում պէտք է օգտագործէք տիրոյթի արգելափակումը։ \n"
     learn_more: Իմանալ ավելին
@@ -30,9 +30,9 @@ hy:
     server_stats: Սերվերի վիճակը․
     source_code: Ելատեքստ
     status_count_after:
-      one: ստատուս
+      one: գրառում
       other: ստատուս
-    status_count_before: Ովքեր գրել են՝
+    status_count_before: Որոնք արել են՝
     tagline: Հետեւիր ընկերներիդ եւ գտիր նորերին
     terms: Ծառայութեան պայմանները
     unavailable_content: Մոդերացուող սպասարկիչներ
@@ -47,7 +47,7 @@ hy:
       suspended_title: Կասեցուած սպասարկիչներ
     unavailable_content_html: Մաստոդոնն ընդհանրապէս թոյլատրում է տեսնել բովանդակութիւնը եւ շփուել այլ դաշնեզերքի այլ հանգոյցների հետ։ Սրանք բացառութիւններն են, որոնք կիրառուել են հէնց այս հանգոյցի համար։
     user_count_after:
-      one: օգտատեր
+      one: օգտատէր
       other: օգտատերեր
     user_count_before: Այստեղ են
     what_is_mastodon: Ի՞նչ է Մաստոդոնը
@@ -57,9 +57,9 @@ hy:
     featured_tags_hint: Դու կարող ես ցուցադրել յատուկ պիտակներ, որոնք կը ցուցադրուեն այստեղ։
     follow: Հետևել
     followers:
-      one: Հետևորդ
+      one: Հետեւորդ
       other: Հետևորդներ
-    following: Հետևում եք
+    following: Հետեւած
     instance_actor_flash: Այս հաշիւը վիրտուալ դերասան է, որը ներկայացնում է հանգոյցը, եւ ոչ որեւէ անհատ օգտատիրոջ։ Այն օգտագործուում է ֆեդերացիայի նպատակներով եւ չպէտք է կասեցուի։
     joined: Միացել են %{date}
     last_active: վերջին այցը
@@ -310,9 +310,12 @@ hy:
       updated_msg: Էմոջին թարմացուեց
       upload: Վերբեռնել
     dashboard:
+      active_users: ակտիւ օգտատէրեր
+      new_users: նոր օգտուողներ
       software: Ծրագրային ապահովում
       space: Տարածքի օգտագործում
       title: Գործիքների վահանակ
+      website: Կայք
     domain_allows:
       add_new: Թոյլատրել ֆեդերացիա տիրոյթի հետ
       created_msg: Տիրոյթը յաջողութեամբ թոյլատրուեց ֆեդերացուելու
@@ -348,6 +351,7 @@ hy:
     follow_recommendations:
       language: Լեզուի համար
       status: Կարգավիճակ
+      title: Խորհուրդ ենք տալիս հետեւել
     instances:
       back_to_all: Բոլորը
       back_to_limited: Սահամանփակ
@@ -403,6 +407,8 @@ hy:
       save_and_enable: Պահպանել եւ միացնել
       status: Կարգավիճակ
       title: Վերահեռարձակիչներ
+    report_notes:
+      today_at: Այսօր ժամը %{time}-ին
     reports:
       account:
         notes:
@@ -415,8 +421,10 @@ hy:
       comment:
         none: Ոչ մի
       created_at: Բողոքարկուած
+      delete_and_resolve: Ջնջեք գրառումը
       mark_as_resolved: Նշել որպէս լուծուած
       mark_as_unresolved: Նշել որպէս չլուծուած
+      no_one_assigned: Ոչ ոք
       notes:
         create: Ավելացնել նշում
         delete: Ջնջել
@@ -430,6 +438,7 @@ hy:
       unassign: Չնշանակել
       unresolved: Չլուծուած
       updated_at: Թարմացուած
+      view_profile: Նայել անձնական էջը
     rules:
       add_new: Աւելացնել կանոն
       delete: Ջնջել
@@ -488,6 +497,8 @@ hy:
       destroyed_msg: Կայքի վերբեռնումը բարեյաջող ջնջուեց
     statuses:
       back_to_account: Վերադառնալ անձնական էջ
+      batch:
+        report: Բողոքել
       deleted: Ջնջված է
       media:
         title: Մեդիա
@@ -496,12 +507,33 @@ hy:
     tags:
       review: Վերանայել գրառումը
     title: Ադմինիստարցիա
+    trends:
+      allow: Թոյլատրել
+      approved: Հաստատուած
+      disallow: Արգելուած
+      preview_card_providers:
+        title: Հրապարակողներ
+      rejected: Մերժուած
+      statuses:
+        disallow: Արգելել գրառումը
+        disallow_account: Արգելել հեղինակին
+        title: Թրենդային գրառումներ
+      tags:
+        listable: Կարող է առաջարկուել
+        not_listable: Չի կարող առաջարկուել
+        not_usable: Չի կարող օգտագործուել
+        title: Թրենդային պիտակներ
+        usable: Կարող է օգտագործուել
+      title: Թրենդներ
     warning_presets:
       add_new: Ավելացնել նորը
       delete: Ջնջել
   admin_mailer:
     new_report:
       subject: Նոր բողոք %{instance}ի համար(#%{id})
+    new_trends:
+      new_trending_statuses:
+        title: Թրենդային գրառումներ
   appearance:
     advanced_web_interface: Սյունակավոր ինտերֆեյս
     advanced_web_interface_hint: Եթէ ցանկանում ես օգտագործել էկրանիդ ամբողջ լայնքը, ապա ընդլայնուած վեբ ինտերֆեյսով հնարաւոր է էկրանը բաժանել սիւնակների՝ զուգահեռ տեսնելու տարբեր տիպի ինֆորմացիա՝ տեղական հոսքը, ծանուցումները, ֆեդերացված հոսքը, և ցանկացած թվի ցուցակ ու հեշթեգ։
@@ -548,6 +580,7 @@ hy:
       account_status: Հաշուի կարգավիճակ
       pending: Դիմումը պէտք է քննուի մեր անձնակազմի կողմից, ինչը կարող է մի փոքր ժամանակ խլել։ Դիմումի հաստատուելու դէպքում, կտեղեկացնենք նամակով։
     trouble_logging_in: Մուտք գործելու խնդիրնե՞ր կան։
+    use_security_key: Օգտագործել անվտանգութեան բանալի
   authorize_follow:
     already_following: Դու արդէն հետեւում ես այս հաշուին
     already_requested: Դու արդէն ուղարկել ես հետեւմանն յայտ այս հաշուին
@@ -652,8 +685,10 @@ hy:
     changes_saved_msg: Փոփոխութիւնները յաջող պահուած են
     copy: Պատճենել
     delete: Ջնջել
+    none: Ոչ մի
     order_by: Դասաւորել ըստ
     save_changes: Պահպանել փոփոխութիւնները
+    today: այսօր
   imports:
     errors:
       over_rows_processing_limit: տողերի քանակը աւելին է քան %{count}-ը
@@ -704,6 +739,7 @@ hy:
     past_migrations: Նախոդ միգրացիաները
     proceed_with_move: Տեղափոխել հետեւորդներին
     redirecting_to: Քո հաշիւը վերահասցեաորում է %{acct}-ին
+    set_redirect: Կարգաւորել վերահասցէաւորումը
     warning:
       followers: Այս քայլով քո բոլոր հետեւորդներին այս հաշուից կը տեղափոխես դէպի նորը
       only_redirect_html: Որպէս այլընտրանք, կարող ես ուղղակի <a href="%{path}">վերահասցէաւորել քո հաշիւը</a>
@@ -711,8 +747,12 @@ hy:
   moderation:
     title: Մոդերացիա
   notification_mailer:
+    admin:
+      sign_up:
+        subject: "%{name}-ը գրանցուած է"
     digest:
       action: Դիտել բոլոր ծանուցումները
+      mention: "%{name} նշել է քեզ՝"
       title: Երբ բացակայ էիր...
     favourite:
       body: Քո գրառումը հաւանել է %{name}-ը։
@@ -737,6 +777,8 @@ hy:
       title: Նոր տարածում
     status:
       subject: "%{name}-ը հենց նոր գրառում արեց"
+    update:
+      subject: "%{name}-ը փոխել է գրառումը"
   notifications:
     email_events_hint: Ընտրիր իրադարձութիւնները, որոնց վերաբերեալ ցանկանում ես ստանալ ծանուցումներ․
     other_settings: Ծանուցումների այլ կարգաւորումներ
@@ -868,6 +910,7 @@ hy:
         one: "%{count} վիդեո"
         other: "%{count} վիդեո"
     content_warning: Նախազգուշացում։ %{warning}
+    edited_at_html: Խմբագրուած՝ %{date}
     open_in_web: Բացել վէբում
     over_character_limit: "%{max} նիշի սահմանը գերազանցուած է"
     poll:
@@ -900,7 +943,7 @@ hy:
       '2629746': 1 ամիս
       '31556952': 1 տարի
       '5259492': 2 ամիս
-      '604800': 1 week
+      '604800': 1 շաբաթ
       '63113904': 2 տարի
       '7889238': 3 ամիս
   stream_entries:
@@ -1000,6 +1043,7 @@ hy:
     formats:
       default: "%b %d, %Y, %H:%M"
       month: "%b %Y"
+      time: "%H:%M"
   two_factor_authentication:
     add: Ավելացնել
     disable: Անջատել
@@ -1010,16 +1054,22 @@ hy:
     generate_recovery_codes: Ստեղծել վերականգնման կոդեր
     lost_recovery_codes: Վերականգնման կոդերը հնարաւորութիւն են տալիս մուտք գործել հաշիւ՝ հեռախօսի կորստի դէպքում։ Եթէ կորցրել ես վերականգնման կոդերը, այստեղ կարող ես ստեղծել նորերը։ Նախկին վերականգման կոդերը կչեղարկվեն։
     methods: Երկքայլ նոյնականացում տարբերակներ
-    otp: Նոյնականացման հավելված
+    otp: Նոյնականացման յաւելուած
     recovery_codes: Վերականգնման կոդեր
     recovery_codes_regenerated: Վերականգման կոդերը հաջողութեամբ ստեղծուել են
     webauthn: Անվտանգութեան բանալիներ
   user_mailer:
+    suspicious_sign_in:
+      title: Նոր մուտք
     warning:
+      categories:
+        spam: Սպամ
+      reason: Պատճառ՝
       subject:
         disable: Քո %{acct} հաշիւը սառեցուել է
         none: Նախազգուշացուեմ %{acct}-ին
       title:
+        delete_statuses: Գրառումները ջնջուած են
         disable: Հաշիւը սառեցուած է
         none: Զգուշացում
         silence: Հաշիւը սահմանափակուած է
@@ -1030,9 +1080,9 @@ hy:
       final_step: 'Սկսիր գրել։ Անգամ առանց հետեւորդների քո հանրային գրառումներ կարող են երևալ ուրիշների մօտ, օրինակ՝ տեղական հոսում կամ հեշթեգերում։ Թէ ցանկանաս, կարող ես յայտնել քո մասին օգտագործելով #եսնորեկեմ հեշթեգը։'
       review_preferences_action: Փոփոխել կարգաւորումները
       subject: Բարի գալուստ Մաստոդոն
-      tip_federated_timeline: Դաշնային հոսքում երևում է ամբողջ Մաստոդոնի ցանցը։ Բայց այն ներառում է միայն այն օգտատերերին որոնց բաժանորդագրուած են ձեր հարևաններ, այդ պատճառով այն կարող է լինել ոչ ամբողջական։
+      tip_federated_timeline: Դաշնային հոսքում երևում է ամբողջ Մաստոդոնի ցանցը։ Բայց այն ներառում է միայն այն օգտատէրերին որոնց բաժանորդագրուած են ձեր հարևաններ, այդ պատճառով այն կարող է լինել ոչ ամբողջական։
       tip_following: Դու հետեւում էս քո հանգոյցի ադմին(ներ)ին լռելայն։ Այլ հետաքրքիր անձանց գտնելու համար՝ թերթիր տեղական և դաշնային հոսքերը։
-      tip_local_timeline: Տեղական հոսքում երևում են %{instance} հանգոյցի օգտատերի գրառումները։ Նրանք քո հանգոյցի հարևաններն են։
+      tip_local_timeline: Տեղական հոսքում երևում են %{instance} հանգոյցի մարդկանց գրառումները։ Նրանք քո հանգոյցի հարևաններն են։
       tips: Հուշումներ
       title: Բարի գալուստ նաւամատոյց, %{name}
   users:
diff --git a/config/locales/id.yml b/config/locales/id.yml
index b63807705..d6d00581e 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -785,6 +785,7 @@ id:
           other: Dibagikan oleh %{count} orang selama seminggu terakhir
         title: Tautan sedang tren
         usage_comparison: Dibagikan %{today} kali hari ini, dibandingkan %{yesterday} kemarin
+      only_allowed: Yang diizinkan saja
       pending_review: Tinjauan tertunda
       preview_card_providers:
         allowed: Tautan dari penerbit ini dapat menjadi tren
@@ -824,6 +825,7 @@ id:
         used_by_over_week:
           other: Digunakan oleh %{count} orang selama seminggu terakhir
       title: Tren
+      trending: Sedang tren
     warning_presets:
       add_new: Tambah baru
       delete: Hapus
diff --git a/config/locales/io.yml b/config/locales/io.yml
index f2fa8ce07..b6f7937c3 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -45,6 +45,9 @@ io:
         title: Extended site description
       site_title: Site title
       title: Site Settings
+    trends:
+      only_allowed: Nur permisato
+      trending: Tendenco
   application_mailer:
     settings: 'Chanjar la retpost-mesajala preferi: %{link}'
     view: 'Vidar:'
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 052d652bf..3e3ca0ed5 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -802,6 +802,7 @@ is:
           other: Deilt af %{count} aðilum síðustu vikuna
         title: Vinsælir tenglar
         usage_comparison: Deilt %{today} sinnum í dag, samanborið við %{yesterday} í gær
+      only_allowed: Aðeins leyfð
       pending_review: Bíður eftir yfirlestri
       preview_card_providers:
         allowed: Tenglar frá þessum útgefanda geta verið með í vinsældum
@@ -843,6 +844,7 @@ is:
           one: Notað af einum aðila síðustu vikuna
           other: Notað af %{count} aðilum síðustu vikuna
       title: Tilhneiging
+      trending: Vinsælt
     warning_presets:
       add_new: Bæta við nýju
       delete: Eyða
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 3ab203c39..c0e802f84 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -27,7 +27,7 @@ it:
       È utilizzato per scopi di federazione e non dovrebbe essere bloccato a meno che non si voglia bloccare l'intera istanza: in questo caso si dovrebbe utilizzare un blocco di dominio.
     learn_more: Scopri altro
     logged_in_as_html: Sei correntemente connesso come %{username}.
-    logout_before_registering: Hai giù acceduto.
+    logout_before_registering: Hai già effettuato l'accesso.
     privacy_policy: Politica della privacy
     rules: Regole del server
     rules_html: 'Di seguito è riportato un riassunto delle regole che devi seguire se vuoi avere un account su questo server di Mastodon:'
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 87d6d33e9..13b1b149f 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -2,7 +2,7 @@
 ja:
   about:
     about_hashtag_html: ハッシュタグ <strong>#%{hashtag}</strong> の公開投稿です。どこか連合に参加しているSNS上にアカウントを作れば、会話に参加することができます。
-    about_mastodon_html: Mastodon は、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。
+    about_mastodon_html: Mastodonは、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。
     about_this: 詳細情報
     active_count_after: 人がアクティブ
     active_footnote: 月間アクティブユーザー数 (MAU)
@@ -19,12 +19,12 @@ ja:
     continue_to_web: アプリで続ける
     discover_users: ユーザーを見つける
     documentation: ドキュメント
-    federation_hint_html: "%{instance} のアカウントひとつでどんなMastodon互換サーバーのユーザーでもフォローできるでしょう。"
+    federation_hint_html: "%{instance}のアカウントひとつでどんなMastodon互換サーバーのユーザーでもフォローできるでしょう。"
     get_apps: モバイルアプリを試す
     hosted_on: Mastodon hosted on %{domain}
     instance_actor_flash: "このアカウントはサーバーそのものを示す仮想的なもので、特定のユーザーを示すものではありません。これはサーバーの連合のために使用されます。サーバー全体をブロックするときは、このアカウントをブロックせずに、ドメインブロックを使用してください。 \n"
     learn_more: もっと詳しく
-    logged_in_as_html: "%{username} としてログインしています。"
+    logged_in_as_html: "%{username}としてログインしています。"
     logout_before_registering: 既にログインしています。
     privacy_policy: プライバシーポリシー
     rules: サーバーのルール
@@ -47,13 +47,13 @@ ja:
       silenced_title: サイレンス済みのサーバー
       suspended: 'これらのサーバーからのデータは処理されず、保存や変換もされません。該当するユーザーとの交流もできません:'
       suspended_title: 停止済みのサーバー
-    unavailable_content_html: 通常 Mastodon では連合先のどんなサーバーのユーザーとでもやりとりできます。ただし次のサーバーには例外が設定されています。
+    unavailable_content_html: 通常Mastodonでは連合先のどんなサーバーのユーザーとでもやりとりできます。ただし次のサーバーには例外が設定されています。
     user_count_after:
       other: 人
     user_count_before: ユーザー数
-    what_is_mastodon: Mastodon とは?
+    what_is_mastodon: Mastodonとは?
   accounts:
-    choices_html: "%{name} によるおすすめ:"
+    choices_html: "%{name}によるおすすめ:"
     endorsements_hint: あなたがフォローしている中でおすすめしたい人をここで紹介できます。
     featured_tags_hint: 特定のハッシュタグをここに表示できます。
     follow: フォロー
@@ -61,15 +61,15 @@ ja:
       other: フォロワー
     following: フォロー中
     instance_actor_flash: このアカウントは、個々のユーザーではなく、サーバー自体を表すために使用される仮想のユーザーです。 連合のために使用されるため、停止しないで下さい。
-    joined: "%{date} に登録"
+    joined: "%{date}に登録"
     last_active: 最後の活動
-    link_verified_on: このリンクの所有権は %{date} に確認されました
+    link_verified_on: このリンクの所有権は%{date}に確認されました
     media: メディア
-    moved_html: "%{name} さんは引っ越しました %{new_profile_link}:"
+    moved_html: "%{name}さんは%{new_profile_link}に引っ越しました:"
     network_hidden: この情報は利用できません
     nothing_here: 何もありません!
-    people_followed_by: "%{name} さんがフォロー中のアカウント"
-    people_who_follow: "%{name} さんをフォロー中のアカウント"
+    people_followed_by: "%{name}さんがフォロー中のアカウント"
+    people_who_follow: "%{name}さんをフォロー中のアカウント"
     pin_errors:
       following: おすすめしたい人はあなたが既にフォローしている必要があります
     posts:
@@ -94,7 +94,7 @@ ja:
     accounts:
       add_email_domain_block: メールドメインブロックに追加
       approve: 承認
-      approved_msg: "%{username} の登録申請を承認しました"
+      approved_msg: "%{username}さんの登録申請を承認しました"
       are_you_sure: 本当に実行しますか?
       avatar: アイコン
       by_domain: ドメイン
@@ -104,7 +104,7 @@ ja:
         label: メールアドレスを変更
         new_email: 新しいメールアドレス
         submit: メールアドレスの変更
-        title: "%{username} さんのメールアドレスを変更"
+        title: "%{username}さんのメールアドレスを変更"
       confirm: 確認
       confirmed: 確認済み
       confirming: 確認中
@@ -112,10 +112,10 @@ ja:
       delete: データを削除する
       deleted: 削除済み
       demote: 降格
-      destroyed_msg: "%{username} のデータは完全に削除されるよう登録されました"
+      destroyed_msg: "%{username}さんのデータは完全に削除されるよう登録されました"
       disable: 無効化
       disable_sign_in_token_auth: メールトークン認証を無効にする
-      disable_two_factor_authentication: 二段階認証を無効にする
+      disable_two_factor_authentication: 二要素認証を無効にする
       disabled: 無効
       display_name: 表示名
       domain: ドメイン
@@ -125,7 +125,7 @@ ja:
       enable: 有効化
       enable_sign_in_token_auth: メールトークン認証を有効にする
       enabled: 有効
-      enabled_msg: "%{username} の無効化を解除しました"
+      enabled_msg: "%{username}の無効化を解除しました"
       followers: フォロワー数
       follows: フォロー数
       header: ヘッダー
@@ -166,13 +166,13 @@ ja:
       public: パブリック
       push_subscription_expires: PuSH購読期限
       redownload: プロフィールを更新
-      redownloaded_msg: "%{username} のプロフィールを正常に更新しました"
+      redownloaded_msg: "%{username}のプロフィールを正常に更新しました"
       reject: 却下
-      rejected_msg: "%{username} の登録申請を却下しました"
+      rejected_msg: "%{username}さんの登録申請を却下しました"
       remove_avatar: アイコンを削除
       remove_header: ヘッダーを削除
-      removed_avatar_msg: "%{username} のアバター画像を削除しました"
-      removed_header_msg: "%{username} のヘッダー画像を削除しました"
+      removed_avatar_msg: "%{username}さんのアバター画像を削除しました"
+      removed_header_msg: "%{username}さんのヘッダー画像を削除しました"
       resend_confirmation:
         already_confirmed: メールアドレスは確認済みです
         send: 確認メールを再送
@@ -188,10 +188,10 @@ ja:
         user: ユーザー
       search: 検索
       search_same_email_domain: 同じドメインのメールアドレスを使用しているユーザー
-      search_same_ip: 同じ IP のユーザーを検索
+      search_same_ip: 同じIPのユーザーを検索
       security_measures:
         only_password: パスワードのみ
-        password_and_2fa: パスワードと 2FA
+        password_and_2fa: パスワードと二要素認証
       sensitive: 閲覧注意
       sensitized: 閲覧注意としてマーク済み
       shared_inbox_url: Shared inbox URL
@@ -206,17 +206,17 @@ ja:
       suspend: サスペンド
       suspended: 停止済み
       suspension_irreversible: このアカウントのデータは削除され元に戻せなくなります。後日アカウントの凍結を解除することはできますがデータは元に戻せません。
-      suspension_reversible_hint_html: アカウントは停止されており、データは %{date} に完全に削除されます。それまではアカウントを元に戻すことができます。今すぐ完全に削除したい場合は以下から行うことができます。
+      suspension_reversible_hint_html: アカウントは停止されており、データは%{date}に完全に削除されます。それまではアカウントを元に戻すことができます。今すぐ完全に削除したい場合は以下から行うことができます。
       title: アカウント
       unblock_email: メールアドレスのブロックを解除
-      unblocked_email_msg: "%{username} のメールアドレスのブロックを解除しました"
+      unblocked_email_msg: "%{username}さんのメールアドレスのブロックを解除しました"
       unconfirmed_email: 確認待ちのメールアドレス
       undo_sensitized: 閲覧注意から戻す
       undo_silenced: サイレンスから戻す
       undo_suspension: 停止から戻す
-      unsilenced_msg: "%{username} のサイレンス解除に成功しました"
+      unsilenced_msg: "%{username}さんのサイレンス解除に成功しました"
       unsubscribe: 購読の解除
-      unsuspended_msg: "%{username} の無効化を解除しました"
+      unsuspended_msg: "%{username}さんの無効化を解除しました"
       username: ユーザー名
       view_domain: ドメインの概要を表示
       warn: 警告
@@ -247,12 +247,12 @@ ja:
         destroy_ip_block: IPルールを削除
         destroy_status: 投稿を削除
         destroy_unavailable_domain: 配送できないドメインを削除
-        disable_2fa_user: 二段階認証を無効化
+        disable_2fa_user: 二要素認証を無効化
         disable_custom_emoji: カスタム絵文字を無効化
-        disable_sign_in_token_auth_user: ユーザーのE-mail トークン認証を無効にする
+        disable_sign_in_token_auth_user: ユーザーのメールトークン認証を無効にする
         disable_user: ユーザーを無効化
         enable_custom_emoji: カスタム絵文字を有効化
-        enable_sign_in_token_auth_user: E-mail トークンのユーザー認証を有効にする
+        enable_sign_in_token_auth_user: メールトークンのユーザー認証を有効にする
         enable_user: ユーザーを有効化
         memorialize_account: 追悼アカウント化
         promote_user: ユーザーを昇格
@@ -275,56 +275,56 @@ ja:
         update_domain_block: ドメインブロックを更新
         update_status: 投稿を更新
       actions:
-        approve_appeal_html: "%{name} さんが %{target} からの抗議を承認しました"
-        approve_user_html: "%{target} から登録された %{name} さんを承認しました"
-        assigned_to_self_report_html: "%{name} さんが通報 %{target} を自身の担当に割り当てました"
-        change_email_user_html: "%{name} さんが %{target} さんのメールアドレスを変更しました"
-        confirm_user_html: "%{name} さんが %{target} さんのメールアドレスを確認済みにしました"
-        create_account_warning_html: "%{name} さんが %{target} さんに警告メールを送信しました"
-        create_announcement_html: "%{name} さんが新しいお知らせ %{target} を作成しました"
-        create_custom_emoji_html: "%{name} さんがカスタム絵文字 %{target} を追加しました"
-        create_domain_allow_html: "%{name} さんが %{target} の連合を許可しました"
-        create_domain_block_html: "%{name} さんがドメイン %{target} をブロックしました"
-        create_email_domain_block_html: "%{name} さんが %{target} をメールドメインブロックに追加しました"
-        create_ip_block_html: "%{name} さんが IP %{target} のルールを作成しました"
-        create_unavailable_domain_html: "%{name} がドメイン %{target} への配送を停止しました"
-        demote_user_html: "%{name} さんが %{target} さんを降格しました"
-        destroy_announcement_html: "%{name} さんがお知らせ %{target} を削除しました"
-        destroy_custom_emoji_html: "%{name} さんがカスタム絵文字 %{target} を削除しました"
-        destroy_domain_allow_html: "%{name} さんが %{target} の連合許可を外しました"
-        destroy_domain_block_html: "%{name} さんがドメイン %{target} のブロックを外しました"
-        destroy_email_domain_block_html: "%{name} さんが %{target} をメールドメインブロックから外しました"
-        destroy_instance_html: "%{name} さんが %{target} をドメインブロックしました"
-        destroy_ip_block_html: "%{name} さんが IP %{target} のルールを削除しました"
-        destroy_status_html: "%{name} さんが %{target} さんの投稿を削除しました"
-        destroy_unavailable_domain_html: "%{name} がドメイン %{target} への配送を再開しました"
-        disable_2fa_user_html: "%{name} さんが %{target} さんの二段階認証を無効化しました"
-        disable_custom_emoji_html: "%{name} さんがカスタム絵文字 %{target} を無効化しました"
-        disable_sign_in_token_auth_user_html: "%{name} が %{target} のメールトークン認証を無効にしました"
-        disable_user_html: "%{name} さんが %{target} さんのログインを無効化しました"
-        enable_custom_emoji_html: "%{name} さんがカスタム絵文字 %{target} を有効化しました"
-        enable_sign_in_token_auth_user_html: "%{name} が %{target} のメールトークン認証を有効にしました"
-        enable_user_html: "%{name} さんが %{target} さんのログインを有効化しました"
-        memorialize_account_html: "%{name} さんが %{target} さんを追悼アカウントページに登録しました"
-        promote_user_html: "%{name} さんが %{target} さんを昇格しました"
-        reject_appeal_html: "%{name} さんが %{target} からの抗議を却下しました"
-        reject_user_html: "%{target} から登録された %{name} さんを拒否しました"
-        remove_avatar_user_html: "%{name} さんが %{target} さんのアイコンを削除しました"
-        reopen_report_html: "%{name} さんが通報 %{target} を未解決に戻しました"
-        reset_password_user_html: "%{name} さんが %{target} さんのパスワードをリセットしました"
-        resolve_report_html: "%{name} さんが通報 %{target} を解決済みにしました"
-        sensitive_account_html: "%{name} さんが %{target} さんのメディアを閲覧注意にマークしました"
-        silence_account_html: "%{name} さんが %{target} さんをサイレンスにしました"
-        suspend_account_html: "%{name} さんが %{target} さんを停止しました"
-        unassigned_report_html: "%{name} さんが通報 %{target} の担当を外しました"
-        unblock_email_account_html: "%{name} さんが %{target} のドメインブロックを解除しました"
-        unsensitive_account_html: "%{name} さんが %{target} さんのメディアの閲覧注意を解除しました"
-        unsilence_account_html: "%{name} さんが %{target} さんのサイレンスを解除しました"
-        unsuspend_account_html: "%{name} さんが %{target} さんの停止を解除しました"
-        update_announcement_html: "%{name} さんがお知らせ %{target} を更新しました"
-        update_custom_emoji_html: "%{name} さんがカスタム絵文字 %{target} を更新しました"
-        update_domain_block_html: "%{name} が %{target} のドメインブロックを更新しました"
-        update_status_html: "%{name} さんが %{target} さんの投稿を更新しました"
+        approve_appeal_html: "%{name}さんが%{target}さんからの抗議を承認しました"
+        approve_user_html: "%{target}から登録された%{name}さんを承認しました"
+        assigned_to_self_report_html: "%{name}さんが通報 %{target}を自身の担当に割り当てました"
+        change_email_user_html: "%{name}さんが%{target}さんのメールアドレスを変更しました"
+        confirm_user_html: "%{name}さんが%{target}さんのメールアドレスを確認済みにしました"
+        create_account_warning_html: "%{name}さんが%{target}さんに警告メールを送信しました"
+        create_announcement_html: "%{name}さんが新しいお知らせ %{target}を作成しました"
+        create_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を追加しました"
+        create_domain_allow_html: "%{name}さんが%{target}の連合を許可しました"
+        create_domain_block_html: "%{name}さんがドメイン %{target}をブロックしました"
+        create_email_domain_block_html: "%{name}さんが%{target}をメールドメインブロックに追加しました"
+        create_ip_block_html: "%{name}さんがIP %{target}のルールを作成しました"
+        create_unavailable_domain_html: "%{name}がドメイン %{target}への配送を停止しました"
+        demote_user_html: "%{name}さんが%{target}さんを降格しました"
+        destroy_announcement_html: "%{name}さんがお知らせ %{target}を削除しました"
+        destroy_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を削除しました"
+        destroy_domain_allow_html: "%{name}さんが%{target}の連合許可を外しました"
+        destroy_domain_block_html: "%{name}さんがドメイン %{target}のブロックを外しました"
+        destroy_email_domain_block_html: "%{name}さんが%{target}をメールドメインブロックから外しました"
+        destroy_instance_html: "%{name}さんがドメイン %{target}をブロックしました"
+        destroy_ip_block_html: "%{name}さんが IP %{target}のルールを削除しました"
+        destroy_status_html: "%{name}さんが%{target}さんの投稿を削除しました"
+        destroy_unavailable_domain_html: "%{name}がドメイン %{target}への配送を再開しました"
+        disable_2fa_user_html: "%{name}さんが%{target}さんの二要素認証を無効化しました"
+        disable_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を無効化しました"
+        disable_sign_in_token_auth_user_html: "%{name}さんが%{target}さんのメールトークン認証を無効にしました"
+        disable_user_html: "%{name}さんが%{target}さんのログインを無効化しました"
+        enable_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を有効化しました"
+        enable_sign_in_token_auth_user_html: "%{name}さんが%{target}さんのメールトークン認証を有効にしました"
+        enable_user_html: "%{name}さんが%{target}さんのログインを有効化しました"
+        memorialize_account_html: "%{name}さんが%{target}さんを追悼アカウントページに登録しました"
+        promote_user_html: "%{name}さんが%{target}さんを昇格しました"
+        reject_appeal_html: "%{name}さんが%{target}からの抗議を却下しました"
+        reject_user_html: "%{target}から登録された%{name}さんを拒否しました"
+        remove_avatar_user_html: "%{name}さんが%{target}さんのアイコンを削除しました"
+        reopen_report_html: "%{name}さんが通報 %{target}を未解決に戻しました"
+        reset_password_user_html: "%{name}さんが%{target}さんのパスワードをリセットしました"
+        resolve_report_html: "%{name}さんが通報 %{target}を解決済みにしました"
+        sensitive_account_html: "%{name}さんが%{target}さんのメディアを閲覧注意にマークしました"
+        silence_account_html: "%{name}さんが%{target}さんをサイレンスにしました"
+        suspend_account_html: "%{name}さんが%{target}さんを停止しました"
+        unassigned_report_html: "%{name}さんが通報 %{target}の担当を外しました"
+        unblock_email_account_html: "%{name}さんがドメイン %{target}のブロックを解除しました"
+        unsensitive_account_html: "%{name}さんが%{target}さんのメディアの閲覧注意を解除しました"
+        unsilence_account_html: "%{name}さんが%{target}さんのサイレンスを解除しました"
+        unsuspend_account_html: "%{name}さんが%{target}さんの停止を解除しました"
+        update_announcement_html: "%{name}さんがお知らせ %{target}を更新しました"
+        update_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を更新しました"
+        update_domain_block_html: "%{name}さんが%{target}のドメインブロックを更新しました"
+        update_status_html: "%{name}さんが%{target}さんの投稿を更新しました"
       deleted_status: "(削除済)"
       empty: ログが見つかりませんでした
       filter_by_action: アクションでフィルター
@@ -341,7 +341,7 @@ ja:
         title: お知らせを追加
       publish: 公開する
       published_msg: お知らせを掲載しました
-      scheduled_for: "%{time} に予約"
+      scheduled_for: "%{time}に予約"
       scheduled_msg: お知らせの掲載を予約しました
       title: お知らせ
       unpublish: 非公開にする
@@ -387,13 +387,13 @@ ja:
       new_users: 新規ユーザー
       opened_reports: 新規通報
       pending_appeals_html:
-        other: 保留中の抗議 <strong>%{count}</strong> 件
+        other: 保留中の抗議 <strong>%{count}</strong>件
       pending_reports_html:
-        other: 保留中の通報 <strong>%{count}</strong> 件
+        other: 保留中の通報 <strong>%{count}</strong>件
       pending_tags_html:
-        other: 保留中のハッシュタグ <strong>%{count}</strong> 件
+        other: 保留中のハッシュタグ <strong>%{count}</strong>件
       pending_users_html:
-        other: 保留中のユーザー <strong>%{count}</strong> 件
+        other: 保留中のユーザー <strong>%{count}</strong>件
       resolved_reports: 解決済みの通報
       software: ソフトウェア
       sources: サインアップソース
@@ -455,7 +455,7 @@ ja:
         title: 新規メールドメインブロック
       no_email_domain_block_selected: 何も選択されていないためメールドメインブロックを変更しませんでした
       resolved_dns_records_hint_html: ドメイン名はDNSでMXドメインに名前解決され、最終的にメールを受け付ける役割を担います。目に見えるドメイン名が異なっていても、同じMXドメインを使用するメールアドレスからのアカウント登録がブロックされます。<strong>主要なメールプロバイダーをブロックしないように注意して下さい。</strong>
-      resolved_through_html: "%{domain} を通して解決しました"
+      resolved_through_html: "%{domain}を通して解決しました"
       title: メールドメインブロック
     follow_recommendations:
       description_html: "<strong>おすすめフォローは、新規ユーザーが興味のあるコンテンツをすばやく見つけるのに役立ちます。</strong>ユーザーが他のユーザーとの交流を十分にしていない場合、パーソナライズされたおすすめフォローを生成する代わりに、これらのアカウントが表示されます。最近のエンゲージメントが最も高いアカウントと、特定の言語のローカルフォロワー数が最も多いアカウントを組み合わせて、毎日再計算されます。"
@@ -467,7 +467,7 @@ ja:
       unsuppress: おすすめフォローを復元
     instances:
       availability:
-        failure_threshold_reached: "%{date} に失敗のしきい値に達しました。"
+        failure_threshold_reached: "%{date}に失敗のしきい値に達しました。"
         failures_recorded:
           other: "%{count}日間試行に失敗しました。"
         no_failures_recorded: 失敗は記録されていません。
@@ -505,8 +505,8 @@ ja:
         unavailable: 配送不可
       delivery_available: 配送可能
       delivery_error_days: 配送エラー発生日
-      delivery_error_hint: "%{count} 日間配送ができない場合は、自動的に配送不可としてマークされます。"
-      destroyed_msg: "%{domain} からのデータは、すぐに削除されるように、キューに追加されました。"
+      delivery_error_hint: "%{count}日間配送ができない場合は、自動的に配送不可としてマークされます。"
+      destroyed_msg: "%{domain}からのデータは、すぐに削除されるように、キューに追加されました。"
       empty: ドメインが見つかりませんでした。
       known_accounts:
         other: 既知のアカウント数 %{count}
@@ -538,7 +538,7 @@ ja:
       delete: 削除
       expires_in:
         '1209600': 2週間
-        '15778476': 6ヶ月
+        '15778476': 半年
         '2629746': 1ヶ月
         '31556952': 1年
         '86400': 1日
@@ -572,7 +572,7 @@ ja:
     reports:
       account:
         notes:
-          other: "%{count} 件のメモ"
+          other: "%{count}件のメモ"
       action_log: 監査ログ
       action_taken_by: 通報処理者
       actions:
@@ -582,7 +582,7 @@ ja:
         resolve_description_html: 報告されたアカウントに対していかなる措置も取られず、ストライクも記録されず、報告は終了します。
         silence_description_html: 既にフォローしている人、または自分で参照した人にのみ表示されるため、プロフィールが届く範囲が大きく制限されます。いつでも元に戻すことができます。
         suspend_description_html: プロフィールとすべてのコンテンツは、最終的に削除されるまでアクセスできなくなります。アカウントとのやり取りは不可能です。30日以内に取り消し可能です。
-      actions_description_html: このレポートを解決するために取るアクションを決定します。 報告されたアカウントに対して懲罰的な措置を取った場合、メール通知が送信されます <strong>スパム</strong> カテゴリが選択されている場合を除きます。
+      actions_description_html: このレポートを解決するために取るアクションを決定します。 報告されたアカウントに対して懲罰的な措置を取った場合、メール通知が送信されますが<strong>スパム</strong>カテゴリが選択されている場合を除きます。
       add_to_report: 通報にさらに追加
       are_you_sure: 本当に実行しますか?
       assign_to_self: 担当になる
@@ -592,11 +592,11 @@ ja:
       category_description_html: 選択した理由は通報されたアカウントへの連絡時に引用されます
       comment:
         none: なし
-      comment_description_html: "%{name} からの詳細情報:"
+      comment_description_html: "%{name}からの詳細情報:"
       created_at: 通報日時
       delete_and_resolve: 投稿を削除
       forwarded: 転送済み
-      forwarded_to: "%{domain} に転送されました"
+      forwarded_to: "%{domain}に転送されました"
       mark_as_resolved: 解決済みとしてマーク
       mark_as_sensitive: 閲覧注意にする
       mark_as_unresolved: 未解決に戻す
@@ -609,9 +609,9 @@ ja:
         placeholder: どのような措置が取られたか、または関連する更新を記述してください…
         title: メモ
       notes_description_html: 他のモデレーターと将来の自分にメモを残してください
-      remote_user_placeholder: "%{instance} からのリモートユーザー"
+      remote_user_placeholder: "%{instance}からのリモートユーザー"
       reopen: 未解決に戻す
-      report: 通報#%{id}
+      report: '通報 #%{id}'
       reported_account: 報告対象アカウント
       reported_by: 報告者
       resolved: 解決済み
@@ -703,7 +703,7 @@ ja:
         desc_html: あなたのサーバーにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます
         title: カスタム詳細説明
       site_short_description:
-        desc_html: サイドバーと meta タグに表示されます。Mastodon とは何か、そしてこのサーバーの特別な何かを1段落で記述してください。空欄の場合、サーバーの説明が使用されます。
+        desc_html: サイドバーとmetaタグに表示されます。Mastodonとは何か、そしてこのサーバーの特別な何かを1段落で記述してください。空欄の場合、サーバーの説明が使用されます。
         title: 短いサーバーの説明
       site_terms:
         desc_html: 独自のプライバシーポリシーや利用規約、その他の法的根拠を記述できます。HTMLタグが使えます
@@ -713,7 +713,7 @@ ja:
         desc_html: OpenGraphとAPIによるプレビューに使用されます。サイズは1200×630px推奨です
         title: サーバーのサムネイル
       timeline_preview:
-        desc_html: ランディングページに公開タイムラインへのリンクを表示し、認証なしでの公開タイムラインへの API アクセスを許可します
+        desc_html: ランディングページに公開タイムラインへのリンクを表示し、認証なしでの公開タイムラインへのAPIアクセスを許可します
         title: 公開タイムラインへの未認証のアクセスを許可する
       title: サイト設定
       trendable_by_default:
@@ -739,13 +739,13 @@ ja:
       with_media: メディアあり
     strikes:
       actions:
-        delete_statuses: "%{name} さんが %{target} さんの投稿を削除しました"
+        delete_statuses: "%{name}さんが%{target}さんの投稿を削除しました"
         disable: "%{name}さんが%{target}さんを凍結しました"
-        mark_statuses_as_sensitive: "%{name} さんが %{target} さんの投稿を閲覧注意としてマークしました"
-        none: "%{name} が %{target} に警告を送信しました"
-        sensitive: "%{name} さんが %{target} さんのアカウントを閲覧注意としてマークしました"
+        mark_statuses_as_sensitive: "%{name}さんが%{target}さんの投稿を閲覧注意としてマークしました"
+        none: "%{name}さんが%{target}さんに警告を送信しました"
+        sensitive: "%{name}さんが%{target}さんのアカウントを閲覧注意としてマークしました"
         silence: "%{name}さんが%{target}さんを制限しました"
-        suspend: "%{name} さんが %{target} さんのアカウントを停止しました"
+        suspend: "%{name}さんが%{target}さんのアカウントを停止しました"
       appeal_approved: 抗議済み
       appeal_pending: 保留中の抗議
     system_checks:
@@ -755,12 +755,12 @@ ja:
         message_html: Elasticsearchに接続できませんでした。Elasticsearchが実行されていることを確認するか、全文検索を無効にしてください。
       elasticsearch_version_check:
         message_html: '互換性のない Elasticsearch バージョン: %{value}'
-        version_comparison: Elasticsearch %{running_version} が実行されていますが、 %{required_version} が必要です
+        version_comparison: Elasticsearch %{running_version}が実行されていますが、%{required_version}が必要です
       rules_check:
         action: サーバーのルールを管理
         message_html: サーバーのルールを定義していません。
       sidekiq_process_check:
-        message_html: "%{value} キューに対応するSidekiq プロセスがありません。Sidekiq の設定を確認してください。"
+        message_html: "%{value}キューに対応するSidekiqプロセスがありません。Sidekiqの設定を確認してください。"
     tags:
       review: 審査状況
       updated_msg: ハッシュタグ設定が更新されました
@@ -778,7 +778,8 @@ ja:
         shared_by_over_week:
           other: 週間%{count}人に共有されました
         title: トレンドリンク
-        usage_comparison: 今日は %{today} 回、昨日は %{yesterday} 回共有されました
+        usage_comparison: 今日は%{today}回、昨日は%{yesterday}回共有されました
+      only_allowed: 許可済み
       pending_review: 保留中
       preview_card_providers:
         allowed: この発行者からのリンクを許可
@@ -805,15 +806,16 @@ ja:
         not_listable: おすすめに表示しない
         not_trendable: トレンドに表示しない
         not_usable: 使用を禁止
-        peaked_on_and_decaying: "%{date} 以降、しばらく使われていません"
+        peaked_on_and_decaying: "%{date}以降、しばらく使われていません"
         title: トレンドタグ
         trendable: トレンドに表示する
-        trending_rank: '人気: %{rank} 位'
+        trending_rank: '人気: %{rank}位'
         usable: 使用を許可
-        usage_comparison: 今日は %{today} 回、昨日は %{yesterday} 回使用されました。
+        usage_comparison: 今日は%{today}回、昨日は%{yesterday}回使用されました。
         used_by_over_week:
           other: 週間%{count}人に使用されました
       title: トレンド
+      trending: トレンド
     warning_presets:
       add_new: 追加
       delete: 削除
@@ -831,14 +833,14 @@ ja:
         silence: アカウントを制限する
         suspend: アカウントを停止する
       next_steps: モデレーションの決定を取り消すために申し立てを承認するか、無視することができます。
-      subject: "%{instance} で %{username} からモデレーションへの申し立てが届きました。"
+      subject: "%{instance}で%{username}さんからモデレーションへの申し立てが届きました。"
     new_pending_account:
       body: 新しいアカウントの詳細は以下の通りです。この申請を承認または却下することができます。
-      subject: "%{instance} で新しいアカウント (%{username}) が承認待ちです"
+      subject: "%{instance}で新しいアカウント (%{username}) が承認待ちです"
     new_report:
-      body: "%{reporter} が %{target} を通報しました"
-      body_remote: "%{domain} の誰かが %{target} を通報しました"
-      subject: "%{instance} の新しい通報 (#%{id})"
+      body: "%{reporter}さんが%{target}さんを通報しました"
+      body_remote: "%{domain}の誰かが%{target}さんを通報しました"
+      subject: "%{instance}の新しい通報 (#%{id})"
     new_trends:
       body: 以下の項目は、公開する前に審査が必要です。
       new_trending_links:
@@ -850,7 +852,7 @@ ja:
       new_trending_tags:
         no_approved_tags: 承認されたトレンドハッシュタグはありません。
         title: トレンドハッシュタグ
-      subject: "%{instance} で新しいトレンド が審査待ちです"
+      subject: "%{instance}で新しいトレンドが審査待ちです"
   aliases:
     add_new: エイリアスを作成
     created_msg: エイリアスを作成しました。これで以前のアカウントから引っ越しを開始できます。
@@ -859,7 +861,7 @@ ja:
     hint_html: 他のアカウントからこのアカウントにフォロワーを引き継いで引っ越したい場合、ここでエイリアスを作成しておく必要があります。エイリアス自体は<strong>無害で、取り消す</strong>ことができます。<strong>引っ越しは以前のアカウント側から開始する必要があります</strong>。
     remove: エイリアスを削除
   appearance:
-    advanced_web_interface: 上級者向け UI
+    advanced_web_interface: 上級者向けUI
     advanced_web_interface_hint: ディスプレイを幅いっぱいまで活用したい場合、上級者向け UI をおすすめします。ホーム、通知、連合タイムライン、更にはリストやハッシュタグなど、様々な異なるカラムから望む限りの情報を一度に受け取れるような設定が可能になります。
     animations_and_accessibility: アニメーションとアクセシビリティー
     confirmation_dialogs: 確認ダイアログ
@@ -872,7 +874,7 @@ ja:
     toot_layout: 投稿のレイアウト
   application_mailer:
     notification_preferences: メール設定の変更
-    salutation: "%{name} さん"
+    salutation: "%{name}さん"
     settings: 'メール設定の変更: %{link}'
     view: 'リンク:'
     view_profile: プロフィールを表示
@@ -888,19 +890,19 @@ ja:
   auth:
     apply_for_account: 登録を申請する
     change_password: パスワード
-    checkbox_agreement_html: <a href="%{rules_path}" target="_blank">サーバーのルール</a> と <a href="%{terms_path}" target="_blank">プライバシーポリシー</a> に同意します
-    checkbox_agreement_without_rules_html: <a href="%{terms_path}" target="_blank">利用規約</a> に同意します
+    checkbox_agreement_html: <a href="%{rules_path}" target="_blank">サーバーのルール</a>と<a href="%{terms_path}" target="_blank">プライバシーポリシー</a>に同意します
+    checkbox_agreement_without_rules_html: <a href="%{terms_path}" target="_blank">利用規約</a>に同意します
     delete_account: アカウントの削除
-    delete_account_html: アカウントを削除したい場合、<a href="%{path}">こちら</a> から手続きが行えます。削除する前に、確認画面があります。
+    delete_account_html: アカウントを削除したい場合、<a href="%{path}">こちら</a>から手続きが行えます。削除する前に、確認画面があります。
     description:
-      prefix_invited_by_user: "@%{name} があなたをこの Mastodon サーバーに招待しました"
-      prefix_sign_up: 今すぐ Mastodon を始めよう!
-      suffix: アカウントがあれば、どんな Mastodon 互換サーバーのユーザーでもフォローしたりメッセージをやり取りできるようになります!
+      prefix_invited_by_user: "@%{name}さんがあなたをこのMastodonサーバーに招待しました"
+      prefix_sign_up: 今すぐMastodonを始めよう!
+      suffix: アカウントがあれば、どんなMastodon互換サーバーのユーザーでもフォローしたりメッセージをやり取りできるようになります!
     didnt_get_confirmation: 確認メールを受信できませんか?
     dont_have_your_security_key: セキュリティキーを持っていませんか?
     forgot_password: パスワードをお忘れですか?
     invalid_reset_password_token: パスワードリセットトークンが正しくないか期限切れです。もう一度リクエストしてください。
-    link_to_otp: 携帯電話から二段階認証コードを入力するか、リカバリーコードを入力してください
+    link_to_otp: 携帯電話から二要素認証コードを入力するか、リカバリーコードを入力してください
     link_to_webauth: セキュリティキーを使用する
     log_in_with: 次の方法でログイン
     login: ログイン
@@ -912,21 +914,21 @@ ja:
       cas: CAS
       saml: SAML
     register: 登録する
-    registration_closed: "%{instance} は現在、新規登録停止中です"
+    registration_closed: "%{instance}は現在、新規登録停止中です"
     resend_confirmation: 確認メールを再送する
     reset_password: パスワードを再発行
     security: セキュリティ
     set_new_password: 新しいパスワード
     setup:
       email_below_hint_html: 下記のメールアドレスが間違っている場合、ここで変更することで新たに確認メールを受信できます。
-      email_settings_hint_html: 確認用のメールを %{email} に送信しました。メールアドレスが正しくない場合、以下より変更することができます。
+      email_settings_hint_html: 確認用のメールを%{email}に送信しました。メールアドレスが正しくない場合、以下より変更することができます。
       title: セットアップ
     status:
       account_status: アカウントの状態
       confirming: メールアドレスの確認が完了するのを待っています。
       functional: アカウントは完全に機能しています。
       pending: あなたの申請は現在サーバー管理者による審査待ちです。これにはしばらくかかります。申請が承認されるとメールが届きます。
-      redirecting_to: アカウントは %{acct} に引っ越し設定されているため非アクティブになっています。
+      redirecting_to: アカウントは%{acct}に引っ越し設定されているため非アクティブになっています。
       view_strikes: 過去のストライクを表示
     too_fast: フォームの送信が速すぎます。もう一度やり直してください。
     trouble_logging_in: ログインできませんか?
@@ -941,17 +943,17 @@ ja:
     post_follow:
       close: またはこのウィンドウを閉じます。
       return: ユーザーのプロフィールを見る
-      web: Web を開く
-    title: "%{acct} をフォロー"
+      web: Webを開く
+    title: "%{acct}さんをフォロー"
   challenge:
     confirm: 続ける
-    hint_html: 以後 1 時間はパスワードの再入力を求めません
+    hint_html: 以後1時間はパスワードの再入力を求めません
     invalid_password: パスワードが間違っています
     prompt: 続行するにはパスワードを入力してください
   crypto:
     errors:
-      invalid_key: 有効な Ed25519 または Curve25519 キーではありません
-      invalid_signature: 有効な Ed25519 署名ではありません
+      invalid_key: 有効なEd25519またはCurve25519キーではありません
+      invalid_signature: 有効なEd25519署名ではありません
   date:
     formats:
       default: "%Y年%m月%d日"
@@ -981,7 +983,7 @@ ja:
       caches: 他のサーバーにコンテンツのキャッシュがずっと残る場合があります
       data_removal: あなたの投稿やその他のデータはこのサーバーから完全に削除されます
       email_change_html: アカウントを削除しなくても<a href="%{path}">メールアドレスを変更</a>できます
-      email_contact_html: それでも届かない場合、<a href="mailto:%{email}">%{email}</a> までメールで問い合わせてください
+      email_contact_html: それでも届かない場合、<a href="mailto:%{email}">%{email}</a>までメールで問い合わせてください
       email_reconfirmation_html: 確認のメールが届かない場合、<a href="%{path}">もう一度申請</a>できます。
       irreversible: 削除操作の撤回やアカウントの復活はできません
       more_details_html: 詳しくは<a href="%{terms_path}">プライバシーポリシー</a>をご覧ください。
@@ -1003,7 +1005,7 @@ ja:
         submit: 抗議を送信
       associated_report: 関連する通報
       created_at: 日時
-      description_html: これらは、%{instance} のスタッフがあなたのアカウントに対して行った措置や、あなたに送られた警告です。
+      description_html: これらは、%{instance}のスタッフがあなたのアカウントに対して行った措置や、あなたに送られた警告です。
       recipient: 送信元
       status: '投稿 #%{id}'
       status_removed: 既に削除されています
@@ -1038,7 +1040,7 @@ ja:
     noscript_html: Mastodonのウェブアプリケーションを利用する場合はJavaScriptを有効にしてください。またはあなたのプラットフォーム向けの<a href="%{apps_path}">Mastodonネイティブアプリ</a>を探すことができます。
   existing_username_validator:
     not_found: そのようなユーザー名はローカルに見つかりませんでした
-    not_found_multiple: "%{usernames} は見つかりませんでした"
+    not_found_multiple: "%{usernames}さんは見つかりませんでした"
   exports:
     archive_takeout:
       date: 日時
@@ -1058,7 +1060,7 @@ ja:
     add_new: 追加
     errors:
       limit: 注目のハッシュタグの上限に達しました
-    hint_html: "<strong>注目のハッシュタグとは?</strong>プロフィールページに目立つ形で表示され、そのハッシュタグのついたあなたの公開投稿だけを抽出して閲覧できるようにします。クリエイティブな仕事や長期的なプロジェクトを追うのに優れた機能です。"
+    hint_html: "<strong>注目のハッシュタグとは?</strong> プロフィールページに目立つ形で表示され、そのハッシュタグのついたあなたの公開投稿だけを抽出して閲覧できるようにします。クリエイティブな仕事や長期的なプロジェクトを追うのに優れた機能です。"
   filters:
     contexts:
       account: プロフィール
@@ -1092,12 +1094,12 @@ ja:
     save_changes: 変更を保存
     today: 今日
     validation_errors:
-      other: エラーが発生しました! 以下の%{count}個のエラーを確認してください
+      other: エラーが発生しました! 以下の%{count}件のエラーを確認してください
   html_validator:
     invalid_markup: '無効なHTMLマークアップが含まれています: %{error}'
   imports:
     errors:
-      over_rows_processing_limit: "%{count} 行以上"
+      over_rows_processing_limit: "%{count}行以上"
     modes:
       merge: 統合
       merge_long: 現在のレコードを保持したまま新しいものを追加します
@@ -1117,12 +1119,12 @@ ja:
     delete: 無効化
     expired: 期限切れ
     expires_in:
-      '1800': 30 分
-      '21600': 6 時間
-      '3600': 1 時間
-      '43200': 12 時間
-      '604800': 1 週間
-      '86400': 1 日
+      '1800': 30分
+      '21600': 6時間
+      '3600': 1時間
+      '43200': 12時間
+      '604800': 1週間
+      '86400': 1日
     expires_in_prompt: 無期限
     generate: 招待リンクを作成
     invited_by: '次の人に招待されました:'
@@ -1139,14 +1141,14 @@ ja:
       limit: リストの上限に達しました
   login_activities:
     authentication_methods:
-      otp: 2要素認証
+      otp: 二要素認証アプリ
       password: パスワード
-      sign_in_token: 電子メールセキュリティコード
+      sign_in_token: メールセキュリティコード
       webauthn: セキュリティキー
-    description_html: 認識できないアクティビティが表示された場合は、パスワードの変更と2要素認証の有効化を検討してください。
+    description_html: 認識できないアクティビティが表示された場合は、パスワードの変更と二要素認証の有効化を検討してください。
     empty: 利用可能な認証履歴がありません
-    failed_sign_in_html: "%{ip} (%{browser}) からの %{method} を利用したサインインに失敗しました。"
-    successful_sign_in_html: "%{ip} (%{browser}) からの %{method} を利用したサインインに成功しました"
+    failed_sign_in_html: "%{ip} (%{browser}) から%{method}を利用したサインインに失敗しました。"
+    successful_sign_in_html: "%{ip} (%{browser}) から%{method}を利用したサインインに成功しました"
     title: 認証履歴
   media_attachments:
     validations:
@@ -1167,13 +1169,13 @@ ja:
     followers_count: 引き継がれるフォロワー
     incoming_migrations: 別のアカウントから引っ越す
     incoming_migrations_html: 別のアカウントからこのアカウントに引っ越すには、まず<a href="%{path}">アカウントエイリアスを作成</a>する必要があります。
-    moved_msg: アカウントは %{acct} に引っ越し設定されており、フォロワーは引っ越し先に引き継がれています。
+    moved_msg: アカウントは%{acct}に引っ越し設定されており、フォロワーは引っ越し先に引き継がれています。
     not_redirecting: アカウントは現在引っ越し設定されていません。
-    on_cooldown: あなたは最近アカウントを引っ越しました。この機能は %{count} 日後に再度利用できるようになります。
+    on_cooldown: あなたは最近アカウントを引っ越しました。この機能は%{count}日後に再度利用できるようになります。
     past_migrations: 過去の引っ越し
     proceed_with_move: フォロワーを引き継ぐ
-    redirected_msg: あなたのアカウントは現在 %{acct} にリダイレクトされています。
-    redirecting_to: アカウントは %{acct} に引っ越し設定されています。
+    redirected_msg: あなたのアカウントは現在%{acct}にリダイレクトされています。
+    redirecting_to: アカウントは%{acct}に引っ越し設定されています。
     set_redirect: 引っ越しを設定
     warning:
       backreference_required: まずは引っ越し先のアカウントでこのアカウントに対しエイリアスを作成する必要があります
@@ -1187,50 +1189,50 @@ ja:
   moderation:
     title: モデレーション
   move_handler:
-    carry_blocks_over_text: このユーザーは、あなたがブロックしていた %{acct} から引っ越しました。
-    carry_mutes_over_text: このユーザーは、あなたがミュートしていた %{acct} から引っ越しました。
-    copy_account_note_text: このユーザーは %{acct} から引っ越しました。これは以前のメモです。
+    carry_blocks_over_text: このユーザーは、あなたがブロックしていた%{acct}から引っ越しました。
+    carry_mutes_over_text: このユーザーは、あなたがミュートしていた%{acct}から引っ越しました。
+    copy_account_note_text: このユーザーは%{acct}から引っ越しました。これは以前のメモです。
   notification_mailer:
     admin:
       sign_up:
-        subject: "%{name} がサインアップしました"
+        subject: "%{name}さんがサインアップしました"
     digest:
       action: 全ての通知を表示
       body: '最後のログイン(%{since})からの出来事:'
-      mention: "%{name} さんがあなたに返信しました:"
+      mention: "%{name}さんがあなたに返信しました:"
       new_followers_summary:
-        other: また、離れている間に%{count} 人の新たなフォロワーを獲得しました!
+        other: また、離れている間に%{count}人の新たなフォロワーを獲得しました!
       subject:
-        other: "前回の訪問から%{count} 件の新しい通知 🐘"
+        other: "前回の訪問から%{count}件の新しい通知 🐘"
       title: 不在の間に…
     favourite:
-      body: "%{name} さんにお気に入り登録された、あなたの投稿があります:"
-      subject: "%{name} さんにお気に入りに登録されました"
+      body: "%{name}さんにお気に入り登録された、あなたの投稿があります:"
+      subject: "%{name}さんにお気に入りに登録されました"
       title: 新たなお気に入り登録
     follow:
-      body: "%{name} さんにフォローされています!"
-      subject: "%{name} さんにフォローされています"
+      body: "%{name}さんにフォローされています!"
+      subject: "%{name}さんにフォローされています"
       title: 新たなフォロワー
     follow_request:
       action: フォローリクエストの管理
-      body: "%{name} さんがあなたにフォローをリクエストしました"
-      subject: "%{name} さんからのフォローリクエスト"
+      body: "%{name}さんがあなたにフォローをリクエストしました"
+      subject: "%{name}さんからのフォローリクエスト"
       title: 新たなフォローリクエスト
     mention:
       action: 返信
-      body: "%{name} さんから返信がありました:"
-      subject: "%{name} さんに返信されました"
+      body: "%{name}さんから返信がありました:"
+      subject: "%{name}さんに返信されました"
       title: 新たな返信
     poll:
-      subject: "%{name}  さんの投票が終了しました"
+      subject: "%{name} さんの投票が終了しました"
     reblog:
-      body: "%{name} さんにブーストされた、あなたの投稿があります:"
-      subject: "%{name} さんにブーストされました"
+      body: "%{name}さんにブーストされた、あなたの投稿があります:"
+      subject: "%{name}さんにブーストされました"
       title: 新たなブースト
     status:
-      subject: "%{name} さんが投稿しました"
+      subject: "%{name}さんが投稿しました"
     update:
-      subject: "%{name} さんが投稿を更新しました"
+      subject: "%{name}さんが投稿を更新しました"
   notifications:
     email_events: メールによる通知
     email_events_hint: '受信する通知を選択:'
@@ -1301,7 +1303,7 @@ ja:
     no_account_html: アカウントをお持ちではないですか?<a href='%{sign_up_path}' target='_blank'>こちら</a>からサインアップできます
     proceed: フォローする
     prompt: 'フォローしようとしています:'
-    reason_html: "<strong>なぜこの手順が必要でしょうか?</strong><code>%{instance}</code>はあなたが登録されているサーバーではないかもしれないので、まずあなたのサーバーに転送する必要があります。"
+    reason_html: "<strong>なぜこの手順が必要でしょうか?</strong> <code>%{instance}</code>はあなたが登録されているサーバーではないかもしれないので、まずあなたのサーバーに転送する必要があります。"
   remote_interaction:
     favourite:
       proceed: お気に入り登録する
@@ -1316,8 +1318,8 @@ ja:
     errors:
       invalid_rules: 有効なルールを参照していません
   scheduled_statuses:
-    over_daily_limit: その日予約できる投稿数 %{limit} を超えています
-    over_total_limit: 予約できる投稿数 %{limit} を超えています
+    over_daily_limit: その日予約できる投稿数 %{limit}を超えています
+    over_total_limit: 予約できる投稿数 %{limit}を超えています
     too_soon: より先の時間を指定してください
   sessions:
     activity: 最後のアクティビティ
@@ -1341,7 +1343,7 @@ ja:
       uc_browser: UCBrowser
       weibo: Weibo
     current_session: 現在のセッション
-    description: "%{platform} 上の %{browser}"
+    description: "%{platform}上の%{browser}"
     explanation: あなたのMastodonアカウントに現在ログインしているウェブブラウザの一覧です。
     ip: IP
     platforms:
@@ -1367,7 +1369,7 @@ ja:
     aliases: アカウントエイリアス
     appearance: 外観
     authorized_apps: 認証済みアプリ
-    back: Mastodon に戻る
+    back: Mastodonに戻る
     delete: アカウントの削除
     development: 開発
     edit_profile: プロフィールを編集
@@ -1382,18 +1384,18 @@ ja:
     relationships: フォロー・フォロワー
     statuses_cleanup: 投稿の自動削除
     strikes: モデレーションストライク
-    two_factor_authentication: 二段階認証
+    two_factor_authentication: 二要素認証
     webauthn_authentication: セキュリティキー
   statuses:
     attached:
       audio:
-        other: "%{count} 本のオーディオ"
+        other: "%{count}本のオーディオ"
       description: '添付: %{attached}'
       image:
-        other: "%{count} 枚の画像"
+        other: "%{count}枚の画像"
       video:
-        other: "%{count} 本の動画"
-    boosted_from_html: "%{acct_link} からブースト"
+        other: "%{count}本の動画"
+    boosted_from_html: "%{acct_link}からブースト"
     content_warning: '閲覧注意: %{warning}'
     default_language: UIの表示言語
     disallowed_hashtags:
@@ -1402,7 +1404,7 @@ ja:
     errors:
       in_reply_not_found: あなたが返信しようとしている投稿は存在しないようです。
     open_in_web: Webで開く
-    over_character_limit: 上限は %{max}文字までです
+    over_character_limit: 上限は%{max}文字です
     pin_errors:
       direct: 返信したユーザーのみに表示される投稿はピン留めできません
       limit: 固定できる投稿数の上限に達しました
@@ -1410,7 +1412,7 @@ ja:
       reblog: ブーストを固定することはできません
     poll:
       total_people:
-        other: "%{count} 人"
+        other: "%{count}人"
       total_votes:
         other: "%{count}票"
       vote: 投票
@@ -1451,11 +1453,11 @@ ja:
     keep_self_fav_hint: 自分自身でお気に入りに登録した投稿を削除せずに残します
     min_age:
       '1209600': 2週間
-      '15778476': 6ヶ月
+      '15778476': 半年
       '2629746': 1ヶ月
       '31556952': 1年
       '5259492': 2ヶ月
-      '604800': 1 週間
+      '604800': 1週間
       '63113904': 2年
       '7889238': 3ヶ月
     min_age_label: 投稿を保持する期間
@@ -1497,7 +1499,7 @@ ja:
 
       <h3 id="protect">情報をどのように保護しますか?</h3>
 
-      <p>私たちはあなたが入力・送信する際や自身の情報にアクセスする際に個人情報を安全に保つため、さまざまなセキュリティ上の対策を実施します。特にブラウザーセッションだけでなくアプリケーションとAPI間の通信もSSLによって保護されます。またパスワードは強力な不可逆アルゴリズムでハッシュ化されます。二段階認証を有効にし、アカウントへのアクセスをさらに安全にすることができます。</p>
+      <p>私たちはあなたが入力・送信する際や自身の情報にアクセスする際に個人情報を安全に保つため、さまざまなセキュリティ上の対策を実施します。特にブラウザーセッションだけでなくアプリケーションとAPI間の通信もSSLによって保護されます。またパスワードは強力な不可逆アルゴリズムでハッシュ化されます。二要素認証を有効にし、アカウントへのアクセスをさらに安全にすることができます。</p>
 
       <hr class="spacer" />
 
@@ -1564,10 +1566,10 @@ ja:
   two_factor_authentication:
     add: 追加
     disable: 無効化
-    disabled_success: 二段階認証が無効になりました
+    disabled_success: 二要素認証が無効になりました
     edit: 編集
-    enabled: 二段階認証は有効になっています
-    enabled_success: 二段階認証が有効になりました
+    enabled: 二要素認証は有効になっています
+    enabled_success: 二要素認証が有効になりました
     generate_recovery_codes: リカバリーコードを生成
     lost_recovery_codes: リカバリーコードを使用すると携帯電話を紛失した場合でもアカウントにアクセスできるようになります。 リカバリーコードを紛失した場合もここで再生成することができますが、古いリカバリーコードは無効になります。
     methods: 方式
@@ -1579,12 +1581,12 @@ ja:
   user_mailer:
     appeal_approved:
       action: アカウントへ
-      explanation: "%{strike_date} のストライクに対して、あなたが %{appeal_date} に行った申し立ては承認されました。アカウントは正常な状態に戻りました。"
-      subject: "%{date} の申し立てが承認されました"
+      explanation: "%{strike_date}のストライクに対して、あなたが%{appeal_date}に行った申し立ては承認されました。アカウントは正常な状態に戻りました。"
+      subject: "%{date}の申し立てが承認されました"
       title: 申し立てが承認されました。
     appeal_rejected:
-      explanation: "%{strike_date} のストライクに対して、あなたが %{appeal_date} に行った申し立ては却下されました。"
-      subject: "%{date} の申し立てが拒否されました"
+      explanation: "%{strike_date}のストライクに対して、あなたが%{appeal_date}に行った申し立ては却下されました。"
+      subject: "%{date}の申し立てが拒否されました"
       title: 却下された抗議
     backup_ready:
       explanation: Mastodonアカウントのアーカイブを受け付けました。今すぐダウンロードできます!
@@ -1594,32 +1596,32 @@ ja:
       change_password: パスワードを変更する
       details: 'ログインの詳細は以下のとおりです:'
       explanation: 新しいIPアドレスからあなたのアカウントへのサインインが検出されました。
-      further_actions_html: あなたがログインしていない場合は、すぐに %{action} し、アカウントを安全に保つために二段階認証を有効にすることをお勧めします。
+      further_actions_html: あなたがログインしていない場合は、すぐに%{action}し、アカウントを安全に保つために二要素認証を有効にすることをお勧めします。
       subject: 新しいIPアドレスからのアクセスがありました
       title: 新しいサインイン
     warning:
       appeal: 抗議を送信
-      appeal_description: これが間違いだと思われる場合は、 %{instance} のスタッフに申し立てすることができます。
+      appeal_description: これが間違いだと思われる場合は、%{instance}のスタッフに申し立てすることができます。
       categories:
         spam: スパム
         violation: コンテンツは以下のコミュニティガイドラインに違反しています
       explanation:
-        delete_statuses: あなたの投稿のいくつかは、1つ以上のコミュニティガイドラインに違反していることが判明し、%{instance} のモデレータによって削除されました。
+        delete_statuses: あなたの投稿のいくつかは、1つ以上のコミュニティガイドラインに違反していることが判明し、%{instance}のモデレータによって削除されました。
         disable: アカウントは使用できませんが、プロフィールやその他のデータはそのまま残ります。 データのバックアップをリクエストしたり、アカウント設定を変更したり、アカウントを削除したりできます。
-        mark_statuses_as_sensitive: あなたのいくつかの投稿は、 %{instance} のモデレータによって閲覧注意としてマークされています。これは、プレビューが表示される前にユーザが投稿内のメディアをタップする必要があることを意味します。あなたは将来投稿する際に自分自身でメディアを閲覧注意としてマークすることができます。
+        mark_statuses_as_sensitive: あなたのいくつかの投稿は、%{instance}のモデレータによって閲覧注意としてマークされています。これは、プレビューが表示される前にユーザが投稿内のメディアをタップする必要があることを意味します。あなたは将来投稿する際に自分自身でメディアを閲覧注意としてマークすることができます。
         sensitive: 今後、アップロードされたすべてのメディアファイルは閲覧注意としてマークされ、クリック解除式の警告で覆われるようになります。
         silence: アカウントが制限されています。このサーバーでは既にフォローしている人だけがあなたの投稿を見ることができます。 様々な発見機能から除外されるかもしれません。他の人があなたを手動でフォローすることは可能です。
         suspend: アカウントは使用できなくなり、プロフィールなどのデータにもアクセスできなくなります。約30日後にデータが完全に削除されるまでは、ログインしてデータのバックアップを要求することができますが、アカウントの停止回避を防ぐために一部の基本データを保持します。
       reason: '理由:'
       statuses: '投稿:'
       subject:
-        delete_statuses: "%{acct} の投稿が削除されました"
-        disable: あなたのアカウント %{acct} は凍結されました
-        mark_statuses_as_sensitive: あなたの %{acct} の投稿は閲覧注意としてマークされました
-        none: "%{acct} に対する警告"
-        sensitive: あなたの %{acct} の投稿はこれから閲覧注意としてマークされます
-        silence: あなたのアカウント %{acct} はサイレンスにされました
-        suspend: あなたのアカウント %{acct} は停止されました
+        delete_statuses: "%{acct}さんの投稿が削除されました"
+        disable: あなたのアカウント %{acct}は凍結されました
+        mark_statuses_as_sensitive: あなたの%{acct}の投稿は閲覧注意としてマークされました
+        none: "%{acct}に対する警告"
+        sensitive: あなたの%{acct}の投稿はこれから閲覧注意としてマークされます
+        silence: あなたのアカウント %{acct}はサイレンスにされました
+        suspend: あなたのアカウント %{acct}は停止されました
       title:
         delete_statuses: 投稿が削除されました
         disable: アカウントが凍結されました
@@ -1637,18 +1639,18 @@ ja:
       full_handle: あなたの正式なユーザーID
       full_handle_hint: 別のサーバーの友達とフォローやメッセージをやり取りする際には、これを伝えることになります。
       review_preferences_action: 設定の変更
-      review_preferences_step: 受け取りたいメールの種類や投稿のデフォルト公開範囲など、ユーザー設定を必ず済ませておきましょう。目が回らない自信があるなら、アニメーション GIF を自動再生する設定もご検討ください。
-      subject: Mastodon へようこそ
-      tip_federated_timeline: 連合タイムラインは Mastodon ネットワークの流れを見られるものです。ただしあなたと同じサーバーの人がフォローしている人だけが含まれるので、それが全てではありません。
+      review_preferences_step: 受け取りたいメールの種類や投稿のデフォルト公開範囲など、ユーザー設定を必ず済ませておきましょう。目が回らない自信があるなら、アニメーションGIFを自動再生する設定もご検討ください。
+      subject: Mastodonへようこそ
+      tip_federated_timeline: 連合タイムラインはMastodonネットワークの流れを見られるものです。ただしあなたと同じサーバーの人がフォローしている人だけが含まれるので、それが全てではありません。
       tip_following: 最初は、サーバーの管理者をフォローした状態になっています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してみましょう。
-      tip_local_timeline: ローカルタイムラインは %{instance} にいる人々の流れを見られるものです。彼らはあなたと同じサーバーにいる隣人のようなものです!
-      tip_mobile_webapp: お使いのモバイル端末で、ブラウザから Mastodon をホーム画面に追加できますか? もし追加できる場合、プッシュ通知の受け取りなど、まるで「普通の」アプリのような機能が楽しめます!
+      tip_local_timeline: ローカルタイムラインは%{instance}にいる人々の流れを見られるものです。彼らはあなたと同じサーバーにいる隣人のようなものです!
+      tip_mobile_webapp: お使いのモバイル端末で、ブラウザからMastodonをホーム画面に追加できますか? もし追加できる場合、プッシュ通知の受け取りなど、まるで「普通の」アプリのような機能が楽しめます!
       tips: 豆知識
-      title: ようこそ、%{name}!
+      title: ようこそ、%{name}さん!
   users:
-    follow_limit_reached: あなたは現在 %{limit} 人以上フォローできません
-    invalid_otp_token: 二段階認証コードが間違っています
-    otp_lost_help_html: どちらも使用できない場合、%{email} に連絡を取ると解決できるかもしれません
+    follow_limit_reached: あなたは現在 %{limit}人以上フォローできません
+    invalid_otp_token: 二要素認証コードが間違っています
+    otp_lost_help_html: どちらも使用できない場合、%{email}に連絡を取ると解決できるかもしれません
     seamless_external_login: あなたは外部サービスを介してログインしているため、パスワードとメールアドレスの設定は利用できません。
     signed_in_as: '下記でログイン中:'
   verification:
@@ -1669,5 +1671,5 @@ ja:
     nickname_hint: セキュリティキーの名前を入力してください
     not_enabled: まだセキュリティキーを有効にしていません
     not_supported: このブラウザはセキュリティキーに対応していないようです
-    otp_required: セキュリティキーを使用するには、まず二段階認証を有効にしてください。
-    registered_on: "%{date} に登録"
+    otp_required: セキュリティキーを使用するには、まず二要素認証を有効にしてください。
+    registered_on: "%{date}に登録"
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index c24e40261..0c1576776 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -789,6 +789,7 @@ ko:
           other: 지난 주 동안 %{count} 명의 사람들이 공유했습니다
         title: 유행하는 링크
         usage_comparison: 오늘은 %{today}회 공유되었고, 어제는 %{yesterday}회 공유되었습니다
+      only_allowed: 허용된 것만
       pending_review: 심사 대기
       preview_card_providers:
         allowed: 이 출처의 링크는 유행 목록에 실릴 수 있습니다
@@ -828,6 +829,7 @@ ko:
         used_by_over_week:
           other: 지난 주 동안 %{count} 명의 사람들이 사용했습니다
       title: 유행
+      trending: 유행중
     warning_presets:
       add_new: 새로 추가
       delete: 삭제
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 3a2798f32..7a322a730 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -801,6 +801,7 @@ pl:
         disallow_provider: Nie zezwalaj na wydawcę
         title: Popularne linki
         usage_comparison: Udostępnione %{today} razy dzisiaj, w porównaniu z %{yesterday} wczoraj
+      only_allowed: Tylko dozwolone
       pending_review: Oczekuje na przegląd
       preview_card_providers:
         allowed: Linki od tego wydawcy mogą podlegać trendom
@@ -835,7 +836,13 @@ pl:
         trending_rank: 'Popularne #%{rank}'
         usable: Może być użyty
         usage_comparison: Używane %{today} razy dzisiaj, w porównaniu z %{yesterday} wczoraj
+        used_by_over_week:
+          few: Użyte przez %{count} osoby w ciągu ostatniego tygodnia
+          many: Użyte przez %{count} osób w ciągu ostatniego tygodnia
+          one: Użyte przez jedną osobę w ciągu ostatniego tygodnia
+          other: Użyte przez %{count} osób w ciągu ostatniego tygodnia
       title: Na czasie
+      trending: Popularne
     warning_presets:
       add_new: Dodaj nowy
       delete: Usuń
@@ -1235,6 +1242,11 @@ pl:
         many: "(%{count}) nowych osób Cię śledzi! Wspaniale!"
         one: Dodatkowo, w czasie nieobecności zaczęła śledzić Cię jedna osoba Gratulacje!
         other: Dodatkowo, zaczęło Cię śledzić %{count} nowych osób! Wspaniale!
+      subject:
+        few: "%{count} nowe powiadomienia od Twojej ostatniej wizyty 🐘"
+        many: "%{count} nowych powiadomień od Twojej ostatniej wizyty 🐘"
+        one: "1 nowe powiadomienie od Twojej ostatniej wizyty 🐘"
+        other: "%{count} nowych powiadomień od Twojej ostatniej wizyty 🐘"
       title: W trakcie Twojej nieobecności…
     favourite:
       body: 'Twój wpis został polubiony przez %{name}:'
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index 7bded6f28..f196d525f 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -1672,15 +1672,15 @@ pt-PT:
         silence: Conta limitada
         suspend: Conta suspensa
     welcome:
-      edit_profile_action: Configura o perfil
-      edit_profile_step: Podes personalizar o teu perfil carregando uma imagem de perfil e de cabeçalho ou alterando o nome a exibir, entre outras opções. Se preferires rever os novos seguidores antes deles te poderem seguir, podes tornar a tua conta privada.
-      explanation: Aqui estão algumas dicas para começares
-      final_action: Começa a publicar
-      final_step: 'Começa a publicar! Mesmo sem seguidores, as tuas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Tu podes querer apresentar-te na hashtag #introductions.'
-      full_handle: O teu nome completo
-      full_handle_hint: Isto é o que você diria aos seus amigos para que eles lhe possam enviar mensagens ou seguir a partir de outra instância.
+      edit_profile_action: Configurar o perfil
+      edit_profile_step: Pode personalizar o seu perfil carregando uma imagem de perfil e de cabeçalho ou alterando o nome a exibir, entre outras opções. Se preferir rever os novos seguidores antes de estes o poderem seguir, pode tornar a sua conta privada.
+      explanation: Aqui estão algumas dicas para começar
+      final_action: Começar a publicar
+      final_step: 'Começa a publicar! Mesmo sem seguidores, as suas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Pode querer apresentar-se utilizando a hashtag #introduções ou #introductions.'
+      full_handle: O seu nome completo
+      full_handle_hint: Isto é o que tem de facultar aos seus amigos para que eles lhe possam enviar mensagens ou seguir a partir de outra instância.
       review_preferences_action: Alterar preferências
-      review_preferences_step: Certifique-se de configurar as suas preferências, tais como os e-mails que gostaria de receber ou o nível de privacidade que deseja que as suas publicações tenham por defeito. Se não sofres de enjoo, podes ativar a opção de auto-iniciar GIFs.
+      review_preferences_step: Certifique-se de configurar as suas preferências, tais como os e-mails que gostaria de receber ou o nível de privacidade que deseja que as suas publicações tenham por defeito. Se não sofre de enjoo de movimento, pode ativar a opção de auto-iniciar GIFs.
       subject: Bem-vindo ao Mastodon
       tip_federated_timeline: A cronologia federativa é uma visão global da rede Mastodon. Mas só inclui pessoas que os teus vizinhos subscrevem, por isso não é uma visão completa.
       tip_following: Segues o(s) administrador(es) do teu servidor por defeito. Para encontrar mais pessoas interessantes, procura nas cronologias local e federada.
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index fd82bcf36..2187ae409 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -780,6 +780,7 @@ ru:
           other: Поделился %{count} человек за последнюю неделю
         title: Актуальные ссылки
         usage_comparison: Поделились %{today} раз сегодня, по сравнению с %{yesterday} вчера
+      only_allowed: Только разрешенное
       pending_review: Ожидает рассмотрения
       preview_card_providers:
         allowed: Ссылки этого издания могут отображаться в «актуальном»
@@ -810,6 +811,7 @@ ru:
           one: За последнюю неделю использовал один человек
           other: За последнюю неделю использовал %{count} человек
       title: Популярное
+      trending: Популярное
     warning_presets:
       add_new: Добавить
       delete: Удалить
@@ -849,7 +851,7 @@ ru:
     discovery: Обзор
     localization:
       body: Mastodon переводится добровольцами.
-      guide_link: https://sasha-sorokin.gitlab.io/mastodon-ru/
+      guide_link: https://ru.crowdin.com/project/mastodon
       guide_link_text: Каждый может внести свой вклад.
     sensitive_content: Содержимое деликатного характера
     toot_layout: Структура постов
diff --git a/config/locales/simple_form.ckb.yml b/config/locales/simple_form.ckb.yml
index 08634c559..32fda85a4 100644
--- a/config/locales/simple_form.ckb.yml
+++ b/config/locales/simple_form.ckb.yml
@@ -37,7 +37,7 @@ ckb:
         inbox_url: نیشانەی پەڕەی سەرەکی ئەو رێڵە کە هەرەکتە بەکاریببەیت ڕوونووس دەکات
         irreversible: توتە فلتەرکراوەکە بە شێوەیەکی نەگەڕاو فرەدەدرێن، تەنانەت ئەگەر فلتەردواتر لاببرێت
         locale: زمانی ڕووکاری بەکارهێنەر، ئیمەیلەکان و ئاگانامەکان
-        locked: بە دەستی شوێنکەوتوانی خۆت پەسەند بکە
+        locked: خۆت بڕیار بدە کێ دەتوانێت شوێنت بکەوێت بە وەرگتنی داوای شوێنکەوتن
         password: لایەنی کەم 8 نووسە بەکار بهێنە
         phrase: سەربەخۆ لە بچکۆلی و گەورەیی پیتەکان، لەگەڵ دەقی ئەسڵی یان ئاگانامەکانی ناوەرۆکی توتەکان هاوئاهەنگ دەکرێت
         scopes: APIـیەکانی بەرنامەنووسی کە ئەم ماڵپەڕە دەستپێگەیشتنی لەگەڵیان هیە. ئەگەر بەرزترین ئاست هەڵبژێرن ئیتر نیاز بە بژاردەی ئاستی نزم نییە.
@@ -201,6 +201,7 @@ ckb:
     'no': نە
     recommended: پێشنیارکراوە
     required:
+      mark: "*"
       text: پێویستە
     title:
       sessions:
diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml
index 614a6b819..63199e2cd 100644
--- a/config/locales/simple_form.gd.yml
+++ b/config/locales/simple_form.gd.yml
@@ -37,7 +37,7 @@ gd:
         current_password: A chùm tèarainteachd, cuir a-steach facal-faire a’ chunntais làithrich
         current_username: Airson seo a dhearbhadh, cuir a-steach ainm-cleachdaiche a’ chunntais làithrich
         digest: Cha dèid seo a chur ach nuair a bhios tu air ùine mhòr gun ghnìomh a ghabhail agus ma fhuair thu teachdaireachd phearsanta fhad ’s a bha thu air falbh
-        discoverable: Ceadaich gun lorg coigrich an cunntas agad le taic o mholaidhean, treandaichean is gleusan eile
+        discoverable: Ceadaich gun rùraich coigrich an cunntas agad le taic o mholaidhean, treandaichean is gleusan eile
         email: Thèid post-d dearbhaidh a chur thugad
         fields: Faodaidh tu suas ri 4 nithean a shealltainn mar chlàr air a’ phròifil agad
         header: PNG, GIF or JPG. %{size} air a char as motha. Thèid a sgèileadh sìos gu %{dimensions}px
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index 44b6a54a8..528e9a52a 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -60,7 +60,7 @@ is:
         setting_use_blurhash: Litstiglarnir byggja á litunum í földu myndunum, en gera öll smáatriði óskýr
         setting_use_pending_items: Fela uppfærslur tímalínu þar til smellt er, í stað þess að hún skruni streyminu sjálfvirkt
         username: Notandanafnið þitt verður einstakt á %{domain}
-        whole_word: Þegar stikkorð eða frasi er einungis tölur og bókstafir, verður það aðeins notað ef það samsvarar heilu orði
+        whole_word: Þegar stikkorð eða setning er einungis tölur og bókstafir, verður það aðeins notað ef það samsvarar heilu orði
       domain_allow:
         domain: Þetta lén mun geta sótt gögn af þessum vefþjóni og tekið verður á móti innsendum gögnum frá léninu til vinnslu og geymslu
       email_domain_block:
@@ -126,7 +126,7 @@ is:
       defaults:
         autofollow: Bjóða að fylgjast með aðgangnum þínum
         avatar: Auðkennismynd
-        bot: Þetta er aðgangur fyrir róbót
+        bot: Þetta er aðgangur fyrir vélmenni
         chosen_languages: Sía tungumál
         confirm_new_password: Staðfestu nýja lykilorðið
         confirm_password: Staðfestu lykilorðið
@@ -149,7 +149,7 @@ is:
         note: Æviágrip
         otp_attempt: Teggja-þátta kóði
         password: Lykilorð
-        phrase: Stikkorð eða frasi
+        phrase: Stikkorð eða setning
         setting_advanced_layout: Virkja ítarlegt vefviðmót
         setting_aggregate_reblogs: Hópa endurbirtingar í tímalínum
         setting_always_send_emails: Alltaf senda tilkynningar í tölvupósti
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index 803064a26..5f61ee19c 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -59,7 +59,7 @@ ja:
         setting_show_application: 投稿するのに使用したアプリが投稿の詳細ビューに表示されるようになります
         setting_use_blurhash: ぼかしはメディアの色を元に生成されますが、細部は見えにくくなっています
         setting_use_pending_items: 新着があってもタイムラインを自動的にスクロールしないようにします
-        username: あなたのユーザー名は %{domain} の中で重複していない必要があります
+        username: あなたのユーザー名は%{domain}の中で重複していない必要があります
         whole_word: キーワードまたはフレーズが英数字のみの場合、単語全体と一致する場合のみ適用されるようになります
       domain_allow:
         domain: 登録するとこのサーバーからデータを受信したり、このドメインから受信するデータを処理して保存できるようになります
@@ -71,7 +71,7 @@ ja:
       form_challenge:
         current_password: セキュリティ上重要なエリアにアクセスしています
       imports:
-        data: 他の Mastodon サーバーからエクスポートしたCSVファイルを選択して下さい
+        data: 他のMastodonサーバーからエクスポートしたCSVファイルを選択して下さい
       invite_request:
         text: このサーバーは現在承認制です。申請を承認する際に役立つメッセージを添えてください
       ip_block:
@@ -85,7 +85,7 @@ ja:
       rule:
         text: ユーザーのためのルールや要件を記述してください。短くシンプルにしてください。
       sessions:
-        otp: '携帯電話のアプリで生成された二段階認証コードを入力するか、リカバリーコードを使用してください:'
+        otp: '携帯電話のアプリで生成された二要素認証コードを入力するか、リカバリーコードを使用してください:'
         webauthn: USBキーの場合は、必ず挿入し、必要に応じてタップしてください。
       tag:
         name: 視認性向上などのためにアルファベット大文字小文字の変更のみ行うことができます
@@ -99,7 +99,7 @@ ja:
       account_alias:
         acct: 引っ越し元のユーザー ID
       account_migration:
-        acct: 引っ越し先のユーザー ID
+        acct: 引っ越し先のユーザーID
       account_warning_preset:
         text: プリセット警告文
         title: タイトル
@@ -126,7 +126,7 @@ ja:
       defaults:
         autofollow: 招待から参加後、あなたをフォロー
         avatar: アイコン
-        bot: これは BOT アカウントです
+        bot: これはBOTアカウントです
         chosen_languages: 表示する言語
         confirm_new_password: 新しいパスワード(確認用)
         confirm_password: パスワード(確認用)
@@ -147,10 +147,10 @@ ja:
         max_uses: 使用できる回数
         new_password: 新しいパスワード
         note: プロフィール
-        otp_attempt: 二段階認証コード
+        otp_attempt: 二要素認証コード
         password: パスワード
         phrase: キーワードまたはフレーズ
-        setting_advanced_layout: 上級者向け UI を有効にする
+        setting_advanced_layout: 上級者向けUIを有効にする
         setting_aggregate_reblogs: ブーストをまとめる
         setting_always_send_emails: 常にメール通知を送信する
         setting_auto_play_gif: アニメーションGIFを自動再生する
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 6984b8fba..b7f8c6747 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -411,6 +411,12 @@ sv:
       back_to_limited: Begränsat
       back_to_warning: Varning
       by_domain: Domän
+      content_policies:
+        policies:
+          silence: Gräns
+        policy: Policy
+        reason: Offentlig orsak
+        title: Riktlinjer för innehåll
       delivery:
         all: Alla
         clear: Rensa leverans-fel
@@ -425,6 +431,7 @@ sv:
         title: Moderering
       private_comment: Privat kommentar
       public_comment: Offentlig kommentar
+      purge: Rensa
       title: Kända instanser
       total_blocked_by_us: Blockerad av oss
       total_followed_by_them: Följs av dem
@@ -471,6 +478,7 @@ sv:
     report_notes:
       created_msg: Anmälningsanteckning har skapats!
       destroyed_msg: Anmälningsanteckning har raderats!
+      today_at: Idag kl. %{time}
     reports:
       account:
         notes:
@@ -601,6 +609,8 @@ sv:
       delete: Radera uppladdad fil
     statuses:
       back_to_account: Tillbaka till kontosidan
+      batch:
+        report: Rapportera
       deleted: Raderad
       media:
         title: Media
@@ -611,19 +621,26 @@ sv:
         delete_statuses: "%{name} raderade %{target}s inlägg"
         disable: "%{name} frös %{target}s konto"
         silence: "%{name} begränsade %{target}s konto"
+      appeal_approved: Överklagad
     system_checks:
       rules_check:
         action: Hantera serverregler
         message_html: Du har inte definierat några serverregler.
     title: Administration
     trends:
+      allow: Tillåt
+      approved: Godkänd
       statuses:
         allow: Godkänn inlägg
         allow_account: Godkänn författare
+      title: Trender
     warning_presets:
       add_new: Lägg till ny
       delete: Radera
   admin_mailer:
+    new_appeal:
+      actions:
+        none: en varning
     new_report:
       body: "%{reporter} har rapporterat %{target}"
       body_remote: Någon från %{domain} har rapporterat %{target}
@@ -753,6 +770,8 @@ sv:
     strikes:
       created_at: Daterad
       status: 'Inlägg #%{id}'
+      title_actions:
+        none: Varning
   domain_validator:
     invalid_domain: är inte ett giltigt domännamn
   errors:
@@ -816,6 +835,7 @@ sv:
     delete: Radera
     order_by: Sortera efter
     save_changes: Spara ändringar
+    today: idag
     validation_errors:
       one: Något är inte riktigt rätt ännu! Kontrollera felet nedan
       other: Något är inte riktigt rätt ännu! Kontrollera dom %{count} felen nedan
@@ -904,6 +924,9 @@ sv:
     carry_mutes_over_text: Den här användaren flyttade från %{acct} som du hade tystat.
     copy_account_note_text: 'Den här användaren flyttade från %{acct}, här var dina föregående anteckningar om dem:'
   notification_mailer:
+    admin:
+      sign_up:
+        subject: "%{name} registrerade sig"
     digest:
       action: Visa alla aviseringar
       body: Här är en kort sammanfattning av de meddelanden du missade sedan ditt senaste besök på %{since}
@@ -938,6 +961,8 @@ sv:
       title: Ny knuff
     status:
       subject: "%{name} publicerade nyss"
+    update:
+      subject: "%{name} redigerade ett inlägg"
   notifications:
     email_events: Händelser för e-postaviseringar
     email_events_hint: 'Välj händelser som du vill ta emot aviseringar för:'
@@ -1267,14 +1292,17 @@ sv:
       title: Arkivuttagning
     suspicious_sign_in:
       change_password: Ändra ditt lösenord
+      title: En ny inloggning
     warning:
       reason: 'Anledning:'
+      statuses: 'Inlägg citerades:'
       subject:
         disable: Ditt konto %{acct} har blivit fruset
         none: Varning för %{acct}
         silence: Ditt konto %{acct} har blivit begränsat
         suspend: Ditt konto %{acct} har stängts av
       title:
+        delete_statuses: Inlägg borttagna
         disable: Kontot fruset
         none: Varning
         silence: Kontot begränsat
@@ -1310,4 +1338,6 @@ sv:
     delete_confirmation: Är du säker på att du vill ta bort denna säkerhetsnyckel?
     destroy:
       success: Din säkerhetsnyckel har raderats.
+    invalid_credential: Ogiltig säkerhetsnyckel
     not_enabled: Du har inte aktiverat WebAuthn än
+    registered_on: Registrerad den %{date}
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 2099a066c..922f4fd82 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -802,6 +802,7 @@ tr:
           other: Geçen hafta %{count} kişi paylaştı
         title: Öne çıkan bağlantılar
         usage_comparison: Bugün %{today} kere paylaşıldı, dün %{yesterday} kere paylaşılmıştı
+      only_allowed: Sadece izin verilenler
       pending_review: İnceleme bekliyor
       preview_card_providers:
         allowed: Bu yayıncının bağlantıları öne çıkabilir
@@ -843,6 +844,7 @@ tr:
           one: Geçen hafta bir kişi tarafından kullanıldı
           other: Geçen hafta %{count} kişi tarafından kullanıldı
       title: Öne çıkanlar
+      trending: Öne çıkanlar
     warning_presets:
       add_new: Yeni ekle
       delete: Sil
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 8dffdabe3..a685c73ec 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -785,6 +785,7 @@ vi:
           other: "%{count} người chia sẻ tuần rồi"
         title: Liên kết xu hướng
         usage_comparison: Chia sẻ %{today} lần hôm nay, so với %{yesterday} lần hôm qua
+      only_allowed: Chỉ cho phép
       pending_review: Đang chờ
       preview_card_providers:
         allowed: Liên kết từ nguồn đăng này có thể thành xu hướng
@@ -824,6 +825,7 @@ vi:
         used_by_over_week:
           other: "%{count} người dùng tuần rồi"
       title: Xu hướng
+      trending: Xu hướng
     warning_presets:
       add_new: Thêm mới
       delete: Xóa bỏ
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 51b9b3892..9515ffad8 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -29,7 +29,7 @@ zh-CN:
     logged_in_as_html: 您当前以 %{username} 登录。
     logout_before_registering: 您已登录。
     privacy_policy: 隐私政策
-    rules: 服务器规则
+    rules: 实例规则
     rules_html: 如果你想要在此Mastodon服务器上拥有一个账户,你必须遵守相应的规则,摘要如下:
     see_whats_happening: 看看有什么新鲜事
     server_stats: 服务器统计数据:
@@ -787,6 +787,7 @@ zh-CN:
           other: 过去一周内被 %{count} 个人分享过
         title: 热门链接
         usage_comparison: 今日被分享 %{today} 次,前一日为 %{yesterday} 次
+      only_allowed: 仅显示已允许的内容
       pending_review: 待审核
       preview_card_providers:
         allowed: 来自此发布者的链接可进入流行列表
@@ -826,6 +827,7 @@ zh-CN:
         used_by_over_week:
           other: 过去一周内被 %{count} 个人使用过
       title: 流行趋势
+      trending: 当前热门
     warning_presets:
       add_new: 添加新条目
       delete: 删除
@@ -904,7 +906,7 @@ zh-CN:
   auth:
     apply_for_account: 请求邀请
     change_password: 密码
-    checkbox_agreement_html: 我同意 <a href="%{rules_path}" target="_blank">服务器规则</a> 和 <a href="%{terms_path}" target="_blank">服务条款</a>
+    checkbox_agreement_html: 我同意 <a href="%{rules_path}" target="_blank">实例规则</a> 和 <a href="%{terms_path}" target="_blank">服务条款</a>
     checkbox_agreement_without_rules_html: 我同意 <a href="%{terms_path}" target="_blank">服务条款</a>
     delete_account: 删除帐户
     delete_account_html: 如果你想删除你的帐户,请<a href="%{path}">点击这里继续</a>。你需要确认你的操作。
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 8948932bb..0d1716790 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -787,6 +787,7 @@ zh-TW:
           other: 上週被 %{count} 名使用者分享
         title: 熱門連結
         usage_comparison: 於今日被 %{today} 人分享,相較於昨日 %{yesterday} 人
+      only_allowed: 僅允許
       pending_review: 等待審核中
       preview_card_providers:
         allowed: 此發行者之連結能登上熱門
@@ -826,6 +827,7 @@ zh-TW:
         used_by_over_week:
           other: 上週被 %{count} 個人使用
       title: 熱門榜
+      trending: 熱門
     warning_presets:
       add_new: 新增
       delete: 刪除
diff --git a/lib/mastodon/settings_cli.rb b/lib/mastodon/settings_cli.rb
index 061650a80..488c655de 100644
--- a/lib/mastodon/settings_cli.rb
+++ b/lib/mastodon/settings_cli.rb
@@ -16,6 +16,20 @@ module Mastodon
       say('OK', :green)
     end
 
+    desc 'approved', 'Open approval-based registrations'
+    option :require_reason, type: :boolean, aliases: [:require_invite_text]
+    long_desc <<~LONG_DESC
+      Set registrations to require review from staff.
+
+      With --require-reason, require users to enter a reason when registering,
+      otherwise this field is optional.
+    LONG_DESC
+    def approved
+      Setting.registrations_mode = 'approved'
+      Setting.require_invite_text = options[:require_reason] unless options[:require_reason].nil?
+      say('OK', :green)
+    end
+
     desc 'close', 'Close registrations'
     def close
       Setting.registrations_mode = 'none'
diff --git a/package.json b/package.json
index 3f132d944..2901a45bc 100644
--- a/package.json
+++ b/package.json
@@ -63,11 +63,11 @@
   },
   "private": true,
   "dependencies": {
-    "@babel/core": "^7.17.9",
+    "@babel/core": "^7.17.10",
     "@babel/plugin-proposal-decorators": "^7.17.9",
     "@babel/plugin-transform-react-inline-elements": "^7.16.7",
-    "@babel/plugin-transform-runtime": "^7.17.0",
-    "@babel/preset-env": "^7.16.11",
+    "@babel/plugin-transform-runtime": "^7.17.10",
+    "@babel/preset-env": "^7.17.10",
     "@babel/preset-react": "^7.16.7",
     "@babel/runtime": "^7.17.9",
     "@gamestdio/websocket": "^0.3.2",
@@ -78,7 +78,7 @@
     "arrow-key-navigation": "^1.2.0",
     "autoprefixer": "^9.8.8",
     "axios": "^0.26.1",
-    "babel-loader": "^8.2.4",
+    "babel-loader": "^8.2.5",
     "babel-plugin-lodash": "^3.3.4",
     "babel-plugin-preval": "^5.1.0",
     "babel-plugin-react-intl": "^6.2.0",
@@ -97,7 +97,7 @@
     "es6-symbol": "^3.1.3",
     "escape-html": "^1.0.3",
     "exif-js": "^2.3.0",
-    "express": "^4.18.0",
+    "express": "^4.18.1",
     "favico.js": "^0.3.10",
     "file-loader": "^6.2.0",
     "font-awesome": "^4.7.0",
@@ -143,7 +143,7 @@
     "react-redux-loading-bar": "^4.0.8",
     "react-router-dom": "^4.1.1",
     "react-router-scroll-4": "^1.0.0-beta.1",
-    "react-select": "^5.3.0",
+    "react-select": "^5.3.1",
     "react-sparklines": "^1.7.0",
     "react-swipeable-views": "^0.14.0",
     "react-textarea-autosize": "^8.3.3",
@@ -157,7 +157,7 @@
     "requestidlecallback": "^0.3.0",
     "reselect": "^4.1.5",
     "rimraf": "^3.0.2",
-    "sass": "^1.50.1",
+    "sass": "^1.51.0",
     "sass-loader": "^10.2.0",
     "stacktrace-js": "^2.0.2",
     "stringz": "^2.1.0",
diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
new file mode 100644
index 000000000..f552b9dc0
--- /dev/null
+++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
@@ -0,0 +1,123 @@
+require 'rails_helper'
+
+RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
+  let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/account', featured_collection_url: 'https://example.com/account/pinned') }
+
+  let!(:known_status) { Fabricate(:status, account: actor, uri: 'https://example.com/account/pinned/1') }
+
+  let(:status_json_1) do
+    {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      type: 'Note',
+      id: 'https://example.com/account/pinned/1',
+      content: 'foo',
+      attributedTo: actor.uri,
+      to: 'https://www.w3.org/ns/activitystreams#Public',
+    }
+  end
+
+  let(:status_json_2) do
+    {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      type: 'Note',
+      id: 'https://example.com/account/pinned/2',
+      content: 'foo',
+      attributedTo: actor.uri,
+      to: 'https://www.w3.org/ns/activitystreams#Public',
+    }
+  end
+
+  let(:status_json_4) do
+    {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      type: 'Note',
+      id: 'https://example.com/account/pinned/4',
+      content: 'foo',
+      attributedTo: actor.uri,
+      to: 'https://www.w3.org/ns/activitystreams#Public',
+    }
+  end
+
+  let(:items) do
+    [
+      'https://example.com/account/pinned/1', # known
+      status_json_2, # unknown inlined
+      'https://example.com/account/pinned/3', # unknown unreachable
+      'https://example.com/account/pinned/4', # unknown reachable
+    ]
+  end
+
+  let(:payload) do
+    {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      type: 'Collection',
+      id: actor.featured_collection_url,
+      items: items,
+    }.with_indifferent_access
+  end
+
+  subject { described_class.new }
+
+  shared_examples 'sets pinned posts' do
+    before do
+      stub_request(:get, 'https://example.com/account/pinned/1').to_return(status: 200, body: Oj.dump(status_json_1))
+      stub_request(:get, 'https://example.com/account/pinned/2').to_return(status: 200, body: Oj.dump(status_json_2))
+      stub_request(:get, 'https://example.com/account/pinned/3').to_return(status: 404)
+      stub_request(:get, 'https://example.com/account/pinned/4').to_return(status: 200, body: Oj.dump(status_json_4))
+
+      subject.call(actor)
+    end
+
+    it 'sets expected posts as pinned posts' do
+      expect(actor.pinned_statuses.pluck(:uri)).to match_array ['https://example.com/account/pinned/1', 'https://example.com/account/pinned/2', 'https://example.com/account/pinned/4']
+    end
+  end
+
+  describe '#call' do
+    context 'when the endpoint is a Collection' do
+      before do
+        stub_request(:get, actor.featured_collection_url).to_return(status: 200, body: Oj.dump(payload))
+      end
+
+      it_behaves_like 'sets pinned posts'
+    end
+
+    context 'when the endpoint is an OrderedCollection' do
+      let(:payload) do
+        {
+          '@context': 'https://www.w3.org/ns/activitystreams',
+          type: 'OrderedCollection',
+          id: actor.featured_collection_url,
+          orderedItems: items,
+        }.with_indifferent_access
+      end
+
+      before do
+        stub_request(:get, actor.featured_collection_url).to_return(status: 200, body: Oj.dump(payload))
+      end
+
+      it_behaves_like 'sets pinned posts'
+    end
+
+    context 'when the endpoint is a paginated Collection' do
+      let(:payload) do
+        {
+          '@context': 'https://www.w3.org/ns/activitystreams',
+          type: 'Collection',
+          id: actor.featured_collection_url,
+          first: {
+            type: 'CollectionPage',
+            partOf: actor.featured_collection_url,
+            items: items,
+          }
+        }.with_indifferent_access
+      end
+
+      before do
+        stub_request(:get, actor.featured_collection_url).to_return(status: 200, body: Oj.dump(payload))
+      end
+
+      it_behaves_like 'sets pinned posts'
+    end
+  end
+end
diff --git a/yarn.lock b/yarn.lock
index 664a830d4..31d512d08 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -23,45 +23,40 @@
   dependencies:
     "@babel/highlight" "^7.16.7"
 
-"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8":
-  version "7.16.8"
-  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60"
-  integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==
-
-"@babel/compat-data@^7.17.7":
-  version "7.17.7"
-  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2"
-  integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.10":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab"
+  integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==
 
-"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.17.9", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
-  version "7.17.9"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe"
-  integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==
+"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.17.10", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05"
+  integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==
   dependencies:
     "@ampproject/remapping" "^2.1.0"
     "@babel/code-frame" "^7.16.7"
-    "@babel/generator" "^7.17.9"
-    "@babel/helper-compilation-targets" "^7.17.7"
+    "@babel/generator" "^7.17.10"
+    "@babel/helper-compilation-targets" "^7.17.10"
     "@babel/helper-module-transforms" "^7.17.7"
     "@babel/helpers" "^7.17.9"
-    "@babel/parser" "^7.17.9"
+    "@babel/parser" "^7.17.10"
     "@babel/template" "^7.16.7"
-    "@babel/traverse" "^7.17.9"
-    "@babel/types" "^7.17.0"
+    "@babel/traverse" "^7.17.10"
+    "@babel/types" "^7.17.10"
     convert-source-map "^1.7.0"
     debug "^4.1.0"
     gensync "^1.0.0-beta.2"
     json5 "^2.2.1"
     semver "^6.3.0"
 
-"@babel/generator@^7.17.9", "@babel/generator@^7.7.2":
-  version "7.17.9"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc"
-  integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==
+"@babel/generator@^7.17.10", "@babel/generator@^7.7.2":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189"
+  integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==
   dependencies:
-    "@babel/types" "^7.17.0"
+    "@babel/types" "^7.17.10"
+    "@jridgewell/gen-mapping" "^0.1.0"
     jsesc "^2.5.1"
-    source-map "^0.5.0"
 
 "@babel/helper-annotate-as-pure@^7.16.7":
   version "7.16.7"
@@ -86,17 +81,17 @@
     "@babel/helper-annotate-as-pure" "^7.16.7"
     "@babel/types" "^7.16.7"
 
-"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7":
-  version "7.17.7"
-  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46"
-  integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe"
+  integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==
   dependencies:
-    "@babel/compat-data" "^7.17.7"
+    "@babel/compat-data" "^7.17.10"
     "@babel/helper-validator-option" "^7.16.7"
-    browserslist "^4.17.5"
+    browserslist "^4.20.2"
     semver "^6.3.0"
 
-"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.9":
+"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6", "@babel/helper-create-class-features-plugin@^7.17.9":
   version "7.17.9"
   resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d"
   integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==
@@ -117,6 +112,14 @@
     "@babel/helper-annotate-as-pure" "^7.16.7"
     regexpu-core "^4.7.1"
 
+"@babel/helper-create-regexp-features-plugin@^7.17.0":
+  version "7.17.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1"
+  integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.16.7"
+    regexpu-core "^5.0.1"
+
 "@babel/helper-define-polyfill-provider@^0.3.0":
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971"
@@ -257,13 +260,6 @@
     "@babel/traverse" "^7.16.7"
     "@babel/types" "^7.16.7"
 
-"@babel/helper-simple-access@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7"
-  integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==
-  dependencies:
-    "@babel/types" "^7.16.7"
-
 "@babel/helper-simple-access@^7.17.7":
   version "7.17.7"
   resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367"
@@ -337,10 +333,10 @@
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9", "@babel/parser@^7.7.0":
-  version "7.17.9"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef"
-  integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.10", "@babel/parser@^7.7.0":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78"
+  integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==
 
 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
   version "7.16.7"
@@ -375,12 +371,12 @@
     "@babel/helper-create-class-features-plugin" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/plugin-proposal-class-static-block@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a"
-  integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==
+"@babel/plugin-proposal-class-static-block@^7.17.6":
+  version "7.17.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c"
+  integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==
   dependencies:
-    "@babel/helper-create-class-features-plugin" "^7.16.7"
+    "@babel/helper-create-class-features-plugin" "^7.17.6"
     "@babel/helper-plugin-utils" "^7.16.7"
     "@babel/plugin-syntax-class-static-block" "^7.14.5"
 
@@ -444,12 +440,12 @@
     "@babel/helper-plugin-utils" "^7.16.7"
     "@babel/plugin-syntax-numeric-separator" "^7.10.4"
 
-"@babel/plugin-proposal-object-rest-spread@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8"
-  integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==
+"@babel/plugin-proposal-object-rest-spread@^7.17.3":
+  version "7.17.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390"
+  integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==
   dependencies:
-    "@babel/compat-data" "^7.16.4"
+    "@babel/compat-data" "^7.17.0"
     "@babel/helper-compilation-targets" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
     "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
@@ -561,7 +557,7 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-jsx@^7.16.7":
+"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.16.7":
   version "7.16.7"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665"
   integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
@@ -682,10 +678,10 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/plugin-transform-destructuring@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23"
-  integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==
+"@babel/plugin-transform-destructuring@^7.17.7":
+  version "7.17.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1"
+  integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==
   dependencies:
     "@babel/helper-plugin-utils" "^7.16.7"
 
@@ -751,23 +747,23 @@
     "@babel/helper-plugin-utils" "^7.16.7"
     babel-plugin-dynamic-import-node "^2.3.3"
 
-"@babel/plugin-transform-modules-commonjs@^7.16.8":
-  version "7.16.8"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe"
-  integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==
+"@babel/plugin-transform-modules-commonjs@^7.17.9":
+  version "7.17.9"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6"
+  integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==
   dependencies:
-    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helper-module-transforms" "^7.17.7"
     "@babel/helper-plugin-utils" "^7.16.7"
-    "@babel/helper-simple-access" "^7.16.7"
+    "@babel/helper-simple-access" "^7.17.7"
     babel-plugin-dynamic-import-node "^2.3.3"
 
-"@babel/plugin-transform-modules-systemjs@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7"
-  integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==
+"@babel/plugin-transform-modules-systemjs@^7.17.8":
+  version "7.17.8"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859"
+  integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==
   dependencies:
     "@babel/helper-hoist-variables" "^7.16.7"
-    "@babel/helper-module-transforms" "^7.16.7"
+    "@babel/helper-module-transforms" "^7.17.7"
     "@babel/helper-plugin-utils" "^7.16.7"
     "@babel/helper-validator-identifier" "^7.16.7"
     babel-plugin-dynamic-import-node "^2.3.3"
@@ -780,12 +776,12 @@
     "@babel/helper-module-transforms" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8":
-  version "7.16.8"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252"
-  integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.17.10":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz#715dbcfafdb54ce8bccd3d12e8917296a4ba66a4"
+  integrity sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA==
   dependencies:
-    "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+    "@babel/helper-create-regexp-features-plugin" "^7.17.0"
 
 "@babel/plugin-transform-new-target@^7.16.7":
   version "7.16.7"
@@ -857,12 +853,12 @@
     "@babel/helper-annotate-as-pure" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/plugin-transform-regenerator@^7.16.7":
-  version "7.16.7"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb"
-  integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==
+"@babel/plugin-transform-regenerator@^7.17.9":
+  version "7.17.9"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c"
+  integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==
   dependencies:
-    regenerator-transform "^0.14.2"
+    regenerator-transform "^0.15.0"
 
 "@babel/plugin-transform-reserved-words@^7.16.7":
   version "7.16.7"
@@ -871,10 +867,10 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/plugin-transform-runtime@^7.17.0":
-  version "7.17.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70"
-  integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==
+"@babel/plugin-transform-runtime@^7.17.10":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz#b89d821c55d61b5e3d3c3d1d636d8d5a81040ae1"
+  integrity sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig==
   dependencies:
     "@babel/helper-module-imports" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
@@ -934,27 +930,27 @@
     "@babel/helper-create-regexp-features-plugin" "^7.16.7"
     "@babel/helper-plugin-utils" "^7.16.7"
 
-"@babel/preset-env@^7.16.11":
-  version "7.16.11"
-  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982"
-  integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==
+"@babel/preset-env@^7.17.10":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.17.10.tgz#a81b093669e3eb6541bb81a23173c5963c5de69c"
+  integrity sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g==
   dependencies:
-    "@babel/compat-data" "^7.16.8"
-    "@babel/helper-compilation-targets" "^7.16.7"
+    "@babel/compat-data" "^7.17.10"
+    "@babel/helper-compilation-targets" "^7.17.10"
     "@babel/helper-plugin-utils" "^7.16.7"
     "@babel/helper-validator-option" "^7.16.7"
     "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7"
     "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7"
     "@babel/plugin-proposal-async-generator-functions" "^7.16.8"
     "@babel/plugin-proposal-class-properties" "^7.16.7"
-    "@babel/plugin-proposal-class-static-block" "^7.16.7"
+    "@babel/plugin-proposal-class-static-block" "^7.17.6"
     "@babel/plugin-proposal-dynamic-import" "^7.16.7"
     "@babel/plugin-proposal-export-namespace-from" "^7.16.7"
     "@babel/plugin-proposal-json-strings" "^7.16.7"
     "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7"
     "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7"
     "@babel/plugin-proposal-numeric-separator" "^7.16.7"
-    "@babel/plugin-proposal-object-rest-spread" "^7.16.7"
+    "@babel/plugin-proposal-object-rest-spread" "^7.17.3"
     "@babel/plugin-proposal-optional-catch-binding" "^7.16.7"
     "@babel/plugin-proposal-optional-chaining" "^7.16.7"
     "@babel/plugin-proposal-private-methods" "^7.16.11"
@@ -980,7 +976,7 @@
     "@babel/plugin-transform-block-scoping" "^7.16.7"
     "@babel/plugin-transform-classes" "^7.16.7"
     "@babel/plugin-transform-computed-properties" "^7.16.7"
-    "@babel/plugin-transform-destructuring" "^7.16.7"
+    "@babel/plugin-transform-destructuring" "^7.17.7"
     "@babel/plugin-transform-dotall-regex" "^7.16.7"
     "@babel/plugin-transform-duplicate-keys" "^7.16.7"
     "@babel/plugin-transform-exponentiation-operator" "^7.16.7"
@@ -989,15 +985,15 @@
     "@babel/plugin-transform-literals" "^7.16.7"
     "@babel/plugin-transform-member-expression-literals" "^7.16.7"
     "@babel/plugin-transform-modules-amd" "^7.16.7"
-    "@babel/plugin-transform-modules-commonjs" "^7.16.8"
-    "@babel/plugin-transform-modules-systemjs" "^7.16.7"
+    "@babel/plugin-transform-modules-commonjs" "^7.17.9"
+    "@babel/plugin-transform-modules-systemjs" "^7.17.8"
     "@babel/plugin-transform-modules-umd" "^7.16.7"
-    "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8"
+    "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.10"
     "@babel/plugin-transform-new-target" "^7.16.7"
     "@babel/plugin-transform-object-super" "^7.16.7"
     "@babel/plugin-transform-parameters" "^7.16.7"
     "@babel/plugin-transform-property-literals" "^7.16.7"
-    "@babel/plugin-transform-regenerator" "^7.16.7"
+    "@babel/plugin-transform-regenerator" "^7.17.9"
     "@babel/plugin-transform-reserved-words" "^7.16.7"
     "@babel/plugin-transform-shorthand-properties" "^7.16.7"
     "@babel/plugin-transform-spread" "^7.16.7"
@@ -1007,11 +1003,11 @@
     "@babel/plugin-transform-unicode-escapes" "^7.16.7"
     "@babel/plugin-transform-unicode-regex" "^7.16.7"
     "@babel/preset-modules" "^0.1.5"
-    "@babel/types" "^7.16.8"
+    "@babel/types" "^7.17.10"
     babel-plugin-polyfill-corejs2 "^0.3.0"
     babel-plugin-polyfill-corejs3 "^0.5.0"
     babel-plugin-polyfill-regenerator "^0.3.0"
-    core-js-compat "^3.20.2"
+    core-js-compat "^3.22.1"
     semver "^6.3.0"
 
 "@babel/preset-modules@^0.1.5":
@@ -1052,7 +1048,7 @@
   dependencies:
     regenerator-runtime "^0.12.0"
 
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
   version "7.17.9"
   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72"
   integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==
@@ -1068,26 +1064,26 @@
     "@babel/parser" "^7.16.7"
     "@babel/types" "^7.16.7"
 
-"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
-  version "7.17.9"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d"
-  integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==
+"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5"
+  integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==
   dependencies:
     "@babel/code-frame" "^7.16.7"
-    "@babel/generator" "^7.17.9"
+    "@babel/generator" "^7.17.10"
     "@babel/helper-environment-visitor" "^7.16.7"
     "@babel/helper-function-name" "^7.17.9"
     "@babel/helper-hoist-variables" "^7.16.7"
     "@babel/helper-split-export-declaration" "^7.16.7"
-    "@babel/parser" "^7.17.9"
-    "@babel/types" "^7.17.0"
+    "@babel/parser" "^7.17.10"
+    "@babel/types" "^7.17.10"
     debug "^4.1.0"
     globals "^11.1.0"
 
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
-  version "7.17.0"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b"
-  integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
+  version "7.17.10"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4"
+  integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==
   dependencies:
     "@babel/helper-validator-identifier" "^7.16.7"
     to-fast-properties "^2.0.0"
@@ -1097,44 +1093,62 @@
   resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
   integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
 
-"@emotion/cache@^11.1.3", "@emotion/cache@^11.4.0":
-  version "11.4.0"
-  resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.4.0.tgz#293fc9d9a7a38b9aad8e9337e5014366c3b09ac0"
-  integrity sha512-Zx70bjE7LErRO9OaZrhf22Qye1y4F7iDl+ITjet0J+i+B88PrAOBkKvaAWhxsZf72tDLajwCgfCjJ2dvH77C3g==
+"@emotion/babel-plugin@^11.7.1":
+  version "11.9.2"
+  resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz#723b6d394c89fb2ef782229d92ba95a740576e95"
+  integrity sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==
+  dependencies:
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/plugin-syntax-jsx" "^7.12.13"
+    "@babel/runtime" "^7.13.10"
+    "@emotion/hash" "^0.8.0"
+    "@emotion/memoize" "^0.7.5"
+    "@emotion/serialize" "^1.0.2"
+    babel-plugin-macros "^2.6.1"
+    convert-source-map "^1.5.0"
+    escape-string-regexp "^4.0.0"
+    find-root "^1.1.0"
+    source-map "^0.5.7"
+    stylis "4.0.13"
+
+"@emotion/cache@^11.4.0", "@emotion/cache@^11.7.1":
+  version "11.7.1"
+  resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.7.1.tgz#08d080e396a42e0037848214e8aa7bf879065539"
+  integrity sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==
   dependencies:
     "@emotion/memoize" "^0.7.4"
-    "@emotion/sheet" "^1.0.0"
+    "@emotion/sheet" "^1.1.0"
     "@emotion/utils" "^1.0.0"
     "@emotion/weak-memoize" "^0.2.5"
-    stylis "^4.0.3"
+    stylis "4.0.13"
 
 "@emotion/hash@^0.8.0":
   version "0.8.0"
   resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
   integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
 
-"@emotion/memoize@^0.7.4":
+"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5":
   version "0.7.5"
   resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50"
   integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==
 
-"@emotion/react@^11.1.1":
-  version "11.1.4"
-  resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.1.4.tgz#ddee4247627ff7dd7d0c6ae52f1cfd6b420357d2"
-  integrity sha512-9gkhrW8UjV4IGRnEe4/aGPkUxoGS23aD9Vu6JCGfEDyBYL+nGkkRBoMFGAzCT9qFdyUvQp4UUtErbKWxq/JS4A==
+"@emotion/react@^11.8.1":
+  version "11.9.0"
+  resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.9.0.tgz#b6d42b1db3bd7511e7a7c4151dc8bc82e14593b8"
+  integrity sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ==
   dependencies:
-    "@babel/runtime" "^7.7.2"
-    "@emotion/cache" "^11.1.3"
-    "@emotion/serialize" "^1.0.0"
-    "@emotion/sheet" "^1.0.1"
-    "@emotion/utils" "^1.0.0"
+    "@babel/runtime" "^7.13.10"
+    "@emotion/babel-plugin" "^11.7.1"
+    "@emotion/cache" "^11.7.1"
+    "@emotion/serialize" "^1.0.3"
+    "@emotion/utils" "^1.1.0"
     "@emotion/weak-memoize" "^0.2.5"
     hoist-non-react-statics "^3.3.1"
 
-"@emotion/serialize@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.0.tgz#1a61f4f037cf39995c97fc80ebe99abc7b191ca9"
-  integrity sha512-zt1gm4rhdo5Sry8QpCOpopIUIKU+mUSpV9WNmFILUraatm5dttNEaYzUWWSboSMUE6PtN2j1cAsuvcugfdI3mw==
+"@emotion/serialize@^1.0.2", "@emotion/serialize@^1.0.3":
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.3.tgz#99e2060c26c6292469fb30db41f4690e1c8fea63"
+  integrity sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA==
   dependencies:
     "@emotion/hash" "^0.8.0"
     "@emotion/memoize" "^0.7.4"
@@ -1142,10 +1156,10 @@
     "@emotion/utils" "^1.0.0"
     csstype "^3.0.2"
 
-"@emotion/sheet@^1.0.0", "@emotion/sheet@^1.0.1":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.0.1.tgz#245f54abb02dfd82326e28689f34c27aa9b2a698"
-  integrity sha512-GbIvVMe4U+Zc+929N1V7nW6YYJtidj31lidSmdYcWozwoBIObXBnaJkKNDjZrLm9Nc0BR+ZyHNaRZxqNZbof5g==
+"@emotion/sheet@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2"
+  integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==
 
 "@emotion/unitless@^0.7.5":
   version "0.7.5"
@@ -1157,6 +1171,11 @@
   resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af"
   integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==
 
+"@emotion/utils@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf"
+  integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==
+
 "@emotion/weak-memoize@^0.2.5":
   version "0.2.5"
   resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
@@ -1408,11 +1427,24 @@
     "@types/yargs" "^16.0.0"
     chalk "^4.0.0"
 
+"@jridgewell/gen-mapping@^0.1.0":
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
+  integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
+  dependencies:
+    "@jridgewell/set-array" "^1.0.0"
+    "@jridgewell/sourcemap-codec" "^1.4.10"
+
 "@jridgewell/resolve-uri@^3.0.3":
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72"
   integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==
 
+"@jridgewell/set-array@^1.0.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01"
+  integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==
+
 "@jridgewell/sourcemap-codec@^1.4.10":
   version "1.4.10"
   resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186"
@@ -2391,10 +2423,10 @@ babel-jest@^27.5.1:
     graceful-fs "^4.2.9"
     slash "^3.0.0"
 
-babel-loader@^8.2.4:
-  version "8.2.4"
-  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b"
-  integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==
+babel-loader@^8.2.5:
+  version "8.2.5"
+  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e"
+  integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==
   dependencies:
     find-cache-dir "^3.3.1"
     loader-utils "^2.0.0"
@@ -2440,6 +2472,15 @@ babel-plugin-lodash@^3.3.4:
     lodash "^4.17.10"
     require-package-name "^2.0.1"
 
+babel-plugin-macros@^2.6.1:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
+  integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
+  dependencies:
+    "@babel/runtime" "^7.7.2"
+    cosmiconfig "^6.0.0"
+    resolve "^1.12.0"
+
 babel-plugin-macros@^3.0.1:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1"
@@ -2770,26 +2811,15 @@ browserslist@^4.0.0, browserslist@^4.12.0:
     escalade "^3.1.1"
     node-releases "^1.1.71"
 
-browserslist@^4.17.5:
-  version "4.17.5"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.5.tgz#c827bbe172a4c22b123f5e337533ceebadfdd559"
-  integrity sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==
+browserslist@^4.20.2, browserslist@^4.20.3:
+  version "4.20.3"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf"
+  integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==
   dependencies:
-    caniuse-lite "^1.0.30001271"
-    electron-to-chromium "^1.3.878"
+    caniuse-lite "^1.0.30001332"
+    electron-to-chromium "^1.4.118"
     escalade "^3.1.1"
-    node-releases "^2.0.1"
-    picocolors "^1.0.0"
-
-browserslist@^4.19.1:
-  version "4.19.1"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3"
-  integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
-  dependencies:
-    caniuse-lite "^1.0.30001286"
-    electron-to-chromium "^1.4.17"
-    escalade "^3.1.1"
-    node-releases "^2.0.1"
+    node-releases "^2.0.3"
     picocolors "^1.0.0"
 
 bser@2.1.1:
@@ -2973,11 +3003,16 @@ caniuse-api@^3.0.0:
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001271, caniuse-lite@^1.0.30001286:
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
   version "1.0.30001310"
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001310.tgz#da02cd07432c9eece6992689d1b84ca18139eea8"
   integrity sha512-cb9xTV8k9HTIUA3GnPUJCk0meUnrHL5gy5QePfDjxHyNBcnzPzrHFv5GqfP7ue5b1ZyzZL0RJboD6hQlPXjhjg==
 
+caniuse-lite@^1.0.30001332:
+  version "1.0.30001335"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz#899254a0b70579e5a957c32dced79f0727c61f2a"
+  integrity sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==
+
 chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -3361,6 +3396,13 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
   dependencies:
     safe-buffer "~5.1.1"
 
+convert-source-map@^1.5.0:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
+  integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
+  dependencies:
+    safe-buffer "~5.1.1"
+
 cookie-signature@1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
@@ -3388,12 +3430,12 @@ copy-descriptor@^0.1.0:
   resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
   integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
 
-core-js-compat@^3.20.0, core-js-compat@^3.20.2:
-  version "3.20.3"
-  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.3.tgz#d71f85f94eb5e4bea3407412e549daa083d23bd6"
-  integrity sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw==
+core-js-compat@^3.20.0, core-js-compat@^3.22.1:
+  version "3.22.4"
+  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.4.tgz#d700f451e50f1d7672dcad0ac85d910e6691e579"
+  integrity sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA==
   dependencies:
-    browserslist "^4.19.1"
+    browserslist "^4.20.3"
     semver "7.0.0"
 
 core-js-pure@^3.0.0:
@@ -3426,6 +3468,17 @@ cosmiconfig@^5.0.0:
     js-yaml "^3.13.1"
     parse-json "^4.0.0"
 
+cosmiconfig@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
+  integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
+  dependencies:
+    "@types/parse-json" "^4.0.0"
+    import-fresh "^3.1.0"
+    parse-json "^5.0.0"
+    path-type "^4.0.0"
+    yaml "^1.7.2"
+
 cosmiconfig@^7.0.0:
   version "7.0.1"
   resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d"
@@ -4101,15 +4154,10 @@ electron-to-chromium@^1.3.723:
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.736.tgz#f632d900a1f788dab22fec9c62ec5c9c8f0c4052"
   integrity sha512-DY8dA7gR51MSo66DqitEQoUMQ0Z+A2DSXFi7tK304bdTVqczCAfUuyQw6Wdg8hIoo5zIxkU1L24RQtUce1Ioig==
 
-electron-to-chromium@^1.3.878:
-  version "1.3.886"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.886.tgz#ac039c4001b665b1dd0f0ed9c2e4da90ff3c9267"
-  integrity sha512-+vYdeBosI63VkCtNWnEVFjgNd/IZwvnsWkKyPtWAvrhA+XfByKoBJcbsMgudVU/bUcGAF9Xp3aXn96voWlc3oQ==
-
-electron-to-chromium@^1.4.17:
-  version "1.4.47"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.47.tgz#5d5535cdbca2b9264abee4d6ea121995e9554bbe"
-  integrity sha512-ZHc8i3/cgeCRK/vC7W2htAG6JqUmOUgDNn/f9yY9J8UjfLjwzwOVEt4MWmgJAdvmxyrsR5KIFA/6+kUHGY0eUA==
+electron-to-chromium@^1.4.118:
+  version "1.4.129"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz#c675793885721beefff99da50f57c6525c2cd238"
+  integrity sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ==
 
 elliptic@^6.5.3:
   version "6.5.4"
@@ -4724,10 +4772,10 @@ expect@^27.5.1:
     jest-matcher-utils "^27.5.1"
     jest-message-util "^27.5.1"
 
-express@^4.17.1, express@^4.18.0:
-  version "4.18.0"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.18.0.tgz#7a426773325d0dd5406395220614c0db10b6e8e2"
-  integrity sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg==
+express@^4.17.1, express@^4.18.1:
+  version "4.18.1"
+  resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf"
+  integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==
   dependencies:
     accepts "~1.3.8"
     array-flatten "1.1.1"
@@ -4925,6 +4973,11 @@ find-cache-dir@^3.3.1:
     make-dir "^3.0.2"
     pkg-dir "^4.1.0"
 
+find-root@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+  integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+
 find-up@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
@@ -5674,6 +5727,14 @@ import-fresh@^3.0.0, import-fresh@^3.2.1:
     parent-module "^1.0.0"
     resolve-from "^4.0.0"
 
+import-fresh@^3.1.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+  dependencies:
+    parent-module "^1.0.0"
+    resolve-from "^4.0.0"
+
 import-from@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
@@ -7598,10 +7659,10 @@ node-releases@^1.1.71:
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
   integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==
 
-node-releases@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
-  integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
+node-releases@^2.0.3:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476"
+  integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==
 
 normalize-path@^2.1.1:
   version "2.1.1"
@@ -9096,14 +9157,14 @@ react-router@^4.3.1:
     prop-types "^15.6.1"
     warning "^4.0.1"
 
-react-select@^5.3.0:
-  version "5.3.0"
-  resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.3.0.tgz#dc77c1f95e1037ec4cb01c5e5d6272d80be8d3f6"
-  integrity sha512-GM6Fbv1+X+kb3e5Fc4oNeyOJkCIesY/D4NBiReKlGY4RxoeztFYm3J0KREgwMaIKQqwTiuLqTlpUBY3SYw5goQ==
+react-select@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.3.1.tgz#2cb651b71493e494c56f6b4ce40011669b34bd95"
+  integrity sha512-Y195MmhDoDAj/8gTDyYZU1Raf7tmZd81wxM6RkFko4pqJ4Xv0/ilqUMtSn+GYkwmSlTWeMlzh+e+t7PJgtuXPw==
   dependencies:
     "@babel/runtime" "^7.12.0"
     "@emotion/cache" "^11.4.0"
-    "@emotion/react" "^11.1.1"
+    "@emotion/react" "^11.8.1"
     "@types/react-transition-group" "^4.4.0"
     memoize-one "^5.0.0"
     prop-types "^15.6.0"
@@ -9298,6 +9359,13 @@ redux@^4.0.0, redux@^4.1.2:
   dependencies:
     "@babel/runtime" "^7.9.2"
 
+regenerate-unicode-properties@^10.0.1:
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56"
+  integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==
+  dependencies:
+    regenerate "^1.4.2"
+
 regenerate-unicode-properties@^8.2.0:
   version "8.2.0"
   resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
@@ -9310,6 +9378,11 @@ regenerate@^1.4.0:
   resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f"
   integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==
 
+regenerate@^1.4.2:
+  version "1.4.2"
+  resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
+  integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
+
 regenerator-runtime@^0.11.0:
   version "0.11.1"
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
@@ -9325,10 +9398,10 @@ regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
   integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
 
-regenerator-transform@^0.14.2:
-  version "0.14.5"
-  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
-  integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
+regenerator-transform@^0.15.0:
+  version "0.15.0"
+  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537"
+  integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==
   dependencies:
     "@babel/runtime" "^7.8.4"
 
@@ -9373,11 +9446,28 @@ regexpu-core@^4.7.1:
     unicode-match-property-ecmascript "^1.0.4"
     unicode-match-property-value-ecmascript "^1.2.0"
 
+regexpu-core@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3"
+  integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==
+  dependencies:
+    regenerate "^1.4.2"
+    regenerate-unicode-properties "^10.0.1"
+    regjsgen "^0.6.0"
+    regjsparser "^0.8.2"
+    unicode-match-property-ecmascript "^2.0.0"
+    unicode-match-property-value-ecmascript "^2.0.0"
+
 regjsgen@^0.5.1:
   version "0.5.2"
   resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
   integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
 
+regjsgen@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d"
+  integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==
+
 regjsparser@^0.6.4:
   version "0.6.4"
   resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272"
@@ -9385,6 +9475,13 @@ regjsparser@^0.6.4:
   dependencies:
     jsesc "~0.5.0"
 
+regjsparser@^0.8.2:
+  version "0.8.4"
+  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f"
+  integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==
+  dependencies:
+    jsesc "~0.5.0"
+
 rellax@^1.12.1:
   version "1.12.1"
   resolved "https://registry.yarnpkg.com/rellax/-/rellax-1.12.1.tgz#1b433ef7ac4aa3573449a33efab391c112f6b34d"
@@ -9656,10 +9753,10 @@ sass-loader@^10.2.0:
     schema-utils "^3.0.0"
     semver "^7.3.2"
 
-sass@^1.50.1:
-  version "1.50.1"
-  resolved "https://registry.yarnpkg.com/sass/-/sass-1.50.1.tgz#e9b078a1748863013c4712d2466ce8ca4e4ed292"
-  integrity sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==
+sass@^1.51.0:
+  version "1.51.0"
+  resolved "https://registry.yarnpkg.com/sass/-/sass-1.51.0.tgz#25ea36cf819581fe1fe8329e8c3a4eaaf70d2845"
+  integrity sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==
   dependencies:
     chokidar ">=3.0.0 <4.0.0"
     immutable "^4.0.0"
@@ -10054,7 +10151,7 @@ source-map@0.5.6:
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
   integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
 
-source-map@^0.5.0, source-map@^0.5.6:
+source-map@^0.5.6, source-map@^0.5.7:
   version "0.5.7"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
   integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -10396,10 +10493,10 @@ stylehacks@^4.0.0:
     postcss "^7.0.0"
     postcss-selector-parser "^3.0.0"
 
-stylis@^4.0.3:
-  version "4.0.6"
-  resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.6.tgz#0d8b97b6bc4748bea46f68602b6df27641b3c548"
-  integrity sha512-1igcUEmYFBEO14uQHAJhCUelTR5jPztfdVKrYxRnDa5D5Dn3w0NxXupJNPr/VV/yRfZYEAco8sTIRZzH3sRYKg==
+stylis@4.0.13:
+  version "4.0.13"
+  resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91"
+  integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==
 
 substring-trie@^1.0.2:
   version "1.0.2"
@@ -10870,6 +10967,11 @@ unicode-canonical-property-names-ecmascript@^1.0.4:
   resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
   integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
 
+unicode-canonical-property-names-ecmascript@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
+  integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+
 unicode-match-property-ecmascript@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
@@ -10878,16 +10980,34 @@ unicode-match-property-ecmascript@^1.0.4:
     unicode-canonical-property-names-ecmascript "^1.0.4"
     unicode-property-aliases-ecmascript "^1.0.4"
 
+unicode-match-property-ecmascript@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
+  integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
+  dependencies:
+    unicode-canonical-property-names-ecmascript "^2.0.0"
+    unicode-property-aliases-ecmascript "^2.0.0"
+
 unicode-match-property-value-ecmascript@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
   integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
 
+unicode-match-property-value-ecmascript@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
+  integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
+
 unicode-property-aliases-ecmascript@^1.0.4:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
   integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
 
+unicode-property-aliases-ecmascript@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8"
+  integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==
+
 union-value@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
@@ -11534,7 +11654,7 @@ yallist@^3.0.2:
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
   integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
 
-yaml@^1.10.0:
+yaml@^1.10.0, yaml@^1.7.2:
   version "1.10.2"
   resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
   integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==