about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-11-09 11:30:28 +0100
committerGitHub <noreply@github.com>2020-11-09 11:30:28 +0100
commit67125534bc0fd48a45d6cb17a5c78712d8e87150 (patch)
treeb718c8b54a0bd63eab69abaef2267c8f0aa9a9b9 /app
parentcfb16b9b70a50ec5451c9aebb2c35d3a44701311 (diff)
parentecd83f495c18486bc7ea901423f6fccfd910b277 (diff)
Merge pull request #1454 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app')
-rw-r--r--app/controllers/accounts_controller.rb4
-rw-r--r--app/controllers/activitypub/base_controller.rb4
-rw-r--r--app/controllers/activitypub/inboxes_controller.rb4
-rw-r--r--app/controllers/activitypub/replies_controller.rb2
-rw-r--r--app/controllers/concerns/account_owned_concern.rb20
-rw-r--r--app/controllers/follower_accounts_controller.rb12
-rw-r--r--app/controllers/following_accounts_controller.rb12
-rw-r--r--app/controllers/settings/deletes_controller.rb2
-rw-r--r--app/controllers/well_known/webfinger_controller.rb2
-rw-r--r--app/javascript/mastodon/locales/ar.json4
-rw-r--r--app/javascript/mastodon/locales/bn.json76
-rw-r--r--app/javascript/mastodon/locales/br.json4
-rw-r--r--app/javascript/mastodon/locales/ca.json52
-rw-r--r--app/javascript/mastodon/locales/co.json60
-rw-r--r--app/javascript/mastodon/locales/cs.json2
-rw-r--r--app/javascript/mastodon/locales/cy.json36
-rw-r--r--app/javascript/mastodon/locales/da.json76
-rw-r--r--app/javascript/mastodon/locales/de.json70
-rw-r--r--app/javascript/mastodon/locales/el.json44
-rw-r--r--app/javascript/mastodon/locales/eo.json24
-rw-r--r--app/javascript/mastodon/locales/es-AR.json174
-rw-r--r--app/javascript/mastodon/locales/es.json264
-rw-r--r--app/javascript/mastodon/locales/fa.json58
-rw-r--r--app/javascript/mastodon/locales/fr.json52
-rw-r--r--app/javascript/mastodon/locales/gl.json90
-rw-r--r--app/javascript/mastodon/locales/hi.json94
-rw-r--r--app/javascript/mastodon/locales/hr.json674
-rw-r--r--app/javascript/mastodon/locales/hu.json54
-rw-r--r--app/javascript/mastodon/locales/hy.json22
-rw-r--r--app/javascript/mastodon/locales/id.json96
-rw-r--r--app/javascript/mastodon/locales/is.json62
-rw-r--r--app/javascript/mastodon/locales/it.json80
-rw-r--r--app/javascript/mastodon/locales/ja.json42
-rw-r--r--app/javascript/mastodon/locales/kab.json26
-rw-r--r--app/javascript/mastodon/locales/kk.json42
-rw-r--r--app/javascript/mastodon/locales/kn.json8
-rw-r--r--app/javascript/mastodon/locales/ko.json56
-rw-r--r--app/javascript/mastodon/locales/ku.json954
-rw-r--r--app/javascript/mastodon/locales/ml.json48
-rw-r--r--app/javascript/mastodon/locales/nl.json18
-rw-r--r--app/javascript/mastodon/locales/nn.json72
-rw-r--r--app/javascript/mastodon/locales/no.json64
-rw-r--r--app/javascript/mastodon/locales/oc.json68
-rw-r--r--app/javascript/mastodon/locales/pl.json68
-rw-r--r--app/javascript/mastodon/locales/pt-BR.json52
-rw-r--r--app/javascript/mastodon/locales/pt-PT.json78
-rw-r--r--app/javascript/mastodon/locales/ru.json34
-rw-r--r--app/javascript/mastodon/locales/sa.json484
-rw-r--r--app/javascript/mastodon/locales/sc.json16
-rw-r--r--app/javascript/mastodon/locales/sk.json12
-rw-r--r--app/javascript/mastodon/locales/sl.json2
-rw-r--r--app/javascript/mastodon/locales/sq.json48
-rw-r--r--app/javascript/mastodon/locales/sv.json36
-rw-r--r--app/javascript/mastodon/locales/szl.json2
-rw-r--r--app/javascript/mastodon/locales/ta.json166
-rw-r--r--app/javascript/mastodon/locales/tai.json2
-rw-r--r--app/javascript/mastodon/locales/th.json42
-rw-r--r--app/javascript/mastodon/locales/tr.json276
-rw-r--r--app/javascript/mastodon/locales/ug.json2
-rw-r--r--app/javascript/mastodon/locales/uk.json22
-rw-r--r--app/javascript/mastodon/locales/vi.json184
-rw-r--r--app/javascript/mastodon/locales/whitelist_sa.json2
-rw-r--r--app/javascript/mastodon/locales/whitelist_zgh.json2
-rw-r--r--app/javascript/mastodon/locales/zgh.json484
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json58
-rw-r--r--app/javascript/mastodon/locales/zh-HK.json34
-rw-r--r--app/javascript/mastodon/locales/zh-TW.json58
-rw-r--r--app/javascript/styles/mastodon/widgets.scss4
-rw-r--r--app/lib/activitypub/activity/move.rb3
-rw-r--r--app/lib/activitypub/adapter.rb1
-rw-r--r--app/lib/webfinger.rb4
-rw-r--r--app/models/account.rb16
-rw-r--r--app/models/admin/account_action.rb2
-rw-r--r--app/policies/account_policy.rb4
-rw-r--r--app/serializers/activitypub/actor_serializer.rb33
-rw-r--r--app/services/activitypub/process_account_service.rb55
-rw-r--r--app/services/activitypub/process_collection_service.rb10
-rw-r--r--app/services/block_domain_service.rb5
-rw-r--r--app/services/delete_account_service.rb40
-rw-r--r--app/services/resolve_account_service.rb27
-rw-r--r--app/services/suspend_account_service.rb29
-rw-r--r--app/services/unblock_domain_service.rb2
-rw-r--r--app/services/unsuspend_account_service.rb20
-rw-r--r--app/workers/account_deletion_worker.rb4
84 files changed, 3606 insertions, 2445 deletions
diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb
index 356542767..052394ab4 100644
--- a/app/controllers/accounts_controller.rb
+++ b/app/controllers/accounts_controller.rb
@@ -103,6 +103,10 @@ class AccountsController < ApplicationController
     params[:username]
   end
 
+  def skip_temporary_suspension_response?
+    request.format == :json
+  end
+
   def rss_url
     if tag_requested?
       short_account_tag_url(@account, params[:tag], format: 'rss')
diff --git a/app/controllers/activitypub/base_controller.rb b/app/controllers/activitypub/base_controller.rb
index 0c2591e97..4cbc3ab8f 100644
--- a/app/controllers/activitypub/base_controller.rb
+++ b/app/controllers/activitypub/base_controller.rb
@@ -8,4 +8,8 @@ class ActivityPub::BaseController < Api::BaseController
   def set_cache_headers
     response.headers['Vary'] = 'Signature' if authorized_fetch_mode?
   end
+
+  def skip_temporary_suspension_response?
+    false
+  end
 end
diff --git a/app/controllers/activitypub/inboxes_controller.rb b/app/controllers/activitypub/inboxes_controller.rb
index fdb60d590..d3044f180 100644
--- a/app/controllers/activitypub/inboxes_controller.rb
+++ b/app/controllers/activitypub/inboxes_controller.rb
@@ -33,6 +33,10 @@ class ActivityPub::InboxesController < ActivityPub::BaseController
     params[:account_username].present?
   end
 
+  def skip_temporary_suspension_response?
+    true
+  end
+
   def body
     return @body if defined?(@body)
 
diff --git a/app/controllers/activitypub/replies_controller.rb b/app/controllers/activitypub/replies_controller.rb
index 43bf4e657..fde6c861f 100644
--- a/app/controllers/activitypub/replies_controller.rb
+++ b/app/controllers/activitypub/replies_controller.rb
@@ -31,7 +31,7 @@ class ActivityPub::RepliesController < ActivityPub::BaseController
   end
 
   def set_replies
-    @replies = only_other_accounts? ? Status.where.not(account_id: @account.id) : @account.statuses
+    @replies = only_other_accounts? ? Status.where.not(account_id: @account.id).joins(:account).merge(Account.without_suspended) : @account.statuses
     @replies = @replies.where(in_reply_to_id: @status.id, visibility: [:public, :unlisted])
     @replies = @replies.paginate_by_min_id(DESCENDANTS_LIMIT, params[:min_id])
   end
diff --git a/app/controllers/concerns/account_owned_concern.rb b/app/controllers/concerns/account_owned_concern.rb
index 460f71f65..62e379846 100644
--- a/app/controllers/concerns/account_owned_concern.rb
+++ b/app/controllers/concerns/account_owned_concern.rb
@@ -29,6 +29,24 @@ module AccountOwnedConcern
   end
 
   def check_account_suspension
-    expires_in(3.minutes, public: true) && gone if @account.suspended?
+    if @account.suspended_permanently?
+      permanent_suspension_response
+    elsif @account.suspended? && !skip_temporary_suspension_response?
+      temporary_suspension_response
+    end
+  end
+
+  def skip_temporary_suspension_response?
+    false
+  end
+
+  def permanent_suspension_response
+    expires_in(3.minutes, public: true)
+    gone
+  end
+
+  def temporary_suspension_response
+    expires_in(3.minutes, public: true)
+    forbidden
   end
 end
diff --git a/app/controllers/follower_accounts_controller.rb b/app/controllers/follower_accounts_controller.rb
index 5ffbdae79..18b281325 100644
--- a/app/controllers/follower_accounts_controller.rb
+++ b/app/controllers/follower_accounts_controller.rb
@@ -53,6 +53,14 @@ class FollowerAccountsController < ApplicationController
     account_followers_url(@account, page: page) unless page.nil?
   end
 
+  def next_page_url
+    page_url(follows.next_page) if follows.respond_to?(:next_page)
+  end
+
+  def prev_page_url
+    page_url(follows.prev_page) if follows.respond_to?(:prev_page)
+  end
+
   def collection_presenter
     options = { type: :ordered }
     options[:size] = @account.followers_count unless Setting.hide_followers_count || @account.user&.setting_hide_followers_count
@@ -61,8 +69,8 @@ class FollowerAccountsController < ApplicationController
         id: account_followers_url(@account, page: params.fetch(:page, 1)),
         items: follows.map { |f| ActivityPub::TagManager.instance.uri_for(f.account) },
         part_of: account_followers_url(@account),
-        next: page_url(follows.next_page),
-        prev: page_url(follows.prev_page),
+        next: next_page_url,
+        prev: prev_page_url,
         **options
       )
     else
diff --git a/app/controllers/following_accounts_controller.rb b/app/controllers/following_accounts_controller.rb
index 69820ebb7..eba44d34b 100644
--- a/app/controllers/following_accounts_controller.rb
+++ b/app/controllers/following_accounts_controller.rb
@@ -53,6 +53,14 @@ class FollowingAccountsController < ApplicationController
     account_following_index_url(@account, page: page) unless page.nil?
   end
 
+  def next_page_url
+    page_url(follows.next_page) if follows.respond_to?(:next_page)
+  end
+
+  def prev_page_url
+    page_url(follows.prev_page) if follows.respond_to?(:prev_page)
+  end
+
   def collection_presenter
     if page_requested?
       ActivityPub::CollectionPresenter.new(
@@ -61,8 +69,8 @@ class FollowingAccountsController < ApplicationController
         size: @account.following_count,
         items: follows.map { |f| ActivityPub::TagManager.instance.uri_for(f.target_account) },
         part_of: account_following_index_url(@account),
-        next: page_url(follows.next_page),
-        prev: page_url(follows.prev_page)
+        next: next_page_url,
+        prev: prev_page_url
       )
     else
       ActivityPub::CollectionPresenter.new(
diff --git a/app/controllers/settings/deletes_controller.rb b/app/controllers/settings/deletes_controller.rb
index f96c83b80..7b8f8d207 100644
--- a/app/controllers/settings/deletes_controller.rb
+++ b/app/controllers/settings/deletes_controller.rb
@@ -42,7 +42,7 @@ class Settings::DeletesController < Settings::BaseController
   end
 
   def destroy_account!
-    current_account.suspend!
+    current_account.suspend!(origin: :local)
     AccountDeletionWorker.perform_async(current_user.account_id)
     sign_out
   end
diff --git a/app/controllers/well_known/webfinger_controller.rb b/app/controllers/well_known/webfinger_controller.rb
index 9de9db6ba..0227f722a 100644
--- a/app/controllers/well_known/webfinger_controller.rb
+++ b/app/controllers/well_known/webfinger_controller.rb
@@ -35,7 +35,7 @@ module WellKnown
     end
 
     def check_account_suspension
-      expires_in(3.minutes, public: true) && gone if @account.suspended?
+      expires_in(3.minutes, public: true) && gone if @account.suspended_permanently?
     end
 
     def bad_request
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index c22fac1fa..8f0e04561 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -326,7 +326,7 @@
   "notifications.column_settings.reblog": "الترقيّات:",
   "notifications.column_settings.show": "اعرِضها في عمود",
   "notifications.column_settings.sound": "أصدر صوتا",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "تبويقات جديدة:",
   "notifications.filter.all": "الكل",
   "notifications.filter.boosts": "الترقيات",
   "notifications.filter.favourites": "المفضلة",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}  مليون",
   "units.short.thousand": "{count}  ألف",
   "upload_area.title": "اسحب ثم أفلت للرفع",
-  "upload_button.label": "إضافة وسائط ({formats})",
+  "upload_button.label": "إضافة وسائط",
   "upload_error.limit": "لقد تم بلوغ الحد الأقصى المسموح به لإرسال الملفات.",
   "upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.",
   "upload_form.audio_description": "وصف للأشخاص ذي قِصر السمع",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index ead3d29f1..056a3d424 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -1,12 +1,12 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "নোট",
   "account.add_or_remove_from_list": "তালিকাতে যুক্ত বা অপসারণ করুন",
   "account.badges.bot": "বট",
-  "account.badges.group": "Group",
+  "account.badges.group": "গ্রুপ",
   "account.block": "@{name} কে ব্লক করুন",
   "account.block_domain": "{domain} থেকে সব আড়াল করুন",
   "account.blocked": "অবরুদ্ধ",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "মূল প্রোফাইলটিতে আরও ব্রাউজ করুন",
   "account.cancel_follow_request": "অনুসরণ অনুরোধ বাতিল করুন",
   "account.direct": "@{name} কে সরাসরি বার্তা",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
@@ -17,8 +17,8 @@
   "account.follow": "অনুসরণ করুন",
   "account.followers": "অনুসরণকারী",
   "account.followers.empty": "এই সদস্যকে এখনো কেউ অনুসরণ করে না।.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural,one {{counter} জন অনুসরণকারী } other {{counter} জন অনুসরণকারী}}",
+  "account.following_counter": "{count, plural,one {{counter} জনকে অনুসরণ} other {{counter} জনকে অনুসরণ}}",
   "account.follows.empty": "এই সদস্য কাওকে এখনো অনুসরণ করেন না.",
   "account.follows_you": "আপনাকে অনুসরণ করে",
   "account.hide_reblogs": "@{name}'র সমর্থনগুলি লুকিয়ে ফেলুন",
@@ -38,19 +38,19 @@
   "account.requested": "অনুমতির অপেক্ষা। অনুসরণ করার অনুরোধ বাতিল করতে এখানে ক্লিক করুন",
   "account.share": "@{name} র প্রোফাইল অন্যদের দেখান",
   "account.show_reblogs": "@{name} র সমর্থনগুলো দেখান",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural,one {{counter} টুট} other {{counter} টুট}}",
   "account.unblock": "@{name} র কার্যকলাপ দেখুন",
   "account.unblock_domain": "{domain} কে আবার দেখুন",
   "account.unendorse": "আপনার নিজের পাতায় এটা দেখবেন না",
   "account.unfollow": "অনুসরণ না করতে",
   "account.unmute": "@{name} র কার্যকলাপ আবার দেখুন",
   "account.unmute_notifications": "@{name} র প্রজ্ঞাপন দেখুন",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "নোট যোগ করতে ক্লিক করুন",
   "alert.rate_limited.message": "{retry_time, time, medium} -এর পরে আবার প্রচেষ্টা করুন।",
   "alert.rate_limited.title": "হার সীমিত",
   "alert.unexpected.message": "সমস্যা অপ্রত্যাশিত.",
   "alert.unexpected.title": "ওহো!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "ঘোষণা",
   "autosuggest_hashtag.per_week": "প্রতি সপ্তাহে {count}",
   "boost_modal.combo": "পরেরবার আপনি {combo} টিপলে এটি আর আসবে না",
   "bundle_column_error.body": "এই অংশটি দেখতে যেয়ে কোনো সমস্যা হয়েছে।.",
@@ -60,7 +60,7 @@
   "bundle_modal_error.message": "এই অংশটি দেখাতে যেয়ে কোনো সমস্যা হয়েছে।.",
   "bundle_modal_error.retry": "আবার চেষ্টা করুন",
   "column.blocks": "যাদের ব্লক করা হয়েছে",
-  "column.bookmarks": "Bookmarks",
+  "column.bookmarks": "বুকমার্ক",
   "column.community": "স্থানীয় সময়সারি",
   "column.direct": "সরাসরি লেখা",
   "column.directory": "প্রোফাইল ব্রাউজ করুন",
@@ -81,9 +81,9 @@
   "column_header.show_settings": "সেটিং দেখান",
   "column_header.unpin": "পিন খুলুন",
   "column_subheading.settings": "সেটিং",
-  "community.column_settings.local_only": "Local only",
+  "community.column_settings.local_only": "শুধুমাত্র স্থানীয়",
   "community.column_settings.media_only": "শুধুমাত্র ছবি বা ভিডিও",
-  "community.column_settings.remote_only": "Remote only",
+  "community.column_settings.remote_only": "শুধুমাত্র দূরবর্তী",
   "compose_form.direct_message_warning": "শুধুমাত্র যাদেরকে উল্লেখ করা হয়েছে তাদেরকেই এই টুটটি পাঠানো হবে ।",
   "compose_form.direct_message_warning_learn_more": "আরো জানুন",
   "compose_form.hashtag_warning": "কোনো হ্যাশট্যাগের ভেতরে এই টুটটি থাকবেনা কারণ এটি তালিকাবহির্ভূত। শুধুমাত্র প্রকাশ্য ঠোটগুলো হ্যাশট্যাগের ভেতরে খুঁজে পাওয়া যাবে।",
@@ -94,8 +94,8 @@
   "compose_form.poll.duration": "ভোটগ্রহনের সময়",
   "compose_form.poll.option_placeholder": "বিকল্প {number}",
   "compose_form.poll.remove_option": "এই বিকল্পটি মুছে ফেলুন",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.poll.switch_to_multiple": "একাধিক পছন্দ অনুমতি দেওয়ার জন্য পোল পরিবর্তন করুন",
+  "compose_form.poll.switch_to_single": "একটি একক পছন্দের অনুমতি দেওয়ার জন্য পোল পরিবর্তন করুন",
   "compose_form.publish": "টুট",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.hide": "এই ছবি বা ভিডিওটি সংবেদনশীল হিসেবে চিহ্নিত করতে",
@@ -152,7 +152,7 @@
   "empty_column.account_timeline": "এখানে কোনো টুট নেই!",
   "empty_column.account_unavailable": "নিজস্ব পাতা নেই",
   "empty_column.blocks": "আপনি কোনো ব্যবহারকারীদের ব্লক করেন নি।",
-  "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+  "empty_column.bookmarked_statuses": "আপনার কাছে এখনও কোনও বুকমার্কড টুট নেই। আপনি যখন একটি বুকমার্ক করেন, এটি এখানে প্রদর্শিত হবে।",
   "empty_column.community": "স্থানীয় সময়রেখাতে কিছু নেই। প্রকাশ্যভাবে কিছু লিখে লেখালেখির উদ্বোধন করে ফেলুন!",
   "empty_column.direct": "আপনার কাছে সরাসরি পাঠানো কোনো লেখা নেই। যদি কেও পাঠায়, সেটা এখানে দেখা যাবে।",
   "empty_column.domain_blocks": "এখনও কোনও লুকানো ডোমেন নেই।",
@@ -175,8 +175,8 @@
   "errors.unexpected_crash.report_issue": "সমস্যার প্রতিবেদন করুন",
   "follow_request.authorize": "অনুমতি দিন",
   "follow_request.reject": "প্রত্যাখ্যান করুন",
-  "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
-  "generic.saved": "Saved",
+  "follow_requests.unlocked_explanation": "আপনার অ্যাকাউন্টটি লক না থাকলেও, {domain} কর্মীরা ভেবেছিলেন যে আপনি এই অ্যাকাউন্টগুলি থেকে ম্যানুয়ালি অনুসরণের অনুরোধগুলি পর্যালোচনা করতে চাইতে পারেন।",
+  "generic.saved": "সংরক্ষণ হয়েছে",
   "getting_started.developers": "তৈরিকারকদের জন্য",
   "getting_started.directory": "নিজস্ব-পাতাগুলির তালিকা",
   "getting_started.documentation": "নথিপত্র",
@@ -197,8 +197,8 @@
   "home.column_settings.basic": "সাধারণ",
   "home.column_settings.show_reblogs": "সমর্থনগুলো দেখান",
   "home.column_settings.show_replies": "মতামত দেখান",
-  "home.hide_announcements": "Hide announcements",
-  "home.show_announcements": "Show announcements",
+  "home.hide_announcements": "ঘোষণা লুকান",
+  "home.show_announcements": "ঘোষণা দেখান",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# ঘটা} other {# ঘটা}}",
   "intervals.full.minutes": "{number, plural, one {# মিনিট} other {# মিনিট}}",
@@ -240,13 +240,13 @@
   "keyboard_shortcuts.muted": "বন্ধ করা ব্যবহারকারীদের তালিকা খুলতে",
   "keyboard_shortcuts.my_profile": "আপনার নিজের পাতা দেখতে",
   "keyboard_shortcuts.notifications": "প্রজ্ঞাপনের কলাম খুলতে",
-  "keyboard_shortcuts.open_media": "to open media",
+  "keyboard_shortcuts.open_media": "মিডিয়া খলার জন্য",
   "keyboard_shortcuts.pinned": "পিন দেওয়া টুটের তালিকা খুলতে",
   "keyboard_shortcuts.profile": "লেখকের পাতা দেখতে",
   "keyboard_shortcuts.reply": "মতামত দিতে",
   "keyboard_shortcuts.requests": "অনুসরণ অনুরোধের তালিকা দেখতে",
   "keyboard_shortcuts.search": "খোঁজার অংশে ফোকাস করতে",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "CW ক্ষেত্র দেখাবার/লুকবার জন্য",
   "keyboard_shortcuts.start": "\"প্রথম শুরুর\" কলাম বের করতে",
   "keyboard_shortcuts.toggle_hidden": "CW লেখা দেখতে বা লুকাতে",
   "keyboard_shortcuts.toggle_sensitivity": "ভিডিও/ছবি দেখতে বা বন্ধ করতে",
@@ -282,7 +282,7 @@
   "mute_modal.indefinite": "Indefinite",
   "navigation_bar.apps": "মোবাইলের আপ্প",
   "navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী",
-  "navigation_bar.bookmarks": "Bookmarks",
+  "navigation_bar.bookmarks": "বুকমার্ক",
   "navigation_bar.community_timeline": "স্থানীয় সময়রেখা",
   "navigation_bar.compose": "নতুন টুট লিখুন",
   "navigation_bar.direct": "সরাসরি লেখাগুলি",
@@ -305,7 +305,7 @@
   "navigation_bar.security": "নিরাপত্তা",
   "notification.favourite": "{name} আপনার কার্যক্রম পছন্দ করেছেন",
   "notification.follow": "{name} আপনাকে অনুসরণ করেছেন",
-  "notification.follow_request": "{name} has requested to follow you",
+  "notification.follow_request": "{name} আপনাকে অনুসরণ করার জন্য অনুরধ করেছে",
   "notification.mention": "{name} আপনাকে উল্লেখ করেছেন",
   "notification.own_poll": "আপনার পোল শেষ হয়েছে",
   "notification.poll": "আপনি ভোট দিয়েছিলেন এমন এক  নির্বাচনের ভোটের সময় শেষ হয়েছে",
@@ -319,7 +319,7 @@
   "notifications.column_settings.filter_bar.category": "সংক্ষিপ্ত ছাঁকনি অংশ",
   "notifications.column_settings.filter_bar.show": "দেখানো",
   "notifications.column_settings.follow": "নতুন অনুসরণকারীরা:",
-  "notifications.column_settings.follow_request": "New follow requests:",
+  "notifications.column_settings.follow_request": "অনুসরণের অনুরোধগুলি:",
   "notifications.column_settings.mention": "প্রজ্ঞাপনগুলো:",
   "notifications.column_settings.poll": "নির্বাচনের ফলাফল:",
   "notifications.column_settings.push": "পুশ প্রজ্ঞাপনগুলি",
@@ -367,7 +367,7 @@
   "relative_time.just_now": "এখন",
   "relative_time.minutes": "{number}মিঃ",
   "relative_time.seconds": "{number} সেকেন্ড",
-  "relative_time.today": "today",
+  "relative_time.today": "আজ",
   "reply_indicator.cancel": "বাতিল করতে",
   "report.forward": "এটা আরো পাঠান {target} তে",
   "report.forward_hint": "এই নিবন্ধনটি অন্য একটি সার্ভারে। অপ্রকাশিতনামাভাবে রিপোর্টের কপি সেখানেও কি পাঠাতে চান ?",
@@ -390,7 +390,7 @@
   "status.admin_account": "@{name} র জন্য পরিচালনার ইন্টারফেসে ঢুকুন",
   "status.admin_status": "যায় লেখাটি পরিচালনার ইন্টারফেসে খুলুন",
   "status.block": "@{name} কে ব্লক করুন",
-  "status.bookmark": "Bookmark",
+  "status.bookmark": "বুকমার্ক",
   "status.cancel_reblog_private": "সমর্থন বাতিল করতে",
   "status.cannot_reblog": "এটিতে সমর্থন দেওয়া যাবেনা",
   "status.copy": "লেখাটির লিংক কপি করতে",
@@ -415,7 +415,7 @@
   "status.reblogged_by": "{name} সমর্থন দিয়েছে",
   "status.reblogs.empty": "এখনো কেও এটাতে সমর্থন দেয়নি। যখন কেও দেয়, সেটা তখন এখানে দেখা যাবে।",
   "status.redraft": "মুছে আবার নতুন করে লিখতে",
-  "status.remove_bookmark": "Remove bookmark",
+  "status.remove_bookmark": "বুকমার্ক সরান",
   "status.reply": "মতামত জানাতে",
   "status.replyAll": "লেখাযুক্ত সবার কাছে মতামত জানাতে",
   "status.report": "@{name} কে রিপোর্ট করতে",
@@ -441,29 +441,29 @@
   "time_remaining.minutes": "{number, plural, one {# মিনিট} other {# মিনিট}} বাকি আছে",
   "time_remaining.moments": "সময় বাকি আছে",
   "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} বাকি আছে",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "timeline_hint.remote_resource_not_displayed": "অন্য সার্ভারগুলি থেকে {resource} দেখাচ্ছে না। ",
+  "timeline_hint.resources.followers": "অনুসরকারীরা",
+  "timeline_hint.resources.follows": "অনুসরণ করে",
+  "timeline_hint.resources.statuses": "পুরনো টুটগুলি",
+  "trends.counter_by_accounts": "{count, plural,one {{counter} জন ব্যক্তি} other {{counter} জন লোক}} কথা বলছে",
   "trends.trending_now": "বর্তমানে জনপ্রিয়",
   "ui.beforeunload": "যে পর্যন্ত এটা লেখা হয়েছে, মাস্টাডন থেকে চলে গেলে এটা মুছে যাবে।",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.billion": "{count}বিলিয়ন",
+  "units.short.million": "{count}মিলিওন",
+  "units.short.thousand": "{count}হাজার",
   "upload_area.title": "টেনে এখানে ছেড়ে দিলে এখানে যুক্ত করা যাবে",
   "upload_button.label": "ছবি বা ভিডিও যুক্ত করতে (এসব ধরণের: JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "যা যুক্ত করতে চাচ্ছেন সেটি বেশি বড়, এখানকার সর্বাধিকের মেমোরির উপরে চলে গেছে।",
   "upload_error.poll": "নির্বাচনক্ষেত্রে কোনো ফাইল যুক্ত করা যাবেনা।",
-  "upload_form.audio_description": "Describe for people with hearing loss",
+  "upload_form.audio_description": "শ্রবণশক্তি লোকদের জন্য বর্ণনা করুন",
   "upload_form.description": "যারা দেখতে পায়না তাদের জন্য এটা বর্ণনা করতে",
   "upload_form.edit": "সম্পাদন",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "থাম্বনেল পরিবর্তন করুন",
   "upload_form.undo": "মুছে ফেলতে",
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+  "upload_form.video_description": "শ্রবণশক্তি হ্রাস বা চাক্ষুষ প্রতিবন্ধী ব্যক্তিদের জন্য বর্ণনা করুন",
   "upload_modal.analyzing_picture": "চিত্র বিশ্লেষণ করা হচ্ছে…",
   "upload_modal.apply": "প্রয়োগ করুন",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "ছবি নির্বাচন করুন",
   "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
   "upload_modal.detect_text": "ছবি থেকে পাঠ্য সনাক্ত করুন",
   "upload_modal.edit_media": "মিডিয়া সম্পাদনা করুন",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index bb1461354..ce7260477 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -304,7 +304,7 @@
   "navigation_bar.public_timeline": "Red-amzer kevreet",
   "navigation_bar.security": "Diogelroez",
   "notification.favourite": "{name} favourited your status",
-  "notification.follow": "{name} followed you",
+  "notification.follow": "heuliañ a ra {name} ac'hanoc'h",
   "notification.follow_request": "{name} has requested to follow you",
   "notification.mention": "{name} mentioned you",
   "notification.own_poll": "Your poll has ended",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Drag & drop to upload",
-  "upload_button.label": "Ouzhpennañ ur media ({formats})",
+  "upload_button.label": "Ouzhpennañ ur media",
   "upload_error.limit": "File upload limit exceeded.",
   "upload_error.poll": "File upload not allowed with polls.",
   "upload_form.audio_description": "Describe for people with hearing loss",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 9bb17241a..93bcffeaa 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -1,5 +1,5 @@
 {
-  "account.account_note_header": "La teva nota per a @{name}",
+  "account.account_note_header": "Nota",
   "account.add_or_remove_from_list": "Afegir o Treure de les llistes",
   "account.badges.bot": "Bot",
   "account.badges.group": "Grup",
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "Navega més en el perfil original",
   "account.cancel_follow_request": "Anul·la la sol·licitud de seguiment",
   "account.direct": "Missatge directe @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Deixa de notificar-me els tuts de @{name}",
   "account.domain_blocked": "Domini ocult",
   "account.edit_profile": "Edita el perfil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Notifica’m els tuts de @{name}",
   "account.endorse": "Recomana en el teu perfil",
   "account.follow": "Segueix",
   "account.followers": "Seguidors",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "Encara no tens notificacions. Interactua amb altres per iniciar la conversa.",
   "empty_column.public": "No hi ha res aquí! Escriu públicament alguna cosa o manualment segueix usuaris d'altres servidors per omplir-ho",
   "error.unexpected_crash.explanation": "A causa d'un bug en el nostre codi o un problema de compatibilitat del navegador, aquesta pàgina podria no ser mostrada correctament.",
-  "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
-  "error.unexpected_crash.next_steps": "Prova recarregant la pàgina. Si això no ajuda, encara podries ser capaç d'utilitzar Mastodon a través d'un navegador diferent o amb una app nativa.",
-  "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.explanation_addons": "Aquesta pàgina podria no mostrar-se correctament. Aquest error és possiblement causat per una extensió del navegador o per eienes automàtiques de traducció.",
+  "error.unexpected_crash.next_steps": "Prova recarregant la pàgina. Si això no ajuda, encara podries ser capaç d'utilitzar Mastodon a través d'un navegador diferent o amb una aplicació nativa.",
+  "error.unexpected_crash.next_steps_addons": "Prova de desactivar-les i refrescant la pàgina. Si això no ajuda, encara pots ser capaç d’utilitzar Mastodon amb un altre navegador o aplicació nativa.",
   "errors.unexpected_crash.copy_stacktrace": "Còpia stacktrace al porta-retalls",
   "errors.unexpected_crash.report_issue": "Informa d'un problema",
   "follow_request.authorize": "Autoritzar",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "descentrar l'àrea de composició de text/cerca",
   "keyboard_shortcuts.up": "moure amunt en la llista",
   "lightbox.close": "Tancar",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Quadre de visualització d’imatge comprimida",
+  "lightbox.expand": "Amplia el quadre de visualització de l’imatge",
   "lightbox.next": "Següent",
   "lightbox.previous": "Anterior",
   "lightbox.view_context": "Veure el context",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Canvi de títol",
   "lists.new.create": "Afegir llista",
   "lists.new.title_placeholder": "Nova llista",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Qualsevol usuari seguit",
+  "lists.replies_policy.list_replies": "Membres de la llista",
+  "lists.replies_policy.no_replies": "Ningú",
+  "lists.replies_policy.title": "Mostra respostes a:",
   "lists.search": "Cercar entre les persones que segueixes",
   "lists.subheading": "Les teves llistes",
   "load_pending": "{count, plural, one {# element nou} other {# elements nous}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Alternar visibilitat",
   "missing_indicator.label": "No trobat",
   "missing_indicator.sublabel": "Aquest recurs no pot ser trobat",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Durada",
   "mute_modal.hide_notifications": "Amagar notificacions d'aquest usuari?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Indefinit",
   "navigation_bar.apps": "Apps mòbils",
   "navigation_bar.blocks": "Usuaris bloquejats",
   "navigation_bar.bookmarks": "Marcadors",
@@ -310,7 +310,7 @@
   "notification.own_poll": "La teva enquesta ha finalitzat",
   "notification.poll": "Ha finalitzat una enquesta en la que has votat",
   "notification.reblog": "{name} ha impulsat el teu estat",
-  "notification.status": "{name} just posted",
+  "notification.status": "ha publicat {name}",
   "notifications.clear": "Netejar notificacions",
   "notifications.clear_confirmation": "Estàs segur que vols esborrar permanentment totes les teves notificacions?",
   "notifications.column_settings.alert": "Notificacions d'escriptori",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Impulsos:",
   "notifications.column_settings.show": "Mostra en la columna",
   "notifications.column_settings.sound": "Reproduir so",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Nous tuts:",
   "notifications.filter.all": "Tots",
   "notifications.filter.boosts": "Impulsos",
   "notifications.filter.favourites": "Favorits",
   "notifications.filter.follows": "Seguiments",
   "notifications.filter.mentions": "Mencions",
   "notifications.filter.polls": "Resultats de l'enquesta",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Actualitzacions de gent que segueixes",
   "notifications.group": "{count} notificacions",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Marca cada notificació com a llegida",
+  "notifications.permission_denied": "No s’ha pogut activar les notificacions d’escriptori perquè s’ha denegat el permís.",
+  "notifications.permission_denied_alert": "No es poden activar les notificacions del escriptori perquè el permís del navegador ha estat denegat abans",
+  "notifications_permission_banner.enable": "Activar les notificacions d’escriptori",
+  "notifications_permission_banner.how_to_control": "Per a rebre notificacions quan Mastodon no està obert cal activar les notificacions d’escriptori. Pots controlar amb precisió quins tipus d’interaccions generen notificacions d’escriptori després d’activar el botó {icon} de dalt.",
+  "notifications_permission_banner.title": "Mai et perdis res",
+  "picture_in_picture.restore": "Retorna’l",
   "poll.closed": "Finalitzada",
   "poll.refresh": "Actualitza",
   "poll.total_people": "{count, plural, one {# persona} other {# persones}}",
@@ -464,11 +464,11 @@
   "upload_modal.analyzing_picture": "Analitzant imatge…",
   "upload_modal.apply": "Aplica",
   "upload_modal.choose_image": "Tria imatge",
-  "upload_modal.description_placeholder": "Uns salts ràpids de guineu marró sobre el gos gandul",
+  "upload_modal.description_placeholder": "Jove xef, porti whisky amb quinze glaçons d’hidrogen, coi!",
   "upload_modal.detect_text": "Detecta el text de l'imatge",
   "upload_modal.edit_media": "Editar multimèdia",
   "upload_modal.hint": "Fes clic o arrossega el cercle en la previsualització per escollir el punt focal que sempre serà visible de totes les miniatures.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Preparant OCR…",
   "upload_modal.preview_label": "Previsualitza ({ratio})",
   "upload_progress.label": "Pujant...",
   "video.close": "Tancar el vídeo",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index 4856a2ba3..26e5e9f20 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -1,5 +1,5 @@
 {
-  "account.account_note_header": "A vostra nota per @{name}",
+  "account.account_note_header": "Nota",
   "account.add_or_remove_from_list": "Aghjunghje o toglie da e liste",
   "account.badges.bot": "Bot",
   "account.badges.group": "Gruppu",
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "Vede di più nant'à u prufile uriginale",
   "account.cancel_follow_request": "Annullà a dumanda d'abbunamentu",
   "account.direct": "Missaghju direttu @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Ùn mi nutificate più quandu @{name} pubblica qualcosa",
   "account.domain_blocked": "Duminiu piattatu",
   "account.edit_profile": "Mudificà u prufile",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Nutificate mi quandu @{name} pubblica qualcosa",
   "account.endorse": "Fà figurà nant'à u prufilu",
   "account.follow": "Siguità",
   "account.followers": "Abbunati",
@@ -98,9 +98,9 @@
   "compose_form.poll.switch_to_single": "Cambià u scandagliu per ùn accittà ch'una scelta",
   "compose_form.publish": "Toot",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Indicà u media cum'è sensibile",
-  "compose_form.sensitive.marked": "Media indicatu cum'è sensibile",
-  "compose_form.sensitive.unmarked": "Media micca indicatu cum'è sensibile",
+  "compose_form.sensitive.hide": "{count, plural, one {Indicà u media cum'è sensibile} other {Indicà i media cum'è sensibili}}",
+  "compose_form.sensitive.marked": "{count, plural, one {Media indicatu cum'è sensibile} other {Media indicati cum'è sensibili}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Media micca indicatu cum'è sensibile} other {Media micca indicati cum'è sensibili}}",
   "compose_form.spoiler.marked": "Testu piattatu daret'à un'avertimentu",
   "compose_form.spoiler.unmarked": "Testu micca piattatu",
   "compose_form.spoiler_placeholder": "Scrive u vostr'avertimentu quì",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "Ùn avete ancu nisuna nutificazione. Interact with others to start the conversation.",
   "empty_column.public": "Ùn c'hè nunda quì! Scrivete qualcosa in pubblicu o seguitate utilizatori d'altri servori per empie a linea pubblica",
   "error.unexpected_crash.explanation": "In ragione d'un bug indè u nostru codice o un prublemu di cumpatibilità cù quessu navigatore, sta pagina ùn hè micca pussuta esse affissata currettamente.",
-  "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": "Sta pagina ùn hè micca pussuta esse affissata currettamente, prubabilmente per via d'un'estenzione di navigatore o d'un lugiziale di traduzione.",
   "error.unexpected_crash.next_steps": "Pruvate d'attualizà sta pagina. S'ellu persiste u prublemu, pudete forse sempre accede à Mastodon dapoi un'alltru navigatore o applicazione.",
-  "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": "Pruvate di disattivà quelli è poi attualizà sta pagina. S'ellu persiste u prublemu, pudete forse sempre accede à Mastodon dapoi un'alltru navigatore o applicazione.",
   "errors.unexpected_crash.copy_stacktrace": "Cupià stacktrace nant'à u fermacarta",
   "errors.unexpected_crash.report_issue": "Palisà prublemu",
   "follow_request.authorize": "Auturizà",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "ùn fucalizà più l'area di testu",
   "keyboard_shortcuts.up": "cullà indè a lista",
   "lightbox.close": "Chjudà",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Cumprime a finestra d'affissera di i ritratti",
+  "lightbox.expand": "Ingrandà a finestra d'affissera di i ritratti",
   "lightbox.next": "Siguente",
   "lightbox.previous": "Pricidente",
   "lightbox.view_context": "Vede u cuntestu",
@@ -266,20 +266,20 @@
   "lists.edit.submit": "Cambià u titulu",
   "lists.new.create": "Aghjunghje",
   "lists.new.title_placeholder": "Titulu di a lista",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Tutti i vostri abbunamenti",
+  "lists.replies_policy.list_replies": "Membri di a lista",
+  "lists.replies_policy.no_replies": "Nisunu",
+  "lists.replies_policy.title": "Vede e risposte à:",
   "lists.search": "Circà indè i vostr'abbunamenti",
   "lists.subheading": "E vo liste",
   "load_pending": "{count, plural, one {# entrata nova} other {# entrate nove}}",
   "loading_indicator.label": "Caricamentu...",
-  "media_gallery.toggle_visible": "Cambià a visibilità",
+  "media_gallery.toggle_visible": "Piattà {number, plural, one {ritrattu} other {ritratti}}",
   "missing_indicator.label": "Micca trovu",
   "missing_indicator.sublabel": "Ùn era micca pussivule di truvà sta risorsa",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Durata",
   "mute_modal.hide_notifications": "Piattà nutificazione da st'utilizatore?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Indifinita",
   "navigation_bar.apps": "Applicazione per u telefuninu",
   "navigation_bar.blocks": "Utilizatori bluccati",
   "navigation_bar.bookmarks": "Segnalibri",
@@ -310,7 +310,7 @@
   "notification.own_poll": "U vostru scandagliu hè compiu",
   "notification.poll": "Un scandagliu induve avete vutatu hè finitu",
   "notification.reblog": "{name} hà spartutu u vostru statutu",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} hà appena pubblicatu",
   "notifications.clear": "Purgà e nutificazione",
   "notifications.clear_confirmation": "Site sicuru·a che vulete toglie tutte ste nutificazione?",
   "notifications.column_settings.alert": "Nutificazione nant'à l'urdinatore",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Spartere:",
   "notifications.column_settings.show": "Mustrà indè a colonna",
   "notifications.column_settings.sound": "Sunà",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Statuti novi:",
   "notifications.filter.all": "Tuttu",
   "notifications.filter.boosts": "Spartere",
   "notifications.filter.favourites": "Favuriti",
   "notifications.filter.follows": "Abbunamenti",
   "notifications.filter.mentions": "Minzione",
   "notifications.filter.polls": "Risultati di u scandagliu",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Messe à ghjornu di e persone chì siguitate",
   "notifications.group": "{count} nutificazione",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Marcà tutte e nutificazione cum'è lette",
+  "notifications.permission_denied": "Ùn si po micca attivà e nutificazione desktop perchè a dumanda d'auturizazione hè stata ricusata",
+  "notifications.permission_denied_alert": "Ùn pudete micca attivà e nutificazione nant'à l'urdinatore, perchè avete digià ricusatu a dumanda d'auturizazione di u navigatore",
+  "notifications_permission_banner.enable": "Attivà e nutificazione nant'à l'urdinatore",
+  "notifications_permission_banner.how_to_control": "Per riceve nutificazione quandu Mastodon ùn hè micca aperta, attivate e nutificazione nant'à l'urdinatore. Pudete decide quali tippi d'interazione anu da mandà ste nutificazione cù u buttone {icon} quì sopra quandu saranu attivate.",
+  "notifications_permission_banner.title": "Ùn mancate mai nunda",
+  "picture_in_picture.restore": "Rimette in piazza",
   "poll.closed": "Chjosu",
   "poll.refresh": "Attualizà",
   "poll.total_people": "{count, plural, one {# persona} other {# persone}}",
@@ -374,7 +374,7 @@
   "report.hint": "U signalamentu sarà mandatu à i muderatori di u servore. Pudete spiegà perchè avete palisatu stu contu quì sottu:",
   "report.placeholder": "Altri cummenti",
   "report.submit": "Mandà",
-  "report.target": "Signalamentu",
+  "report.target": "Signalamentu di {target}",
   "search.placeholder": "Circà",
   "search_popout.search_format": "Ricerca avanzata",
   "search_popout.tips.full_text": "I testi simplici rimandanu i statuti ch'avete scritti, aghjunti à i vostri favuriti, spartuti o induve quelli site mintuvatu·a, è ancu i cugnomi, nomi pubblichi è hashtag chì currispondenu.",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Drag & drop per caricà un fugliale",
-  "upload_button.label": "Aghjunghje un media ({formats})",
+  "upload_button.label": "Aghjunghje un media",
   "upload_error.limit": "Limita di caricamentu di fugliali trapassata.",
   "upload_error.poll": "Ùn si pò micca caricà fugliali cù i scandagli.",
   "upload_form.audio_description": "Discrizzione per i ciochi",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Ditettà testu da u ritrattu",
   "upload_modal.edit_media": "Cambià media",
   "upload_modal.hint": "Cliccate o sguillate u chjerchju nant'à a vista per sceglie u puntu fucale chì sarà sempre in vista indè tutte e miniature.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Priparazione di l'OCR…",
   "upload_modal.preview_label": "Vista ({ratio})",
   "upload_progress.label": "Caricamentu...",
   "video.close": "Chjudà a video",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index 9f223d724..ad47b064c 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Nahrajte přetažením",
-  "upload_button.label": "Přidat média ({formats})",
+  "upload_button.label": "Přidat média",
   "upload_error.limit": "Byl překročen limit nahraných souborů.",
   "upload_error.poll": "U anket není nahrávání souborů povoleno.",
   "upload_form.audio_description": "Popis pro sluchově postižené",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 4e961b225..e5f2e69b0 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -1,12 +1,12 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "Nodyn",
   "account.add_or_remove_from_list": "Ychwanegu neu Dileu o'r rhestrau",
   "account.badges.bot": "Bot",
   "account.badges.group": "Grŵp",
   "account.block": "Blocio @{name}",
   "account.block_domain": "Cuddio popeth rhag {domain}",
   "account.blocked": "Blociwyd",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol",
   "account.cancel_follow_request": "Canslo cais dilyn",
   "account.direct": "Neges breifat @{name}",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
@@ -17,8 +17,8 @@
   "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} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} Ddilynwr} other {{counter} o Ddilynwyr}}",
+  "account.following_counter": "{count, plural, one {{counter} yn Dilyn} other {{counter} yn Dilyn}}",
   "account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.",
   "account.follows_you": "Yn eich dilyn chi",
   "account.hide_reblogs": "Cuddio bwstiau o @{name}",
@@ -38,14 +38,14 @@
   "account.requested": "Aros am gymeradwyaeth. Cliciwch er mwyn canslo cais dilyn",
   "account.share": "Rhannwch broffil @{name}",
   "account.show_reblogs": "Dangos bwstiau o @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} Dŵt} other {{counter} o Dŵtiau}}",
   "account.unblock": "Dadflocio @{name}",
   "account.unblock_domain": "Dadguddio {domain}",
   "account.unendorse": "Peidio a'i arddangos ar fy mhroffil",
   "account.unfollow": "Dad-ddilyn",
   "account.unmute": "Dad-dawelu @{name}",
   "account.unmute_notifications": "Dad-dawelu hysbysiadau o @{name}",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "Clicio i ychwanegu nodyn",
   "alert.rate_limited.message": "Ceisiwch eto ar ôl {retry_time, time, medium}.",
   "alert.rate_limited.title": "Cyfradd gyfyngedig",
   "alert.unexpected.message": "Digwyddodd gwall annisgwyl.",
@@ -176,7 +176,7 @@
   "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.",
-  "generic.saved": "Saved",
+  "generic.saved": "Wedi'i Gadw",
   "getting_started.developers": "Datblygwyr",
   "getting_started.directory": "Cyfeiriadur proffil",
   "getting_started.documentation": "Dogfennaeth",
@@ -246,7 +246,7 @@
   "keyboard_shortcuts.reply": "i ateb",
   "keyboard_shortcuts.requests": "i agor rhestr ceisiadau dilyn",
   "keyboard_shortcuts.search": "i ffocysu chwilio",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "i ddangos/cuddio'r maes CW",
   "keyboard_shortcuts.start": "i agor colofn \"dechrau arni\"",
   "keyboard_shortcuts.toggle_hidden": "i ddangos/cuddio testun tu ôl i CW",
   "keyboard_shortcuts.toggle_sensitivity": "i ddangos/gyddio cyfryngau",
@@ -441,16 +441,16 @@
   "time_remaining.minutes": "{number, plural, one {# funud} other {# o funudau}} ar ôl",
   "time_remaining.moments": "Munudau ar ôl",
   "time_remaining.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} ar ôl",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "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",
+  "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.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.billion": "{count}biliwn",
+  "units.short.million": "{count}miliwn",
+  "units.short.thousand": "{count}mil",
   "upload_area.title": "Llusgwch & gollwing i uwchlwytho",
   "upload_button.label": "Ychwanegwch gyfryngau (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Wedi mynd heibio'r uchafswm terfyn uwchlwytho.",
@@ -458,12 +458,12 @@
   "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.edit": "Golygu",
-  "upload_form.thumbnail": "Change thumbnail",
+  "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.choose_image": "Choose image",
+  "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",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index f8319ca18..4b312a8f4 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -6,18 +6,18 @@
   "account.block": "Bloker @{name}",
   "account.block_domain": "Skjul alt fra {domain}",
   "account.blocked": "Blokeret",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "Gennemse mere på den oprindelige profil",
   "account.cancel_follow_request": "Annullér følgeranmodning",
   "account.direct": "Send en direkte besked til @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Stop med at give mig besked når @{name} lægger noget op",
   "account.domain_blocked": "Domænet er blevet skjult",
   "account.edit_profile": "Rediger profil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Giv mig besked når @{name} lægger noget op",
   "account.endorse": "Fremhæv på profil",
   "account.follow": "Følg",
   "account.followers": "Følgere",
   "account.followers.empty": "Der er endnu ingen der følger denne bruger.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
+  "account.followers_counter": "{count, plural, one {{counter} Følger} other {{counter} Følgere}}",
   "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
   "account.follows.empty": "Denne bruger følger endnu ikke nogen.",
   "account.follows_you": "Følger dig",
@@ -50,7 +50,7 @@
   "alert.rate_limited.title": "Gradsbegrænset",
   "alert.unexpected.message": "Der opstod en uventet fejl.",
   "alert.unexpected.title": "Ups!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Bekendtgørelse",
   "autosuggest_hashtag.per_week": "{count} per uge",
   "boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang",
   "bundle_column_error.body": "Noget gik galt under indlæsningen af dette komponent.",
@@ -81,9 +81,9 @@
   "column_header.show_settings": "Vis indstillinger",
   "column_header.unpin": "Fastgør ikke længere",
   "column_subheading.settings": "Indstillinger",
-  "community.column_settings.local_only": "Local only",
+  "community.column_settings.local_only": "Kun lokalt",
   "community.column_settings.media_only": "Kun medie",
-  "community.column_settings.remote_only": "Remote only",
+  "community.column_settings.remote_only": "Kun fjernt",
   "compose_form.direct_message_warning": "Dette trut vil kun blive sendt til de nævnte brugere.",
   "compose_form.direct_message_warning_learn_more": "Lær mere",
   "compose_form.hashtag_warning": "Dette trut vil ikke blive vist under noget hashtag da det ikke er listet. Kun offentlige trut kan blive vist under søgninger med hashtags.",
@@ -94,8 +94,8 @@
   "compose_form.poll.duration": "Afstemningens varighed",
   "compose_form.poll.option_placeholder": "Valgmulighed {number}",
   "compose_form.poll.remove_option": "Fjern denne valgmulighed",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.poll.switch_to_multiple": "Ændre afstemning for at tillade flere valg",
+  "compose_form.poll.switch_to_single": "Ændre afstemning for at tillade et enkelt valg",
   "compose_form.publish": "Trut",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.hide": "Markér medie som følsomt",
@@ -175,8 +175,8 @@
   "errors.unexpected_crash.report_issue": "Rapportér problem",
   "follow_request.authorize": "Godkend",
   "follow_request.reject": "Afvis",
-  "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
-  "generic.saved": "Saved",
+  "follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, troede {domain} -personalet, at du måske vil gennemgå dine anmodninger manuelt.",
+  "generic.saved": "Gemt",
   "getting_started.developers": "Udviklere",
   "getting_started.directory": "Profilliste",
   "getting_started.documentation": "Dokumentation",
@@ -197,8 +197,8 @@
   "home.column_settings.basic": "Grundlæggende",
   "home.column_settings.show_reblogs": "Vis fremhævelser",
   "home.column_settings.show_replies": "Vis svar",
-  "home.hide_announcements": "Hide announcements",
-  "home.show_announcements": "Show announcements",
+  "home.hide_announcements": "Skjul bekendtgørelser",
+  "home.show_announcements": "Vis bekendtgørelser",
   "intervals.full.days": "{number, plural, one {# dag} other {# dage}}",
   "intervals.full.hours": "{number, plural, one {# time} other {# timer}}",
   "intervals.full.minutes": "{number, plural, one {# minut} other {# minutter}}",
@@ -240,13 +240,13 @@
   "keyboard_shortcuts.muted": "for at åbne listen over dæmpede brugere",
   "keyboard_shortcuts.my_profile": "for at åbne din profil",
   "keyboard_shortcuts.notifications": "for at åbne notifikations kolonnen",
-  "keyboard_shortcuts.open_media": "to open media",
+  "keyboard_shortcuts.open_media": "for at åbne medier",
   "keyboard_shortcuts.pinned": "for at åbne listen over fastgjorte trut",
   "keyboard_shortcuts.profile": "til profil af åben forfatter",
   "keyboard_shortcuts.reply": "for at svare",
   "keyboard_shortcuts.requests": "for at åbne listen over følgeranmodninger",
   "keyboard_shortcuts.search": "for at fokusere søgningen",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "for at vise/skjule CW-felt",
   "keyboard_shortcuts.start": "for at åbne \"kom igen\" kolonnen",
   "keyboard_shortcuts.toggle_hidden": "for at vise/skjule tekst bag CW",
   "keyboard_shortcuts.toggle_sensitivity": "for at vise/skjule medier",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Skift titel",
   "lists.new.create": "Tilføj liste",
   "lists.new.title_placeholder": "Ny liste titel",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Enhver fulgt bruger",
+  "lists.replies_policy.list_replies": "Medlemmer af listen",
+  "lists.replies_policy.no_replies": "Ingen",
+  "lists.replies_policy.title": "Vis svar til:",
   "lists.search": "Søg iblandt folk du følger",
   "lists.subheading": "Dine lister",
   "load_pending": "{count, plural, one {# nyt punkt} other {# nye punkter}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Ændre synlighed",
   "missing_indicator.label": "Ikke fundet",
   "missing_indicator.sublabel": "Denne ressource kunne ikke blive fundet",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Varighed",
   "mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Uendeligt",
   "navigation_bar.apps": "Mobil apps",
   "navigation_bar.blocks": "Blokerede brugere",
   "navigation_bar.bookmarks": "Bogmærker",
@@ -305,12 +305,12 @@
   "navigation_bar.security": "Sikkerhed",
   "notification.favourite": "{name} favoriserede din status",
   "notification.follow": "{name} fulgte dig",
-  "notification.follow_request": "{name} has requested to follow you",
+  "notification.follow_request": "{name} har anmodet om at følge dig",
   "notification.mention": "{name} nævnte dig",
   "notification.own_poll": "Din afstemning er afsluttet",
   "notification.poll": "En afstemning, du stemte i, er slut",
   "notification.reblog": "{name} boostede din status",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} har lige lagt noget op",
   "notifications.clear": "Ryd notifikationer",
   "notifications.clear_confirmation": "Er du sikker på, du vil rydde alle dine notifikationer permanent?",
   "notifications.column_settings.alert": "Skrivebordsnotifikationer",
@@ -319,29 +319,29 @@
   "notifications.column_settings.filter_bar.category": "Hurtigfilter",
   "notifications.column_settings.filter_bar.show": "Vis",
   "notifications.column_settings.follow": "Nye følgere:",
-  "notifications.column_settings.follow_request": "New follow requests:",
+  "notifications.column_settings.follow_request": "Nye følgeranmodninger:",
   "notifications.column_settings.mention": "Statusser der nævner dig:",
   "notifications.column_settings.poll": "Afstemningsresultat:",
   "notifications.column_settings.push": "Pushnotifikationer",
   "notifications.column_settings.reblog": "Boosts:",
   "notifications.column_settings.show": "Vis i kolonne",
   "notifications.column_settings.sound": "Afspil lyd",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Nye toots:",
   "notifications.filter.all": "Alle",
   "notifications.filter.boosts": "Boosts",
   "notifications.filter.favourites": "Favoritter",
   "notifications.filter.follows": "Følger",
   "notifications.filter.mentions": "Statusser der nævner dig",
   "notifications.filter.polls": "Afstemningsresultat",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Opdateringer fra personer, du følger",
   "notifications.group": "{count} notifikationer",
-  "notifications.mark_as_read": "Mark every notification as read",
+  "notifications.mark_as_read": "Markér alle notifikationer som læst",
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
+  "notifications_permission_banner.enable": "Aktivér skrivebordsmeddelelser",
   "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications_permission_banner.title": "Gå aldrig glip af noget",
+  "picture_in_picture.restore": "Sæt den tilbage",
   "poll.closed": "Lukket",
   "poll.refresh": "Opdatér",
   "poll.total_people": "{count, plural, one {# person} other {# personer}}",
@@ -441,10 +441,10 @@
   "time_remaining.minutes": "{number, plural, one {# minut} other {# minutter}} tilbage",
   "time_remaining.moments": "Få øjeblikke tilbage",
   "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} tilbage",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
+  "timeline_hint.remote_resource_not_displayed": "{resource} fra andre servere vises ikke.",
+  "timeline_hint.resources.followers": "Følgere",
+  "timeline_hint.resources.follows": "Følger",
+  "timeline_hint.resources.statuses": "Ældre toots",
   "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
   "trends.trending_now": "Hot lige nu",
   "ui.beforeunload": "Din kladde vil gå tabt hvis du forlader Mastodon.",
@@ -455,20 +455,20 @@
   "upload_button.label": "Tilføj medie (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Uploadgrænse overskredet.",
   "upload_error.poll": "Filupload ikke tilladt sammen med afstemninger.",
-  "upload_form.audio_description": "Describe for people with hearing loss",
+  "upload_form.audio_description": "Beskriv for personer med høretab",
   "upload_form.description": "Beskriv for svagtseende",
   "upload_form.edit": "Redigér",
   "upload_form.thumbnail": "Change thumbnail",
   "upload_form.undo": "Slet",
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+  "upload_form.video_description": "Beskriv for personer med høretab eller nedsat syn",
   "upload_modal.analyzing_picture": "Analyserer billede…",
   "upload_modal.apply": "Anvend",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Vælg billede",
   "upload_modal.description_placeholder": "En hurtig brun ræv hopper over den dovne hund",
   "upload_modal.detect_text": "Find tekst i billede på automatisk vis",
   "upload_modal.edit_media": "Redigér medie",
   "upload_modal.hint": "Klik eller træk cirklen på billedet for at vælge et fokuspunkt.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Forbereder OCR…",
   "upload_modal.preview_label": "Forhåndsvisning ({ratio})",
   "upload_progress.label": "Uploader...",
   "video.close": "Luk video",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 6dcb0185e..ff5fec1f7 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -1,18 +1,18 @@
 {
-  "account.account_note_header": "Deine Notiz für @{name}",
+  "account.account_note_header": "Notiz",
   "account.add_or_remove_from_list": "Hinzufügen oder Entfernen von Listen",
   "account.badges.bot": "Bot",
   "account.badges.group": "Gruppe",
   "account.block": "@{name} blockieren",
-  "account.block_domain": "Alles von {domain} blockieren",
+  "account.block_domain": "Alles von {domain} verstecken",
   "account.blocked": "Blockiert",
   "account.browse_more_on_origin_server": "Mehr auf dem Originalprofil durchsuchen",
   "account.cancel_follow_request": "Folgeanfrage abbrechen",
   "account.direct": "Direktnachricht an @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Höre auf mich zu benachrichtigen wenn @{name} etwas postet",
   "account.domain_blocked": "Domain versteckt",
   "account.edit_profile": "Profil bearbeiten",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Benachrichtige mich wenn @{name} etwas postet",
   "account.endorse": "Auf Profil hervorheben",
   "account.follow": "Folgen",
   "account.followers": "Folgende",
@@ -40,12 +40,12 @@
   "account.show_reblogs": "Von @{name} geteilte Beiträge anzeigen",
   "account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}",
   "account.unblock": "@{name} entblocken",
-  "account.unblock_domain": "Blockieren von {domain} beenden",
+  "account.unblock_domain": "{domain} wieder anzeigen",
   "account.unendorse": "Nicht auf Profil hervorheben",
   "account.unfollow": "Entfolgen",
   "account.unmute": "@{name} nicht mehr stummschalten",
   "account.unmute_notifications": "Benachrichtigungen von @{name} einschalten",
-  "account_note.placeholder": "Kein Kommentar angegeben",
+  "account_note.placeholder": "Notiz durch Klicken hinzufügen",
   "alert.rate_limited.message": "Bitte versuche es nach {retry_time, time, medium}.",
   "alert.rate_limited.title": "Anfragelimit überschritten",
   "alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.",
@@ -64,7 +64,7 @@
   "column.community": "Lokale Zeitleiste",
   "column.direct": "Direktnachrichten",
   "column.directory": "Profile durchsuchen",
-  "column.domain_blocks": "Versteckte Domains",
+  "column.domain_blocks": "Blockierte Domains",
   "column.favourites": "Favoriten",
   "column.follow_requests": "Folgeanfragen",
   "column.home": "Startseite",
@@ -96,11 +96,11 @@
   "compose_form.poll.remove_option": "Wahl entfernen",
   "compose_form.poll.switch_to_multiple": "Umfrage ändern, um mehrere Optionen zu erlauben",
   "compose_form.poll.switch_to_single": "Umfrage ändern, um eine einzige Wahl zu erlauben",
-  "compose_form.publish": "Beitrag",
+  "compose_form.publish": "Tröt",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Medien als heikel markieren",
-  "compose_form.sensitive.marked": "Medien sind als heikel markiert",
-  "compose_form.sensitive.unmarked": "Medien sind nicht als heikel markiert",
+  "compose_form.sensitive.hide": "Medien als NSFW markieren",
+  "compose_form.sensitive.marked": "Medien sind als NSFW markiert",
+  "compose_form.sensitive.unmarked": "Medien sind nicht als NSFW markiert",
   "compose_form.spoiler.marked": "Text ist hinter einer Warnung versteckt",
   "compose_form.spoiler.unmarked": "Text ist nicht versteckt",
   "compose_form.spoiler_placeholder": "Inhaltswarnung",
@@ -167,10 +167,10 @@
   "empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
   "empty_column.notifications": "Du hast noch keine Mitteilungen. Interagiere mit anderen, um ins Gespräch zu kommen.",
   "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen",
-  "error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browser-Inkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
-  "error.unexpected_crash.explanation_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": "Aufgrund eines Fehlers in unserem Code oder einer Browsereinkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
+  "error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.",
   "error.unexpected_crash.next_steps": "Versuche die Seite zu aktualisieren. Wenn das nicht hilft, kannst du Mastodon über einen anderen Browser oder eine native App verwenden.",
-  "error.unexpected_crash.next_steps_addons": "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": "Versuche sie zu deaktivieren und lade dann die Seite neu. Wenn das Problem weiterhin besteht, solltest du Mastodon über einen anderen Browser oder eine native App nutzen.",
   "errors.unexpected_crash.copy_stacktrace": "Fehlerlog in die Zwischenablage kopieren",
   "errors.unexpected_crash.report_issue": "Problem melden",
   "follow_request.authorize": "Erlauben",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "Textfeld/die Suche nicht mehr fokussieren",
   "keyboard_shortcuts.up": "sich in der Liste hinauf bewegen",
   "lightbox.close": "Schließen",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Bildansicht komprimieren",
+  "lightbox.expand": "Bildansicht erweitern",
   "lightbox.next": "Weiter",
   "lightbox.previous": "Zurück",
   "lightbox.view_context": "Beitrag sehen",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Titel ändern",
   "lists.new.create": "Liste hinzufügen",
   "lists.new.title_placeholder": "Neuer Titel der Liste",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Jeder gefolgte Benutzer",
+  "lists.replies_policy.list_replies": "Mitglieder der Liste",
+  "lists.replies_policy.no_replies": "Niemand",
+  "lists.replies_policy.title": "Antworten anzeigen für:",
   "lists.search": "Suche nach Leuten denen du folgst",
   "lists.subheading": "Deine Listen",
   "load_pending": "{count, plural, one {# neuer Beitrag} other {# neue Beiträge}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Sichtbarkeit umschalten",
   "missing_indicator.label": "Nicht gefunden",
   "missing_indicator.sublabel": "Die Ressource konnte nicht gefunden werden",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Dauer",
   "mute_modal.hide_notifications": "Benachrichtigungen von diesem Account verbergen?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Unbestimmt",
   "navigation_bar.apps": "Mobile Apps",
   "navigation_bar.blocks": "Blockierte Profile",
   "navigation_bar.bookmarks": "Lesezeichen",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Deine Umfrage ist beendet",
   "notification.poll": "Eine Umfrage in der du abgestimmt hast ist vorbei",
   "notification.reblog": "{name} hat deinen Beitrag geteilt",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} hat gerade etwas gepostet",
   "notifications.clear": "Mitteilungen löschen",
   "notifications.clear_confirmation": "Bist du dir sicher, dass du alle Mitteilungen löschen möchtest?",
   "notifications.column_settings.alert": "Desktop-Benachrichtigungen",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Geteilte Beiträge:",
   "notifications.column_settings.show": "In der Spalte anzeigen",
   "notifications.column_settings.sound": "Ton abspielen",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Neue Beiträge:",
   "notifications.filter.all": "Alle",
   "notifications.filter.boosts": "Geteilte Beiträge",
   "notifications.filter.favourites": "Favorisierungen",
   "notifications.filter.follows": "Folgt",
   "notifications.filter.mentions": "Erwähnungen",
   "notifications.filter.polls": "Ergebnisse der Umfrage",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Updates von Personen, denen du folgst",
   "notifications.group": "{count} Benachrichtigungen",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Alle Benachrichtigungen als gelesen markieren",
+  "notifications.permission_denied": "Desktop-Benachrichtigungen können nicht aktiviert werden, da die Berechtigung verweigert wurde.",
+  "notifications.permission_denied_alert": "Desktop-Benachrichtigungen können nicht aktiviert werden, da die Browser-Berechtigung zuvor verweigert wurde",
+  "notifications_permission_banner.enable": "Aktiviere Desktop-Benachrichtigungen",
+  "notifications_permission_banner.how_to_control": "Um Benachrichtigungen zu erhalten, wenn Mastodon nicht geöffnet ist, aktiviere die Desktop-Benachrichtigungen. Du kannst genau bestimmen, welche Arten von Interaktionen Desktop-Benachrichtigungen über die {icon} -Taste erzeugen, sobald diese aktiviert sind.",
+  "notifications_permission_banner.title": "Verpasse nie etwas",
+  "picture_in_picture.restore": "Zurücksetzen",
   "poll.closed": "Geschlossen",
   "poll.refresh": "Aktualisieren",
   "poll.total_people": "{count, plural, one {# Person} other {# Personen}}",
@@ -419,7 +419,7 @@
   "status.reply": "Antworten",
   "status.replyAll": "Allen antworten",
   "status.report": "@{name} melden",
-  "status.sensitive_warning": "Heikle Inhalte",
+  "status.sensitive_warning": "NSFW",
   "status.share": "Teilen",
   "status.show_less": "Weniger anzeigen",
   "status.show_less_all": "Alle Inhaltswarnungen zuklappen",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Zum Hochladen hereinziehen",
-  "upload_button.label": "Mediendatei hinzufügen ({formats})",
+  "upload_button.label": "Mediendatei hinzufügen",
   "upload_error.limit": "Dateiupload-Limit erreicht.",
   "upload_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.",
   "upload_form.audio_description": "Beschreibe die Audiodatei für Menschen mit Hörschädigungen",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Text aus Bild erkennen",
   "upload_modal.edit_media": "Medien bearbeiten",
   "upload_modal.hint": "Klicke oder ziehe den Kreis auf die Vorschau, um den Brennpunkt auszuwählen, der immer auf allen Vorschaubilder angezeigt wird.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Vorbereitung von OCR…",
   "upload_modal.preview_label": "Vorschau ({ratio})",
   "upload_progress.label": "Wird hochgeladen …",
   "video.close": "Video schließen",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 750dcf079..bd9f2e7ff 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "Δες περισσότερα στο αρχικό προφίλ",
   "account.cancel_follow_request": "Ακύρωση αιτήματος παρακολούθησης",
   "account.direct": "Προσωπικό μήνυμα προς @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Διακοπή ειδοποιήσεων για τις δημοσιεύσεις του/της @{name}",
   "account.domain_blocked": "Κρυμμένος τομέας",
   "account.edit_profile": "Επεξεργασία προφίλ",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Έναρξη ειδοποιήσεων για τις δημοσιεύσεις του/της @{name}",
   "account.endorse": "Προβολή στο προφίλ",
   "account.follow": "Ακολούθησε",
   "account.followers": "Ακόλουθοι",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "Δεν έχεις ειδοποιήσεις ακόμα. Αλληλεπίδρασε με άλλους χρήστες για να ξεκινήσεις την κουβέντα.",
   "empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο, ή ακολούθησε χειροκίνητα χρήστες από άλλους κόμβους για να τη γεμίσεις",
   "error.unexpected_crash.explanation": "Είτε λόγω λάθους στον κώδικά μας ή λόγω ασυμβατότητας με τον browser, η σελίδα δε μπόρεσε να εμφανιστεί σωστά.",
-  "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": "Η σελίδα δεν μπόρεσε να εμφανιστεί σωστά. Το πρόβλημα οφείλεται πιθανόν σε κάποια επέκταση του φυλλομετρητή (browser extension) ή σε κάποιο αυτόματο εργαλείο μετάφρασης.",
   "error.unexpected_crash.next_steps": "Δοκίμασε να ανανεώσεις τη σελίδα. Αν αυτό δε βοηθήσει, ίσως να μπορέσεις να χρησιμοποιήσεις το Mastodon μέσω διαφορετικού browser ή κάποιας εφαρμογής.",
-  "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": "Δοκίμασε να τα απενεργοποιήσεις και ανανέωσε τη σελίδα. Αν αυτό δεν βοηθήσει, ίσως να μπορέσεις να χρησιμοποιήσεις το Mastodon μέσω διαφορετικού φυλλομετρητή ή κάποιας εφαρμογής.",
   "errors.unexpected_crash.copy_stacktrace": "Αντιγραφή μηνυμάτων κώδικα στο πρόχειρο",
   "errors.unexpected_crash.report_issue": "Αναφορά προβλήματος",
   "follow_request.authorize": "Ενέκρινε",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "απο-εστίαση του πεδίου σύνθεσης/αναζήτησης",
   "keyboard_shortcuts.up": "κίνηση προς την κορυφή της λίστας",
   "lightbox.close": "Κλείσιμο",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Συμπίεση πλαισίου εμφάνισης εικόνας",
+  "lightbox.expand": "Ανάπτυξη πλαισίου εμφάνισης εικόνας",
   "lightbox.next": "Επόμενο",
   "lightbox.previous": "Προηγούμενο",
   "lightbox.view_context": "Εμφάνιση πλαισίου",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Αλλαγή τίτλου",
   "lists.new.create": "Προσθήκη λίστας",
   "lists.new.title_placeholder": "Τίτλος νέας λίστα",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Οποιοσδήποτε χρήστης που ακολουθείς",
+  "lists.replies_policy.list_replies": "Μέλη της λίστας",
+  "lists.replies_policy.no_replies": "Κανείς",
+  "lists.replies_policy.title": "Εμφάνιση απαντήσεων σε:",
   "lists.search": "Αναζήτησε μεταξύ των ανθρώπων που ακουλουθείς",
   "lists.subheading": "Οι λίστες σου",
   "load_pending": "{count, plural, one {# νέο} other {# νέα}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Εναλλαγή ορατότητας",
   "missing_indicator.label": "Δε βρέθηκε",
   "missing_indicator.sublabel": "Αδύνατη η εύρεση αυτού του πόρου",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Διάρκεια",
   "mute_modal.hide_notifications": "Απόκρυψη ειδοποιήσεων αυτού του χρήστη;",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Αόριστη",
   "navigation_bar.apps": "Εφαρμογές φορητών συσκευών",
   "navigation_bar.blocks": "Αποκλεισμένοι χρήστες",
   "navigation_bar.bookmarks": "Σελιδοδείκτες",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Η ψηφοφορία σου έληξε",
   "notification.poll": "Τελείωσε μια από τις ψηφοφορίες που συμμετείχες",
   "notification.reblog": "Ο/Η {name} προώθησε την κατάστασή σου",
-  "notification.status": "{name} just posted",
+  "notification.status": "Ο/Η {name} μόλις έγραψε κάτι",
   "notifications.clear": "Καθαρισμός ειδοποιήσεων",
   "notifications.clear_confirmation": "Σίγουρα θέλεις να καθαρίσεις όλες τις ειδοποιήσεις σου;",
   "notifications.column_settings.alert": "Ειδοποιήσεις επιφάνειας εργασίας",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Προωθήσεις:",
   "notifications.column_settings.show": "Εμφάνισε σε στήλη",
   "notifications.column_settings.sound": "Ηχητική ειδοποίηση",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Νέα τουτ:",
   "notifications.filter.all": "Όλες",
   "notifications.filter.boosts": "Προωθήσεις",
   "notifications.filter.favourites": "Αγαπημένα",
   "notifications.filter.follows": "Ακόλουθοι",
   "notifications.filter.mentions": "Αναφορές",
   "notifications.filter.polls": "Αποτελέσματα ψηφοφορίας",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Ενημερώσεις από όσους ακολουθείς",
   "notifications.group": "{count} ειδοποιήσεις",
-  "notifications.mark_as_read": "Mark every notification as read",
+  "notifications.mark_as_read": "Σημείωσε όλες τις ειδοποιήσεις ως αναγνωσμένες",
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
+  "notifications_permission_banner.enable": "Ενεργοποίηση ειδοποιήσεων επιφάνειας εργασίας",
   "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications_permission_banner.title": "Μη χάσετε τίποτα",
+  "picture_in_picture.restore": "Επαναφορά",
   "poll.closed": "Κλειστή",
   "poll.refresh": "Ανανέωση",
   "poll.total_people": "{count, plural, one {# άτομο} other {# άτομα}}",
@@ -410,7 +410,7 @@
   "status.pin": "Καρφίτσωσε στο προφίλ",
   "status.pinned": "Καρφιτσωμένο τουτ",
   "status.read_more": "Περισσότερα",
-  "status.reblog": "Προώθησε",
+  "status.reblog": "Προώθηση",
   "status.reblog_private": "Προώθησε στους αρχικούς παραλήπτες",
   "status.reblogged_by": "{name} προώθησε",
   "status.reblogs.empty": "Κανείς δεν προώθησε αυτό το τουτ ακόμα. Μόλις το κάνει κάποια, θα εμφανιστούν εδώ.",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}Ε",
   "units.short.thousand": "{count}Χ",
   "upload_area.title": "Drag & drop για να ανεβάσεις",
-  "upload_button.label": "Πρόσθεσε πολυμέσα ({formats})",
+  "upload_button.label": "Πρόσθεσε πολυμέσα",
   "upload_error.limit": "Υπέρβαση ορίου μεγέθους ανεβασμένων αρχείων.",
   "upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.",
   "upload_form.audio_description": "Περιγραφή για άτομα με προβλήματα ακοής",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Αναγνώριση κειμένου από την εικόνα",
   "upload_modal.edit_media": "Επεξεργασία Πολυμέσων",
   "upload_modal.hint": "Κάνε κλικ ή σείρε τον κύκλο στην προεπισκόπηση για να επιλέξεις το σημείο εστίασης που θα είναι πάντα εμφανές σε όλες τις μικρογραφίες.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Προετοιμασία αναγνώρισης κειμένου…",
   "upload_modal.preview_label": "Προεπισκόπηση ({ratio})",
   "upload_progress.label": "Ανεβαίνει...",
   "video.close": "Κλείσε το βίντεο",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 47cd7ccf0..b401e5bbe 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -4,13 +4,13 @@
   "account.badges.bot": "Roboto",
   "account.badges.group": "Grupo",
   "account.block": "Bloki @{name}",
-  "account.block_domain": "Kaŝi ĉion de {domain}",
+  "account.block_domain": "Bloki {domain}",
   "account.blocked": "Blokita",
   "account.browse_more_on_origin_server": "Browse more on the original profile",
   "account.cancel_follow_request": "Nuligi peton de sekvado",
   "account.direct": "Rekte mesaĝi @{name}",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Domajno kaŝita",
+  "account.domain_blocked": "Domajno blokita",
   "account.edit_profile": "Redakti profilon",
   "account.enable_notifications": "Notify me when @{name} posts",
   "account.endorse": "Montri en profilo",
@@ -18,7 +18,7 @@
   "account.followers": "Sekvantoj",
   "account.followers.empty": "Ankoraŭ neniu sekvas tiun uzanton.",
   "account.followers_counter": "{count, plural, one{{counter} Sekvanto} other {{counter} Sekvantoj}}",
-  "account.following_counter": "{count, plural, other{{counter} Sekvi}}",
+  "account.following_counter": "{count, plural, one {{counter} Sekvato} other {{counter} Sekvatoj}}",
   "account.follows.empty": "Tiu uzanto ankoraŭ ne sekvas iun.",
   "account.follows_you": "Sekvas vin",
   "account.hide_reblogs": "Kaŝi diskonigojn de @{name}",
@@ -38,14 +38,14 @@
   "account.requested": "Atendo de aprobo. Alklaku por nuligi peton de sekvado",
   "account.share": "Diskonigi la profilon de @{name}",
   "account.show_reblogs": "Montri diskonigojn de @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Tooto} other {{counter} Tootoj}}",
+  "account.statuses_counter": "{count, plural, one {{counter} Mesaĝo} other {{counter} Mesaĝoj}}",
   "account.unblock": "Malbloki @{name}",
-  "account.unblock_domain": "Malkaŝi {domain}",
+  "account.unblock_domain": "Malbloki {domain}",
   "account.unendorse": "Ne montri en profilo",
   "account.unfollow": "Ne plu sekvi",
   "account.unmute": "Malsilentigi @{name}",
   "account.unmute_notifications": "Malsilentigi sciigojn de @{name}",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "Alklaku por aldoni noton",
   "alert.rate_limited.message": "Bonvolu reprovi post {retry_time, time, medium}.",
   "alert.rate_limited.title": "Mesaĝkvante limigita",
   "alert.unexpected.message": "Neatendita eraro okazis.",
@@ -64,7 +64,7 @@
   "column.community": "Loka tempolinio",
   "column.direct": "Rektaj mesaĝoj",
   "column.directory": "Trarigardi profilojn",
-  "column.domain_blocks": "Kaŝitaj domajnoj",
+  "column.domain_blocks": "Blokitaj domajnoj",
   "column.favourites": "Stelumoj",
   "column.follow_requests": "Petoj de sekvado",
   "column.home": "Hejmo",
@@ -112,7 +112,7 @@
   "confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun mesaĝon?",
   "confirmations.delete_list.confirm": "Forigi",
   "confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?",
-  "confirmations.domain_block.confirm": "Kaŝi la tutan domajnon",
+  "confirmations.domain_block.confirm": "Bloki la tutan domajnon",
   "confirmations.domain_block.message": "Ĉu vi vere, vere certas, ke vi volas tute bloki {domain}? Plej ofte, trafa blokado kaj silentigado sufiĉas kaj preferindas. Vi ne vidos enhavon de tiu domajno en publika tempolinio aŭ en viaj sciigoj. Viaj sekvantoj de tiu domajno estos forigitaj.",
   "confirmations.logout.confirm": "Elsaluti",
   "confirmations.logout.message": "Ĉu vi certas ke vi volas elsaluti?",
@@ -175,7 +175,7 @@
   "errors.unexpected_crash.report_issue": "Raporti problemon",
   "follow_request.authorize": "Rajtigi",
   "follow_request.reject": "Rifuzi",
-  "follow_requests.unlocked_explanation": "137/5000\nKvankam via konto ne estas ŝlosita, la dungitaro de {domain} opiniis, ke vi eble volus revizii petojn de sekvadon el ĉi tiuj kontoj permane.",
+  "follow_requests.unlocked_explanation": "Kvankam via konto ne estas ŝlosita, la dungitaro de {domain} opiniis, ke vi eble volus revizii petojn de sekvadon el ĉi tiuj kontoj permane.",
   "generic.saved": "Konservita",
   "getting_started.developers": "Programistoj",
   "getting_started.directory": "Profilujo",
@@ -287,7 +287,7 @@
   "navigation_bar.compose": "Skribi novan mesaĝon",
   "navigation_bar.direct": "Rektaj mesaĝoj",
   "navigation_bar.discover": "Esplori",
-  "navigation_bar.domain_blocks": "Kaŝitaj domajnoj",
+  "navigation_bar.domain_blocks": "Blokitaj domajnoj",
   "navigation_bar.edit_profile": "Redakti profilon",
   "navigation_bar.favourites": "Stelumoj",
   "navigation_bar.filters": "Silentigitaj vortoj",
@@ -444,7 +444,7 @@
   "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
   "timeline_hint.resources.followers": "Sekvantoj",
   "timeline_hint.resources.follows": "Sekvatoj",
-  "timeline_hint.resources.statuses": "Pli malnovaj tootoj",
+  "timeline_hint.resources.statuses": "Pli malnovaj mesaĝoj",
   "trends.counter_by_accounts": "{count, plural, one {{counter} persono} other {{counter} personoj}} parolante",
   "trends.trending_now": "Nunaj furoraĵoj",
   "ui.beforeunload": "Via malneto perdiĝos se vi eliras de Mastodon.",
@@ -463,7 +463,7 @@
   "upload_form.video_description": "Priskribi por homoj kiuj malfacile aŭdi aŭ vidi",
   "upload_modal.analyzing_picture": "Bilda analizado…",
   "upload_modal.apply": "Apliki",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Elekti bildon",
   "upload_modal.description_placeholder": "Laŭ Ludoviko Zamenhof bongustas freŝa ĉeĥa manĝaĵo kun spicoj",
   "upload_modal.detect_text": "Detekti tekston de la bildo",
   "upload_modal.edit_media": "Redakti aŭdovidaĵon",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index e94df48f9..57115404b 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -1,18 +1,18 @@
 {
-  "account.account_note_header": "Tu nota para @{name}",
+  "account.account_note_header": "Nota",
   "account.add_or_remove_from_list": "Agregar o quitar de las listas",
   "account.badges.bot": "Bot",
   "account.badges.group": "Grupo",
   "account.block": "Bloquear a @{name}",
-  "account.block_domain": "Ocultar todo de {domain}",
+  "account.block_domain": "Bloquear dominio {domain}",
   "account.blocked": "Bloqueado",
   "account.browse_more_on_origin_server": "Explorar más en el perfil original",
   "account.cancel_follow_request": "Cancelar la solicitud de seguimiento",
   "account.direct": "Mensaje directo a @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Dominio oculto",
+  "account.disable_notifications": "Dejar de notificarme cuando @{name} tootee",
+  "account.domain_blocked": "Dominio bloqueado",
   "account.edit_profile": "Editar perfil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Notificarme cuando @{name} tootee",
   "account.endorse": "Destacar en el perfil",
   "account.follow": "Seguir",
   "account.followers": "Seguidores",
@@ -27,27 +27,27 @@
   "account.locked_info": "El estado de privacidad de esta cuenta está establecido como bloqueado. El propietario manualmente revisa quién puede seguirle.",
   "account.media": "Medios",
   "account.mention": "Mencionar a @{name}",
-  "account.moved_to": "{name} se ha muó a:",
+  "account.moved_to": "{name} se ha mudó a:",
   "account.mute": "Silenciar a @{name}",
   "account.mute_notifications": "Silenciar notificaciones de @{name}",
   "account.muted": "Silenciado",
   "account.never_active": "Nunca",
   "account.posts": "Toots",
-  "account.posts_with_replies": "Toots con respuestas",
+  "account.posts_with_replies": "Toots y respuestas",
   "account.report": "Denunciar a @{name}",
-  "account.requested": "Esperando aprobación. Hacé clic para cancelar la solicitud de seguimiento.",
+  "account.requested": "Esperando aprobación. Hacé clic para cancelar la solicitud de seguimiento",
   "account.share": "Compartir el perfil de @{name}",
   "account.show_reblogs": "Mostrar retoots de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
   "account.unblock": "Desbloquear a @{name}",
-  "account.unblock_domain": "Mostrar {domain}",
+  "account.unblock_domain": "Desbloquear dominio {domain}",
   "account.unendorse": "No destacar en el perfil",
   "account.unfollow": "Dejar de seguir",
   "account.unmute": "Dejar de silenciar a @{name}",
   "account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
-  "account_note.placeholder": "No se ofreció ningún comentario",
+  "account_note.placeholder": "Hacé clic par agregar una nota",
   "alert.rate_limited.message": "Por favor, reintentá después de las {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Tarifa limitada",
+  "alert.rate_limited.title": "Acción limitada",
   "alert.unexpected.message": "Ocurrió un error.",
   "alert.unexpected.title": "¡Epa!",
   "announcement.announcement": "Anuncio",
@@ -64,7 +64,7 @@
   "column.community": "Línea temporal local",
   "column.direct": "Mensajes directos",
   "column.directory": "Explorar perfiles",
-  "column.domain_blocks": "Dominios ocultos",
+  "column.domain_blocks": "Dominios bloqueados",
   "column.favourites": "Favoritos",
   "column.follow_requests": "Solicitudes de seguimiento",
   "column.home": "Principal",
@@ -87,19 +87,19 @@
   "compose_form.direct_message_warning": "Este toot sólo será enviado a los usuarios mencionados.",
   "compose_form.direct_message_warning_learn_more": "Aprendé más",
   "compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.",
-  "compose_form.lock_disclaimer": "Tu cuenta no está {locked}. Todos pueden seguirte para ver tus toots marcados como \"sólo para seguidores\".",
+  "compose_form.lock_disclaimer": "Tu cuenta no está {locked}. Todos pueden seguirte para ver tus toots marcados como \"Sólo para seguidores\".",
   "compose_form.lock_disclaimer.lock": "bloqueada",
   "compose_form.placeholder": "¿Qué onda?",
   "compose_form.poll.add_option": "Agregá una opción",
   "compose_form.poll.duration": "Duración de la encuesta",
   "compose_form.poll.option_placeholder": "Opción {number}",
-  "compose_form.poll.remove_option": "Quitá esta opción",
+  "compose_form.poll.remove_option": "Quitar esta opción",
   "compose_form.poll.switch_to_multiple": "Cambiar encuesta para permitir opciones múltiples",
   "compose_form.poll.switch_to_single": "Cambiar encuesta para permitir una sola opción",
   "compose_form.publish": "Tootear",
   "compose_form.publish_loud": "¡{publish}!",
   "compose_form.sensitive.hide": "Marcar medio como sensible",
-  "compose_form.sensitive.marked": "El medio se marcó como sensible",
+  "compose_form.sensitive.marked": "{count, plural, one {El medio está marcado como sensible} other {Los medios están marcados como sensibles}}",
   "compose_form.sensitive.unmarked": "El medio no está marcado como sensible",
   "compose_form.spoiler.marked": "El texto está oculto detrás de la advertencia",
   "compose_form.spoiler.unmarked": "El texto no está oculto",
@@ -109,10 +109,10 @@
   "confirmations.block.confirm": "Bloquear",
   "confirmations.block.message": "¿Estás seguro que querés bloquear a {name}?",
   "confirmations.delete.confirm": "Eliminar",
-  "confirmations.delete.message": "¿Estás seguro que querés eliminar este estado?",
+  "confirmations.delete.message": "¿Estás seguro que querés eliminar este toot?",
   "confirmations.delete_list.confirm": "Eliminar",
   "confirmations.delete_list.message": "¿Estás seguro que querés eliminar permanentemente esta lista?",
-  "confirmations.domain_block.confirm": "Ocultar dominio entero",
+  "confirmations.domain_block.confirm": "Bloquear dominio entero",
   "confirmations.domain_block.message": "¿Estás completamente seguro que querés bloquear el {domain} entero? En la mayoría de los casos, unos cuantos bloqueos y silenciados puntuales son suficientes y preferibles. No vas a ver contenido de ese dominio en ninguna de tus líneas temporales o en tus notificaciones. Tus seguidores de ese dominio serán quitados.",
   "confirmations.logout.confirm": "Cerrar sesión",
   "confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?",
@@ -120,19 +120,19 @@
   "confirmations.mute.explanation": "Se ocultarán los mensajes de esta cuenta y los mensajes de otras cuentas que mencionen a ésta, pero todavía esta cuenta podrá ver tus mensajes o seguirte.",
   "confirmations.mute.message": "¿Estás seguro que querés silenciar a {name}?",
   "confirmations.redraft.confirm": "Eliminar toot original y editarlo",
-  "confirmations.redraft.message": "¿Estás seguro que querés eliminar este estado y volver a editarlo? Se perderán las veces marcadas como favoritos y los retoots, y las respuestas a la publicación original quedarán huérfanas.",
+  "confirmations.redraft.message": "¿Estás seguro que querés eliminar este toot y volver a editarlo? Se perderán las veces marcadas como favoritos y los retoots, y las respuestas a la publicación original quedarán huérfanas.",
   "confirmations.reply.confirm": "Responder",
   "confirmations.reply.message": "Responder ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?",
   "confirmations.unfollow.confirm": "Dejar de seguir",
   "confirmations.unfollow.message": "¿Estás seguro que querés dejar de seguir a {name}?",
   "conversation.delete": "Eliminar conversación",
-  "conversation.mark_as_read": "Marcar como leído",
+  "conversation.mark_as_read": "Marcar como leída",
   "conversation.open": "Ver conversación",
   "conversation.with": "Con {names}",
   "directory.federated": "Desde fediverso conocido",
   "directory.local": "Sólo de {domain}",
   "directory.new_arrivals": "Recién llegados",
-  "directory.recently_active": "Recientemente activo",
+  "directory.recently_active": "Recientemente activos",
   "embed.instructions": "Insertá este toot a tu sitio web copiando el código de abajo.",
   "embed.preview": "Así es cómo se verá:",
   "emoji_button.activity": "Actividad",
@@ -145,17 +145,17 @@
   "emoji_button.objects": "Objetos",
   "emoji_button.people": "Gente",
   "emoji_button.recent": "Usados frecuentemente",
-  "emoji_button.search": "Buscar…",
+  "emoji_button.search": "Buscar...",
   "emoji_button.search_results": "Resultados de búsqueda",
   "emoji_button.symbols": "Símbolos",
   "emoji_button.travel": "Viajes y lugares",
-  "empty_column.account_timeline": "¡No hay toots aquí!",
+  "empty_column.account_timeline": "¡No hay toots acá!",
   "empty_column.account_unavailable": "Perfil no disponible",
   "empty_column.blocks": "Todavía no bloqueaste a ningún usuario.",
-  "empty_column.bookmarked_statuses": "Todavía no tenés toots guardados en marcadores. Cuando guardés uno en marcadores, se mostrará acá.",
+  "empty_column.bookmarked_statuses": "Todavía no tenés toots guardados en \"Marcadores\". Cuando guardés uno en \"Marcadores\", se mostrará acá.",
   "empty_column.community": "La línea temporal local está vacía. ¡Escribí algo en modo público para que se empiece a correr la bola!",
   "empty_column.direct": "Todavía no tenés ningún mensaje directo. Cuando enviés o recibás uno, se mostrará acá.",
-  "empty_column.domain_blocks": "Todavía no hay dominios ocultos.",
+  "empty_column.domain_blocks": "Todavía no hay dominios bloqueados.",
   "empty_column.favourited_statuses": "Todavía no tenés toots favoritos. Cuando marqués uno como favorito, se mostrará acá.",
   "empty_column.favourites": "Todavía nadie marcó este toot como favorito. Cuando alguien lo haga, se mostrará acá.",
   "empty_column.follow_requests": "Todavía no tenés ninguna solicitud de seguimiento. Cuando recibás una, se mostrará acá.",
@@ -163,14 +163,14 @@
   "empty_column.home": "¡Tu línea temporal principal está vacía! Visitá {public} o usá la búsqueda para comenzar y encontrar a otros usuarios.",
   "empty_column.home.public_timeline": "la línea temporal pública",
   "empty_column.list": "Todavía no hay nada en esta lista. Cuando miembros de esta lista envíen nuevos toots, se mostrarán acá.",
-  "empty_column.lists": "Todavía no tienes ninguna lista. Cuando creés una, se mostrará acá.",
+  "empty_column.lists": "Todavía no tenés ninguna lista. Cuando creés una, se mostrará acá.",
   "empty_column.mutes": "Todavía no silenciaste a ningún usuario.",
   "empty_column.notifications": "Todavía no tenés ninguna notificación. Interactuá con otros para iniciar la conversación.",
-  "empty_column.public": "¡Naranja! Escribí algo públicamente, o seguí usuarios manualmente de otros servidores para ir llenando esta línea temporal.",
+  "empty_column.public": "¡Naranja! Escribí algo públicamente, o seguí usuarios manualmente de otros servidores para ir llenando esta línea temporal",
   "error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador web, esta página no se pudo mostrar correctamente.",
-  "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": "No se pudo mostrar correctamente esta página. Este error probablemente es causado por un complemento del navegador web o por herramientas de traducción automática.",
   "error.unexpected_crash.next_steps": "Intentá recargar la página. Si eso no ayuda, podés usar Mastodon a través de un navegador web diferente o aplicación nativa.",
-  "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": "Intentá deshabilitarlos y recargá la página. Si eso no ayuda, podés usar Mastodon a través de un navegador web diferente o aplicación nativa.",
   "errors.unexpected_crash.copy_stacktrace": "Copiar stacktrace al portapapeles",
   "errors.unexpected_crash.report_issue": "Informar problema",
   "follow_request.authorize": "Autorizar",
@@ -181,9 +181,9 @@
   "getting_started.directory": "Directorio de perfiles",
   "getting_started.documentation": "Documentación",
   "getting_started.heading": "Introducción",
-  "getting_started.invite": "Invitar usuarios",
+  "getting_started.invite": "Invitar gente",
   "getting_started.open_source_notice": "Mastodon es software libre. Podés contribuir o informar errores en {github}.",
-  "getting_started.security": "Seguridad",
+  "getting_started.security": "Configuración de la cuenta",
   "getting_started.terms": "Términos del servicio",
   "hashtag.column_header.tag_mode.all": "y {additional}",
   "hashtag.column_header.tag_mode.any": "o {additional}",
@@ -203,31 +203,31 @@
   "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
   "introduction.federation.action": "Siguiente",
-  "introduction.federation.federated.headline": "Federado",
+  "introduction.federation.federated.headline": "Federada",
   "introduction.federation.federated.text": "Los toots públicos de otros servidores del fediverso aparecerán en la línea temporal federada.",
   "introduction.federation.home.headline": "Principal",
-  "introduction.federation.home.text": "Los toots de las personas que seguís aparecerán en tu línea temporal principal. ¡Podés seguir a cualquiera en cualquier servidor!",
+  "introduction.federation.home.text": "Los toots de las cuentas que seguís aparecerán en tu línea temporal principal. ¡Podés seguir a cualquiera en cualquier servidor!",
   "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Los toots públicos de las personas en el mismo servidor aparecerán en la línea temporal local.",
+  "introduction.federation.local.text": "Los toots públicos de las cuentas en el mismo servidor aparecerán en la línea temporal local.",
   "introduction.interactions.action": "¡Terminar tutorial!",
-  "introduction.interactions.favourite.headline": "Favorito",
+  "introduction.interactions.favourite.headline": "Favoritos",
   "introduction.interactions.favourite.text": "Podés guardar un toot para más tarde, y hacerle saber al autor que te gustó, marcándolo como favorito.",
   "introduction.interactions.reblog.headline": "Retootear",
-  "introduction.interactions.reblog.text": "Podés compartir los toots de otras personas con tus seguidores retooteando los mismos.",
+  "introduction.interactions.reblog.text": "Podés compartir los toots de otras cuentas con tus seguidores retooteando los mismos.",
   "introduction.interactions.reply.headline": "Responder",
-  "introduction.interactions.reply.text": "Podés responder a tus propios toots y los de otras personas, que se encadenarán juntos en una conversación.",
+  "introduction.interactions.reply.text": "Podés responder a tus propios toots y los de otras cuentas, que se encadenarán juntos en una conversación.",
   "introduction.welcome.action": "¡Dale!",
   "introduction.welcome.headline": "Primeros pasos",
   "introduction.welcome.text": "¡Bienvenido al fediverso! En unos pocos minutos, vas a poder transmitir mensajes y hablar con tus amigos a través de una amplia variedad de servidores. Pero este servidor, {domain}, es especial: aloja tu perfil, así que acordate de su nombre.",
   "keyboard_shortcuts.back": "para volver",
   "keyboard_shortcuts.blocked": "para abrir la lista de usuarios bloqueados",
   "keyboard_shortcuts.boost": "para retootear",
-  "keyboard_shortcuts.column": "para enfocar un estado en una de las columnas",
+  "keyboard_shortcuts.column": "para enfocar un toot en una de las columnas",
   "keyboard_shortcuts.compose": "para enfocar el área de texto de redacción",
   "keyboard_shortcuts.description": "Descripción",
   "keyboard_shortcuts.direct": "para abrir columna de mensajes directos",
   "keyboard_shortcuts.down": "para bajar en la lista",
-  "keyboard_shortcuts.enter": "para abrir el estado",
+  "keyboard_shortcuts.enter": "para abrir el toot",
   "keyboard_shortcuts.favourite": "para marcar como favorito",
   "keyboard_shortcuts.favourites": "para abrir la lista de favoritos",
   "keyboard_shortcuts.federated": "para abrir la línea temporal federada",
@@ -237,11 +237,11 @@
   "keyboard_shortcuts.legend": "para mostrar este texto",
   "keyboard_shortcuts.local": "para abrir la línea temporal local",
   "keyboard_shortcuts.mention": "para mencionar al autor",
-  "keyboard_shortcuts.muted": "abrir la lista de usuarios silenciados",
+  "keyboard_shortcuts.muted": "para abrir la lista de usuarios silenciados",
   "keyboard_shortcuts.my_profile": "para abrir tu perfil",
   "keyboard_shortcuts.notifications": "para abrir la columna de notificaciones",
-  "keyboard_shortcuts.open_media": "para abrir archivos de medios",
-  "keyboard_shortcuts.pinned": "para abrir lista de toots fijados",
+  "keyboard_shortcuts.open_media": "para abrir los archivos de medios",
+  "keyboard_shortcuts.pinned": "para abrir la lista de toots fijados",
   "keyboard_shortcuts.profile": "para abrir el perfil del autor",
   "keyboard_shortcuts.reply": "para responder",
   "keyboard_shortcuts.requests": "para abrir la lista de solicitudes de seguimiento",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "para quitar el enfoque del área de texto de redacción o de búsqueda",
   "keyboard_shortcuts.up": "para subir en la lista",
   "lightbox.close": "Cerrar",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Comprimir cuadro de vista de imagen",
+  "lightbox.expand": "Expandir cuadro de vista de imagen",
   "lightbox.next": "Siguiente",
   "lightbox.previous": "Anterior",
   "lightbox.view_context": "Ver contexto",
@@ -266,20 +266,20 @@
   "lists.edit.submit": "Cambiar título",
   "lists.new.create": "Agregar lista",
   "lists.new.title_placeholder": "Nuevo título de lista",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Cualquier cuenta seguida",
+  "lists.replies_policy.list_replies": "Miembros de la lista",
+  "lists.replies_policy.no_replies": "Nadie",
+  "lists.replies_policy.title": "Mostrar respuestas a:",
   "lists.search": "Buscar entre la gente que seguís",
   "lists.subheading": "Tus listas",
   "load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}",
-  "loading_indicator.label": "Cargando…",
-  "media_gallery.toggle_visible": "Cambiar visibilidad",
+  "loading_indicator.label": "Cargando...",
+  "media_gallery.toggle_visible": "Ocultar {number, plural, one {imagen} other {imágenes}}",
   "missing_indicator.label": "No se encontró",
   "missing_indicator.sublabel": "No se encontró este recurso",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Duración",
   "mute_modal.hide_notifications": "¿Querés ocultar las notificaciones de este usuario?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Indefinida",
   "navigation_bar.apps": "Aplicaciones móviles",
   "navigation_bar.blocks": "Usuarios bloqueados",
   "navigation_bar.bookmarks": "Marcadores",
@@ -287,12 +287,12 @@
   "navigation_bar.compose": "Redactar un nuevo toot",
   "navigation_bar.direct": "Mensajes directos",
   "navigation_bar.discover": "Descubrir",
-  "navigation_bar.domain_blocks": "Dominios ocultos",
+  "navigation_bar.domain_blocks": "Dominios bloqueados",
   "navigation_bar.edit_profile": "Editar perfil",
   "navigation_bar.favourites": "Favoritos",
   "navigation_bar.filters": "Palabras silenciadas",
   "navigation_bar.follow_requests": "Solicitudes de seguimiento",
-  "navigation_bar.follows_and_followers": "Personas seguidas y seguidores",
+  "navigation_bar.follows_and_followers": "Cuentas seguidas y seguidores",
   "navigation_bar.info": "Acerca de este servidor",
   "navigation_bar.keyboard_shortcuts": "Atajos",
   "navigation_bar.lists": "Listas",
@@ -303,14 +303,14 @@
   "navigation_bar.preferences": "Configuración",
   "navigation_bar.public_timeline": "Línea temporal federada",
   "navigation_bar.security": "Seguridad",
-  "notification.favourite": "{name} marcó tu estado como favorito",
+  "notification.favourite": "{name} marcó tu toot como favorito",
   "notification.follow": "{name} te empezó a seguir",
   "notification.follow_request": "{name} solicitó seguirte",
   "notification.mention": "{name} te mencionó",
   "notification.own_poll": "Tu encuesta finalizó",
   "notification.poll": "Finalizó una encuesta en la que votaste",
   "notification.reblog": "{name} retooteó tu estado",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} acaba de tootear",
   "notifications.clear": "Limpiar notificaciones",
   "notifications.clear_confirmation": "¿Estás seguro que querés limpiar todas tus notificaciones permanentemente?",
   "notifications.column_settings.alert": "Notificaciones de escritorio",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Retoots:",
   "notifications.column_settings.show": "Mostrar en columna",
   "notifications.column_settings.sound": "Reproducir sonido",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Nuevos toots:",
   "notifications.filter.all": "Todas",
   "notifications.filter.boosts": "Retoots",
   "notifications.filter.favourites": "Favoritos",
   "notifications.filter.follows": "Seguidores",
   "notifications.filter.mentions": "Menciones",
-  "notifications.filter.polls": "Resultados de la encuesta",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.polls": "Resultados de encuesta",
+  "notifications.filter.statuses": "Actualizaciones de cuentas que seguís",
   "notifications.group": "{count} notificaciones",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Marcar cada notificación como leída",
+  "notifications.permission_denied": "Las notificaciones de escritorio no están disponibles, debido a una solicitud de permiso del navegador web previamente denegada",
+  "notifications.permission_denied_alert": "No se pueden habilitar las notificaciones de escritorio, ya que el permiso del navegador fue denegado antes",
+  "notifications_permission_banner.enable": "Habilitar notificaciones de escritorio",
+  "notifications_permission_banner.how_to_control": "Para recibir notificaciones cuando Mastodon no está abierto, habilitá las notificaciones de escritorio. Podés controlar con precisión qué tipos de interacciones generan notificaciones de escritorio a través del botón {icon} de arriba, una vez que estén habilitadas.",
+  "notifications_permission_banner.title": "No te pierdas nada",
+  "picture_in_picture.restore": "Restaurar",
   "poll.closed": "Cerrada",
   "poll.refresh": "Refrescar",
   "poll.total_people": "{count, plural, one {# persona} other {# personas}}",
@@ -350,14 +350,14 @@
   "poll.voted": "Votaste esta opción",
   "poll_button.add_poll": "Agregar una encuesta",
   "poll_button.remove_poll": "Quitar encuesta",
-  "privacy.change": "Configurar privacidad de estado",
-  "privacy.direct.long": "Enviar toot sólo a los usuarios mencionados",
+  "privacy.change": "Configurar privacidad de toot",
+  "privacy.direct.long": "Visible sólo a los usuarios mencionados",
   "privacy.direct.short": "Directo",
-  "privacy.private.long": "Enviar toot sólo a los seguidores",
+  "privacy.private.long": "Visible sólo a los seguidores",
   "privacy.private.short": "Sólo a seguidores",
-  "privacy.public.long": "Enviar toot a las líneas temporales públicas",
+  "privacy.public.long": "Visible para todos, mostrado en las líneas temporales públicas",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "No enviar toot a las líneas temporales públicas",
+  "privacy.unlisted.long": "Visible para todos, pero no en las líneas temporales públicas",
   "privacy.unlisted.short": "No listado",
   "refresh": "Refrescar",
   "regeneration_indicator.label": "Cargando…",
@@ -377,28 +377,28 @@
   "report.target": "Denunciando a {target}",
   "search.placeholder": "Buscar",
   "search_popout.search_format": "Formato de búsqueda avanzada",
-  "search_popout.tips.full_text": "Las búsquedas de texto simple devuelven los estados que escribiste, los marcados como favoritos, los retooteados o en los que te mencionaron, así como nombres usuarios, nombres mostrados y etiquetas.",
+  "search_popout.tips.full_text": "Las búsquedas de texto simple devuelven los toots que escribiste, los marcados como favoritos, los retooteados o en los que te mencionaron, así como nombres de usuarios, nombres mostrados y etiquetas.",
   "search_popout.tips.hashtag": "etiqueta",
-  "search_popout.tips.status": "estado",
+  "search_popout.tips.status": "toot",
   "search_popout.tips.text": "Las búsquedas de texto simple devuelven nombres de usuarios, nombres mostrados y etiquetas que coincidan",
   "search_popout.tips.user": "usuario",
   "search_results.accounts": "Gente",
   "search_results.hashtags": "Etiquetas",
   "search_results.statuses": "Toots",
-  "search_results.statuses_fts_disabled": "No se puede buscar toots por contenido en este servidor de Mastodon.",
+  "search_results.statuses_fts_disabled": "No se pueden buscar toots por contenido en este servidor de Mastodon.",
   "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
   "status.admin_account": "Abrir interface de moderación para @{name}",
-  "status.admin_status": "Abrir este estado en la interface de moderación",
+  "status.admin_status": "Abrir este toot en la interface de moderación",
   "status.block": "Bloquear a @{name}",
-  "status.bookmark": "Marcador",
+  "status.bookmark": "Marcar",
   "status.cancel_reblog_private": "Quitar retoot",
   "status.cannot_reblog": "No se puede retootear este toot",
-  "status.copy": "Copiar enlace al estado",
+  "status.copy": "Copiar enlace al toot",
   "status.delete": "Eliminar",
   "status.detailed_status": "Vista de conversación detallada",
   "status.direct": "Mensaje directo a @{name}",
   "status.embed": "Insertar",
-  "status.favourite": "Favorito",
+  "status.favourite": "Marcar como favorito",
   "status.filtered": "Filtrado",
   "status.load_more": "Cargar más",
   "status.media_hidden": "Medios ocultos",
@@ -406,10 +406,10 @@
   "status.more": "Más",
   "status.mute": "Silenciar a @{name}",
   "status.mute_conversation": "Silenciar conversación",
-  "status.open": "Expandir este estado",
+  "status.open": "Expandir este toot",
   "status.pin": "Fijar en el perfil",
   "status.pinned": "Toot fijado",
-  "status.read_more": "Leer más",
+  "status.read_more": "Leé más",
   "status.reblog": "Retootear",
   "status.reblog_private": "Retootear a la audiencia original",
   "status.reblogged_by": "{name} retooteó",
@@ -431,7 +431,7 @@
   "status.unpin": "Dejar de fijar",
   "suggestions.dismiss": "Descartar sugerencia",
   "suggestions.header": "Es posible que te interese…",
-  "tabs_bar.federated_timeline": "Federado",
+  "tabs_bar.federated_timeline": "Federada",
   "tabs_bar.home": "Principal",
   "tabs_bar.local_timeline": "Local",
   "tabs_bar.notifications": "Notificaciones",
@@ -452,15 +452,15 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}mil",
   "upload_area.title": "Para subir, arrastrá y soltá",
-  "upload_button.label": "Agregar medios ({formats})",
+  "upload_button.label": "Agregá imágenes o un archivo de audio o video",
   "upload_error.limit": "Se excedió el límite de subida de archivos.",
   "upload_error.poll": "No se permite la subida de archivos en encuestas.",
-  "upload_form.audio_description": "Describir para personas con problemas auditivos",
-  "upload_form.description": "Agregar descripción para los usuarios con dificultades visuales",
+  "upload_form.audio_description": "Agregá una descripción para personas con dificultades auditivas",
+  "upload_form.description": "Agregá una descripción para personas con dificultades visuales",
   "upload_form.edit": "Editar",
   "upload_form.thumbnail": "Cambiar miniatura",
   "upload_form.undo": "Eliminar",
-  "upload_form.video_description": "Describir para personas con problemas auditivos o visuales",
+  "upload_form.video_description": "Agregá una descripción para personas con dificultades auditivas o visuales",
   "upload_modal.analyzing_picture": "Analizando imagen…",
   "upload_modal.apply": "Aplicar",
   "upload_modal.choose_image": "Elegir imagen",
@@ -468,13 +468,13 @@
   "upload_modal.detect_text": "Detectar texto de la imagen",
   "upload_modal.edit_media": "Editar medio",
   "upload_modal.hint": "Hacé clic o arrastrá el círculo en la previsualización para elegir el punto focal que siempre estará a la vista en todas las miniaturas.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Preparando OCR…",
   "upload_modal.preview_label": "Previsualización ({ratio})",
-  "upload_progress.label": "Subiendo…",
+  "upload_progress.label": "Subiendo...",
   "video.close": "Cerrar video",
   "video.download": "Descargar archivo",
   "video.exit_fullscreen": "Salir de pantalla completa",
-  "video.expand": "Expandir vídeo",
+  "video.expand": "Expandir video",
   "video.fullscreen": "Pantalla completa",
   "video.hide": "Ocultar video",
   "video.mute": "Silenciar sonido",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index c01d9dda5..b4bfffebe 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -1,131 +1,131 @@
 {
   "account.account_note_header": "Nota",
-  "account.add_or_remove_from_list": "Agregar o eliminar de listas",
+  "account.add_or_remove_from_list": "Agregar o quitar de listas",
   "account.badges.bot": "Bot",
   "account.badges.group": "Grupo",
   "account.block": "Bloquear a @{name}",
-  "account.block_domain": "Ocultar todo de {domain}",
-  "account.blocked": "Bloqueado",
+  "account.block_domain": "Bloquear dominio {domain}",
+  "account.blocked": "Cuenta bloqueada",
   "account.browse_more_on_origin_server": "Ver más en el perfil original",
-  "account.cancel_follow_request": "Cancelar la solicitud de seguimiento",
+  "account.cancel_follow_request": "Cancelar solicitud de seguimiento",
   "account.direct": "Mensaje directo a @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Dominio oculto",
+  "account.disable_notifications": "Dejar de notificarme cuando @{name} publica",
+  "account.domain_blocked": "Dominio bloqueado",
   "account.edit_profile": "Editar perfil",
-  "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Mostrar en perfil",
+  "account.enable_notifications": "Notificarme cuando @{name} publica",
+  "account.endorse": "Recomendar en mi perfil",
   "account.follow": "Seguir",
-  "account.followers": "Seguidores",
-  "account.followers.empty": "Todavía nadie sigue a este usuario.",
-  "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
+  "account.followers": "Seguidorxs",
+  "account.followers.empty": "Nadie sigue a @{name} aún.",
+  "account.followers_counter": "{count, plural, one {{counter} Seguidor o Seguidora} other {{counter} Seguidorxs}}",
   "account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
-  "account.follows.empty": "Este usuario todavía no sigue a nadie.",
+  "account.follows.empty": "@{name} no sigue a nadie aún.",
   "account.follows_you": "Te sigue",
-  "account.hide_reblogs": "Ocultar retoots de @{name}",
+  "account.hide_reblogs": "Ocultar publicaciones compartidas por @{name}",
   "account.last_status": "Última actividad",
-  "account.link_verified_on": "El proprietario de este link fue comprobado el {date}",
-  "account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.",
-  "account.media": "Multimedia",
+  "account.link_verified_on": "La propiedad de este enlace fue verificada el {date}",
+  "account.locked_info": "El estado de privacidad de esta cuenta está establecido como bloqueado. @{name} revisa manualmente revisa quién puede seguirle.",
+  "account.media": "Medios",
   "account.mention": "Mencionar a @{name}",
-  "account.moved_to": "{name} se ha mudado a:",
+  "account.moved_to": "{name} se ha cambiado a:",
   "account.mute": "Silenciar a @{name}",
   "account.mute_notifications": "Silenciar notificaciones de @{name}",
-  "account.muted": "Silenciado",
+  "account.muted": "Cuenta silenciada",
   "account.never_active": "Nunca",
-  "account.posts": "Toots",
-  "account.posts_with_replies": "Toots con respuestas",
+  "account.posts": "Publicaciones",
+  "account.posts_with_replies": "Publicaciones y respuestas",
   "account.report": "Reportar a @{name}",
-  "account.requested": "Esperando aprobación",
+  "account.requested": "Esperando aprobación. Da clic para cancelar la solicitud de seguimiento",
   "account.share": "Compartir el perfil de @{name}",
-  "account.show_reblogs": "Mostrar retoots de @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.show_reblogs": "Mostrar publicaciones compartidas por @{name}",
+  "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicaciones}}",
   "account.unblock": "Desbloquear a @{name}",
-  "account.unblock_domain": "Mostrar a {domain}",
-  "account.unendorse": "No mostrar en el perfil",
+  "account.unblock_domain": "Desbloquear dominio {domain}",
+  "account.unendorse": "No recomendar en mi perfil",
   "account.unfollow": "Dejar de seguir",
   "account.unmute": "Dejar de silenciar a @{name}",
-  "account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
-  "account_note.placeholder": "Clic para añadir nota",
-  "alert.rate_limited.message": "Por favor reintente después de {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Tarifa limitada",
-  "alert.unexpected.message": "Hubo un error inesperado.",
-  "alert.unexpected.title": "¡Ups!",
+  "account.unmute_notifications": "Dejar de silenciar notificaciones de @{name}",
+  "account_note.placeholder": "Haz clic par agregar una nota",
+  "alert.rate_limited.message": "Por favor, reintenta después de las {retry_time, time, medium}.",
+  "alert.rate_limited.title": "Acción limitada",
+  "alert.unexpected.message": "Ocurrió un error inesperado.",
+  "alert.unexpected.title": "¡Ay güey!",
   "announcement.announcement": "Anuncio",
   "autosuggest_hashtag.per_week": "{count} por semana",
-  "boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez",
+  "boost_modal.combo": "Puedes hacer clic en {combo} para saltar esto la próxima vez",
   "bundle_column_error.body": "Algo salió mal al cargar este componente.",
-  "bundle_column_error.retry": "Inténtalo de nuevo",
+  "bundle_column_error.retry": "Intentar de nuevo",
   "bundle_column_error.title": "Error de red",
   "bundle_modal_error.close": "Cerrar",
   "bundle_modal_error.message": "Algo salió mal al cargar este componente.",
   "bundle_modal_error.retry": "Inténtalo de nuevo",
-  "column.blocks": "Usuarios bloqueados",
+  "column.blocks": "Personas bloqueadas",
   "column.bookmarks": "Marcadores",
   "column.community": "Línea de tiempo local",
   "column.direct": "Mensajes directos",
-  "column.directory": "Buscar perfiles",
-  "column.domain_blocks": "Dominios ocultados",
+  "column.directory": "Ver perfiles",
+  "column.domain_blocks": "Dominios bloqueados",
   "column.favourites": "Favoritos",
   "column.follow_requests": "Solicitudes de seguimiento",
-  "column.home": "Inicio",
+  "column.home": "Principal",
   "column.lists": "Listas",
-  "column.mutes": "Usuarios silenciados",
+  "column.mutes": "Cuentas silenciadas",
   "column.notifications": "Notificaciones",
-  "column.pins": "Toots fijados",
-  "column.public": "Línea de tiempo federada",
-  "column_back_button.label": "Atrás",
+  "column.pins": "Publicaciones fijadas",
+  "column.public": "Línea temporal federada",
+  "column_back_button.label": "Volver",
   "column_header.hide_settings": "Ocultar configuración",
   "column_header.moveLeft_settings": "Mover columna a la izquierda",
   "column_header.moveRight_settings": "Mover columna a la derecha",
   "column_header.pin": "Fijar",
-  "column_header.show_settings": "Mostrar ajustes",
-  "column_header.unpin": "Dejar de fijar",
-  "column_subheading.settings": "Ajustes",
-  "community.column_settings.local_only": "Solo local",
-  "community.column_settings.media_only": "Solo media",
-  "community.column_settings.remote_only": "Solo remoto",
-  "compose_form.direct_message_warning": "Este toot solo será enviado a los usuarios mencionados.",
+  "column_header.show_settings": "Mostrar configuración",
+  "column_header.unpin": "Desfijar",
+  "column_subheading.settings": "Configuración",
+  "community.column_settings.local_only": "Sólo local",
+  "community.column_settings.media_only": "Sólo medios",
+  "community.column_settings.remote_only": "Sólo remoto",
+  "compose_form.direct_message_warning": "Esta publicación sólo será enviada las personas mencionadas.",
   "compose_form.direct_message_warning_learn_more": "Aprender mas",
-  "compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.",
+  "compose_form.hashtag_warning": "Esta publicación no se mostrará bajo hashtags porque no es público. Sólo se pueden buscar por hashtag las que son públicas.",
   "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
-  "compose_form.lock_disclaimer.lock": "bloqueado",
-  "compose_form.placeholder": "¿En qué estás pensando?",
+  "compose_form.lock_disclaimer.lock": "bloqueada",
+  "compose_form.placeholder": "¿Qué rollo?",
   "compose_form.poll.add_option": "Añadir una opción",
   "compose_form.poll.duration": "Duración de la encuesta",
-  "compose_form.poll.option_placeholder": "Elección {number}",
-  "compose_form.poll.remove_option": "Eliminar esta opción",
-  "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones",
-  "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción",
-  "compose_form.publish": "Tootear",
-  "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Marcar multimedia como sensible",
-  "compose_form.sensitive.marked": "Material marcado como sensible",
-  "compose_form.sensitive.unmarked": "Material no marcado como sensible",
-  "compose_form.spoiler.marked": "Texto oculto tras la advertencia",
-  "compose_form.spoiler.unmarked": "Texto no oculto",
-  "compose_form.spoiler_placeholder": "Advertencia de contenido",
+  "compose_form.poll.option_placeholder": "Opción {number}",
+  "compose_form.poll.remove_option": "Quitar esta opción",
+  "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir opciones múltiples",
+  "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una sola opción",
+  "compose_form.publish": "Publicar",
+  "compose_form.publish_loud": "¡{publish}!",
+  "compose_form.sensitive.hide": "Marcar medio como sensible",
+  "compose_form.sensitive.marked": "Medio marcado como sensible",
+  "compose_form.sensitive.unmarked": "Medio no marcado como sensible",
+  "compose_form.spoiler.marked": "El texto está oculto detrás de la advertencia",
+  "compose_form.spoiler.unmarked": "El texto no está oculto",
+  "compose_form.spoiler_placeholder": "Escribe tu advertencia aquí",
   "confirmation_modal.cancel": "Cancelar",
-  "confirmations.block.block_and_report": "Bloquear y Reportar",
+  "confirmations.block.block_and_report": "Bloquear y denunciar",
   "confirmations.block.confirm": "Bloquear",
-  "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?",
+  "confirmations.block.message": "¿Estás segurx que quieres bloquear a {name}?",
   "confirmations.delete.confirm": "Eliminar",
-  "confirmations.delete.message": "¿Estás seguro de que quieres borrar este toot?",
+  "confirmations.delete.message": "¿Estás segurx que quieres eliminar esta publicación?",
   "confirmations.delete_list.confirm": "Eliminar",
-  "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?",
-  "confirmations.domain_block.confirm": "Ocultar dominio entero",
+  "confirmations.delete_list.message": "¿Estás segurx que quieres eliminar esta lista permanentemente?",
+  "confirmations.domain_block.confirm": "Bloquear dominio entero",
   "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.",
   "confirmations.logout.confirm": "Cerrar sesión",
-  "confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?",
+  "confirmations.logout.message": "¿Estás segurx que quieres cerrar sesión?",
   "confirmations.mute.confirm": "Silenciar",
   "confirmations.mute.explanation": "Esto esconderá las publicaciones de ellos y en las que los has mencionado, pero les permitirá ver tus mensajes y seguirte.",
-  "confirmations.mute.message": "¿Estás seguro de que quieres silenciar a {name}?",
-  "confirmations.redraft.confirm": "Borrar y volver a borrador",
-  "confirmations.redraft.message": "Estás seguro de que quieres borrar este estado y volverlo a borrador? Perderás todas las respuestas, impulsos y favoritos asociados a él, y las respuestas a la publicación original quedarán huérfanos.",
+  "confirmations.mute.message": "¿Estás segurx que quieres silenciar a {name}?",
+  "confirmations.redraft.confirm": "Eliminar y volver a redactar",
+  "confirmations.redraft.message": "¿Estás seguro de que quieres eliminar este toot y convertirlo en borrador? Perderás todas las respuestas, retoots y favoritos asociados a él, y las respuestas a la publicación original quedarán huérfanas.",
   "confirmations.reply.confirm": "Responder",
   "confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?",
   "confirmations.unfollow.confirm": "Dejar de seguir",
-  "confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?",
-  "conversation.delete": "Borrar conversación",
+  "confirmations.unfollow.message": "¿Estás seguro que quieres dejar de seguir a {name}?",
+  "conversation.delete": "Eliminar conversación",
   "conversation.mark_as_read": "Marcar como leído",
   "conversation.open": "Ver conversación",
   "conversation.with": "Con {names}",
@@ -151,26 +151,26 @@
   "emoji_button.travel": "Viajes y lugares",
   "empty_column.account_timeline": "¡No hay toots aquí!",
   "empty_column.account_unavailable": "Perfil no disponible",
-  "empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
-  "empty_column.bookmarked_statuses": "Aún no tienes ningún toot guardado como marcador. Cuando guardes uno, se mostrará aquí.",
+  "empty_column.blocks": "No has bloqueado a nadie aún.",
+  "empty_column.bookmarked_statuses": "Todavía no tienes publicaciones guardadas en \"Marcadores\". Cuando guardes una, se mostrará quí.",
   "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
-  "empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
+  "empty_column.direct": "Todavía no tienes mensaje directos. Cuando envíes o recibas uno, se mostrará aquí.",
   "empty_column.domain_blocks": "Todavía no hay dominios ocultos.",
-  "empty_column.favourited_statuses": "Aún no tienes toots preferidos. Cuando marques uno como favorito, aparecerá aquí.",
+  "empty_column.favourited_statuses": "Todavía no tienes publicaciones favoritas. Cuando marques un favorito, se mostrará aquí.",
   "empty_column.favourites": "Nadie ha marcado este toot como preferido. Cuando alguien lo haga, aparecerá aquí.",
-  "empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.",
+  "empty_column.follow_requests": "Todavía no tienes solicitudes de seguimiento. Cuando recibas una, se mostrará aquí.",
   "empty_column.hashtag": "No hay nada en este hashtag aún.",
-  "empty_column.home": "No estás siguiendo a nadie aún. Visita {public} o haz búsquedas para empezar y conocer gente nueva.",
+  "empty_column.home": "¡Tu línea de tiempo principal está vacía! Visita {public} o usa la búsqueda para comenzar y encontrar a otras personas.",
   "empty_column.home.public_timeline": "la línea de tiempo pública",
   "empty_column.list": "No hay nada en esta lista aún. Cuando miembros de esta lista publiquen nuevos estatus, estos aparecerán qui.",
-  "empty_column.lists": "No tienes ninguna lista. cuando crees una, se mostrará aquí.",
-  "empty_column.mutes": "Aún no has silenciado a ningún usuario.",
-  "empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.",
-  "empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo",
+  "empty_column.lists": "Todavía no tienes listas. Cuando crees una, se mostrará aquí.",
+  "empty_column.mutes": "No has silenciado a nadie aún.",
+  "empty_column.notifications": "Todavía no tienes notificaciones. Interactúa con otras personas para iniciar la conversación.",
+  "empty_column.public": "¡No hay nada aquí! Escribe algo público, o manualmente sigue a alguien de otros servidores para irlo llenando",
   "error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador, esta página no se ha podido mostrar correctamente.",
-  "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": "No se pudo mostrar correctamente esta página. Este error probablemente fue causado por un complemento del navegador web o por herramientas de traducción automática.",
   "error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, es posible que puedas usar Mastodon a través de otro navegador o aplicación nativa.",
-  "error.unexpected_crash.next_steps_addons": "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": "Intenta deshabilitarlos y recarga la página. Si eso no ayuda, podrías usar Mastodon a través de un navegador web diferente o aplicación nativa.",
   "errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles",
   "errors.unexpected_crash.report_issue": "Informar de un problema/error",
   "follow_request.authorize": "Autorizar",
@@ -183,7 +183,7 @@
   "getting_started.heading": "Primeros pasos",
   "getting_started.invite": "Invitar usuarios",
   "getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.",
-  "getting_started.security": "Seguridad",
+  "getting_started.security": "Configuración de cuenta",
   "getting_started.terms": "Términos de servicio",
   "hashtag.column_header.tag_mode.all": "y {additional}",
   "hashtag.column_header.tag_mode.any": "o {additional}",
@@ -220,9 +220,9 @@
   "introduction.welcome.headline": "Primeros pasos",
   "introduction.welcome.text": "¡Bienvenido al fediverso! En unos momentos, podrás transmitir mensajes y hablar con tus amigos a través de una amplia variedad de servidores. Pero este servidor, {domain}, es especial, alberga tu perfil, así que recuerda su nombre.",
   "keyboard_shortcuts.back": "volver atrás",
-  "keyboard_shortcuts.blocked": "abrir una lista de usuarios bloqueados",
+  "keyboard_shortcuts.blocked": "abre la lista de personas bloqueadas",
   "keyboard_shortcuts.boost": "retootear",
-  "keyboard_shortcuts.column": "enfocar un estado en una de las columnas",
+  "keyboard_shortcuts.column": "enfoca una publicación un una de las columnas",
   "keyboard_shortcuts.compose": "enfocar el área de texto de redacción",
   "keyboard_shortcuts.description": "Descripción",
   "keyboard_shortcuts.direct": "abrir la columna de mensajes directos",
@@ -237,11 +237,11 @@
   "keyboard_shortcuts.legend": "para mostrar esta leyenda",
   "keyboard_shortcuts.local": "abrir el timeline local",
   "keyboard_shortcuts.mention": "para mencionar al autor",
-  "keyboard_shortcuts.muted": "abrir la lista de usuarios silenciados",
+  "keyboard_shortcuts.muted": "abre la lista de personas silenciadas",
   "keyboard_shortcuts.my_profile": "abrir tu perfil",
   "keyboard_shortcuts.notifications": "abrir la columna de notificaciones",
   "keyboard_shortcuts.open_media": "para abrir archivos multimedia",
-  "keyboard_shortcuts.pinned": "abrir la lista de toots destacados",
+  "keyboard_shortcuts.pinned": "abre la lista de publicaciones fijadas",
   "keyboard_shortcuts.profile": "abrir el perfil del autor",
   "keyboard_shortcuts.reply": "para responder",
   "keyboard_shortcuts.requests": "abrir la lista de peticiones de seguidores",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "para retirar el foco de la caja de redacción/búsqueda",
   "keyboard_shortcuts.up": "para ir hacia arriba en la lista",
   "lightbox.close": "Cerrar",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Comprimir cuadro de visualización de imagen",
+  "lightbox.expand": "Expandir cuadro de visualización de imagen",
   "lightbox.next": "Siguiente",
   "lightbox.previous": "Anterior",
   "lightbox.view_context": "Ver contexto",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Cambiar título",
   "lists.new.create": "Añadir lista",
   "lists.new.title_placeholder": "Título de la nueva lista",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Cualquier persona seguida",
+  "lists.replies_policy.list_replies": "Miembros de la lista",
+  "lists.replies_policy.no_replies": "Nadie",
+  "lists.replies_policy.title": "Mostrar respuestas a:",
   "lists.search": "Buscar entre la gente a la que sigues",
   "lists.subheading": "Tus listas",
   "load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}",
@@ -277,11 +277,11 @@
   "media_gallery.toggle_visible": "Cambiar visibilidad",
   "missing_indicator.label": "No encontrado",
   "missing_indicator.sublabel": "No se encontró este recurso",
-  "mute_modal.duration": "Duration",
-  "mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.duration": "Duración",
+  "mute_modal.hide_notifications": "¿Ocultar notificaciones de esta persona?",
+  "mute_modal.indefinite": "Indefinida",
   "navigation_bar.apps": "Aplicaciones móviles",
-  "navigation_bar.blocks": "Usuarios bloqueados",
+  "navigation_bar.blocks": "Personas bloqueadas",
   "navigation_bar.bookmarks": "Marcadores",
   "navigation_bar.community_timeline": "Historia local",
   "navigation_bar.compose": "Escribir un nuevo toot",
@@ -297,11 +297,11 @@
   "navigation_bar.keyboard_shortcuts": "Atajos",
   "navigation_bar.lists": "Listas",
   "navigation_bar.logout": "Cerrar sesión",
-  "navigation_bar.mutes": "Usuarios silenciados",
+  "navigation_bar.mutes": "Personas silenciadas",
   "navigation_bar.personal": "Personal",
-  "navigation_bar.pins": "Toots fijados",
+  "navigation_bar.pins": "Publicaciones fijadas",
   "navigation_bar.preferences": "Preferencias",
-  "navigation_bar.public_timeline": "Historia federada",
+  "navigation_bar.public_timeline": "Línea de tiempo federada",
   "navigation_bar.security": "Seguridad",
   "notification.favourite": "{name} marcó tu estado como favorito",
   "notification.follow": "{name} te empezó a seguir",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Tu encuesta ha terminado",
   "notification.poll": "Una encuesta en la que has votado ha terminado",
   "notification.reblog": "{name} ha retooteado tu estado",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} acaba de publicar",
   "notifications.clear": "Limpiar notificaciones",
   "notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
   "notifications.column_settings.alert": "Notificaciones de escritorio",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Retoots:",
   "notifications.column_settings.show": "Mostrar en columna",
   "notifications.column_settings.sound": "Reproducir sonido",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Nuevos toots:",
   "notifications.filter.all": "Todos",
   "notifications.filter.boosts": "Retoots",
   "notifications.filter.favourites": "Favoritos",
   "notifications.filter.follows": "Seguidores",
   "notifications.filter.mentions": "Menciones",
   "notifications.filter.polls": "Resultados de la votación",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Actualizaciones de gente a la que sigues",
   "notifications.group": "{count} notificaciones",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Marcar todas las notificaciones como leídas",
+  "notifications.permission_denied": "No se pueden habilitar las notificaciones de escritorio ya que se denegó el permiso.",
+  "notifications.permission_denied_alert": "No se pueden habilitar las notificaciones de escritorio, ya que el permiso del navegador fue denegado anteriormente",
+  "notifications_permission_banner.enable": "Habilitar notificaciones de escritorio",
+  "notifications_permission_banner.how_to_control": "Para recibir notificaciones cuando Mastodon no esté abierto, habilite las notificaciones de escritorio. Puedes controlar con precisión qué tipos de interacciones generan notificaciones de escritorio a través del botón {icon} de arriba una vez que estén habilitadas.",
+  "notifications_permission_banner.title": "Nunca te pierdas nada",
+  "picture_in_picture.restore": "Restaurar",
   "poll.closed": "Cerrada",
   "poll.refresh": "Actualizar",
   "poll.total_people": "{count, plural, one {# person} other {# people}}",
@@ -351,10 +351,10 @@
   "poll_button.add_poll": "Añadir una encuesta",
   "poll_button.remove_poll": "Eliminar encuesta",
   "privacy.change": "Ajustar privacidad",
-  "privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
+  "privacy.direct.long": "Sólo visible para las personas mencionadas",
   "privacy.direct.short": "Directo",
   "privacy.private.long": "Sólo mostrar a seguidores",
-  "privacy.private.short": "Privado",
+  "privacy.private.short": "Sólo a seguidorxs",
   "privacy.public.long": "Mostrar en la historia federada",
   "privacy.public.short": "Público",
   "privacy.unlisted.long": "No mostrar en la historia federada",
@@ -377,21 +377,21 @@
   "report.target": "Reportando",
   "search.placeholder": "Buscar",
   "search_popout.search_format": "Formato de búsqueda avanzada",
-  "search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.",
+  "search_popout.tips.full_text": "Las búsquedas de texto recuperan publicaciones que hayas escrito, marcado como favoritas, compartido, o en las que te hayan mencionado, así como personas, nombres y hashtags.",
   "search_popout.tips.hashtag": "etiqueta",
-  "search_popout.tips.status": "estado",
-  "search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, usuario y hashtag",
-  "search_popout.tips.user": "usuario",
+  "search_popout.tips.status": "publicación",
+  "search_popout.tips.text": "Las búsquedas de texto devuelven los nombres mostrados, nombres de usuarix y hashtags que coincidan",
+  "search_popout.tips.user": "usuarix",
   "search_results.accounts": "Gente",
   "search_results.hashtags": "Etiquetas",
-  "search_results.statuses": "Toots",
+  "search_results.statuses": "Publicaciones",
   "search_results.statuses_fts_disabled": "Buscar toots por su contenido no está disponible en este servidor de Mastodon.",
   "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
   "status.admin_account": "Abrir interfaz de moderación para @{name}",
   "status.admin_status": "Abrir este estado en la interfaz de moderación",
   "status.block": "Bloquear a @{name}",
-  "status.bookmark": "Marcador",
-  "status.cancel_reblog_private": "Des-impulsar",
+  "status.bookmark": "Marcar",
+  "status.cancel_reblog_private": "Eliminar retoot",
   "status.cannot_reblog": "Este toot no puede retootearse",
   "status.copy": "Copiar enlace al estado",
   "status.delete": "Borrar",
@@ -408,16 +408,16 @@
   "status.mute_conversation": "Silenciar conversación",
   "status.open": "Expandir estado",
   "status.pin": "Fijar",
-  "status.pinned": "Toot fijado",
+  "status.pinned": "Publicación fijada",
   "status.read_more": "Leer más",
   "status.reblog": "Retootear",
   "status.reblog_private": "Implusar a la audiencia original",
   "status.reblogged_by": "Retooteado por {name}",
-  "status.reblogs.empty": "Nadie impulsó este toot todavía. Cuando alguien lo haga, aparecerá aqui.",
+  "status.reblogs.empty": "Nadie retooteó este toot todavía. Cuando alguien lo haga, aparecerá aquí.",
   "status.redraft": "Borrar y volver a borrador",
-  "status.remove_bookmark": "Eliminar marcador",
+  "status.remove_bookmark": "Quitar marcador",
   "status.reply": "Responder",
-  "status.replyAll": "Responder al hilván",
+  "status.replyAll": "Responder al hilo",
   "status.report": "Reportar",
   "status.sensitive_warning": "Contenido sensible",
   "status.share": "Compartir",
@@ -425,10 +425,10 @@
   "status.show_less_all": "Mostrar menos para todo",
   "status.show_more": "Mostrar más",
   "status.show_more_all": "Mostrar más para todo",
-  "status.show_thread": "Mostrar hilván",
+  "status.show_thread": "Mostrar hilo",
   "status.uncached_media_warning": "No disponible",
   "status.unmute_conversation": "Dejar de silenciar conversación",
-  "status.unpin": "Dejar de fijar",
+  "status.unpin": "Desfijar",
   "suggestions.dismiss": "Descartar sugerencia",
   "suggestions.header": "Es posible que te interese…",
   "tabs_bar.federated_timeline": "Federado",
@@ -448,9 +448,9 @@
   "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} hablando",
   "trends.trending_now": "Tendencia ahora",
   "ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.",
-  "units.short.billion": "{count}MM",
+  "units.short.billion": "{count}B",
   "units.short.million": "{count}M",
-  "units.short.thousand": "{count}mil",
+  "units.short.thousand": "{count}K",
   "upload_area.title": "Arrastra y suelta para subir",
   "upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Límite de subida de archivos excedido.",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Detectar texto de la imagen",
   "upload_modal.edit_media": "Editar multimedia",
   "upload_modal.hint": "Haga clic o arrastre el círculo en la vista previa para elegir el punto focal que siempre estará a la vista en todas las miniaturas.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Preparando OCR…",
   "upload_modal.preview_label": "Vista previa ({ratio})",
   "upload_progress.label": "Subiendo…",
   "video.close": "Cerrar video",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index a8313623c..a38d21e1c 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -4,15 +4,15 @@
   "account.badges.bot": "ربات",
   "account.badges.group": "گروه",
   "account.block": "مسدودسازی @{name}",
-  "account.block_domain": "نهفتن همه چیز از {domain}",
+  "account.block_domain": "بستن دامنه {domain}",
   "account.blocked": "مسدود",
   "account.browse_more_on_origin_server": "مرور بیش‌تر روی نمایهٔ اصلی",
   "account.cancel_follow_request": "لغو درخواست پیگیری",
   "account.direct": "پیام خصوصی به @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "دامنهٔ نهفته",
+  "account.disable_notifications": "آگاهی به من هنگام فرستادن‌های @{name} پایان یابد",
+  "account.domain_blocked": "دامنه بسته شد",
   "account.edit_profile": "ویرایش نمایه",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "آگاهی هنگام ارسال‌های @{name}",
   "account.endorse": "معرّفی در نمایه",
   "account.follow": "پی بگیرید",
   "account.followers": "پی‌گیران",
@@ -40,7 +40,7 @@
   "account.show_reblogs": "نمایش بازبوق‌های @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} بوق} other {{counter} بوق}}",
   "account.unblock": "رفع انسداد @{name}",
-  "account.unblock_domain": "رفع نهفتن {domain}",
+  "account.unblock_domain": "گشودن دامنه {domain}",
   "account.unendorse": "معرّفی نکردن در نمایه",
   "account.unfollow": "پایان پیگیری",
   "account.unmute": "رفع خموشی @{name}",
@@ -64,7 +64,7 @@
   "column.community": "نوشته‌های محلی",
   "column.direct": "پیام‌های خصوصی",
   "column.directory": "مرور نمایه‌ها",
-  "column.domain_blocks": "دامنه‌های نهفته",
+  "column.domain_blocks": "دامنه‌های بسته",
   "column.favourites": "پسندیده‌ها",
   "column.follow_requests": "درخواست‌های پیگیری",
   "column.home": "خانه",
@@ -98,7 +98,7 @@
   "compose_form.poll.switch_to_single": "تبدیل به نظرسنجی تک‌گزینه‌ای",
   "compose_form.publish": "بوق",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "علامت‌گذاری به عنوان حساس",
+  "compose_form.sensitive.hide": "علامت‌گذاری رسانه به عنوان حساس",
   "compose_form.sensitive.marked": "رسانه به عنوان حساس علامت‌گذاری شده",
   "compose_form.sensitive.unmarked": "رسانه به عنوان حساس علامت‌گذاری نشده",
   "compose_form.spoiler.marked": "نوشته پشت هشدار پنهان است",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "هنوز هیچ اعلانی ندارید. به دیگران واکنش نشان دهید تا گفتگو آغاز شود.",
   "empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران کارسازهای دیگر را پی بگیرید تا این‌جا پر شود",
   "error.unexpected_crash.explanation": "به خاطر اشکالی در کدهای ما یا ناسازگاری با مرورگر شما، این صفحه به درستی نمایش نیافت.",
-  "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": "این صفحه نمی‌تواند درست نشان داده شود. احتمالاً این خطا ناشی از یک افزونهٔ مرورگر یا ابزار ترجمهٔ خودکار است.",
   "error.unexpected_crash.next_steps": "لطفاً صفحه را دوباره باز کنید. اگر کمکی نکرد، شاید همچنان بتوانید با ماستودون از راه یک مرورگر دیگر یا با یکی از اپ‌های آن کار کنید.",
-  "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": "لطفاً از کارشان انداخته و صفحه را نوسازی کنید. اگر کمکی نکرد، شاید همچنان بتوانید با مرورگری دیگر یا با کاره‌ای بومی از ماستودون استفاده کنید.",
   "errors.unexpected_crash.copy_stacktrace": "رونوشت از جزئیات اشکال",
   "errors.unexpected_crash.report_issue": "گزارش مشکل",
   "follow_request.authorize": "اجازه دهید",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "تغییر عنوان",
   "lists.new.create": "افزودن فهرست",
   "lists.new.title_placeholder": "عنوان فهرست تازه",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "هر کاربر پی‌گیری‌شده",
+  "lists.replies_policy.list_replies": "اعضای فهرست",
+  "lists.replies_policy.no_replies": "هیچ‌کس",
+  "lists.replies_policy.title": "نمایش پاسخ‌ها به:",
   "lists.search": "بین کسانی که پی می‌گیرید بگردید",
   "lists.subheading": "فهرست‌های شما",
   "load_pending": "{count, plural, one {# مورد تازه} other {# مورد تازه}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "تغییر وضعیت نمایانی",
   "missing_indicator.label": "پیدا نشد",
   "missing_indicator.sublabel": "این منبع پیدا نشد",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "مدت زمان",
   "mute_modal.hide_notifications": "اعلان‌های این کاربر پنهان شود؟",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "نامعلوم",
   "navigation_bar.apps": "اپ‌های موبایل",
   "navigation_bar.blocks": "کاربران مسدودشده",
   "navigation_bar.bookmarks": "نشانک‌ها",
@@ -287,7 +287,7 @@
   "navigation_bar.compose": "نوشتن بوق تازه",
   "navigation_bar.direct": "پیام‌های مستقیم",
   "navigation_bar.discover": "گشت و گذار",
-  "navigation_bar.domain_blocks": "دامنه‌های نهفته",
+  "navigation_bar.domain_blocks": "دامنه‌های بسته",
   "navigation_bar.edit_profile": "ویرایش نمایه",
   "navigation_bar.favourites": "پسندیده‌ها",
   "navigation_bar.filters": "واژگان خموش",
@@ -310,7 +310,7 @@
   "notification.own_poll": "نظرسنجی شما به پایان رسید",
   "notification.poll": "نظرسنجی‌ای که در آن رأی دادید به پایان رسیده است",
   "notification.reblog": "‫{name}‬ وضعیتتان را تقویت کرد",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} چیزی فرستاد",
   "notifications.clear": "پاک‌کردن اعلان‌ها",
   "notifications.clear_confirmation": "مطمئنید می‌خواهید همهٔ اعلان‌هایتان را برای همیشه پاک کنید؟",
   "notifications.column_settings.alert": "اعلان‌های میزکار",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "بازبوق‌ها:",
   "notifications.column_settings.show": "نمایش در ستون",
   "notifications.column_settings.sound": "پخش صدا",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "بوق‌های جدید:",
   "notifications.filter.all": "همه",
   "notifications.filter.boosts": "بازبوق‌ها",
   "notifications.filter.favourites": "پسندها",
   "notifications.filter.follows": "پیگیری‌ها",
   "notifications.filter.mentions": "نام‌بردن‌ها",
   "notifications.filter.polls": "نتایج نظرسنجی",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "به‌روز رسانی‌ها از کسانی که پی‌گیرشانید",
   "notifications.group": "{count} اعلان",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
+  "notifications.mark_as_read": "نشانه‌گذاری همهٔ آگاهی‌ها به عنوان خوانده‌شده",
+  "notifications.permission_denied": "آگاهی‌های میزکار به دلیل رد کردن درخواست اجازهٔ پیشین مرورگر، در دسترس نیستند",
+  "notifications.permission_denied_alert": "از آن‌جا که پیش از این اجازهٔ مرورگر رد شده است، آگاهی‌های میزکار نمی‌توانند به کار بیفتند",
+  "notifications_permission_banner.enable": "به کار انداختن آگاهی‌های میزکار",
   "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications_permission_banner.title": "هرگز چیزی را از دست ندهید",
+  "picture_in_picture.restore": "برگرداندن",
   "poll.closed": "پایان‌یافته",
   "poll.refresh": "به‌روزرسانی",
   "poll.total_people": "{count, plural, one {# نفر} other {# نفر}}",
@@ -411,7 +411,7 @@
   "status.pinned": "بوق ثابت",
   "status.read_more": "بیشتر بخوانید",
   "status.reblog": "بازبوقیدن",
-  "status.reblog_private": "بازبوق به مخاطبان اولیه",
+  "status.reblog_private": "تقویت برای مخاطبان نخستین",
   "status.reblogged_by": "‫{name}‬ بازبوقید",
   "status.reblogs.empty": "هنوز هیچ کسی این بوق را بازنبوقیده است. وقتی کسی چنین کاری کند، این‌جا نمایش خواهد یافت.",
   "status.redraft": "پاک‌کردن و بازنویسی",
@@ -420,7 +420,7 @@
   "status.replyAll": "پاسخ به رشته",
   "status.report": "گزارش @{name}",
   "status.sensitive_warning": "محتوای حساس",
-  "status.share": "هم‌رسانی",
+  "status.share": "همرسانی",
   "status.show_less": "نمایش کمتر",
   "status.show_less_all": "نمایش کمتر همه",
   "status.show_more": "نمایش بیشتر",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}میلیون",
   "units.short.thousand": "{count}هزار",
   "upload_area.title": "برای بارگذاری به این‌جا بکشید",
-  "upload_button.label": "افزودن رسانه ({formats})",
+  "upload_button.label": "افزودن رسانه",
   "upload_error.limit": "از حد مجاز باگذاری پرونده فراتر رفتید.",
   "upload_error.poll": "بارگذاری پرونده در نظرسنجی‌ها مجاز نیست.",
   "upload_form.audio_description": "برای ناشنوایان توصیفش کنید",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "تشخیص متن درون عکس",
   "upload_modal.edit_media": "ویرایش رسانه",
   "upload_modal.hint": "حتی اگر تصویر بریده یا کوچک شود، نقطهٔ کانونی آن همیشه دیده خواهد شد. نقطهٔ کانونی را با کلیک یا جابه‌جا کردن آن تنظیم کنید.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "در حال آماده سازی OCR…",
   "upload_modal.preview_label": "پیش‌نمایش ({ratio})",
   "upload_progress.label": "در حال بارگذاری…",
   "video.close": "بستن ویدیو",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 1abaf51b6..a70a5c1c7 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "Parcourir davantage sur le profil original",
   "account.cancel_follow_request": "Annuler la demande de suivi",
   "account.direct": "Envoyer un message direct à @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Arrêter de me notifier quand @{name} publie",
   "account.domain_blocked": "Domaine bloqué",
   "account.edit_profile": "Modifier le profil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Me notifier quand @{name} publie",
   "account.endorse": "Recommander sur le profil",
   "account.follow": "Suivre",
   "account.followers": "Abonné·e·s",
@@ -155,7 +155,7 @@
   "empty_column.bookmarked_statuses": "Vous n'avez pas de pouets enregistrés comme marque-pages pour le moment. Lorsque vous en ajouterez un, il apparaîtra ici.",
   "empty_column.community": "Le fil public local est vide. Écrivez donc quelque chose pour le remplir !",
   "empty_column.direct": "Vous n’avez pas encore de messages directs. Lorsque vous en enverrez ou recevrez un, il s’affichera ici.",
-  "empty_column.domain_blocks": "Il n’y a aucun domaine caché pour le moment.",
+  "empty_column.domain_blocks": "Il n’y a aucun domaine bloqué pour le moment.",
   "empty_column.favourited_statuses": "Vous n’avez aucun pouet favoris pour le moment. Lorsque vous en mettrez un en favori, il apparaîtra ici.",
   "empty_column.favourites": "Personne n’a encore mis ce pouet en favori. Lorsque quelqu’un le fera, il apparaîtra ici.",
   "empty_column.follow_requests": "Vous n’avez pas encore de demande de suivi. Lorsque vous en recevrez une, elle apparaîtra ici.",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres personnes pour débuter la conversation.",
   "empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des personnes d’autres serveurs pour remplir le fil public",
   "error.unexpected_crash.explanation": "En raison d’un bug dans notre code ou d’un problème de compatibilité avec votre navigateur, cette page n’a pas pu être affichée correctement.",
-  "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": "Cette page n’a pas pu être affichée correctement. Cette erreur est probablement causée par une extension de navigateur ou des outils de traduction automatique.",
   "error.unexpected_crash.next_steps": "Essayez de rafraîchir la page. Si cela n’aide pas, vous pouvez toujours utiliser Mastodon via un autre navigateur ou une application native.",
-  "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": "Essayez de les désactiver et de rafraîchir la page. Si cela ne vous aide pas, vous pouvez toujours utiliser Mastodon via un autre navigateur ou une application native.",
   "errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier",
   "errors.unexpected_crash.report_issue": "Signaler le problème",
   "follow_request.authorize": "Accepter",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "quitter la zone de rédaction/recherche",
   "keyboard_shortcuts.up": "remonter dans la liste",
   "lightbox.close": "Fermer",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Compresser la fenêtre de visualisation des images",
+  "lightbox.expand": "Agrandir la fenêtre de visualisation des images",
   "lightbox.next": "Suivant",
   "lightbox.previous": "Précédent",
   "lightbox.view_context": "Voir le contexte",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Modifier le titre",
   "lists.new.create": "Ajouter une liste",
   "lists.new.title_placeholder": "Titre de la nouvelle liste",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "N’importe quel·le utilisateur·rice suivi·e",
+  "lists.replies_policy.list_replies": "Membres de la liste",
+  "lists.replies_policy.no_replies": "Personne",
+  "lists.replies_policy.title": "Afficher les réponses à :",
   "lists.search": "Rechercher parmi les gens que vous suivez",
   "lists.subheading": "Vos listes",
   "load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Intervertir la visibilité",
   "missing_indicator.label": "Non trouvé",
   "missing_indicator.sublabel": "Ressource introuvable",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Durée",
   "mute_modal.hide_notifications": "Masquer les notifications de cette personne ?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Indéfinie",
   "navigation_bar.apps": "Applications mobiles",
   "navigation_bar.blocks": "Comptes bloqués",
   "navigation_bar.bookmarks": "Marque-pages",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Votre sondage est terminé",
   "notification.poll": "Un sondage auquel vous avez participé vient de se terminer",
   "notification.reblog": "{name} a partagé votre statut",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} vient de publier",
   "notifications.clear": "Effacer les notifications",
   "notifications.clear_confirmation": "Voulez-vous vraiment effacer toutes vos notifications ?",
   "notifications.column_settings.alert": "Notifications du navigateur",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Partages :",
   "notifications.column_settings.show": "Afficher dans la colonne",
   "notifications.column_settings.sound": "Émettre un son",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Nouveaux pouets :",
   "notifications.filter.all": "Tout",
   "notifications.filter.boosts": "Partages",
   "notifications.filter.favourites": "Favoris",
   "notifications.filter.follows": "Abonnés",
   "notifications.filter.mentions": "Mentions",
   "notifications.filter.polls": "Résultats des sondages",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Mises à jour des personnes que vous suivez",
   "notifications.group": "{count} notifications",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Marquer toutes les notifications comme lues",
+  "notifications.permission_denied": "Impossible d’activer les notifications de bureau car l’autorisation a été refusée.",
+  "notifications.permission_denied_alert": "Les notifications de bureau ne peuvent pas être activées, car l’autorisation du navigateur a été refusée avant",
+  "notifications_permission_banner.enable": "Activer les notifications de bureau",
+  "notifications_permission_banner.how_to_control": "Pour recevoir des notifications lorsque Mastodon n’est pas ouvert, activez les notifications du bureau. Vous pouvez contrôler précisément quels types d’interactions génèrent des notifications de bureau via le bouton {icon} ci-dessus une fois qu’elles sont activées.",
+  "notifications_permission_banner.title": "Toujours au courant",
+  "picture_in_picture.restore": "Remettre en place",
   "poll.closed": "Fermé",
   "poll.refresh": "Actualiser",
   "poll.total_people": "{count, plural, one {# personne} other {# personnes}}",
@@ -437,7 +437,7 @@
   "tabs_bar.notifications": "Notifications",
   "tabs_bar.search": "Chercher",
   "time_remaining.days": "{number, plural, one {# day} other {# days}} restants",
-  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} restantes",
+  "time_remaining.hours": "{number, plural, one {# heure} other {# heures}} restantes",
   "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} restantes",
   "time_remaining.moments": "Encore quelques instants",
   "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} restantes",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Glissez et déposez pour envoyer",
-  "upload_button.label": "Joindre un média ({formats})",
+  "upload_button.label": "Ajouter des images, une vidéo ou un fichier audio",
   "upload_error.limit": "Taille maximale d'envoi de fichier dépassée.",
   "upload_error.poll": "L’envoi de fichiers n’est pas autorisé avec les sondages.",
   "upload_form.audio_description": "Décrire pour les personnes ayant des difficultés d’audition",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Détecter le texte de l’image",
   "upload_modal.edit_media": "Modifier le média",
   "upload_modal.hint": "Cliquez ou faites glisser le cercle sur l’aperçu pour choisir le point focal qui sera toujours visible sur toutes les miniatures.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Préparation de OCR…",
   "upload_modal.preview_label": "Aperçu ({ratio})",
   "upload_progress.label": "Envoi en cours…",
   "video.close": "Fermer la vidéo",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 811526acb..591d1c13a 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -1,5 +1,5 @@
 {
-  "account.account_note_header": "A túa nota para @{name}",
+  "account.account_note_header": "Nota",
   "account.add_or_remove_from_list": "Engadir ou eliminar das listaxes",
   "account.badges.bot": "Bot",
   "account.badges.group": "Grupo",
@@ -9,16 +9,16 @@
   "account.browse_more_on_origin_server": "Busca máis no perfil orixinal",
   "account.cancel_follow_request": "Desbotar solicitude de seguimento",
   "account.direct": "Mensaxe directa @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Deixar de notificarme cando @{name} publica",
   "account.domain_blocked": "Dominio agochado",
   "account.edit_profile": "Editar perfil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Noficarme cando @{name} publique",
   "account.endorse": "Amosar no perfil",
   "account.follow": "Seguir",
   "account.followers": "Seguidoras",
   "account.followers.empty": "Aínda ninguén segue esta usuaria.",
   "account.followers_counter": "{count, plural, one {{counter} Seguidora} other {{counter} Seguidoras}}",
-  "account.following_counter": "{count, plural, other {{counter} Seguindo}}",
+  "account.following_counter": "{count, plural, one {{counter} Seguindo} other {{counter} Seguindo}}",
   "account.follows.empty": "Esta usuaria aínda non segue a ninguén.",
   "account.follows_you": "Séguete",
   "account.hide_reblogs": "Agochar repeticións de @{name}",
@@ -45,10 +45,10 @@
   "account.unfollow": "Deixar de seguir",
   "account.unmute": "Deixar de silenciar a @{name}",
   "account.unmute_notifications": "Deixar de silenciar as notificacións de @{name}",
-  "account_note.placeholder": "Sen comentarios",
+  "account_note.placeholder": "Preme para engadir nota",
   "alert.rate_limited.message": "Téntao novamente após {retry_time, time, medium}.",
   "alert.rate_limited.title": "Límite de intentos",
-  "alert.unexpected.message": "Ocorreu un erro non agardado.",
+  "alert.unexpected.message": "Aconteceu un fallo non agardado.",
   "alert.unexpected.title": "Vaites!",
   "announcement.announcement": "Anuncio",
   "autosuggest_hashtag.per_week": "{count} por semana",
@@ -98,9 +98,9 @@
   "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa escolla",
   "compose_form.publish": "Toot",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Marcar coma contido multimedia sensíbel",
-  "compose_form.sensitive.marked": "Contido multimedia marcado coma sensíbel",
-  "compose_form.sensitive.unmarked": "Contido multimedia non marcado coma sensíbel",
+  "compose_form.sensitive.hide": "{count, plural, one {Marca multimedia como sensible} other {Marca multimedia como sensibles}}",
+  "compose_form.sensitive.marked": "{count, plural, one {Multimedia marcado como sensible} other {Multimedia marcados como sensibles}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
   "compose_form.spoiler.marked": "O texto está agochado tras un aviso",
   "compose_form.spoiler.unmarked": "O texto non está agochado",
   "compose_form.spoiler_placeholder": "Escribe o teu aviso aquí",
@@ -109,7 +109,7 @@
   "confirmations.block.confirm": "Bloquear",
   "confirmations.block.message": "Tes a certeza de querer bloquear a {name}?",
   "confirmations.delete.confirm": "Eliminar",
-  "confirmations.delete.message": "Tes a certeza de querer eliminar este estado?",
+  "confirmations.delete.message": "Tes a certeza de querer eliminar este toot?",
   "confirmations.delete_list.confirm": "Eliminar",
   "confirmations.delete_list.message": "Tes a certeza de querer eliminar de xeito permanente esta listaxe?",
   "confirmations.domain_block.confirm": "Agochar dominio enteiro",
@@ -120,7 +120,7 @@
   "confirmations.mute.explanation": "Isto agochará as publicacións delas ou nas que as mencionen, mais permitirá que vexan as túas publicacións e sexan seguidoras túas.",
   "confirmations.mute.message": "Tes a certeza de querer acalar a {name}?",
   "confirmations.redraft.confirm": "Eliminar e reescribir",
-  "confirmations.redraft.message": "Tes a certeza de querer eliminar este estado e reescribilo? Perderás os compartidos e favoritos, e as respostas á publicación orixinal ficarán orfas.",
+  "confirmations.redraft.message": "Tes a certeza de querer eliminar este toot e reescribilo? Perderás os compartidos e favoritos, e as respostas á publicación orixinal ficarán orfas.",
   "confirmations.reply.confirm": "Responder",
   "confirmations.reply.message": "Responder agora sobrescribirá a mensaxe que estás a compor. Tes a certeza de que queres continuar?",
   "confirmations.unfollow.confirm": "Deixar de seguir",
@@ -133,7 +133,7 @@
   "directory.local": "Só de {domain}",
   "directory.new_arrivals": "Recén chegadas",
   "directory.recently_active": "Activas recentemente",
-  "embed.instructions": "Engade este estado ó teu sitio web copiando o seguinte código.",
+  "embed.instructions": "Engade este toot ó teu sitio web copiando o seguinte código.",
   "embed.preview": "Así será mostrado:",
   "emoji_button.activity": "Actividade",
   "emoji_button.custom": "Personalizado",
@@ -162,15 +162,15 @@
   "empty_column.hashtag": "Aínda non hai nada con este cancelo.",
   "empty_column.home": "A túa cronoloxía inicial está baleira! Visita {public} ou emprega a procura para atopar outras usuarias.",
   "empty_column.home.public_timeline": "a cronoloxía pública",
-  "empty_column.list": "Aínda non hai nada nesta listaxe. Cando os usuarios incluídas na listaxe publiquen mensaxes, amosaranse aquí.",
+  "empty_column.list": "Aínda non hai nada nesta listaxe. Cando as usuarias incluídas na listaxe publiquen mensaxes, amosaranse aquí.",
   "empty_column.lists": "Aínda non tes listaxes. Cando crees unha, amosarase aquí.",
   "empty_column.mutes": "Aínda non silenciaches a ningúnha usuaria.",
   "empty_column.notifications": "Aínda non tes notificacións. Interactúa con outras para comezar unha conversa.",
   "empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou segue de xeito manual usuarias doutros servidores para ir enchéndoo",
   "error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.",
-  "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": "Non se puido mostrar correctamente a páxina. Habitualmente este erro está causado por algún engadido do navegador ou ferramentas de tradución automática.",
   "error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se esto non axuda podes tamén empregar Mastodon noutro navegador ou aplicación nativa.",
-  "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": "Intenta desactivalas e actualiza a páxina. Se isto non funciona, podes seguir usando Mastodon nun navegador diferente ou aplicación nativa.",
   "errors.unexpected_crash.copy_stacktrace": "Copiar trazas (stacktrace) ó portapapeis",
   "errors.unexpected_crash.report_issue": "Informar sobre un problema",
   "follow_request.authorize": "Autorizar",
@@ -222,12 +222,12 @@
   "keyboard_shortcuts.back": "para voltar atrás",
   "keyboard_shortcuts.blocked": "abrir lista de usuarias bloqueadas",
   "keyboard_shortcuts.boost": "promover",
-  "keyboard_shortcuts.column": "para destacar un estado nunha das columnas",
+  "keyboard_shortcuts.column": "para destacar un toot nunha das columnas",
   "keyboard_shortcuts.compose": "para destacar a área de escritura",
   "keyboard_shortcuts.description": "Descrición",
   "keyboard_shortcuts.direct": "para abrir a columna de mensaxes directas",
   "keyboard_shortcuts.down": "para mover cara abaixo na listaxe",
-  "keyboard_shortcuts.enter": "para abrir estado",
+  "keyboard_shortcuts.enter": "para abrir toot",
   "keyboard_shortcuts.favourite": "para engadir a favoritos",
   "keyboard_shortcuts.favourites": "para abrir a listaxe dos favoritos",
   "keyboard_shortcuts.federated": "para abrir a cronoloxía federada",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "para deixar de destacar a área de escritura/procura",
   "keyboard_shortcuts.up": "para mover cara arriba na listaxe",
   "lightbox.close": "Fechar",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Comprimir a caixa de vista da imaxe",
+  "lightbox.expand": "Expandir a caixa de vista da imaxe",
   "lightbox.next": "Seguinte",
   "lightbox.previous": "Anterior",
   "lightbox.view_context": "Ollar contexto",
@@ -266,20 +266,20 @@
   "lists.edit.submit": "Mudar o título",
   "lists.new.create": "Engadir listaxe",
   "lists.new.title_placeholder": "Título da nova listaxe",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Calquera usuaria á que segues",
+  "lists.replies_policy.list_replies": "Membros da lista",
+  "lists.replies_policy.no_replies": "Ninguén",
+  "lists.replies_policy.title": "Mostrar respostas a:",
   "lists.search": "Procurar entre as persoas que segues",
   "lists.subheading": "As túas listaxes",
   "load_pending": "{count, plural, one {# novo elemento} other {# novos elementos}}",
   "loading_indicator.label": "Estase a cargar...",
-  "media_gallery.toggle_visible": "Trocar visibilidade",
+  "media_gallery.toggle_visible": "Agochar {number, plural, one {imaxe} other {imaxes}}",
   "missing_indicator.label": "Non atopado",
   "missing_indicator.sublabel": "Este recurso non foi atopado",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Duración",
   "mute_modal.hide_notifications": "Agochar notificacións desta usuaria?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Indefinida",
   "navigation_bar.apps": "Aplicacións móbiles",
   "navigation_bar.blocks": "Usuarias bloqueadas",
   "navigation_bar.bookmarks": "Marcadores",
@@ -303,14 +303,14 @@
   "navigation_bar.preferences": "Preferencias",
   "navigation_bar.public_timeline": "Cronoloxía federada",
   "navigation_bar.security": "Seguranza",
-  "notification.favourite": "{name} marcou o teu estado coma favorito",
+  "notification.favourite": "{name} marcou o teu toot coma favorito",
   "notification.follow": "{name} comezou a seguirte",
   "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.reblog": "{name} compartiu o teu estado",
-  "notification.status": "{name} just posted",
+  "notification.reblog": "{name} compartiu o teu toot",
+  "notification.status": "{name} publicou",
   "notifications.clear": "Limpar notificacións",
   "notifications.clear_confirmation": "Tes a certeza de querer limpar de xeito permanente todas as túas notificacións?",
   "notifications.column_settings.alert": "Notificacións de escritorio",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Promocións:",
   "notifications.column_settings.show": "Amosar en columna",
   "notifications.column_settings.sound": "Reproducir son",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Novos toots:",
   "notifications.filter.all": "Todo",
   "notifications.filter.boosts": "Compartidos",
   "notifications.filter.favourites": "Favoritos",
   "notifications.filter.follows": "Seguimentos",
   "notifications.filter.mentions": "Mencións",
   "notifications.filter.polls": "Resultados da enquisa",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Actualizacións de xente á que segues",
   "notifications.group": "{count} notificacións",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Marcar todas as notificacións como lidas",
+  "notifications.permission_denied": "Non se activaron as notificacións de escritorio porque se denegou o permiso.",
+  "notifications.permission_denied_alert": "Non se poden activar as notificacións de escritorio, xa que o permiso para o navegador foi denegado previamente",
+  "notifications_permission_banner.enable": "Activar notificacións de escritorio",
+  "notifications_permission_banner.how_to_control": "Activa as notificacións de escritorio para recibir notificacións mentras Mastodon non está aberto. Podes controlar de xeito preciso o tipo de interaccións crean as notificacións de escritorio a través da {icon} superior unha vez activadas.",
+  "notifications_permission_banner.title": "Non perder nada",
+  "picture_in_picture.restore": "Devolver",
   "poll.closed": "Pechado",
   "poll.refresh": "Actualizar",
   "poll.total_people": "{count, plural,one {# persoa} other {# persoas}}",
@@ -377,9 +377,9 @@
   "report.target": "Denunciar a {target}",
   "search.placeholder": "Procurar",
   "search_popout.search_format": "Formato de procura avanzada",
-  "search_popout.tips.full_text": "Texto simple devolve estados que ti escribiches, promoviches, marcaches favoritos, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e cancelos.",
+  "search_popout.tips.full_text": "Texto simple devolve toots que ti escribiches, promoviches, marcaches favoritos, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e cancelos.",
   "search_popout.tips.hashtag": "cancelo",
-  "search_popout.tips.status": "estado",
+  "search_popout.tips.status": "toot",
   "search_popout.tips.text": "Texto simple devolve coincidencias con nomes públicos, nomes de usuaria e cancelos",
   "search_popout.tips.user": "usuaria",
   "search_results.accounts": "Persoas",
@@ -388,12 +388,12 @@
   "search_results.statuses_fts_disabled": "Procurar toots polo seu contido non está activado neste servidor do Mastodon.",
   "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
   "status.admin_account": "Abrir interface de moderación para @{name}",
-  "status.admin_status": "Abrir este estado na interface de moderación",
+  "status.admin_status": "Abrir este toot na interface de moderación",
   "status.block": "Bloquear a @{name}",
   "status.bookmark": "Marcar",
   "status.cancel_reblog_private": "Desfacer compartido",
   "status.cannot_reblog": "Esta publicación non pode ser promovida",
-  "status.copy": "Copiar ligazón ó estado",
+  "status.copy": "Copiar ligazón ó toot",
   "status.delete": "Eliminar",
   "status.detailed_status": "Vista detallada da conversa",
   "status.direct": "Mensaxe directa a @{name}",
@@ -406,7 +406,7 @@
   "status.more": "Máis",
   "status.mute": "Silenciar @{name}",
   "status.mute_conversation": "Silenciar conversa",
-  "status.open": "Expandir este estado",
+  "status.open": "Expandir este toot",
   "status.pin": "Fixar no perfil",
   "status.pinned": "Toot fixado",
   "status.read_more": "Ler máis",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Arrastra e solta para subir",
-  "upload_button.label": "Engadir multimedia ({formats})",
+  "upload_button.label": "Engadir imaxes, un vídeo ou ficheiro de audio",
   "upload_error.limit": "Límite máximo do ficheiro a subir excedido.",
   "upload_error.poll": "Non se poden subir ficheiros nas enquisas.",
   "upload_form.audio_description": "Describir para persoas con problemas auditivos",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Detectar texto na imaxe",
   "upload_modal.edit_media": "Editar multimedia",
   "upload_modal.hint": "Preme ou arrastra o círculo na vista previa para escoller o punto focal que sempre estará á vista en todas as miniaturas.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Preparando OCR…",
   "upload_modal.preview_label": "Vista previa ({ratio})",
   "upload_progress.label": "Estase a subir...",
   "video.close": "Pechar vídeo",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index 4670e593b..275cc3eb9 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -1,12 +1,12 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "टिप्पणियाँ",
   "account.add_or_remove_from_list": "सूची में जोड़ें या हटाए",
   "account.badges.bot": "बॉट",
-  "account.badges.group": "Group",
+  "account.badges.group": "समूह",
   "account.block": "@{name} को ब्लॉक करें",
   "account.block_domain": "{domain} के सारी चीज़े छुपाएं",
   "account.blocked": "ब्लॉक",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "मूल प्रोफ़ाइल पर अधिक ब्राउज़ करें",
   "account.cancel_follow_request": "फ़ॉलो रिक्वेस्ट रद्द करें",
   "account.direct": "प्रत्यक्ष संदेश @{name}",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
@@ -17,8 +17,8 @@
   "account.follow": "फॉलो करें",
   "account.followers": "फॉलोवर",
   "account.followers.empty": "कोई भी इस यूज़र् को फ़ॉलो नहीं करता है",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} अनुगामी} other {{counter} समर्थक}}",
+  "account.following_counter": "{count, plural, one {{counter} निम्नलिखित} other {{counter} निम्नलिखित}}",
   "account.follows.empty": "यह यूज़र् अभी तक किसी को फॉलो नहीं करता है।",
   "account.follows_you": "आपको फॉलो करता है",
   "account.hide_reblogs": "@{name} के बूस्ट छुपाएं",
@@ -38,19 +38,19 @@
   "account.requested": "मंजूरी का इंतजार। फॉलो रिक्वेस्ट को रद्द करने के लिए क्लिक करें",
   "account.share": "@{name} की प्रोफाइल शेयर करे",
   "account.show_reblogs": "@{name} के बूस्ट दिखाए",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} भोंपू} other {{counter} भोंपू}}",
   "account.unblock": "@{name} को अनब्लॉक करें",
   "account.unblock_domain": "{domain} दिखाए",
   "account.unendorse": "प्रोफ़ाइल पर न दिखाए",
   "account.unfollow": "अनफॉलो करें",
   "account.unmute": "अनम्यूट @{name}",
   "account.unmute_notifications": "@{name} के नोटिफिकेशन अनम्यूट करे",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "नोट्स जोड़ने के लिए क्लिक करें",
   "alert.rate_limited.message": "कृप्या {retry_time, time, medium} के बाद दुबारा कोशिश करें",
   "alert.rate_limited.title": "सीमित दर",
   "alert.unexpected.message": "एक अप्रत्याशित त्रुटि हुई है!",
   "alert.unexpected.title": "उफ़!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "घोषणा",
   "autosuggest_hashtag.per_week": "{count} हर सप्ताह",
   "boost_modal.combo": "अगली बार स्किप करने के लिए आप {combo} दबा सकते है",
   "bundle_column_error.body": "इस कॉम्पोनेन्ट को लोड करते वक्त कुछ गलत हो गया",
@@ -60,7 +60,7 @@
   "bundle_modal_error.message": "इस कॉम्पोनेन्ट को लोड करते वक्त कुछ गलत हो गया",
   "bundle_modal_error.retry": "दुबारा कोशिश करें",
   "column.blocks": "ब्लॉक्ड यूज़र्स",
-  "column.bookmarks": "Bookmarks",
+  "column.bookmarks": "पुस्तकचिह्न:",
   "column.community": "लोकल टाइम्लाइन",
   "column.direct": "सीधा संदेश",
   "column.directory": "प्रोफाइल्स खोजें",
@@ -81,9 +81,9 @@
   "column_header.show_settings": "सेटिंग्स दिखाएँ",
   "column_header.unpin": "अनपिन",
   "column_subheading.settings": "सेटिंग्स",
-  "community.column_settings.local_only": "Local only",
+  "community.column_settings.local_only": "स्थानीय ही",
   "community.column_settings.media_only": "सिर्फ़ मीडिया",
-  "community.column_settings.remote_only": "Remote only",
+  "community.column_settings.remote_only": "केवल सुदूर",
   "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "और जानें",
   "compose_form.hashtag_warning": "यह टूट् किसी भी हैशटैग के तहत सूचीबद्ध नहीं होगा क्योंकि यह अनलिस्टेड है। हैशटैग द्वारा केवल सार्वजनिक टूट्स खोजे जा सकते हैं।",
@@ -94,8 +94,8 @@
   "compose_form.poll.duration": "चुनाव की अवधि",
   "compose_form.poll.option_placeholder": "कुल विकल्प {number}",
   "compose_form.poll.remove_option": "इस विकल्प को हटाएँ",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.poll.switch_to_multiple": "कई विकल्पों की अनुमति देने के लिए पोल बदलें",
+  "compose_form.poll.switch_to_single": "एक ही विकल्प के लिए अनुमति देने के लिए पोल बदलें",
   "compose_form.publish": "टूट्",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.hide": "मीडिया को संवेदनशील के रूप में चिह्नित करें",
@@ -152,7 +152,7 @@
   "empty_column.account_timeline": "सन्नाटा! यहां कोई टूट्स नहीं!",
   "empty_column.account_unavailable": "प्रोफाइल उपलब्ध नहीं",
   "empty_column.blocks": "आप अभी तक किसी भी यूजर के द्वारा ब्लॉक्ड नहीं हो।",
-  "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+  "empty_column.bookmarked_statuses": "आपके पास अभी तक कोई बुकमार्क नहीं है। जब आप एक बुकमार्क करते हैं, तो यह यहां दिखाई देगा।",
   "empty_column.community": "लोकल टाइम्लाइन खाली है, कुछ देखने के लिये सार्वजनिक रूप से कुछ लिखें!",
   "empty_column.direct": "आपके पास कोई सीधा सन्देश नहीं है, जब आप कोई भेजेंगे प्राप्त करेंगे तो यहाँ दिखेगा।",
   "empty_column.domain_blocks": "अभी तक कोई छुपा हुआ डोमेन नहीं है।",
@@ -163,19 +163,19 @@
   "empty_column.home": "आपकी मुख्य कालक्रम अभी खली है. अन्य उपयोगकर्ताओं से मिलने के लिए और अपनी गतिविधियां शुरू करने के लिए या तो {public} पर जाएं या खोज का उपयोग करें।",
   "empty_column.home.public_timeline": "सार्वजनिक कालक्रम",
   "empty_column.list": "यह सूची अभी खाली है. जब इसके सदस्य कोई अभिव्यक्ति देंगे, तो वो यहां दिखाई देंगी.",
-  "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
-  "empty_column.mutes": "You haven't muted any users yet.",
-  "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
-  "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
-  "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
+  "empty_column.lists": "आपके पास अभी तक कोई सूची नहीं है। जब आप एक बनाते हैं, तो यह यहां दिखाई देगा।",
+  "empty_column.mutes": "आपने अभी तक किसी भी उपयोगकर्ता को म्यूट नहीं किया है।",
+  "empty_column.notifications": "आपके पास अभी तक कोई सूचना नहीं है। बातचीत शुरू करने के लिए दूसरों के साथ बातचीत करें।",
+  "empty_column.public": "यहां कुछ नहीं है! सार्वजनिक रूप से कुछ लिखें, या इसे भरने के लिए अन्य सर्वर से उपयोगकर्ताओं का मैन्युअल रूप से अनुसरण करें",
+  "error.unexpected_crash.explanation": "हमारे कोड या ब्राउज़र संगतता समस्या में बग के कारण, यह पृष्ठ सही ढंग से प्रदर्शित नहीं हो सका।",
   "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
   "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
   "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
-  "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
+  "errors.unexpected_crash.copy_stacktrace": "स्टैकट्रेस को क्लिपबोर्ड पर कॉपी करें",
   "errors.unexpected_crash.report_issue": "समस्या सूचित करें",
   "follow_request.authorize": "अधिकार दें",
   "follow_request.reject": "अस्वीकार करें",
-  "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
+  "follow_requests.unlocked_explanation": "हालाँकि आपका खाता लॉक नहीं है, फिर भी {domain} डोमेन स्टाफ ने सोचा कि आप इन खातों के मैन्युअल अनुरोधों की समीक्षा करना चाहते हैं।",
   "generic.saved": "Saved",
   "getting_started.developers": "डेवॅलपर्स",
   "getting_started.directory": "प्रोफ़ाइल निर्देशिका",
@@ -197,31 +197,31 @@
   "home.column_settings.basic": "बुनियादी",
   "home.column_settings.show_reblogs": "बूस्ट दिखाए",
   "home.column_settings.show_replies": "जवाबों को दिखाए",
-  "home.hide_announcements": "Hide announcements",
-  "home.show_announcements": "Show announcements",
+  "home.hide_announcements": "घोषणाएँ छिपाएँ",
+  "home.show_announcements": "घोषणाएं दिखाएं",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
   "introduction.federation.action": "अगला",
   "introduction.federation.federated.headline": "फ़ेडरेटेड",
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+  "introduction.federation.federated.text": "महासंघ के अन्य सर्वरों से सार्वजनिक पद संघटित समय-सीमा में दिखाई देंगे।",
   "introduction.federation.home.headline": "होम",
-  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+  "introduction.federation.home.text": "आपके द्वारा अनुसरण किए जाने वाले लोगों के पोस्ट आपके होम फीड में दिखाई देंगे। आप किसी भी सर्वर पर किसी को भी फॉलो कर सकते हैं!",
   "introduction.federation.local.headline": "लोकल",
   "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
   "introduction.interactions.action": "Finish toot-orial!",
   "introduction.interactions.favourite.headline": "पसंदीदा",
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
+  "introduction.interactions.favourite.text": "आप बाद में इसके लिए एक टोट को बचा सकते हैं, और लेखक को यह बता दें कि आपको यह पसंद आया, इसे फेवर करके।",
   "introduction.interactions.reblog.headline": "बूस्ट",
   "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
   "introduction.interactions.reply.headline": "जवाब",
   "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
   "introduction.welcome.action": "आइए शुरू करते हैं!",
   "introduction.welcome.headline": "पहले कदम",
-  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
-  "keyboard_shortcuts.back": "to navigate back",
-  "keyboard_shortcuts.blocked": "to open blocked users list",
-  "keyboard_shortcuts.boost": "to boost",
+  "introduction.welcome.text": "फेडवर्स में आपका स्वागत है! कुछ ही क्षणों में, आप संदेशों को प्रसारित करने और अपने दोस्तों से विस्तृत सर्वर पर बात करने में सक्षम होंगे। लेकिन यह सर्वर, {domain}, विशेष है - यह आपकी प्रोफ़ाइल को होस्ट करता है, इसलिए इसका नाम याद रखें।",
+  "keyboard_shortcuts.back": "वापस जाने के लिए",
+  "keyboard_shortcuts.blocked": "अवरुद्ध उपयोगकर्ताओं की सूची खोलने के लिए",
+  "keyboard_shortcuts.boost": "बढ़ावा देने के लिए",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "कंपोज़ टेक्स्ट-एरिया पर ध्यान केंद्रित करने के लिए",
   "keyboard_shortcuts.description": "विवरण",
@@ -253,25 +253,25 @@
   "keyboard_shortcuts.toot": "to start a brand new toot",
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
   "keyboard_shortcuts.up": "to move up in the list",
-  "lightbox.close": "Close",
+  "lightbox.close": "बंद करें",
   "lightbox.compress": "Compress image view box",
   "lightbox.expand": "Expand image view box",
-  "lightbox.next": "Next",
-  "lightbox.previous": "Previous",
+  "lightbox.next": "अगला",
+  "lightbox.previous": "पिछला",
   "lightbox.view_context": "View context",
   "lists.account.add": "Add to list",
-  "lists.account.remove": "Remove from list",
-  "lists.delete": "Delete list",
-  "lists.edit": "Edit list",
+  "lists.account.remove": "सूची से निकालें",
+  "lists.delete": "सूची हटाएँ",
+  "lists.edit": "सूची संपादित करें",
   "lists.edit.submit": "Change title",
-  "lists.new.create": "Add list",
-  "lists.new.title_placeholder": "New list title",
+  "lists.new.create": "सूची जोड़ें",
+  "lists.new.title_placeholder": "नये सूची का शीर्षक",
   "lists.replies_policy.all_replies": "Any followed user",
   "lists.replies_policy.list_replies": "Members of the list",
   "lists.replies_policy.no_replies": "No one",
   "lists.replies_policy.title": "Show replies to:",
   "lists.search": "Search among people you follow",
-  "lists.subheading": "Your lists",
+  "lists.subheading": "आपकी सूचियाँ",
   "load_pending": "{count, plural, one {# new item} other {# new items}}",
   "loading_indicator.label": "लोड हो रहा है...",
   "media_gallery.toggle_visible": "Hide {number, plural, one {image} other {images}}",
@@ -282,21 +282,21 @@
   "mute_modal.indefinite": "Indefinite",
   "navigation_bar.apps": "मोबाइल एप्लिकेशंस",
   "navigation_bar.blocks": "ब्लॉक्ड यूज़र्स",
-  "navigation_bar.bookmarks": "Bookmarks",
+  "navigation_bar.bookmarks": "पुस्तकचिह्न:",
   "navigation_bar.community_timeline": "लोकल टाइम्लाइन",
   "navigation_bar.compose": "नया टूट् लिखें",
-  "navigation_bar.direct": "Direct messages",
-  "navigation_bar.discover": "Discover",
+  "navigation_bar.direct": "सीधा संदेश",
+  "navigation_bar.discover": "खोजें",
   "navigation_bar.domain_blocks": "Hidden domains",
-  "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.edit_profile": "प्रोफ़ाइल संपादित करें",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
-  "navigation_bar.follow_requests": "Follow requests",
+  "navigation_bar.follow_requests": "अनुसरण करने के अनुरोध",
   "navigation_bar.follows_and_followers": "Follows and followers",
-  "navigation_bar.info": "About this server",
+  "navigation_bar.info": "इस सर्वर के बारे में",
   "navigation_bar.keyboard_shortcuts": "Hotkeys",
-  "navigation_bar.lists": "Lists",
-  "navigation_bar.logout": "Logout",
+  "navigation_bar.lists": "सूचियाँ",
+  "navigation_bar.logout": "बाहर जाए",
   "navigation_bar.mutes": "Muted users",
   "navigation_bar.personal": "Personal",
   "navigation_bar.pins": "Pinned toots",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 3002ca49d..d59e10a89 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -1,281 +1,281 @@
 {
-  "account.account_note_header": "Note",
-  "account.add_or_remove_from_list": "Add or Remove from lists",
+  "account.account_note_header": "Bilješka",
+  "account.add_or_remove_from_list": "Dodaj ili ukloni s liste",
   "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
+  "account.badges.group": "Grupa",
   "account.block": "Blokiraj @{name}",
-  "account.block_domain": "Sakrij sve sa {domain}",
-  "account.blocked": "Blocked",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
-  "account.cancel_follow_request": "Cancel follow request",
-  "account.direct": "Direct Message @{name}",
+  "account.block_domain": "Blokiraj domenu {domain}",
+  "account.blocked": "Blokirano",
+  "account.browse_more_on_origin_server": "Pogledajte više na izvornom profilu",
+  "account.cancel_follow_request": "Otkaži zahtjev za praćenje",
+  "account.direct": "Pošalji poruku @{name}",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Domain hidden",
+  "account.domain_blocked": "Domena je blokirana",
   "account.edit_profile": "Uredi profil",
   "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Feature on profile",
-  "account.follow": "Slijedi",
-  "account.followers": "Sljedbenici",
-  "account.followers.empty": "No one follows this user yet.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
-  "account.follows.empty": "This user doesn't follow anyone yet.",
-  "account.follows_you": "te slijedi",
-  "account.hide_reblogs": "Hide boosts from @{name}",
-  "account.last_status": "Last active",
-  "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.endorse": "Istakni na profilu",
+  "account.follow": "Prati",
+  "account.followers": "Pratitelji",
+  "account.followers.empty": "Nitko još ne prati korisnika/cu.",
+  "account.followers_counter": "{count, plural, one {{counter} pratitelj} other {{counter} pratitelja}}",
+  "account.following_counter": "{count, plural, one {{counter} praćeni} few{{counter} praćena} other {{counter} praćenih}}",
+  "account.follows.empty": "Korisnik/ca još ne prati nikoga.",
+  "account.follows_you": "Prati te",
+  "account.hide_reblogs": "Sakrij boostove od @{name}",
+  "account.last_status": "Posljednja aktivnost",
+  "account.link_verified_on": "Vlasništvo ove poveznice provjereno je {date}",
+  "account.locked_info": "Status privatnosti ovog računa postavljen je na zaključano. Vlasnik ručno pregledava tko ih može pratiti.",
+  "account.media": "Medijski sadržaj",
   "account.mention": "Spomeni @{name}",
-  "account.moved_to": "{name} has moved to:",
+  "account.moved_to": "Račun {name} je premješten na:",
   "account.mute": "Utišaj @{name}",
-  "account.mute_notifications": "Mute notifications from @{name}",
-  "account.muted": "Muted",
-  "account.never_active": "Never",
-  "account.posts": "Postovi",
-  "account.posts_with_replies": "Toots with replies",
+  "account.mute_notifications": "Utišaj obavijesti od @{name}",
+  "account.muted": "Utišano",
+  "account.never_active": "Nikad",
+  "account.posts": "Tootovi",
+  "account.posts_with_replies": "Tootovi i odgovori",
   "account.report": "Prijavi @{name}",
-  "account.requested": "Čeka pristanak",
-  "account.share": "Share @{name}'s profile",
-  "account.show_reblogs": "Show boosts from @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.requested": "Čekanje na potvrdu. Kliknite za otkazivanje zahtjeva za praćenje",
+  "account.share": "Podijeli profil @{name}",
+  "account.show_reblogs": "Prikaži boostove od @{name}",
+  "account.statuses_counter": "{count, plural, one {{counter} toot} other {{counter} toota}}",
   "account.unblock": "Deblokiraj @{name}",
-  "account.unblock_domain": "Poništi sakrivanje {domain}",
-  "account.unendorse": "Don't feature on profile",
-  "account.unfollow": "Prestani slijediti",
+  "account.unblock_domain": "Deblokiraj domenu {domain}",
+  "account.unendorse": "Ne ističi na profilu",
+  "account.unfollow": "Prestani pratiti",
   "account.unmute": "Poništi utišavanje @{name}",
-  "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account_note.placeholder": "Click to add a note",
-  "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",
-  "autosuggest_hashtag.per_week": "{count} per week",
-  "boost_modal.combo": "Možeš pritisnuti {combo} kako bi ovo preskočio sljedeći put",
-  "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",
+  "account.unmute_notifications": "Ne utišavaj obavijesti od @{name}",
+  "account_note.placeholder": "Kliknite za dodavanje bilješke",
+  "alert.rate_limited.message": "Molimo pokušajte nakon {retry_time, time, medium}.",
+  "alert.rate_limited.title": "Ograničenje učestalosti",
+  "alert.unexpected.message": "Dogodila se neočekivana greška.",
+  "alert.unexpected.title": "Ups!",
+  "announcement.announcement": "Najava",
+  "autosuggest_hashtag.per_week": "{count} tjedno",
+  "boost_modal.combo": "Možete pritisnuti {combo} kako biste preskočili ovo sljedeći put",
+  "bundle_column_error.body": "Nešto je pošlo po zlu tijekom učitavanja ove komponente.",
+  "bundle_column_error.retry": "Pokušajte ponovno",
+  "bundle_column_error.title": "Greška mreže",
+  "bundle_modal_error.close": "Zatvori",
+  "bundle_modal_error.message": "Nešto je pošlo po zlu tijekom učitavanja ove komponente.",
+  "bundle_modal_error.retry": "Pokušajte ponovno",
   "column.blocks": "Blokirani korisnici",
-  "column.bookmarks": "Bookmarks",
-  "column.community": "Lokalni timeline",
-  "column.direct": "Direct messages",
-  "column.directory": "Browse profiles",
-  "column.domain_blocks": "Hidden domains",
+  "column.bookmarks": "Knjižne oznake",
+  "column.community": "Lokalna vremenska crta",
+  "column.direct": "Izravne poruke",
+  "column.directory": "Pregledavanje profila",
+  "column.domain_blocks": "Blokirane domene",
   "column.favourites": "Favoriti",
-  "column.follow_requests": "Zahtjevi za slijeđenje",
-  "column.home": "Dom",
-  "column.lists": "Lists",
+  "column.follow_requests": "Zahtjevi za praćenje",
+  "column.home": "Početna",
+  "column.lists": "Liste",
   "column.mutes": "Utišani korisnici",
-  "column.notifications": "Notifikacije",
-  "column.pins": "Pinned toot",
-  "column.public": "Federalni timeline",
+  "column.notifications": "Obavijesti",
+  "column.pins": "Prikvačeni tootovi",
+  "column.public": "Federalna vremenska crta",
   "column_back_button.label": "Natrag",
-  "column_header.hide_settings": "Hide settings",
-  "column_header.moveLeft_settings": "Move column to the left",
-  "column_header.moveRight_settings": "Move column to the right",
-  "column_header.pin": "Pin",
-  "column_header.show_settings": "Show settings",
-  "column_header.unpin": "Unpin",
+  "column_header.hide_settings": "Sakrij postavke",
+  "column_header.moveLeft_settings": "Pomakni stupac ulijevo",
+  "column_header.moveRight_settings": "Pomakni stupac udesno",
+  "column_header.pin": "Prikvači",
+  "column_header.show_settings": "Prikaži postavke",
+  "column_header.unpin": "Otkvači",
   "column_subheading.settings": "Postavke",
-  "community.column_settings.local_only": "Local only",
-  "community.column_settings.media_only": "Media only",
-  "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
-  "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
-  "compose_form.lock_disclaimer": "Tvoj račun nije {locked}. Svatko te može slijediti kako bi vidio postove namijenjene samo tvojim sljedbenicima.",
+  "community.column_settings.local_only": "Samo lokalno",
+  "community.column_settings.media_only": "Samo medijski sadržaj",
+  "community.column_settings.remote_only": "Samo udaljeno",
+  "compose_form.direct_message_warning": "Ovaj toot bit će poslan samo spomenutim korisnicima.",
+  "compose_form.direct_message_warning_learn_more": "Saznajte više",
+  "compose_form.hashtag_warning": "Ovaj toot neće biti prikazan ni pod jednim hashtagom jer je postavljen kao neprikazan. Samo javni tootovi mogu biti pretraživani pomoći hashtagova.",
+  "compose_form.lock_disclaimer": "Vaš račun nije {locked}. Svatko Vas može pratiti kako bi vidjeli objave namijenjene Vašim pratiteljima.",
   "compose_form.lock_disclaimer.lock": "zaključan",
   "compose_form.placeholder": "Što ti je na umu?",
-  "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
-  "compose_form.publish": "Toot",
+  "compose_form.poll.add_option": "Dodaj opciju",
+  "compose_form.poll.duration": "Trajanje ankete",
+  "compose_form.poll.option_placeholder": "Opcija {number}",
+  "compose_form.poll.remove_option": "Ukloni ovu opciju",
+  "compose_form.poll.switch_to_multiple": "Omogući višestruki odabir opcija ankete",
+  "compose_form.poll.switch_to_single": "Omogući odabir samo jedne opcije ankete",
+  "compose_form.publish": "Tootni",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
-  "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
-  "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
-  "compose_form.spoiler.marked": "Text is hidden behind warning",
-  "compose_form.spoiler.unmarked": "Text is not hidden",
-  "compose_form.spoiler_placeholder": "Upozorenje o sadržaju",
+  "compose_form.sensitive.hide": "Označi medijski sadržaj kao osjetljiv",
+  "compose_form.sensitive.marked": "Medijski sadržaj označen je kao osjetljiv",
+  "compose_form.sensitive.unmarked": "Medijski sadržaj nije označen kao osjetljiv",
+  "compose_form.spoiler.marked": "Tekst je skriven iza upozorenja",
+  "compose_form.spoiler.unmarked": "Tekst nije skriven",
+  "compose_form.spoiler_placeholder": "Ovdje upišite upozorenje",
   "confirmation_modal.cancel": "Otkaži",
-  "confirmations.block.block_and_report": "Block & Report",
+  "confirmations.block.block_and_report": "Blokiraj i prijavi",
   "confirmations.block.confirm": "Blokiraj",
-  "confirmations.block.message": "Želiš li sigurno blokirati {name}?",
+  "confirmations.block.message": "Sigurno želite blokirati {name}?",
   "confirmations.delete.confirm": "Obriši",
-  "confirmations.delete.message": "Želiš li stvarno obrisati ovaj status?",
-  "confirmations.delete_list.confirm": "Delete",
-  "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
-  "confirmations.domain_block.confirm": "Sakrij cijelu domenu",
-  "confirmations.domain_block.message": "Jesi li zaista, zaista siguran da želiš potpuno blokirati {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
-  "confirmations.logout.confirm": "Log out",
-  "confirmations.logout.message": "Are you sure you want to log out?",
+  "confirmations.delete.message": "Stvarno želite obrisati ovaj toot?",
+  "confirmations.delete_list.confirm": "Obriši",
+  "confirmations.delete_list.message": "Jeste li sigurni da želite trajno obrisati ovu listu?",
+  "confirmations.domain_block.confirm": "Blokiraj cijelu domenu",
+  "confirmations.domain_block.message": "Jeste li zaista, zaista sigurni da želite blokirati cijelu domenu {domain}? U većini slučajeva dovoljno je i preferirano nekoliko ciljanih blokiranja ili utišavanja. Nećete vidjeti sadržaj s te domene ni u kojim javnim vremenskim crtama ili Vašim obavijestima. Vaši pratitelji s te domene bit će uklonjeni.",
+  "confirmations.logout.confirm": "Odjavi se",
+  "confirmations.logout.message": "Jeste li sigurni da se želite odjaviti?",
   "confirmations.mute.confirm": "Utišaj",
-  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
-  "confirmations.mute.message": "Jesi li siguran da želiš utišati {name}?",
-  "confirmations.redraft.confirm": "Delete & redraft",
-  "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
-  "confirmations.reply.confirm": "Reply",
+  "confirmations.mute.explanation": "Ovo će sakriti njihove objave i objave koje ih spominju, ali i dalje će im dopuštati da vide Vaše objave i da Vas prate.",
+  "confirmations.mute.message": "Jeste li sigurni da želite utišati {name}?",
+  "confirmations.redraft.confirm": "Izbriši i ponovno uredi",
+  "confirmations.redraft.message": "Jeste li sigurni da želite izbrisati ovaj toot i ponovno ga urediti? Favoriti i boostovi bit će izgubljeni, a odgovori na izvornu objavu bit će odvojeni.",
+  "confirmations.reply.confirm": "Odgovori",
   "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
-  "confirmations.unfollow.confirm": "Unfollow",
+  "confirmations.unfollow.confirm": "Prestani pratiti",
   "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
-  "conversation.delete": "Delete conversation",
-  "conversation.mark_as_read": "Mark as read",
-  "conversation.open": "View conversation",
-  "conversation.with": "With {names}",
+  "conversation.delete": "Izbriši razgovor",
+  "conversation.mark_as_read": "Označi kao pročitano",
+  "conversation.open": "Prikaži razgovor",
+  "conversation.with": "S {names}",
   "directory.federated": "From known fediverse",
-  "directory.local": "From {domain} only",
+  "directory.local": "Samo iz {domain}",
   "directory.new_arrivals": "New arrivals",
-  "directory.recently_active": "Recently active",
+  "directory.recently_active": "Nedavno aktivni",
   "embed.instructions": "Embed this status on your website by copying the code below.",
   "embed.preview": "Here is what it will look like:",
   "emoji_button.activity": "Aktivnost",
-  "emoji_button.custom": "Custom",
+  "emoji_button.custom": "Prilagođeno",
   "emoji_button.flags": "Zastave",
-  "emoji_button.food": "Hrana & Piće",
-  "emoji_button.label": "Umetni smajlije",
+  "emoji_button.food": "Hrana i piće",
+  "emoji_button.label": "Umetni emotikone",
   "emoji_button.nature": "Priroda",
-  "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
-  "emoji_button.objects": "Objekti",
+  "emoji_button.not_found": "Nema emotikona!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.objects": "Predmeti",
   "emoji_button.people": "Ljudi",
-  "emoji_button.recent": "Frequently used",
+  "emoji_button.recent": "Često korišteno",
   "emoji_button.search": "Traži...",
-  "emoji_button.search_results": "Search results",
+  "emoji_button.search_results": "Rezultati pretraživanja",
   "emoji_button.symbols": "Simboli",
-  "emoji_button.travel": "Putovanja & Mjesta",
-  "empty_column.account_timeline": "No toots here!",
-  "empty_column.account_unavailable": "Profile unavailable",
-  "empty_column.blocks": "You haven't blocked any users yet.",
+  "emoji_button.travel": "Putovanje i mjesta",
+  "empty_column.account_timeline": "Ovdje nema tootova!",
+  "empty_column.account_unavailable": "Profil nije dostupan",
+  "empty_column.blocks": "Još niste blokirali nikoga.",
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
-  "empty_column.community": "Lokalni timeline je prazan. Napiši nešto javno kako bi pokrenuo stvari!",
+  "empty_column.community": "Lokalna vremenska crta je prazna. Napišite nešto javno da biste pokrenuli stvari!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
-  "empty_column.domain_blocks": "There are no hidden domains yet.",
+  "empty_column.domain_blocks": "Još nema blokiranih domena.",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
   "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
   "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
   "empty_column.hashtag": "Još ne postoji ništa s ovim hashtagom.",
-  "empty_column.home": "Još ne slijediš nikoga. Posjeti {public} ili koristi tražilicu kako bi počeo i upoznao druge korisnike.",
-  "empty_column.home.public_timeline": "javni timeline",
-  "empty_column.list": "There is nothing in this list yet.",
+  "empty_column.home": "Vaša početna vremenska crta je prazna! Posjetite {public} ili koristite tražilicu kako biste započeli i upoznali druge korisnike.",
+  "empty_column.home.public_timeline": "javnu vremensku crtu",
+  "empty_column.list": "Na ovoj listi još nema ničega. Kada članovi ove liste objave nove tootove, oni će se pojaviti ovdje.",
   "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
   "empty_column.mutes": "You haven't muted any users yet.",
-  "empty_column.notifications": "Još nemaš notifikacija. Komuniciraj sa drugima kako bi započeo razgovor.",
-  "empty_column.public": "Ovdje nema ništa! Napiši nešto javno, ili ručno slijedi korisnike sa drugih instanci kako bi popunio",
+  "empty_column.notifications": "Još nemate obavijesti. Komunicirajte s drugima kako biste započeli razgovor.",
+  "empty_column.public": "Ovdje nema ništa! Napišite nešto javno ili ručno pratite korisnike s drugi poslužitelja da biste ovo popunili",
   "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
   "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
   "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
   "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
   "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
-  "errors.unexpected_crash.report_issue": "Report issue",
+  "errors.unexpected_crash.report_issue": "Prijavi problem",
   "follow_request.authorize": "Autoriziraj",
   "follow_request.reject": "Odbij",
   "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
-  "generic.saved": "Saved",
-  "getting_started.developers": "Developers",
-  "getting_started.directory": "Profile directory",
-  "getting_started.documentation": "Documentation",
+  "generic.saved": "Spremljeno",
+  "getting_started.developers": "Razvijatelji",
+  "getting_started.directory": "Direktorij profila",
+  "getting_started.documentation": "Dokumentacija",
   "getting_started.heading": "Počnimo",
-  "getting_started.invite": "Invite people",
-  "getting_started.open_source_notice": "Mastodon je softver otvorenog koda. Možeš pridonijeti ili prijaviti probleme na GitHubu  {github}.",
-  "getting_started.security": "Security",
-  "getting_started.terms": "Terms of service",
-  "hashtag.column_header.tag_mode.all": "and {additional}",
-  "hashtag.column_header.tag_mode.any": "or {additional}",
-  "hashtag.column_header.tag_mode.none": "without {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
-  "hashtag.column_settings.tag_mode.all": "All of these",
-  "hashtag.column_settings.tag_mode.any": "Any of these",
-  "hashtag.column_settings.tag_mode.none": "None of these",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "getting_started.invite": "Pozovi ljude",
+  "getting_started.open_source_notice": "Mastodon je softver otvorenog kôda. Možete pridonijeti ili prijaviti probleme na GitHubu na {github}.",
+  "getting_started.security": "Postavke računa",
+  "getting_started.terms": "Uvjeti pružanja usluga",
+  "hashtag.column_header.tag_mode.all": "i {additional}",
+  "hashtag.column_header.tag_mode.any": "ili {additional}",
+  "hashtag.column_header.tag_mode.none": "bez {additional}",
+  "hashtag.column_settings.select.no_options_message": "Nisu pronađeni prijedlozi",
+  "hashtag.column_settings.select.placeholder": "Unesite hashtagove…",
+  "hashtag.column_settings.tag_mode.all": "Sve navedeno",
+  "hashtag.column_settings.tag_mode.any": "Bilo koji navedeni",
+  "hashtag.column_settings.tag_mode.none": "Nijedan navedeni",
+  "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovaj stupac",
   "home.column_settings.basic": "Osnovno",
   "home.column_settings.show_reblogs": "Pokaži boostove",
   "home.column_settings.show_replies": "Pokaži odgovore",
-  "home.hide_announcements": "Hide announcements",
-  "home.show_announcements": "Show announcements",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
-  "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
-  "introduction.federation.action": "Next",
-  "introduction.federation.federated.headline": "Federated",
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
-  "introduction.federation.home.headline": "Home",
-  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
-  "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
-  "introduction.interactions.action": "Finish toot-orial!",
-  "introduction.interactions.favourite.headline": "Favourite",
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
-  "introduction.interactions.reblog.headline": "Boost",
-  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
-  "introduction.interactions.reply.headline": "Reply",
-  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
-  "introduction.welcome.headline": "First steps",
-  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
-  "keyboard_shortcuts.back": "to navigate back",
-  "keyboard_shortcuts.blocked": "to open blocked users list",
-  "keyboard_shortcuts.boost": "to boost",
-  "keyboard_shortcuts.column": "to focus a status in one of the columns",
-  "keyboard_shortcuts.compose": "to focus the compose textarea",
-  "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
-  "keyboard_shortcuts.down": "to move down in the list",
-  "keyboard_shortcuts.enter": "to open status",
-  "keyboard_shortcuts.favourite": "to favourite",
-  "keyboard_shortcuts.favourites": "to open favourites list",
-  "keyboard_shortcuts.federated": "to open federated timeline",
-  "keyboard_shortcuts.heading": "Keyboard Shortcuts",
-  "keyboard_shortcuts.home": "to open home timeline",
-  "keyboard_shortcuts.hotkey": "Hotkey",
-  "keyboard_shortcuts.legend": "to display this legend",
-  "keyboard_shortcuts.local": "to open local timeline",
-  "keyboard_shortcuts.mention": "to mention author",
-  "keyboard_shortcuts.muted": "to open muted users list",
-  "keyboard_shortcuts.my_profile": "to open your profile",
-  "keyboard_shortcuts.notifications": "to open notifications column",
-  "keyboard_shortcuts.open_media": "to open media",
-  "keyboard_shortcuts.pinned": "to open pinned toots list",
-  "keyboard_shortcuts.profile": "to open author's profile",
-  "keyboard_shortcuts.reply": "to reply",
-  "keyboard_shortcuts.requests": "to open follow requests list",
-  "keyboard_shortcuts.search": "to focus search",
+  "home.hide_announcements": "Sakrij najave",
+  "home.show_announcements": "Prikaži najave",
+  "intervals.full.days": "{number, plural, one {# dan} other {# dana}}",
+  "intervals.full.hours": "{number, plural, one {# sat} few {# sata} other {# sati}}",
+  "intervals.full.minutes": "{number, plural, one {# minuta} few {# minute} other {# minuta}}",
+  "introduction.federation.action": "Sljedeće",
+  "introduction.federation.federated.headline": "Federalno",
+  "introduction.federation.federated.text": "Javne objave s drugih poslužitelja fediverzuma prikazat će se u federalnoj vremenskoj crti.",
+  "introduction.federation.home.headline": "Početna",
+  "introduction.federation.home.text": "Objave ljudi koje pratite prikazat će se na Vašoj početnoj stranici. Možete pratiti bilo koga na bilo kojem poslužitelju!",
+  "introduction.federation.local.headline": "Lokalno",
+  "introduction.federation.local.text": "Javne objave ljudi na istom poslužitelju prikazat će se u lokalnoj vremenskoj crti.",
+  "introduction.interactions.action": "Dovrši tutorijal!",
+  "introduction.interactions.favourite.headline": "Favoriti",
+  "introduction.interactions.favourite.text": "Toot možete spremiti za kasnije i javiti njegovom autoru da Vam se sviđa tako što ga označite kao favorit.",
+  "introduction.interactions.reblog.headline": "Boostanje",
+  "introduction.interactions.reblog.text": "Tuđe tootove možete dijeliti sa svojim pratiteljima tako što ih boostate.",
+  "introduction.interactions.reply.headline": "Odgovaranje",
+  "introduction.interactions.reply.text": "Možete odgovoriti na tuđe i svoje tootove, čime će se oni povezati u razgovor.",
+  "introduction.welcome.action": "Krenimo!",
+  "introduction.welcome.headline": "Prvi koraci",
+  "introduction.welcome.text": "Dobro došli na fediverzum! Za nekoliko trenutaka moći ćete dijeliti poruke i razgovara sa svojim prijateljima kroz široki raspon poslužitelja. Ali ovaj poslužitelj, {domain}, je poseban — on sadrži Vaš profil, pa zapamtite njegovo ime.",
+  "keyboard_shortcuts.back": "za vraćanje natrag",
+  "keyboard_shortcuts.blocked": "za otvaranje liste blokiranih korisnika",
+  "keyboard_shortcuts.boost": "za boostanje",
+  "keyboard_shortcuts.column": "za fokusiranje na toot u jednom od stupaca",
+  "keyboard_shortcuts.compose": "za fokusiranje na tekstualni okvir za stvaranje",
+  "keyboard_shortcuts.description": "Opis",
+  "keyboard_shortcuts.direct": "za otvaranje stupca s izravnim porukama",
+  "keyboard_shortcuts.down": "za pomak dolje na listi",
+  "keyboard_shortcuts.enter": "za otvaranje toota",
+  "keyboard_shortcuts.favourite": "za označavanje favoritom",
+  "keyboard_shortcuts.favourites": "za otvaranje liste favorita",
+  "keyboard_shortcuts.federated": "za otvaranje federalne vremenske crte",
+  "keyboard_shortcuts.heading": "Tipkovnički prečaci",
+  "keyboard_shortcuts.home": "za otvaranje početne vremenske crte",
+  "keyboard_shortcuts.hotkey": "Tipkovnički prečac",
+  "keyboard_shortcuts.legend": "za prikaz ove legende",
+  "keyboard_shortcuts.local": "za otvaranje lokalne vremenske crte",
+  "keyboard_shortcuts.mention": "za spominjanje autora",
+  "keyboard_shortcuts.muted": "za otvaranje liste utišanih korisnika",
+  "keyboard_shortcuts.my_profile": "za otvaranje Vašeg profila",
+  "keyboard_shortcuts.notifications": "za otvaranje stupca s obavijestima",
+  "keyboard_shortcuts.open_media": "za otvaranje medijskog sadržaja",
+  "keyboard_shortcuts.pinned": "za otvaranje liste prikvačenih tootova",
+  "keyboard_shortcuts.profile": "za otvaranje autorovog profila",
+  "keyboard_shortcuts.reply": "za odgovaranje",
+  "keyboard_shortcuts.requests": "za otvaranje liste zahtjeva za praćenje",
+  "keyboard_shortcuts.search": "za fokusiranje na tražilicu",
   "keyboard_shortcuts.spoilers": "to show/hide CW field",
   "keyboard_shortcuts.start": "to open \"get started\" column",
   "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
-  "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
-  "keyboard_shortcuts.toot": "to start a brand new toot",
+  "keyboard_shortcuts.toggle_sensitivity": "za prikaz/sakrivanje medijskog sadržaja",
+  "keyboard_shortcuts.toot": "za započinjanje novog toota",
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
   "keyboard_shortcuts.up": "to move up in the list",
   "lightbox.close": "Zatvori",
   "lightbox.compress": "Compress image view box",
   "lightbox.expand": "Expand image view box",
-  "lightbox.next": "Next",
-  "lightbox.previous": "Previous",
-  "lightbox.view_context": "View context",
-  "lists.account.add": "Add to list",
-  "lists.account.remove": "Remove from list",
-  "lists.delete": "Delete list",
-  "lists.edit": "Edit list",
-  "lists.edit.submit": "Change title",
-  "lists.new.create": "Add list",
-  "lists.new.title_placeholder": "New list title",
+  "lightbox.next": "Sljedeće",
+  "lightbox.previous": "Prethodno",
+  "lightbox.view_context": "Prikaži kontekst",
+  "lists.account.add": "Dodaj na listu",
+  "lists.account.remove": "Ukloni s liste",
+  "lists.delete": "Izbriši listu",
+  "lists.edit": "Uredi listu",
+  "lists.edit.submit": "Promijeni naslov",
+  "lists.new.create": "Dodaj listu",
+  "lists.new.title_placeholder": "Naziv nove liste",
   "lists.replies_policy.all_replies": "Any followed user",
   "lists.replies_policy.list_replies": "Members of the list",
   "lists.replies_policy.no_replies": "No one",
   "lists.replies_policy.title": "Show replies to:",
-  "lists.search": "Search among people you follow",
-  "lists.subheading": "Your lists",
+  "lists.search": "Traži među praćenim ljudima",
+  "lists.subheading": "Vaše liste",
   "load_pending": "{count, plural, one {# new item} other {# new items}}",
-  "loading_indicator.label": "Učitavam...",
-  "media_gallery.toggle_visible": "Preklopi vidljivost",
-  "missing_indicator.label": "Nije nađen",
+  "loading_indicator.label": "Učitavanje...",
+  "media_gallery.toggle_visible": "Sakrij {number, plural, one {sliku} other {slike}}",
+  "missing_indicator.label": "Nije pronađeno",
   "missing_indicator.sublabel": "This resource could not be found",
   "mute_modal.duration": "Duration",
   "mute_modal.hide_notifications": "Hide notifications from this user?",
@@ -283,58 +283,58 @@
   "navigation_bar.apps": "Mobile apps",
   "navigation_bar.blocks": "Blokirani korisnici",
   "navigation_bar.bookmarks": "Bookmarks",
-  "navigation_bar.community_timeline": "Lokalni timeline",
+  "navigation_bar.community_timeline": "Lokalna vremenska crta",
   "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
-  "navigation_bar.discover": "Discover",
-  "navigation_bar.domain_blocks": "Hidden domains",
+  "navigation_bar.direct": "Izravne poruke",
+  "navigation_bar.discover": "Istraživanje",
+  "navigation_bar.domain_blocks": "Blokirane domene",
   "navigation_bar.edit_profile": "Uredi profil",
   "navigation_bar.favourites": "Favoriti",
-  "navigation_bar.filters": "Muted words",
-  "navigation_bar.follow_requests": "Zahtjevi za slijeđenje",
-  "navigation_bar.follows_and_followers": "Follows and followers",
-  "navigation_bar.info": "Više informacija",
-  "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
-  "navigation_bar.lists": "Lists",
+  "navigation_bar.filters": "Utišane riječi",
+  "navigation_bar.follow_requests": "Zahtjevi za praćenje",
+  "navigation_bar.follows_and_followers": "Praćeni i pratitelji",
+  "navigation_bar.info": "O ovom poslužitelju",
+  "navigation_bar.keyboard_shortcuts": "Tipkovnički prečaci",
+  "navigation_bar.lists": "Liste",
   "navigation_bar.logout": "Odjavi se",
   "navigation_bar.mutes": "Utišani korisnici",
-  "navigation_bar.personal": "Personal",
-  "navigation_bar.pins": "Pinned toots",
+  "navigation_bar.personal": "Osobno",
+  "navigation_bar.pins": "Prikvačeni tootovi",
   "navigation_bar.preferences": "Postavke",
-  "navigation_bar.public_timeline": "Federalni timeline",
-  "navigation_bar.security": "Security",
-  "notification.favourite": "{name} je lajkao tvoj status",
-  "notification.follow": "{name} te sada slijedi",
-  "notification.follow_request": "{name} has requested to follow you",
-  "notification.mention": "{name} te je spomenuo",
-  "notification.own_poll": "Your poll has ended",
-  "notification.poll": "A poll you have voted in has ended",
-  "notification.reblog": "{name} je podigao tvoj status",
+  "navigation_bar.public_timeline": "Federalna vremenska crta",
+  "navigation_bar.security": "Sigurnost",
+  "notification.favourite": "{name} je favorizirao/la Vaš toot",
+  "notification.follow": "{name} Vas je počeo/la pratiti",
+  "notification.follow_request": "{name} zatražio/la je da Vas prati",
+  "notification.mention": "{name} Vas je spomenuo",
+  "notification.own_poll": "Vaša anketa je završila",
+  "notification.poll": "Anketa u kojoj ste glasali je završila",
+  "notification.reblog": "{name} je boostao/la Vaš status",
   "notification.status": "{name} just posted",
-  "notifications.clear": "Očisti notifikacije",
-  "notifications.clear_confirmation": "Želiš li zaista obrisati sve svoje notifikacije?",
-  "notifications.column_settings.alert": "Desktop notifikacije",
+  "notifications.clear": "Očisti obavijesti",
+  "notifications.clear_confirmation": "Želite li zaista trajno očistiti sve Vaše obavijesti?",
+  "notifications.column_settings.alert": "Obavijesti radne površine",
   "notifications.column_settings.favourite": "Favoriti:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
-  "notifications.column_settings.filter_bar.show": "Show",
-  "notifications.column_settings.follow": "Novi sljedbenici:",
-  "notifications.column_settings.follow_request": "New follow requests:",
+  "notifications.column_settings.filter_bar.advanced": "Prikaži sve kategorije",
+  "notifications.column_settings.filter_bar.category": "Brza traka filtera",
+  "notifications.column_settings.filter_bar.show": "Prikaži",
+  "notifications.column_settings.follow": "Novi pratitelji:",
+  "notifications.column_settings.follow_request": "Novi zahtjevi za praćenje:",
   "notifications.column_settings.mention": "Spominjanja:",
-  "notifications.column_settings.poll": "Poll results:",
-  "notifications.column_settings.push": "Push notifications",
+  "notifications.column_settings.poll": "Rezultati anketa:",
+  "notifications.column_settings.push": "Push obavijesti",
   "notifications.column_settings.reblog": "Boostovi:",
   "notifications.column_settings.show": "Prikaži u stupcu",
   "notifications.column_settings.sound": "Sviraj zvuk",
   "notifications.column_settings.status": "New toots:",
-  "notifications.filter.all": "All",
-  "notifications.filter.boosts": "Boosts",
-  "notifications.filter.favourites": "Favourites",
-  "notifications.filter.follows": "Follows",
-  "notifications.filter.mentions": "Mentions",
-  "notifications.filter.polls": "Poll results",
+  "notifications.filter.all": "Sve",
+  "notifications.filter.boosts": "Boostovi",
+  "notifications.filter.favourites": "Favoriti",
+  "notifications.filter.follows": "Praćenja",
+  "notifications.filter.mentions": "Spominjanja",
+  "notifications.filter.polls": "Rezultati anketa",
   "notifications.filter.statuses": "Updates from people you follow",
-  "notifications.group": "{count} notifications",
+  "notifications.group": "{count} obavijesti",
   "notifications.mark_as_read": "Mark every notification as read",
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
@@ -342,46 +342,46 @@
   "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
   "notifications_permission_banner.title": "Never miss a thing",
   "picture_in_picture.restore": "Put it back",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_people": "{count, plural, one {# person} other {# people}}",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll.voted": "You voted for this answer",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
-  "privacy.change": "Podesi status privatnosti",
-  "privacy.direct.long": "Prikaži samo spomenutim korisnicima",
-  "privacy.direct.short": "Direktno",
-  "privacy.private.long": "Prikaži samo sljedbenicima",
-  "privacy.private.short": "Privatno",
-  "privacy.public.long": "Postaj na javne timeline",
+  "poll.closed": "Završeno",
+  "poll.refresh": "Osvježi",
+  "poll.total_people": "{count, plural, one {# osoba} few {# osobe} other {# osoba}}",
+  "poll.total_votes": "{count, plural, one {# glas} few {# glasa} other {# glasova}}",
+  "poll.vote": "Glasaj",
+  "poll.voted": "Vi ste glasali za ovaj odgovor",
+  "poll_button.add_poll": "Dodaj anketu",
+  "poll_button.remove_poll": "Ukloni anketu",
+  "privacy.change": "Podesi privatnost toota",
+  "privacy.direct.long": "Vidljivo samo spomenutim korisnicima",
+  "privacy.direct.short": "Izravno",
+  "privacy.private.long": "Vidljivo samo pratiteljima",
+  "privacy.private.short": "Samo pratitelji",
+  "privacy.public.long": "Vidljivo svima, prikazano u javim vremenskim crtama",
   "privacy.public.short": "Javno",
-  "privacy.unlisted.long": "Ne prikazuj u javnim timelineovima",
-  "privacy.unlisted.short": "Unlisted",
-  "refresh": "Refresh",
-  "regeneration_indicator.label": "Loading…",
-  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+  "privacy.unlisted.long": "Vidljivo svima, ali se ne prikazuje u javnim vremenskim crtama",
+  "privacy.unlisted.short": "Neprikazano",
+  "refresh": "Osvježi",
+  "regeneration_indicator.label": "Učitavanje…",
+  "regeneration_indicator.sublabel": "Priprema se Vaša početna stranica!",
   "relative_time.days": "{number}d",
   "relative_time.hours": "{number}h",
-  "relative_time.just_now": "now",
+  "relative_time.just_now": "sada",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
-  "relative_time.today": "today",
+  "relative_time.today": "danas",
   "reply_indicator.cancel": "Otkaži",
-  "report.forward": "Forward to {target}",
-  "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
-  "report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
+  "report.forward": "Proslijedi {target}",
+  "report.forward_hint": "Račun je s drugog poslužitelja. Poslati anonimiziranu kopiju prijave i tamo?",
+  "report.hint": "Prijava bit će poslana moderatorima poslužitelja. Ispod možete dati objašnjenje zašto prijavljujete ovaj račun:",
   "report.placeholder": "Dodatni komentari",
   "report.submit": "Pošalji",
-  "report.target": "Prijavljivanje",
+  "report.target": "Prijavljivanje korisnika {target}",
   "search.placeholder": "Traži",
-  "search_popout.search_format": "Advanced search format",
+  "search_popout.search_format": "Format naprednog pretraživanja",
   "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
   "search_popout.tips.hashtag": "hashtag",
-  "search_popout.tips.status": "status",
+  "search_popout.tips.status": "toot",
   "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
-  "search_popout.tips.user": "user",
+  "search_popout.tips.user": "korisnik",
   "search_results.accounts": "People",
   "search_results.hashtags": "Hashtags",
   "search_results.statuses": "Toots",
@@ -392,93 +392,93 @@
   "status.block": "Block @{name}",
   "status.bookmark": "Bookmark",
   "status.cancel_reblog_private": "Unboost",
-  "status.cannot_reblog": "Ovaj post ne može biti boostan",
+  "status.cannot_reblog": "Ova objava ne može biti boostana",
   "status.copy": "Copy link to status",
   "status.delete": "Obriši",
   "status.detailed_status": "Detailed conversation view",
   "status.direct": "Direct message @{name}",
   "status.embed": "Embed",
-  "status.favourite": "Označi omiljenim",
+  "status.favourite": "Označi favoritom",
   "status.filtered": "Filtered",
   "status.load_more": "Učitaj više",
-  "status.media_hidden": "Sakriven media sadržaj",
+  "status.media_hidden": "Sakriven medijski sadržaj",
   "status.mention": "Spomeni @{name}",
   "status.more": "More",
   "status.mute": "Mute @{name}",
   "status.mute_conversation": "Utišaj razgovor",
-  "status.open": "Proširi ovaj status",
+  "status.open": "Proširi ovaj toot",
   "status.pin": "Pin on profile",
   "status.pinned": "Pinned toot",
-  "status.read_more": "Read more",
-  "status.reblog": "Podigni",
-  "status.reblog_private": "Boost with original visibility",
-  "status.reblogged_by": "{name} je podigao",
-  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
-  "status.redraft": "Delete & re-draft",
-  "status.remove_bookmark": "Remove bookmark",
+  "status.read_more": "Pročitajte više",
+  "status.reblog": "Boostaj",
+  "status.reblog_private": "Boostaj s izvornom vidljivošću",
+  "status.reblogged_by": "{name} je boostao/la",
+  "status.reblogs.empty": "Nitko još nije boostao ovaj toot. Kada netko to učini, ovdje će biti prikazani.",
+  "status.redraft": "Izbriši i ponovno uredi",
+  "status.remove_bookmark": "Ukloni knjižnu oznaku",
   "status.reply": "Odgovori",
-  "status.replyAll": "Odgovori na temu",
+  "status.replyAll": "Odgovori na niz",
   "status.report": "Prijavi @{name}",
   "status.sensitive_warning": "Osjetljiv sadržaj",
-  "status.share": "Share",
+  "status.share": "Podijeli",
   "status.show_less": "Pokaži manje",
   "status.show_less_all": "Show less for all",
   "status.show_more": "Pokaži više",
   "status.show_more_all": "Show more for all",
-  "status.show_thread": "Show thread",
-  "status.uncached_media_warning": "Not available",
+  "status.show_thread": "Prikaži nit",
+  "status.uncached_media_warning": "Nije dostupno",
   "status.unmute_conversation": "Poništi utišavanje razgovora",
-  "status.unpin": "Unpin from profile",
-  "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
-  "tabs_bar.federated_timeline": "Federalni",
-  "tabs_bar.home": "Dom",
+  "status.unpin": "Otkvači s profila",
+  "suggestions.dismiss": "Odbaci prijedlog",
+  "suggestions.header": "Možda Vas zanima…",
+  "tabs_bar.federated_timeline": "Federalno",
+  "tabs_bar.home": "Početna",
   "tabs_bar.local_timeline": "Lokalno",
-  "tabs_bar.notifications": "Notifikacije",
-  "tabs_bar.search": "Search",
-  "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
-  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
-  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+  "tabs_bar.notifications": "Obavijesti",
+  "tabs_bar.search": "Traži",
+  "time_remaining.days": "{number, plural, one {preostao # dan} other {preostalo # dana}}",
+  "time_remaining.hours": "{number, plural, one {preostao # sat} few {preostalo # sata} other {preostalo # sati}}",
+  "time_remaining.minutes": "{number, plural, one {preostala # minuta} few {preostale # minute} other {preostalo # minuta}}",
   "time_remaining.moments": "Moments remaining",
-  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
+  "time_remaining.seconds": "{number, plural, one {preostala # sekunda} few {preostale # sekunde} other {preostalo # sekundi}}",
+  "timeline_hint.remote_resource_not_displayed": "{resource} s drugih poslužitelja nisu prikazani.",
+  "timeline_hint.resources.followers": "Pratitelji",
+  "timeline_hint.resources.follows": "Praćenja",
+  "timeline_hint.resources.statuses": "Stariji tootovi",
   "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
-  "trends.trending_now": "Trending now",
-  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
-  "upload_area.title": "Povuci i spusti kako bi uploadao",
-  "upload_button.label": "Dodaj media",
-  "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
-  "upload_form.audio_description": "Describe for people with hearing loss",
-  "upload_form.description": "Describe for the visually impaired",
-  "upload_form.edit": "Edit",
-  "upload_form.thumbnail": "Change thumbnail",
-  "upload_form.undo": "Poništi",
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
-  "upload_modal.analyzing_picture": "Analyzing picture…",
-  "upload_modal.apply": "Apply",
-  "upload_modal.choose_image": "Choose image",
+  "trends.trending_now": "Popularno",
+  "ui.beforeunload": "Vaša skica bit će izgubljena ako napustite Mastodon.",
+  "units.short.billion": "{count} mlrd.",
+  "units.short.million": "{count} mil.",
+  "units.short.thousand": "{count} tis.",
+  "upload_area.title": "Povucite i ispustite za prijenos",
+  "upload_button.label": "Dodajte slike, video ili audio datoteku",
+  "upload_error.limit": "Ograničenje prijenosa datoteka je prekoračeno.",
+  "upload_error.poll": "Prijenos datoteka nije dopušten kod anketa.",
+  "upload_form.audio_description": "Opišite za ljude sa slabim sluhom",
+  "upload_form.description": "Opišite za ljude sa slabim vidom",
+  "upload_form.edit": "Uredi",
+  "upload_form.thumbnail": "Promijeni pretpregled",
+  "upload_form.undo": "Obriši",
+  "upload_form.video_description": "Opišite za ljude sa slabim sluhom ili vidom",
+  "upload_modal.analyzing_picture": "Analiza slike…",
+  "upload_modal.apply": "Primijeni",
+  "upload_modal.choose_image": "Odaberite sliku",
   "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
-  "upload_modal.detect_text": "Detect text from picture",
-  "upload_modal.edit_media": "Edit media",
+  "upload_modal.detect_text": "Detektiraj tekst sa slike",
+  "upload_modal.edit_media": "Uređivanje medija",
   "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
   "upload_modal.preparing_ocr": "Preparing OCR…",
   "upload_modal.preview_label": "Preview ({ratio})",
-  "upload_progress.label": "Uploadam...",
-  "video.close": "Close video",
-  "video.download": "Download file",
-  "video.exit_fullscreen": "Exit full screen",
-  "video.expand": "Expand video",
-  "video.fullscreen": "Full screen",
-  "video.hide": "Hide video",
-  "video.mute": "Mute sound",
-  "video.pause": "Pause",
-  "video.play": "Play",
-  "video.unmute": "Unmute sound"
+  "upload_progress.label": "Prenošenje...",
+  "video.close": "Zatvori video",
+  "video.download": "Preuzmi datoteku",
+  "video.exit_fullscreen": "Izađi iz cijelog zaslona",
+  "video.expand": "Proširi video",
+  "video.fullscreen": "Cijeli zaslon",
+  "video.hide": "Sakrij video",
+  "video.mute": "Utišaj zvuk",
+  "video.pause": "Pauziraj",
+  "video.play": "Reproduciraj",
+  "video.unmute": "Uključi zvuk"
 }
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 77fdfb3c7..1c8c06284 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -1,5 +1,5 @@
 {
-  "account.account_note_header": "Megjegyzés @{name} fiókhoz",
+  "account.account_note_header": "Feljegyzés",
   "account.add_or_remove_from_list": "Hozzáadás vagy eltávolítás a listáról",
   "account.badges.bot": "Bot",
   "account.badges.group": "Csoport",
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "További böngészés az eredeti profilon",
   "account.cancel_follow_request": "Követési kérelem törlése",
   "account.direct": "Közvetlen üzenet @{name} számára",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Ne figyelmeztess, ha @{name} tülköl",
   "account.domain_blocked": "Rejtett domain",
   "account.edit_profile": "Profil szerkesztése",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Figyelmeztess, ha @{name} tülköl",
   "account.endorse": "Kiemelés a profilodon",
   "account.follow": "Követés",
   "account.followers": "Követő",
@@ -45,7 +45,7 @@
   "account.unfollow": "Követés vége",
   "account.unmute": "@{name} némítás feloldása",
   "account.unmute_notifications": "@{name} némított értesítéseinek feloldása",
-  "account_note.placeholder": "Nincs megjegyzés",
+  "account_note.placeholder": "Klikk a feljegyzéshez",
   "alert.rate_limited.message": "Próbáld újra {retry_time, time, medium} után.",
   "alert.rate_limited.title": "Forgalomkorlátozás",
   "alert.unexpected.message": "Váratlan hiba történt.",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "Jelenleg nincsenek értesítéseid. Lépj kapcsolatba másokkal, hogy elindítsd a beszélgetést.",
   "empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más szervereken levő felhasználókat, hogy megtöltsd",
   "error.unexpected_crash.explanation": "Egy hiba vagy böngésző inkompatibilitás miatt ez az oldal nem jeleníthető meg rendesen.",
-  "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": "Ezt az oldalt nem lehet helyesen megjeleníteni. Ezt a hibát valószínűleg egy böngésző beépülő vagy egy automatikus fordító okozza.",
   "error.unexpected_crash.next_steps": "Próbáld frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használhatod a Mastodont.",
-  "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": "Próbáld letiltani őket és frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használhatod a Mastodont.",
   "errors.unexpected_crash.copy_stacktrace": "Veremkiíratás vágólapra másolása",
   "errors.unexpected_crash.report_issue": "Probléma jelentése",
   "follow_request.authorize": "Engedélyezés",
@@ -254,11 +254,11 @@
   "keyboard_shortcuts.unfocus": "tülk szerkesztés/keresés fókuszpontból való kivétele",
   "keyboard_shortcuts.up": "felfelé mozdítás a listában",
   "lightbox.close": "Bezárás",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Képnézet összecsukása",
+  "lightbox.expand": "Képnézet kinagyítása",
   "lightbox.next": "Következő",
   "lightbox.previous": "Előző",
-  "lightbox.view_context": "Kontextus megtekintése",
+  "lightbox.view_context": "Környezet megtekintése",
   "lists.account.add": "Hozzáadás a listához",
   "lists.account.remove": "Eltávolítás a listából",
   "lists.delete": "Lista törlése",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Cím megváltoztatása",
   "lists.new.create": "Lista hozzáadása",
   "lists.new.title_placeholder": "Új lista címe",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Bármely követett felhasználó",
+  "lists.replies_policy.list_replies": "A lista tagjai",
+  "lists.replies_policy.no_replies": "Senki",
+  "lists.replies_policy.title": "Nekik mutassuk a válaszokat:",
   "lists.search": "Keresés a követett személyek között",
   "lists.subheading": "Listáid",
   "load_pending": "{count, plural, one {# új elem} other {# új elem}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Láthatóság állítása",
   "missing_indicator.label": "Nincs találat",
   "missing_indicator.sublabel": "Ez az erőforrás nem található",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Időtartam",
   "mute_modal.hide_notifications": "Rejtsük el a felhasználótól származó értesítéseket?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Határozatlan",
   "navigation_bar.apps": "Mobil appok",
   "navigation_bar.blocks": "Letiltott felhasználók",
   "navigation_bar.bookmarks": "Könyvjelzők",
@@ -310,7 +310,7 @@
   "notification.own_poll": "A szavazásod véget ért",
   "notification.poll": "Egy szavazás, melyben részt vettél, véget ért",
   "notification.reblog": "{name} megtolta a tülködet",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} tülkölt egyet",
   "notifications.clear": "Értesítések törlése",
   "notifications.clear_confirmation": "Biztos, hogy véglegesen törölni akarod az összes értesítésed?",
   "notifications.column_settings.alert": "Asztali értesítések",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Megtolások:",
   "notifications.column_settings.show": "Oszlopban mutatás",
   "notifications.column_settings.sound": "Hang lejátszása",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Új tülkök:",
   "notifications.filter.all": "Mind",
   "notifications.filter.boosts": "Megtolások",
   "notifications.filter.favourites": "Kedvencnek jelölések",
   "notifications.filter.follows": "Követések",
   "notifications.filter.mentions": "Megemlítések",
   "notifications.filter.polls": "Szavazások eredményei",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Frissítések azoktól, akiket követsz",
   "notifications.group": "{count} értesítés",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Minden értesítés olvasottnak jelölése",
+  "notifications.permission_denied": "Nem tudjuk engedélyezni az asztali értesítéseket, mert az engedélyt megtagadták.",
+  "notifications.permission_denied_alert": "Az asztali értesítések nem engedélyezhetőek, mert az engedélyt megtagadták a böngészőben",
+  "notifications_permission_banner.enable": "Asztali értesítések engedélyezése",
+  "notifications_permission_banner.how_to_control": "Ahhoz, hogy értesítéseket kapj akkor, amikor a Mastodon nincs megnyitva, engedélyezd az asztali értesítéseket. Pontosan be tudod állítani, hogy milyen interakciókról értesülj a fenti {icon} gombon keresztül, ha egyszer már engedélyezted őket.",
+  "notifications_permission_banner.title": "Soha ne mulassz el semmit",
+  "picture_in_picture.restore": "Visszarakás",
   "poll.closed": "Lezárva",
   "poll.refresh": "Frissítés",
   "poll.total_people": "{count, plural, one {# személy} other {# személy}}",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Húzd ide a feltöltéshez",
-  "upload_button.label": "Média hozzáadása ({formats})",
+  "upload_button.label": "Média hozzáadása",
   "upload_error.limit": "Túllépted a fájlfeltöltési korlátot.",
   "upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.",
   "upload_form.audio_description": "Írja le a hallássérültek számára",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Szöveg felismerése a képről",
   "upload_modal.edit_media": "Média szerkesztése",
   "upload_modal.hint": "Kattints vagy húzd a kört az előnézetben arra a fókuszpontra, mely minden megjelenített bélyegképen látható kell, legyen.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "OCR előkészítése…",
   "upload_modal.preview_label": "Előnézet ({ratio})",
   "upload_progress.label": "Feltöltés...",
   "video.close": "Videó bezárása",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index af2873410..5033b8ca2 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -6,7 +6,7 @@
   "account.block": "Արգելափակել @{name}֊ին",
   "account.block_domain": "Թաքցնել ամէնը հետեւեալ տիրոյթից՝ {domain}",
   "account.blocked": "Արգելափակուած է",
-  "account.browse_more_on_origin_server": "Դիտել ավելին իրական պրոֆիլում",
+  "account.browse_more_on_origin_server": "Դիտել աւելին իրական պրոֆիլում",
   "account.cancel_follow_request": "չեղարկել հետեւելու հայցը",
   "account.direct": "Նամակ գրել @{name} -ին",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
@@ -85,7 +85,7 @@
   "community.column_settings.media_only": "Media only",
   "community.column_settings.remote_only": "Միայն հեռակա",
   "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
-  "compose_form.direct_message_warning_learn_more": "Իմանալ ավելին",
+  "compose_form.direct_message_warning_learn_more": "Իմանալ աւելին",
   "compose_form.hashtag_warning": "Այս թութը չի հաշվառվի որեւէ պիտակի տակ, քանզի այն ծածուկ է։ Միայն հրապարակային թթերը հնարավոր է որոնել պիտակներով։",
   "compose_form.lock_disclaimer": "Քո հաշիւը {locked} չէ։ Իւրաքանչիւրութիւն ոք կարող է հետեւել քեզ եւ տեսնել միայն հետեւողների համար նախատեսուած գրառումները։",
   "compose_form.lock_disclaimer.lock": "փակ",
@@ -312,8 +312,8 @@
   "notification.reblog": "{name} տարածեց թութդ",
   "notification.status": "{name} just posted",
   "notifications.clear": "Մաքրել ծանուցումները",
-  "notifications.clear_confirmation": "Վստա՞հ ես, որ ուզում ես մշտապես մաքրել քո բոլոր ծանուցումները։",
-  "notifications.column_settings.alert": "Աշխատատիրույթի ծանուցումներ",
+  "notifications.clear_confirmation": "Վստա՞հ ես, որ ուզում ես մշտապէս մաքրել քո բոլոր ծանուցումները։",
+  "notifications.column_settings.alert": "Աշխատատիրոյթի ծանուցումներ",
   "notifications.column_settings.favourite": "Հաւանածներից՝",
   "notifications.column_settings.filter_bar.advanced": "Ցուցադրել բոլոր կատեգորիաները",
   "notifications.column_settings.filter_bar.category": "Արագ զտման վահանակ",
@@ -371,7 +371,7 @@
   "reply_indicator.cancel": "Չեղարկել",
   "report.forward": "Փոխանցել {target}֊ին",
   "report.forward_hint": "Այս հաշիւ այլ հանգոյցից է։ Ուղարկե՞մ այնտեղ էլ այս բողոքի անոնիմ պատճէնը։",
-  "report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
+  "report.hint": "Այս զեկոյցը կուղարկուի հանգոյցի մոդերատորներին։ Ներքեւում կարող ես տրամադրել բացատրութիւն, թէ ինչու ես զեկուցում այս հաշուի մասին․",
   "report.placeholder": "Լրացուցիչ մեկնաբանութիւններ",
   "report.submit": "Ուղարկել",
   "report.target": "Բողոքել {target}֊ի մասին",
@@ -400,16 +400,16 @@
   "status.embed": "Ներդնել",
   "status.favourite": "Հավանել",
   "status.filtered": "Զտված",
-  "status.load_more": "Բեռնել ավելին",
+  "status.load_more": "Բեռնել աւելին",
   "status.media_hidden": "մեդիաբովանդակութիւնը թաքցուած է",
   "status.mention": "Նշել @{name}֊ին",
-  "status.more": "Ավելին",
+  "status.more": "Աւելին",
   "status.mute": "Լռեցնել @{name}֊ին",
   "status.mute_conversation": "Լռեցնել խօսակցութիւնը",
   "status.open": "Ընդարձակել այս թութը",
   "status.pin": "Ամրացնել անձնական էջում",
   "status.pinned": "Ամրացված թութ",
-  "status.read_more": "Կարդալ ավելին",
+  "status.read_more": "Կարդալ աւելին",
   "status.reblog": "Տարածել",
   "status.reblog_private": "Տարածել սեփական լսարանին",
   "status.reblogged_by": "{name} տարածել է",
@@ -423,7 +423,7 @@
   "status.share": "Կիսվել",
   "status.show_less": "Պակաս",
   "status.show_less_all": "Թաքցնել բոլոր նախազգուշացնումները",
-  "status.show_more": "Ավելին",
+  "status.show_more": "Աւելին",
   "status.show_more_all": "Ցուցադրել բոլոր նախազգուշացնումները",
   "status.show_thread": "Բացել շղթան",
   "status.uncached_media_warning": "Անհասանելի",
@@ -445,7 +445,7 @@
   "timeline_hint.resources.followers": "Հետևորդներ",
   "timeline_hint.resources.follows": "Հետևել",
   "timeline_hint.resources.statuses": "Հին թութեր",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} մարդ} other {{counter} մարդիկ}} խոսում են",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} մարդ} other {{counter} մարդիկ}} խօսում են",
   "trends.trending_now": "Այժմ արդիական",
   "ui.beforeunload": "Քո սեւագիրը կկորի, եթե լքես Մաստոդոնը։",
   "units.short.billion": "{count}մլրդ",
@@ -479,6 +479,6 @@
   "video.hide": "Թաքցնել տեսագրութիւնը",
   "video.mute": "Լռեցնել ձայնը",
   "video.pause": "Դադար տալ",
-  "video.play": "Նվագել",
+  "video.play": "Նուագել",
   "video.unmute": "Միացնել ձայնը"
 }
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index 310a2cb67..562d9d038 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -1,24 +1,24 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "Catatan",
   "account.add_or_remove_from_list": "Tambah atau Hapus dari daftar",
   "account.badges.bot": "Bot",
   "account.badges.group": "Grup",
   "account.block": "Blokir @{name}",
   "account.block_domain": "Sembunyikan segalanya dari {domain}",
   "account.blocked": "Terblokir",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "Lihat lebih lanjut diprofil asli",
   "account.cancel_follow_request": "Batalkan permintaan ikuti",
   "account.direct": "Direct Message @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Berhenti memberitahu saya ketika @{name} memposting",
   "account.domain_blocked": "Domain disembunyikan",
   "account.edit_profile": "Ubah profil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Beritahu saya saat @{name} memposting",
   "account.endorse": "Tampilkan di profil",
   "account.follow": "Ikuti",
   "account.followers": "Pengikut",
   "account.followers.empty": "Tidak ada satupun yang mengkuti pengguna ini saat ini.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, other {{counter} Pengikut}}",
+  "account.following_counter": "{count, plural, other {{counter} Mengikuti}}",
   "account.follows.empty": "Pengguna ini belum mengikuti siapapun.",
   "account.follows_you": "Mengikuti anda",
   "account.hide_reblogs": "Sembunyikan boosts dari @{name}",
@@ -38,14 +38,14 @@
   "account.requested": "Menunggu persetujuan. Klik untuk membatalkan permintaan",
   "account.share": "Bagikan profil @{name}",
   "account.show_reblogs": "Tampilkan boost dari @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, other {{counter} Toot}}",
   "account.unblock": "Hapus blokir @{name}",
-  "account.unblock_domain": "Tampilkan {domain}",
+  "account.unblock_domain": "Buka blokir domain {domain}",
   "account.unendorse": "Jangan tampilkan di profil",
   "account.unfollow": "Berhenti mengikuti",
   "account.unmute": "Berhenti membisukan @{name}",
   "account.unmute_notifications": "Munculkan notifikasi dari @{name}",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "Klik untuk menambah catatan",
   "alert.rate_limited.message": "Tolong ulangi setelah {retry_time, time, medium}.",
   "alert.rate_limited.title": "Batasan tingkat",
   "alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.",
@@ -81,9 +81,9 @@
   "column_header.show_settings": "Tampilkan pengaturan",
   "column_header.unpin": "Lepaskan",
   "column_subheading.settings": "Pengaturan",
-  "community.column_settings.local_only": "Local only",
+  "community.column_settings.local_only": "Hanya lokal",
   "community.column_settings.media_only": "Hanya media",
-  "community.column_settings.remote_only": "Remote only",
+  "community.column_settings.remote_only": "Hanya jarak jauh",
   "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
   "compose_form.direct_message_warning_learn_more": "Pelajari selengkapnya",
   "compose_form.hashtag_warning": "Toot ini tidak akan ada dalam daftar tagar manapun karena telah di set sebagai tidak terdaftar. Hanya postingan publik yang bisa dicari dengan tagar.",
@@ -98,9 +98,9 @@
   "compose_form.poll.switch_to_single": "Ubah japat menjadi pilihan tunggal",
   "compose_form.publish": "Toot",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Tandai sebagai media sensitif",
-  "compose_form.sensitive.marked": "Sumber ini telah ditandai sebagai sumber sensitif.",
-  "compose_form.sensitive.unmarked": "Sumber ini tidak ditandai sebagai sumber sensitif",
+  "compose_form.sensitive.hide": "{count, plural, other {Tandai media sebagai sensitif}}",
+  "compose_form.sensitive.marked": "{count, plural, other {Media ini ditandai sebagai sensitif}}",
+  "compose_form.sensitive.unmarked": "{count, plural, other {Media ini tidak ditandai sebagai sensitif}}",
   "compose_form.spoiler.marked": "Teks disembunyikan dibalik peringatan",
   "compose_form.spoiler.unmarked": "Teks tidak tersembunyi",
   "compose_form.spoiler_placeholder": "Peringatan konten",
@@ -168,15 +168,15 @@
   "empty_column.notifications": "Anda tidak memiliki notifikasi apapun. Berinteraksi dengan orang lain untuk memulai percakapan.",
   "empty_column.public": "Tidak ada apapun disini! Tulis sesuatu, atau ikuti pengguna lain dari server lain untuk mengisi ini",
   "error.unexpected_crash.explanation": "Karena kutu pada kode kami atau isu kompatibilitas peramban, halaman tak dapat ditampilkan dengan benar.",
-  "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": "Halaman ini tidak dapat ditampilkan dengan benar. Kesalahan ini mungkin disebabkan pengaya peramban atau alat terjemahan otomatis.",
   "error.unexpected_crash.next_steps": "Coba segarkan halaman. Jika tak membantu, Anda masih bisa memakai Mastodon dengan peramban berbeda atau aplikasi native.",
-  "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": "Coba nonaktifkan mereka lalu segarkan halaman. Jika tak membantu, Anda masih bisa memakai Mastodon dengan peramban berbeda atau aplikasi murni.",
   "errors.unexpected_crash.copy_stacktrace": "Salin stacktrace ke papan klip",
   "errors.unexpected_crash.report_issue": "Laporkan masalah",
   "follow_request.authorize": "Izinkan",
   "follow_request.reject": "Tolak",
   "follow_requests.unlocked_explanation": "Meskipun akun Anda tidak dikunci, staf {domain} menyarankan Anda untuk meninjau permintaan mengikuti dari akun-akun ini secara manual.",
-  "generic.saved": "Saved",
+  "generic.saved": "Disimpan",
   "getting_started.developers": "Pengembang",
   "getting_started.directory": "Direktori profil",
   "getting_started.documentation": "Dokumentasi",
@@ -246,7 +246,7 @@
   "keyboard_shortcuts.reply": "balas",
   "keyboard_shortcuts.requests": "buka daftar permintaan ikuti",
   "keyboard_shortcuts.search": "untuk fokus mencari",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "untuk menampilkan/menyembunyikan bidang CW",
   "keyboard_shortcuts.start": "buka kolom \"memulai\"",
   "keyboard_shortcuts.toggle_hidden": "tampilkan/sembunyikan teks di belakang CW",
   "keyboard_shortcuts.toggle_sensitivity": "tampilkan/sembunyikan media",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "untuk tidak fokus pada area teks/pencarian",
   "keyboard_shortcuts.up": "untuk memindah ke atas pada daftar",
   "lightbox.close": "Tutup",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Kompres kotak tampilan gambar",
+  "lightbox.expand": "Besarkan kotak tampilan gambar",
   "lightbox.next": "Selanjutnya",
   "lightbox.previous": "Sebelumnya",
   "lightbox.view_context": "Lihat konteks",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Ubah judul",
   "lists.new.create": "Tambah daftar",
   "lists.new.title_placeholder": "Judul daftar baru",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Siapapun pengguna yang diikuti",
+  "lists.replies_policy.list_replies": "Anggota di daftar tersebut",
+  "lists.replies_policy.no_replies": "Tidak ada satu pun",
+  "lists.replies_policy.title": "Tampilkan balasan ke:",
   "lists.search": "Cari di antara orang yang Anda ikuti",
   "lists.subheading": "Daftar Anda",
   "load_pending": "{count, plural, other {# item baru}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Tampil/Sembunyikan",
   "missing_indicator.label": "Tidak ditemukan",
   "missing_indicator.sublabel": "Sumber daya tak bisa ditemukan",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Durasi",
   "mute_modal.hide_notifications": "Sembunyikan notifikasi dari pengguna ini?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Tak terbatas",
   "navigation_bar.apps": "Aplikasi mobile",
   "navigation_bar.blocks": "Pengguna diblokir",
   "navigation_bar.bookmarks": "Markah",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Japat Anda telah berakhir",
   "notification.poll": "Japat yang Anda ikuti telah berakhir",
   "notification.reblog": "{name} mem-boost status anda",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} baru saja memposting",
   "notifications.clear": "Hapus notifikasi",
   "notifications.clear_confirmation": "Apa anda yakin hendak menghapus semua notifikasi anda?",
   "notifications.column_settings.alert": "Notifikasi desktop",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Boost:",
   "notifications.column_settings.show": "Tampilkan dalam kolom",
   "notifications.column_settings.sound": "Mainkan suara",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Toot baru:",
   "notifications.filter.all": "Semua",
   "notifications.filter.boosts": "Boost",
   "notifications.filter.favourites": "Favorit",
   "notifications.filter.follows": "Diikuti",
   "notifications.filter.mentions": "Sebutan",
   "notifications.filter.polls": "Hasil japat",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Pembaruan dari orang yang Anda ikuti",
   "notifications.group": "{count} notifikasi",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Tandai setiap notifikasi sebagai sudah dibaca",
+  "notifications.permission_denied": "Tidak dapat mengaktifkan notifikasi desktop karena izin ditolak.",
+  "notifications.permission_denied_alert": "Notifikasi desktop tidak dapat diaktifkan karena izin peramban telah ditolak sebelumnya",
+  "notifications_permission_banner.enable": "Aktifkan notifikasi desktop",
+  "notifications_permission_banner.how_to_control": "Untuk menerima notifikasi saat Mastodon terbuka, aktifkan notifikasi desktop. Anda dapat mengendalikan tipe interaksi mana yang ditampilkan notifikasi desktop melalui tombol {icon} di atas saat sudah aktif.",
+  "notifications_permission_banner.title": "Jangan lewatkan apapun",
+  "picture_in_picture.restore": "Taruh kembali",
   "poll.closed": "Ditutup",
   "poll.refresh": "Segarkan",
   "poll.total_people": "{count, plural, other {# orang}}",
@@ -365,7 +365,7 @@
   "relative_time.days": "{number}h",
   "relative_time.hours": "{number}j",
   "relative_time.just_now": "sekarang",
-  "relative_time.minutes": "{number}b",
+  "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}d",
   "relative_time.today": "hari ini",
   "reply_indicator.cancel": "Batal",
@@ -441,16 +441,16 @@
   "time_remaining.minutes": "{number, plural, other {# menit}} tersisa",
   "time_remaining.moments": "Momen tersisa",
   "time_remaining.seconds": "{number, plural, other {# detik}} tersisa",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "timeline_hint.remote_resource_not_displayed": "{resource} dari server lain tidak ditampilkan.",
+  "timeline_hint.resources.followers": "Pengikut",
+  "timeline_hint.resources.follows": "Ikuti",
+  "timeline_hint.resources.statuses": "Toot lama",
+  "trends.counter_by_accounts": "{count, plural, other {{counter} orang}} berbicara",
   "trends.trending_now": "Sedang tren sekarang",
   "ui.beforeunload": "Naskah anda akan hilang jika anda keluar dari Mastodon.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.billion": "{count}M",
+  "units.short.million": "{count}Jt",
+  "units.short.thousand": "{count}Rb",
   "upload_area.title": "Seret & lepaskan untuk mengunggah",
   "upload_button.label": "Tambahkan media",
   "upload_error.limit": "Batas unggah berkas terlampaui.",
@@ -458,17 +458,17 @@
   "upload_form.audio_description": "Penjelasan untuk orang dengan gangguan pendengaran",
   "upload_form.description": "Deskripsikan untuk mereka yang tidak bisa melihat dengan jelas",
   "upload_form.edit": "Sunting",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Ubah gambar kecil",
   "upload_form.undo": "Undo",
   "upload_form.video_description": "Penjelasan untuk orang dengan gangguan pendengaran atau penglihatan",
   "upload_modal.analyzing_picture": "Analisis gambar…",
   "upload_modal.apply": "Terapkan",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Pilih gambar",
   "upload_modal.description_placeholder": "Muharjo seorang xenofobia universal yang takut pada warga jazirah, contohnya Qatar",
   "upload_modal.detect_text": "Deteksi teks pada gambar",
   "upload_modal.edit_media": "Sunting media",
   "upload_modal.hint": "Klik atau seret lingkaran pada pratinjau untuk memilih titik fokus yang akan ditampilkan pada semua gambar kecil.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Menyiapkan OCR…",
   "upload_modal.preview_label": "Pratinjau ({ratio})",
   "upload_progress.label": "Mengunggah...",
   "video.close": "Tutup video",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 6b6263893..43004bebb 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -9,16 +9,16 @@
   "account.browse_more_on_origin_server": "Skoða nánari upplýsingar á notandasniðinu",
   "account.cancel_follow_request": "Hætta við beiðni um að fylgjast með",
   "account.direct": "Bein skilaboð til @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Hætta að láta mig vita þegar @{name} sendir inn",
   "account.domain_blocked": "Lén falið",
   "account.edit_profile": "Breyta notandasniði",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Láta mig vita þegar @{name} sendir inn",
   "account.endorse": "Birta á notandasniði",
   "account.follow": "Fylgjast með",
   "account.followers": "Fylgjendur",
   "account.followers.empty": "Ennþá fylgist enginn með þessum notanda.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} fylgjandi} other {{counter} fylgjendur}}",
+  "account.following_counter": "{count, plural, one {{counter} fylgist með} other {{counter} fylgjast með}}",
   "account.follows.empty": "Þessi notandi fylgist ennþá ekki með neinum.",
   "account.follows_you": "Fylgir þér",
   "account.hide_reblogs": "Fela endurbirtingar fyrir @{name}",
@@ -38,7 +38,7 @@
   "account.requested": "Bíður eftir samþykki. Smelltu til að hætta við beiðni um að fylgjast með",
   "account.share": "Deila notandasniði fyrir @{name}",
   "account.show_reblogs": "Sýna endurbirtingar frá @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} tíst} other {{counter} tíst}}",
   "account.unblock": "Aflétta útilokun af @{name}",
   "account.unblock_domain": "Hætta að fela {domain}",
   "account.unendorse": "Ekki birta á notandasniði",
@@ -168,15 +168,15 @@
   "empty_column.notifications": "Þú ert ekki ennþá með neinar tilkynningar. Vertu í samskiptum við aðra til að umræður fari af stað.",
   "empty_column.public": "Það er ekkert hér! Skrifaðu eitthvað opinberlega, eða fylgstu með notendum á öðrum netþjónum til að fylla upp í þetta",
   "error.unexpected_crash.explanation": "Vegna villu í kóðanum okkar eða samhæfnivandamála í vafra er ekki hægt að birta þessa síðu svo vel sé.",
-  "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": "Ekki er hægt að birta þessa síðu rétt. Þetta er líklega af völdum forritsviðbótar í vafranum eða sjálfvirkra þýðainaverkfæra.",
   "error.unexpected_crash.next_steps": "Prófaðu að endurlesa síðuna. Ef það hjálpar ekki til, má samt vera að þú getir notað Mastodon í gegnum annan vafra eða forrit.",
-  "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": "Prófaðu að gera þau óvirk og svo endurlesa síðuna. Ef það hjálpar ekki til, má samt vera að þú getir notað Mastodon í gegnum annan vafra eða forrit.",
   "errors.unexpected_crash.copy_stacktrace": "Afrita rakningarupplýsingar (stacktrace) á klippispjald",
   "errors.unexpected_crash.report_issue": "Tilkynna vandamál",
   "follow_request.authorize": "Heimila",
   "follow_request.reject": "Hafna",
   "follow_requests.unlocked_explanation": "Jafnvel þótt aðgangurinn þinn sé ekki læstur, hafa umsjónarmenn {domain} ímyndað sér að þú gætir viljað yfirfara handvirkt fylgjendabeiðnir frá þessum notendum.",
-  "generic.saved": "Saved",
+  "generic.saved": "Vistað",
   "getting_started.developers": "Forritarar",
   "getting_started.directory": "Notandasniðamappa",
   "getting_started.documentation": "Hjálparskjöl",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "að taka virkni úr textainnsetningarreit eða leit",
   "keyboard_shortcuts.up": "að fara ofar í listanum",
   "lightbox.close": "Loka",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Þjappa myndskoðunarreit",
+  "lightbox.expand": "Fletta út myndskoðunarreit",
   "lightbox.next": "Næsta",
   "lightbox.previous": "Fyrra",
   "lightbox.view_context": "Skoða samhengi",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Breyta titli",
   "lists.new.create": "Bæta við lista",
   "lists.new.title_placeholder": "Titill á nýjum lista",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Allra notenda sem fylgst er með",
+  "lists.replies_policy.list_replies": "Meðlima listans",
+  "lists.replies_policy.no_replies": "Engra",
+  "lists.replies_policy.title": "Sýna svör til:",
   "lists.search": "Leita meðal þeirra sem þú fylgist með",
   "lists.subheading": "Listarnir þínir",
   "load_pending": "{count, plural, one {# nýtt atriði} other {# ný atriði}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Víxla sýnileika",
   "missing_indicator.label": "Fannst ekki",
   "missing_indicator.sublabel": "Tilfangið fannst ekki",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Lengd",
   "mute_modal.hide_notifications": "Fela tilkynningar frá þessum notanda?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Óendanlegt",
   "navigation_bar.apps": "Farsímaforrit",
   "navigation_bar.blocks": "Útilokaðir notendur",
   "navigation_bar.bookmarks": "Bókamerki",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Könnuninni þinni er lokið",
   "notification.poll": "Könnun sem þú tókst þátt í er lokið",
   "notification.reblog": "{name} endurbirti stöðufærsluna þína",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} sendi inn rétt í þessu",
   "notifications.clear": "Hreinsa tilkynningar",
   "notifications.clear_confirmation": "Ertu viss um að þú viljir endanlega eyða öllum tilkynningunum þínum?",
   "notifications.column_settings.alert": "Tilkynningar á skjáborði",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Endurbirtingar:",
   "notifications.column_settings.show": "Sýna í dálki",
   "notifications.column_settings.sound": "Spila hljóð",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Ný tíst:",
   "notifications.filter.all": "Allt",
   "notifications.filter.boosts": "Endurbirtingar",
   "notifications.filter.favourites": "Eftirlæti",
   "notifications.filter.follows": "Fylgist með",
   "notifications.filter.mentions": "Tilvísanir",
   "notifications.filter.polls": "Niðurstöður könnunar",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Uppfærslur frá fólki sem þú fylgist með",
   "notifications.group": "{count} tilkynningar",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Merkja allar tilkynningar sem lesnar",
+  "notifications.permission_denied": "Tilkynningar á skjáborði eru ekki aðgengilegar megna áður hafnaðra beiðna fyrir vafra",
+  "notifications.permission_denied_alert": "Ekki var hægt að virkja tilkynningar á skjáborði, þar sem heimildum fyrir vafra var áður hafnað",
+  "notifications_permission_banner.enable": "Virkja tilkynningar á skjáborði",
+  "notifications_permission_banner.how_to_control": "Til að taka á móti tilkynningum þegar Mastodon er ekki opið, skaltu virkja tilkynningar á skjáborði. Þegar þær eru orðnar virkar geturðu stýrt nákvæmlega hverskonar atvik framleiða tilkynningar með því að nota {icon}-hnappinn hér fyrir ofan.",
+  "notifications_permission_banner.title": "Aldrei missa af neinu",
+  "picture_in_picture.restore": "Setja til baka",
   "poll.closed": "Lokað",
   "poll.refresh": "Endurlesa",
   "poll.total_people": "{count, plural, one {# aðili} other {# aðilar}}",
@@ -445,30 +445,30 @@
   "timeline_hint.resources.followers": "Fylgjendur",
   "timeline_hint.resources.follows": "Fylgist með",
   "timeline_hint.resources.statuses": "Eldri tíst",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} aðili} other {{counter} aðilar}} tala",
   "trends.trending_now": "Í umræðunni núna",
   "ui.beforeunload": "Drögin tapast ef þú ferð út úr Mastodon.",
   "units.short.billion": "{count}B",
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Dragðu-og-slepptu hér til að senda inn",
-  "upload_button.label": "Bæta við ({formats}) myndskrá",
+  "upload_button.label": "Bæta við myndum, myndskeiði eða hljóðskrá",
   "upload_error.limit": "Fór yfir takmörk á innsendingum skráa.",
   "upload_error.poll": "Innsending skráa er ekki leyfð í könnunum.",
   "upload_form.audio_description": "Lýstu þessu fyrir heyrnarskerta",
   "upload_form.description": "Lýstu þessu fyrir sjónskerta",
   "upload_form.edit": "Breyta",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Skipta um smámynd",
   "upload_form.undo": "Eyða",
   "upload_form.video_description": "Lýstu þessu fyrir fólk sem heyrir illa eða er með skerta sjón",
   "upload_modal.analyzing_picture": "Greini mynd…",
   "upload_modal.apply": "Virkja",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Veldu mynd",
   "upload_modal.description_placeholder": "Öllum dýrunum í skóginum þætti bezt að vera vinir",
   "upload_modal.detect_text": "Skynja texta úr mynd",
   "upload_modal.edit_media": "Breyta myndskrá",
   "upload_modal.hint": "Smelltu eða dragðu til hringinn á forskoðuninni til að velja miðpunktinn sem verður alltaf sýnilegastur á öllum smámyndum.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Undirbý OCR-ljóslestur…",
   "upload_modal.preview_label": "Forskoðun ({ratio})",
   "upload_progress.label": "Er að senda inn...",
   "video.close": "Loka myndskeiði",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 92f8cb805..c472e098f 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -1,18 +1,18 @@
 {
-  "account.account_note_header": "La tua nota per @{name}",
-  "account.add_or_remove_from_list": "Aggiungi o Rimuovi dagli elenchi",
+  "account.account_note_header": "Le tue note sull'utente",
+  "account.add_or_remove_from_list": "Aggiungi o togli dalle liste",
   "account.badges.bot": "Bot",
   "account.badges.group": "Gruppo",
   "account.block": "Blocca @{name}",
   "account.block_domain": "Blocca dominio {domain}",
-  "account.blocked": "Bloccato",
-  "account.browse_more_on_origin_server": "Naviga di più sul profilo originale",
+  "account.blocked": "Bloccat*",
+  "account.browse_more_on_origin_server": "Sfoglia ulteriormente sul profilo originale",
   "account.cancel_follow_request": "Annulla richiesta di seguirti",
   "account.direct": "Messaggio diretto a @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Smetti di avvisarmi quando @{name} pubblica un post",
   "account.domain_blocked": "Dominio bloccato",
   "account.edit_profile": "Modifica profilo",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Avvisami quando @{name} pubblica un post",
   "account.endorse": "Mostra sul profilo",
   "account.follow": "Segui",
   "account.followers": "Seguaci",
@@ -21,7 +21,7 @@
   "account.following_counter": "{count, plural, other {{counter} Seguiti}}",
   "account.follows.empty": "Questo utente non segue ancora nessuno.",
   "account.follows_you": "Ti segue",
-  "account.hide_reblogs": "Nascondi incrementi da @{name}",
+  "account.hide_reblogs": "Nascondi condivisioni da @{name}",
   "account.last_status": "Ultima attività",
   "account.link_verified_on": "La proprietà di questo link è stata controllata il {date}",
   "account.locked_info": "Lo stato di privacy del profilo è impostato a bloccato. Il proprietario revisiona manualmente chi lo può seguire.",
@@ -30,14 +30,14 @@
   "account.moved_to": "{name} si è trasferito su:",
   "account.mute": "Silenzia @{name}",
   "account.mute_notifications": "Silenzia notifiche da @{name}",
-  "account.muted": "Silenziato",
+  "account.muted": "Silenziat*",
   "account.never_active": "Mai",
   "account.posts": "Toot",
   "account.posts_with_replies": "Toot e risposte",
   "account.report": "Segnala @{name}",
   "account.requested": "In attesa di approvazione. Clicca per annullare la richiesta di seguire",
   "account.share": "Condividi il profilo di @{name}",
-  "account.show_reblogs": "Mostra incrementi da @{name}",
+  "account.show_reblogs": "Mostra condivisioni da @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toot}}",
   "account.unblock": "Sblocca @{name}",
   "account.unblock_domain": "Sblocca il dominio {domain}",
@@ -45,9 +45,9 @@
   "account.unfollow": "Smetti di seguire",
   "account.unmute": "Non silenziare @{name}",
   "account.unmute_notifications": "Non silenziare le notifiche da @{name}",
-  "account_note.placeholder": "Nessun commento fornito",
+  "account_note.placeholder": "Clicca per aggiungere una nota",
   "alert.rate_limited.message": "Sei pregato di riprovare tra {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Intervallo limitato",
+  "alert.rate_limited.title": "Limitazione per eccesso di richieste",
   "alert.unexpected.message": "Si è verificato un errore inatteso.",
   "alert.unexpected.title": "Oops!",
   "announcement.announcement": "Annuncio",
@@ -61,9 +61,9 @@
   "bundle_modal_error.retry": "Riprova",
   "column.blocks": "Utenti bloccati",
   "column.bookmarks": "Segnalibri",
-  "column.community": "Fuso orario locale",
+  "column.community": "Timeline locale",
   "column.direct": "Messaggi diretti",
-  "column.directory": "Naviga profili",
+  "column.directory": "Sfoglia profili",
   "column.domain_blocks": "Domini bloccati",
   "column.favourites": "Preferiti",
   "column.follow_requests": "Richieste di seguirti",
@@ -72,7 +72,7 @@
   "column.mutes": "Utenti silenziati",
   "column.notifications": "Notifiche",
   "column.pins": "Toot in evidenza",
-  "column.public": "Fuso orario federato",
+  "column.public": "Timeline federata",
   "column_back_button.label": "Indietro",
   "column_header.hide_settings": "Nascondi impostazioni",
   "column_header.moveLeft_settings": "Sposta colonna a sinistra",
@@ -113,13 +113,13 @@
   "confirmations.delete_list.confirm": "Cancella",
   "confirmations.delete_list.message": "Sei sicuro di voler cancellare definitivamente questa lista?",
   "confirmations.domain_block.confirm": "Blocca l'intero dominio",
-  "confirmations.domain_block.message": "Sei davvero, davvero sicuro di voler bloccare l'intero {domain}? In molti casi pochi blocchi di destinazione o muti sono sufficienti e preferibili. Non vedrai il contenuto da quel dominio in alcuna linea temporale pubblica o nelle tue notifiche. i tuoi seguaci saranno rimossi da quel dominio.",
+  "confirmations.domain_block.message": "Sei davvero, davvero sicuro di voler bloccare l'intero {domain}? In molti casi pochi blocchi di destinazione o muti sono sufficienti e preferibili. Non vedrai il contenuto da quel dominio in alcuna timeline pubblica o nelle tue notifiche. i tuoi seguaci saranno rimossi da quel dominio.",
   "confirmations.logout.confirm": "Disconnettiti",
   "confirmations.logout.message": "Sei sicuro di volerti disconnettere?",
   "confirmations.mute.confirm": "Silenzia",
   "confirmations.mute.explanation": "Questo nasconderà i post da loro ed i post che li menzionano, ma consentirà ancora loro di vedere i tuoi post e di seguirti.",
   "confirmations.mute.message": "Sei sicuro di voler silenziare {name}?",
-  "confirmations.redraft.confirm": "Cancella e rivali",
+  "confirmations.redraft.confirm": "Cancella e riscrivi",
   "confirmations.redraft.message": "Sei sicuro di voler eliminare questo toot e riscriverlo? I preferiti e gli incrementi saranno persi e le risposte al post originale saranno perse.",
   "confirmations.reply.confirm": "Rispondi",
   "confirmations.reply.message": "Rispondere ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "Non hai ancora nessuna notifica. Interagisci con altri per iniziare conversazioni.",
   "empty_column.public": "Qui non c'è nulla! Scrivi qualcosa pubblicamente, o aggiungi utenti da altri server per riempire questo spazio",
   "error.unexpected_crash.explanation": "A causa di un bug nel nostro codice o di un problema di compatibilità del browser, questa pagina non può essere visualizzata correttamente.",
-  "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": "Questa pagina non può essere visualizzata correttamente. Questo errore è probabilmente causato da un componente aggiuntivo del browser o da strumenti di traduzione automatica.",
   "error.unexpected_crash.next_steps": "Prova ad aggiornare la pagina. Se non funziona, potresti ancora essere in grado di utilizzare Mastodon attraverso un browser diverso o un'app nativa.",
-  "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": "Prova a disabilitarli e ad aggiornare la pagina. Se questo non funziona, potresti ancora essere in grado di utilizzare Mastodon attraverso un browser o un'app diversi.",
   "errors.unexpected_crash.copy_stacktrace": "Copia stacktrace negli appunti",
   "errors.unexpected_crash.report_issue": "Segnala il problema",
   "follow_request.authorize": "Autorizza",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "per uscire dall'area di composizione o dalla ricerca",
   "keyboard_shortcuts.up": "per spostarsi in alto nella lista",
   "lightbox.close": "Chiudi",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Comprimi casella di visualizzazione immagine",
+  "lightbox.expand": "Espandi casella di visualizzazione immagine",
   "lightbox.next": "Successivo",
   "lightbox.previous": "Precedente",
   "lightbox.view_context": "Mostra contesto",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Cambia titolo",
   "lists.new.create": "Aggiungi lista",
   "lists.new.title_placeholder": "Titolo della nuova lista",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Qualsiasi utente seguito",
+  "lists.replies_policy.list_replies": "Iscritti alla lista",
+  "lists.replies_policy.no_replies": "Nessuno",
+  "lists.replies_policy.title": "Mostra risposte a:",
   "lists.search": "Cerca tra le persone che segui",
   "lists.subheading": "Le tue liste",
   "load_pending": "{count, plural, one {# nuovo oggetto} other {# nuovi oggetti}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Imposta visibilità",
   "missing_indicator.label": "Non trovato",
   "missing_indicator.sublabel": "Risorsa non trovata",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Durata",
   "mute_modal.hide_notifications": "Nascondere le notifiche da quest'utente?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Per sempre",
   "navigation_bar.apps": "App per dispositivi mobili",
   "navigation_bar.blocks": "Utenti bloccati",
   "navigation_bar.bookmarks": "Segnalibri",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Il tuo sondaggio è terminato",
   "notification.poll": "Un sondaggio in cui hai votato è terminato",
   "notification.reblog": "{name} ha condiviso il tuo post",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} ha appena pubblicato un post",
   "notifications.clear": "Cancella notifiche",
   "notifications.clear_confirmation": "Vuoi davvero cancellare tutte le notifiche?",
   "notifications.column_settings.alert": "Notifiche desktop",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Post condivisi:",
   "notifications.column_settings.show": "Mostra in colonna",
   "notifications.column_settings.sound": "Riproduci suono",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Nuovi toot:",
   "notifications.filter.all": "Tutti",
   "notifications.filter.boosts": "Condivisioni",
   "notifications.filter.favourites": "Apprezzati",
   "notifications.filter.follows": "Seguaci",
   "notifications.filter.mentions": "Menzioni",
   "notifications.filter.polls": "Risultati del sondaggio",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Aggiornamenti dalle persone che segui",
   "notifications.group": "{count} notifiche",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Segna tutte le notifiche come lette",
+  "notifications.permission_denied": "Impossibile abilitare le notifiche sul desktop perché il permesso è stato negato.",
+  "notifications.permission_denied_alert": "Le notifiche sul desktop non possono essere abilitate, poiché il permesso nel browser è stato negato in precedenza",
+  "notifications_permission_banner.enable": "Abilita le notifiche sul desktop",
+  "notifications_permission_banner.how_to_control": "Per ricevere notifiche quando Mastodon non è aperto, abilita le notifiche desktop. Puoi controllare con precisione quali tipi di interazioni generano notifiche desktop tramite il pulsante {icon} qui sopra, dopo averle abilitate.",
+  "notifications_permission_banner.title": "Non perderti mai nulla",
+  "picture_in_picture.restore": "Riportalo indietro",
   "poll.closed": "Chiuso",
   "poll.refresh": "Aggiorna",
   "poll.total_people": "{count, plural, one {# persona} other {# persone}}",
@@ -448,7 +448,7 @@
   "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persone}} ne parla·no",
   "trends.trending_now": "Di tendenza ora",
   "ui.beforeunload": "La bozza andrà persa se esci da Mastodon.",
-  "units.short.billion": "{count}B",
+  "units.short.billion": "{count}G",
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Trascina per caricare",
@@ -468,9 +468,9 @@
   "upload_modal.detect_text": "Rileva testo dall'immagine",
   "upload_modal.edit_media": "Modifica media",
   "upload_modal.hint": "Clicca o trascina il cerchio sull'anteprima per scegliere il punto focale che sarà sempre visualizzato su tutte le miniature.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Preparazione OCR…",
   "upload_modal.preview_label": "Anteprima ({ratio})",
-  "upload_progress.label": "Sto caricando...",
+  "upload_progress.label": "Invio in corso...",
   "video.close": "Chiudi video",
   "video.download": "Scarica file",
   "video.exit_fullscreen": "Esci da modalità a schermo intero",
@@ -479,6 +479,6 @@
   "video.hide": "Nascondi video",
   "video.mute": "Silenzia suono",
   "video.pause": "Pausa",
-  "video.play": "Avvia",
+  "video.play": "Riproduci",
   "video.unmute": "Riattiva suono"
 }
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index c42d316ae..540fef36f 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": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "@{name} の投稿時の通知を停止",
   "account.domain_blocked": "ドメインブロック中",
   "account.edit_profile": "プロフィール編集",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "@{name} の投稿時に通知",
   "account.endorse": "プロフィールで紹介する",
   "account.follow": "フォロー",
   "account.followers": "フォロワー",
@@ -105,8 +105,8 @@
   "compose_form.sensitive.hide": "メディアを閲覧注意にする",
   "compose_form.sensitive.marked": "メディアに閲覧注意が設定されています",
   "compose_form.sensitive.unmarked": "メディアに閲覧注意が設定されていません",
-  "compose_form.spoiler.marked": "閲覧注意が設定されています",
-  "compose_form.spoiler.unmarked": "閲覧注意が設定されていません",
+  "compose_form.spoiler.marked": "本文は警告の後ろに隠されます",
+  "compose_form.spoiler.unmarked": "本文は隠されていません",
   "compose_form.spoiler_placeholder": "ここに警告を書いてください",
   "confirmation_modal.cancel": "キャンセル",
   "confirmations.block.block_and_report": "ブロックし通報",
@@ -172,9 +172,9 @@
   "empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。",
   "empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のサーバーのユーザーをフォローしたりしていっぱいにしましょう",
   "error.unexpected_crash.explanation": "不具合かブラウザの互換性問題のため、このページを正しく表示できませんでした。",
-  "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": "このページは正しく表示できませんでした。このエラーはブラウザのアドオンや自動翻訳ツールによって引き起こされることがあります。",
   "error.unexpected_crash.next_steps": "ページの再読み込みをお試しください。それでも解決しない場合、別のブラウザかアプリを使えば使用できることがあります。",
-  "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": "それらを無効化してからリロードをお試しください。それでも解決しない場合、他のブラウザやアプリで Mastodon をお試しください。",
   "errors.unexpected_crash.copy_stacktrace": "スタックトレースをクリップボードにコピー",
   "errors.unexpected_crash.report_issue": "問題を報告",
   "follow_request.authorize": "許可",
@@ -270,10 +270,10 @@
   "lists.edit.submit": "タイトルを変更",
   "lists.new.create": "リストを作成",
   "lists.new.title_placeholder": "新規リスト名",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "フォロー中のユーザー全員",
+  "lists.replies_policy.list_replies": "リストのメンバー",
+  "lists.replies_policy.no_replies": "表示しない",
+  "lists.replies_policy.title": "リプライを表示:",
   "lists.search": "フォローしている人の中から検索",
   "lists.subheading": "あなたのリスト",
   "load_pending": "{count} 件の新着",
@@ -315,7 +315,7 @@
   "notification.own_poll": "アンケートが終了しました",
   "notification.poll": "アンケートが終了しました",
   "notification.reblog": "{name}さんがあなたのトゥートをブーストしました",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name}さんがトゥートしました",
   "notifications.clear": "通知を消去",
   "notifications.clear_confirmation": "本当に通知を消去しますか?",
   "notifications.column_settings.alert": "デスクトップ通知",
@@ -331,7 +331,7 @@
   "notifications.column_settings.reblog": "ブースト:",
   "notifications.column_settings.show": "カラムに表示",
   "notifications.column_settings.sound": "通知音を再生",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "新しいトゥート:",
   "notifications.filter.all": "すべて",
   "notifications.filter.boosts": "ブースト",
   "notifications.filter.favourites": "お気に入り",
@@ -340,13 +340,13 @@
   "notifications.filter.polls": "アンケート結果",
   "notifications.filter.statuses": "Updates from people you follow",
   "notifications.group": "{count} 件の通知",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "すべて既読にする",
+  "notifications.permission_denied": "ブラウザの通知が拒否されているためデスクトップ通知は利用できません",
+  "notifications.permission_denied_alert": "ブラウザの通知が拒否されているためデスクトップ通知を有効にできません",
+  "notifications_permission_banner.enable": "デスクトップ通知を有効にする",
+  "notifications_permission_banner.how_to_control": "Mastodon を閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {icon} ボタンから通知の内容を細かくカスタマイズできます。",
+  "notifications_permission_banner.title": "お見逃しなく",
+  "picture_in_picture.restore": "元に戻す",
   "poll.closed": "終了",
   "poll.refresh": "更新",
   "poll.total_people": "{count}人",
@@ -362,7 +362,7 @@
   "privacy.private.short": "フォロワー限定",
   "privacy.public.long": "誰でも閲覧可、公開TLに表示",
   "privacy.public.short": "公開",
-  "privacy.unlisted.long": "誰でも閲覧可、公開TLに非表示",
+  "privacy.unlisted.long": "誰でも閲覧可、公開タイムラインに非表示",
   "privacy.unlisted.short": "未収載",
   "refresh": "更新",
   "regeneration_indicator.label": "読み込み中…",
@@ -473,7 +473,7 @@
   "upload_modal.detect_text": "画像からテキストを検出",
   "upload_modal.edit_media": "メディアを編集",
   "upload_modal.hint": "サムネイルの焦点にしたい場所をクリックするか円形の枠をその場所にドラッグしてください。",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "OCR の準備中…",
   "upload_modal.preview_label": "プレビュー ({ratio})",
   "upload_progress.label": "アップロード中...",
   "video.close": "動画を閉じる",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index 3e64f2eb3..261d003aa 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -18,7 +18,7 @@
   "account.followers": "Imeḍfaren",
   "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.",
   "account.followers_counter": "{count, plural, one {{count} n umeḍfar} other {{count} n imeḍfaren}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.following_counter": "{count, plural, one {{counter} yeṭṭafaren} aḍfar {{counter} wayeḍ}}",
   "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.",
   "account.follows_you": "Yeṭṭafaṛ-ik",
   "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}",
@@ -38,7 +38,7 @@
   "account.requested": "Di laɛḍil ad yettwaqbel. Ssit i wakken ad yefsex usuter n uḍfar",
   "account.share": "Bḍu amaɣnu n @{name}",
   "account.show_reblogs": "Ssken-d inebḍa n @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} ajewwaq} other {{counter} ijewwaqen}}",
   "account.unblock": "Serreḥ i @{name}",
   "account.unblock_domain": "Ssken-d {domain}",
   "account.unendorse": "Ur ttwellih ara fell-as deg umaɣnu-inek",
@@ -171,7 +171,7 @@
   "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
   "error.unexpected_crash.next_steps": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Maṣṭudun deg yiminig-nniḍen neɣ deg usnas anaṣli.",
   "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
-  "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
+  "errors.unexpected_crash.copy_stacktrace": "Nɣel stacktrace ɣef wafus",
   "errors.unexpected_crash.report_issue": "Mmel ugur",
   "follow_request.authorize": "Ssireg",
   "follow_request.reject": "Agi",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
   "keyboard_shortcuts.up": "i tulin ɣer d asawen n tebdart",
   "lightbox.close": "Mdel",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Ḥemmeẓ tamnaḍt n uskan n tugna",
+  "lightbox.expand": "Simeɣer tamnaḍt n uskan n tugna",
   "lightbox.next": "Γer zdat",
   "lightbox.previous": "Γer deffir",
   "lightbox.view_context": "Ẓer amnaḍ",
@@ -268,8 +268,8 @@
   "lists.new.title_placeholder": "Azwel amaynut n tebdart",
   "lists.replies_policy.all_replies": "Any followed user",
   "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.no_replies": "Ula yiwen",
+  "lists.replies_policy.title": "Ssken-d tiririyin i:",
   "lists.search": "Nadi gar yemdanen i teṭṭafaṛeḍ",
   "lists.subheading": "Tibdarin-ik·im",
   "load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}",
@@ -326,7 +326,7 @@
   "notifications.column_settings.reblog": "Seǧhed:",
   "notifications.column_settings.show": "Ssken-d tilɣa deg ujgu",
   "notifications.column_settings.sound": "Rmed imesli",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Tiẓenẓunin timaynutin:",
   "notifications.filter.all": "Akk",
   "notifications.filter.boosts": "Seǧhed",
   "notifications.filter.favourites": "Ismenyifen",
@@ -336,7 +336,7 @@
   "notifications.filter.statuses": "Updates from people you follow",
   "notifications.group": "{count} n tilɣa",
   "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
+  "notifications.permission_denied": "D awezɣi ad yili wermad n yilɣa n tnarit axateṛ turagt tettwagdel.",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
   "notifications_permission_banner.enable": "Enable desktop notifications",
   "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
@@ -350,7 +350,7 @@
   "poll.voted": "Tdeɣṛeḍ ɣef tririt-ayi",
   "poll_button.add_poll": "Rnu asenqed",
   "poll_button.remove_poll": "Kkes asenqed",
-  "privacy.change": "Adjust status privacy",
+  "privacy.change": "Seggem tabaḍnit n yizen",
   "privacy.direct.long": "Bḍu gar yimseqdacen i tbedreḍ kan",
   "privacy.direct.short": "Usrid",
   "privacy.private.long": "Bḍu i yimeḍfaṛen-ik kan",
@@ -439,20 +439,20 @@
   "time_remaining.days": "Mazal {number, plural, one {# n wass} other {# n wussan}}",
   "time_remaining.hours": "Mazal {number, plural, one {# n usrag} other {# n yesragen}}",
   "time_remaining.minutes": "Mazal {number, plural, one {# n tesdat} other {# n tesdatin}}",
-  "time_remaining.moments": "Moments remaining",
+  "time_remaining.moments": "Akuden i d-yeqqimen",
   "time_remaining.seconds": "Mazal {number, plural, one {# n tasint} other {# n tsinin}} id yugran",
   "timeline_hint.remote_resource_not_displayed": "{resource} seg yiqeddacen-nniḍen ur d-ttwaskanent ara.",
   "timeline_hint.resources.followers": "Imeḍfaṛen",
   "timeline_hint.resources.follows": "T·Yeṭafaṛ",
   "timeline_hint.resources.statuses": "Tijewwaqin tiqdimin",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} amdan} imdanen {{counter} wiyaḍ}} yettmeslayen",
   "trends.trending_now": "Trending now",
   "ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeɣ-d deg Maṣṭudun.",
   "units.short.billion": "{count}B",
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Zuḥeb rnu sers i tasalyt",
-  "upload_button.label": "Rnu taɣwalt ({formats})",
+  "upload_button.label": "Rnu taɣwalt",
   "upload_error.limit": "Asali n ufaylu iεedda talast.",
   "upload_error.poll": "Ur ittusireg ara usali n ufaylu s tefranin.",
   "upload_form.audio_description": "Glem-d i yemdanen i yesɛan ugur deg tmesliwt",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index 2b5b7a9e7..a2c0856e5 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -1,12 +1,12 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "Жазба",
   "account.add_or_remove_from_list": "Тізімге қосу немесе жою",
   "account.badges.bot": "Бот",
-  "account.badges.group": "Group",
+  "account.badges.group": "Топ",
   "account.block": "Бұғаттау @{name}",
   "account.block_domain": "Домендегі барлығын бұғатта {domain}",
   "account.blocked": "Бұғатталды",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "Толығырақ оригинал профилінде қара",
   "account.cancel_follow_request": "Жазылуға сұранымды қайтару",
   "account.direct": "Жеке хат @{name}",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
@@ -17,8 +17,8 @@
   "account.follow": "Жазылу",
   "account.followers": "Оқырмандар",
   "account.followers.empty": "Әлі ешкім жазылмаған.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} Оқырман} other {{counter} Оқырман}}",
+  "account.following_counter": "{count, plural, one {{counter} Жазылым} other {{counter} Жазылым}}",
   "account.follows.empty": "Ешкімге жазылмапты.",
   "account.follows_you": "Сізге жазылыпты",
   "account.hide_reblogs": "@{name} атты қолданушының әрекеттерін жасыру",
@@ -38,19 +38,19 @@
   "account.requested": "Растауын күтіңіз. Жазылудан бас тарту үшін басыңыз",
   "account.share": "@{name} профилін бөлісу\"",
   "account.show_reblogs": "@{name} бөліскендерін көрсету",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} Пост} other {{counter} Пост}}",
   "account.unblock": "Бұғаттан шығару @{name}",
   "account.unblock_domain": "Бұғаттан шығару {domain}",
   "account.unendorse": "Профильде рекомендемеу",
   "account.unfollow": "Оқымау",
   "account.unmute": "@{name} ескертпелерін қосу",
   "account.unmute_notifications": "@{name} ескертпелерін көрсету",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "Жазба қалдыру үшін бас",
   "alert.rate_limited.message": "Қайтадан көріңіз  {retry_time, time, medium} кейін.",
   "alert.rate_limited.title": "Бағалау шектеулі",
   "alert.unexpected.message": "Бір нәрсе дұрыс болмады.",
   "alert.unexpected.title": "Өй!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Хабарландыру",
   "autosuggest_hashtag.per_week": "{count} аптасына",
   "boost_modal.combo": "Келесіде өткізіп жіберу үшін басыңыз {combo}",
   "bundle_column_error.body": "Бұл компонентті жүктеген кезде бір қате пайда болды.",
@@ -81,9 +81,9 @@
   "column_header.show_settings": "Баптауларды көрсет",
   "column_header.unpin": "Алып тастау",
   "column_subheading.settings": "Баптаулар",
-  "community.column_settings.local_only": "Local only",
+  "community.column_settings.local_only": "Тек жергілікті",
   "community.column_settings.media_only": "Тек медиа",
-  "community.column_settings.remote_only": "Remote only",
+  "community.column_settings.remote_only": "Тек сыртқы",
   "compose_form.direct_message_warning": "Тек аталған қолданушыларға.",
   "compose_form.direct_message_warning_learn_more": "Көбірек білу",
   "compose_form.hashtag_warning": "Бұл пост іздеуде хэштегпен шықпайды, өйткені ол бәріне ашық емес. Тек ашық жазбаларды ғана хэштег арқылы іздеп табуға болады.",
@@ -94,8 +94,8 @@
   "compose_form.poll.duration": "Сауалнама мерзімі",
   "compose_form.poll.option_placeholder": "Жауап {number}",
   "compose_form.poll.remove_option": "Бұл жауапты өшір",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.poll.switch_to_multiple": "Бірнеше жауап таңдайтындай қылу",
+  "compose_form.poll.switch_to_single": "Тек бір жауап таңдайтындай қылу",
   "compose_form.publish": "Түрт",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.hide": "Сезімтал ретінде белгіле",
@@ -176,7 +176,7 @@
   "follow_request.authorize": "Авторизация",
   "follow_request.reject": "Қабылдамау",
   "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
-  "generic.saved": "Saved",
+  "generic.saved": "Сақталды",
   "getting_started.developers": "Жасаушылар тобы",
   "getting_started.directory": "Профильдер каталогы",
   "getting_started.documentation": "Құжаттама",
@@ -246,7 +246,7 @@
   "keyboard_shortcuts.reply": "жауап жазу",
   "keyboard_shortcuts.requests": "жазылу сұранымдарын қарау",
   "keyboard_shortcuts.search": "іздеу",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "CW көрсету/жабу",
   "keyboard_shortcuts.start": "бастапқы бағанға бару",
   "keyboard_shortcuts.toggle_hidden": "жабық мәтінді CW ашу/жабу",
   "keyboard_shortcuts.toggle_sensitivity": "көрсет/жап",
@@ -441,11 +441,11 @@
   "time_remaining.minutes": "{number, plural, one {# минут} other {# минут}}",
   "time_remaining.moments": "Қалған уақыт",
   "time_remaining.seconds": "{number, plural, one {# секунд} other {# секунд}}",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "timeline_hint.remote_resource_not_displayed": "{resource} басқа серверлерде көрсетілмейді.",
+  "timeline_hint.resources.followers": "Оқырман",
+  "timeline_hint.resources.follows": "Жазылым",
+  "timeline_hint.resources.statuses": "Ескі посттары",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} адам} other {{counter} адам}} айтып жатыр",
   "trends.trending_now": "Тренд тақырыптар",
   "ui.beforeunload": "Mastodon желісінен шықсаңыз, нобайыңыз сақталмайды.",
   "units.short.billion": "{count}B",
@@ -458,12 +458,12 @@
   "upload_form.audio_description": "Есту қабілеті нашар адамдарға сипаттама беріңіз",
   "upload_form.description": "Көру қабілеті нашар адамдар үшін сипаттаңыз",
   "upload_form.edit": "Түзету",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Суретті өзгерту",
   "upload_form.undo": "Өшіру",
   "upload_form.video_description": "Есту немесе көру қабілеті нашар адамдарға сипаттама беріңіз",
   "upload_modal.analyzing_picture": "Суретті анализ жасау…",
   "upload_modal.apply": "Қолдану",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Сурет таңдау",
   "upload_modal.description_placeholder": "Щучинск съезіндегі өрт пе? Вагон-үй, аэромобиль һәм ұшақ фюзеляжы цехінен ғой",
   "upload_modal.detect_text": "Суреттен мәтін анықтау",
   "upload_modal.edit_media": "Медиафайлды өңдеу",
diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json
index 6141f321e..1ac564a70 100644
--- a/app/javascript/mastodon/locales/kn.json
+++ b/app/javascript/mastodon/locales/kn.json
@@ -1,8 +1,8 @@
 {
-  "account.account_note_header": "Note",
-  "account.add_or_remove_from_list": "Add or Remove from lists",
+  "account.account_note_header": "ಟಿಪ್ಪಣಿ",
+  "account.add_or_remove_from_list": "ಪಟ್ಟಿಗೆ ಸೇರಿಸು ಅಥವ ಪಟ್ಟಿಯಿಂದ ತೆಗೆದುಹಾಕು",
   "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
+  "account.badges.group": "ಗುಂಪು",
   "account.block": "Block @{name}",
   "account.block_domain": "Hide everything from {domain}",
   "account.blocked": "Blocked",
@@ -49,7 +49,7 @@
   "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!",
+  "alert.unexpected.title": "ಅಯ್ಯೋ!",
   "announcement.announcement": "Announcement",
   "autosuggest_hashtag.per_week": "{count} per week",
   "boost_modal.combo": "You can press {combo} to skip this next time",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 161f43c4f..24539248a 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "원본 프로필에서 더 탐색하기",
   "account.cancel_follow_request": "팔로우 요청 취소",
   "account.direct": "@{name}의 다이렉트 메시지",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "@{name} 의 게시물 알림 끄기",
   "account.domain_blocked": "도메인 숨겨짐",
   "account.edit_profile": "프로필 편집",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "@{name} 의 게시물 알림 켜기",
   "account.endorse": "프로필에 보이기",
   "account.follow": "팔로우",
   "account.followers": "팔로워",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "아직 알림이 없습니다. 다른 사람과 대화를 시작해 보세요.",
   "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 서버의 유저를 팔로우 해서 채워보세요",
   "error.unexpected_crash.explanation": "버그 혹은 브라우저 호환성 문제로 이 페이지를 올바르게 표시할 수 없습니다.",
-  "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": "이 페이지는 올바르게 보여질 수 없습니다. 브라우저 애드온이나 자동 번역 도구 등으로 인해 발생된 에러일 수 있습니다.",
   "error.unexpected_crash.next_steps": "페이지를 새로고침 해보세요. 그래도 해결되지 않는 경우, 다른 브라우저나 네이티브 앱으로도 마스토돈을 이용하실 수 있습니다.",
-  "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": "그것들을 끄고 페이지를 새로고침 해보세요. 그래도 해결되지 않는 경우, 다른 브라우저나 네이티브 앱으로도 마스토돈을 이용하실 수 있습니다.",
   "errors.unexpected_crash.copy_stacktrace": "에러 내용을 클립보드에 복사",
   "errors.unexpected_crash.report_issue": "문제 신고",
   "follow_request.authorize": "허가",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "제목 수정",
   "lists.new.create": "리스트 추가",
   "lists.new.title_placeholder": "새 리스트의 이름",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "팔로우 한 사용자 누구나",
+  "lists.replies_policy.list_replies": "목록의 멤버들",
+  "lists.replies_policy.no_replies": "아무도 없음",
+  "lists.replies_policy.title": "답글 표시:",
   "lists.search": "팔로우 중인 사람들 중에서 찾기",
   "lists.subheading": "당신의 리스트",
   "load_pending": "{count}개의 새 항목",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "표시 전환",
   "missing_indicator.label": "찾을 수 없습니다",
   "missing_indicator.sublabel": "이 리소스를 찾을 수 없었습니다",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "기간",
   "mute_modal.hide_notifications": "이 사용자로부터의 알림을 숨기시겠습니까?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "무기한",
   "navigation_bar.apps": "모바일 앱",
   "navigation_bar.blocks": "차단한 사용자",
   "navigation_bar.bookmarks": "보관함",
@@ -303,14 +303,14 @@
   "navigation_bar.preferences": "사용자 설정",
   "navigation_bar.public_timeline": "연합 타임라인",
   "navigation_bar.security": "보안",
-  "notification.favourite": "{name}님이 즐겨찾기 했습니다",
-  "notification.follow": "{name}님이 나를 팔로우 했습니다",
-  "notification.follow_request": "{name}님이 팔로우 요청을 보냈습니다",
-  "notification.mention": "{name}님이 답글을 보냈습니다",
+  "notification.favourite": "{name} 님이 즐겨찾기 했습니다",
+  "notification.follow": "{name} 님이 나를 팔로우 했습니다",
+  "notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다",
+  "notification.mention": "{name} 님이 답글을 보냈습니다",
   "notification.own_poll": "내 투표가 끝났습니다",
   "notification.poll": "당신이 참여 한 투표가 종료되었습니다",
-  "notification.reblog": "{name}님이 부스트 했습니다",
-  "notification.status": "{name} just posted",
+  "notification.reblog": "{name} 님이 부스트 했습니다",
+  "notification.status": "{name} 님이 방금 게시물을 올렸습니다",
   "notifications.clear": "알림 지우기",
   "notifications.clear_confirmation": "정말로 알림을 삭제하시겠습니까?",
   "notifications.column_settings.alert": "데스크탑 알림",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "부스트:",
   "notifications.column_settings.show": "컬럼에 표시",
   "notifications.column_settings.sound": "효과음 재생",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "새 툿:",
   "notifications.filter.all": "모두",
   "notifications.filter.boosts": "부스트",
   "notifications.filter.favourites": "즐겨찾기",
   "notifications.filter.follows": "팔로우",
   "notifications.filter.mentions": "멘션",
   "notifications.filter.polls": "투표 결과",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "팔로우 하는 사람들의 최신 게시물",
   "notifications.group": "{count} 개의 알림",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "모든 알림을 읽은 상태로 표시",
+  "notifications.permission_denied": "권한이 거부되었기 때문에 데스크탑 알림을 활성화할 수 없음",
+  "notifications.permission_denied_alert": "이전에 브라우저 권한이 거부되었기 때문에, 데스크탑 알림이 활성화 될 수 없습니다.",
+  "notifications_permission_banner.enable": "데스크탑 알림 활성화",
+  "notifications_permission_banner.how_to_control": "마스토돈이 열려 있지 않을 때에도 알림을 받으려면, 데스크탑 알림을 활성화 하세요. 당신은 어떤 종류의 반응이 데스크탑 알림을 발생할 지를 {icon} 버튼을 통해 세세하게 설정할 수 있습니다.",
+  "notifications_permission_banner.title": "아무것도 놓치지 마세요",
+  "picture_in_picture.restore": "다시 넣기",
   "poll.closed": "마감됨",
   "poll.refresh": "새로고침",
   "poll.total_people": "{count}명",
@@ -412,7 +412,7 @@
   "status.read_more": "더 보기",
   "status.reblog": "부스트",
   "status.reblog_private": "원래의 수신자들에게 부스트",
-  "status.reblogged_by": "{name}님이 부스트 했습니다",
+  "status.reblogged_by": "{name} 님이 부스트 했습니다",
   "status.reblogs.empty": "아직 아무도 이 툿을 부스트하지 않았습니다. 부스트 한 사람들이 여기에 표시 됩니다.",
   "status.redraft": "지우고 다시 쓰기",
   "status.remove_bookmark": "보관한 툿 삭제",
@@ -441,7 +441,7 @@
   "time_remaining.minutes": "{number} 분 남음",
   "time_remaining.moments": "남은 시간",
   "time_remaining.seconds": "{number} 초 남음",
-  "timeline_hint.remote_resource_not_displayed": "다른 서버의 {resource}는 보여지지 않습니다.",
+  "timeline_hint.remote_resource_not_displayed": "다른 서버의 {resource} 표시는 할 수 없습니다.",
   "timeline_hint.resources.followers": "팔로워",
   "timeline_hint.resources.follows": "팔로우",
   "timeline_hint.resources.statuses": "이전 툿",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "이미지에서 텍스트 추출",
   "upload_modal.edit_media": "미디어 편집",
   "upload_modal.hint": "미리보기를 클릭하거나 드래그 해서 포컬 포인트를 맞추세요. 이 점은 썸네일에 항상 보여질 부분을 나타냅니다.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "OCR 준비 중…",
   "upload_modal.preview_label": "미리보기 ({ratio})",
   "upload_progress.label": "업로드 중...",
   "video.close": "동영상 닫기",
diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json
index 17ffe5519..b40a15669 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -1,484 +1,484 @@
 {
-  "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.block": "Block @{name}",
-  "account.block_domain": "Block domain {domain}",
-  "account.blocked": "Blocked",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
-  "account.cancel_follow_request": "Cancel follow request",
-  "account.direct": "Direct message @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Domain blocked",
-  "account.edit_profile": "Edit profile",
-  "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Feature on profile",
-  "account.follow": "Follow",
-  "account.followers": "Followers",
-  "account.followers.empty": "No one follows this user yet.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
+  "account.account_note_header": "تێبینیتێبینی",
+  "account.add_or_remove_from_list": "زیادکردن یان سڕینەوە لە پێرستەکان",
+  "account.badges.bot": "بوت",
+  "account.badges.group": "گرووپ",
+  "account.block": "بلۆکی @{name}",
+  "account.block_domain": "بلۆکی هەموو شتێک لە {domain}",
+  "account.blocked": "بلۆککرا",
+  "account.browse_more_on_origin_server": "گەڕانی فرەتر لە سەر پرۆفایلی سەرەکی",
+  "account.cancel_follow_request": "بەتاڵکردنی داوای شوێنکەوتن",
+  "account.direct": "پەیامی تایبەت بە @{name}",
+  "account.disable_notifications": "ئاگانامە مەنێرە بۆم کاتێک @{name} پۆست دەکرێت",
+  "account.domain_blocked": "دۆمەین قەپاتکرا",
+  "account.edit_profile": "دەستکاری پرۆفایل",
+  "account.enable_notifications": "ئاگادارم بکەوە کاتێک @{name} بابەتەکان",
+  "account.endorse": "ناساندن لە پرۆفایل",
+  "account.follow": "شوێنکەوتن",
+  "account.followers": "شوێنکەوتووان",
+  "account.followers.empty": "کەسێک شوێن ئەم بەکارهێنەرە نەکەوتووە",
+  "account.followers_counter": "{count, plural, one {{counter} شوێنکەوتوو} other {{counter} شوێنکەوتوو}}",
   "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
-  "account.follows.empty": "This user doesn't follow anyone yet.",
-  "account.follows_you": "Follows you",
-  "account.hide_reblogs": "Hide boosts from @{name}",
-  "account.last_status": "Last active",
-  "account.link_verified_on": "Ownership of this link was checked on {date}",
-  "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
-  "account.media": "Media",
-  "account.mention": "Mention @{name}",
-  "account.moved_to": "{name} has moved to:",
-  "account.mute": "Mute @{name}",
-  "account.mute_notifications": "Mute notifications from @{name}",
-  "account.muted": "Muted",
-  "account.never_active": "Never",
-  "account.posts": "Toots",
-  "account.posts_with_replies": "Toots and replies",
-  "account.report": "Report @{name}",
-  "account.requested": "Awaiting approval",
-  "account.share": "Share @{name}'s profile",
-  "account.show_reblogs": "Show boosts from @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
-  "account.unblock": "Unblock @{name}",
-  "account.unblock_domain": "Unblock domain {domain}",
-  "account.unendorse": "Don't feature on profile",
-  "account.unfollow": "Unfollow",
-  "account.unmute": "Unmute @{name}",
-  "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account_note.placeholder": "Click to add a note",
-  "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",
-  "autosuggest_hashtag.per_week": "{count} per week",
-  "boost_modal.combo": "You can press {combo} to skip this next time",
-  "bundle_column_error.body": "Something went wrong while loading this component.",
-  "bundle_column_error.retry": "Try again",
-  "bundle_column_error.title": "Network error",
-  "bundle_modal_error.close": "Close",
-  "bundle_modal_error.message": "Something went wrong while loading this component.",
-  "bundle_modal_error.retry": "Try again",
-  "column.blocks": "Blocked users",
-  "column.bookmarks": "Bookmarks",
-  "column.community": "Local timeline",
-  "column.direct": "Direct messages",
-  "column.directory": "Browse profiles",
-  "column.domain_blocks": "Blocked domains",
-  "column.favourites": "Favourites",
-  "column.follow_requests": "Follow requests",
-  "column.home": "Home",
-  "column.lists": "Lists",
-  "column.mutes": "Muted users",
-  "column.notifications": "Notifications",
-  "column.pins": "Pinned toot",
-  "column.public": "Federated timeline",
-  "column_back_button.label": "Back",
-  "column_header.hide_settings": "Hide settings",
-  "column_header.moveLeft_settings": "Move column to the left",
-  "column_header.moveRight_settings": "Move column to the right",
-  "column_header.pin": "Pin",
-  "column_header.show_settings": "Show settings",
-  "column_header.unpin": "Unpin",
-  "column_subheading.settings": "Settings",
-  "community.column_settings.local_only": "Local only",
-  "community.column_settings.media_only": "Media only",
-  "community.column_settings.remote_only": "Remote only",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
-  "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
-  "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
-  "compose_form.lock_disclaimer.lock": "locked",
-  "compose_form.placeholder": "What is on your mind?",
-  "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
-  "compose_form.publish": "Toot",
+  "account.follows.empty": "ئەم بەکارهێنەرە تا ئێستا شوێن کەس نەکەوتووە.",
+  "account.follows_you": "شوێنکەوتووەکانت",
+  "account.hide_reblogs": "داشاردنی بووستەکان لە @{name}",
+  "account.last_status": "دوایین چالاکی",
+  "account.link_verified_on": "خاوەنداریەتی ئەم لینکە لە {date} چێک کراوە",
+  "account.locked_info": "تایبەتمەندی ئەم هەژمارەیە ڕیکخراوە بۆ قوفڵدراوە. خاوەنەکە بە دەستی پێداچوونەوە دەکات کە کێ دەتوانێت شوێنیان بکەوێت.",
+  "account.media": "میدیا",
+  "account.mention": "ئاماژە @{name}",
+  "account.moved_to": "{name} گواسترایەوە بۆ:",
+  "account.mute": "بێدەنگکردن @{name}",
+  "account.mute_notifications": "هۆشیارکەرەوەکان لاببە لە @{name}",
+  "account.muted": "بێ دەنگ",
+  "account.never_active": "هەرگیز",
+  "account.posts": "توتس",
+  "account.posts_with_replies": "توتس و وەڵامەکان",
+  "account.report": "گوزارشت @{name}",
+  "account.requested": "چاوەڕێی ڕەزامەندین. کرتە بکە بۆ هەڵوەشاندنەوەی داواکاری شوێنکەوتن",
+  "account.share": "پرۆفایلی @{name} هاوبەش بکە",
+  "account.show_reblogs": "پیشاندانی بەرزکردنەوەکان لە @{name}",
+  "account.statuses_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.unblock": "@{name} لاببە",
+  "account.unblock_domain": "کردنەوەی دۆمەینی {domain}",
+  "account.unendorse": "تایبەتمەندی لەسەر پرۆفایلەکە نیە",
+  "account.unfollow": "بەدوادانەچو",
+  "account.unmute": "بێدەنگکردنی @{name}",
+  "account.unmute_notifications": "بێدەنگکردنی هۆشیارییەکان لە @{name}",
+  "account_note.placeholder": "کرتەبکە بۆ زیادکردنی تێبینی",
+  "alert.rate_limited.message": "تکایە هەوڵبدەرەوە دوای {retry_time, time, medium}.",
+  "alert.rate_limited.title": "ڕێژەی سنووردار",
+  "alert.unexpected.message": "هەڵەیەکی چاوەڕوان نەکراو ڕوویدا.",
+  "alert.unexpected.title": "تەححح!",
+  "announcement.announcement": "بانگەواز",
+  "autosuggest_hashtag.per_week": "{count} هەرهەفتە",
+  "boost_modal.combo": "دەتوانیت دەست بنێی بە سەر {combo} بۆ بازدان لە جاری داهاتوو",
+  "bundle_column_error.body": "هەڵەیەک ڕوویدا لەکاتی بارکردنی ئەم پێکهاتەیە.",
+  "bundle_column_error.retry": "دووبارە هەوڵبدە",
+  "bundle_column_error.title": "هەڵيی تۆڕ",
+  "bundle_modal_error.close": "داخستن",
+  "bundle_modal_error.message": "هەڵەیەک ڕوویدا لەکاتی بارکردنی ئەم پێکهاتەیە.",
+  "bundle_modal_error.retry": "دووبارە تاقی بکەوە",
+  "column.blocks": "بەکارهێنەرە بلۆککراوەکان",
+  "column.bookmarks": "نیشانەکان",
+  "column.community": "هێڵی کاتی ناوخۆیی",
+  "column.direct": "نامە ڕاستەوخۆکان",
+  "column.directory": "گەڕان لە پرۆفایلەکان",
+  "column.domain_blocks": "دۆمەینە داخراوەکان",
+  "column.favourites": "دڵخوازترینەکان",
+  "column.follow_requests": "بەدواداچوی داواکاریەکان بکە",
+  "column.home": "سەرەتا",
+  "column.lists": "پێرست",
+  "column.mutes": "بێدەنگکردنی بەکارهێنەران",
+  "column.notifications": "ئاگادارییەکان",
+  "column.pins": "تووتسی چەسپاو",
+  "column.public": "نووسراوەکانی هەمووشوێنێک",
+  "column_back_button.label": "دواوە",
+  "column_header.hide_settings": "شاردنەوەی ڕێکخستنەکان",
+  "column_header.moveLeft_settings": "ستوون بگوێزەرەوە بۆ لای چەپ",
+  "column_header.moveRight_settings": "جوولاندنی ئەستوون بۆ لای ڕاست",
+  "column_header.pin": "سنجاق",
+  "column_header.show_settings": "نیشاندانی رێکخستنەکان",
+  "column_header.unpin": "سنجاق نەکردن",
+  "column_subheading.settings": "رێکخستنەکان",
+  "community.column_settings.local_only": "تەنها خۆماڵی",
+  "community.column_settings.media_only": "تەنها میدیا",
+  "community.column_settings.remote_only": "تەنها بۆ دوور",
+  "compose_form.direct_message_warning": "ئەم توتە تەنیا بۆ بەکارهێنەرانی ناوبراو دەنێردرێت.",
+  "compose_form.direct_message_warning_learn_more": "زیاتر فێربه",
+  "compose_form.hashtag_warning": "ئەم توتە لە ژێر هیچ هاشتاگییەک دا ناکرێت وەک ئەوەی لە لیستەکەدا نەریزراوە. تەنها توتی گشتی دەتوانرێت بە هاشتاگی بگەڕێت.",
+  "compose_form.lock_disclaimer": "هەژمێرەکەی لە حاڵەتی {locked}. هەر کەسێک دەتوانێت شوێنت بکەوێت بۆ پیشاندانی بابەتەکانی تەنها دوایخۆی.",
+  "compose_form.lock_disclaimer.lock": "قفڵ دراوە",
+  "compose_form.placeholder": "چی لە مێشکتدایە?",
+  "compose_form.poll.add_option": "زیادکردنی هەڵبژاردەیەک",
+  "compose_form.poll.duration": "ماوەی ڕاپرسی",
+  "compose_form.poll.option_placeholder": "هەڵبژاردن {number}",
+  "compose_form.poll.remove_option": "لابردنی ئەم هەڵبژاردەیە",
+  "compose_form.poll.switch_to_multiple": "ڕاپرسی بگۆڕە بۆ ڕێگەدان بە چەند هەڵبژاردنێک",
+  "compose_form.poll.switch_to_single": "گۆڕینی ڕاپرسی بۆ ڕێگەدان بە تاکە هەڵبژاردنێک",
+  "compose_form.publish": "توت",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
-  "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
-  "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
-  "compose_form.spoiler.marked": "Text is hidden behind warning",
-  "compose_form.spoiler.unmarked": "Text is not hidden",
-  "compose_form.spoiler_placeholder": "Write your warning here",
-  "confirmation_modal.cancel": "Cancel",
-  "confirmations.block.block_and_report": "Block & Report",
-  "confirmations.block.confirm": "Block",
-  "confirmations.block.message": "Are you sure you want to block {name}?",
-  "confirmations.delete.confirm": "Delete",
-  "confirmations.delete.message": "Are you sure you want to delete this status?",
-  "confirmations.delete_list.confirm": "Delete",
-  "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
-  "confirmations.domain_block.confirm": "Hide entire domain",
-  "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
-  "confirmations.logout.confirm": "Log out",
-  "confirmations.logout.message": "Are you sure you want to log out?",
-  "confirmations.mute.confirm": "Mute",
-  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
-  "confirmations.mute.message": "Are you sure you want to mute {name}?",
-  "confirmations.redraft.confirm": "Delete & redraft",
-  "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
-  "confirmations.reply.confirm": "Reply",
-  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
-  "confirmations.unfollow.confirm": "Unfollow",
-  "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
-  "conversation.delete": "Delete conversation",
-  "conversation.mark_as_read": "Mark as read",
-  "conversation.open": "View conversation",
-  "conversation.with": "With {names}",
-  "directory.federated": "From known fediverse",
-  "directory.local": "From {domain} only",
-  "directory.new_arrivals": "New arrivals",
-  "directory.recently_active": "Recently active",
-  "embed.instructions": "Embed this status on your website by copying the code below.",
-  "embed.preview": "Here is what it will look like:",
-  "emoji_button.activity": "Activity",
-  "emoji_button.custom": "Custom",
-  "emoji_button.flags": "Flags",
-  "emoji_button.food": "Food & Drink",
-  "emoji_button.label": "Insert emoji",
-  "emoji_button.nature": "Nature",
-  "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
-  "emoji_button.objects": "Objects",
-  "emoji_button.people": "People",
-  "emoji_button.recent": "Frequently used",
-  "emoji_button.search": "Search...",
-  "emoji_button.search_results": "Search results",
-  "emoji_button.symbols": "Symbols",
-  "emoji_button.travel": "Travel & Places",
-  "empty_column.account_timeline": "No toots here!",
-  "empty_column.account_unavailable": "Profile unavailable",
-  "empty_column.blocks": "You haven't blocked any users yet.",
-  "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
-  "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
-  "empty_column.domain_blocks": "There are no blocked domains yet.",
-  "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
-  "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
-  "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
-  "empty_column.hashtag": "There is nothing in this hashtag yet.",
-  "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
-  "empty_column.home.public_timeline": "the public timeline",
-  "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
-  "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
-  "empty_column.mutes": "You haven't muted any users yet.",
-  "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
-  "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
-  "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
-  "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
-  "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
-  "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
-  "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
-  "errors.unexpected_crash.report_issue": "Report issue",
-  "follow_request.authorize": "Authorize",
-  "follow_request.reject": "Reject",
-  "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
-  "generic.saved": "Saved",
-  "getting_started.developers": "Developers",
-  "getting_started.directory": "Profile directory",
-  "getting_started.documentation": "Documentation",
-  "getting_started.heading": "Getting started",
-  "getting_started.invite": "Invite people",
-  "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
-  "getting_started.security": "Security",
-  "getting_started.terms": "Terms of service",
-  "hashtag.column_header.tag_mode.all": "and {additional}",
-  "hashtag.column_header.tag_mode.any": "or {additional}",
-  "hashtag.column_header.tag_mode.none": "without {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
-  "hashtag.column_settings.tag_mode.all": "All of these",
-  "hashtag.column_settings.tag_mode.any": "Any of these",
-  "hashtag.column_settings.tag_mode.none": "None of these",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
-  "home.column_settings.basic": "Basic",
-  "home.column_settings.show_reblogs": "Show boosts",
-  "home.column_settings.show_replies": "Show replies",
-  "home.hide_announcements": "Hide announcements",
-  "home.show_announcements": "Show announcements",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
-  "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
-  "introduction.federation.action": "Next",
-  "introduction.federation.federated.headline": "Federated",
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
-  "introduction.federation.home.headline": "Home",
-  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
-  "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
-  "introduction.interactions.action": "Finish toot-orial!",
-  "introduction.interactions.favourite.headline": "Favourite",
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
-  "introduction.interactions.reblog.headline": "Boost",
-  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
-  "introduction.interactions.reply.headline": "Reply",
-  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
-  "introduction.welcome.headline": "First steps",
-  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
-  "keyboard_shortcuts.back": "to navigate back",
-  "keyboard_shortcuts.blocked": "to open blocked users list",
-  "keyboard_shortcuts.boost": "to boost",
-  "keyboard_shortcuts.column": "to focus a status in one of the columns",
-  "keyboard_shortcuts.compose": "to focus the compose textarea",
-  "keyboard_shortcuts.description": "Description",
-  "keyboard_shortcuts.direct": "to open direct messages column",
-  "keyboard_shortcuts.down": "to move down in the list",
-  "keyboard_shortcuts.enter": "to open status",
-  "keyboard_shortcuts.favourite": "to favourite",
-  "keyboard_shortcuts.favourites": "to open favourites list",
-  "keyboard_shortcuts.federated": "to open federated timeline",
-  "keyboard_shortcuts.heading": "Keyboard Shortcuts",
-  "keyboard_shortcuts.home": "to open home timeline",
-  "keyboard_shortcuts.hotkey": "Hotkey",
-  "keyboard_shortcuts.legend": "to display this legend",
-  "keyboard_shortcuts.local": "to open local timeline",
-  "keyboard_shortcuts.mention": "to mention author",
-  "keyboard_shortcuts.muted": "to open muted users list",
-  "keyboard_shortcuts.my_profile": "to open your profile",
-  "keyboard_shortcuts.notifications": "to open notifications column",
-  "keyboard_shortcuts.open_media": "to open media",
-  "keyboard_shortcuts.pinned": "to open pinned toots list",
-  "keyboard_shortcuts.profile": "to open author's profile",
-  "keyboard_shortcuts.reply": "to reply",
-  "keyboard_shortcuts.requests": "to open follow requests list",
-  "keyboard_shortcuts.search": "to focus search",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
-  "keyboard_shortcuts.start": "to open \"get started\" column",
-  "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
-  "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
-  "keyboard_shortcuts.toot": "to start a brand new toot",
-  "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
-  "keyboard_shortcuts.up": "to move up in the list",
-  "lightbox.close": "Close",
+  "compose_form.sensitive.hide": "نیشانکردنی میدیا وەک هەستیار",
+  "compose_form.sensitive.marked": "وادەی کۆتایی",
+  "compose_form.sensitive.unmarked": "میدیا وەک هەستیار نیشان نەکراوە",
+  "compose_form.spoiler.marked": "دەق لە پشت ئاگاداریدا شاراوەتەوە",
+  "compose_form.spoiler.unmarked": "دەق شاراوە نییە",
+  "compose_form.spoiler_placeholder": "ئاگاداریەکەت لێرە بنووسە",
+  "confirmation_modal.cancel": "هەڵوەشاندنەوه",
+  "confirmations.block.block_and_report": "بلۆک & گوزارشت",
+  "confirmations.block.confirm": "بلۆک",
+  "confirmations.block.message": "ئایا دڵنیایت لەوەی دەتەوێت {name} بلۆک بکەیت?",
+  "confirmations.delete.confirm": "سڕینەوە",
+  "confirmations.delete.message": "ئایا دڵنیایت لەوەی دەتەوێت ئەم توتە بسڕیتەوە?",
+  "confirmations.delete_list.confirm": "سڕینەوە",
+  "confirmations.delete_list.message": "ئایا دڵنیایت لەوەی دەتەوێت بە هەمیشەیی ئەم لیستە بسڕیتەوە?",
+  "confirmations.domain_block.confirm": "بلۆککردنی هەموو دۆمەینەکە",
+  "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.reply.confirm": "وەڵام",
+  "confirmations.reply.message": "وەڵامدانەوە ئێستا ئەو نامەیە ی کە تۆ ئێستا دایڕشتووە، دەنووسێتەوە. ئایا دڵنیایت کە دەتەوێت بەردەوام بیت?",
+  "confirmations.unfollow.confirm": "بەدوادانەچو",
+  "confirmations.unfollow.message": "ئایا دڵنیایت لەوەی دەتەوێت پەیڕەوی {name}?",
+  "conversation.delete": "سڕینەوەی گفتوگۆ",
+  "conversation.mark_as_read": "نیشانەکردن وەک خوێندراوە",
+  "conversation.open": "نیشاندان گفتوگۆ",
+  "conversation.with": "لەگەڵ{names}",
+  "directory.federated": "لە ڕاژەکانی ناسراو",
+  "directory.local": "تەنها لە {domain}",
+  "directory.new_arrivals": "تازە گەیشتنەکان",
+  "directory.recently_active": "بەم دواییانە چالاکە",
+  "embed.instructions": "ئەم توتە بنچین بکە لەسەر وێب سایتەکەت بە کۆپیکردنی کۆدەکەی خوارەوە.",
+  "embed.preview": "ئەمە ئەو شتەیە کە لە شێوەی خۆی دەچێت:",
+  "emoji_button.activity": "چالاکی",
+  "emoji_button.custom": "ئاسایی",
+  "emoji_button.flags": "ئاڵاکان",
+  "emoji_button.food": "خواردن& خواردنەوە",
+  "emoji_button.label": "ئیمۆجی بکەنێو",
+  "emoji_button.nature": "سروشت",
+  "emoji_button.not_found": "بێ ئیمۆجی! (╯°□°)╯( ┻━┻",
+  "emoji_button.objects": "ئامانجەکان",
+  "emoji_button.people": "خەڵک",
+  "emoji_button.recent": "زۆرجار بەکارهێنراوە",
+  "emoji_button.search": "گەڕان...",
+  "emoji_button.search_results": "ئەنجامەکانی گەڕان",
+  "emoji_button.symbols": "هێماکان",
+  "emoji_button.travel": "گەشت & شوێنەکان",
+  "empty_column.account_timeline": "لێرە هیچ توتەک نییە!",
+  "empty_column.account_unavailable": "پرۆفایل بەردەست نیە",
+  "empty_column.blocks": "تۆ هێشتا هیچ بەکارهێنەرێکت بلۆک نەکردووە.",
+  "empty_column.bookmarked_statuses": "تۆ هێشتا هیچ توتێکی دیاریکراوت نیە کاتێک نیشانەیەک نیشان دەکەیت، لێرە دەرئەکەویت.",
+  "empty_column.community": "هێڵی کاتی ناوخۆیی بەتاڵە. شتێک بە ئاشکرا بنووسە بۆ ئەوەی تۆپەکە بسووڕێت!",
+  "empty_column.direct": "تۆ هیچ نامەی ڕاستەوخۆت نیە تا ئێستا. کاتێک دانەیەک دەنێریت یان وەرت دەگرێت، لێرە پیشان دەدات.",
+  "empty_column.domain_blocks": "هێشتا هیچ دۆمەینێکی بلۆک کراو نییە.",
+  "empty_column.favourited_statuses": "تۆ هێشتا هیچ توتێکی دڵخوازت نییە، کاتێک حەزت لە دانەیەکی باشە، لێرە دەرئەکەویت.",
+  "empty_column.favourites": "کەس ئەم توتەی دڵخواز نەکردووە،کاتێک کەسێک وا بکات، لێرە دەرئەکەون.",
+  "empty_column.follow_requests": "تۆ هێشتا هیچ داواکارییەکی بەدواداچووت نیە. کاتێک یەکێکت بۆ هات، لێرە دەرئەکەویت.",
+  "empty_column.hashtag": "هێشتا هیچ شتێک لەم هاشتاگەدا نییە.",
+  "empty_column.home": "تایم لاینی ماڵەوەت بەتاڵە! سەردانی {public} بکە یان گەڕان بەکاربێنە بۆ دەستپێکردن و بینینی بەکارهێنەرانی تر.",
+  "empty_column.home.public_timeline": "هێڵی کاتی گشتی",
+  "empty_column.list": "هێشتا هیچ شتێک لەم لیستەدا نییە. کاتێک ئەندامانی ئەم لیستە دەنگی نوێ بڵاودەکەن، لێرە دەردەکەون.",
+  "empty_column.lists": "تۆ هێشتا هیچ لیستت دروست نەکردووە، کاتێک دانەیەک دروست دەکەیت، لێرە پیشان دەدرێت.",
+  "empty_column.mutes": "تۆ هێشتا هیچ بەکارهێنەرێکت بێدەنگ نەکردووە.",
+  "empty_column.notifications": "تۆ هێشتا هیچ ئاگانامێکت نیە. چالاکی لەگەڵ کەسانی دیکە بکە بۆ دەستپێکردنی گفتوگۆکە.",
+  "empty_column.public": "لێرە هیچ نییە! شتێک بە ئاشکرا بنووسە(بەگشتی)، یان بە دەستی شوێن بەکارهێنەران بکەوە لە ڕاژەکانی ترەوە بۆ پڕکردنەوەی",
+  "error.unexpected_crash.explanation": "بەهۆی بوونی کێشە لە کۆدەکەمان یان کێشەی گونجانی وێبگەڕەکە، ئەم لاپەڕەیە بە دروستی پیشان نادرێت.",
+  "error.unexpected_crash.explanation_addons": "ئەم لاپەڕەیە ناتوانرێت بە دروستی پیشان بدرێت. ئەم هەڵەیە لەوانەیە بەهۆی ئامێری وەرگێڕانی خۆکار یان زیادکراوی وێبگەڕەوە بێت.",
+  "error.unexpected_crash.next_steps": "هەوڵدە لاپەڕەکە تازە بکەوە. ئەگەر ئەمە یارمەتیدەر نەبوو، لەوانەیە هێشتا بتوانیت ماستۆدۆن بەکاربێنیت لە ڕێگەی وێبگەڕەکەیان کاربەرنامەی ڕەسەن.",
+  "error.unexpected_crash.next_steps_addons": "هەوڵدە لەکاریان بخەیت و لاپەڕەکە تازە بکەوە. ئەگەر ئەمە یارمەتیدەر نەبوو، لەوانەیە هێشتا بتوانیت ماستۆدۆن بەکاربێنیت لە ڕێگەی وێبگەڕەکانی دیکە یان نەرمەکالاکانی ئەسڵی.",
+  "errors.unexpected_crash.copy_stacktrace": "کۆپیکردنی ستێکتراسی بۆ کلیپ بۆرد",
+  "errors.unexpected_crash.report_issue": "کێشەی گوزارشت",
+  "follow_request.authorize": "ده‌سه‌ڵاتپێدراو",
+  "follow_request.reject": "ڕەتکردنەوە",
+  "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": "ماستۆدۆن نەرمەکالایەکی سەرچاوەی کراوەیە. دەتوانیت بەشداری بکەیت یان گوزارشت بکەیت لەسەر کێشەکانی لە پەڕەی گیتهاب {github}.",
+  "getting_started.security": "ڕێکخستنەکانی هەژمارە",
+  "getting_started.terms": "مەرجەکانی خزمەتگوزاری",
+  "hashtag.column_header.tag_mode.all": "و {additional}",
+  "hashtag.column_header.tag_mode.any": "یا {additional}",
+  "hashtag.column_header.tag_mode.none": "بەبێ {additional}",
+  "hashtag.column_settings.select.no_options_message": "هیچ پێشنیارێک نەدۆزرایەوە",
+  "hashtag.column_settings.select.placeholder": "هاشتاگی تێبنووسە…",
+  "hashtag.column_settings.tag_mode.all": "هەموو ئەمانە",
+  "hashtag.column_settings.tag_mode.any": "هەر کام لەمانە",
+  "hashtag.column_settings.tag_mode.none": "هیچ کام لەمانە",
+  "hashtag.column_settings.tag_toggle": "تاگی زیادە ی ئەم ستوونە لەخۆ بنووسە",
+  "home.column_settings.basic": "بنەڕەتی",
+  "home.column_settings.show_reblogs": "پیشاندانی بەهێزکردن",
+  "home.column_settings.show_replies": "وەڵامدانەوەکان پیشان بدە",
+  "home.hide_announcements": "شاردنەوەی راگەیەنراوەکان",
+  "home.show_announcements": "پیشاندانی راگەیەنراوەکان",
+  "intervals.full.days": "{number, plural, one {# ڕۆژ} other {# ڕۆژەک}}",
+  "intervals.full.hours": "{number, plural, one {# کات} other {# کات}}",
+  "intervals.full.minutes": "{number, plural, one {# خولەک} other {# خولەک}}",
+  "introduction.federation.action": "داهاتوو",
+  "introduction.federation.federated.headline": "گشتی",
+  "introduction.federation.federated.text": "نووسراوە گشتیەکان لە خزمەتگوزاریەکانی تری جیهانی دەرئەکەون لە هێڵی گشتی.",
+  "introduction.federation.home.headline": "سەرەتا",
+  "introduction.federation.home.text": "ئەو بابەتانەی کە بەشوێنیان دەکەویت لە پەڕەی ژوورەکەت دەردەکەوێت. دەتوانیت شوێن هەموو کەسێک بکەویت لەسەر هەر ڕاژەیەک!",
+  "introduction.federation.local.headline": "ناوخۆیی",
+  "introduction.federation.local.text": "نووسراوە گشتیەکان لە خەڵک لەسەر هەمان ڕاژە وەک تۆ دەردەکەون لە هێڵی کاتی ناوخۆیی.",
+  "introduction.interactions.action": "خوێندنی تەواوبکە!",
+  "introduction.interactions.favourite.headline": "دڵخواز",
+  "introduction.interactions.favourite.text": "دەتوانیت پاشترتوتێک پاشەکەوت بکەیت، با نووسەر بزانێت کە تۆ حەزت لێ بوو، بە ئارەزووی خۆت.",
+  "introduction.interactions.reblog.headline": "بەهێزکردن",
+  "introduction.interactions.reblog.text": "دەتوانیت دەنگی کەسانی تر هاوبەش بکەیت لەگەڵ شوێنکەوتوانی خۆت بە بەهێزکردنیان.",
+  "introduction.interactions.reply.headline": "وەڵام",
+  "introduction.interactions.reply.text": "دەتوانیت وەڵامی کەسانی تر و توتەکانی خۆت بدەوە، کە لە گفتوگۆیەکدا بە یەکەوە زنجیریان دەکات.",
+  "introduction.welcome.action": "با بڕۆین!",
+  "introduction.welcome.headline": "هەنگاوی یەکەم",
+  "introduction.welcome.text": "بەخێربێیت بۆتۆڕەکۆمەڵەییەکانی چربووە! لە چەند ساتێکی کەمدا دەتوانیت پەیامەکان پەخش بکەیت و لەگەڵ هاوڕێکانت لە ناو چەندین جۆر لە ڕاژەکان قسە بکەیت.. بەڵام ئەم ڕاژانە، {domain}، جیاوزە لەگەڵ ئەوانی دیکە بۆ ئەوە کە میوانداری پرۆفایلەکەت دەکان، بۆیە ناوەکەیت لەبیربێت.",
+  "keyboard_shortcuts.back": "بۆ گەڕانەوە",
+  "keyboard_shortcuts.blocked": "بۆ کردنەوەی لیستی بەکارهێنەرە بلۆککراوەکان",
+  "keyboard_shortcuts.boost": "بۆ بەهێزکردن",
+  "keyboard_shortcuts.column": "بۆ ئەوەی تیشک بخاتە سەر توتێک لە یەکێک لە ستوونەکان",
+  "keyboard_shortcuts.compose": "بۆ سەرنجدان بە نووسینی ناوچەی دەق",
+  "keyboard_shortcuts.description": "وه‌سف",
+  "keyboard_shortcuts.direct": "بۆ کردنەوەی ستوونی نامە ڕاستەوخۆکان",
+  "keyboard_shortcuts.down": "بۆ چوونە خوارەوە لە لیستەکەدا",
+  "keyboard_shortcuts.enter": "بۆ کردنەوەی توت",
+  "keyboard_shortcuts.favourite": "بۆ دڵخواز",
+  "keyboard_shortcuts.favourites": "بۆ کردنەوەی لیستی دڵخوازەکان",
+  "keyboard_shortcuts.federated": "بۆ کردنەوەی نووسراوەکانی هەمووشوێن",
+  "keyboard_shortcuts.heading": "قه‌دبڕەکانی تەختەکلیل",
+  "keyboard_shortcuts.home": "بۆ کردنەوەی هێڵی کاتی ماڵەوە",
+  "keyboard_shortcuts.hotkey": "هۆتکەی",
+  "keyboard_shortcuts.legend": "بۆ نیشاندانی ئەم نیشانە",
+  "keyboard_shortcuts.local": "بۆ کردنەوەی نووسراوەکانی خۆماڵی",
+  "keyboard_shortcuts.mention": "نۆ ناوبردن لە نووسەر",
+  "keyboard_shortcuts.muted": "بۆ کردنەوەی پێرستی بەکارهێنەرانی بێدەنگ",
+  "keyboard_shortcuts.my_profile": "بۆ کردنەوەی پرۆفایڵ",
+  "keyboard_shortcuts.notifications": "بۆ کردنەوەی ستوونی ئاگانامەکان",
+  "keyboard_shortcuts.open_media": "بۆ کردنەوەی میدیا",
+  "keyboard_shortcuts.pinned": "بۆ کردنەوەی لیستی توتەکانی چەسپێنراو",
+  "keyboard_shortcuts.profile": "بۆ کردنەوەی پرۆفایڵی نووسەر",
+  "keyboard_shortcuts.reply": "بۆ وەڵامدانەوە",
+  "keyboard_shortcuts.requests": "بۆ کردنەوەی لیستی داواکاریەکانی بەدوادا",
+  "keyboard_shortcuts.search": "بۆ جەختکردن لەسەر گەڕان",
+  "keyboard_shortcuts.spoilers": "بۆ پیشاندان/شاردنەوەی خانەی CW",
+  "keyboard_shortcuts.start": "بۆ کردنەوەی ستوونی \"دەست پێبکە\"",
+  "keyboard_shortcuts.toggle_hidden": "بۆ پیشاندان/شاردنەوەی دەق لە پشت CW",
+  "keyboard_shortcuts.toggle_sensitivity": "بۆ پیشاندان/شاردنەوەی میدیا",
+  "keyboard_shortcuts.toot": "بۆ دەست کردن بە براندێکی تازە",
+  "keyboard_shortcuts.unfocus": "بۆ دروستکردنی ناوچەی دەق/گەڕان",
+  "keyboard_shortcuts.up": "بۆ ئەوەی لە لیستەکەدا بڕۆیت",
+  "lightbox.close": "دابخە",
   "lightbox.compress": "Compress image view box",
   "lightbox.expand": "Expand image view box",
-  "lightbox.next": "Next",
-  "lightbox.previous": "Previous",
-  "lightbox.view_context": "View context",
-  "lists.account.add": "Add to list",
-  "lists.account.remove": "Remove from list",
-  "lists.delete": "Delete list",
-  "lists.edit": "Edit list",
-  "lists.edit.submit": "Change title",
-  "lists.new.create": "Add list",
-  "lists.new.title_placeholder": "New list title",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
-  "lists.search": "Search among people you follow",
-  "lists.subheading": "Your lists",
+  "lightbox.next": "داهاتوو",
+  "lightbox.previous": "پێشوو",
+  "lightbox.view_context": "پێشاندانی دەق",
+  "lists.account.add": "زیادکردن بۆ لیست",
+  "lists.account.remove": "لابردن لە لیست",
+  "lists.delete": "سڕینەوەی لیست",
+  "lists.edit": "دەستکاری لیست",
+  "lists.edit.submit": "گۆڕینی ناونیشان",
+  "lists.new.create": "زیادکردنی لیست",
+  "lists.new.title_placeholder": "ناونیشانی لیستی نوێ",
+  "lists.replies_policy.all_replies": "هەربەکارهێنەرێکی شوێنکەوتوو",
+  "lists.replies_policy.list_replies": "ئەندامانی لیستەکە",
+  "lists.replies_policy.no_replies": "هیچکەس",
+  "lists.replies_policy.title": "پیشاندانی وەڵامەکان بۆ:",
+  "lists.search": "بگەڕێ لەناو ئەو کەسانەی کە شوێنیان کەوتویت",
+  "lists.subheading": "لیستەکانت",
   "load_pending": "{count, plural, one {# new item} other {# new items}}",
-  "loading_indicator.label": "Loading...",
-  "media_gallery.toggle_visible": "Hide {number, plural, one {image} other {images}}",
-  "missing_indicator.label": "Not found",
-  "missing_indicator.sublabel": "This resource could not be found",
-  "mute_modal.duration": "Duration",
-  "mute_modal.hide_notifications": "Hide notifications from this user?",
-  "mute_modal.indefinite": "Indefinite",
-  "navigation_bar.apps": "Mobile apps",
-  "navigation_bar.blocks": "Blocked users",
-  "navigation_bar.bookmarks": "Bookmarks",
-  "navigation_bar.community_timeline": "Local timeline",
-  "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
-  "navigation_bar.discover": "Discover",
-  "navigation_bar.domain_blocks": "Hidden domains",
-  "navigation_bar.edit_profile": "Edit profile",
-  "navigation_bar.favourites": "Favourites",
-  "navigation_bar.filters": "Muted words",
-  "navigation_bar.follow_requests": "Follow requests",
-  "navigation_bar.follows_and_followers": "Follows and followers",
-  "navigation_bar.info": "About this server",
-  "navigation_bar.keyboard_shortcuts": "Hotkeys",
-  "navigation_bar.lists": "Lists",
-  "navigation_bar.logout": "Logout",
-  "navigation_bar.mutes": "Muted users",
-  "navigation_bar.personal": "Personal",
-  "navigation_bar.pins": "Pinned toots",
-  "navigation_bar.preferences": "Preferences",
-  "navigation_bar.public_timeline": "Federated timeline",
-  "navigation_bar.security": "Security",
-  "notification.favourite": "{name} favourited your status",
-  "notification.follow": "{name} followed you",
-  "notification.follow_request": "{name} has requested to follow you",
-  "notification.mention": "{name} mentioned you",
-  "notification.own_poll": "Your poll has ended",
-  "notification.poll": "A poll you have voted in has ended",
-  "notification.reblog": "{name} boosted your status",
-  "notification.status": "{name} just posted",
-  "notifications.clear": "Clear notifications",
-  "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
-  "notifications.column_settings.alert": "Desktop notifications",
-  "notifications.column_settings.favourite": "Favourites:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
-  "notifications.column_settings.filter_bar.show": "Show",
-  "notifications.column_settings.follow": "New followers:",
-  "notifications.column_settings.follow_request": "New follow requests:",
-  "notifications.column_settings.mention": "Mentions:",
-  "notifications.column_settings.poll": "Poll results:",
-  "notifications.column_settings.push": "Push notifications",
-  "notifications.column_settings.reblog": "Boosts:",
-  "notifications.column_settings.show": "Show in column",
-  "notifications.column_settings.sound": "Play sound",
-  "notifications.column_settings.status": "New toots:",
-  "notifications.filter.all": "All",
-  "notifications.filter.boosts": "Boosts",
-  "notifications.filter.favourites": "Favourites",
-  "notifications.filter.follows": "Follows",
-  "notifications.filter.mentions": "Mentions",
-  "notifications.filter.polls": "Poll results",
-  "notifications.filter.statuses": "Updates from people you follow",
-  "notifications.group": "{count} notifications",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_people": "{count, plural, one {# person} other {# people}}",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll.voted": "You voted for this answer",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
-  "privacy.change": "Adjust status privacy",
-  "privacy.direct.long": "Visible for mentioned users only",
-  "privacy.direct.short": "Direct",
-  "privacy.private.long": "Visible for followers only",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all, shown in public timelines",
-  "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but not in public timelines",
-  "privacy.unlisted.short": "Unlisted",
-  "refresh": "Refresh",
-  "regeneration_indicator.label": "Loading…",
-  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
-  "relative_time.days": "{number}d",
-  "relative_time.hours": "{number}h",
-  "relative_time.just_now": "now",
-  "relative_time.minutes": "{number}m",
-  "relative_time.seconds": "{number}s",
-  "relative_time.today": "today",
-  "reply_indicator.cancel": "Cancel",
-  "report.forward": "Forward to {target}",
-  "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
-  "report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
-  "report.placeholder": "Additional comments",
-  "report.submit": "Submit",
-  "report.target": "Report {target}",
-  "search.placeholder": "Search",
-  "search_popout.search_format": "Advanced search format",
-  "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
-  "search_popout.tips.hashtag": "hashtag",
-  "search_popout.tips.status": "status",
-  "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
-  "search_popout.tips.user": "user",
-  "search_results.accounts": "People",
-  "search_results.hashtags": "Hashtags",
-  "search_results.statuses": "Toots",
-  "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
-  "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "status.admin_account": "Open moderation interface for @{name}",
-  "status.admin_status": "Open this status in the moderation interface",
-  "status.block": "Block @{name}",
-  "status.bookmark": "Bookmark",
-  "status.cancel_reblog_private": "Unboost",
-  "status.cannot_reblog": "This post cannot be boosted",
-  "status.copy": "Copy link to status",
-  "status.delete": "Delete",
-  "status.detailed_status": "Detailed conversation view",
-  "status.direct": "Direct message @{name}",
-  "status.embed": "Embed",
-  "status.favourite": "Favourite",
-  "status.filtered": "Filtered",
-  "status.load_more": "Load more",
-  "status.media_hidden": "Media hidden",
-  "status.mention": "Mention @{name}",
-  "status.more": "More",
-  "status.mute": "Mute @{name}",
-  "status.mute_conversation": "Mute conversation",
-  "status.open": "Expand this status",
-  "status.pin": "Pin on profile",
-  "status.pinned": "Pinned toot",
-  "status.read_more": "Read more",
-  "status.reblog": "Boost",
-  "status.reblog_private": "Boost with original visibility",
-  "status.reblogged_by": "{name} boosted",
-  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
-  "status.redraft": "Delete & re-draft",
-  "status.remove_bookmark": "Remove bookmark",
-  "status.reply": "Reply",
-  "status.replyAll": "Reply to thread",
-  "status.report": "Report @{name}",
-  "status.sensitive_warning": "Sensitive content",
-  "status.share": "Share",
-  "status.show_less": "Show less",
-  "status.show_less_all": "Show less for all",
-  "status.show_more": "Show more",
-  "status.show_more_all": "Show more for all",
-  "status.show_thread": "Show thread",
-  "status.uncached_media_warning": "Not available",
-  "status.unmute_conversation": "Unmute conversation",
-  "status.unpin": "Unpin from profile",
-  "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
-  "tabs_bar.federated_timeline": "Federated",
-  "tabs_bar.home": "Home",
-  "tabs_bar.local_timeline": "Local",
-  "tabs_bar.notifications": "Notifications",
-  "tabs_bar.search": "Search",
-  "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
-  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
-  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
-  "time_remaining.moments": "Moments remaining",
-  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
-  "trends.trending_now": "Trending now",
-  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
-  "upload_area.title": "Drag & drop to upload",
-  "upload_button.label": "Add images, a video or an audio file",
-  "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
-  "upload_form.audio_description": "Describe for people with hearing loss",
-  "upload_form.description": "Describe for the visually impaired",
-  "upload_form.edit": "Edit",
-  "upload_form.thumbnail": "Change thumbnail",
-  "upload_form.undo": "Delete",
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
-  "upload_modal.analyzing_picture": "Analyzing picture…",
-  "upload_modal.apply": "Apply",
-  "upload_modal.choose_image": "Choose image",
-  "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
-  "upload_modal.detect_text": "Detect text from picture",
-  "upload_modal.edit_media": "Edit media",
-  "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
-  "upload_modal.preview_label": "Preview ({ratio})",
-  "upload_progress.label": "Uploading…",
-  "video.close": "Close video",
-  "video.download": "Download file",
-  "video.exit_fullscreen": "Exit full screen",
-  "video.expand": "Expand video",
-  "video.fullscreen": "Full screen",
-  "video.hide": "Hide video",
-  "video.mute": "Mute sound",
-  "video.pause": "Pause",
-  "video.play": "Play",
-  "video.unmute": "Unmute sound"
+  "loading_indicator.label": "بارکردن...",
+  "media_gallery.toggle_visible": "شاردنەوەی {number, plural, one {image} other {images}}",
+  "missing_indicator.label": "نەدۆزرایەوە",
+  "missing_indicator.sublabel": "ئەو سەرچاوەیە نادۆزرێتەوە",
+  "mute_modal.duration": "ماوە",
+  "mute_modal.hide_notifications": "شاردنەوەی ئاگانامەکان لەم بەکارهێنەرە؟ ",
+  "mute_modal.indefinite": "نادیار",
+  "navigation_bar.apps": "بەرنامەی مۆبایل",
+  "navigation_bar.blocks": "بەکارهێنەرە بلۆککراوەکان",
+  "navigation_bar.bookmarks": "نیشانکراوەکان",
+  "navigation_bar.community_timeline": "دەمنامەی ناوخۆیی",
+  "navigation_bar.compose": "نووسینی توتی نوێ",
+  "navigation_bar.direct": "نامە ڕاستەوخۆکان",
+  "navigation_bar.discover": "دۆزینەوە",
+  "navigation_bar.domain_blocks": "دۆمەینە بلۆک کراوەکان",
+  "navigation_bar.edit_profile": "دەستکاری پرۆفایل بکە",
+  "navigation_bar.favourites": "دڵخوازەکان",
+  "navigation_bar.filters": "وشە کپەکان",
+  "navigation_bar.follow_requests": "بەدواداچوی داواکاریەکان بکە",
+  "navigation_bar.follows_and_followers": "شوێنکەوتوو و شوێنکەوتوان",
+  "navigation_bar.info": "دەربارەی ئەم ڕاژە",
+  "navigation_bar.keyboard_shortcuts": "هۆتکەی",
+  "navigation_bar.lists": "لیستەکان",
+  "navigation_bar.logout": "دەرچوون",
+  "navigation_bar.mutes": "کپکردنی بەکارهێنەران",
+  "navigation_bar.personal": "کەسی",
+  "navigation_bar.pins": "توتی چەسپاو",
+  "navigation_bar.preferences": "پەسەندەکان",
+  "navigation_bar.public_timeline": "نووسراوەکانی هەمووشوێنێک",
+  "navigation_bar.security": "ئاسایش",
+  "notification.favourite": "{name} نووسراوەکەتی پەسەند کرد",
+  "notification.follow": "{name} دوای تۆ کەوت",
+  "notification.follow_request": "{name} داوای کردووە کە شوێنت بکەوێت",
+  "notification.mention": "{name} باسی ئێوەی کرد",
+  "notification.own_poll": "ڕاپرسیەکەت کۆتایی هات",
+  "notification.poll": "ڕاپرسییەک کە دەنگی پێداویت کۆتایی هات",
+  "notification.reblog": "{name} نووسراوەکەتی دووبارە توتاند",
+  "notification.status": "{name} تازە بڵاوکرایەوە",
+  "notifications.clear": "ئاگانامەکان بسڕیەوە",
+  "notifications.clear_confirmation": "ئایا دڵنیایت لەوەی دەتەوێت بە هەمیشەیی هەموو ئاگانامەکانت بسڕیتەوە?",
+  "notifications.column_settings.alert": "ئاگانامەکانی پیشانگەرر ڕومێزی",
+  "notifications.column_settings.favourite": "دڵخوازترین:",
+  "notifications.column_settings.filter_bar.advanced": "هەموو پۆلەکان پیشان بدە",
+  "notifications.column_settings.filter_bar.category": "شریتی پاڵێوەری خێرا",
+  "notifications.column_settings.filter_bar.show": "نیشاندان",
+  "notifications.column_settings.follow": "شوێنکەوتوانی نوێ:",
+  "notifications.column_settings.follow_request": "شوینکەوتنی داواکاری نوێ:",
+  "notifications.column_settings.mention": "ئاماژەکان:",
+  "notifications.column_settings.poll": "ئەنجامەکانی ڕاپرسی:",
+  "notifications.column_settings.push": "ئاگانامەکان پاڵ بنێ",
+  "notifications.column_settings.reblog": "دووبارەتوتەکان:",
+  "notifications.column_settings.show": "لە ستووندا پیشان بدە",
+  "notifications.column_settings.sound": "لێدانی دەنگ",
+  "notifications.column_settings.status": "توتەکانی نوێ:",
+  "notifications.filter.all": "هەموو",
+  "notifications.filter.boosts": "دووبارەتوتەکان",
+  "notifications.filter.favourites": "دڵخوازەکان",
+  "notifications.filter.follows": "شوێنکەوتن",
+  "notifications.filter.mentions": "ئاماژەکان",
+  "notifications.filter.polls": "ئەنجامەکانی ڕاپرسی",
+  "notifications.filter.statuses": "نوێکردنەوەکان ئەو کەسانەی کە پەیڕەوی دەکەیت",
+  "notifications.group": "{count} ئاگانامە",
+  "notifications.mark_as_read": "هەموو ئاگانامەکان وەک خوێندراوەتەوە نیشان بکە",
+  "notifications.permission_denied": "ناتوانرێت ئاگانامەکانی دێسکتۆپ چالاک بکرێت وەک ڕێپێدان ڕەتکرایەوە.",
+  "notifications.permission_denied_alert": "ناتوانرێت ئاگانامەکانی دێسکتۆپ چالاک بکرێت، چونکە پێشتر مۆڵەتی وێبگەڕ ڕەتکرایەوە",
+  "notifications_permission_banner.enable": "چالاککردنی ئاگانامەکانی دێسکتۆپ",
+  "notifications_permission_banner.how_to_control": "بۆ وەرگرتنی ئاگانامەکان کاتێک ماستۆدۆن نەکراوەیە، ئاگانامەکانی دێسکتۆپ چالاک بکە. دەتوانیت بە وردی کۆنترۆڵی جۆری کارلێکەکان بکەیت کە ئاگانامەکانی دێسکتۆپ دروست دەکەن لە ڕێگەی دوگمەی {icon} لەسەرەوە کاتێک چالاک دەکرێن.",
+  "notifications_permission_banner.title": "هەرگیز شتێک لە دەست مەدە",
+  "picture_in_picture.restore": "بیگەڕێنەوە",
+  "poll.closed": "دابخە",
+  "poll.refresh": "نوێکردنەوە",
+  "poll.total_people": "{count, plural, one {# خەڵک} other {# خەڵک}}",
+  "poll.total_votes": "{count, plural, one {# دەنگ} other {# دەنگ}}\n",
+  "poll.vote": "دەنگ",
+  "poll.voted": "تۆ دەنگت بەو وەڵامە دا",
+  "poll_button.add_poll": "ڕاپرسییەک زیاد بکە",
+  "poll_button.remove_poll": "ده‌نگدان بسڕه‌وه‌‌",
+  "privacy.change": "ڕێکخستنی تایبەتمەندی توت",
+  "privacy.direct.long": "تەنیا بۆ بەکارهێنەرانی ناوبراو",
+  "privacy.direct.short": "ڕاستەوخۆ",
+  "privacy.private.long": "بینراو تەنها بۆ شوێنکەوتوان",
+  "privacy.private.short": "تەنها بۆ شوێنکەوتوان",
+  "privacy.public.long": "بۆ هەمووان دیاربێت، لە هێڵی کاتی گشتی دا نیشان دەدرێت",
+  "privacy.public.short": "گشتی",
+  "privacy.unlisted.long": "بۆ هەمووان دیارە، بەڵام لە هێڵی کاتی گشتیدا نا",
+  "privacy.unlisted.short": "لە لیست نەکراو",
+  "refresh": "نوێکردنەوە",
+  "regeneration_indicator.label": "بارکردن…",
+  "regeneration_indicator.sublabel": "ڕاگەیەنەری ماڵەوەت ئامادە دەکرێت!",
+  "relative_time.days": "{number}ڕۆژ",
+  "relative_time.hours": "{number}کات",
+  "relative_time.just_now": "ئێستا",
+  "relative_time.minutes": "{number}کات",
+  "relative_time.seconds": "{number}کات",
+  "relative_time.today": "ئیمڕۆ",
+  "reply_indicator.cancel": "هەڵوەشاندنەوه",
+  "report.forward": "ناردن بۆ {target}",
+  "report.forward_hint": "هەژمارەکە لە ڕاژەیەکی ترە. ڕونووسێکی نەناسراو بنێرە بۆ گوزارشت لەوێ?",
+  "report.hint": "گوزارشتەکە دەنێردرێت بۆ بەرپرسانی ڕاژەکەت. دەتوانیت ڕوونکردنەوەیەک پێشکەش بکەیت کە بۆچی ئەم هەژمارە لە خوارەوە گوزارش دەکەیت:",
+  "report.placeholder": "سەرنجەکانی زیاتر",
+  "report.submit": "ناردن",
+  "report.target": "گوزارشتکردنی{target}",
+  "search.placeholder": "گەڕان",
+  "search_popout.search_format": "شێوەی گەڕانی پێشکەوتوو",
+  "search_popout.tips.full_text": "گەڕانێکی دەقی سادە دەتوانێت توتەکانی ئێوە کە، نووسیوتانە،پەسەنتان کردووە، دووبارەتانکردووە، یان ئەو توتانە کە باسی ئێوەی تێدا کراوە پەیدا دەکا. هەروەها ناوی بەکارهێنەران، ناوی پیشاندراو و هەشتەگەکانیش لە خۆ دەگرێت.",
+  "search_popout.tips.hashtag": "هەشتاگ",
+  "search_popout.tips.status": "توت",
+  "search_popout.tips.text": "دەقی سادە هەڵدەسێ بە گەڕاندنەوەی هاوتایی ناوی پیشاندان، ناوی بەکارهێنەر و هاشتاگەکان",
+  "search_popout.tips.user": "بەکارهێنەر",
+  "search_results.accounts": "خەڵک",
+  "search_results.hashtags": "هەشتاگ",
+  "search_results.statuses": "توتەکان",
+  "search_results.statuses_fts_disabled": "گەڕانی توتەکان بە ناوەڕۆکیان لەسەر ئەم ڕاژەی ماستۆدۆن چالاک نەکراوە.",
+  "search_results.total": "{count, number} {count, plural, one {دەرئەنجام} other {دەرئەنجام}}",
+  "status.admin_account": "کردنەوەی میانڕەوی بەڕێوەبەر بۆ @{name}",
+  "status.admin_status": "ئەم توتە بکەوە لە ناو ڕووکاری بەڕیوەبەر",
+  "status.block": "بلۆکی @{name}",
+  "status.bookmark": "نیشانه",
+  "status.cancel_reblog_private": "بێبەهێزکردن",
+  "status.cannot_reblog": "ئەم بابەتە ناتوانرێت بەرزبکرێتەوە",
+  "status.copy": "ڕوونووسی بەستەر بۆ توت",
+  "status.delete": "سڕینەوە",
+  "status.detailed_status": "ڕوانگەی گفتوگۆ بە وردەکاری",
+  "status.direct": "پەیامی ڕاستەوخۆ @{name}",
+  "status.embed": "نیشتەجێ بکە",
+  "status.favourite": "دڵخواز",
+  "status.filtered": "پاڵاوتن",
+  "status.load_more": "بارکردنی زیاتر",
+  "status.media_hidden": "میدیای شاراوە",
+  "status.mention": "ناوبنێ @{name}",
+  "status.more": "زیاتر",
+  "status.mute": "بێدەنگکردن @{name}",
+  "status.mute_conversation": "گفتوگۆی بێدەنگ",
+  "status.open": "ئەم توتە فراوان بکە",
+  "status.pin": "لکاندن لەسەر پرۆفایل",
+  "status.pinned": "توتی چەسپکراو",
+  "status.read_more": "زیاتر بخوێنەوە",
+  "status.reblog": "بەهێزکردن",
+  "status.reblog_private": "بەهێزکردن بۆ بینەرانی سەرەتایی",
+  "status.reblogged_by": "{name} توتی کردەوە",
+  "status.reblogs.empty": "کەس ئەم توتەی دووبارە نەتوتاندوە ،کاتێک کەسێک وا بکات، لێرە دەرئەکەون.",
+  "status.redraft": "سڕینەوەی و دووبارە ڕەشنووس",
+  "status.remove_bookmark": "لابردنی نیشانه",
+  "status.reply": "وەڵام",
+  "status.replyAll": "بە نووسراوە وەڵام بدەوە",
+  "status.report": "گوزارشت @{name}",
+  "status.sensitive_warning": "ناوەڕۆکی هەستیار",
+  "status.share": "هاوبەش کردن",
+  "status.show_less": "کەمتر نیشان بدە",
+  "status.show_less_all": "کەمتر نیشان بدە بۆ هەمووی",
+  "status.show_more": "زیاتر پیشان بدە",
+  "status.show_more_all": "زیاتر نیشان بدە بۆ هەمووی",
+  "status.show_thread": "نیشاندانی گفتوگۆ",
+  "status.uncached_media_warning": "بەردەست نیە",
+  "status.unmute_conversation": "گفتوگۆی بێدەنگ",
+  "status.unpin": "لابردن لە پرۆفایل",
+  "suggestions.dismiss": "ڕەتکردنەوەی پێشنیار",
+  "suggestions.header": "لەوانەیە حەزت لەمەش بێت…",
+  "tabs_bar.federated_timeline": "گشتی",
+  "tabs_bar.home": "سەرەتا",
+  "tabs_bar.local_timeline": "ناوخۆیی",
+  "tabs_bar.notifications": "ئاگادارییەکان",
+  "tabs_bar.search": "گەڕان",
+  "time_remaining.days": "{number, plural, one {# ڕۆژ} other {# ڕۆژ}} ماوە",
+  "time_remaining.hours": "{number, plural, one {# کات} other {# کات}} ماوە",
+  "time_remaining.minutes": "{number, plural, one {# خۆلەک} other {# خولەک}} ماوە",
+  "time_remaining.moments": "ئەو ساتانەی ماونەتەوە",
+  "time_remaining.seconds": "{number, plural, one {# چرکە} other {# چرکە}} ماوە",
+  "timeline_hint.remote_resource_not_displayed": "{resource} لە ڕاژەکانی ترەوە پیشان نادرێت.",
+  "timeline_hint.resources.followers": "شوێنکەوتووان",
+  "timeline_hint.resources.follows": "شوێنکەوتن",
+  "timeline_hint.resources.statuses": "توتی کۆن",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} کەس} other {{counter} کەس}} گفتوگۆ دەکا",
+  "trends.trending_now": "گۆگران",
+  "ui.beforeunload": "ڕەشنووسەکەت لە دەست دەچێت ئەگەر لە ماستۆدۆن بڕۆیت.",
+  "units.short.billion": "{count}ملیار",
+  "units.short.million": "{count}ملیۆن",
+  "units.short.thousand": "{count}هەزار",
+  "upload_area.title": "ڕاکێشان & دانان بۆ بارکردن",
+  "upload_button.label": "زیادکردنی وێنەکان، ڤیدیۆیەک یان فایلێکی دەنگی",
+  "upload_error.limit": "سنووری بارکردنی فایل تێپەڕیوە.",
+  "upload_error.poll": "پەڕگەکە ڕێی پێنەدراوە بە ڕاپرسی باربکرێت.",
+  "upload_form.audio_description": "بۆ ئەو کەسانەی کە گوێ بیستیان هەیە وەسف دەکات",
+  "upload_form.description": "وەسف بکە بۆ کەمبینایان",
+  "upload_form.edit": "دەستکاری",
+  "upload_form.thumbnail": "گۆڕانی وینۆچکە",
+  "upload_form.undo": "سڕینەوە",
+  "upload_form.video_description": "بۆ کەم بینایان و کەم بیستان وەسفی بکە",
+  "upload_modal.analyzing_picture": "شیکردنەوەی وێنە…",
+  "upload_modal.apply": "جێبەجێ کردن",
+  "upload_modal.choose_image": "وێنە هەڵبژێرە",
+  "upload_modal.description_placeholder": "بە دڵ کەین با بە نەشئەی مەی غوباری میحنەتی دونیا",
+  "upload_modal.detect_text": "دەقی وێنەکە بدۆزیەوە",
+  "upload_modal.edit_media": "دەستکاریکردنی میدیا",
+  "upload_modal.hint": "گەر وێنە چکۆلە یان بڕاوەبێت، خاڵی ناوەندی دیار دەکەوێت. خاڵی ناوەندی وێنە بە کرتە یان جێبەجیکردنی رێکبخەن.",
+  "upload_modal.preparing_ocr": "ئامادەکردنی OCR…",
+  "upload_modal.preview_label": "پێشبینی ({ratio})",
+  "upload_progress.label": "بارکردن...",
+  "video.close": "داخستنی ڤیدیۆ",
+  "video.download": "داگرتنی فایل",
+  "video.exit_fullscreen": "دەرچوون لە پڕ شاشە",
+  "video.expand": "ڤیدیۆفراوان بکە",
+  "video.fullscreen": "پڕپیشانگەر",
+  "video.hide": "شاردنەوەی ڤیدیۆ",
+  "video.mute": "دەنگی کپ",
+  "video.pause": "وەستان",
+  "video.play": "پەخشکردن",
+  "video.unmute": "دەنگ لابدە"
 }
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index c03e5c81a..08c3cacd0 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -6,7 +6,7 @@
   "account.block": "@{name} നെ ബ്ലോക്ക് ചെയ്യുക",
   "account.block_domain": "{domain} ൽ നിന്നുള്ള എല്ലാം മറയ്കുക",
   "account.blocked": "തടഞ്ഞു",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "യഥാർത്ഥ പ്രൊഫൈലിലേക്ക് പോവുക",
   "account.cancel_follow_request": "പിന്തുടരാനുള്ള അപേക്ഷ നിരസിക്കുക",
   "account.direct": "@{name} ന് നേരിട്ട് മെസേജ് അയക്കുക",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
@@ -94,10 +94,10 @@
   "compose_form.poll.duration": "തിരഞ്ഞെടുപ്പിന്റെ സമയദൈർഖ്യം",
   "compose_form.poll.option_placeholder": "ചോയ്‌സ് {number}",
   "compose_form.poll.remove_option": "ഈ ഡിവൈസ് മാറ്റുക",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.poll.switch_to_multiple": "വോട്ടെടുപ്പിൽ ഒന്നിലധികം ചോയ്‌സുകൾ ഉൾപ്പെടുതുക",
+  "compose_form.poll.switch_to_single": "വോട്ടെടുപ്പിൽ ഒരൊറ്റ ചോയ്‌സ്‌ മാത്രം ആക്കുക",
   "compose_form.publish": "ടൂട്ട്",
-  "compose_form.publish_loud": "{publish}!",
+  "compose_form.publish_loud": "{പ്രസിദ്ധീകരിക്കുക}!",
   "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
   "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
   "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
@@ -141,7 +141,7 @@
   "emoji_button.food": "ഭക്ഷണവും പാനീയവും",
   "emoji_button.label": "ഇമോജി ചേർക്കുക",
   "emoji_button.nature": "പ്രകൃതി",
-  "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "എമോജി പാടില്ല (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "വസ്തുക്കൾ",
   "emoji_button.people": "ആളുകൾ",
   "emoji_button.recent": "അടിക്കടി ഉപയോഗിക്കുന്നവ",
@@ -152,7 +152,7 @@
   "empty_column.account_timeline": "ഇവിടെ ടൂട്ടുകൾ ഇല്ല!",
   "empty_column.account_unavailable": "പ്രൊഫൈൽ ലഭ്യമല്ല",
   "empty_column.blocks": "നിങ്ങൾ ഇതുവരെ ഒരു ഉപയോക്താക്കളെയും തടഞ്ഞിട്ടില്ല.",
-  "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+  "empty_column.bookmarked_statuses": "നിങ്ങൾക് ഇതുവരെ അടയാളപ്പെടുത്തിയ ടൂട്ടുകൾ ഇല്ല. അടയാളപ്പെടുത്തിയാൽ അത് ഇവിടെ വരും.",
   "empty_column.community": "പ്രാദേശികമായ സമയരേഖ ശൂന്യമാണ്. എന്തെങ്കിലും പരസ്യമായി എഴുതി തുടക്കം കുറിക്കു!",
   "empty_column.direct": "നിങ്ങൾക്ക് ഇതുവരെ നേരിട്ടുള്ള സന്ദേശങ്ങൾ ഒന്നുമില്ല. നിങ്ങൾ അങ്ങനെ ഒന്ന് അയക്കുകയോ, നിങ്ങൾക്ക് ലഭിക്കുകയോ ചെയ്യുന്നപക്ഷം അതിവിടെ കാണപ്പെടുന്നതാണ്.",
   "empty_column.domain_blocks": "മറയ്ക്കപ്പെട്ടിരിക്കുന്ന മേഖലകൾ ഇതുവരെ ഇല്ല.",
@@ -161,7 +161,7 @@
   "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
   "empty_column.hashtag": "There is nothing in this hashtag yet.",
   "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
-  "empty_column.home.public_timeline": "the public timeline",
+  "empty_column.home.public_timeline": "പൊതു സമയരേഖ",
   "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
   "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
   "empty_column.mutes": "You haven't muted any users yet.",
@@ -221,13 +221,13 @@
   "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
   "keyboard_shortcuts.back": "തിരികെ പോകുക",
   "keyboard_shortcuts.blocked": "to open blocked users list",
-  "keyboard_shortcuts.boost": "to boost",
+  "keyboard_shortcuts.boost": "ബൂസ്റ്റ് ചെയ്യുക",
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "to focus the compose textarea",
   "keyboard_shortcuts.description": "വിവരണം",
   "keyboard_shortcuts.direct": "to open direct messages column",
   "keyboard_shortcuts.down": "to move down in the list",
-  "keyboard_shortcuts.enter": "to open status",
+  "keyboard_shortcuts.enter": "ടൂട്ട് എടുക്കാൻ",
   "keyboard_shortcuts.favourite": "to favourite",
   "keyboard_shortcuts.favourites": "to open favourites list",
   "keyboard_shortcuts.federated": "to open federated timeline",
@@ -243,7 +243,7 @@
   "keyboard_shortcuts.open_media": "to open media",
   "keyboard_shortcuts.pinned": "to open pinned toots list",
   "keyboard_shortcuts.profile": "to open author's profile",
-  "keyboard_shortcuts.reply": "to reply",
+  "keyboard_shortcuts.reply": "മറുപടി അയക്കാൻ",
   "keyboard_shortcuts.requests": "to open follow requests list",
   "keyboard_shortcuts.search": "to focus search",
   "keyboard_shortcuts.spoilers": "to show/hide CW field",
@@ -253,38 +253,38 @@
   "keyboard_shortcuts.toot": "to start a brand new toot",
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
   "keyboard_shortcuts.up": "to move up in the list",
-  "lightbox.close": "Close",
+  "lightbox.close": "അടയ്ക്കുക",
   "lightbox.compress": "Compress image view box",
   "lightbox.expand": "Expand image view box",
-  "lightbox.next": "Next",
-  "lightbox.previous": "Previous",
+  "lightbox.next": "അടുത്തത്",
+  "lightbox.previous": "പുറകോട്ട്",
   "lightbox.view_context": "View context",
-  "lists.account.add": "Add to list",
-  "lists.account.remove": "Remove from list",
-  "lists.delete": "Delete list",
-  "lists.edit": "Edit list",
-  "lists.edit.submit": "Change title",
-  "lists.new.create": "Add list",
+  "lists.account.add": "പട്ടികയിലേക്ക് ചേർക്കുക",
+  "lists.account.remove": "പട്ടികയിൽ നിന്ന് ഒഴിവാക്കുക",
+  "lists.delete": "പട്ടിക ഒഴിവാക്കുക",
+  "lists.edit": "പട്ടിക തിരുത്തുക",
+  "lists.edit.submit": "തലക്കെട്ട് മാറ്റുക",
+  "lists.new.create": "പുതിയ പട്ടിക ചേർക്കുക",
   "lists.new.title_placeholder": "New list title",
   "lists.replies_policy.all_replies": "Any followed user",
   "lists.replies_policy.list_replies": "Members of the list",
   "lists.replies_policy.no_replies": "No one",
   "lists.replies_policy.title": "Show replies to:",
   "lists.search": "Search among people you follow",
-  "lists.subheading": "Your lists",
+  "lists.subheading": "എന്റെ പട്ടികകൾ",
   "load_pending": "{count, plural, one {# new item} other {# new items}}",
-  "loading_indicator.label": "Loading...",
+  "loading_indicator.label": "ലോഡിംഗ്...",
   "media_gallery.toggle_visible": "Hide {number, plural, one {image} other {images}}",
-  "missing_indicator.label": "Not found",
+  "missing_indicator.label": "കാണാനില്ല",
   "missing_indicator.sublabel": "This resource could not be found",
   "mute_modal.duration": "Duration",
   "mute_modal.hide_notifications": "Hide notifications from this user?",
   "mute_modal.indefinite": "Indefinite",
   "navigation_bar.apps": "Mobile apps",
   "navigation_bar.blocks": "Blocked users",
-  "navigation_bar.bookmarks": "Bookmarks",
+  "navigation_bar.bookmarks": "അടയാളങ്ങൾ",
   "navigation_bar.community_timeline": "Local timeline",
-  "navigation_bar.compose": "Compose new toot",
+  "navigation_bar.compose": "പുതിയ ടൂട്ട് എഴുതുക",
   "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 8b437e66b..aec3e09ff 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "om het tekst- en zoekvak te ontfocussen",
   "keyboard_shortcuts.up": "om omhoog te bewegen in de lijst",
   "lightbox.close": "Sluiten",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Afbeelding passend weergeven",
+  "lightbox.expand": "Afbeelding groot weergeven",
   "lightbox.next": "Volgende",
   "lightbox.previous": "Vorige",
   "lightbox.view_context": "Context tonen",
@@ -279,7 +279,7 @@
   "missing_indicator.sublabel": "Deze hulpbron kan niet gevonden worden",
   "mute_modal.duration": "Duration",
   "mute_modal.hide_notifications": "Verberg meldingen van deze persoon?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Voor onbepaalde tijd",
   "navigation_bar.apps": "Mobiele apps",
   "navigation_bar.blocks": "Geblokkeerde gebruikers",
   "navigation_bar.bookmarks": "Bladwijzers",
@@ -338,8 +338,8 @@
   "notifications.mark_as_read": "Mark every notification as read",
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
+  "notifications_permission_banner.enable": "Notificatie meldingen inschakelen",
+  "notifications_permission_banner.how_to_control": "Gebruikt notificaties om ook meldingen te ontvangen wanneer Mastodon niet open is. U kunt precies bepalen welke soort meldingen wel of geen notificaties afgeven via de bovenstaande knop {icon}.",
   "notifications_permission_banner.title": "Never miss a thing",
   "picture_in_picture.restore": "Put it back",
   "poll.closed": "Gesloten",
@@ -448,9 +448,9 @@
   "trends.counter_by_accounts": "{count, plural, one {{counter} persoon} other {{counter} personen}} zijn aan het praten",
   "trends.trending_now": "Trends",
   "ui.beforeunload": "Je concept zal verloren gaan als je Mastodon verlaat.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.billion": "{count} miljard",
+  "units.short.million": "{count} miljoen",
+  "units.short.thousand": "{count} duizend",
   "upload_area.title": "Hiernaar toe slepen om te uploaden",
   "upload_button.label": "Afbeeldingen, een video- of een geluidsbestand toevoegen",
   "upload_error.limit": "Uploadlimiet van bestand overschreden.",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Tekst in een afbeelding detecteren",
   "upload_modal.edit_media": "Media bewerken",
   "upload_modal.hint": "Klik of sleep de cirkel in de voorvertoning naar een centraal punt dat op elke thumbnail zichtbaar moet blijven.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "OCR voorbereiden…",
   "upload_modal.preview_label": "Voorvertoning ({ratio})",
   "upload_progress.label": "Uploaden...",
   "video.close": "Video sluiten",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 56df4624c..f6518afab 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -1,24 +1,24 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "Merknad",
   "account.add_or_remove_from_list": "Legg til eller tak vekk frå listene",
   "account.badges.bot": "Robot",
   "account.badges.group": "Gruppe",
   "account.block": "Blokker @{name}",
   "account.block_domain": "Skjul alt frå {domain}",
   "account.blocked": "Blokkert",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "Sjå gjennom meir på den opphavlege profilen",
   "account.cancel_follow_request": "Fjern fylgjeførespurnad",
   "account.direct": "Send melding til @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Slutt å varsle meg når @{name} legger ut innlegg",
   "account.domain_blocked": "Domenet er gøymt",
   "account.edit_profile": "Rediger profil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Varsle meg når @{name} legger ut innlegg",
   "account.endorse": "Framhev på profil",
   "account.follow": "Fylg",
   "account.followers": "Fylgjarar",
   "account.followers.empty": "Ingen fylgjer denne brukaren enno.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjarar}}",
+  "account.following_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjar}}",
   "account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.",
   "account.follows_you": "Fylgjer deg",
   "account.hide_reblogs": "Gøym fremhevingar frå @{name}",
@@ -38,14 +38,14 @@
   "account.requested": "Ventar på samtykke. Klikk for å avbryta fylgjeførespurnaden",
   "account.share": "Del @{name} sin profil",
   "account.show_reblogs": "Vis framhevingar frå @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} tut} other {{counter} tut}}",
   "account.unblock": "Slutt å blokera @{name}",
   "account.unblock_domain": "Vis {domain}",
   "account.unendorse": "Ikkje framhev på profil",
   "account.unfollow": "Slutt å fylgja",
   "account.unmute": "Av-demp @{name}",
   "account.unmute_notifications": "Vis varsel frå @{name}",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "Klikk for å leggja til merknad",
   "alert.rate_limited.message": "Ver venleg å prøva igjen etter {retry_time, time, medium}.",
   "alert.rate_limited.title": "Begrensa rate",
   "alert.unexpected.message": "Eit uventa problem oppstod.",
@@ -56,7 +56,7 @@
   "bundle_column_error.body": "Noko gjekk gale mens denne komponenten vart lasta ned.",
   "bundle_column_error.retry": "Prøv igjen",
   "bundle_column_error.title": "Nettverksfeil",
-  "bundle_modal_error.close": "Lukk",
+  "bundle_modal_error.close": "Lat att",
   "bundle_modal_error.message": "Noko gjekk gale under lastinga av denne komponenten.",
   "bundle_modal_error.retry": "Prøv igjen",
   "column.blocks": "Blokkerte brukarar",
@@ -81,9 +81,9 @@
   "column_header.show_settings": "Vis innstillingar",
   "column_header.unpin": "Løys",
   "column_subheading.settings": "Innstillingar",
-  "community.column_settings.local_only": "Kun lokalt",
+  "community.column_settings.local_only": "Berre lokalt",
   "community.column_settings.media_only": "Berre media",
-  "community.column_settings.remote_only": "Kun eksternt",
+  "community.column_settings.remote_only": "Berre eksternt",
   "compose_form.direct_message_warning": "Dette tutet vert berre synleg for nemnde brukarar.",
   "compose_form.direct_message_warning_learn_more": "Lær meir",
   "compose_form.hashtag_warning": "Dette tutet vert ikkje oppført under nokon emneknagg sidan det ikkje er oppført. Berre offentlege tut kan verta søkt etter med emneknagg.",
@@ -168,15 +168,15 @@
   "empty_column.notifications": "Du har ingen varsel ennå. Kommuniser med andre for å starte samtalen.",
   "empty_column.public": "Det er ingenting her! Skriv noko offentleg, eller følg brukarar frå andre tenarar manuelt for å fylle det opp",
   "error.unexpected_crash.explanation": "På grunn av ein feil i vår kode eller eit nettlesarkompatibilitetsproblem, kunne ikkje denne sida verte vist korrekt.",
-  "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": "Denne siden kunne ikke vises riktig. Denne feilen er sannsynligvis forårsaket av en nettleserutvidelse eller automatiske oversettelsesverktøy.",
   "error.unexpected_crash.next_steps": "Prøv å lasta inn sida på nytt. Om det ikkje hjelper så kan du framleis nytta Mastodon i ein annan nettlesar eller app.",
   "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
   "errors.unexpected_crash.copy_stacktrace": "Kopier stacktrace til utklippstavla",
   "errors.unexpected_crash.report_issue": "Rapporter problem",
   "follow_request.authorize": "Autoriser",
   "follow_request.reject": "Avvis",
-  "follow_requests.unlocked_explanation": "Selv om kontoen din ikke er låst, tror {domain} ansatte at du kanskje vil gjennomgå forespørsler fra disse kontoene manuelt.",
-  "generic.saved": "Saved",
+  "follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte {domain} tilsette at du ville gå gjennom førespurnadar frå desse kontoane manuelt.",
+  "generic.saved": "Lagra",
   "getting_started.developers": "Utviklarar",
   "getting_started.directory": "Profilkatalog",
   "getting_started.documentation": "Dokumentasjon",
@@ -246,7 +246,7 @@
   "keyboard_shortcuts.reply": "for å svara",
   "keyboard_shortcuts.requests": "for å opna lista med fylgjeførespurnader",
   "keyboard_shortcuts.search": "for å fokusera søket",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "for å visa/gøyma CW-felt",
   "keyboard_shortcuts.start": "for å opna \"kom i gang\"-feltet",
   "keyboard_shortcuts.toggle_hidden": "for å visa/gøyma tekst bak innhaldsvarsel",
   "keyboard_shortcuts.toggle_sensitivity": "for å visa/gøyma media",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Endre tittel",
   "lists.new.create": "Legg til liste",
   "lists.new.title_placeholder": "Ny listetittel",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Enhver fulgt bruker",
+  "lists.replies_policy.list_replies": "Medlemmer i listen",
+  "lists.replies_policy.no_replies": "Ingen",
+  "lists.replies_policy.title": "Vis svar på:",
   "lists.search": "Søk gjennom folk du følgjer",
   "lists.subheading": "Dine lister",
   "load_pending": "{count, plural, one {# nytt element} other {# nye element}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Gjer synleg/usynleg",
   "missing_indicator.label": "Ikkje funne",
   "missing_indicator.sublabel": "Fann ikkje ressursen",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Varighet",
   "mute_modal.hide_notifications": "Gøyme varsel frå denne brukaren?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "På ubestemt tid",
   "navigation_bar.apps": "Mobilappar",
   "navigation_bar.blocks": "Blokkerte brukarar",
   "navigation_bar.bookmarks": "Bokmerke",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Rundspørjinga di er ferdig",
   "notification.poll": "Ei rundspørjing du har røysta i er ferdig",
   "notification.reblog": "{name} framheva statusen din",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} la nettopp ut",
   "notifications.clear": "Tøm varsel",
   "notifications.clear_confirmation": "Er du sikker på at du vil fjerna alle varsla dine for alltid?",
   "notifications.column_settings.alert": "Skrivebordsvarsel",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Framhevingar:",
   "notifications.column_settings.show": "Vis i kolonne",
   "notifications.column_settings.sound": "Spel av lyd",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Nye tuter:",
   "notifications.filter.all": "Alle",
   "notifications.filter.boosts": "Framhevingar",
   "notifications.filter.favourites": "Favorittar",
   "notifications.filter.follows": "Fylgjer",
   "notifications.filter.mentions": "Nemningar",
   "notifications.filter.polls": "Røysteresultat",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Oppdateringer fra folk du følger",
   "notifications.group": "{count} varsel",
-  "notifications.mark_as_read": "Mark every notification as read",
+  "notifications.mark_as_read": "Merk alle varsler som lest",
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
+  "notifications_permission_banner.enable": "Skru på skrivebordsvarsler",
   "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications_permission_banner.title": "Aldri gå glipp av noe",
+  "picture_in_picture.restore": "Legg den tilbake",
   "poll.closed": "Lukka",
   "poll.refresh": "Oppdater",
   "poll.total_people": "{count, plural, one {# person} other {# folk}}",
@@ -441,29 +441,29 @@
   "time_remaining.minutes": "{number, plural, one {# minutt} other {# minutt}} igjen",
   "time_remaining.moments": "Kort tid igjen",
   "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekund}} igjen",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "timeline_hint.remote_resource_not_displayed": "{resource} frå andre tenarar synest ikkje.",
+  "timeline_hint.resources.followers": "Fylgjarar",
+  "timeline_hint.resources.follows": "Fylgjer",
+  "timeline_hint.resources.statuses": "Eldre tut",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} folk}} pratar",
   "trends.trending_now": "Populært no",
   "ui.beforeunload": "Kladden din forsvinn om du forlèt Mastodon no.",
   "units.short.billion": "{count}B",
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Drag & slepp for å lasta opp",
-  "upload_button.label": "Legg til medium ({formats})",
+  "upload_button.label": "Legg til medium",
   "upload_error.limit": "Du har gått over opplastingsgrensa.",
   "upload_error.poll": "Filopplasting ikkje tillate med meiningsmålingar.",
   "upload_form.audio_description": "Grei ut for folk med nedsett høyrsel",
   "upload_form.description": "Skildr for synshemja",
   "upload_form.edit": "Rediger",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Bytt miniatyrbilete",
   "upload_form.undo": "Slett",
   "upload_form.video_description": "Greit ut for folk med nedsett høyrsel eller syn",
   "upload_modal.analyzing_picture": "Analyserer bilete…",
   "upload_modal.apply": "Bruk",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Vel bilete",
   "upload_modal.description_placeholder": "Ein rask brun rev hoppar over den late hunden",
   "upload_modal.detect_text": "Gjenkjenn tekst i biletet",
   "upload_modal.edit_media": "Rediger medium",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index cd5dd1971..46cf7c407 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -1,24 +1,24 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "Notis",
   "account.add_or_remove_from_list": "Legg til eller fjern fra lister",
   "account.badges.bot": "Bot",
   "account.badges.group": "Gruppe",
   "account.block": "Blokkér @{name}",
   "account.block_domain": "Skjul alt fra {domain}",
   "account.blocked": "Blokkert",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "Bla mer på den opprinnelige profilen",
   "account.cancel_follow_request": "Avbryt følge forespørsel",
   "account.direct": "Direct Message @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Slutt å varsle meg når @{name} legger ut innlegg",
   "account.domain_blocked": "Domenet skjult",
   "account.edit_profile": "Rediger profil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Varsle meg når @{name} legger ut innlegg",
   "account.endorse": "Vis frem på profilen",
   "account.follow": "Følg",
   "account.followers": "Følgere",
   "account.followers.empty": "Ingen følger denne brukeren ennå.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} følger} other {{counter} følgere}}",
+  "account.following_counter": "{count, plural, one {{counter} som følges} other {{counter} som følges}}",
   "account.follows.empty": "Denne brukeren følger ikke noen enda.",
   "account.follows_you": "Følger deg",
   "account.hide_reblogs": "Skjul fremhevinger fra @{name}",
@@ -38,14 +38,14 @@
   "account.requested": "Venter på godkjennelse",
   "account.share": "Del @{name}s profil",
   "account.show_reblogs": "Vis boosts fra @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} tut} other {{counter} tuter}}",
   "account.unblock": "Avblokker @{name}",
   "account.unblock_domain": "Vis {domain}",
   "account.unendorse": "Ikke vis frem på profilen",
   "account.unfollow": "Avfølg",
   "account.unmute": "Avdemp @{name}",
   "account.unmute_notifications": "Vis varsler fra @{name}",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "Klikk for å legge til et notat",
   "alert.rate_limited.message": "Vennligst prøv igjen etter kl. {retry_time, time, medium}.",
   "alert.rate_limited.title": "Hastighetsbegrenset",
   "alert.unexpected.message": "En uventet feil oppstod.",
@@ -168,7 +168,7 @@
   "empty_column.notifications": "Du har ingen varsler ennå. Kommuniser med andre for å begynne samtalen.",
   "empty_column.public": "Det er ingenting her! Skriv noe offentlig, eller følg brukere manuelt fra andre instanser for å fylle den opp",
   "error.unexpected_crash.explanation": "På grunn av en bug i koden vår eller et nettleserkompatibilitetsproblem, kunne denne siden ikke vises riktig.",
-  "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": "Denne siden kunne ikke vises riktig. Denne feilen er sannsynligvis forårsaket av en nettleserutvidelse eller automatiske oversettelsesverktøy.",
   "error.unexpected_crash.next_steps": "Prøv å oppfriske siden. Dersom det ikke hjelper, vil du kanskje fortsatt kunne bruke Mastodon gjennom en annen nettleser eller app.",
   "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
   "errors.unexpected_crash.copy_stacktrace": "Kopier stacktrace-en til utklippstavlen",
@@ -176,7 +176,7 @@
   "follow_request.authorize": "Autorisér",
   "follow_request.reject": "Avvis",
   "follow_requests.unlocked_explanation": "Selv om kontoen din ikke er låst, tror {domain} ansatte at du kanskje vil gjennomgå forespørsler fra disse kontoene manuelt.",
-  "generic.saved": "Saved",
+  "generic.saved": "Lagret",
   "getting_started.developers": "Utviklere",
   "getting_started.directory": "Profilmappe",
   "getting_started.documentation": "Dokumentasjon",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Endre tittel",
   "lists.new.create": "Ligg til liste",
   "lists.new.title_placeholder": "Ny listetittel",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Enhver fulgt bruker",
+  "lists.replies_policy.list_replies": "Medlemmer i listen",
+  "lists.replies_policy.no_replies": "Ingen",
+  "lists.replies_policy.title": "Vis svar på:",
   "lists.search": "Søk blant personer du følger",
   "lists.subheading": "Dine lister",
   "load_pending": "{count, plural,one {# ny gjenstand} other {# nye gjenstander}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Veksle synlighet",
   "missing_indicator.label": "Ikke funnet",
   "missing_indicator.sublabel": "Denne ressursen ble ikke funnet",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Varighet",
   "mute_modal.hide_notifications": "Skjul varslinger fra denne brukeren?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "På ubestemt tid",
   "navigation_bar.apps": "Mobilapper",
   "navigation_bar.blocks": "Blokkerte brukere",
   "navigation_bar.bookmarks": "Bokmerker",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Avstemningen din er ferdig",
   "notification.poll": "En avstemning du har stemt på har avsluttet",
   "notification.reblog": "{name} fremhevde din status",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} la nettopp ut",
   "notifications.clear": "Fjern varsler",
   "notifications.clear_confirmation": "Er du sikker på at du vil fjerne alle dine varsler permanent?",
   "notifications.column_settings.alert": "Skrivebordsvarslinger",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Fremhevet:",
   "notifications.column_settings.show": "Vis i kolonne",
   "notifications.column_settings.sound": "Spill lyd",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Nye tuter:",
   "notifications.filter.all": "Alle",
   "notifications.filter.boosts": "Fremhevinger",
   "notifications.filter.favourites": "Favoritter",
   "notifications.filter.follows": "Følginger",
   "notifications.filter.mentions": "Nevnelser",
   "notifications.filter.polls": "Avstemningsresultater",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Oppdateringer fra folk du følger",
   "notifications.group": "{count} varslinger",
-  "notifications.mark_as_read": "Mark every notification as read",
+  "notifications.mark_as_read": "Merk alle varsler som lest",
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
+  "notifications_permission_banner.enable": "Skru på skrivebordsvarsler",
   "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications_permission_banner.title": "Aldri gå glipp av noe",
+  "picture_in_picture.restore": "Legg den tilbake",
   "poll.closed": "Lukket",
   "poll.refresh": "Oppdater",
   "poll.total_people": "{count, plural, one {# person} other {# personer}}",
@@ -442,15 +442,15 @@
   "time_remaining.moments": "Gjenværende øyeblikk",
   "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} igjen",
   "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "timeline_hint.resources.followers": "Følgere",
+  "timeline_hint.resources.follows": "Følger",
+  "timeline_hint.resources.statuses": "Eldre tuter",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} personer}} snakker",
   "trends.trending_now": "Trender nå",
   "ui.beforeunload": "Din kladd vil bli forkastet om du forlater Mastodon.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.billion": "{count}m.ard",
+  "units.short.million": "{count}mill",
+  "units.short.thousand": "{count}T",
   "upload_area.title": "Dra og slipp for å laste opp",
   "upload_button.label": "Legg til media",
   "upload_error.limit": "Filopplastingsgrensen er oversteget.",
@@ -458,12 +458,12 @@
   "upload_form.audio_description": "Beskriv det for folk med hørselstap",
   "upload_form.description": "Beskriv for synshemmede",
   "upload_form.edit": "Rediger",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Endre miniatyrbilde",
   "upload_form.undo": "Angre",
   "upload_form.video_description": "Beskriv det for folk med hørselstap eller synshemminger",
   "upload_modal.analyzing_picture": "Analyserer bildet …",
   "upload_modal.apply": "Bruk",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Velg et bilde",
   "upload_modal.description_placeholder": "Når du en gang kommer, neste sommer, skal vi atter drikke vin",
   "upload_modal.detect_text": "Oppdag tekst i bildet",
   "upload_modal.edit_media": "Rediger media",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index 4ec1643ee..f166f95e2 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -9,16 +9,16 @@
   "account.browse_more_on_origin_server": "Navigar sul perfil original",
   "account.cancel_follow_request": "Anullar la demanda de seguiment",
   "account.direct": "Escriure un MP a @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Quitar de m’avisar quand @{name} publica quicòm",
   "account.domain_blocked": "Domeni amagat",
   "account.edit_profile": "Modificar lo perfil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "M’avisar quand @{name} publica quicòm",
   "account.endorse": "Mostrar pel perfil",
   "account.follow": "Sègre",
   "account.followers": "Seguidors",
   "account.followers.empty": "Degun sèc pas aqueste utilizaire pel moment.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidors}}",
+  "account.following_counter": "{count, plural, one {{counter} Abonaments} other {{counter} Abonaments}}",
   "account.follows.empty": "Aqueste utilizaire sèc pas degun pel moment.",
   "account.follows_you": "Vos sèc",
   "account.hide_reblogs": "Rescondre los partatges de @{name}",
@@ -38,7 +38,7 @@
   "account.requested": "Invitacion mandada. Clicatz per anullar",
   "account.share": "Partejar lo perfil a @{name}",
   "account.show_reblogs": "Mostrar los partatges de @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} Tut} other {{counter} Tuts}}",
   "account.unblock": "Desblocar @{name}",
   "account.unblock_domain": "Desblocar {domain}",
   "account.unendorse": "Mostrar pas pel perfil",
@@ -87,7 +87,7 @@
   "compose_form.direct_message_warning": "Sols los mencionats poiràn veire aqueste tut.",
   "compose_form.direct_message_warning_learn_more": "Ne saber mai",
   "compose_form.hashtag_warning": "Aqueste tut serà pas ligat a cap d’etiqueta estant qu’es pas listat. Òm pòt pas cercar que los tuts publics per etiqueta.",
-  "compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo monde pòt vos sègre e veire los estatuts reservats als seguidors.",
+  "compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo mond pòt vos sègre e veire los estatuts reservats als seguidors.",
   "compose_form.lock_disclaimer.lock": "clavat",
   "compose_form.placeholder": "A de qué pensatz ?",
   "compose_form.poll.add_option": "Ajustar una causida",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "Avètz pas encara de notificacions. Respondètz a qualqu’un per començar una conversacion.",
   "empty_column.public": "I a pas res aquí ! Escrivètz quicòm de public, o seguètz de personas d’autres servidors per garnir lo flux public",
   "error.unexpected_crash.explanation": "A causa d’una avaria dins nòstre còdi o d’un problèma de compatibilitat de navegador, aquesta pagina se pòt pas afichar corrèctament.",
-  "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": "Aquesta pagina podiá pas s’afichar corrèctament. Aquesta error arriba sovent a causa d’un modul complementari de navigador o una aisina de traduccion automatica.",
   "error.unexpected_crash.next_steps": "Ensajatz d’actualizar la pagina. S’aquò càmbia pas res, podètz provar d’utilizar Mastodon via un navegador diferent o d’una aplicacion nativa estant.",
-  "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": "Ensajatz de los desactivar o actualizatz la pagina. Se aquò ajuda pas, podètz ensajar d’utilizar Mastodon via un autre navigador o una aplicacion nativa.",
   "errors.unexpected_crash.copy_stacktrace": "Copiar las traças al quichapapièrs",
   "errors.unexpected_crash.report_issue": "Senhalar un problèma",
   "follow_request.authorize": "Acceptar",
@@ -181,7 +181,7 @@
   "getting_started.directory": "Annuari de perfils",
   "getting_started.documentation": "Documentacion",
   "getting_started.heading": "Per començar",
-  "getting_started.invite": "Convidar de monde",
+  "getting_started.invite": "Convidar de mond",
   "getting_started.open_source_notice": "Mastodon es un logicial liure. Podètz contribuir e mandar vòstres comentaris e rapòrt de bug via {github} sus GitHub.",
   "getting_started.security": "Seguretat",
   "getting_started.terms": "Condicions d’utilizacion",
@@ -206,9 +206,9 @@
   "introduction.federation.federated.headline": "Federat",
   "introduction.federation.federated.text": "Los tuts publics d’autres servidors del fediverse apareisseràn dins lo flux d’actualitats.",
   "introduction.federation.home.headline": "Acuèlh",
-  "introduction.federation.home.text": "Los tuts del monde que seguètz apareisseràn dins vòstre flux d’acuèlh. Podètz sègre de monde ont que siasquen !",
+  "introduction.federation.home.text": "Los tuts del mond que seguètz apareisseràn dins vòstre flux d’acuèlh. Podètz sègre de mond ont que siasquen !",
   "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Los tuts publics del monde del meteis servidor que vosautres apareisseràn dins lo flux local.",
+  "introduction.federation.local.text": "Los tuts publics del mond del meteis servidor que vosautres apareisseràn dins lo flux local.",
   "introduction.interactions.action": "Acabar la leiçon !",
   "introduction.interactions.favourite.headline": "Favorit",
   "introduction.interactions.favourite.text": "Podètz enregistrar un tut per mai tard, e avisar l’autor que l’avètz aimat, en l’ajustant als favorits.",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "quitar lo camp tèxte/de recèrca",
   "keyboard_shortcuts.up": "far montar dins la lista",
   "lightbox.close": "Tampar",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Fenèstra de visualizacion dels imatges compressats",
+  "lightbox.expand": "Espandir la fenèstra de visualizacion d’imatge",
   "lightbox.next": "Seguent",
   "lightbox.previous": "Precedent",
   "lightbox.view_context": "Veire lo contèxt",
@@ -266,20 +266,20 @@
   "lists.edit.submit": "Cambiar lo títol",
   "lists.new.create": "Ajustar una lista",
   "lists.new.title_placeholder": "Títol de la nòva lista",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
-  "lists.search": "Cercar demest lo monde que seguètz",
+  "lists.replies_policy.all_replies": "Los que sègui",
+  "lists.replies_policy.list_replies": "Membres d’aquesta lista",
+  "lists.replies_policy.no_replies": "Degun",
+  "lists.replies_policy.title": "Mostrar las responsas a :",
+  "lists.search": "Cercar demest lo mond que seguètz",
   "lists.subheading": "Vòstras listas",
   "load_pending": "{count, plural, one {# nòu element} other {# nòu elements}}",
   "loading_indicator.label": "Cargament…",
   "media_gallery.toggle_visible": "Modificar la visibilitat",
   "missing_indicator.label": "Pas trobat",
   "missing_indicator.sublabel": "Aquesta ressorsa es pas estada trobada",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Durada",
   "mute_modal.hide_notifications": "Rescondre las notificacions d’aquesta persona ?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Cap de data de fin",
   "navigation_bar.apps": "Aplicacions mobil",
   "navigation_bar.blocks": "Personas blocadas",
   "navigation_bar.bookmarks": "Marcadors",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Vòstre sondatge es acabat",
   "notification.poll": "Avètz participat a un sondatge que ven de s’acabar",
   "notification.reblog": "{name} a partejat vòstre estatut",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} ven de publicar",
   "notifications.clear": "Escafar",
   "notifications.clear_confirmation": "Volètz vertadièrament escafar totas vòstras las notificacions ?",
   "notifications.column_settings.alert": "Notificacions localas",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Partatges :",
   "notifications.column_settings.show": "Mostrar dins la colomna",
   "notifications.column_settings.sound": "Emetre un son",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Tuts novèls :",
   "notifications.filter.all": "Totas",
   "notifications.filter.boosts": "Partages",
   "notifications.filter.favourites": "Favorits",
   "notifications.filter.follows": "Seguiments",
   "notifications.filter.mentions": "Mencions",
   "notifications.filter.polls": "Resultats del sondatge",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Mesas a jorn del monde que seguissètz",
   "notifications.group": "{count} notificacions",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Marcar totas las notificacions coma legidas",
+  "notifications.permission_denied": "Las notificacion burèu son pas disponiblas a causa del refús de las demandas d’autorizacion navigador",
+  "notifications.permission_denied_alert": "Las notificacions burèu son pas activada, per çò que las autorizacions son estadas refusada abans",
+  "notifications_permission_banner.enable": "Activar las notificacions burèu",
+  "notifications_permission_banner.how_to_control": "Per recebre las notificacions de Mastodon quand es pas dobèrt, activatz las notificacions de burèu. Podètz precisar quin tipe de notificacion generarà una notificacion de burèu via lo boton {icon} dessús un còp activadas.",
+  "notifications_permission_banner.title": "Manquetz pas jamai res",
+  "picture_in_picture.restore": "Lo tornar",
   "poll.closed": "Tampat",
   "poll.refresh": "Actualizar",
   "poll.total_people": "{count, plural, one {# persona} other {# personas}}",
@@ -445,7 +445,7 @@
   "timeline_hint.resources.followers": "Seguidors",
   "timeline_hint.resources.follows": "Abonaments",
   "timeline_hint.resources.statuses": "Tuts mai ancians",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} persona ne parla} other {{counter} personas ne parlan}}",
   "trends.trending_now": "Tendéncia del moment",
   "ui.beforeunload": "Vòstre brolhon serà perdut se quitatz Mastodon.",
   "units.short.billion": "{count}B",
@@ -458,17 +458,17 @@
   "upload_form.audio_description": "Descriure per las personas amb pèrdas auditivas",
   "upload_form.description": "Descripcion pels mal vesents",
   "upload_form.edit": "Modificar",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Cambiar la vinheta",
   "upload_form.undo": "Suprimir",
   "upload_form.video_description": "Descriure per las personas amb pèrdas auditivas o mal vesent",
   "upload_modal.analyzing_picture": "Analisi de l’imatge…",
   "upload_modal.apply": "Aplicar",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Causir un imatge",
   "upload_modal.description_placeholder": "Lo dròlle bilingüe manja un yaourt de ròcs exagonals e kiwis verds farà un an mai",
   "upload_modal.detect_text": "Detectar lo tèxt de l’imatge",
   "upload_modal.edit_media": "Modificar lo mèdia",
   "upload_modal.hint": "Clicatz o lisatz lo cercle de l’apercebut per causir lo ponch que serà totjorn visible dins las vinhetas.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Preparacion de la ROC…",
   "upload_modal.preview_label": "Apercebut ({ratio})",
   "upload_progress.label": "Mandadís…",
   "video.close": "Tampar la vidèo",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index e93e41cf3..02baf6465 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -1,5 +1,5 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "Notatka",
   "account.add_or_remove_from_list": "Dodaj lub usuń z list",
   "account.badges.bot": "Bot",
   "account.badges.group": "Grupa",
@@ -9,16 +9,16 @@
   "account.browse_more_on_origin_server": "Zobacz więcej na oryginalnym profilu",
   "account.cancel_follow_request": "Zrezygnuj z prośby o możliwość śledzenia",
   "account.direct": "Wyślij wiadomość bezpośrednią do @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Przestań powiadamiać mnie o wpisach @{name}",
   "account.domain_blocked": "Ukryto domenę",
   "account.edit_profile": "Edytuj profil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Powiadamiaj mnie o wpisach @{name}",
   "account.endorse": "Polecaj na profilu",
   "account.follow": "Śledź",
   "account.followers": "Śledzący",
   "account.followers.empty": "Nikt jeszcze nie śledzi tego użytkownika.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} śledzący} few {{counter} śledzących} many {{counter} śledzących} other {{counter} śledzących}}",
+  "account.following_counter": "{count, plural, one {{counter} śledzony} few {{counter} śledzonych} many {{counter} śledzonych} other {{counter} śledzonych}}",
   "account.follows.empty": "Ten użytkownik nie śledzi jeszcze nikogo.",
   "account.follows_you": "Śledzi Cię",
   "account.hide_reblogs": "Ukryj podbicia od @{name}",
@@ -38,14 +38,14 @@
   "account.requested": "Oczekująca prośba, kliknij aby anulować",
   "account.share": "Udostępnij profil @{name}",
   "account.show_reblogs": "Pokazuj podbicia od @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} wpis} few {{counter} wpisy} many {{counter} wpisów} other {{counter} wpisów}}",
   "account.unblock": "Odblokuj @{name}",
   "account.unblock_domain": "Odblokuj domenę {domain}",
   "account.unendorse": "Przestań polecać",
   "account.unfollow": "Przestań śledzić",
   "account.unmute": "Cofnij wyciszenie @{name}",
   "account.unmute_notifications": "Cofnij wyciszenie powiadomień od @{name}",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "Naciśnij aby dodać notatkę",
   "alert.rate_limited.message": "Spróbuj ponownie po {retry_time, time, medium}.",
   "alert.rate_limited.title": "Ograniczony czasowo",
   "alert.unexpected.message": "Wystąpił nieoczekiwany błąd.",
@@ -172,15 +172,15 @@
   "empty_column.notifications": "Nie masz żadnych powiadomień. Rozpocznij interakcje z innymi użytkownikami.",
   "empty_column.public": "Tu nic nie ma! Napisz coś publicznie, lub dodaj ludzi z innych serwerów, aby to wyświetlić",
   "error.unexpected_crash.explanation": "W związku z błędem w naszym kodzie lub braku kompatybilności przeglądarki, ta strona nie może być poprawnie wyświetlona.",
-  "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": "Ta strona nie mogła zostać poprawnie wyświetlona. Może to być spowodowane dodatkiem do przeglądarki lub narzędziem do automatycznego tłumaczenia.",
   "error.unexpected_crash.next_steps": "Spróbuj odświeżyć stronę. Jeśli to nie pomoże, wciąż jesteś w stanie używać Mastodona przez inną przeglądarkę lub natywną aplikację.",
-  "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": "Spróbuj je wyłączyć lub odświeżyć stronę. Jeśli to nie pomoże, możesz wciąż korzystać z Mastodona w innej przeglądarce lub natywnej aplikacji.",
   "errors.unexpected_crash.copy_stacktrace": "Skopiuj ślad stosu do schowka",
   "errors.unexpected_crash.report_issue": "Zgłoś problem",
   "follow_request.authorize": "Autoryzuj",
   "follow_request.reject": "Odrzuć",
   "follow_requests.unlocked_explanation": "Mimo że Twoje konto nie jest zablokowane, zespół {domain} uznał że możesz chcieć ręcznie przejrzeć prośby o możliwość śledzenia.",
-  "generic.saved": "Saved",
+  "generic.saved": "Zapisano",
   "getting_started.developers": "Dla programistów",
   "getting_started.directory": "Katalog profilów",
   "getting_started.documentation": "Dokumentacja",
@@ -270,10 +270,10 @@
   "lists.edit.submit": "Zmień tytuł",
   "lists.new.create": "Utwórz listę",
   "lists.new.title_placeholder": "Wprowadź tytuł listy",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Dowolnego obserwowanego użytkownika",
+  "lists.replies_policy.list_replies": "Członków listy",
+  "lists.replies_policy.no_replies": "Nikogo",
+  "lists.replies_policy.title": "Pokazuj odpowiedzi dla:",
   "lists.search": "Szukaj wśród osób które śledzisz",
   "lists.subheading": "Twoje listy",
   "load_pending": "{count, plural, one {# nowy przedmiot} other {nowe przedmioty}}",
@@ -281,9 +281,9 @@
   "media_gallery.toggle_visible": "Przełącz widoczność",
   "missing_indicator.label": "Nie znaleziono",
   "missing_indicator.sublabel": "Nie można odnaleźć tego zasobu",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Czas",
   "mute_modal.hide_notifications": "Chcesz ukryć powiadomienia od tego użytkownika?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Nieokreślony",
   "navigation_bar.apps": "Aplikacje mobilne",
   "navigation_bar.blocks": "Zablokowani użytkownicy",
   "navigation_bar.bookmarks": "Zakładki",
@@ -315,7 +315,7 @@
   "notification.own_poll": "Twoje głosowanie zakończyło się",
   "notification.poll": "Głosowanie w którym brałeś(-aś) udział zakończyła się",
   "notification.reblog": "{name} podbił(a) Twój wpis",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} właśnie utworzył(a) wpis",
   "notifications.clear": "Wyczyść powiadomienia",
   "notifications.clear_confirmation": "Czy na pewno chcesz bezpowrotnie usunąć wszystkie powiadomienia?",
   "notifications.column_settings.alert": "Powiadomienia na pulpicie",
@@ -331,22 +331,22 @@
   "notifications.column_settings.reblog": "Podbicia:",
   "notifications.column_settings.show": "Pokaż w kolumnie",
   "notifications.column_settings.sound": "Odtwarzaj dźwięk",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Nowe wpisy:",
   "notifications.filter.all": "Wszystkie",
   "notifications.filter.boosts": "Podbicia",
   "notifications.filter.favourites": "Ulubione",
   "notifications.filter.follows": "Śledzenia",
   "notifications.filter.mentions": "Wspomienia",
   "notifications.filter.polls": "Wyniki głosowania",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Aktualizacje od osób które obserwujesz",
   "notifications.group": "{count, number} {count, plural, one {powiadomienie} few {powiadomienia} many {powiadomień} more {powiadomień}}",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Oznacz wszystkie powiadomienia jako przeczytane",
+  "notifications.permission_denied": "Powiadomienia na pulpicie nie są dostępne, ponieważ wcześniej nie udzielono uprawnień w przeglądarce",
+  "notifications.permission_denied_alert": "Powiadomienia na pulpicie nie mogą zostać włączone, ponieważ wcześniej odmówiono uprawnień",
+  "notifications_permission_banner.enable": "Włącz powiadomienia na pulpicie",
+  "notifications_permission_banner.how_to_control": "Aby otrzymywać powiadomienia, gdy Mastodon nie jest otwarty, włącz powiadomienia pulpitu. Możesz dokładnie kontrolować, októrych działaniach będziesz powiadomienia na pulpicie za pomocą przycisku {icon} powyżej, jeżeli tylko zostaną włączone.",
+  "notifications_permission_banner.title": "Nie przegap niczego",
+  "picture_in_picture.restore": "Odłóż",
   "poll.closed": "Zamknięte",
   "poll.refresh": "Odśwież",
   "poll.total_people": "{count, plural, one {# osoba} few {# osoby} many {# osób} other {# osób}}",
@@ -450,12 +450,12 @@
   "timeline_hint.resources.followers": "Śledzący",
   "timeline_hint.resources.follows": "Śledzeni",
   "timeline_hint.resources.statuses": "Starsze wpisy",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "trends.counter_by_accounts": "rozmawiają: {count, plural, one {{counter} osoba} few {{counter} osoby} many {{counter} osób} other {{counter} osoby}}",
   "trends.trending_now": "Popularne teraz",
   "ui.beforeunload": "Utracisz tworzony wpis, jeżeli opuścisz Mastodona.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.billion": "{count} mld",
+  "units.short.million": "{count} mln",
+  "units.short.thousand": "{count} tys.",
   "upload_area.title": "Przeciągnij i upuść aby wysłać",
   "upload_button.label": "Dodaj zawartość multimedialną (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Przekroczono limit plików do wysłania.",
@@ -463,17 +463,17 @@
   "upload_form.audio_description": "Opisz dla osób niesłyszących i niedosłyszących",
   "upload_form.description": "Wprowadź opis dla niewidomych i niedowidzących",
   "upload_form.edit": "Edytuj",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Zmień miniaturę",
   "upload_form.undo": "Usuń",
   "upload_form.video_description": "Opisz dla osób niesłyszących, niedosłyszących, niewidomych i niedowidzących",
   "upload_modal.analyzing_picture": "Analizowanie obrazu…",
   "upload_modal.apply": "Zastosuj",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Wybierz obraz",
   "upload_modal.description_placeholder": "Pchnąć w tę łódź jeża lub ośm skrzyń fig",
-  "upload_modal.detect_text": "Wykryj tekst ze obrazu",
+  "upload_modal.detect_text": "Wykryj tekst z obrazu",
   "upload_modal.edit_media": "Edytuj multimedia",
   "upload_modal.hint": "Kliknij lub przeciągnij kółko na podglądzie by wybrać centralny punkt, który zawsze będzie na widoku na miniaturce.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Przygotowywanie OCR…",
   "upload_modal.preview_label": "Podgląd ({ratio})",
   "upload_progress.label": "Wysyłanie…",
   "video.close": "Zamknij film",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index 2d0f85156..dda932440 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "Encontre mais no perfil original",
   "account.cancel_follow_request": "Cancelar solicitação para seguir",
   "account.direct": "Enviar toot direto para @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Parar de me notificar quando @{name} fizer publicações",
   "account.domain_blocked": "Domínio bloqueado",
   "account.edit_profile": "Editar perfil",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Notificar-me quando @{name} fizer publicações",
   "account.endorse": "Destacar no perfil",
   "account.follow": "Seguir",
   "account.followers": "Seguidores",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "Nada aqui. Interaja com outros usuários para começar a conversar.",
   "empty_column.public": "Não há nada aqui! Escreva algo publicamente, ou siga manualmente usuários de outros servidores para enchê-la",
   "error.unexpected_crash.explanation": "Devido a um bug em nosso código ou um problema de compatibilidade de navegador, esta página não pôde ser exibida corretamente.",
-  "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": "Esta página não pôde ser exibida corretamente. Este erro provavelmente é causado por um complemento do navegador ou ferramentas de tradução automática.",
   "error.unexpected_crash.next_steps": "Tente atualizar a página. Se não resolver, você ainda pode conseguir usar o Mastodon por meio de um navegador ou app nativo diferente.",
-  "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": "Tente desabilitá-los e atualizar a página. Se isso não ajudar, você ainda poderá usar o Mastodon por meio de um navegador diferente ou de um aplicativo nativo.",
   "errors.unexpected_crash.copy_stacktrace": "Copiar stacktrace para área de transferência",
   "errors.unexpected_crash.report_issue": "Denunciar problema",
   "follow_request.authorize": "Aprovar",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "para desfocar de área de texto de composição/pesquisa",
   "keyboard_shortcuts.up": "para mover para cima na lista",
   "lightbox.close": "Fechar",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Compactar caixa de visualização de imagem",
+  "lightbox.expand": "Expandir caixa de visualização de imagem",
   "lightbox.next": "Próximo",
   "lightbox.previous": "Anterior",
   "lightbox.view_context": "Ver contexto",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Renomear",
   "lists.new.create": "Criar lista",
   "lists.new.title_placeholder": "Nome da lista",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Qualquer usuário seguido",
+  "lists.replies_policy.list_replies": "Membros da lista",
+  "lists.replies_policy.no_replies": "Ninguém",
+  "lists.replies_policy.title": "Mostrar respostas para:",
   "lists.search": "Procurar entre as pessoas que você segue",
   "lists.subheading": "Suas listas",
   "load_pending": "{count, plural, one {# novo item} other {# novos items}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Esconder mídia",
   "missing_indicator.label": "Não encontrado",
   "missing_indicator.sublabel": "Esse recurso não pôde ser encontrado",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Duração",
   "mute_modal.hide_notifications": "Ocultar notificações deste usuário?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Indefinida",
   "navigation_bar.apps": "Aplicativos",
   "navigation_bar.blocks": "Usuários bloqueados",
   "navigation_bar.bookmarks": "Salvos",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Sua enquete terminou",
   "notification.poll": "Uma enquete que você votou terminou",
   "notification.reblog": "{name} boostou seu status",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} acabou de postar",
   "notifications.clear": "Limpar notificações",
   "notifications.clear_confirmation": "Você tem certeza de que deseja limpar todas as suas notificações?",
   "notifications.column_settings.alert": "Notificações no computador",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Boosts:",
   "notifications.column_settings.show": "Mostrar nas colunas",
   "notifications.column_settings.sound": "Tocar som",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Novos toots:",
   "notifications.filter.all": "Tudo",
   "notifications.filter.boosts": "Boosts",
   "notifications.filter.favourites": "Favoritos",
   "notifications.filter.follows": "Seguindo",
   "notifications.filter.mentions": "Menções",
   "notifications.filter.polls": "Resultados de enquete",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Atualizações de pessoas que você segue",
   "notifications.group": "{count} notificações",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Marcar todas as notificações como lidas",
+  "notifications.permission_denied": "Não é possível habilitar as notificações da área de trabalho pois a permissão foi negada.",
+  "notifications.permission_denied_alert": "As notificações da área de trabalho não podem ser habilitdas pois a permissão do navegador foi negada antes",
+  "notifications_permission_banner.enable": "Habilitar notificações da área de trabalho",
+  "notifications_permission_banner.how_to_control": "Para receber notificações quando o Mastodon não estiver aberto, habilite as notificações da área de trabalho. Você pode controlar precisamente quais tipos de interações geram notificações da área de trabalho através do botão {icon} acima uma vez habilitadas.",
+  "notifications_permission_banner.title": "Nunca perca nada",
+  "picture_in_picture.restore": "Colocar de volta",
   "poll.closed": "Fechou",
   "poll.refresh": "Atualizar",
   "poll.total_people": "{count, plural, one {# pessoa} other {# pessoas}}",
@@ -452,23 +452,23 @@
   "units.short.million": "{count} mi",
   "units.short.thousand": "{count} mil",
   "upload_area.title": "Arraste & solte para fazer upload",
-  "upload_button.label": "Adicionar mídia ({formats})",
+  "upload_button.label": "Adicionar mídia",
   "upload_error.limit": "Limite de upload de arquivos excedido.",
   "upload_error.poll": "Não é possível fazer upload de arquivos com enquetes.",
   "upload_form.audio_description": "Descrever para pessoas com deficiência auditiva",
   "upload_form.description": "Descreva para deficientes visuais",
   "upload_form.edit": "Editar",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Alterar miniatura",
   "upload_form.undo": "Excluir",
   "upload_form.video_description": "Descreva para pessoas com deficiência auditiva ou visual",
   "upload_modal.analyzing_picture": "Analisando imagem…",
   "upload_modal.apply": "Aplicar",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Escolher imagem",
   "upload_modal.description_placeholder": "Um pequeno jabuti xereta viu dez cegonhas felizes",
   "upload_modal.detect_text": "Detectar texto da imagem",
   "upload_modal.edit_media": "Editar mídia",
   "upload_modal.hint": "Clique ou arraste o círculo na prévia para escolher o ponto focal que vai estar sempre visível em todas as thumbnails.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Preparando OCR…",
   "upload_modal.preview_label": "Prévia ({ratio})",
   "upload_progress.label": "Fazendo upload...",
   "video.close": "Fechar vídeo",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index 17ab69216..065a6bf57 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -1,38 +1,38 @@
 {
-  "account.account_note_header": "A sua nota para @{name}",
+  "account.account_note_header": "A tua nota para @{name}",
   "account.add_or_remove_from_list": "Adicionar ou remover das listas",
-  "account.badges.bot": "Robô",
+  "account.badges.bot": "Bot",
   "account.badges.group": "Grupo",
   "account.block": "Bloquear @{name}",
   "account.block_domain": "Esconder tudo do domínio {domain}",
-  "account.blocked": "Bloqueado",
-  "account.browse_more_on_origin_server": "Encontre mais no perfil original",
-  "account.cancel_follow_request": "Cancelar pedido de seguidor",
-  "account.direct": "Mensagem directa @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Domínio escondido",
+  "account.blocked": "Bloqueado(a)",
+  "account.browse_more_on_origin_server": "Encontrar mais no perfil original",
+  "account.cancel_follow_request": "Cancelar pedido para seguir",
+  "account.direct": "Enviar mensagem directa para @{name}",
+  "account.disable_notifications": "Parar de me notificar das publicações de @{name}",
+  "account.domain_blocked": "Domínio bloqueado",
   "account.edit_profile": "Editar perfil",
-  "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Atributo no perfil",
+  "account.enable_notifications": "Notificar-me das publicações de @{name}",
+  "account.endorse": "Destacar no perfil",
   "account.follow": "Seguir",
   "account.followers": "Seguidores",
   "account.followers.empty": "Ainda ninguém segue este utilizador.",
   "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
   "account.following_counter": "{count, plural, other {A seguir {counter}}}",
-  "account.follows.empty": "Este utilizador ainda não segue alguém.",
+  "account.follows.empty": "Este utilizador ainda não segue ninguém.",
   "account.follows_you": "Segue-te",
   "account.hide_reblogs": "Esconder partilhas de @{name}",
   "account.last_status": "Última atividade",
   "account.link_verified_on": "A posse deste link foi verificada em {date}",
   "account.locked_info": "O estatuto de privacidade desta conta é fechado. O dono revê manualmente quem a pode seguir.",
-  "account.media": "Media",
+  "account.media": "Média",
   "account.mention": "Mencionar @{name}",
   "account.moved_to": "{name} mudou a sua conta para:",
   "account.mute": "Silenciar @{name}",
   "account.mute_notifications": "Silenciar notificações de @{name}",
   "account.muted": "Silenciada",
   "account.never_active": "Nunca",
-  "account.posts": "Publicações",
+  "account.posts": "Toots",
   "account.posts_with_replies": "Publicações e respostas",
   "account.report": "Denunciar @{name}",
   "account.requested": "A aguardar aprovação. Clique para cancelar o pedido de seguidor",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "Não tens notificações. Interage com outros utilizadores para iniciar uma conversa.",
   "empty_column.public": "Não há nada aqui! Escreve algo publicamente ou segue outros utilizadores para veres aqui os conteúdos públicos",
   "error.unexpected_crash.explanation": "Devido a um erro no nosso código ou a uma compatilidade com o seu navegador, esta página não pôde ser apresentada correctamente.",
-  "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": "Esta página não pôde ser exibida corretamente. Este erro provavelmente é causado por um complemento do navegador ou ferramentas de tradução automática.",
   "error.unexpected_crash.next_steps": "Tente atualizar a página. Se isso não ajudar, pode usar o Mastodon através de um navegador diferente ou uma aplicação nativa.",
-  "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": "Tente desabilitá-los e atualizar a página. Se isso não ajudar, você ainda poderá usar o Mastodon por meio de um navegador diferente ou de um aplicativo nativo.",
   "errors.unexpected_crash.copy_stacktrace": "Copiar a stacktrace para o clipboard",
   "errors.unexpected_crash.report_issue": "Reportar problema",
   "follow_request.authorize": "Autorizar",
@@ -206,9 +206,9 @@
   "introduction.federation.federated.headline": "Federada",
   "introduction.federation.federated.text": "Publicações públicas de outras instâncias do fediverso aparecerão na cronologia federada.",
   "introduction.federation.home.headline": "Início",
-  "introduction.federation.home.text": "As publicações das pessoas que você segue aparecerão na sua coluna de início. Você pode seguir qualquer pessoa em qualquer instância!",
+  "introduction.federation.home.text": "As publicações das pessoas que segues aparecerão na tua coluna de início. Podes seguir qualquer pessoa em qualquer instância!",
   "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Publicações públicas de pessoas na mesma instância que você aparecerão na coluna local.",
+  "introduction.federation.local.text": "Publicações públicas de pessoas na mesma instância que tu aparecerão na coluna local.",
   "introduction.interactions.action": "Terminar o tutorial!",
   "introduction.interactions.favourite.headline": "Favorito",
   "introduction.interactions.favourite.text": "Podes guardar um toot para depois e deixar o autor saber que gostaste dele, marcando-o como favorito.",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "para remover o foco da área de texto/pesquisa",
   "keyboard_shortcuts.up": "para mover para cima na lista",
   "lightbox.close": "Fechar",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Compactar caixa de visualização de imagem",
+  "lightbox.expand": "Expandir caixa de visualização de imagem",
   "lightbox.next": "Próximo",
   "lightbox.previous": "Anterior",
   "lightbox.view_context": "Ver contexto",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Mudar o título",
   "lists.new.create": "Adicionar lista",
   "lists.new.title_placeholder": "Título da nova lista",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Qualquer utilizador seguido",
+  "lists.replies_policy.list_replies": "Membros da lista",
+  "lists.replies_policy.no_replies": "Ninguém",
+  "lists.replies_policy.title": "Mostrar respostas para:",
   "lists.search": "Pesquisa entre as pessoas que segues",
   "lists.subheading": "As tuas listas",
   "load_pending": "{count, plural, one {# novo item} other {# novos itens}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Alternar visibilidade",
   "missing_indicator.label": "Não encontrado",
   "missing_indicator.sublabel": "Este recurso não foi encontrado",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Duração",
   "mute_modal.hide_notifications": "Esconder notificações deste utilizador?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Indefinidamente",
   "navigation_bar.apps": "Aplicações móveis",
   "navigation_bar.blocks": "Utilizadores bloqueados",
   "navigation_bar.bookmarks": "Itens salvos",
@@ -310,10 +310,10 @@
   "notification.own_poll": "A sua votação terminou",
   "notification.poll": "Uma votação em que participaste chegou ao fim",
   "notification.reblog": "{name} partilhou a tua publicação",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} acabou de publicar",
   "notifications.clear": "Limpar notificações",
   "notifications.clear_confirmation": "Queres mesmo limpar todas as notificações?",
-  "notifications.column_settings.alert": "Notificações no computador",
+  "notifications.column_settings.alert": "Notificações no ambiente de trabalho",
   "notifications.column_settings.favourite": "Favoritos:",
   "notifications.column_settings.filter_bar.advanced": "Mostrar todas as categorias",
   "notifications.column_settings.filter_bar.category": "Barra de filtros rápidos",
@@ -326,28 +326,28 @@
   "notifications.column_settings.reblog": "Boosts:",
   "notifications.column_settings.show": "Mostrar na coluna",
   "notifications.column_settings.sound": "Reproduzir som",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Novos toots:",
   "notifications.filter.all": "Todas",
   "notifications.filter.boosts": "Boosts",
   "notifications.filter.favourites": "Favoritos",
   "notifications.filter.follows": "Seguidores",
   "notifications.filter.mentions": "Menções",
   "notifications.filter.polls": "Votações",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Atualizações de pessoas que você segue",
   "notifications.group": "{count} notificações",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Marcar todas as notificações como lidas",
+  "notifications.permission_denied": "Notificações no ambiente de trabalho não estão disponíveis porque a permissão, solicitada pelo navegador, foi recusada anteriormente",
+  "notifications.permission_denied_alert": "Notificações no ambinente de trabalho não podem ser ativadas, pois a permissão do navegador foi recusada anteriormente",
+  "notifications_permission_banner.enable": "Ativar notificações no ambiente de trabalho",
+  "notifications_permission_banner.how_to_control": "Para receber notificações quando o Mastodon não estiver aberto, ative as notificações no ambiente de trabalho. Depois da sua ativação, pode controlar precisamente quais tipos de interações geram notificações, através do botão {icon} acima.",
+  "notifications_permission_banner.title": "Nunca perca nada",
+  "picture_in_picture.restore": "Colocá-lo de volta",
   "poll.closed": "Fechado",
   "poll.refresh": "Recarregar",
   "poll.total_people": "{count, plural, one {# pessoa} other {# pessoas}}",
   "poll.total_votes": "{contar, plural, um {# vote} outro {# votes}}",
   "poll.vote": "Votar",
-  "poll.voted": "Você votou nesta resposta",
+  "poll.voted": "Votaste nesta resposta",
   "poll_button.add_poll": "Adicionar votação",
   "poll_button.remove_poll": "Remover votação",
   "privacy.change": "Ajustar a privacidade da publicação",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}m",
   "upload_area.title": "Arraste e solte para enviar",
-  "upload_button.label": "Adicionar media ({formats})",
+  "upload_button.label": "Adicionar media",
   "upload_error.limit": "Limite máximo do ficheiro a carregar excedido.",
   "upload_error.poll": "Carregamento de ficheiros não é permitido em votações.",
   "upload_form.audio_description": "Descreva para pessoas com diminuição da acuidade auditiva",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Detectar texto na imagem",
   "upload_modal.edit_media": "Editar media",
   "upload_modal.hint": "Clique ou arraste o círculo na pré-visualização para escolher o ponto focal que será sempre visível em todas as miniaturas.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "A preparar OCR…",
   "upload_modal.preview_label": "Pré-visualizar ({ratio})",
   "upload_progress.label": "A enviar...",
   "video.close": "Fechar vídeo",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index b0c5bc4cd..79b9966db 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "Посмотреть их можно в оригинальном профиле",
   "account.cancel_follow_request": "Отменить запрос",
   "account.direct": "Написать @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Отключить уведомления от @{name}",
   "account.domain_blocked": "Домен скрыт",
   "account.edit_profile": "Изменить профиль",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Включить уведомления для @{name}",
   "account.endorse": "Рекомендовать в профиле",
   "account.follow": "Подписаться",
   "account.followers": "Подписаны",
@@ -98,7 +98,7 @@
   "compose_form.poll.switch_to_single": "Переключить в режим выбора одного ответа",
   "compose_form.publish": "Запостить",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Отметить медиафайл как деликатный",
+  "compose_form.sensitive.hide": "Пометить медиафайл как чувствительный",
   "compose_form.sensitive.marked": "Медиафайл отмечен как деликатный",
   "compose_form.sensitive.unmarked": "Медиафайл не отмечен как деликатный",
   "compose_form.spoiler.marked": "Текст скрыт за предупреждением",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "У вас пока нет уведомлений. Взаимодействуйте с другими, чтобы завести разговор.",
   "empty_column.public": "Здесь ничего нет! Опубликуйте что-нибудь или подпишитесь на пользователей с других узлов, чтобы заполнить ленту",
   "error.unexpected_crash.explanation": "Из-за несовместимого браузера или ошибки в нашем коде, эта страница не может быть корректно отображена.",
-  "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": "Эта страница не может быть корректно отображена. Скорее всего, эта ошибка вызвана расширением браузера или инструментом автоматического перевода.",
   "error.unexpected_crash.next_steps": "Попробуйте обновить страницу. Если проблема не исчезает, используйте Mastodon из-под другого браузера или приложения.",
-  "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": "Попробуйте их отключить и перезагрузить страницу. Если это не поможет, вы по-прежнему сможете войти в Mastodon через другой браузер или приложение.",
   "errors.unexpected_crash.copy_stacktrace": "Скопировать диагностическую информацию",
   "errors.unexpected_crash.report_issue": "Сообщить о проблеме",
   "follow_request.authorize": "Авторизовать",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Изменить название",
   "lists.new.create": "Создать список",
   "lists.new.title_placeholder": "Название для нового списка",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Пользователям, на которых вы подписаны",
+  "lists.replies_policy.list_replies": "Пользователям в списке",
+  "lists.replies_policy.no_replies": "Никому",
+  "lists.replies_policy.title": "Показать ответы только:",
   "lists.search": "Искать среди подписок",
   "lists.subheading": "Ваши списки",
   "load_pending": "{count, plural, one {# новый элемент} few {# новых элемента} other {# новых элементов}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Показать/скрыть",
   "missing_indicator.label": "Не найдено",
   "missing_indicator.sublabel": "Запрашиваемый ресурс не найден",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Продолжительность",
   "mute_modal.hide_notifications": "Скрыть уведомления от этого пользователя?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Не определена",
   "navigation_bar.apps": "Мобильные приложения",
   "navigation_bar.blocks": "Список блокировки",
   "navigation_bar.bookmarks": "Закладки",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Ваш опрос закончился",
   "notification.poll": "Опрос, в котором вы приняли участие, завершился",
   "notification.reblog": "{name} продвинул(а) ваш пост",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} только что запостил",
   "notifications.clear": "Очистить уведомления",
   "notifications.clear_confirmation": "Вы уверены, что хотите очистить все уведомления?",
   "notifications.column_settings.alert": "Уведомления в фоне",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Ваш пост продвинули:",
   "notifications.column_settings.show": "Отображать в списке",
   "notifications.column_settings.sound": "Проигрывать звук",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Новые посты:",
   "notifications.filter.all": "Все",
   "notifications.filter.boosts": "Продвижения",
   "notifications.filter.favourites": "Отметки «избранного»",
   "notifications.filter.follows": "Подписки",
   "notifications.filter.mentions": "Упоминания",
   "notifications.filter.polls": "Результаты опросов",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Обновления от людей, на которых вы подписаны",
   "notifications.group": "{count} уведомл.",
-  "notifications.mark_as_read": "Mark every notification as read",
+  "notifications.mark_as_read": "Отмечать все уведомления прочитанными",
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
   "notifications_permission_banner.enable": "Enable desktop notifications",
   "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
   "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "picture_in_picture.restore": "Вернуть обратно",
   "poll.closed": "Завершён",
   "poll.refresh": "Обновить",
   "poll.total_people": "{count, plural, one {# человек} few {# человека} many {# человек} other {# человек}}",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Найти текст на картинке",
   "upload_modal.edit_media": "Изменить файл",
   "upload_modal.hint": "Нажмите и перетащите круг в предпросмотре в точку фокуса, которая всегда будет видна на эскизах.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Подготовка распознования…",
   "upload_modal.preview_label": "Предпросмотр ({ratio})",
   "upload_progress.label": "Загрузка...",
   "video.close": "Закрыть видео",
diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json
new file mode 100644
index 000000000..bc8463d59
--- /dev/null
+++ b/app/javascript/mastodon/locales/sa.json
@@ -0,0 +1,484 @@
+{
+  "account.account_note_header": "टीका",
+  "account.add_or_remove_from_list": "युज्यतां / नश्यतां सूच्याः",
+  "account.badges.bot": "यन्त्रम्",
+  "account.badges.group": "समूहः",
+  "account.block": "अवरुध्यताम् @{name}",
+  "account.block_domain": "अवरुध्यतां प्रदेशः {domain}",
+  "account.blocked": "अवरुद्धम्",
+  "account.browse_more_on_origin_server": "अधिकं मूलव्यक्तिगतविवरणे दृश्यताम्",
+  "account.cancel_follow_request": "अनुसरणानुरोधो नश्यताम्",
+  "account.direct": "प्रत्यक्षसन्देशः @{name}",
+  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.domain_blocked": "प्रदेशो निषिद्धः",
+  "account.edit_profile": "सम्पाद्यताम्",
+  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.endorse": "व्यक्तिगतविवरणे वैशिष्ट्यम्",
+  "account.follow": "अनुस्रियताम्",
+  "account.followers": "अनुसर्तारः",
+  "account.followers.empty": "नाऽनुसर्तारो वर्तन्ते",
+  "account.followers_counter": "{count, plural, one {{counter} अनुसर्ता} two {{counter} अनुसर्तारौ} other {{counter} अनुसर्तारः}}",
+  "account.following_counter": "{count, plural, one {{counter} अनुसृतः} two {{counter} अनुसृतौ} other {{counter} अनुसृताः}}",
+  "account.follows.empty": "न कोऽप्यनुसृतो वर्तते",
+  "account.follows_you": "त्वामनुसरति",
+  "account.hide_reblogs": "@{name} मित्रस्य प्रकाशनानि छिद्यन्ताम्",
+  "account.last_status": "गतसक्रियता",
+  "account.link_verified_on": "अन्तर्जालस्थानस्यास्य स्वामित्वं परीक्षितमासीत् {date} दिने",
+  "account.locked_info": "एतस्या लेखायाः गुह्यता \"निषिद्ध\"इति वर्तते । स्वामी स्वयञ्चिनोति कोऽनुसर्ता भवितुमर्हतीति ।",
+  "account.media": "सामग्री",
+  "account.mention": "उल्लिख्यताम् @{name}",
+  "account.moved_to": "{name} अत्र प्रस्थापितम्:",
+  "account.mute": "निःशब्दम् @{name}",
+  "account.mute_notifications": "@{name} सूचनाः निष्क्रियन्ताम्",
+  "account.muted": "निःशब्दम्",
+  "account.never_active": "नैव कदापि",
+  "account.posts": "दौत्यानि",
+  "account.posts_with_replies": "दौत्यानि प्रत्युत्तराणि च",
+  "account.report": "आविद्यताम् @{name}",
+  "account.requested": "स्वीकृतिः प्रतीक्ष्यते । नश्यतामित्यस्मिन्नुद्यतां निराकर्तुम् ।",
+  "account.share": "@{name} मित्रस्य विवरणं विभाज्यताम्",
+  "account.show_reblogs": "@{name} मित्रस्य प्रकाशनानि दृश्यन्ताम्",
+  "account.statuses_counter": "{count, plural, one {{counter} दौत्यम्} two {{counter} दौत्ये} other {{counter} दौत्यानि}}",
+  "account.unblock": "निषेधता नश्यताम् @{name}",
+  "account.unblock_domain": "प्रदेशनिषेधता नश्यताम् {domain}",
+  "account.unendorse": "व्यक्तिगतविवरणे मा प्रकाश्यताम्",
+  "account.unfollow": "नश्यतामनुसरणम्",
+  "account.unmute": "सशब्दम् @{name}",
+  "account.unmute_notifications": "@{name} सूचनाः सक्रियन्ताम्",
+  "account_note.placeholder": "टीकायोजनार्थं नुद्यताम्",
+  "alert.rate_limited.message": "{retry_time, time, medium}. समयात् पश्चात् प्रयतताम्",
+  "alert.rate_limited.title": "सीमितगतिः",
+  "alert.unexpected.message": "अनपेक्षितदोषो जातः ।",
+  "alert.unexpected.title": "अरे !",
+  "announcement.announcement": "उद्घोषणा",
+  "autosuggest_hashtag.per_week": "{count} प्रतिसप्ताहे",
+  "boost_modal.combo": "{combo} अत्र स्प्रष्टुं शक्यते, त्यक्तुमेतमन्यस्मिन् समये",
+  "bundle_column_error.body": "विषयस्याऽऽरोपणे कश्चिद्दोषो जातः",
+  "bundle_column_error.retry": "पुनः यतताम्",
+  "bundle_column_error.title": "जाले दोषः",
+  "bundle_modal_error.close": "पिधीयताम्",
+  "bundle_modal_error.message": "आरोपणे कश्चन दोषो जातः",
+  "bundle_modal_error.retry": "पुनः यतताम्",
+  "column.blocks": "निषिद्धभोक्तारः",
+  "column.bookmarks": "पुटचिह्नानि",
+  "column.community": "स्थानीयसमयतालिका",
+  "column.direct": "प्रत्यक्षसन्देशाः",
+  "column.directory": "व्यक्तित्वानि दृश्यन्ताम्",
+  "column.domain_blocks": "निषिद्धप्रदेशाः",
+  "column.favourites": "प्रियाः",
+  "column.follow_requests": "अनुसरणानुरोधाः",
+  "column.home": "गृहम्",
+  "column.lists": "सूचयः",
+  "column.mutes": "निःशब्दाः भोक्तारः",
+  "column.notifications": "सूचनाः",
+  "column.pins": "कीलितदौत्यानि",
+  "column.public": "सङ्घीयसमयतालिका",
+  "column_back_button.label": "पूर्वम्",
+  "column_header.hide_settings": "विन्यासाः छाद्यन्ताम्",
+  "column_header.moveLeft_settings": "स्तम्भो वामी क्रियताम्",
+  "column_header.moveRight_settings": "स्तम्भो दक्षिणी क्रियताम्",
+  "column_header.pin": "कीलयतु",
+  "column_header.show_settings": "विन्यासाः दृश्यन्ताम्",
+  "column_header.unpin": "कीलनं नाशय",
+  "column_subheading.settings": "विन्यासाः",
+  "community.column_settings.local_only": "केवलं स्थानीयम्",
+  "community.column_settings.media_only": "सामग्री केवलम्",
+  "community.column_settings.remote_only": "दर्गमः केवलम्",
+  "compose_form.direct_message_warning": "दौत्यमेतत्केवलमुल्लेखितजनानां कृते वर्तते",
+  "compose_form.direct_message_warning_learn_more": "अधिकं ज्ञायताम्",
+  "compose_form.hashtag_warning": "न कस्मिन्नपि प्रचलितवस्तुषु सूचितमिदं दौत्यम् । केवलं सार्वजनिकदौत्यानि प्रचलितवस्तुचिह्नेन अन्वेषयितुं शक्यते ।",
+  "compose_form.lock_disclaimer": "तव लेखा न प्रवेष्टुमशक्या {locked} । कोऽप्यनुसर्ता ते केवलमनुसर्तृृणां कृते स्थितानि दौत्यानि द्रष्टुं शक्नोति ।",
+  "compose_form.lock_disclaimer.lock": "अवरुद्धः",
+  "compose_form.placeholder": "मनसि ते किमस्ति?",
+  "compose_form.poll.add_option": "मतमपरं युज्यताम्",
+  "compose_form.poll.duration": "मतदान-समयावधिः",
+  "compose_form.poll.option_placeholder": "मतम् {number}",
+  "compose_form.poll.remove_option": "मतमेतन्नश्यताम्",
+  "compose_form.poll.switch_to_multiple": "मतदानं परिवर्तयित्वा बहुवैकल्पिकमतदानं क्रियताम्",
+  "compose_form.poll.switch_to_single": "मतदानं परिवर्तयित्वा निर्विकल्पमतदानं क्रियताम्",
+  "compose_form.publish": "दौत्यम्",
+  "compose_form.publish_loud": "{publish}!",
+  "compose_form.sensitive.hide": "संवेदनशीलसामग्रीत्यङ्यताम्",
+  "compose_form.sensitive.marked": "संवेदनशीलसामग्रीत्यङ्कितम्",
+  "compose_form.sensitive.unmarked": "संवेदनशीलसामग्रीति नाङ्कितम्",
+  "compose_form.spoiler.marked": "प्रच्छान्नाक्षरं विद्यते",
+  "compose_form.spoiler.unmarked": "अप्रच्छन्नाक्षरं विद्यते",
+  "compose_form.spoiler_placeholder": "प्रत्यादेशस्ते लिख्यताम्",
+  "confirmation_modal.cancel": "नश्यताम्",
+  "confirmations.block.block_and_report": "अवरुध्य आविद्यताम्",
+  "confirmations.block.confirm": "निषेधः",
+  "confirmations.block.message": "निश्चयेनाऽवरोधो विधेयः {name}?",
+  "confirmations.delete.confirm": "नश्यताम्",
+  "confirmations.delete.message": "निश्चयेन दौत्यमिदं नश्यताम्?",
+  "confirmations.delete_list.confirm": "नश्यताम्",
+  "confirmations.delete_list.message": "सूचिरियं निश्चयेन स्थायित्वेन च नश्यताम् वा?",
+  "confirmations.domain_block.confirm": "निषिद्धः प्रदेशः क्रियताम्",
+  "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.reply.confirm": "उत्तरम्",
+  "confirmations.reply.message": "प्रत्युत्तरमिदानीं लिख्यते तर्हि पूर्वलिखितसन्देशं विनश्य पुनः लिख्यते । निश्चयेनैवं कर्तव्यम् ?",
+  "confirmations.unfollow.confirm": "अनुसरणं नश्यताम्",
+  "confirmations.unfollow.message": "निश्चयेनैवाऽनुसरणं नश्यतां {name} मित्रस्य?",
+  "conversation.delete": "वार्तालापो नश्यताम्",
+  "conversation.mark_as_read": "पठितमित्यङ्क्यताम्",
+  "conversation.open": "वार्तालापो दृश्यताम्",
+  "conversation.with": "{names} जनैः साकम्",
+  "directory.federated": "सुपरिचितं Fediverse इति स्थानात्",
+  "directory.local": "{domain} प्रदेशात्केवलम्",
+  "directory.new_arrivals": "नवामगमाः",
+  "directory.recently_active": "नातिपूर्वं सक्रियः",
+  "embed.instructions": "दौत्यमेतत् स्वीयजालस्थाने स्थापयितुमधो लिखितो विध्यादेशो युज्यताम्",
+  "embed.preview": "अत्रैवं दृश्यते तत्:",
+  "emoji_button.activity": "आचरणम्",
+  "emoji_button.custom": "स्वीयानुकूलम्",
+  "emoji_button.flags": "ध्वजाः",
+  "emoji_button.food": "भोजनं पेयञ्च",
+  "emoji_button.label": "भावचिह्नं युज्यताम्",
+  "emoji_button.nature": "प्रकृतिः",
+  "emoji_button.not_found": "न भावचिह्नानि (╯°□°)╯︵ ┻━┻",
+  "emoji_button.objects": "वस्तूनि",
+  "emoji_button.people": "जनाः",
+  "emoji_button.recent": "आधिक्येन प्रयुक्तम्",
+  "emoji_button.search": "अन्विष्यताम्...",
+  "emoji_button.search_results": "अन्वेषणपरिणामाः",
+  "emoji_button.symbols": "चिह्नानि",
+  "emoji_button.travel": "यात्रा च स्थानानि",
+  "empty_column.account_timeline": "न दौत्यान्यत्र",
+  "empty_column.account_unavailable": "व्यक्तित्वं न प्राप्यते",
+  "empty_column.blocks": "नैकोऽप्युपभोक्ता निषिद्धो वर्तते",
+  "empty_column.bookmarked_statuses": "नैकमपि पुटचिह्नयुक्तदौत्यानि सन्ति । यदा भविष्यति तदत्र दृश्यते ।",
+  "empty_column.community": "स्थानीयसमयतालिका रिक्ता । सार्वजनिकत्वेनाऽत्र किमपि लिख्यताम् ।",
+  "empty_column.direct": "नैकोऽपि प्रत्यक्षसन्देशो वर्तते । यदा प्रेष्यते वा प्राप्यतेऽत्र दृश्यते",
+  "empty_column.domain_blocks": "न निषिद्धप्रदेशाः सन्ति ।",
+  "empty_column.favourited_statuses": "न प्रियदौत्यानि सन्ति । यदा प्रीतिरित्यङ्क्यतेऽत्र दृश्यते ।",
+  "empty_column.favourites": "नैतद्दौत्यं प्रियमस्ति कस्मै अपि । यदा कस्मै प्रियं भवति तदाऽत्र दृश्यते ।",
+  "empty_column.follow_requests": "नाऽनुसरणानुरोधस्ते वर्तते । यदैको प्राप्यतेऽत्र दृश्यते ।",
+  "empty_column.hashtag": "नाऽस्मिन् प्रचलितवस्तुचिह्ने किमपि ।",
+  "empty_column.home": "गृहसमयतालिका रिक्ताऽस्ति । गम्यतां {public} वाऽन्वेषणैः प्रारभ्यतां मेलनं क्रियताञ्च ।",
+  "empty_column.home.public_timeline": "सार्वजनिकसमयतालिका",
+  "empty_column.list": "न किमपि वर्तते सूच्यामस्याम् । यदा सूच्याः सदस्या नवदौत्यानि प्रकटीकुर्वन्ति तदाऽत्राऽऽयान्ति ।",
+  "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
+  "empty_column.mutes": "You haven't muted any users yet.",
+  "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
+  "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
+  "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
+  "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
+  "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+  "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+  "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
+  "errors.unexpected_crash.report_issue": "Report issue",
+  "follow_request.authorize": "Authorize",
+  "follow_request.reject": "Reject",
+  "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
+  "generic.saved": "Saved",
+  "getting_started.developers": "Developers",
+  "getting_started.directory": "Profile directory",
+  "getting_started.documentation": "Documentation",
+  "getting_started.heading": "Getting started",
+  "getting_started.invite": "Invite people",
+  "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
+  "getting_started.security": "Security",
+  "getting_started.terms": "Terms of service",
+  "hashtag.column_header.tag_mode.all": "and {additional}",
+  "hashtag.column_header.tag_mode.any": "or {additional}",
+  "hashtag.column_header.tag_mode.none": "without {additional}",
+  "hashtag.column_settings.select.no_options_message": "No suggestions found",
+  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+  "hashtag.column_settings.tag_mode.all": "All of these",
+  "hashtag.column_settings.tag_mode.any": "Any of these",
+  "hashtag.column_settings.tag_mode.none": "None of these",
+  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "home.column_settings.basic": "Basic",
+  "home.column_settings.show_reblogs": "Show boosts",
+  "home.column_settings.show_replies": "Show replies",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
+  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+  "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+  "introduction.federation.action": "Next",
+  "introduction.federation.federated.headline": "Federated",
+  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+  "introduction.federation.home.headline": "Home",
+  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+  "introduction.federation.local.headline": "Local",
+  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
+  "introduction.interactions.action": "Finish toot-orial!",
+  "introduction.interactions.favourite.headline": "Favourite",
+  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
+  "introduction.interactions.reblog.headline": "Boost",
+  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
+  "introduction.interactions.reply.headline": "Reply",
+  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
+  "introduction.welcome.action": "Let's go!",
+  "introduction.welcome.headline": "First steps",
+  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
+  "keyboard_shortcuts.back": "to navigate back",
+  "keyboard_shortcuts.blocked": "to open blocked users list",
+  "keyboard_shortcuts.boost": "to boost",
+  "keyboard_shortcuts.column": "to focus a status in one of the columns",
+  "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.description": "Description",
+  "keyboard_shortcuts.direct": "to open direct messages column",
+  "keyboard_shortcuts.down": "to move down in the list",
+  "keyboard_shortcuts.enter": "to open status",
+  "keyboard_shortcuts.favourite": "to favourite",
+  "keyboard_shortcuts.favourites": "to open favourites list",
+  "keyboard_shortcuts.federated": "to open federated timeline",
+  "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+  "keyboard_shortcuts.home": "to open home timeline",
+  "keyboard_shortcuts.hotkey": "Hotkey",
+  "keyboard_shortcuts.legend": "to display this legend",
+  "keyboard_shortcuts.local": "to open local timeline",
+  "keyboard_shortcuts.mention": "to mention author",
+  "keyboard_shortcuts.muted": "to open muted users list",
+  "keyboard_shortcuts.my_profile": "to open your profile",
+  "keyboard_shortcuts.notifications": "to open notifications column",
+  "keyboard_shortcuts.open_media": "to open media",
+  "keyboard_shortcuts.pinned": "to open pinned toots list",
+  "keyboard_shortcuts.profile": "to open author's profile",
+  "keyboard_shortcuts.reply": "to reply",
+  "keyboard_shortcuts.requests": "to open follow requests list",
+  "keyboard_shortcuts.search": "to focus search",
+  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.start": "to open \"get started\" column",
+  "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
+  "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
+  "keyboard_shortcuts.toot": "to start a brand new toot",
+  "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+  "keyboard_shortcuts.up": "to move up in the list",
+  "lightbox.close": "Close",
+  "lightbox.compress": "Compress image view box",
+  "lightbox.expand": "Expand image view box",
+  "lightbox.next": "Next",
+  "lightbox.previous": "Previous",
+  "lightbox.view_context": "View context",
+  "lists.account.add": "Add to list",
+  "lists.account.remove": "Remove from list",
+  "lists.delete": "Delete list",
+  "lists.edit": "Edit list",
+  "lists.edit.submit": "Change title",
+  "lists.new.create": "Add list",
+  "lists.new.title_placeholder": "New list title",
+  "lists.replies_policy.all_replies": "Any followed user",
+  "lists.replies_policy.list_replies": "Members of the list",
+  "lists.replies_policy.no_replies": "No one",
+  "lists.replies_policy.title": "Show replies to:",
+  "lists.search": "Search among people you follow",
+  "lists.subheading": "Your lists",
+  "load_pending": "{count, plural, one {# new item} other {# new items}}",
+  "loading_indicator.label": "Loading...",
+  "media_gallery.toggle_visible": "Hide {number, plural, one {image} other {images}}",
+  "missing_indicator.label": "Not found",
+  "missing_indicator.sublabel": "This resource could not be found",
+  "mute_modal.duration": "Duration",
+  "mute_modal.hide_notifications": "Hide notifications from this user?",
+  "mute_modal.indefinite": "Indefinite",
+  "navigation_bar.apps": "Mobile apps",
+  "navigation_bar.blocks": "Blocked users",
+  "navigation_bar.bookmarks": "Bookmarks",
+  "navigation_bar.community_timeline": "Local timeline",
+  "navigation_bar.compose": "Compose new toot",
+  "navigation_bar.direct": "Direct messages",
+  "navigation_bar.discover": "Discover",
+  "navigation_bar.domain_blocks": "Hidden domains",
+  "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.favourites": "Favourites",
+  "navigation_bar.filters": "Muted words",
+  "navigation_bar.follow_requests": "Follow requests",
+  "navigation_bar.follows_and_followers": "Follows and followers",
+  "navigation_bar.info": "About this server",
+  "navigation_bar.keyboard_shortcuts": "Hotkeys",
+  "navigation_bar.lists": "Lists",
+  "navigation_bar.logout": "Logout",
+  "navigation_bar.mutes": "Muted users",
+  "navigation_bar.personal": "Personal",
+  "navigation_bar.pins": "Pinned toots",
+  "navigation_bar.preferences": "Preferences",
+  "navigation_bar.public_timeline": "Federated timeline",
+  "navigation_bar.security": "Security",
+  "notification.favourite": "{name} favourited your status",
+  "notification.follow": "{name} followed you",
+  "notification.follow_request": "{name} has requested to follow you",
+  "notification.mention": "{name} mentioned you",
+  "notification.own_poll": "Your poll has ended",
+  "notification.poll": "A poll you have voted in has ended",
+  "notification.reblog": "{name} boosted your status",
+  "notification.status": "{name} just posted",
+  "notifications.clear": "Clear notifications",
+  "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
+  "notifications.column_settings.alert": "Desktop notifications",
+  "notifications.column_settings.favourite": "Favourites:",
+  "notifications.column_settings.filter_bar.advanced": "Display all categories",
+  "notifications.column_settings.filter_bar.category": "Quick filter bar",
+  "notifications.column_settings.filter_bar.show": "Show",
+  "notifications.column_settings.follow": "New followers:",
+  "notifications.column_settings.follow_request": "New follow requests:",
+  "notifications.column_settings.mention": "Mentions:",
+  "notifications.column_settings.poll": "Poll results:",
+  "notifications.column_settings.push": "Push notifications",
+  "notifications.column_settings.reblog": "Boosts:",
+  "notifications.column_settings.show": "Show in column",
+  "notifications.column_settings.sound": "Play sound",
+  "notifications.column_settings.status": "New toots:",
+  "notifications.filter.all": "All",
+  "notifications.filter.boosts": "Boosts",
+  "notifications.filter.favourites": "Favourites",
+  "notifications.filter.follows": "Follows",
+  "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
+  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.group": "{count} notifications",
+  "notifications.mark_as_read": "Mark every notification as read",
+  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
+  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
+  "notifications_permission_banner.enable": "Enable desktop notifications",
+  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
+  "notifications_permission_banner.title": "Never miss a thing",
+  "picture_in_picture.restore": "Put it back",
+  "poll.closed": "Closed",
+  "poll.refresh": "Refresh",
+  "poll.total_people": "{count, plural, one {# person} other {# people}}",
+  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+  "poll.vote": "Vote",
+  "poll.voted": "You voted for this answer",
+  "poll_button.add_poll": "Add a poll",
+  "poll_button.remove_poll": "Remove poll",
+  "privacy.change": "Adjust status privacy",
+  "privacy.direct.long": "Visible for mentioned users only",
+  "privacy.direct.short": "Direct",
+  "privacy.private.long": "Visible for followers only",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.short": "Public",
+  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.short": "Unlisted",
+  "refresh": "Refresh",
+  "regeneration_indicator.label": "Loading…",
+  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+  "relative_time.days": "{number}d",
+  "relative_time.hours": "{number}h",
+  "relative_time.just_now": "now",
+  "relative_time.minutes": "{number}m",
+  "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
+  "reply_indicator.cancel": "Cancel",
+  "report.forward": "Forward to {target}",
+  "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
+  "report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
+  "report.placeholder": "Additional comments",
+  "report.submit": "Submit",
+  "report.target": "Report {target}",
+  "search.placeholder": "Search",
+  "search_popout.search_format": "Advanced search format",
+  "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+  "search_popout.tips.hashtag": "hashtag",
+  "search_popout.tips.status": "status",
+  "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+  "search_popout.tips.user": "user",
+  "search_results.accounts": "People",
+  "search_results.hashtags": "Hashtags",
+  "search_results.statuses": "Toots",
+  "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
+  "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
+  "status.admin_account": "Open moderation interface for @{name}",
+  "status.admin_status": "Open this status in the moderation interface",
+  "status.block": "Block @{name}",
+  "status.bookmark": "Bookmark",
+  "status.cancel_reblog_private": "Unboost",
+  "status.cannot_reblog": "This post cannot be boosted",
+  "status.copy": "Copy link to status",
+  "status.delete": "Delete",
+  "status.detailed_status": "Detailed conversation view",
+  "status.direct": "Direct message @{name}",
+  "status.embed": "Embed",
+  "status.favourite": "Favourite",
+  "status.filtered": "Filtered",
+  "status.load_more": "Load more",
+  "status.media_hidden": "Media hidden",
+  "status.mention": "Mention @{name}",
+  "status.more": "More",
+  "status.mute": "Mute @{name}",
+  "status.mute_conversation": "Mute conversation",
+  "status.open": "Expand this status",
+  "status.pin": "Pin on profile",
+  "status.pinned": "Pinned toot",
+  "status.read_more": "Read more",
+  "status.reblog": "Boost",
+  "status.reblog_private": "Boost with original visibility",
+  "status.reblogged_by": "{name} boosted",
+  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
+  "status.redraft": "Delete & re-draft",
+  "status.remove_bookmark": "Remove bookmark",
+  "status.reply": "Reply",
+  "status.replyAll": "Reply to thread",
+  "status.report": "Report @{name}",
+  "status.sensitive_warning": "Sensitive content",
+  "status.share": "Share",
+  "status.show_less": "Show less",
+  "status.show_less_all": "Show less for all",
+  "status.show_more": "Show more",
+  "status.show_more_all": "Show more for all",
+  "status.show_thread": "Show thread",
+  "status.uncached_media_warning": "Not available",
+  "status.unmute_conversation": "Unmute conversation",
+  "status.unpin": "Unpin from profile",
+  "suggestions.dismiss": "Dismiss suggestion",
+  "suggestions.header": "You might be interested in…",
+  "tabs_bar.federated_timeline": "Federated",
+  "tabs_bar.home": "Home",
+  "tabs_bar.local_timeline": "Local",
+  "tabs_bar.notifications": "Notifications",
+  "tabs_bar.search": "Search",
+  "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+  "time_remaining.moments": "Moments remaining",
+  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
+  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
+  "timeline_hint.resources.followers": "Followers",
+  "timeline_hint.resources.follows": "Follows",
+  "timeline_hint.resources.statuses": "Older toots",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "trends.trending_now": "Trending now",
+  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
+  "units.short.billion": "{count}B",
+  "units.short.million": "{count}M",
+  "units.short.thousand": "{count}K",
+  "upload_area.title": "Drag & drop to upload",
+  "upload_button.label": "Add images, a video or an audio file",
+  "upload_error.limit": "File upload limit exceeded.",
+  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_form.audio_description": "Describe for people with hearing loss",
+  "upload_form.description": "Describe for the visually impaired",
+  "upload_form.edit": "Edit",
+  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.undo": "Delete",
+  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+  "upload_modal.analyzing_picture": "Analyzing picture…",
+  "upload_modal.apply": "Apply",
+  "upload_modal.choose_image": "Choose image",
+  "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
+  "upload_modal.detect_text": "Detect text from picture",
+  "upload_modal.edit_media": "Edit media",
+  "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
+  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preview_label": "Preview ({ratio})",
+  "upload_progress.label": "Uploading...",
+  "video.close": "Close video",
+  "video.download": "Download file",
+  "video.exit_fullscreen": "Exit full screen",
+  "video.expand": "Expand video",
+  "video.fullscreen": "Full screen",
+  "video.hide": "Hide video",
+  "video.mute": "Mute sound",
+  "video.pause": "Pause",
+  "video.play": "Play",
+  "video.unmute": "Unmute sound"
+}
diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json
index 2e9ad8a8f..055a52cab 100644
--- a/app/javascript/mastodon/locales/sc.json
+++ b/app/javascript/mastodon/locales/sc.json
@@ -1,5 +1,5 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "Nota",
   "account.add_or_remove_from_list": "Agiunghe o boga dae is listas",
   "account.badges.bot": "Bot",
   "account.badges.group": "Grupu",
@@ -18,7 +18,7 @@
   "account.followers": "Sighiduras",
   "account.followers.empty": "Nemos sighit ancora custa persone.",
   "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.following_counter": "{count, plural, one {{counter} Sighidu} other {{counter} Sighidos}}",
   "account.follows.empty": "Custa persone non sighit ancora a nemos.",
   "account.follows_you": "Ti sighit",
   "account.hide_reblogs": "Cua is cumpartziduras de @{name}",
@@ -60,7 +60,7 @@
   "bundle_modal_error.message": "Faddina in su carrigamentu de custu cumponente.",
   "bundle_modal_error.retry": "Torra·bi a proare",
   "column.blocks": "Persones blocadas",
-  "column.bookmarks": "Marcadores",
+  "column.bookmarks": "Sinnalibros",
   "column.community": "Lìnia de tempus locale",
   "column.direct": "Messàgios diretos",
   "column.directory": "Nàviga in is profilos",
@@ -248,7 +248,7 @@
   "keyboard_shortcuts.search": "pro atzentrare sa chirca",
   "keyboard_shortcuts.spoilers": "to show/hide CW field",
   "keyboard_shortcuts.start": "pro abèrrere sa colunna \"Cumintza\"",
-  "keyboard_shortcuts.toggle_hidden": "pro ammustrare o cuare testu de is CW",
+  "keyboard_shortcuts.toggle_hidden": "pro ammustrare o cuare testu de is AC",
   "keyboard_shortcuts.toggle_sensitivity": "pro ammustrare o cuare mèdias",
   "keyboard_shortcuts.toot": "pro cumintzare a iscrìere unu tut nou",
   "keyboard_shortcuts.unfocus": "pro essire de s'àrea de cumpositzione de testu o de chirca",
@@ -282,7 +282,7 @@
   "mute_modal.indefinite": "Indefinite",
   "navigation_bar.apps": "Aplicatziones mòbiles",
   "navigation_bar.blocks": "Persones blocadas",
-  "navigation_bar.bookmarks": "Marcadores",
+  "navigation_bar.bookmarks": "Sinnalibros",
   "navigation_bar.community_timeline": "Lìnia de tempus locale",
   "navigation_bar.compose": "Cumpone unu tut nou",
   "navigation_bar.direct": "Messàgios diretos",
@@ -363,7 +363,7 @@
   "regeneration_indicator.label": "Carrighende…",
   "regeneration_indicator.sublabel": "Preparende sa lìnia de tempus printzipale tua.",
   "relative_time.days": "{number}d",
-  "relative_time.hours": "{number}h",
+  "relative_time.hours": "{number}o",
   "relative_time.just_now": "immoe",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
@@ -413,7 +413,7 @@
   "status.reblog": "Cumpartzi",
   "status.reblog_private": "Cumpartzi cun is utentes originales",
   "status.reblogged_by": "{name} at cumpartzidu",
-  "status.reblogs.empty": "No one has boosted this toot yet. Cando calicunu dd'at a fàghere, at a èssere ammustradu inoghe.",
+  "status.reblogs.empty": "Nemos at ancora cumpartzidu custu tut. Cando calicunu dd'at a fàghere, at a èssere ammustradu inoghe.",
   "status.redraft": "Cantzella e torra a iscrìere",
   "status.remove_bookmark": "Boga su marcadore",
   "status.reply": "Risponde",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Traga pro carrigare",
-  "upload_button.label": "Agiunghe mèdias ({formats})",
+  "upload_button.label": "Agiunghe mèdias",
   "upload_error.limit": "Lìmite de càrriga de archìvios barigadu.",
   "upload_error.poll": "Non si permitit s'imbiu de archìvios in is sondàgios.",
   "upload_form.audio_description": "Descritzione pro persones cun pèrdida auditiva",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 6e3e2eef5..cf8d3e6b1 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -45,7 +45,7 @@
   "account.unfollow": "Prestaň následovať",
   "account.unmute": "Prestaň ignorovať @{name}",
   "account.unmute_notifications": "Zruš stĺmenie oboznámení od @{name}",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "Klikni pre vloženie poznámky",
   "alert.rate_limited.message": "Prosím, skús to znova za {retry_time, time, medium}.",
   "alert.rate_limited.title": "Tempo obmedzené",
   "alert.unexpected.message": "Vyskytla sa nečakaná chyba.",
@@ -81,7 +81,7 @@
   "column_header.show_settings": "Ukáž nastavenia",
   "column_header.unpin": "Odopni",
   "column_subheading.settings": "Nastavenia",
-  "community.column_settings.local_only": "Local only",
+  "community.column_settings.local_only": "Iba miestna",
   "community.column_settings.media_only": "Iba médiá",
   "community.column_settings.remote_only": "Remote only",
   "compose_form.direct_message_warning": "Tento príspevok bude boslaný iba spomenutým užívateľom.",
@@ -176,7 +176,7 @@
   "follow_request.authorize": "Povoľ prístup",
   "follow_request.reject": "Odmietni",
   "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
-  "generic.saved": "Saved",
+  "generic.saved": "Uložené",
   "getting_started.developers": "Vývojári",
   "getting_started.directory": "Zoznam profilov",
   "getting_started.documentation": "Dokumentácia",
@@ -442,9 +442,9 @@
   "time_remaining.moments": "Ostáva už iba chviľka",
   "time_remaining.seconds": "Ostáva {number, plural, one {# sekunda} few {# sekúnd} many {# sekúnd} other {# sekúnd}}",
   "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
+  "timeline_hint.resources.followers": "Sledujúci",
+  "timeline_hint.resources.follows": "Následuje",
+  "timeline_hint.resources.statuses": "Staršie príspevky",
   "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
   "trends.trending_now": "Teraz populárne",
   "ui.beforeunload": "Čo máš rozpísané sa stratí, ak opustíš Mastodon.",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index b73bfb322..dd25cbc03 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Za pošiljanje povlecite in spustite",
-  "upload_button.label": "Dodaj medije ({formats})",
+  "upload_button.label": "Dodaj medije",
   "upload_error.limit": "Omejitev prenosa datoteke je presežena.",
   "upload_error.poll": "Prenos datoteke z anketami ni dovoljen.",
   "upload_form.audio_description": "Describe for people with hearing loss",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index eae860664..63feac7ff 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "Shfletoni më tepër rreth profilit origjinal",
   "account.cancel_follow_request": "Anulo kërkesën e ndjekjes",
   "account.direct": "Mesazh i drejtpërdrejtë për @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Resht së njoftuari mua, kur poston @{name}",
   "account.domain_blocked": "Përkatësia u bllokua",
   "account.edit_profile": "Përpunoni profilin",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "Njoftomë, kur poston @{name}",
   "account.endorse": "Pasqyrojeni në profil",
   "account.follow": "Ndiqeni",
   "account.followers": "Ndjekës",
@@ -50,7 +50,7 @@
   "alert.rate_limited.title": "Shpejtësi e kufizuar",
   "alert.unexpected.message": "Ndodhi një gabim të papritur.",
   "alert.unexpected.title": "Hëm!",
-  "announcement.announcement": "Njoftime",
+  "announcement.announcement": "Njoftim",
   "autosuggest_hashtag.per_week": "{count} për javë",
   "boost_modal.combo": "Mund të shtypni {combo}, që kjo të anashkalohet herës tjetër",
   "bundle_column_error.body": "Diç shkoi ters teksa ngarkohej ky përbërës.",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "Ende s’keni ndonjë njoftim. Ndërveproni me të tjerët që të nisë biseda.",
   "empty_column.public": "S’ka gjë këtu! Shkruani diçka publikisht, ose ndiqni dorazi përdorues prej instancash të tjera, që ta mbushni këtë zonë",
   "error.unexpected_crash.explanation": "Për shkak të një të mete në kodin tonë ose të një problemi përputhshmërie të shfletuesit, kjo faqe s’mund të shfaqet saktë.",
-  "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": "Kjo faqe s’u shfaq dot saktë. Ky gabim ka gjasa të jetë shkaktuar nga një shtesë shfletuesi ose një mjet përkthimi të automatizuar.",
   "error.unexpected_crash.next_steps": "Provoni të freskoni faqen. Nëse kjo s’bën punë, mundeni ende të jeni në gjendje të përdorni Mastodon-in që nga një shfletues tjetër ose nga ndonjë aplikacion origjinal prej projektit.",
-  "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": "Provoni t’i çaktivizoni dhe të rifreskoni faqen. Nëse kjo s’bën punë, mundeni prapë të jeni në gjendje të përdorni Mastodon-in përmes një shfletuesi tjetër, apo një aplikacioni prej Mastodon-it.",
   "errors.unexpected_crash.copy_stacktrace": "Kopjo stacktrace-in në të papastër",
   "errors.unexpected_crash.report_issue": "Raportoni problemin",
   "follow_request.authorize": "Autorizoje",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "për heqjen e fokusit nga fusha e hartimit të mesazheve apo kërkimeve",
   "keyboard_shortcuts.up": "për ngjitje sipër nëpër listë",
   "lightbox.close": "Mbylle",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Ngjeshe kuadratin e parjes së figurave",
+  "lightbox.expand": "Zgjeroje kuadratin e parjes së figurave",
   "lightbox.next": "Pasuesja",
   "lightbox.previous": "E mëparshmja",
   "lightbox.view_context": "Shihni kontekstin",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "Ndryshoni titullin",
   "lists.new.create": "Shtoni listë",
   "lists.new.title_placeholder": "Titull liste të re",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Cilido përdorues i ndjekur",
+  "lists.replies_policy.list_replies": "Anëtarë të listës",
+  "lists.replies_policy.no_replies": "Askush",
+  "lists.replies_policy.title": "Shfaq përgjigje për:",
   "lists.search": "Kërkoni mes personash që ndiqni",
   "lists.subheading": "Listat tuaja",
   "load_pending": "{count, plural,one {# objekt i ri }other {# objekte të rinj }}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "Fshihni {number, plural, one {figurë} other {figura}}",
   "missing_indicator.label": "S’u gjet",
   "missing_indicator.sublabel": "Ky burim s’u gjet dot",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Kohëzgjatje",
   "mute_modal.hide_notifications": "Të kalohen të fshehura njoftimet prej këtij përdoruesi?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "E pacaktuar",
   "navigation_bar.apps": "Aplikacione për celular",
   "navigation_bar.blocks": "Përdorues të bllokuar",
   "navigation_bar.bookmarks": "Faqerojtës",
@@ -310,7 +310,7 @@
   "notification.own_poll": "Pyetësori juaj ka përfunduar",
   "notification.poll": "Ka përfunduar një pyetësor ku keni votuar",
   "notification.reblog": "{name} përforcoi mesazhin tuaj",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} sapo postoi",
   "notifications.clear": "Spastroji njoftimet",
   "notifications.clear_confirmation": "Jeni i sigurt se doni të spastrohen përgjithmonë krejt njoftimet tuaja?",
   "notifications.column_settings.alert": "Njoftime desktopi",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "Përforcime:",
   "notifications.column_settings.show": "Shfaq në shtylla",
   "notifications.column_settings.sound": "Luaj një tingull",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Mesazhe të rinj:",
   "notifications.filter.all": "Krejt",
   "notifications.filter.boosts": "Përforcime",
   "notifications.filter.favourites": "Të parapëlqyer",
   "notifications.filter.follows": "Ndjekje",
   "notifications.filter.mentions": "Përmendje",
   "notifications.filter.polls": "Përfundime pyetësori",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Përditësime prej personash që ndiqni",
   "notifications.group": "{count}s njoftime",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Vëri shenjë çdo njoftimi si të lexuar",
+  "notifications.permission_denied": "S’mund të aktivizohen njoftime në desktop, ngaqë janë mohuar lejet për këtë.",
+  "notifications.permission_denied_alert": "S’mund të aktivizohen njoftimet në desktop, ngaqë lejet e shfletuesit për këtë janë mohuar më herët",
+  "notifications_permission_banner.enable": "Aktivizo njoftime në desktop",
+  "notifications_permission_banner.how_to_control": "Për të marrë njoftime, kur Mastodon-i s’është i hapur, aktivizoni njoftime në desktop. Përmes butoni {icon} më sipër, mund të kontrolloni me përpikëri cilat lloje ndërveprimesh prodhojnë njoftime në dekstop, pasi të jenë aktivizuar.",
+  "notifications_permission_banner.title": "Mos t’ju shpëtojë gjë",
+  "picture_in_picture.restore": "Ktheje ku qe",
   "poll.closed": "I mbyllur",
   "poll.refresh": "Rifreskoje",
   "poll.total_people": "{count, plural,one {# person }other {# vetë }}",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "Pikase tekstin prej fotoje",
   "upload_modal.edit_media": "Përpunoni media",
   "upload_modal.hint": "Që të zgjidhni pikën vatrore e cila do të jetë përherë e dukshme në krejt miniaturat, klikojeni ose tërhiqeni rrethin te paraparja.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Po përgatitet OCR-ja…",
   "upload_modal.preview_label": "Paraparje ({ratio})",
   "upload_progress.label": "Po ngarkohet…",
   "video.close": "Mbylle videon",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 5c3f51dbe..295b98f0d 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -1,12 +1,12 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "Anteckning",
   "account.add_or_remove_from_list": "Lägg till i eller ta bort från listor",
   "account.badges.bot": "Robot",
   "account.badges.group": "Grupp",
   "account.block": "Blockera @{name}",
   "account.block_domain": "Dölj allt från {domain}",
   "account.blocked": "Blockerad",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "Läs mer på original profilen",
   "account.cancel_follow_request": "Avbryt följarförfrågan",
   "account.direct": "Skicka ett direktmeddelande till @{name}",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
@@ -17,8 +17,8 @@
   "account.follow": "Följ",
   "account.followers": "Följare",
   "account.followers.empty": "Ingen följer denna användare än.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} Följare} other {{counter} Följare}}",
+  "account.following_counter": "{count, plural, one {{counter} Följer} other {{counter} Följer}}",
   "account.follows.empty": "Denna användare följer inte någon än.",
   "account.follows_you": "Följer dig",
   "account.hide_reblogs": "Dölj knuffar från @{name}",
@@ -45,12 +45,12 @@
   "account.unfollow": "Sluta följ",
   "account.unmute": "Sluta tysta @{name}",
   "account.unmute_notifications": "Återaktivera aviseringar från @{name}",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "Klicka för att lägga till anteckning",
   "alert.rate_limited.message": "Vänligen försök igen efter {retry_time, time, medium}.",
   "alert.rate_limited.title": "Mängd begränsad",
   "alert.unexpected.message": "Ett oväntat fel uppstod.",
   "alert.unexpected.title": "Hoppsan!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Meddelande",
   "autosuggest_hashtag.per_week": "{count} per vecka",
   "boost_modal.combo": "Du kan trycka {combo} för att slippa detta nästa gång",
   "bundle_column_error.body": "Något gick fel medan denna komponent laddades.",
@@ -176,7 +176,7 @@
   "follow_request.authorize": "Godkänn",
   "follow_request.reject": "Avvisa",
   "follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain} personalen att du kanske vill granska dessa följares förfrågningar manuellt.",
-  "generic.saved": "Saved",
+  "generic.saved": "Sparad",
   "getting_started.developers": "Utvecklare",
   "getting_started.directory": "Profilkatalog",
   "getting_started.documentation": "Dokumentation",
@@ -240,13 +240,13 @@
   "keyboard_shortcuts.muted": "för att öppna listan över tystade användare",
   "keyboard_shortcuts.my_profile": "för att öppna din profil",
   "keyboard_shortcuts.notifications": "för att öppna Meddelanden",
-  "keyboard_shortcuts.open_media": "to open media",
+  "keyboard_shortcuts.open_media": "öppna media",
   "keyboard_shortcuts.pinned": "för att öppna Nålade toots",
   "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",
   "keyboard_shortcuts.search": "för att fokusera sökfältet",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "visa/dölja CW-fält",
   "keyboard_shortcuts.start": "för att öppna \"Kom igång\"-kolumnen",
   "keyboard_shortcuts.toggle_hidden": "för att visa/gömma text bakom CW",
   "keyboard_shortcuts.toggle_sensitivity": "för att visa/gömma media",
@@ -441,11 +441,11 @@
   "time_remaining.minutes": "{minutes, plural, one {1 minut} other {# minuter}} kvar",
   "time_remaining.moments": "Återstående tillfällen",
   "time_remaining.seconds": "{hours, plural, one {# sekund} other {# sekunder}} kvar",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "timeline_hint.remote_resource_not_displayed": "{resource} från andra servrar visas inte.",
+  "timeline_hint.resources.followers": "Följare",
+  "timeline_hint.resources.follows": "Följer",
+  "timeline_hint.resources.statuses": "Äldre tutningar",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} personer}} pratar",
   "trends.trending_now": "Trendar nu",
   "ui.beforeunload": "Ditt utkast kommer att förloras om du lämnar Mastodon.",
   "units.short.billion": "{count}B",
@@ -455,15 +455,15 @@
   "upload_button.label": "Lägg till media",
   "upload_error.limit": "Filöverföringsgränsen överskriden.",
   "upload_error.poll": "Filuppladdning tillåts inte med omröstningar.",
-  "upload_form.audio_description": "Describe for people with hearing loss",
+  "upload_form.audio_description": "Beskriv för personer med hörselnedsättning",
   "upload_form.description": "Beskriv för synskadade",
   "upload_form.edit": "Redigera",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Ändra miniatyr",
   "upload_form.undo": "Ta bort",
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+  "upload_form.video_description": "Beskriv för personer med hörsel- eller synnedsättning",
   "upload_modal.analyzing_picture": "Analyserar bild…",
   "upload_modal.apply": "Verkställ",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Välj bild",
   "upload_modal.description_placeholder": "En snabb brun räv hoppar över den lata hunden",
   "upload_modal.detect_text": "Upptäck bildens text",
   "upload_modal.edit_media": "Redigera meida",
diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json
index 17ffe5519..2e57d620b 100644
--- a/app/javascript/mastodon/locales/szl.json
+++ b/app/javascript/mastodon/locales/szl.json
@@ -470,7 +470,7 @@
   "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
   "upload_modal.preparing_ocr": "Preparing OCR…",
   "upload_modal.preview_label": "Preview ({ratio})",
-  "upload_progress.label": "Uploading…",
+  "upload_progress.label": "Uploading...",
   "video.close": "Close video",
   "video.download": "Download file",
   "video.exit_fullscreen": "Exit full screen",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index 8e8c6b9f7..d509b619a 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -1,12 +1,12 @@
 {
-  "account.account_note_header": "Note",
+  "account.account_note_header": "குறிப்பு",
   "account.add_or_remove_from_list": "பட்டியல்களில் சேர்/நீக்கு",
   "account.badges.bot": "பாட்",
   "account.badges.group": "குழு",
   "account.block": "@{name} -ஐத் தடு",
   "account.block_domain": "{domain} யில் இருந்து வரும் எல்லாவற்றையும் மறை",
   "account.blocked": "முடக்கப்பட்டது",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "மேலும் உலாவ சுயவிவரத்திற்குச் செல்க",
   "account.cancel_follow_request": "பின்தொடரும் கோரிக்கையை நிராகரி",
   "account.direct": "நேரடி செய்தி @{name}",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
@@ -17,8 +17,8 @@
   "account.follow": "பின்தொடர்",
   "account.followers": "பின்தொடர்பவர்கள்",
   "account.followers.empty": "இதுவரை யாரும் இந்த பயனரைப் பின்தொடரவில்லை.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} வாசகர்} other {{counter} வாசகர்கள்}}",
+  "account.following_counter": "{count, plural,one {{counter} சந்தா} other {{counter} சந்தாக்கள்}}",
   "account.follows.empty": "இந்த பயனர் இதுவரை யாரையும் பின்தொடரவில்லை.",
   "account.follows_you": "உங்களைப் பின்தொடர்கிறார்",
   "account.hide_reblogs": "இருந்து ஊக்கியாக மறை @{name}",
@@ -38,14 +38,14 @@
   "account.requested": "ஒப்புதலுக்காகக் காத்திருக்கிறது. பின்தொடரும் கோரிக்கையை நீக்க அழுத்தவும்",
   "account.share": "@{name} உடைய விவரத்தை பகிர்",
   "account.show_reblogs": "காட்டு boosts இருந்து @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} டூட்} other {{counter} டூட்டுகள்}}",
   "account.unblock": "@{name} மீது தடை நீக்குக",
   "account.unblock_domain": "{domain} ஐ காண்பி",
   "account.unendorse": "சுயவிவரத்தில் இடம்பெற வேண்டாம்",
   "account.unfollow": "பின்தொடர்வதை நிறுத்துக",
   "account.unmute": "@{name} இன் மீது மௌனத் தடையை நீக்குக",
   "account.unmute_notifications": "@{name} இலிருந்து அறிவிப்புகளின் மீது மௌனத் தடையை நீக்குக",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "குறிப்பு ஒன்றை சேர்க்க சொடுக்கவும்",
   "alert.rate_limited.message": "{retry_time, time, medium} க்கு பிறகு மீண்டும் முயற்சிக்கவும்.",
   "alert.rate_limited.title": "பயன்பாடு கட்டுப்படுத்தப்பட்டுள்ளது",
   "alert.unexpected.message": "எதிர்பாராத பிழை ஏற்பட்டுவிட்டது.",
@@ -81,9 +81,9 @@
   "column_header.show_settings": "அமைப்புகளைக் காட்டு",
   "column_header.unpin": "கழட்டு",
   "column_subheading.settings": "அமைப்புகள்",
-  "community.column_settings.local_only": "Local only",
+  "community.column_settings.local_only": "அருகிலிருந்து மட்டுமே",
   "community.column_settings.media_only": "படங்கள் மட்டுமே",
-  "community.column_settings.remote_only": "Remote only",
+  "community.column_settings.remote_only": "தொலைவிலிருந்து மட்டுமே",
   "compose_form.direct_message_warning": "இந்த டூட் இதில் குறிப்பிடப்பட்டுள்ள பயனர்களுக்கு மட்டுமே அனுப்பப்படும்.",
   "compose_form.direct_message_warning_learn_more": "மேலும் அறிய",
   "compose_form.hashtag_warning": "இது ஒரு பட்டியலிடப்படாத டூட் என்பதால் எந்த ஹேஷ்டேகின் கீழும் வராது. ஹேஷ்டேகின் மூலம் பொதுவில் உள்ள டூட்டுகளை மட்டுமே தேட முடியும்.",
@@ -129,7 +129,7 @@
   "conversation.mark_as_read": "படிக்கபட்டதாகக் குறி",
   "conversation.open": "உரையாடலைக் காட்டு",
   "conversation.with": "{names} உடன்",
-  "directory.federated": "ஆலமரத்தின் அறியப்பட்டப் பகுதியிலிருந்து",
+  "directory.federated": "அறியப்பட்ட ஃபெடிவெர்சிலிருந்து",
   "directory.local": "{domain} களத்திலிருந்து மட்டும்",
   "directory.new_arrivals": "புதிய வரவு",
   "directory.recently_active": "சற்றுமுன் செயல்பாட்டில் இருந்தவர்கள்",
@@ -141,7 +141,7 @@
   "emoji_button.food": "உணவு மற்றும் பானம்",
   "emoji_button.label": "எமோஜியை உள்ளிடு",
   "emoji_button.nature": "இயற்கை",
-  "emoji_button.not_found": "வேண்டாம் எமோஜோஸ்! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "எமோஜிக்கள் இல்லை! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "பொருட்கள்",
   "emoji_button.people": "மக்கள்",
   "emoji_button.recent": "அடிக்கடி பயன்படுத்தப்படுபவை",
@@ -149,90 +149,90 @@
   "emoji_button.search_results": "தேடல் முடிவுகள்",
   "emoji_button.symbols": "குறியீடுகள்",
   "emoji_button.travel": "சுற்றுலா மற்றும் இடங்கள்",
-  "empty_column.account_timeline": "இல்லை toots இங்கே!",
+  "empty_column.account_timeline": "டூட்டுகள் ஏதும் இல்லை!",
   "empty_column.account_unavailable": "சுயவிவரம் கிடைக்கவில்லை",
-  "empty_column.blocks": "இதுவரை எந்த பயனர்களும் தடுக்கவில்லை.",
+  "empty_column.blocks": "நீங்கள் இதுவரை எந்தப் பயனர்களையும் முடக்கியிருக்கவில்லை.",
   "empty_column.bookmarked_statuses": "உங்களிடம் அடையாளக்குறியிட்ட டூட்டுகள் எவையும் இல்லை. அடையாளக்குறியிட்ட பிறகு அவை இங்கே காட்டப்படும்.",
-  "empty_column.community": "உள்ளூர் காலக்கெடு காலியாக உள்ளது. பந்தை உருட்டிக்கொள்வதற்கு பகிரங்கமாக ஒன்றை எழுதுங்கள்!",
-  "empty_column.direct": "உங்களிடம் நேரடியான செய்திகள் எதுவும் இல்லை. நீங்கள் ஒன்றை அனுப்பி அல்லது பெறும் போது, அது இங்கே காண்பிக்கும்.",
-  "empty_column.domain_blocks": "இன்னும் மறைந்த களங்கள் இல்லை.",
-  "empty_column.favourited_statuses": "இதுவரை உங்களுக்கு பிடித்த டோட்டுகள் இல்லை. உங்களுக்கு பிடித்த ஒரு போது, அது இங்கே காண்பிக்கும்.",
-  "empty_column.favourites": "இதுவரை யாரும் இந்தத் தட்டுக்கு ஆதரவில்லை. யாராவது செய்தால், அவர்கள் இங்கே காண்பார்கள்.",
-  "empty_column.follow_requests": "உங்களுக்கு இன்னும் எந்தவொரு கோரிக்கைகளும் இல்லை. நீங்கள் ஒன்றைப் பெற்றுக்கொண்டால், அது இங்கே காண்பிக்கும்.",
-  "empty_column.hashtag": "இன்னும் இந்த ஹேஸ்டேக்கில் எதுவும் இல்லை.",
-  "empty_column.home": "உங்கள் வீட்டுக் காலம் காலியாக உள்ளது! வருகை {public} அல்லது தொடங்குவதற்கு தேடலைப் பயன்படுத்தலாம் மற்றும் பிற பயனர்களை சந்திக்கவும்.",
-  "empty_column.home.public_timeline": "பொது காலக்கெடு",
-  "empty_column.list": "இந்த பட்டியலில் இதுவரை எதுவும் இல்லை. இந்த பட்டியலின் உறுப்பினர்கள் புதிய நிலைகளை இடுகையிடுகையில், அவை இங்கே தோன்றும்.",
-  "empty_column.lists": "உங்களுக்கு இதுவரை எந்த பட்டியலும் இல்லை. நீங்கள் ஒன்றை உருவாக்கினால், அது இங்கே காண்பிக்கும்.",
-  "empty_column.mutes": "நீங்கள் இதுவரை எந்த பயனர்களையும் முடக்கியிருக்கவில்லை.",
-  "empty_column.notifications": "உங்களிடம் எந்த அறிவிப்புகளும் இல்லை. உரையாடலைத் தொடங்க பிறருடன் தொடர்புகொள்ளவும்.",
-  "empty_column.public": "இங்கே எதுவும் இல்லை! பகிரங்கமாக ஒன்றை எழுதவும் அல்லது மற்ற நிகழ்வுகளிலிருந்து பயனர்களை அதை நிரப்புவதற்கு கைமுறையாக பின்பற்றவும்",
-  "error.unexpected_crash.explanation": "மென்பொருள் பழுதுனாலோ அல்லது உங்கள் இணை உலாவியின் பொருந்தாதன்மையினாலோ இந்தப் பக்கத்தை சரியாகக் காண்பிக்க முடியவில்லை.",
+  "empty_column.community": "உங்கள் மாஸ்டடான் முச்சந்தியில் யாரும் இல்லை. எதையேனும் எழுதி ஆட்டத்தைத் துவக்குங்கள்!",
+  "empty_column.direct": "உங்கள் தனிப்பெட்டியில் செய்திகள் ஏதும் இல்லை. செய்தியை நீங்கள் அனுப்பும்போதோ அல்லது பெறும்போதோ, அது இங்கே காண்பிக்கப்படும்.",
+  "empty_column.domain_blocks": "தடுக்கப்பட்டக் களங்கள் இதுவரை இல்லை.",
+  "empty_column.favourited_statuses": "உங்களுக்குப் பிடித்த டூட்டுகள் இதுவரை இல்லை. ஒரு டூட்டில் நீங்கள் விருப்பக்குறி இட்டால், அது இங்கே காண்பிக்கப்படும்.",
+  "empty_column.favourites": "இந்த டூட்டில் இதுவரை யாரும் விருப்பக்குறி இடவில்லை. யாரேனும் விரும்பினால், அது இங்கே காண்பிக்கப்படும்.",
+  "empty_column.follow_requests": "வாசகர் கோரிக்கைகள் இதுவரை ஏதும் இல்லை. யாரேனும் கோரிக்கையை அனுப்பினால், அது இங்கே காண்பிக்கப்படும்.",
+  "empty_column.hashtag": "இந்த சிட்டையில் இதுவரை ஏதும் இல்லை.",
+  "empty_column.home": "உங்கள் மாஸ்டடான் வீட்டில் யாரும் இல்லை. {public} -இல் சென்று பார்க்கவும், அல்லது தேடல் கருவியைப் பயன்படுத்திப் பிற பயனர்களைக் கண்டடையவும்.",
+  "empty_column.home.public_timeline": "பொது டைம்லைன்",
+  "empty_column.list": "இந்தப் பட்டியலில் இதுவரை ஏதும் இல்லை. இப்பட்டியலின் உறுப்பினர்கள் புதிய டூட்டுகளை இட்டால். அவை இங்கே காண்பிக்கப்படும்.",
+  "empty_column.lists": "இதுவரை நீங்கள் எந்தப் பட்டியலையும் உருவாக்கவில்லை. உருவாக்கினால், அது இங்கே காண்பிக்கப்படும்.",
+  "empty_column.mutes": "நீங்கள் இதுவரை எந்தப் பயனர்களையும் முடக்கியிருக்கவில்லை.",
+  "empty_column.notifications": "உங்களுக்காக எந்த அறிவிப்புகளும் இல்லை. உரையாடலைத் துவங்க பிறரைத் தொடர்புகொள்ளவும்.",
+  "empty_column.public": "இங்கு எதுவும் இல்லை! இவ்விடத்தை நிரப்ப எதையேனும் எழுதவும், அல்லது வேறு சர்வர்களில் உள்ள பயனர்களைப் பின்தொடரவும்",
+  "error.unexpected_crash.explanation": "இந்தப் பக்கத்தை சரியாகக் காண்பிக்க இயலவில்லை. மென்பொருளில் உள்ள பிழையோ அல்லது பொருந்தாத உலாவியோ காரணமாக இருக்கலாம்.",
   "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
-  "error.unexpected_crash.next_steps": "பக்கத்தை புதுப்பித்துப் பார்க்கவும். வேலை செய்யவில்லையெனில், வேறு ஒரு உலாவியில் இருந்தோ அல்லது உங்கள் கருவிக்கு பொருத்தமான வேறு செயலியில் இருந்தோ மச்டோடனைப் பயன்படுத்தவும்.",
+  "error.unexpected_crash.next_steps": "பக்கத்தைப் புதுப்பித்துப் பார்க்கவும். அப்படியும் வேலை செய்யவில்லை எனில், மாஸ்டடானை வேறு ஒரு உலாவியின் மூலமோ, அல்லது பொருத்தமான செயலியின் மூலமோ பயன்படுத்திப் பார்க்கவும்.",
   "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
-  "errors.unexpected_crash.copy_stacktrace": "பழுசெய்தியை பிடிப்புப் பலகைக்கு நகல் எடு",
+  "errors.unexpected_crash.copy_stacktrace": "Stacktrace-ஐ clipboard-ல் நகலெடு",
   "errors.unexpected_crash.report_issue": "புகாரளி",
-  "follow_request.authorize": "அதிகாரமளி",
-  "follow_request.reject": "விலக்கு",
+  "follow_request.authorize": "அனுமதியளி",
+  "follow_request.reject": "நிராகரி",
   "follow_requests.unlocked_explanation": "உங்கள் கணக்கு பூட்டப்படவில்லை என்றாலும், இந்தக் கணக்குகளிலிருந்து உங்களைப் பின்தொடர விரும்பும் கோரிக்கைகளை நீங்கள் பரீசீலிப்பது நலம் என்று {domain} ஊழியர் எண்ணுகிறார்.",
-  "generic.saved": "Saved",
+  "generic.saved": "சேமிக்கப்பட்டது",
   "getting_started.developers": "உருவாக்குநர்கள்",
-  "getting_started.directory": "சுயவிவர அடைவு",
+  "getting_started.directory": "பயனர்கள்",
   "getting_started.documentation": "ஆவணங்கள்",
-  "getting_started.heading": "தொடங்குதல்",
-  "getting_started.invite": "நபர்களை அழைக்கவும்",
-  "getting_started.open_source_notice": "Mastodon திறந்த மூல மென்பொருள். GitHub இல் நீங்கள் பங்களிக்கவோ அல்லது புகார் அளிக்கவோ முடியும் {github}.",
-  "getting_started.security": "பத்திரம்",
+  "getting_started.heading": "முதன்மைப் பக்கம்",
+  "getting_started.invite": "நண்பர்களை அழைக்க",
+  "getting_started.open_source_notice": "மாஸ்டடான் ஒரு open source மென்பொருள் ஆகும். {github} -இன் மூலம் உங்களால் இதில் பங்களிக்கவோ, சிக்கல்களைத் தெரியப்படுத்தவோ முடியும்.",
+  "getting_started.security": "கணக்கு அமைப்புகள்",
   "getting_started.terms": "சேவை விதிமுறைகள்",
   "hashtag.column_header.tag_mode.all": "மற்றும் {additional}",
   "hashtag.column_header.tag_mode.any": "அல்லது {additional}",
-  "hashtag.column_header.tag_mode.none": "இல்லாமல் {additional}",
-  "hashtag.column_settings.select.no_options_message": "பரிந்துரைகள் எதுவும் இல்லை",
-  "hashtag.column_settings.select.placeholder": "ஹாஷ்டேகுகளை உள்ளிடவும் …",
+  "hashtag.column_header.tag_mode.none": "{additional} தவிர்த்து",
+  "hashtag.column_settings.select.no_options_message": "பரிந்துரைகள் ஏதும் இல்லை",
+  "hashtag.column_settings.select.placeholder": "சிட்டைகளை உள்ளிடவும்…",
   "hashtag.column_settings.tag_mode.all": "இவை அனைத்தும்",
-  "hashtag.column_settings.tag_mode.any": "இவை எதையும்",
+  "hashtag.column_settings.tag_mode.any": "இவற்றில் எவையேனும்",
   "hashtag.column_settings.tag_mode.none": "இவற்றில் ஏதுமில்லை",
-  "hashtag.column_settings.tag_toggle": "இந்த நெடுவரிசையில் கூடுதல் குறிச்சொற்களை சேர்க்கவும்",
-  "home.column_settings.basic": "அடிப்படையான",
-  "home.column_settings.show_reblogs": "காட்டு boosts",
-  "home.column_settings.show_replies": "பதில்களைக் காண்பி",
+  "hashtag.column_settings.tag_toggle": "இந்த நெடுவரிசையில் கூடுதல் சிட்டைகளைச் சேர்க்கவும்",
+  "home.column_settings.basic": "அடிப்படையானவை",
+  "home.column_settings.show_reblogs": "பகிர்வுகளைக் காண்பி",
+  "home.column_settings.show_replies": "மறுமொழிகளைக் காண்பி",
   "home.hide_announcements": "அறிவிப்புகளை மறை",
   "home.show_announcements": "அறிவிப்புகளைக் காட்டு",
-  "intervals.full.days": "{number, plural, one {# day} மற்ற {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} மற்ற {# hours}}",
-  "intervals.full.minutes": "{number, plural, one {# minute} மற்ற {# minutes}}",
-  "introduction.federation.action": "அடுத்த",
+  "intervals.full.days": "{number, plural, one {# நாள்} other {# நாட்கள்}}",
+  "intervals.full.hours": "{number, plural, one {# மணிநேரம்} other {# மணிநேரங்கள்}}",
+  "intervals.full.minutes": "{number, plural, one {# நிமிடம்} other {# நிமிடங்கள்}}",
+  "introduction.federation.action": "அடுத்து",
   "introduction.federation.federated.headline": "கூட்டமைந்த",
-  "introduction.federation.federated.text": "கூட்டமைப்பின் பிற சேவையகங்களிலிருந்து பொது பதிவுகள் கூட்டப்பட்ட காலக்கெடுவில் தோன்றும்.",
+  "introduction.federation.federated.text": "ஃபெடிவெர்சின் மற்ற சர்வர்களிலிருந்து இடப்படும் பொதுப் பதிவுகள் இந்த மாஸ்டடான் ஆலமரத்தில் தோன்றும்.",
   "introduction.federation.home.headline": "முகப்பு",
-  "introduction.federation.home.text": "நீங்கள் பின்பற்றும் நபர்களின் இடுகைகள் உங்கள் வீட்டு ஊட்டத்தில் தோன்றும். நீங்கள் எந்த சர்வரில் யாரையும் பின்பற்ற முடியும்!",
+  "introduction.federation.home.text": "நீங்கள் பின்தொடரும் நபர்களின் இடுகைகள் உங்கள் மாஸ்டடான் வீட்டில் தோன்றும். உங்களால் எந்த சர்வரில் உள்ள எவரையும் பின்பற்ற முடியும்!",
   "introduction.federation.local.headline": "அருகாமை",
-  "introduction.federation.local.text": "உள்ளூர் சேவையகத்தில் தோன்றும் அதே சர்வரில் உள்ளவர்களின் பொது இடுகைகள்.",
-  "introduction.interactions.action": "பயிற்சி முடிக்க!",
-  "introduction.interactions.favourite.headline": "விருப்பத்துக்குகந்த",
-  "introduction.interactions.favourite.text": "நீங்கள் ஒரு காப்பாற்ற முடியும் toot பின்னர், மற்றும் ஆசிரியர் அதை நீங்கள் பிடித்திருக்கிறது என்று, அதை பிடித்திருக்கிறது என்று தெரியப்படுத்துங்கள்.",
-  "introduction.interactions.reblog.headline": "மதிப்பை உயர்த்து",
-  "introduction.interactions.reblog.text": "மற்றவர்களின் பகிர்ந்து கொள்ளலாம் toots உங்கள் ஆதரவாளர்களுடன் அவர்களை அதிகரிக்கும்.",
-  "introduction.interactions.reply.headline": "மறுமொழி கூறு",
-  "introduction.interactions.reply.text": "நீங்கள் மற்றவர்களுக்கும் உங்கள் சொந்த டோட்ட்களிற்கும் பதிலளிப்பீர்கள், இது ஒரு உரையாடலில் சங்கிலி ஒன்றாகச் சேரும்.",
-  "introduction.welcome.action": "போகலாம்!",
-  "introduction.welcome.headline": "முதல் படிகள்",
-  "introduction.welcome.text": "கூட்டாளிக்கு வருக! ஒரு சில நிமிடங்களில், பலவிதமான சேவையகங்களில் செய்திகளை உரையாட மற்றும் உங்கள் நண்பர்களிடம் பேச முடியும். ஆனால் இந்த சர்வர், {domain}, சிறப்பு - இது உங்கள் சுயவிவரத்தை வழங்குகிறது, எனவே அதன் பெயரை நினைவில் கொள்ளுங்கள்.",
-  "keyboard_shortcuts.back": "பின் செல்வதற்கு",
-  "keyboard_shortcuts.blocked": "தடுக்கப்பட்ட பயனர்களின் பட்டியலைத் திறக்க",
-  "keyboard_shortcuts.boost": "அதிகரிக்கும்",
-  "keyboard_shortcuts.column": "நெடுவரிசைகளில் ஒன்றில் நிலைக்கு கவனம் செலுத்த வேண்டும்",
-  "keyboard_shortcuts.compose": "தொகு உரைப்பகுதியை கவனத்தில் கொள்ளவும்",
+  "introduction.federation.local.text": "உங்கள் சர்வரில் இருக்கும் மற்ற நபர்களின் பொதுப் பதிவுகள் இந்த மாஸ்டடான் முச்சந்தியில் தோன்றும்.",
+  "introduction.interactions.action": "பயிற்சியை நிறைவு செய்!",
+  "introduction.interactions.favourite.headline": "விருப்பம்",
+  "introduction.interactions.favourite.text": "ஒரு டூட்டில் விருப்பக்குறி இடுவதன் மூலம் உங்கள் விருப்பத்தை அதை எழுதியவருக்குத் தெரியப்படுத்த முடியும், மேலும் அந்த டூட்டை மறுவாசிப்பிற்காக சேமிக்கமுடியும்.",
+  "introduction.interactions.reblog.headline": "பகிர்",
+  "introduction.interactions.reblog.text": "மற்றவர்களின் டூட்டுகளைப் பகிர்வதன் மூலம் அவற்றை உங்கள் வாசகர்களுக்குக் காண்பிக்க முடியும்.",
+  "introduction.interactions.reply.headline": "மறுமொழி",
+  "introduction.interactions.reply.text": "உங்களால் மற்றவர்களின் டூட்டுகளிலும் உங்கள் டூட்டுகளிலும் மறுமொழி இட முடியும். அவை ஒன்றோடு ஒன்றாக சங்கிலிபோல் பின்னப்பட்டு உரையாடலாக மாறும்.",
+  "introduction.welcome.action": "வாருங்கள் துவங்கலாம்!",
+  "introduction.welcome.headline": "முதற்படிகள்",
+  "introduction.welcome.text": "ஃபெடிவெர்ஸ் உங்களை அன்புடன் வரவேற்கிறது! இன்னும் சில நிமிடங்களில் உங்களால் செய்திகளை உலகிற்குச் சொல்லமுடியும். பல்வேறு சர்வர்களில் இருக்கும் உங்கள் நண்பர்களோடு பேச முடியும். ஆனால், இந்த சர்வர் {domain} மிகவும் தனித்துவமானது, ஏனெனில் உங்கள் பக்கத்தை இதுதான் வழங்குகிறது, எனவே இதன் பெயரை நினைவில் கொள்ளுங்கள்.",
+  "keyboard_shortcuts.back": "பின் செல்ல",
+  "keyboard_shortcuts.blocked": "தடுக்கப்பட்ட பயனர்கள் பட்டியலைத் திறக்க",
+  "keyboard_shortcuts.boost": "பகிர",
+  "keyboard_shortcuts.column": "ஏதேனும் ஒரு நெடுவரிசையில் உள்ள டூட்டுல் கவனம் செலுத்த",
+  "keyboard_shortcuts.compose": "பதிவு எழுதும் பெட்டியில் கவனம் செலுத்த",
   "keyboard_shortcuts.description": "விவரம்",
-  "keyboard_shortcuts.direct": "நேரடி செய்திகள் பத்தி திறக்க",
-  "keyboard_shortcuts.down": "பட்டியலில் கீழே நகர்த்த",
-  "keyboard_shortcuts.enter": "பதிவைத்திறக்க",
-  "keyboard_shortcuts.favourite": "பிடித்தது",
-  "keyboard_shortcuts.favourites": "பிடித்தவை பட்டியலை திறக்க",
-  "keyboard_shortcuts.federated": "ஒருங்கிணைந்த நேரத்தை திறக்க",
-  "keyboard_shortcuts.heading": "Keyboard Shortcuts",
-  "keyboard_shortcuts.home": "வீட்டு நேரத்தை திறக்க",
+  "keyboard_shortcuts.direct": "தனிப்பெட்டியைத் திறக்க",
+  "keyboard_shortcuts.down": "பட்டியலின் கீழே செல்ல",
+  "keyboard_shortcuts.enter": "டூட்டைத் திறக்க",
+  "keyboard_shortcuts.favourite": "விருப்பக்குறி இட",
+  "keyboard_shortcuts.favourites": "விருப்பப் பட்டியலைத் திறக்க",
+  "keyboard_shortcuts.federated": "மாஸ்டடான் ஆலமரத்தைத் திறக்க",
+  "keyboard_shortcuts.heading": "விசைப்பலகை குறுக்குவழிகள்",
+  "keyboard_shortcuts.home": "மாஸ்டடான் வீட்டைத் திறக்க",
   "keyboard_shortcuts.hotkey": "ஹாட் கீ",
   "keyboard_shortcuts.legend": "இந்த புராணத்தை காட்சிப்படுத்த",
   "keyboard_shortcuts.local": "உள்ளூர் காலவரிசை திறக்க",
@@ -246,7 +246,7 @@
   "keyboard_shortcuts.reply": "பதிலளிக்க",
   "keyboard_shortcuts.requests": "கோரிக்கைகள் பட்டியலைத் திறக்க",
   "keyboard_shortcuts.search": "தேடல் கவனம் செலுத்த",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "உள்ளடக்க எச்சரிக்கை செய்தியைக் காட்ட/மறைக்க",
   "keyboard_shortcuts.start": "'தொடங்குவதற்கு' நெடுவரிசை திறக்க",
   "keyboard_shortcuts.toggle_hidden": "CW க்கு பின்னால் உரையை மறைக்க / மறைக்க",
   "keyboard_shortcuts.toggle_sensitivity": "படிமங்களைக் காட்ட/மறைக்க",
@@ -441,11 +441,11 @@
   "time_remaining.minutes": "{number, plural, one {# minute} மற்ற {# minutes}} left",
   "time_remaining.moments": "தருணங்கள் மீதமுள்ளன",
   "time_remaining.seconds": "{number, plural, one {# second} மற்ற {# seconds}} left",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "timeline_hint.remote_resource_not_displayed": "பிற சர்வர்களிலிருந்து வரும் {resource} காட்டப்படவில்லை.",
+  "timeline_hint.resources.followers": "வாசகர்கள்",
+  "timeline_hint.resources.follows": "வாசிக்கிறார்",
+  "timeline_hint.resources.statuses": "பழைய டூட்டுகள்",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} நபர்} other {{counter} நபர்கள்}} உரையாடலில்",
   "trends.trending_now": "இப்போது செல்திசையில் இருப்பவை",
   "ui.beforeunload": "நீங்கள் வெளியே சென்றால் உங்கள் வரைவு இழக்கப்படும் மஸ்தோடோன்.",
   "units.short.billion": "{count}B",
@@ -458,12 +458,12 @@
   "upload_form.audio_description": "செவித்திறன் குறைபாடு உள்ளவர்களுக்காக விளக்குக‌",
   "upload_form.description": "பார்வையற்ற விவரிக்கவும்",
   "upload_form.edit": "தொகு",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "சிறுபடத்தை மாற்ற",
   "upload_form.undo": "நீக்கு",
   "upload_form.video_description": "செவித்திறன் மற்றும் பார்வைக் குறைபாடு உள்ளவர்களுக்காக விளக்குக‌",
   "upload_modal.analyzing_picture": "படம் ஆராயப்படுகிறது…",
   "upload_modal.apply": "உபயோகி",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "படத்தைத் தேர்வுசெய்ய",
   "upload_modal.description_placeholder": "பொருள் விளக்கம்",
   "upload_modal.detect_text": "படத்தில் இருக்கும் எழுத்தை கண்டறி",
   "upload_modal.edit_media": "படத்தைத் தொகு",
diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json
index 17ffe5519..2e57d620b 100644
--- a/app/javascript/mastodon/locales/tai.json
+++ b/app/javascript/mastodon/locales/tai.json
@@ -470,7 +470,7 @@
   "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
   "upload_modal.preparing_ocr": "Preparing OCR…",
   "upload_modal.preview_label": "Preview ({ratio})",
-  "upload_progress.label": "Uploading…",
+  "upload_progress.label": "Uploading...",
   "video.close": "Close video",
   "video.download": "Download file",
   "video.exit_fullscreen": "Exit full screen",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 2715c5faa..a2add6715 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "เรียกดูเพิ่มเติมในโปรไฟล์ดั้งเดิม",
   "account.cancel_follow_request": "ยกเลิกคำขอติดตาม",
   "account.direct": "ส่งข้อความโดยตรงถึง @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์",
   "account.domain_blocked": "ปิดกั้นโดเมนอยู่",
   "account.edit_profile": "แก้ไขโปรไฟล์",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "แจ้งเตือนฉันเมื่อ @{name} โพสต์",
   "account.endorse": "แสดงให้เห็นในโปรไฟล์",
   "account.follow": "ติดตาม",
   "account.followers": "ผู้ติดตาม",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "คุณยังไม่มีการแจ้งเตือนใด ๆ โต้ตอบกับผู้อื่นเพื่อเริ่มการสนทนา",
   "empty_column.public": "ไม่มีสิ่งใดที่นี่! เขียนบางอย่างเป็นสาธารณะ หรือติดตามผู้ใช้จากเซิร์ฟเวอร์อื่น ๆ ด้วยตนเองเพื่อเติมให้เต็ม",
   "error.unexpected_crash.explanation": "เนื่องจากข้อบกพร่องในโค้ดของเราหรือปัญหาความเข้ากันได้ของเบราว์เซอร์ จึงไม่สามารถแสดงหน้านี้ได้อย่างถูกต้อง",
-  "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": "ไม่สามารถแสดงหน้านี้ได้อย่างถูกต้อง ข้อผิดพลาดนี้เป็นไปได้ว่าเกิดจากส่วนเสริมของเบราว์เซอร์หรือเครื่องมือการแปลอัตโนมัติ",
   "error.unexpected_crash.next_steps": "ลองรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ผ่านเบราว์เซอร์อื่นหรือแอป",
-  "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": "ลองปิดใช้งานส่วนเสริมหรือเครื่องมือแล้วรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ผ่านเบราว์เซอร์อื่นหรือแอป",
   "errors.unexpected_crash.copy_stacktrace": "คัดลอกการติดตามสแตกไปยังคลิปบอร์ด",
   "errors.unexpected_crash.report_issue": "รายงานปัญหา",
   "follow_request.authorize": "อนุญาต",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "เพื่อเลิกโฟกัสพื้นที่เขียนข้อความ/การค้นหา",
   "keyboard_shortcuts.up": "เพื่อย้ายขึ้นในรายการ",
   "lightbox.close": "ปิด",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "บีบอัดกล่องดูภาพ",
+  "lightbox.expand": "ขยายกล่องดูภาพ",
   "lightbox.next": "ถัดไป",
   "lightbox.previous": "ก่อนหน้า",
   "lightbox.view_context": "ดูบริบท",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "เปลี่ยนชื่อเรื่อง",
   "lists.new.create": "เพิ่มรายการ",
   "lists.new.title_placeholder": "ชื่อเรื่องรายการใหม่",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "ผู้ใช้ใด ๆ ที่ติดตาม",
+  "lists.replies_policy.list_replies": "สมาชิกของรายการ",
+  "lists.replies_policy.no_replies": "ไม่มีใคร",
+  "lists.replies_policy.title": "แสดงการตอบกลับแก่:",
   "lists.search": "ค้นหาในหมู่ผู้คนที่คุณติดตาม",
   "lists.subheading": "รายการของคุณ",
   "load_pending": "{count, plural, other {# รายการใหม่}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "ซ่อน{number, plural, other {ภาพ}}",
   "missing_indicator.label": "ไม่พบ",
   "missing_indicator.sublabel": "ไม่พบทรัพยากรนี้",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "ระยะเวลา",
   "mute_modal.hide_notifications": "ซ่อนการแจ้งเตือนจากผู้ใช้นี้?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "ไม่มีกำหนด",
   "navigation_bar.apps": "แอปมือถือ",
   "navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
   "navigation_bar.bookmarks": "ที่คั่นหน้า",
@@ -310,7 +310,7 @@
   "notification.own_poll": "การสำรวจความคิดเห็นของคุณได้สิ้นสุดแล้ว",
   "notification.poll": "การสำรวจความคิดเห็นที่คุณได้ลงคะแนนได้สิ้นสุดแล้ว",
   "notification.reblog": "{name} ได้ดันโพสต์ของคุณ",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} เพิ่งโพสต์",
   "notifications.clear": "ล้างการแจ้งเตือน",
   "notifications.clear_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการล้างการแจ้งเตือนทั้งหมดของคุณอย่างถาวร?",
   "notifications.column_settings.alert": "การแจ้งเตือนบนเดสก์ท็อป",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "การดัน:",
   "notifications.column_settings.show": "แสดงในคอลัมน์",
   "notifications.column_settings.sound": "เล่นเสียง",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "โพสต์ใหม่:",
   "notifications.filter.all": "ทั้งหมด",
   "notifications.filter.boosts": "การดัน",
   "notifications.filter.favourites": "รายการโปรด",
   "notifications.filter.follows": "การติดตาม",
   "notifications.filter.mentions": "การกล่าวถึง",
   "notifications.filter.polls": "ผลลัพธ์การสำรวจความคิดเห็น",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "การอัปเดตจากผู้คนที่คุณติดตาม",
   "notifications.group": "{count} การแจ้งเตือน",
-  "notifications.mark_as_read": "Mark every notification as read",
+  "notifications.mark_as_read": "ทำเครื่องหมายทุกการแจ้งเตือนว่าอ่านแล้ว",
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
+  "notifications_permission_banner.enable": "เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป",
   "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications_permission_banner.title": "ไม่พลาดสิ่งต่าง ๆ",
+  "picture_in_picture.restore": "นำกลับมา",
   "poll.closed": "ปิดแล้ว",
   "poll.refresh": "รีเฟรช",
   "poll.total_people": "{count, plural, other {# คน}}",
@@ -411,7 +411,7 @@
   "status.pinned": "โพสต์ที่ปักหมุด",
   "status.read_more": "อ่านเพิ่มเติม",
   "status.reblog": "ดัน",
-  "status.reblog_private": "ดันไปยังผู้ชมดั้งเดิม",
+  "status.reblog_private": "ดันด้วยการมองเห็นดั้งเดิม",
   "status.reblogged_by": "{name} ได้ดัน",
   "status.reblogs.empty": "ยังไม่มีใครดันโพสต์นี้ เมื่อใครสักคนดัน เขาจะปรากฏที่นี่",
   "status.redraft": "ลบแล้วร่างใหม่",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "ตรวจหาข้อความจากรูปภาพ",
   "upload_modal.edit_media": "แก้ไขสื่อ",
   "upload_modal.hint": "คลิกหรือลากวงกลมในตัวอย่างเพื่อเลือกจุดโฟกัส ซึ่งจะอยู่ในมุมมองของภาพขนาดย่อทั้งหมดเสมอ",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "กำลังเตรียม OCR…",
   "upload_modal.preview_label": "ตัวอย่าง ({ratio})",
   "upload_progress.label": "กำลังอัปโหลด...",
   "video.close": "ปิดวิดีโอ",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 09dfd3396..47ce6f83f 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -1,32 +1,32 @@
 {
-  "account.account_note_header": "@{name} için notunuz",
+  "account.account_note_header": "Not",
   "account.add_or_remove_from_list": "Listelere ekle veya kaldır",
   "account.badges.bot": "Bot",
   "account.badges.group": "Grup",
   "account.block": "@{name} adlı kişiyi engelle",
-  "account.block_domain": "{domain} alanından her şeyi gizle",
-  "account.blocked": "Engellenmiş",
+  "account.block_domain": "{domain} alan adını engelle",
+  "account.blocked": "Engellendi",
   "account.browse_more_on_origin_server": "Orijinal profilde daha fazlasına göz atın",
   "account.cancel_follow_request": "Takip isteğini iptal et",
-  "account.direct": "Mesaj gönder @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Alan adı gizlendi",
+  "account.direct": "@{name} adlı kişiye mesaj gönder",
+  "account.disable_notifications": "@{name} gönderi yaptığında bana bildirmeyi durdur",
+  "account.domain_blocked": "Alan adı engellendi",
   "account.edit_profile": "Profili düzenle",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "@{name} gönderi yaptığında bana bildir",
   "account.endorse": "Profildeki özellik",
   "account.follow": "Takip et",
   "account.followers": "Takipçi",
   "account.followers.empty": "Henüz kimse bu kullanıcıyı takip etmiyor.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} Takipçi} other {{counter} Takipçi}}",
+  "account.following_counter": "{count, plural, one {{counter} Takip Edilen} other {{counter} Takip Edilen}}",
   "account.follows.empty": "Bu kullanıcı henüz kimseyi takip etmiyor.",
   "account.follows_you": "Seni takip ediyor",
-  "account.hide_reblogs": "@{name} kişisinin yinelemelerini gizle",
-  "account.last_status": "Son aktivite",
+  "account.hide_reblogs": "@{name} kişisinin boostlarını gizle",
+  "account.last_status": "Son etkinlik",
   "account.link_verified_on": "Bu bağlantının sahipliği {date} tarihinde kontrol edildi",
   "account.locked_info": "Bu hesabın gizlilik durumu kilitli olarak ayarlanmış. Sahibi, onu kimin takip edebileceğini elle inceliyor.",
   "account.media": "Medya",
-  "account.mention": "@{name} kullanıcısından bahset",
+  "account.mention": "@{name} kişisinden bahset",
   "account.moved_to": "{name} şuraya taşındı:",
   "account.mute": "@{name} adlı kişiyi sessize al",
   "account.mute_notifications": "@{name} adlı kişinin bildirimlerini kapat",
@@ -35,18 +35,18 @@
   "account.posts": "Toot",
   "account.posts_with_replies": "Tootlar ve cevaplar",
   "account.report": "@{name} adlı kişiyi bildir",
-  "account.requested": "Onay Bekleniyor. Takip isteğini iptal etmek için tıklayın",
-  "account.share": "@{name} kullanıcısının profilini paylaş",
-  "account.show_reblogs": "@{name} kullanıcısının yinelemelerini göster",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.requested": "Onay bekleniyor. Takip isteğini iptal etmek için tıklayın",
+  "account.share": "@{name} adlı kişinin profilini paylaş",
+  "account.show_reblogs": "@{name} kişisinin boostlarını göster",
+  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toot}}",
   "account.unblock": "@{name} adlı kişinin engelini kaldır",
-  "account.unblock_domain": "{domain} göster",
-  "account.unendorse": "Profilde özellik yok",
+  "account.unblock_domain": "{domain} alan adının engelini kaldır",
+  "account.unendorse": "Profilde gösterme",
   "account.unfollow": "Takibi bırak",
   "account.unmute": "@{name} adlı kişinin sesini aç",
   "account.unmute_notifications": "@{name} adlı kişinin bildirimlerini aç",
-  "account_note.placeholder": "Yorum yapılmamış",
-  "alert.rate_limited.message": "Lütfen sonra tekrar deneyin {retry_time, time, medium}.",
+  "account_note.placeholder": "Not eklemek için tıklayın",
+  "alert.rate_limited.message": "Lütfen {retry_time, time, medium} süresinden sonra tekrar deneyin.",
   "alert.rate_limited.title": "Oran sınırlıdır",
   "alert.unexpected.message": "Beklenmedik bir hata oluştu.",
   "alert.unexpected.title": "Hay aksi!",
@@ -60,16 +60,16 @@
   "bundle_modal_error.message": "Bu bileşen yüklenirken bir şeyler ters gitti.",
   "bundle_modal_error.retry": "Tekrar deneyin",
   "column.blocks": "Engellenen kullanıcılar",
-  "column.bookmarks": "Yer imleri",
+  "column.bookmarks": "Yer İmleri",
   "column.community": "Yerel zaman tüneli",
-  "column.direct": "Doğrudan mesajlar",
+  "column.direct": "Direkt Mesajlar",
   "column.directory": "Profillere göz at",
-  "column.domain_blocks": "Gizli alan adları",
+  "column.domain_blocks": "Engellenen alan adları",
   "column.favourites": "Favoriler",
   "column.follow_requests": "Takip istekleri",
-  "column.home": "Anasayfa",
+  "column.home": "Ana Sayfa",
   "column.lists": "Listeler",
-  "column.mutes": "Susturulmuş kullanıcılar",
+  "column.mutes": "Sessize alınmış kullanıcılar",
   "column.notifications": "Bildirimler",
   "column.pins": "Sabitlenmiş tootlar",
   "column.public": "Federe zaman tüneli",
@@ -89,45 +89,45 @@
   "compose_form.hashtag_warning": "Bu toot liste dışı olduğu için hiç bir etikette yer almayacak. Sadece herkese açık tootlar etiketlerde bulunabilir.",
   "compose_form.lock_disclaimer": "Hesabınız {locked} değil. Sadece takipçilerle paylaştığınız gönderileri görebilmek için sizi herhangi bir kullanıcı takip edebilir.",
   "compose_form.lock_disclaimer.lock": "kilitli",
-  "compose_form.placeholder": "Aklınızdan ne geçiyor?",
+  "compose_form.placeholder": "Aklında ne var?",
   "compose_form.poll.add_option": "Bir seçenek ekleyin",
   "compose_form.poll.duration": "Anket süresi",
-  "compose_form.poll.option_placeholder": "Seçim {number}",
-  "compose_form.poll.remove_option": "Bu seçimi kaldır",
+  "compose_form.poll.option_placeholder": "{number}.seçenek",
+  "compose_form.poll.remove_option": "Bu seçeneği kaldır",
   "compose_form.poll.switch_to_multiple": "Birden çok seçeneğe izin vermek için anketi değiştir",
   "compose_form.poll.switch_to_single": "Tek bir seçeneğe izin vermek için anketi değiştir",
   "compose_form.publish": "Tootla",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Medyayı hassas olarak işaretle",
-  "compose_form.sensitive.marked": "Medya hassas olarak işaretlendi",
-  "compose_form.sensitive.unmarked": "Medya hassas olarak işaretlenmemiş",
+  "compose_form.sensitive.hide": "{count, plural, one {Medyayı hassas olarak işaretle} other {Medyayı hassas olarak işaretle}}",
+  "compose_form.sensitive.marked": "{count, plural, one {Medya hassas olarak işaretlendi} other {Medya hassas olarak işaretlendi}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Medya hassas olarak işaretlenmemiş} other {Medya hassas olarak işaretlenmemiş}}",
   "compose_form.spoiler.marked": "Metin uyarının arkasına gizlenir",
   "compose_form.spoiler.unmarked": "Metin gizli değil",
   "compose_form.spoiler_placeholder": "İçerik uyarısı",
   "confirmation_modal.cancel": "İptal",
-  "confirmations.block.block_and_report": "Engelle & Bildir",
+  "confirmations.block.block_and_report": "Engelle ve Bildir",
   "confirmations.block.confirm": "Engelle",
-  "confirmations.block.message": "{name} kullanıcısını engellemek istiyor musunuz?",
+  "confirmations.block.message": "{name} adlı kullanıcıyı engellemek istediğinizden emin misiniz?",
   "confirmations.delete.confirm": "Sil",
-  "confirmations.delete.message": "Bu gönderiyi silmek istiyor musunuz?",
+  "confirmations.delete.message": "Bu tootu silmek istediğinizden emin misiniz?",
   "confirmations.delete_list.confirm": "Sil",
   "confirmations.delete_list.message": "Bu listeyi kalıcı olarak silmek istediğinize emin misiniz?",
-  "confirmations.domain_block.confirm": "Alan adının tamamını gizle",
+  "confirmations.domain_block.confirm": "Alanın tamamını engelle",
   "confirmations.domain_block.message": "tüm {domain} alan adını engellemek istediğinizden emin misiniz? Genellikle birkaç hedefli engel ve susturma işi görür ve tercih edilir.",
-  "confirmations.logout.confirm": "Çıkış Yap",
-  "confirmations.logout.message": "Çıkış yapmak istediğinize emin misiniz?",
+  "confirmations.logout.confirm": "Oturumu kapat",
+  "confirmations.logout.message": "Oturumu kapatmak istediğinizden emin misiniz?",
   "confirmations.mute.confirm": "Sessize al",
   "confirmations.mute.explanation": "Bu onlardan gelen ve onlardan bahseden gönderileri gizleyecek, fakat yine de onların gönderilerinizi görmelerine ve sizi takip etmelerine izin verecektir.",
-  "confirmations.mute.message": "{name} kullanıcısını sessize almak istiyor musunuz?",
-  "confirmations.redraft.confirm": "Sil ve yeniden tasarla",
-  "confirmations.redraft.message": "Bu durumu silip tekrar taslaklaştırmak istediğinizden emin misiniz? Tüm cevapları, boostları ve favorileri kaybedeceksiniz.",
+  "confirmations.mute.message": "{name} kullanıcısını sessize almak istediğinizden emin misiniz?",
+  "confirmations.redraft.confirm": "Sil ve yeniden taslak yap",
+  "confirmations.redraft.message": "Bu toot'u silmek ve yeniden taslak yapmak istediğinizden emin misiniz? Favoriler, boostlar kaybolacak ve orijinal gönderiye verilen yanıtlar sahipsiz kalacak.",
   "confirmations.reply.confirm": "Yanıtla",
   "confirmations.reply.message": "Şimdi yanıtlarken o an oluşturduğunuz mesajın üzerine yazılır. Devam etmek istediğinize emin misiniz?",
-  "confirmations.unfollow.confirm": "Takibi kaldır",
-  "confirmations.unfollow.message": "{name}'yi takipten çıkarmak istediğinizden emin misiniz?",
-  "conversation.delete": "Konuşmayı sil",
-  "conversation.mark_as_read": "Okunmuş olarak işaretle",
-  "conversation.open": "Konuşmayı görüntüle",
+  "confirmations.unfollow.confirm": "Takibi bırak",
+  "confirmations.unfollow.message": "{name} adlı kullanıcıyı takibi bırakmak istediğinizden emin misiniz?",
+  "conversation.delete": "Sohbeti sil",
+  "conversation.mark_as_read": "Okundu olarak işaretle",
+  "conversation.open": "Sohbeti görüntüle",
   "conversation.with": "{names} ile",
   "directory.federated": "Bilinen fediverse'lerden",
   "directory.local": "Yalnızca {domain} adresinden",
@@ -139,7 +139,7 @@
   "emoji_button.custom": "Özel",
   "emoji_button.flags": "Bayraklar",
   "emoji_button.food": "Yiyecek ve İçecek",
-  "emoji_button.label": "Emoji ekle",
+  "emoji_button.label": "İfade ekle",
   "emoji_button.nature": "Doğa",
   "emoji_button.not_found": "İfade yok!! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "Nesneler",
@@ -152,51 +152,51 @@
   "empty_column.account_timeline": "Burada hiç toot yok!",
   "empty_column.account_unavailable": "Profil kullanılamıyor",
   "empty_column.blocks": "Henüz bir kullanıcıyı engellemediniz.",
-  "empty_column.bookmarked_statuses": "Hiç işaretlediğiniz tootunuz yok. Bir tane olduğunda burada görünecek.",
+  "empty_column.bookmarked_statuses": "Henüz yer imine eklediğiniz toot yok. Yer imine eklendiğinde burada görünecek.",
   "empty_column.community": "Yerel zaman çizelgesi boş. Daha fazla eğlence için herkese açık bir gönderi paylaşın!",
   "empty_column.direct": "Henüz doğrudan mesajınız yok. Bir tane gönderdiğinizde veya aldığınızda burada görünecektir.",
   "empty_column.domain_blocks": "Henüz hiçbir gizli alan adı yok.",
-  "empty_column.favourited_statuses": "Hiç favori tootunuz yok. Bir tane olduğunda burada görünecek.",
+  "empty_column.favourited_statuses": "Hiç favori tootunuz yok. Favori olduğunda burada görünecek.",
   "empty_column.favourites": "Kimse bu tootu favorilerine eklememiş. Biri eklediğinde burada görünecek.",
   "empty_column.follow_requests": "Hiç takip isteğiniz yok. Bir tane aldığınızda burada görünecek.",
   "empty_column.hashtag": "Henüz bu hashtag’e sahip hiçbir gönderi yok.",
   "empty_column.home": "Henüz kimseyi takip etmiyorsunuz. {public} ziyaret edebilir veya arama kısmını kullanarak diğer kullanıcılarla iletişime geçebilirsiniz.",
   "empty_column.home.public_timeline": "herkese açık zaman tüneli",
   "empty_column.list": "Bu listede henüz hiçbir şey yok.",
-  "empty_column.lists": "Henüz hiç listeniz yok. Bir tane oluşturduğunuzda burada görünecek.",
+  "empty_column.lists": "Henüz listeniz yok. Liste oluşturduğunuzda burada görünecek.",
   "empty_column.mutes": "Henüz hiçbir kullanıcıyı sessize almadınız.",
-  "empty_column.notifications": "Henüz hiçbir bildiriminiz yok. Diğer insanlarla sobhet edebilmek için etkileşime geçebilirsiniz.",
+  "empty_column.notifications": "Henüz bildiriminiz yok. Sohbete başlamak için başkalarıyla etkileşim kurun.",
   "empty_column.public": "Burada hiçbir şey yok! Herkese açık bir şeyler yazın veya burayı doldurmak için diğer sunuculardaki kullanıcıları takip edin",
   "error.unexpected_crash.explanation": "Bizim kodumuzdaki bir hatadan ya da tarayıcı uyumluluk sorunundan dolayı, bu sayfa düzgün görüntülenemedi.",
-  "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": "Bu sayfa doğru görüntülenemedi. Bu hata büyük olasılıkla bir tarayıcı eklentisinden veya otomatik çeviri araçlarından kaynaklanır.",
   "error.unexpected_crash.next_steps": "Sayfayı yenilemeyi deneyin. Eğer bu yardımcı olmazsa, Mastodon'u farklı bir tarayıcı ya da yerel uygulama üzerinden kullanabilirsiniz.",
-  "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": "Bunları devre dışı bırakmayı ve sayfayı yenilemeyi deneyin. Bu yardımcı olmazsa, Mastodon'u başka bir tarayıcı veya yerel uygulama aracılığıyla kullanabilirsiniz.",
   "errors.unexpected_crash.copy_stacktrace": "Yığın izlemeyi (stacktrace) panoya kopyala",
   "errors.unexpected_crash.report_issue": "Sorun bildir",
-  "follow_request.authorize": "Yetkilendir",
+  "follow_request.authorize": "İzin Ver",
   "follow_request.reject": "Reddet",
-  "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
-  "generic.saved": "Saved",
+  "follow_requests.unlocked_explanation": "Hesabınız kilitli olmasa bile, {domain} personeli bu hesaplardan gelen takip isteklerini gözden geçirmek isteyebileceğinizi düşündü.",
+  "generic.saved": "Kaydedildi",
   "getting_started.developers": "Geliştiriciler",
-  "getting_started.directory": "Profil dizini",
+  "getting_started.directory": "Profil Dizini",
   "getting_started.documentation": "Belgeler",
-  "getting_started.heading": "Başlangıç",
-  "getting_started.invite": "İnsanları davet edin",
-  "getting_started.open_source_notice": "Mastodon açık kaynaklı bir yazılımdır. Github {github}. {apps} üzerinden katkıda bulunabilir, hata raporlayabilirsiniz.",
-  "getting_started.security": "Güvenlik",
-  "getting_started.terms": "Hizmet koşulları",
+  "getting_started.heading": "Başlarken",
+  "getting_started.invite": "İnsanları davet et",
+  "getting_started.open_source_notice": "Mastodon açık kaynaklı bir yazılımdır. GitHub'taki {github} üzerinden katkıda bulunabilir veya sorunları bildirebilirsiniz.",
+  "getting_started.security": "Hesap ayarları",
+  "getting_started.terms": "Kullanım şartları",
   "hashtag.column_header.tag_mode.all": "ve {additional}",
   "hashtag.column_header.tag_mode.any": "ya da {additional}",
   "hashtag.column_header.tag_mode.none": "{additional} olmadan",
-  "hashtag.column_settings.select.no_options_message": "Hiç öneri bulunamadı",
-  "hashtag.column_settings.select.placeholder": "Hashtagler girin…",
+  "hashtag.column_settings.select.no_options_message": "Öneri bulunamadı",
+  "hashtag.column_settings.select.placeholder": "Etiketler girin…",
   "hashtag.column_settings.tag_mode.all": "Bunların hepsi",
-  "hashtag.column_settings.tag_mode.any": "Bunların hiçbiri",
+  "hashtag.column_settings.tag_mode.any": "Herhangi biri",
   "hashtag.column_settings.tag_mode.none": "Bunların hiçbiri",
   "hashtag.column_settings.tag_toggle": "Bu sütundaki ek etiketleri içer",
   "home.column_settings.basic": "Temel",
-  "home.column_settings.show_reblogs": "Boost edilenleri göster",
-  "home.column_settings.show_replies": "Cevapları göster",
+  "home.column_settings.show_reblogs": "Boostları göster",
+  "home.column_settings.show_replies": "Yanıtları göster",
   "home.hide_announcements": "Duyuruları gizle",
   "home.show_announcements": "Duyuruları göster",
   "intervals.full.days": "{number, plural, one {# gün} other {# gün}}",
@@ -205,18 +205,18 @@
   "introduction.federation.action": "İleri",
   "introduction.federation.federated.headline": "Birleşik",
   "introduction.federation.federated.text": "Diğer dosya sunucularından gelen genel gönderiler, birleşik zaman çizelgesinde görünecektir.",
-  "introduction.federation.home.headline": "Ana sayfa",
+  "introduction.federation.home.headline": "Ana Sayfa",
   "introduction.federation.home.text": "Takip ettiğiniz kişilerin yayınları ana sayfada gösterilecek. Herhangi bir sunucudaki herkesi takip edebilirsiniz!",
   "introduction.federation.local.headline": "Yerel",
   "introduction.federation.local.text": "Aynı sunucudaki kişilerin gönderileri yerel zaman tünelinde gözükecektir.",
-  "introduction.interactions.action": "Öğreticiyi bitirin!",
+  "introduction.interactions.action": "Öğreticiyi bitir!",
   "introduction.interactions.favourite.headline": "Favori",
   "introduction.interactions.favourite.text": "Bir tootu favorilerinize alarak sonrası için saklayabilirsiniz ve yazara tootu beğendiğinizi söyleyebilirsiniz.",
-  "introduction.interactions.reblog.headline": "Yinele",
-  "introduction.interactions.reblog.text": "Başkalarının tootlarını yineleyerek onları kendi takipçilerinizle paylaşabillirsiniz.",
+  "introduction.interactions.reblog.headline": "Boostla",
+  "introduction.interactions.reblog.text": "Başkalarının tootlarını boostlayarak onları kendi takipçilerinizle paylaşabillirsiniz.",
   "introduction.interactions.reply.headline": "Yanıt",
   "introduction.interactions.reply.text": "Başkalarının ve kendinizin tootlarına cevap verebilirsiniz. Bu, onları bir konuşmada zincirli bir şekilde gösterecektir.",
-  "introduction.welcome.action": "Hadi gidelim!",
+  "introduction.welcome.action": "Hadi başlayalım!",
   "introduction.welcome.headline": "İlk adımlar",
   "introduction.welcome.text": "Krallığa hoş geldiniz! Az sonra, geniş bir sunucu yelpazesinde mesaj gönderip arkadaşlarınızla konuşabileceksiniz. Ama bu sunucu, {domain}, özel (profilinizi barındırır, bu yüzden adresini hatırlayın).",
   "keyboard_shortcuts.back": "geriye gitmek için",
@@ -225,7 +225,7 @@
   "keyboard_shortcuts.column": "sütunlardan birindeki duruma odaklanmak için",
   "keyboard_shortcuts.compose": "yazma alanına odaklanmak için",
   "keyboard_shortcuts.description": "Açıklama",
-  "keyboard_shortcuts.direct": "direkt mesajlar sütununu açmak için",
+  "keyboard_shortcuts.direct": "doğrudan mesajlar sütununu açmak için",
   "keyboard_shortcuts.down": "listede aşağıya inmek için",
   "keyboard_shortcuts.enter": "durumu açmak için",
   "keyboard_shortcuts.favourite": "favorilere eklemek için",
@@ -237,16 +237,16 @@
   "keyboard_shortcuts.legend": "bu efsaneyi görüntülemek için",
   "keyboard_shortcuts.local": "yerel zaman tünelini açmak için",
   "keyboard_shortcuts.mention": "yazardan bahsetmek için",
-  "keyboard_shortcuts.muted": "susturulmuş kullanıcı listesini açmak için",
+  "keyboard_shortcuts.muted": "sessize alınmış kullanıcı listesini açmak için",
   "keyboard_shortcuts.my_profile": "profilinizi açmak için",
   "keyboard_shortcuts.notifications": "bildirimler sütununu açmak için",
   "keyboard_shortcuts.open_media": "medyayı açmak için",
   "keyboard_shortcuts.pinned": "sabitlenmiş tootların listesini açmak için",
   "keyboard_shortcuts.profile": "yazarın profilini açmak için",
-  "keyboard_shortcuts.reply": "cevaplamak için",
+  "keyboard_shortcuts.reply": "yanıtlamak için",
   "keyboard_shortcuts.requests": "takip istekleri listesini açmak için",
   "keyboard_shortcuts.search": "aramaya odaklanmak için",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "CW akışı göster/gizle",
   "keyboard_shortcuts.start": "\"başlayın\" sütununu açmak için",
   "keyboard_shortcuts.toggle_hidden": "CW'den önceki yazıyı göstermek/gizlemek için",
   "keyboard_shortcuts.toggle_sensitivity": "medyayı göstermek/gizlemek için",
@@ -254,63 +254,63 @@
   "keyboard_shortcuts.unfocus": "aramada bir gönderiye odaklanmamak için",
   "keyboard_shortcuts.up": "listede yukarıya çıkmak için",
   "lightbox.close": "Kapat",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Resim görüntüleme kutusunu sıkıştır",
+  "lightbox.expand": "Resim görüntüleme kutusunu genişlet",
   "lightbox.next": "Sonraki",
-  "lightbox.previous": "Önceli",
-  "lightbox.view_context": "İçeriği göster",
+  "lightbox.previous": "Önceki",
+  "lightbox.view_context": "İçeriği görüntüle",
   "lists.account.add": "Listeye ekle",
   "lists.account.remove": "Listeden kaldır",
   "lists.delete": "Listeyi sil",
-  "lists.edit": "listeyi düzenle",
+  "lists.edit": "Listeleri düzenle",
   "lists.edit.submit": "Başlığı değiştir",
   "lists.new.create": "Liste ekle",
   "lists.new.title_placeholder": "Yeni liste başlığı",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Takip edilen herhangi bir kullanıcı",
+  "lists.replies_policy.list_replies": "Listenin üyeleri",
+  "lists.replies_policy.no_replies": "Hiç kimse",
+  "lists.replies_policy.title": "Yanıtları göster:",
   "lists.search": "Takip ettiğiniz kişiler arasından arayın",
   "lists.subheading": "Listeleriniz",
   "load_pending": "{count, plural, one {# yeni öğe} other {# yeni öğe}}",
   "loading_indicator.label": "Yükleniyor...",
-  "media_gallery.toggle_visible": "Görünürlüğü değiştir",
+  "media_gallery.toggle_visible": "{number, plural, one {Resmi} other {Resimleri}} gizle",
   "missing_indicator.label": "Bulunamadı",
   "missing_indicator.sublabel": "Bu kaynak bulunamadı",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "Süre",
   "mute_modal.hide_notifications": "Bu kullanıcıdan bildirimler gizlensin mı?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Belirsiz",
   "navigation_bar.apps": "Mobil uygulamalar",
   "navigation_bar.blocks": "Engellenen kullanıcılar",
-  "navigation_bar.bookmarks": "Yer imleri",
-  "navigation_bar.community_timeline": "Yerel zaman tüneli",
+  "navigation_bar.bookmarks": "Yer İmleri",
+  "navigation_bar.community_timeline": "Yerel Zaman Tüneli",
   "navigation_bar.compose": "Yeni toot oluştur",
   "navigation_bar.direct": "Direkt Mesajlar",
   "navigation_bar.discover": "Keşfet",
-  "navigation_bar.domain_blocks": "Gizli alan adları",
+  "navigation_bar.domain_blocks": "Engellenen alan adları",
   "navigation_bar.edit_profile": "Profili düzenle",
   "navigation_bar.favourites": "Favoriler",
-  "navigation_bar.filters": "Susturulmuş kelimeler",
+  "navigation_bar.filters": "Sessize alınmış kelimeler",
   "navigation_bar.follow_requests": "Takip istekleri",
   "navigation_bar.follows_and_followers": "Takip edilenler ve takipçiler",
-  "navigation_bar.info": "Genişletilmiş bilgi",
+  "navigation_bar.info": "Bu sunucu hakkında",
   "navigation_bar.keyboard_shortcuts": "Klavye kısayolları",
   "navigation_bar.lists": "Listeler",
-  "navigation_bar.logout": "Çıkış",
+  "navigation_bar.logout": "Oturumu kapat",
   "navigation_bar.mutes": "Sessize alınmış kullanıcılar",
   "navigation_bar.personal": "Kişisel",
   "navigation_bar.pins": "Sabitlenmiş tootlar",
   "navigation_bar.preferences": "Tercihler",
   "navigation_bar.public_timeline": "Federe zaman tüneli",
   "navigation_bar.security": "Güvenlik",
-  "notification.favourite": "{name} senin durumunu favorilere ekledi",
-  "notification.follow": "{name} seni takip ediyor",
-  "notification.follow_request": "{name} sizi takip etme isteği gönderdi",
+  "notification.favourite": "{name} tootunu beğendi",
+  "notification.follow": "{name} seni takip etti",
+  "notification.follow_request": "{name} size takip isteği gönderdi",
   "notification.mention": "{name} senden bahsetti",
   "notification.own_poll": "Anketiniz sona erdi",
-  "notification.poll": "Oy verdiğiniz bir anket bitti",
-  "notification.reblog": "{name} senin durumunu boost etti",
-  "notification.status": "{name} just posted",
+  "notification.poll": "Oy verdiğiniz bir anket sona erdi",
+  "notification.reblog": "{name} tootunu boostladı",
+  "notification.status": "{name} az önce gönderdi",
   "notifications.clear": "Bildirimleri temizle",
   "notifications.clear_confirmation": "Tüm bildirimlerinizi kalıcı olarak temizlemek ister misiniz?",
   "notifications.column_settings.alert": "Masaüstü bildirimleri",
@@ -320,28 +320,28 @@
   "notifications.column_settings.filter_bar.show": "Göster",
   "notifications.column_settings.follow": "Yeni takipçiler:",
   "notifications.column_settings.follow_request": "Yeni takip istekleri:",
-  "notifications.column_settings.mention": "Bahsedilenler:",
+  "notifications.column_settings.mention": "Bahsetmeler:",
   "notifications.column_settings.poll": "Anket sonuçları:",
-  "notifications.column_settings.push": "Push bildirimleri",
+  "notifications.column_settings.push": "Anlık bildirimler",
   "notifications.column_settings.reblog": "Boostlar:",
   "notifications.column_settings.show": "Bildirimlerde göster",
   "notifications.column_settings.sound": "Ses çal",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Yeni toot'lar:",
   "notifications.filter.all": "Tümü",
   "notifications.filter.boosts": "Boostlar",
   "notifications.filter.favourites": "Favoriler",
   "notifications.filter.follows": "Takip edilenler",
   "notifications.filter.mentions": "Bahsetmeler",
   "notifications.filter.polls": "Anket sonuçları",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "Takip ettiğiniz kişilerden gelen güncellemeler",
   "notifications.group": "{count} bildirim",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "Her bildirimi okundu olarak işaretle",
+  "notifications.permission_denied": "Daha önce reddedilen tarayıcı izinleri isteği nedeniyle masaüstü bildirimleri kullanılamıyor",
+  "notifications.permission_denied_alert": "Tarayıcı izni daha önce reddedildiğinden, masaüstü bildirimleri etkinleştirilemez",
+  "notifications_permission_banner.enable": "Masaüstü bildirimlerini etkinleştir",
+  "notifications_permission_banner.how_to_control": "Mastodon açık olmadığında bildirim almak için masaüstü bildirimlerini etkinleştirin. Etkinleştirildikten sonra yukarıdaki {icon} düğmesini kullanarak hangi etkileşim türlerinin masaüstü bildirimleri oluşturduğunu tam olarak kontrol edebilirsiniz.",
+  "notifications_permission_banner.title": "Hiçbir şeyi kaçırmayın",
+  "picture_in_picture.restore": "Onu geri koy",
   "poll.closed": "Kapandı",
   "poll.refresh": "Yenile",
   "poll.total_people": "{count, plural, one {# kişi} other {# kişi}}",
@@ -352,7 +352,7 @@
   "poll_button.remove_poll": "Anket kaldır",
   "privacy.change": "Gönderi gizliliğini ayarla",
   "privacy.direct.long": "Sadece bahsedilen kişilere gönder",
-  "privacy.direct.short": "Direkt",
+  "privacy.direct.short": "Doğrudan",
   "privacy.private.long": "Sadece takipçilerime gönder",
   "privacy.private.short": "Sadece takipçiler",
   "privacy.public.long": "Herkese açık zaman tüneline gönder",
@@ -363,61 +363,61 @@
   "regeneration_indicator.label": "Yükleniyor…",
   "regeneration_indicator.sublabel": "Ev akışınız hazırlanıyor!",
   "relative_time.days": "{number}g",
-  "relative_time.hours": "{number}s",
+  "relative_time.hours": "{number}sa",
   "relative_time.just_now": "şimdi",
   "relative_time.minutes": "{number}dk",
   "relative_time.seconds": "{number}sn",
   "relative_time.today": "bugün",
   "reply_indicator.cancel": "İptal",
-  "report.forward": "Şu kişiye ilet : {target}",
+  "report.forward": "{target} ilet",
   "report.forward_hint": "Bu hesap başka bir sunucudan. Anonimleştirilmiş bir rapor oraya da gönderilsin mi?",
   "report.hint": "Bu rapor sunucu moderatörlerine gönderilecek. Bu hesabı neden bildirdiğiniz hakkında bilgi verebirsiniz:",
   "report.placeholder": "Ek yorumlar",
   "report.submit": "Gönder",
-  "report.target": "Raporlama",
+  "report.target": "{target} Bildiriliyor",
   "search.placeholder": "Ara",
-  "search_popout.search_format": "Gelişmiş arama formatı",
-  "search_popout.tips.full_text": "Basit metin yazdığınız, tercih ettiğiniz, yinelediğiniz veya bunlardan bahsettiğiniz durumların yanı sıra kullanıcı adlarını, görünen adları ve hashtag'leri eşleştiren durumları döndürür.",
+  "search_popout.search_format": "Gelişmiş arama biçimi",
+  "search_popout.tips.full_text": "Basit metin yazdığınız, tercih ettiğiniz, boostladığınız veya bunlardan bahsettiğiniz tootların yanı sıra kullanıcı adlarını, görünen adları ve hashtag'leri eşleştiren tootları döndürür.",
   "search_popout.tips.hashtag": "etiketler",
-  "search_popout.tips.status": "durum",
+  "search_popout.tips.status": "toot",
   "search_popout.tips.text": "Basit metin, eşleşen görünen adları, kullanıcı adlarını ve hashtag'leri döndürür",
   "search_popout.tips.user": "kullanıcı",
   "search_results.accounts": "İnsanlar",
-  "search_results.hashtags": "Hashtagler",
+  "search_results.hashtags": "Etiketler",
   "search_results.statuses": "Tootlar",
   "search_results.statuses_fts_disabled": "Bu Mastodon sunucusunda toot içeriğine göre arama etkin değil.",
-  "search_results.total": "{count, number} {count, plural, one {sonuç} other {sonuçlar}}",
+  "search_results.total": "{count, number} {count, plural, one {sonuç} other {sonuç}}",
   "status.admin_account": "@{name} için denetim arayüzünü açın",
   "status.admin_status": "Denetim arayüzünde bu durumu açın",
-  "status.block": "Engelle : @{name}",
+  "status.block": "@{name} adlı kişiyi engelle",
   "status.bookmark": "Yer imlerine ekle",
-  "status.cancel_reblog_private": "Boost'u geri al",
+  "status.cancel_reblog_private": "Boostu geri al",
   "status.cannot_reblog": "Bu gönderi boost edilemez",
   "status.copy": "Bağlantı durumunu kopyala",
   "status.delete": "Sil",
-  "status.detailed_status": "Detaylı yazışma dökümü",
+  "status.detailed_status": "Ayrıntılı sohbet görünümü",
   "status.direct": "@{name}'e gönder",
   "status.embed": "Gömülü",
-  "status.favourite": "Favorilere ekle",
+  "status.favourite": "Beğen",
   "status.filtered": "Filtrelenmiş",
   "status.load_more": "Daha fazla",
   "status.media_hidden": "Gizli görsel",
   "status.mention": "Bahset : @{name}",
   "status.more": "Daha fazla",
   "status.mute": "Sustur : @{name}",
-  "status.mute_conversation": "Yazışmayı sustur",
+  "status.mute_conversation": "Sohbeti sessize al",
   "status.open": "Bu gönderiyi genişlet",
   "status.pin": "Profile sabitle",
   "status.pinned": "Sabitlenmiş toot",
   "status.read_more": "Daha dazla oku",
   "status.reblog": "Boostla",
-  "status.reblog_private": "Orjinal kitleye yinele",
-  "status.reblogged_by": "{name} boost etti",
-  "status.reblogs.empty": "Henüz kimse bu tootu yinelemedi. Biri yaptığında burada görünecek.",
+  "status.reblog_private": "Orijinal görünürlük ile boostla",
+  "status.reblogged_by": "{name} boostladı",
+  "status.reblogs.empty": "Henüz kimse bu tootu boostlamadı. Biri yaptığında burada görünecek.",
   "status.redraft": "Sil & tekrar taslakla",
   "status.remove_bookmark": "Yer imini kaldır",
-  "status.reply": "Cevapla",
-  "status.replyAll": "Mesaj dizisini cevapla",
+  "status.reply": "Yanıtla",
+  "status.replyAll": "Konuyu yanıtla",
   "status.report": "@{name}'i raporla",
   "status.sensitive_warning": "Hassas içerik",
   "status.share": "Paylaş",
@@ -427,12 +427,12 @@
   "status.show_more_all": "Hepsi için daha fazla göster",
   "status.show_thread": "Mesaj dizisini göster",
   "status.uncached_media_warning": "Mevcut değil",
-  "status.unmute_conversation": "Sohbeti aç",
+  "status.unmute_conversation": "Sohbet sesini aç",
   "status.unpin": "Profilden sabitlemeyi kaldır",
   "suggestions.dismiss": "Öneriyi görmezden gel",
   "suggestions.header": "Şuna ilgi duyuyor olabilirsiniz…",
   "tabs_bar.federated_timeline": "Federe",
-  "tabs_bar.home": "Ana sayfa",
+  "tabs_bar.home": "Ana Sayfa",
   "tabs_bar.local_timeline": "Yerel",
   "tabs_bar.notifications": "Bildirimler",
   "tabs_bar.search": "Ara",
@@ -441,16 +441,16 @@
   "time_remaining.minutes": "{number, plural, one {# dakika} other {# dakika}} kaldı",
   "time_remaining.moments": "Sadece birkaç dakika kaldı",
   "time_remaining.seconds": "{number, plural, one {# saniye} other {# saniye}} kaldı",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
+  "timeline_hint.remote_resource_not_displayed": "diğer sunucudaki {resource} gösterilemiyor.",
   "timeline_hint.resources.followers": "Takipçiler",
   "timeline_hint.resources.follows": "Takip Edilenler",
   "timeline_hint.resources.statuses": "Eski tootlar",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} kişi} other {{counter} kişi}} konuşuyor",
   "trends.trending_now": "Şu an popüler",
   "ui.beforeunload": "Mastodon'dan ayrılırsanız taslağınız kaybolacak.",
-  "units.short.billion": "{count}B",
+  "units.short.billion": "{count}Mia",
   "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.thousand": "{count}B",
   "upload_area.title": "Karşıya yükleme için sürükle bırak yapınız",
   "upload_button.label": "Görsel ekle",
   "upload_error.limit": "Dosya yükleme sınırı aşıldı.",
@@ -458,17 +458,17 @@
   "upload_form.audio_description": "İşitme kaybı olan kişiler için tarif edin",
   "upload_form.description": "Görme engelliler için açıklama",
   "upload_form.edit": "Düzenle",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Küçük Resimi Değiştir",
   "upload_form.undo": "Geri al",
   "upload_form.video_description": "İşitme kaybı veya görme engeli olan kişiler için tarif edin",
   "upload_modal.analyzing_picture": "Resmi analiz ediyor…",
   "upload_modal.apply": "Uygula",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Resim seç",
   "upload_modal.description_placeholder": "Pijamalı hasta yağız şoföre çabucak güvendi",
   "upload_modal.detect_text": "Resimdeki metni algıla",
   "upload_modal.edit_media": "Medyayı düzenle",
   "upload_modal.hint": "Her zaman tüm küçük resimlerde görüntülenecek odak noktasını seçmek için ön izlemedeki daireyi tıklayın veya sürükleyin.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "OCR hazırlanıyor…",
   "upload_modal.preview_label": "Ön izleme ({ratio})",
   "upload_progress.label": "Yükleniyor...",
   "video.close": "Videoyu kapat",
diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json
index 17ffe5519..2e57d620b 100644
--- a/app/javascript/mastodon/locales/ug.json
+++ b/app/javascript/mastodon/locales/ug.json
@@ -470,7 +470,7 @@
   "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
   "upload_modal.preparing_ocr": "Preparing OCR…",
   "upload_modal.preview_label": "Preview ({ratio})",
-  "upload_progress.label": "Uploading…",
+  "upload_progress.label": "Uploading...",
   "video.close": "Close video",
   "video.download": "Download file",
   "video.exit_fullscreen": "Exit full screen",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index ac69cfc73..dab23f448 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -17,8 +17,8 @@
   "account.follow": "Підписатися",
   "account.followers": "Підписники",
   "account.followers.empty": "Ніхто ще не підписався на цього користувача.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "{count, plural, one {{counter} Підписник} few {{counter} Підписники} many {{counter} Підписників} other {{counter} Підписники}}",
+  "account.following_counter": "{count, plural, one {{counter} Підписка} few {{counter} Підписки} many {{counter} Підписок} other {{counter} Підписки}}",
   "account.follows.empty": "Цей користувач ще ні на кого не підписався.",
   "account.follows_you": "Підписаний(-а) на вас",
   "account.hide_reblogs": "Сховати передмухи від @{name}",
@@ -38,7 +38,7 @@
   "account.requested": "Очікує підтвердження. Натисніть щоб відмінити запит",
   "account.share": "Поділитися профілем @{name}",
   "account.show_reblogs": "Показати передмухи від @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} Пост} few {{counter} Пости} many {{counter} Постів} other {{counter} Пости}}",
   "account.unblock": "Розблокувати @{name}",
   "account.unblock_domain": "Розблокувати {domain}",
   "account.unendorse": "Не публікувати у профілі",
@@ -176,7 +176,7 @@
   "follow_request.authorize": "Авторизувати",
   "follow_request.reject": "Відмовити",
   "follow_requests.unlocked_explanation": "Хоча ваш обліковий запис не заблоковано, працівники {domain} припускають, що, можливо, ви хотіли б переглянути ці запити на підписку.",
-  "generic.saved": "Saved",
+  "generic.saved": "Збережено",
   "getting_started.developers": "Розробникам",
   "getting_started.directory": "Каталог профілів",
   "getting_started.documentation": "Документація",
@@ -445,25 +445,25 @@
   "timeline_hint.resources.followers": "Підписники",
   "timeline_hint.resources.follows": "Підписки",
   "timeline_hint.resources.statuses": "Старіші дмухи",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} особа обговорює} few {{counter} особи обговорюють} many {{counter} осіб обговорюють} other {{counter} особи обговорюють}}",
   "trends.trending_now": "Актуальні",
   "ui.beforeunload": "Вашу чернетку буде втрачено, якщо ви покинете Mastodon.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.billion": "{count} млрд",
+  "units.short.million": "{count} млн",
+  "units.short.thousand": "{count} тис",
   "upload_area.title": "Перетягніть сюди, щоб завантажити",
-  "upload_button.label": "Додати медіа ({formats})",
+  "upload_button.label": "Додати медіа",
   "upload_error.limit": "Ліміт завантаження файлів перевищено.",
   "upload_error.poll": "Не можна завантажувати файли до опитувань.",
   "upload_form.audio_description": "Опишіть для людей із вадами слуху",
   "upload_form.description": "Опишіть для людей з вадами зору",
   "upload_form.edit": "Змінити",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "Змінити мініатюру",
   "upload_form.undo": "Видалити",
   "upload_form.video_description": "Опишіть для людей із вадами слуху або зору",
   "upload_modal.analyzing_picture": "Аналізуємо малюнок…",
   "upload_modal.apply": "Застосувати",
-  "upload_modal.choose_image": "Choose image",
+  "upload_modal.choose_image": "Вибрати зображення",
   "upload_modal.description_placeholder": "Щурячий бугай із їжаком-харцизом в'ючись підписали ґешефт у єнах",
   "upload_modal.detect_text": "Виявити текст на малюнку",
   "upload_modal.edit_media": "Редагувати медіа",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 25711b869..e9d9a42d2 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -8,11 +8,11 @@
   "account.blocked": "Đã chặn",
   "account.browse_more_on_origin_server": "Tìm những tài khoản có liên quan",
   "account.cancel_follow_request": "Hủy yêu cầu theo dõi",
-  "account.direct": "Nhắn tin cho @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.direct": "Nhắn tin @{name}",
+  "account.disable_notifications": "Không thông báo khi @{name} đăng tút",
   "account.domain_blocked": "Đã chặn người dùng",
-  "account.edit_profile": "Chỉnh sửa trang cá nhân",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.edit_profile": "Giới thiệu bản thân",
+  "account.enable_notifications": "Thông báo khi @{name} đăng tút",
   "account.endorse": "Vinh danh người này",
   "account.follow": "Theo dõi",
   "account.followers": "Người theo dõi",
@@ -22,7 +22,7 @@
   "account.follows.empty": "Người dùng này chưa theo dõi ai.",
   "account.follows_you": "Đang theo dõi bạn",
   "account.hide_reblogs": "Ẩn chia sẻ từ @{name}",
-  "account.last_status": "Hoạt động cuối",
+  "account.last_status": "Trực tuyến",
   "account.link_verified_on": "Liên kết này đã được xác thực vào {date}",
   "account.locked_info": "Người dùng này thiết lập trạng thái ẩn. Họ sẽ tự mình xét duyệt các yêu cầu theo dõi.",
   "account.media": "Bộ sưu tập",
@@ -33,7 +33,7 @@
   "account.muted": "Đã ẩn",
   "account.never_active": "Chưa có bất cứ hoạt động nào",
   "account.posts": "Tút",
-  "account.posts_with_replies": "Trả lời",
+  "account.posts_with_replies": "Tương tác",
   "account.report": "Báo cáo @{name}",
   "account.requested": "Đang chờ chấp thuận. Nhấp vào đây để hủy yêu cầu theo dõi",
   "account.share": "Chia sẻ hồ sơ @{name}",
@@ -50,9 +50,9 @@
   "alert.rate_limited.title": "Vượt giới hạn",
   "alert.unexpected.message": "Đã xảy ra lỗi không mong muốn.",
   "alert.unexpected.title": "Ốiii!",
-  "announcement.announcement": "Thông báo",
+  "announcement.announcement": "Thông báo chung",
   "autosuggest_hashtag.per_week": "{count} mỗi tuần",
-  "boost_modal.combo": "Bạn có thể nhấn {combo} để bỏ qua",
+  "boost_modal.combo": "Nhấn {combo} để chia sẻ nhanh hơn",
   "bundle_column_error.body": "Đã có lỗi xảy ra trong khi tải nội dung này.",
   "bundle_column_error.retry": "Thử lại",
   "bundle_column_error.title": "Không có kết nối internet",
@@ -60,25 +60,25 @@
   "bundle_modal_error.message": "Đã có lỗi xảy ra trong khi tải nội dung này.",
   "bundle_modal_error.retry": "Thử lại",
   "column.blocks": "Người dùng đã chặn",
-  "column.bookmarks": "Tút đã lưu",
+  "column.bookmarks": "Những tút bạn đã lưu",
   "column.community": "Máy chủ của bạn",
   "column.direct": "Tin nhắn của bạn",
-  "column.directory": "Tìm một ai đó",
+  "column.directory": "Tìm người cùng sở thích",
   "column.domain_blocks": "Máy chủ đã chặn",
-  "column.favourites": "Thích",
+  "column.favourites": "Lượt thích của bạn",
   "column.follow_requests": "Yêu cầu theo dõi",
   "column.home": "Bảng tin",
   "column.lists": "Danh sách",
   "column.mutes": "Người dùng đã ẩn",
   "column.notifications": "Thông báo",
   "column.pins": "Tút ghim",
-  "column.public": "Mạng liên kết",
+  "column.public": "Từ những máy chủ khác",
   "column_back_button.label": "Quay lại",
-  "column_header.hide_settings": "Ẩn cài đặt",
+  "column_header.hide_settings": "Ẩn bộ lọc",
   "column_header.moveLeft_settings": "Dời cột sang bên trái",
   "column_header.moveRight_settings": "Dời cột sang bên phải",
   "column_header.pin": "Ghim",
-  "column_header.show_settings": "Hiển thị cài đặt",
+  "column_header.show_settings": "Hiện bộ lọc",
   "column_header.unpin": "Không ghim",
   "column_subheading.settings": "Cài đặt",
   "community.column_settings.local_only": "Chỉ máy chủ của bạn",
@@ -101,8 +101,8 @@
   "compose_form.sensitive.hide": "Nội dung nhạy cảm",
   "compose_form.sensitive.marked": "Nội dung đã đánh dấu nhạy cảm",
   "compose_form.sensitive.unmarked": "Nội dung không đánh dấu nhạy cảm",
-  "compose_form.spoiler.marked": "Văn bản bị ẩn",
-  "compose_form.spoiler.unmarked": "Văn bản không ẩn sau spoil",
+  "compose_form.spoiler.marked": "Hủy nội dung ẩn",
+  "compose_form.spoiler.unmarked": "Tạo nội dung ẩn",
   "compose_form.spoiler_placeholder": "Viết nội dung ẩn của bạn ở đây",
   "confirmation_modal.cancel": "Hủy bỏ",
   "confirmations.block.block_and_report": "Chặn & Báo cáo",
@@ -117,7 +117,7 @@
   "confirmations.logout.confirm": "Đăng xuất",
   "confirmations.logout.message": "Bạn có thật sự muốn thoát?",
   "confirmations.mute.confirm": "Ẩn",
-  "confirmations.mute.explanation": "Điều này sẽ khiến tút của người đó và những tút có đề cập đến họ bị ẩn, tuy nhiên vẫn cho phép họ xem bài đăng của bạn và theo dõi bạn.",
+  "confirmations.mute.explanation": "Điều này sẽ khiến tút của họ và những tút có nhắc đến họ bị ẩn, tuy nhiên họ vẫn có thể xem tút của bạn và theo dõi bạn.",
   "confirmations.mute.message": "Bạn có chắc chắn muốn ẩn {name}?",
   "confirmations.redraft.confirm": "Xóa & viết lại",
   "confirmations.redraft.message": "Bạn có chắc chắn muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt thích và chia sẻ của tút, cũng như những trả lời sẽ không còn nội dung gốc.",
@@ -129,7 +129,7 @@
   "conversation.mark_as_read": "Đánh dấu là đã đọc",
   "conversation.open": "Xem toàn bộ tin nhắn",
   "conversation.with": "Với {names}",
-  "directory.federated": "Từ mạng liên kết",
+  "directory.federated": "Từ mạng liên hợp",
   "directory.local": "Từ {domain}",
   "directory.new_arrivals": "Mới tham gia",
   "directory.recently_active": "Hoạt động gần đây",
@@ -162,15 +162,15 @@
   "empty_column.hashtag": "Chưa có bài đăng nào sử dụng hashtag này.",
   "empty_column.home": "Chưa có bất cứ gì! Hãy bắt đầu bằng cách tìm kiếm hoặc truy cập {public} để theo dõi những người bạn quan tâm.",
   "empty_column.home.public_timeline": "tút công khai",
-  "empty_column.list": "Chưa có gì trong danh sách. Khi thành viên của danh sách này đăng tút mới, chúng mới xuất hiện ở đây.",
-  "empty_column.lists": "Bạn không có danh sách nào.",
+  "empty_column.list": "Chưa có tút. Khi những người trong danh sách này đăng tút mới, chúng sẽ xuất hiện ở đây.",
+  "empty_column.lists": "Bạn chưa tạo danh sách nào.",
   "empty_column.mutes": "Bạn chưa ẩn người dùng nào.",
   "empty_column.notifications": "Bạn chưa có thông báo nào. Hãy thử theo dõi hoặc nhắn tin cho một ai đó.",
   "empty_column.public": "Trống trơn! Bạn hãy viết gì đó hoặc bắt đầu theo dõi người dùng khác",
   "error.unexpected_crash.explanation": "Trang này có thể không hiển thị chính xác do lỗi lập trình Mastodon hoặc vấn đề tương thích trình duyệt.",
-  "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": "Trang này không thể hiển thị do xung khắc với add-on của trình duyệt hoặc công cụ tự động dịch ngôn ngữ.",
   "error.unexpected_crash.next_steps": "Hãy thử làm mới trang. Nếu vẫn không được, bạn hãy vào Mastodon bằng một ứng dụng di động hoặc trình duyệt khác.",
-  "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": "Hãy tắt add-on và làm tươi trang. Nếu vẫn không được, bạn nên thử đăng nhập Mastodon trên trình duyệt khác hoặc app khác.",
   "errors.unexpected_crash.copy_stacktrace": "Sao chép stacktrace vào clipboard",
   "errors.unexpected_crash.report_issue": "Báo cáo lỗi",
   "follow_request.authorize": "Cho phép",
@@ -178,9 +178,9 @@
   "follow_requests.unlocked_explanation": "Mặc dù tài khoản của bạn đang ở chế độ công khai, quản trị viên của {domain} vẫn tin rằng bạn sẽ muốn xem lại yêu cầu theo dõi từ những người khác.",
   "generic.saved": "Đã lưu",
   "getting_started.developers": "Nhà phát triển",
-  "getting_started.directory": "Danh sách người dùng",
+  "getting_started.directory": "Kết bạn",
   "getting_started.documentation": "Tài liệu",
-  "getting_started.heading": "Dành cho người mới",
+  "getting_started.heading": "Quản lý",
   "getting_started.invite": "Mời bạn bè",
   "getting_started.open_source_notice": "Mastodon là phần mềm mã nguồn mở. Bạn có thể đóng góp hoặc báo lỗi trên GitHub tại {github}.",
   "getting_started.security": "Bảo mật",
@@ -203,12 +203,12 @@
   "intervals.full.hours": "{number, plural, other {# giờ}}",
   "intervals.full.minutes": "{number, plural, other {# phút}}",
   "introduction.federation.action": "Tiếp theo",
-  "introduction.federation.federated.headline": "Mạng liên kết",
-  "introduction.federation.federated.text": "Nếu máy chủ của bạn có liên kết với các máy chủ khác, bài đăng công khai từ họ sẽ xuất hiện ở Mạng liên kết.",
+  "introduction.federation.federated.headline": "Mạng liên hợp",
+  "introduction.federation.federated.text": "Nếu máy chủ của bạn có liên kết với các máy chủ khác, bài đăng công khai từ họ sẽ xuất hiện ở Thế giới.",
   "introduction.federation.home.headline": "Bảng tin",
   "introduction.federation.home.text": "Bảng tin là nơi hiển thị bài đăng từ những người bạn theo dõi. Bạn có thể theo dõi bất cứ ai trên bất cứ máy chủ nào!",
-  "introduction.federation.local.headline": "Máy chủ của bạn",
-  "introduction.federation.local.text": "Máy chủ của bạn là nơi hiển thị bài đăng công khai từ những người thuộc cùng một máy chủ của bạn.",
+  "introduction.federation.local.headline": "Cộng đồng",
+  "introduction.federation.local.text": "Cộng đồng là nơi hiển thị bài đăng công khai từ những người thuộc cùng một máy chủ của bạn.",
   "introduction.interactions.action": "Tôi đã hiểu rồi!",
   "introduction.interactions.favourite.headline": "Thích",
   "introduction.interactions.favourite.text": "Thích một tút có nghĩa là bạn tâm đắc nội dung của tút và muốn lưu giữ để sau này xem lại.",
@@ -230,7 +230,7 @@
   "keyboard_shortcuts.enter": "viết tút mới",
   "keyboard_shortcuts.favourite": "thích",
   "keyboard_shortcuts.favourites": "mở lượt thích",
-  "keyboard_shortcuts.federated": "mở mạng liên kết",
+  "keyboard_shortcuts.federated": "mở mạng liên hợp",
   "keyboard_shortcuts.heading": "Các phím tắt",
   "keyboard_shortcuts.home": "mở bảng tin",
   "keyboard_shortcuts.hotkey": "Phím tắt",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "đưa con trỏ ra khỏi ô soạn thảo hoặc ô tìm kiếm",
   "keyboard_shortcuts.up": "di chuyển lên trên danh sách",
   "lightbox.close": "Đóng",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "Thu gọn khung hình",
+  "lightbox.expand": "Mở rộng khung hình",
   "lightbox.next": "Tiếp",
   "lightbox.previous": "Trước",
   "lightbox.view_context": "Xem nội dung",
@@ -264,31 +264,31 @@
   "lists.delete": "Xóa danh sách",
   "lists.edit": "Sửa danh sách",
   "lists.edit.submit": "Thay đổi tiêu đề",
-  "lists.new.create": "Thêm vào danh sách",
+  "lists.new.create": "Tạo danh sách mới",
   "lists.new.title_placeholder": "Tên danh sách mới",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "Bất cứ người dùng nào đã theo dõi",
+  "lists.replies_policy.list_replies": "Thành viên trong danh sách",
+  "lists.replies_policy.no_replies": "Tắt bình luận",
+  "lists.replies_policy.title": "Cho phép bình luận với:",
   "lists.search": "Tìm kiếm những người mà bạn quan tâm",
   "lists.subheading": "Danh sách của bạn",
   "load_pending": "{count, plural, one {# tút} other {# tút}}",
-  "loading_indicator.label": "Đang tải...",
+  "loading_indicator.label": "Chờ xíu...",
   "media_gallery.toggle_visible": "Ẩn {number, plural, one {ảnh} other {ảnh}}",
   "missing_indicator.label": "Không tìm thấy",
-  "missing_indicator.sublabel": "Không tìm thấy cái này",
-  "mute_modal.duration": "Duration",
+  "missing_indicator.sublabel": "Nội dung này không còn tồn tại",
+  "mute_modal.duration": "Thời hạn",
   "mute_modal.hide_notifications": "Ẩn thông báo từ người dùng này?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "Vĩnh viễn",
   "navigation_bar.apps": "Apps",
   "navigation_bar.blocks": "Người dùng đã chặn",
   "navigation_bar.bookmarks": "Đã lưu",
-  "navigation_bar.community_timeline": "Máy chủ của bạn",
-  "navigation_bar.compose": "Soạn tút mới",
+  "navigation_bar.community_timeline": "Cộng đồng",
+  "navigation_bar.compose": "Viết tút mới",
   "navigation_bar.direct": "Tin nhắn",
-  "navigation_bar.discover": "Cộng đồng",
+  "navigation_bar.discover": "Khám phá",
   "navigation_bar.domain_blocks": "Máy chủ đã ẩn",
-  "navigation_bar.edit_profile": "Chỉnh sửa trang cá nhân",
+  "navigation_bar.edit_profile": "Giới thiệu bản thân",
   "navigation_bar.favourites": "Lượt thích",
   "navigation_bar.filters": "Bộ lọc từ ngữ",
   "navigation_bar.follow_requests": "Yêu cầu theo dõi",
@@ -301,55 +301,55 @@
   "navigation_bar.personal": "Cá nhân",
   "navigation_bar.pins": "Tút ghim",
   "navigation_bar.preferences": "Cài đặt",
-  "navigation_bar.public_timeline": "Dòng thời gian liên kết",
+  "navigation_bar.public_timeline": "Thế giới",
   "navigation_bar.security": "Bảo mật",
-  "notification.favourite": "{name} vừa thích tút của bạn",
-  "notification.follow": "{name} vừa theo dõi bạn",
-  "notification.follow_request": "{name} vừa yêu cầu theo dõi bạn",
+  "notification.favourite": "{name} thích tút của bạn",
+  "notification.follow": "{name} theo dõi bạn",
+  "notification.follow_request": "{name} yêu cầu theo dõi bạn",
   "notification.mention": "{name} nhắc đến bạn",
-  "notification.own_poll": "Cuộc thăm dò của bạn đã kết thúc",
-  "notification.poll": "Một cuộc thăm dò mà bạn tham gia đã kết thúc",
+  "notification.own_poll": "Cuộc bình chọn của bạn đã kết thúc",
+  "notification.poll": "Một cuộc bình chọn mà bạn tham gia đã kết thúc",
   "notification.reblog": "{name} chia sẻ tút của bạn",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} vừa đăng",
   "notifications.clear": "Làm trống thông báo",
   "notifications.clear_confirmation": "Bạn có chắc chắn muốn xóa vĩnh viễn tất cả thông báo của mình?",
   "notifications.column_settings.alert": "Thông báo trên máy tính",
   "notifications.column_settings.favourite": "Lượt thích:",
-  "notifications.column_settings.filter_bar.advanced": "Hiển thị toàn bộ",
-  "notifications.column_settings.filter_bar.category": "Lọc nhanh",
-  "notifications.column_settings.filter_bar.show": "Hiện",
+  "notifications.column_settings.filter_bar.advanced": "Toàn bộ",
+  "notifications.column_settings.filter_bar.category": "Phân loại",
+  "notifications.column_settings.filter_bar.show": "Lượt nhắc",
   "notifications.column_settings.follow": "Người theo dõi mới:",
   "notifications.column_settings.follow_request": "Yêu cầu theo dõi mới:",
-  "notifications.column_settings.mention": "Đề cập:",
-  "notifications.column_settings.poll": "Kết quả cuộc thăm dò:",
+  "notifications.column_settings.mention": "Lượt nhắc đến:",
+  "notifications.column_settings.poll": "Kết quả bình chọn:",
   "notifications.column_settings.push": "Thông báo đẩy",
   "notifications.column_settings.reblog": "Lượt chia sẻ mới:",
   "notifications.column_settings.show": "Thông báo trên thanh menu",
   "notifications.column_settings.sound": "Kèm theo tiếng \"bíp\"",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Tút mới:",
   "notifications.filter.all": "Toàn bộ",
   "notifications.filter.boosts": "Chia sẻ",
   "notifications.filter.favourites": "Thích",
   "notifications.filter.follows": "Đang theo dõi",
   "notifications.filter.mentions": "Lượt nhắc đến",
-  "notifications.filter.polls": "Kết quả cuộc thăm dò",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.polls": "Kết quả bình chọn",
+  "notifications.filter.statuses": "Cập nhật từ những người bạn theo dõi",
   "notifications.group": "{count} thông báo",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
-  "poll.closed": "Cuộc thăm dò đã kết thúc",
+  "notifications.mark_as_read": "Đánh dấu tất cả thông báo là đã đọc",
+  "notifications.permission_denied": "Trình duyệt không cho phép hiển thị thông báo trên màn hình.",
+  "notifications.permission_denied_alert": "Không thể bật thông báo trên màn hình bởi vì trình duyệt đã cấm trước đó",
+  "notifications_permission_banner.enable": "Cho phép thông báo trên màn hình",
+  "notifications_permission_banner.how_to_control": "Hãy bật thông báo trên màn hình để không bỏ lỡ những thông báo từ Mastodon. Một khi đã bật, bạn có thể lựa chọn từng loại thông báo khác nhau thông qua {icon} nút bên dưới.",
+  "notifications_permission_banner.title": "Không bỏ lỡ điều thú vị nào",
+  "picture_in_picture.restore": "Hiển thị bình thường",
+  "poll.closed": "Kết thúc",
   "poll.refresh": "Làm mới",
   "poll.total_people": "{count, plural, one {# người bình chọn} other {# người bình chọn}}",
   "poll.total_votes": "{count, plural, one {# bình chọn} other {# bình chọn}}",
-  "poll.vote": "Cuộc thăm dò",
+  "poll.vote": "Khảo sát",
   "poll.voted": "Bạn đã bình chọn câu trả lời này",
-  "poll_button.add_poll": "Tạo thăm dò",
-  "poll_button.remove_poll": "Hủy thăm dò",
+  "poll_button.add_poll": "Tạo cuộc bình chọn",
+  "poll_button.remove_poll": "Hủy cuộc bình chọn",
   "privacy.change": "Thay đổi quyền riêng tư",
   "privacy.direct.long": "Chỉ người được nhắc đến mới thấy",
   "privacy.direct.short": "Tin nhắn",
@@ -357,12 +357,12 @@
   "privacy.private.short": "Chỉ người theo dõi",
   "privacy.public.long": "Hiện trên bảng tin máy chủ",
   "privacy.public.short": "Công khai",
-  "privacy.unlisted.long": "Ai cũng có thể xem nhưng không hiện trên bảng tin máy chủ",
+  "privacy.unlisted.long": "Công khai nhưng không hiện trên bảng tin máy chủ",
   "privacy.unlisted.short": "Mở",
   "refresh": "Làm mới",
   "regeneration_indicator.label": "Đang tải…",
   "regeneration_indicator.sublabel": "Bảng tin của bạn đang được cập nhật!",
-  "relative_time.days": "{number}d",
+  "relative_time.days": "{number} ngày",
   "relative_time.hours": "{number}h",
   "relative_time.just_now": "vừa xong",
   "relative_time.minutes": "{number}m",
@@ -370,14 +370,14 @@
   "relative_time.today": "hôm nay",
   "reply_indicator.cancel": "Hủy bỏ",
   "report.forward": "Chuyển đến {target}",
-  "report.forward_hint": "Người dùng này ở máy chủ khác. Gửi một báo xấu ẩn danh tới máy chủ đó?",
-  "report.hint": "Hãy cho quản trị viên biết lý do tại sao bạn lại báo xấu tài khoản này:",
+  "report.forward_hint": "Người dùng này ở máy chủ khác. Gửi một báo cáo ẩn danh tới máy chủ đó?",
+  "report.hint": "Hãy cho quản trị viên biết lý do vì sao bạn báo cáo tài khoản này:",
   "report.placeholder": "Bổ sung thêm",
   "report.submit": "Gửi đi",
-  "report.target": "Báo xấu {target}",
+  "report.target": "Báo cáo {target}",
   "search.placeholder": "Tìm kiếm",
-  "search_popout.search_format": "Tìm kiếm nâng cao",
-  "search_popout.tips.full_text": "Nội dung trả về bao gồm các tút do bạn viết, yêu thích, đã chia sẻ hoặc được nhắc đến. Cũng như địa chỉ người dùng, tên hiển thị lẫn hashtag.",
+  "search_popout.search_format": "Gợi ý",
+  "search_popout.tips.full_text": "Nội dung trả về bao gồm những tút do bạn viết, yêu thích, đã chia sẻ hoặc những tút có nhắc đến bạn. Bạn cũng có thể tìm địa chỉ người dùng, tên hiển thị và hashtag.",
   "search_popout.tips.hashtag": "hashtag",
   "search_popout.tips.status": "tút",
   "search_popout.tips.text": "Nội dung trả về là địa chỉ người dùng, tên hiển thị và hashtag",
@@ -396,7 +396,7 @@
   "status.copy": "Sao chép URL",
   "status.delete": "Xóa",
   "status.detailed_status": "Xem chi tiết thêm",
-  "status.direct": "Nhắn riêng @{name}",
+  "status.direct": "Nhắn tin @{name}",
   "status.embed": "Nhúng",
   "status.favourite": "Thích",
   "status.filtered": "Bộ lọc",
@@ -409,31 +409,31 @@
   "status.open": "Xem nguyên văn",
   "status.pin": "Ghim lên trang cá nhân",
   "status.pinned": "Tút đã ghim",
-  "status.read_more": "Đọc thêm",
+  "status.read_more": "Đọc thêm tút",
   "status.reblog": "Chia sẻ",
-  "status.reblog_private": "Chia sẻ với người viết tút gốc",
+  "status.reblog_private": "Chia sẻ với người có thể xem",
   "status.reblogged_by": "{name} chia sẻ",
   "status.reblogs.empty": "Tút này chưa có ai chia sẻ. Nếu có, nó sẽ hiển thị ở đây.",
   "status.redraft": "Xóa và viết lại",
   "status.remove_bookmark": "Hủy lưu",
   "status.reply": "Trả lời",
   "status.replyAll": "Trả lời tất cả",
-  "status.report": "Báo xấu @{name}",
+  "status.report": "Báo cáo @{name}",
   "status.sensitive_warning": "Nội dung nhạy cảm",
   "status.share": "Chia sẻ",
   "status.show_less": "Thu gọn",
   "status.show_less_all": "Thu gọn tất cả",
   "status.show_more": "Mở rộng",
   "status.show_more_all": "Hiển thị tất cả",
-  "status.show_thread": "Hiện thêm",
+  "status.show_thread": "Xem thêm",
   "status.uncached_media_warning": "N/A",
   "status.unmute_conversation": "Quan tâm",
   "status.unpin": "Bỏ ghim trên trang cá nhân",
   "suggestions.dismiss": "Tắt đề xuất",
   "suggestions.header": "Có thể bạn quan tâm…",
-  "tabs_bar.federated_timeline": "Mạng liên kết",
+  "tabs_bar.federated_timeline": "Thế giới",
   "tabs_bar.home": "Bảng tin",
-  "tabs_bar.local_timeline": "Máy chủ của bạn",
+  "tabs_bar.local_timeline": "Cộng đồng",
   "tabs_bar.notifications": "Thông báo",
   "tabs_bar.search": "Tìm kiếm",
   "time_remaining.days": "Kết thúc sau {number, plural, other {# ngày}}",
@@ -454,25 +454,25 @@
   "upload_area.title": "Kéo và thả để tải lên",
   "upload_button.label": "Thêm media (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Tập tin tải lên vượt quá giới hạn cho phép.",
-  "upload_error.poll": "Cuộc thăm dò không được tải tập tin.",
-  "upload_form.audio_description": "Mô tả cho người thính giác kém",
+  "upload_error.poll": "Cuộc bình chọn không cho phép đính kèm tập tin.",
+  "upload_form.audio_description": "Mô tả cho người mất thính giác",
   "upload_form.description": "Mô tả cho người khiếm thị",
   "upload_form.edit": "Biên tập",
   "upload_form.thumbnail": "Đổi ảnh thumbnail",
   "upload_form.undo": "Xóa bỏ",
-  "upload_form.video_description": "Mô tả cho người có vấn đề về thính giác",
+  "upload_form.video_description": "Mô tả cho người mất thị lực hoặc không thể nghe",
   "upload_modal.analyzing_picture": "Phân tích hình ảnh",
   "upload_modal.apply": "Áp dụng",
-  "upload_modal.choose_image": "Chọn hình",
+  "upload_modal.choose_image": "Chọn ảnh",
   "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
-  "upload_modal.detect_text": "Phát hiện văn bản trong hình ảnh",
-  "upload_modal.edit_media": "Chỉnh sửa ảnh/video",
+  "upload_modal.detect_text": "Trích văn bản từ trong ảnh",
+  "upload_modal.edit_media": "Biên tập",
   "upload_modal.hint": "Nhấp hoặc kéo vòng tròn trên bản xem trước để chọn phần hiển thị trên hình thu nhỏ.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Đang nhận dạng ký tự…",
   "upload_modal.preview_label": "Xem trước ({ratio})",
   "upload_progress.label": "Đang tải lên...",
   "video.close": "Đóng video",
-  "video.download": "Tải tập tin",
+  "video.download": "Lưu về máy",
   "video.exit_fullscreen": "Thoát toàn màn hình",
   "video.expand": "Mở rộng video",
   "video.fullscreen": "Toàn màn hình",
diff --git a/app/javascript/mastodon/locales/whitelist_sa.json b/app/javascript/mastodon/locales/whitelist_sa.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/mastodon/locales/whitelist_sa.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/mastodon/locales/whitelist_zgh.json b/app/javascript/mastodon/locales/whitelist_zgh.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/mastodon/locales/whitelist_zgh.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json
new file mode 100644
index 000000000..2e57d620b
--- /dev/null
+++ b/app/javascript/mastodon/locales/zgh.json
@@ -0,0 +1,484 @@
+{
+  "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.block": "Block @{name}",
+  "account.block_domain": "Block domain {domain}",
+  "account.blocked": "Blocked",
+  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.cancel_follow_request": "Cancel follow request",
+  "account.direct": "Direct message @{name}",
+  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.domain_blocked": "Domain blocked",
+  "account.edit_profile": "Edit profile",
+  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.endorse": "Feature on profile",
+  "account.follow": "Follow",
+  "account.followers": "Followers",
+  "account.followers.empty": "No one follows this user yet.",
+  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
+  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.follows.empty": "This user doesn't follow anyone yet.",
+  "account.follows_you": "Follows you",
+  "account.hide_reblogs": "Hide boosts from @{name}",
+  "account.last_status": "Last active",
+  "account.link_verified_on": "Ownership of this link was checked on {date}",
+  "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+  "account.media": "Media",
+  "account.mention": "Mention @{name}",
+  "account.moved_to": "{name} has moved to:",
+  "account.mute": "Mute @{name}",
+  "account.mute_notifications": "Mute notifications from @{name}",
+  "account.muted": "Muted",
+  "account.never_active": "Never",
+  "account.posts": "Toots",
+  "account.posts_with_replies": "Toots and replies",
+  "account.report": "Report @{name}",
+  "account.requested": "Awaiting approval",
+  "account.share": "Share @{name}'s profile",
+  "account.show_reblogs": "Show boosts from @{name}",
+  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.unblock": "Unblock @{name}",
+  "account.unblock_domain": "Unblock domain {domain}",
+  "account.unendorse": "Don't feature on profile",
+  "account.unfollow": "Unfollow",
+  "account.unmute": "Unmute @{name}",
+  "account.unmute_notifications": "Unmute notifications from @{name}",
+  "account_note.placeholder": "Click to add a note",
+  "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",
+  "autosuggest_hashtag.per_week": "{count} per week",
+  "boost_modal.combo": "You can press {combo} to skip this next time",
+  "bundle_column_error.body": "Something went wrong while loading this component.",
+  "bundle_column_error.retry": "Try again",
+  "bundle_column_error.title": "Network error",
+  "bundle_modal_error.close": "Close",
+  "bundle_modal_error.message": "Something went wrong while loading this component.",
+  "bundle_modal_error.retry": "Try again",
+  "column.blocks": "Blocked users",
+  "column.bookmarks": "Bookmarks",
+  "column.community": "Local timeline",
+  "column.direct": "Direct messages",
+  "column.directory": "Browse profiles",
+  "column.domain_blocks": "Blocked domains",
+  "column.favourites": "Favourites",
+  "column.follow_requests": "Follow requests",
+  "column.home": "Home",
+  "column.lists": "Lists",
+  "column.mutes": "Muted users",
+  "column.notifications": "Notifications",
+  "column.pins": "Pinned toot",
+  "column.public": "Federated timeline",
+  "column_back_button.label": "Back",
+  "column_header.hide_settings": "Hide settings",
+  "column_header.moveLeft_settings": "Move column to the left",
+  "column_header.moveRight_settings": "Move column to the right",
+  "column_header.pin": "Pin",
+  "column_header.show_settings": "Show settings",
+  "column_header.unpin": "Unpin",
+  "column_subheading.settings": "Settings",
+  "community.column_settings.local_only": "Local only",
+  "community.column_settings.media_only": "Media only",
+  "community.column_settings.remote_only": "Remote only",
+  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
+  "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
+  "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
+  "compose_form.lock_disclaimer.lock": "locked",
+  "compose_form.placeholder": "What is on your mind?",
+  "compose_form.poll.add_option": "Add a choice",
+  "compose_form.poll.duration": "Poll duration",
+  "compose_form.poll.option_placeholder": "Choice {number}",
+  "compose_form.poll.remove_option": "Remove this choice",
+  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
+  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.publish": "Toot",
+  "compose_form.publish_loud": "{publish}!",
+  "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
+  "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
+  "compose_form.spoiler.marked": "Text is hidden behind warning",
+  "compose_form.spoiler.unmarked": "Text is not hidden",
+  "compose_form.spoiler_placeholder": "Write your warning here",
+  "confirmation_modal.cancel": "Cancel",
+  "confirmations.block.block_and_report": "Block & Report",
+  "confirmations.block.confirm": "Block",
+  "confirmations.block.message": "Are you sure you want to block {name}?",
+  "confirmations.delete.confirm": "Delete",
+  "confirmations.delete.message": "Are you sure you want to delete this status?",
+  "confirmations.delete_list.confirm": "Delete",
+  "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
+  "confirmations.domain_block.confirm": "Hide entire domain",
+  "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+  "confirmations.logout.confirm": "Log out",
+  "confirmations.logout.message": "Are you sure you want to log out?",
+  "confirmations.mute.confirm": "Mute",
+  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
+  "confirmations.mute.message": "Are you sure you want to mute {name}?",
+  "confirmations.redraft.confirm": "Delete & redraft",
+  "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
+  "confirmations.reply.confirm": "Reply",
+  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+  "confirmations.unfollow.confirm": "Unfollow",
+  "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
+  "conversation.delete": "Delete conversation",
+  "conversation.mark_as_read": "Mark as read",
+  "conversation.open": "View conversation",
+  "conversation.with": "With {names}",
+  "directory.federated": "From known fediverse",
+  "directory.local": "From {domain} only",
+  "directory.new_arrivals": "New arrivals",
+  "directory.recently_active": "Recently active",
+  "embed.instructions": "Embed this status on your website by copying the code below.",
+  "embed.preview": "Here is what it will look like:",
+  "emoji_button.activity": "Activity",
+  "emoji_button.custom": "Custom",
+  "emoji_button.flags": "Flags",
+  "emoji_button.food": "Food & Drink",
+  "emoji_button.label": "Insert emoji",
+  "emoji_button.nature": "Nature",
+  "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.objects": "Objects",
+  "emoji_button.people": "People",
+  "emoji_button.recent": "Frequently used",
+  "emoji_button.search": "Search...",
+  "emoji_button.search_results": "Search results",
+  "emoji_button.symbols": "Symbols",
+  "emoji_button.travel": "Travel & Places",
+  "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
+  "empty_column.blocks": "You haven't blocked any users yet.",
+  "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+  "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
+  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.domain_blocks": "There are no blocked domains yet.",
+  "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
+  "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
+  "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
+  "empty_column.hashtag": "There is nothing in this hashtag yet.",
+  "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
+  "empty_column.home.public_timeline": "the public timeline",
+  "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
+  "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
+  "empty_column.mutes": "You haven't muted any users yet.",
+  "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
+  "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
+  "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
+  "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
+  "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+  "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+  "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
+  "errors.unexpected_crash.report_issue": "Report issue",
+  "follow_request.authorize": "Authorize",
+  "follow_request.reject": "Reject",
+  "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
+  "generic.saved": "Saved",
+  "getting_started.developers": "Developers",
+  "getting_started.directory": "Profile directory",
+  "getting_started.documentation": "Documentation",
+  "getting_started.heading": "Getting started",
+  "getting_started.invite": "Invite people",
+  "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
+  "getting_started.security": "Security",
+  "getting_started.terms": "Terms of service",
+  "hashtag.column_header.tag_mode.all": "and {additional}",
+  "hashtag.column_header.tag_mode.any": "or {additional}",
+  "hashtag.column_header.tag_mode.none": "without {additional}",
+  "hashtag.column_settings.select.no_options_message": "No suggestions found",
+  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+  "hashtag.column_settings.tag_mode.all": "All of these",
+  "hashtag.column_settings.tag_mode.any": "Any of these",
+  "hashtag.column_settings.tag_mode.none": "None of these",
+  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "home.column_settings.basic": "Basic",
+  "home.column_settings.show_reblogs": "Show boosts",
+  "home.column_settings.show_replies": "Show replies",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
+  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+  "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+  "introduction.federation.action": "Next",
+  "introduction.federation.federated.headline": "Federated",
+  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+  "introduction.federation.home.headline": "Home",
+  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+  "introduction.federation.local.headline": "Local",
+  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
+  "introduction.interactions.action": "Finish toot-orial!",
+  "introduction.interactions.favourite.headline": "Favourite",
+  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
+  "introduction.interactions.reblog.headline": "Boost",
+  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
+  "introduction.interactions.reply.headline": "Reply",
+  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
+  "introduction.welcome.action": "Let's go!",
+  "introduction.welcome.headline": "First steps",
+  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
+  "keyboard_shortcuts.back": "to navigate back",
+  "keyboard_shortcuts.blocked": "to open blocked users list",
+  "keyboard_shortcuts.boost": "to boost",
+  "keyboard_shortcuts.column": "to focus a status in one of the columns",
+  "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.description": "Description",
+  "keyboard_shortcuts.direct": "to open direct messages column",
+  "keyboard_shortcuts.down": "to move down in the list",
+  "keyboard_shortcuts.enter": "to open status",
+  "keyboard_shortcuts.favourite": "to favourite",
+  "keyboard_shortcuts.favourites": "to open favourites list",
+  "keyboard_shortcuts.federated": "to open federated timeline",
+  "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+  "keyboard_shortcuts.home": "to open home timeline",
+  "keyboard_shortcuts.hotkey": "Hotkey",
+  "keyboard_shortcuts.legend": "to display this legend",
+  "keyboard_shortcuts.local": "to open local timeline",
+  "keyboard_shortcuts.mention": "to mention author",
+  "keyboard_shortcuts.muted": "to open muted users list",
+  "keyboard_shortcuts.my_profile": "to open your profile",
+  "keyboard_shortcuts.notifications": "to open notifications column",
+  "keyboard_shortcuts.open_media": "to open media",
+  "keyboard_shortcuts.pinned": "to open pinned toots list",
+  "keyboard_shortcuts.profile": "to open author's profile",
+  "keyboard_shortcuts.reply": "to reply",
+  "keyboard_shortcuts.requests": "to open follow requests list",
+  "keyboard_shortcuts.search": "to focus search",
+  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.start": "to open \"get started\" column",
+  "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
+  "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
+  "keyboard_shortcuts.toot": "to start a brand new toot",
+  "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+  "keyboard_shortcuts.up": "to move up in the list",
+  "lightbox.close": "Close",
+  "lightbox.compress": "Compress image view box",
+  "lightbox.expand": "Expand image view box",
+  "lightbox.next": "Next",
+  "lightbox.previous": "Previous",
+  "lightbox.view_context": "View context",
+  "lists.account.add": "Add to list",
+  "lists.account.remove": "Remove from list",
+  "lists.delete": "Delete list",
+  "lists.edit": "Edit list",
+  "lists.edit.submit": "Change title",
+  "lists.new.create": "Add list",
+  "lists.new.title_placeholder": "New list title",
+  "lists.replies_policy.all_replies": "Any followed user",
+  "lists.replies_policy.list_replies": "Members of the list",
+  "lists.replies_policy.no_replies": "No one",
+  "lists.replies_policy.title": "Show replies to:",
+  "lists.search": "Search among people you follow",
+  "lists.subheading": "Your lists",
+  "load_pending": "{count, plural, one {# new item} other {# new items}}",
+  "loading_indicator.label": "Loading...",
+  "media_gallery.toggle_visible": "Hide {number, plural, one {image} other {images}}",
+  "missing_indicator.label": "Not found",
+  "missing_indicator.sublabel": "This resource could not be found",
+  "mute_modal.duration": "Duration",
+  "mute_modal.hide_notifications": "Hide notifications from this user?",
+  "mute_modal.indefinite": "Indefinite",
+  "navigation_bar.apps": "Mobile apps",
+  "navigation_bar.blocks": "Blocked users",
+  "navigation_bar.bookmarks": "Bookmarks",
+  "navigation_bar.community_timeline": "Local timeline",
+  "navigation_bar.compose": "Compose new toot",
+  "navigation_bar.direct": "Direct messages",
+  "navigation_bar.discover": "Discover",
+  "navigation_bar.domain_blocks": "Hidden domains",
+  "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.favourites": "Favourites",
+  "navigation_bar.filters": "Muted words",
+  "navigation_bar.follow_requests": "Follow requests",
+  "navigation_bar.follows_and_followers": "Follows and followers",
+  "navigation_bar.info": "About this server",
+  "navigation_bar.keyboard_shortcuts": "Hotkeys",
+  "navigation_bar.lists": "Lists",
+  "navigation_bar.logout": "Logout",
+  "navigation_bar.mutes": "Muted users",
+  "navigation_bar.personal": "Personal",
+  "navigation_bar.pins": "Pinned toots",
+  "navigation_bar.preferences": "Preferences",
+  "navigation_bar.public_timeline": "Federated timeline",
+  "navigation_bar.security": "Security",
+  "notification.favourite": "{name} favourited your status",
+  "notification.follow": "{name} followed you",
+  "notification.follow_request": "{name} has requested to follow you",
+  "notification.mention": "{name} mentioned you",
+  "notification.own_poll": "Your poll has ended",
+  "notification.poll": "A poll you have voted in has ended",
+  "notification.reblog": "{name} boosted your status",
+  "notification.status": "{name} just posted",
+  "notifications.clear": "Clear notifications",
+  "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
+  "notifications.column_settings.alert": "Desktop notifications",
+  "notifications.column_settings.favourite": "Favourites:",
+  "notifications.column_settings.filter_bar.advanced": "Display all categories",
+  "notifications.column_settings.filter_bar.category": "Quick filter bar",
+  "notifications.column_settings.filter_bar.show": "Show",
+  "notifications.column_settings.follow": "New followers:",
+  "notifications.column_settings.follow_request": "New follow requests:",
+  "notifications.column_settings.mention": "Mentions:",
+  "notifications.column_settings.poll": "Poll results:",
+  "notifications.column_settings.push": "Push notifications",
+  "notifications.column_settings.reblog": "Boosts:",
+  "notifications.column_settings.show": "Show in column",
+  "notifications.column_settings.sound": "Play sound",
+  "notifications.column_settings.status": "New toots:",
+  "notifications.filter.all": "All",
+  "notifications.filter.boosts": "Boosts",
+  "notifications.filter.favourites": "Favourites",
+  "notifications.filter.follows": "Follows",
+  "notifications.filter.mentions": "Mentions",
+  "notifications.filter.polls": "Poll results",
+  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.group": "{count} notifications",
+  "notifications.mark_as_read": "Mark every notification as read",
+  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
+  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
+  "notifications_permission_banner.enable": "Enable desktop notifications",
+  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
+  "notifications_permission_banner.title": "Never miss a thing",
+  "picture_in_picture.restore": "Put it back",
+  "poll.closed": "Closed",
+  "poll.refresh": "Refresh",
+  "poll.total_people": "{count, plural, one {# person} other {# people}}",
+  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+  "poll.vote": "Vote",
+  "poll.voted": "You voted for this answer",
+  "poll_button.add_poll": "Add a poll",
+  "poll_button.remove_poll": "Remove poll",
+  "privacy.change": "Adjust status privacy",
+  "privacy.direct.long": "Visible for mentioned users only",
+  "privacy.direct.short": "Direct",
+  "privacy.private.long": "Visible for followers only",
+  "privacy.private.short": "Followers-only",
+  "privacy.public.long": "Visible for all, shown in public timelines",
+  "privacy.public.short": "Public",
+  "privacy.unlisted.long": "Visible for all, but not in public timelines",
+  "privacy.unlisted.short": "Unlisted",
+  "refresh": "Refresh",
+  "regeneration_indicator.label": "Loading…",
+  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+  "relative_time.days": "{number}d",
+  "relative_time.hours": "{number}h",
+  "relative_time.just_now": "now",
+  "relative_time.minutes": "{number}m",
+  "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
+  "reply_indicator.cancel": "Cancel",
+  "report.forward": "Forward to {target}",
+  "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
+  "report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
+  "report.placeholder": "Additional comments",
+  "report.submit": "Submit",
+  "report.target": "Report {target}",
+  "search.placeholder": "Search",
+  "search_popout.search_format": "Advanced search format",
+  "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+  "search_popout.tips.hashtag": "hashtag",
+  "search_popout.tips.status": "status",
+  "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+  "search_popout.tips.user": "user",
+  "search_results.accounts": "People",
+  "search_results.hashtags": "Hashtags",
+  "search_results.statuses": "Toots",
+  "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
+  "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
+  "status.admin_account": "Open moderation interface for @{name}",
+  "status.admin_status": "Open this status in the moderation interface",
+  "status.block": "Block @{name}",
+  "status.bookmark": "Bookmark",
+  "status.cancel_reblog_private": "Unboost",
+  "status.cannot_reblog": "This post cannot be boosted",
+  "status.copy": "Copy link to status",
+  "status.delete": "Delete",
+  "status.detailed_status": "Detailed conversation view",
+  "status.direct": "Direct message @{name}",
+  "status.embed": "Embed",
+  "status.favourite": "Favourite",
+  "status.filtered": "Filtered",
+  "status.load_more": "Load more",
+  "status.media_hidden": "Media hidden",
+  "status.mention": "Mention @{name}",
+  "status.more": "More",
+  "status.mute": "Mute @{name}",
+  "status.mute_conversation": "Mute conversation",
+  "status.open": "Expand this status",
+  "status.pin": "Pin on profile",
+  "status.pinned": "Pinned toot",
+  "status.read_more": "Read more",
+  "status.reblog": "Boost",
+  "status.reblog_private": "Boost with original visibility",
+  "status.reblogged_by": "{name} boosted",
+  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
+  "status.redraft": "Delete & re-draft",
+  "status.remove_bookmark": "Remove bookmark",
+  "status.reply": "Reply",
+  "status.replyAll": "Reply to thread",
+  "status.report": "Report @{name}",
+  "status.sensitive_warning": "Sensitive content",
+  "status.share": "Share",
+  "status.show_less": "Show less",
+  "status.show_less_all": "Show less for all",
+  "status.show_more": "Show more",
+  "status.show_more_all": "Show more for all",
+  "status.show_thread": "Show thread",
+  "status.uncached_media_warning": "Not available",
+  "status.unmute_conversation": "Unmute conversation",
+  "status.unpin": "Unpin from profile",
+  "suggestions.dismiss": "Dismiss suggestion",
+  "suggestions.header": "You might be interested in…",
+  "tabs_bar.federated_timeline": "Federated",
+  "tabs_bar.home": "Home",
+  "tabs_bar.local_timeline": "Local",
+  "tabs_bar.notifications": "Notifications",
+  "tabs_bar.search": "Search",
+  "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+  "time_remaining.moments": "Moments remaining",
+  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
+  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
+  "timeline_hint.resources.followers": "Followers",
+  "timeline_hint.resources.follows": "Follows",
+  "timeline_hint.resources.statuses": "Older toots",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "trends.trending_now": "Trending now",
+  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
+  "units.short.billion": "{count}B",
+  "units.short.million": "{count}M",
+  "units.short.thousand": "{count}K",
+  "upload_area.title": "Drag & drop to upload",
+  "upload_button.label": "Add images, a video or an audio file",
+  "upload_error.limit": "File upload limit exceeded.",
+  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_form.audio_description": "Describe for people with hearing loss",
+  "upload_form.description": "Describe for the visually impaired",
+  "upload_form.edit": "Edit",
+  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.undo": "Delete",
+  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+  "upload_modal.analyzing_picture": "Analyzing picture…",
+  "upload_modal.apply": "Apply",
+  "upload_modal.choose_image": "Choose image",
+  "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
+  "upload_modal.detect_text": "Detect text from picture",
+  "upload_modal.edit_media": "Edit media",
+  "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
+  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preview_label": "Preview ({ratio})",
+  "upload_progress.label": "Uploading...",
+  "video.close": "Close video",
+  "video.download": "Download file",
+  "video.exit_fullscreen": "Exit full screen",
+  "video.expand": "Expand video",
+  "video.fullscreen": "Full screen",
+  "video.hide": "Hide video",
+  "video.mute": "Mute sound",
+  "video.pause": "Pause",
+  "video.play": "Play",
+  "video.unmute": "Unmute sound"
+}
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 8052cc4f1..ac189fda1 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -9,16 +9,16 @@
   "account.browse_more_on_origin_server": "在原始个人资料页面上浏览详情",
   "account.cancel_follow_request": "取消关注请求",
   "account.direct": "发送私信给 @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "当 @{name} 发嘟时不要通知我",
   "account.domain_blocked": "网站已屏蔽",
   "account.edit_profile": "修改个人资料",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "当 @{name} 发嘟时通知我",
   "account.endorse": "在个人资料中推荐此用户",
   "account.follow": "关注",
   "account.followers": "关注者",
   "account.followers.empty": "目前无人关注此用户。",
-  "account.followers_counter": "被 {count, plural, one {{counter} 人} other {{counter} 人}}关注",
-  "account.following_counter": "正在关注 {count, plural, other {{counter} 人}}",
+  "account.followers_counter": "被 {counter} 人关注",
+  "account.following_counter": "正在关注 {counter} 人",
   "account.follows.empty": "此用户目前尚未关注任何人。",
   "account.follows_you": "关注了你",
   "account.hide_reblogs": "隐藏来自 @{name} 的转嘟",
@@ -38,7 +38,7 @@
   "account.requested": "正在等待对方同意。点击以取消发送关注请求",
   "account.share": "分享 @{name} 的个人资料",
   "account.show_reblogs": "显示来自 @{name} 的转嘟",
-  "account.statuses_counter": "{count, plural, one {{counter} 条} other {{counter} 条}}嘟文",
+  "account.statuses_counter": "{counter} 条嘟文",
   "account.unblock": "解除屏蔽 @{name}",
   "account.unblock_domain": "不再隐藏来自 {domain} 的内容",
   "account.unendorse": "不在个人资料中推荐此用户",
@@ -168,9 +168,9 @@
   "empty_column.notifications": "你还没有收到过任何通知,快和其他用户互动吧。",
   "empty_column.public": "这里什么都没有!写一些公开的嘟文,或者关注其他服务器的用户后,这里就会有嘟文出现了",
   "error.unexpected_crash.explanation": "此页面无法正确显示,这可能是因为我们的代码中有错误,也可能是因为浏览器兼容问题。",
-  "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": "此页面无法正确显示,这个错误很可能是由浏览器附加组件或自动翻译工具造成的。",
   "error.unexpected_crash.next_steps": "刷新一下页面试试。如果没用,您可以换个浏览器或者用本地应用。",
-  "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": "请尝试禁用它们并刷新页面。如果没有帮助,您仍可以尝试使用其他浏览器或原生应用来使用 Mastodon。",
   "errors.unexpected_crash.copy_stacktrace": "把堆栈跟踪信息复制到剪贴板",
   "errors.unexpected_crash.report_issue": "报告问题",
   "follow_request.authorize": "同意",
@@ -254,8 +254,8 @@
   "keyboard_shortcuts.unfocus": "取消输入",
   "keyboard_shortcuts.up": "在列表中让光标上移",
   "lightbox.close": "关闭",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "返回图片全览",
+  "lightbox.expand": "放大查看图片",
   "lightbox.next": "下一个",
   "lightbox.previous": "上一个",
   "lightbox.view_context": "查看上下文",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "更改标题",
   "lists.new.create": "新建列表",
   "lists.new.title_placeholder": "新列表的标题",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "任何关注的用户",
+  "lists.replies_policy.list_replies": "列表成员",
+  "lists.replies_policy.no_replies": "没有人",
+  "lists.replies_policy.title": "显示回复给:",
   "lists.search": "搜索你关注的人",
   "lists.subheading": "你的列表",
   "load_pending": "{count} 项",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "隐藏 {number} 张图片",
   "missing_indicator.label": "找不到内容",
   "missing_indicator.sublabel": "无法找到此资源",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "持续期间",
   "mute_modal.hide_notifications": "同时隐藏来自这个用户的通知?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "无期限",
   "navigation_bar.apps": "移动应用",
   "navigation_bar.blocks": "已屏蔽的用户",
   "navigation_bar.bookmarks": "书签",
@@ -310,7 +310,7 @@
   "notification.own_poll": "您的投票已经结束",
   "notification.poll": "你参与的一个投票已经结束",
   "notification.reblog": "{name} 转嘟了你的嘟文",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} 刚刚发嘟",
   "notifications.clear": "清空通知列表",
   "notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
   "notifications.column_settings.alert": "桌面通知",
@@ -326,22 +326,22 @@
   "notifications.column_settings.reblog": "当有人转嘟了你的嘟文时:",
   "notifications.column_settings.show": "在通知栏显示",
   "notifications.column_settings.sound": "播放音效",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "新嘟文:",
   "notifications.filter.all": "全部",
   "notifications.filter.boosts": "转嘟",
   "notifications.filter.favourites": "喜欢",
   "notifications.filter.follows": "关注",
   "notifications.filter.mentions": "提及",
   "notifications.filter.polls": "投票结果",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "您关注的人的动态",
   "notifications.group": "{count} 条通知",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "notifications.mark_as_read": "将所有通知标为已读",
+  "notifications.permission_denied": "由于权限被拒绝,无法启用桌面通知。",
+  "notifications.permission_denied_alert": "由于在此之前浏览器权限请求就已被拒绝,所以启用桌面通知失败",
+  "notifications_permission_banner.enable": "启用桌面通知",
+  "notifications_permission_banner.how_to_control": "启用桌面通知以在 Mastodon 未打开时接收通知。您可以通过交互通过上面的 {icon} 按钮来精细控制可以发送桌面通知的交互类型。",
+  "notifications_permission_banner.title": "精彩不容错过",
+  "picture_in_picture.restore": "恢复",
   "poll.closed": "已关闭",
   "poll.refresh": "刷新",
   "poll.total_people": "{count}人",
@@ -350,7 +350,7 @@
   "poll.voted": "您已经对这个答案投过票了",
   "poll_button.add_poll": "发起投票",
   "poll_button.remove_poll": "移除投票",
-  "privacy.change": "设置嘟文可见范围",
+  "privacy.change": "设置嘟文的可见范围",
   "privacy.direct.long": "只有被提及的用户能看到",
   "privacy.direct.short": "私信",
   "privacy.private.long": "只有关注你的用户能看到",
@@ -405,7 +405,7 @@
   "status.mention": "提及 @{name}",
   "status.more": "更多",
   "status.mute": "隐藏 @{name}",
-  "status.mute_conversation": "隐藏此对话",
+  "status.mute_conversation": "将此对话静音",
   "status.open": "展开嘟文",
   "status.pin": "在个人资料页面置顶",
   "status.pinned": "置顶嘟文",
@@ -452,7 +452,7 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "将文件拖放到此处开始上传",
-  "upload_button.label": "上传媒体文件 ({formats})",
+  "upload_button.label": "上传媒体文件",
   "upload_error.limit": "文件大小超过限制。",
   "upload_error.poll": "投票中不允许上传文件。",
   "upload_form.audio_description": "为听障人士添加文字描述",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "从图片中检测文本",
   "upload_modal.edit_media": "编辑媒体",
   "upload_modal.hint": "在预览图上点击或拖动圆圈,以选择缩略图的焦点。",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "正在准备文字识别……",
   "upload_modal.preview_label": "预览 ({ratio})",
   "upload_progress.label": "上传中……",
   "video.close": "关闭视频",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 59b950a82..346bf058e 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -1,12 +1,12 @@
 {
-  "account.account_note_header": "備註",
+  "account.account_note_header": "筆記",
   "account.add_or_remove_from_list": "從名單中新增或移除",
   "account.badges.bot": "機械人",
   "account.badges.group": "群組",
   "account.block": "封鎖 @{name}",
   "account.block_domain": "隱藏來自 {domain} 的一切文章",
   "account.blocked": "封鎖",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "在該服務器的個人檔案頁上瀏覽更多",
   "account.cancel_follow_request": "取消關注請求",
   "account.direct": "私訊 @{name}",
   "account.disable_notifications": "Stop notifying me when @{name} posts",
@@ -17,8 +17,8 @@
   "account.follow": "關注",
   "account.followers": "關注的人",
   "account.followers.empty": "尚沒有人關注這位使用者。",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "被 {count, plural,one {{counter} 人}other {{counter} 人}}關注",
+  "account.following_counter": "正在關注 {count, plural,one {{counter}}other {{counter} 人}}",
   "account.follows.empty": "這位使用者尚未關注任何使用者。",
   "account.follows_you": "關注你",
   "account.hide_reblogs": "隱藏 @{name} 的轉推",
@@ -38,14 +38,14 @@
   "account.requested": "等候審批",
   "account.share": "分享 @{name} 的個人資料",
   "account.show_reblogs": "顯示 @{name} 的推文",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural,one {{counter} 則}other {{counter} 則}}嘟文",
   "account.unblock": "解除對 @{name} 的封鎖",
   "account.unblock_domain": "不再隱藏 {domain}",
   "account.unendorse": "不再於個人資料頁面推薦對方",
   "account.unfollow": "取消關注",
   "account.unmute": "取消 @{name} 的靜音",
   "account.unmute_notifications": "取消來自 @{name} 通知的靜音",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "按此添加備注",
   "alert.rate_limited.message": "請在 {retry_time, time, medium} 過後重試",
   "alert.rate_limited.title": "已限速",
   "alert.unexpected.message": "發生不可預期的錯誤。",
@@ -81,9 +81,9 @@
   "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": "只有遠端",
+  "community.column_settings.remote_only": "只顯示外站",
   "compose_form.direct_message_warning": "這文章只有被提及的用戶才可以看到。",
   "compose_form.direct_message_warning_learn_more": "了解更多",
   "compose_form.hashtag_warning": "這文章因為不是公開,所以不會被標籤搜索。只有公開的文章才會被標籤搜索。",
@@ -175,8 +175,8 @@
   "errors.unexpected_crash.report_issue": "舉報問題",
   "follow_request.authorize": "批准",
   "follow_request.reject": "拒絕",
-  "follow_requests.unlocked_explanation": "即便您的帳號未被鎖定,{domain} 的員工認為可能想要自己審核這些帳號的追蹤請求。",
-  "generic.saved": "Saved",
+  "follow_requests.unlocked_explanation": "即使您的帳戶未上鎖,{domain} 的工作人員認為您可能想手動審核來自這些帳戶的關注請求。",
+  "generic.saved": "已儲存",
   "getting_started.developers": "開發者",
   "getting_started.directory": "個人資料目錄",
   "getting_started.documentation": "文件",
@@ -246,7 +246,7 @@
   "keyboard_shortcuts.reply": "回覆",
   "keyboard_shortcuts.requests": "開啟關注請求名單",
   "keyboard_shortcuts.search": "把標示移動到搜索",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "顯示或隱藏被折疊的正文",
   "keyboard_shortcuts.start": "開啟「開始使用」欄位",
   "keyboard_shortcuts.toggle_hidden": "顯示或隱藏被標為敏感的文字",
   "keyboard_shortcuts.toggle_sensitivity": "顯示 / 隱藏媒體",
@@ -441,11 +441,11 @@
   "time_remaining.minutes": "剩餘{number, plural, one {# 分鐘} other {# 分鐘}}",
   "time_remaining.moments": "剩餘時間",
   "time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "timeline_hint.remote_resource_not_displayed": "不會顯示來自其他服務器的 {resource}",
+  "timeline_hint.resources.followers": "關注者",
+  "timeline_hint.resources.follows": "關注中",
+  "timeline_hint.resources.statuses": "更早的嘟文",
+  "trends.counter_by_accounts": "{count, plural,one {{counter} 人}other {{counter} 人}}正在討論",
   "trends.trending_now": "目前趨勢",
   "ui.beforeunload": "如果你現在離開 Mastodon,你的草稿內容將會被丟棄。",
   "units.short.billion": "{count}B",
@@ -458,7 +458,7 @@
   "upload_form.audio_description": "簡單描述內容給聽障人士",
   "upload_form.description": "為視覺障礙人士添加文字說明",
   "upload_form.edit": "編輯",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "更改預覽圖",
   "upload_form.undo": "刪除",
   "upload_form.video_description": "簡單描述給聽障或視障人士",
   "upload_modal.analyzing_picture": "正在分析圖片…",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 3e4045c0f..598407a30 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -6,19 +6,19 @@
   "account.block": "封鎖 @{name}",
   "account.block_domain": "隱藏來自 {domain} 的所有內容",
   "account.blocked": "已封鎖",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
+  "account.browse_more_on_origin_server": "在該服務器的個人檔案頁上瀏覽更多",
   "account.cancel_follow_request": "取消關注請求",
   "account.direct": "傳私訊給 @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "當 @{name} 嘟文時不要再通知我",
   "account.domain_blocked": "已隱藏網域",
   "account.edit_profile": "編輯個人資料",
-  "account.enable_notifications": "Notify me when @{name} posts",
+  "account.enable_notifications": "當 @{name} 嘟文時通知我",
   "account.endorse": "在個人資料推薦對方",
   "account.follow": "關注",
   "account.followers": "關注者",
   "account.followers.empty": "尚沒有人關注這位使用者。",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+  "account.followers_counter": "被 {count, plural,one {{counter} 人}other {{counter} 人}}關注",
+  "account.following_counter": "正在關注 {count, plural,one {{counter}}other {{counter} 人}}",
   "account.follows.empty": "這位使用者尚未關注任何使用者。",
   "account.follows_you": "關注了你",
   "account.hide_reblogs": "隱藏來自 @{name} 的轉推",
@@ -38,14 +38,14 @@
   "account.requested": "正在等待核准。按一下取消關注請求",
   "account.share": "分享 @{name} 的個人資料",
   "account.show_reblogs": "顯示來自 @{name} 的嘟文",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural,one {{counter} 則}other {{counter} 則}}嘟文",
   "account.unblock": "取消封鎖 @{name}",
   "account.unblock_domain": "取消隱藏 {domain}",
   "account.unendorse": "不再於個人資料頁面推薦對方",
   "account.unfollow": "取消關注",
   "account.unmute": "取消靜音 @{name}",
   "account.unmute_notifications": "重新接收來自 @{name} 的通知",
-  "account_note.placeholder": "Click to add a note",
+  "account_note.placeholder": "按此添加備注",
   "alert.rate_limited.message": "請在 {retry_time, time, medium} 過後重試",
   "alert.rate_limited.title": "已限速",
   "alert.unexpected.message": "發生了非預期的錯誤。",
@@ -168,15 +168,15 @@
   "empty_column.notifications": "您尚未收到任何通知,和別人互動開啟對話吧。",
   "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己關注其他伺服器的使用者後就會有嘟文出現了",
   "error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,故無法正常顯示頁面。",
-  "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": "此頁面無法被正常顯示,這可能是由瀏覽器附加元件或網頁自動翻譯工具造成的。",
   "error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有進展,你可以使用不同的瀏覽器或 Mastodon 應用程式來檢視。",
-  "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": "請嘗試重新整理頁面。如果狀況沒有進展,您可以嘗試使用不同的瀏覽器或 Mastodon 應用程式來檢視。",
   "errors.unexpected_crash.copy_stacktrace": "複製到剪貼簿",
   "errors.unexpected_crash.report_issue": "舉報問題",
   "follow_request.authorize": "授權",
   "follow_request.reject": "拒絕",
   "follow_requests.unlocked_explanation": "即便您的帳號未被鎖定,{domain} 的員工認為可能想要自己審核這些帳號的追蹤請求。",
-  "generic.saved": "Saved",
+  "generic.saved": "已儲存",
   "getting_started.developers": "開發者",
   "getting_started.directory": "個人資料目錄",
   "getting_started.documentation": "文件",
@@ -246,7 +246,7 @@
   "keyboard_shortcuts.reply": "回覆",
   "keyboard_shortcuts.requests": "開啟關注請求名單",
   "keyboard_shortcuts.search": "將焦點移至搜尋框",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
+  "keyboard_shortcuts.spoilers": "顯示或隱藏被折疊的正文",
   "keyboard_shortcuts.start": "開啟「開始使用」欄位",
   "keyboard_shortcuts.toggle_hidden": "顯示/隱藏在內容警告之後的正文",
   "keyboard_shortcuts.toggle_sensitivity": "顯示 / 隱藏媒體",
@@ -266,10 +266,10 @@
   "lists.edit.submit": "變更標題",
   "lists.new.create": "新增名單",
   "lists.new.title_placeholder": "新名單標題",
-  "lists.replies_policy.all_replies": "Any followed user",
-  "lists.replies_policy.list_replies": "Members of the list",
-  "lists.replies_policy.no_replies": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.all_replies": "任何跟隨的使用者",
+  "lists.replies_policy.list_replies": "列表成員",
+  "lists.replies_policy.no_replies": "沒有人",
+  "lists.replies_policy.title": "顯示回覆",
   "lists.search": "搜尋您關注的使用者",
   "lists.subheading": "您的名單",
   "load_pending": "{count, plural, other {# 個新項目}}",
@@ -277,9 +277,9 @@
   "media_gallery.toggle_visible": "切換可見性",
   "missing_indicator.label": "找不到",
   "missing_indicator.sublabel": "找不到此資源",
-  "mute_modal.duration": "Duration",
+  "mute_modal.duration": "持續時間",
   "mute_modal.hide_notifications": "隱藏來自這位使用者的通知?",
-  "mute_modal.indefinite": "Indefinite",
+  "mute_modal.indefinite": "無期限",
   "navigation_bar.apps": "封鎖的使用者",
   "navigation_bar.blocks": "封鎖使用者",
   "navigation_bar.bookmarks": "書籤",
@@ -310,7 +310,7 @@
   "notification.own_poll": "您的投票已結束",
   "notification.poll": "您投過的投票已經結束",
   "notification.reblog": "{name}轉嘟了你的嘟文",
-  "notification.status": "{name} just posted",
+  "notification.status": "{name} 剛剛嘟文",
   "notifications.clear": "清除通知",
   "notifications.clear_confirmation": "確定要永久清除你的通知嗎?",
   "notifications.column_settings.alert": "桌面通知",
@@ -326,14 +326,14 @@
   "notifications.column_settings.reblog": "轉嘟:",
   "notifications.column_settings.show": "在欄位中顯示",
   "notifications.column_settings.sound": "播放音效",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "新嘟文:",
   "notifications.filter.all": "全部",
   "notifications.filter.boosts": "轉嘟",
   "notifications.filter.favourites": "最愛",
   "notifications.filter.follows": "關注的使用者",
   "notifications.filter.mentions": "提及",
   "notifications.filter.polls": "投票結果",
-  "notifications.filter.statuses": "Updates from people you follow",
+  "notifications.filter.statuses": "已跟隨使用者的最新動態",
   "notifications.group": "{count} 條通知",
   "notifications.mark_as_read": "Mark every notification as read",
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
@@ -341,7 +341,7 @@
   "notifications_permission_banner.enable": "Enable desktop notifications",
   "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
   "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
+  "picture_in_picture.restore": "還原",
   "poll.closed": "已關閉",
   "poll.refresh": "重新整理",
   "poll.total_people": "{count, plural, one {# 個投票} other {# 個投票}}",
@@ -393,7 +393,7 @@
   "status.bookmark": "書籤",
   "status.cancel_reblog_private": "取消轉嘟",
   "status.cannot_reblog": "這篇嘟文無法被轉嘟",
-  "status.copy": "將連結複製到嘟文中",
+  "status.copy": "複製嘟文連結",
   "status.delete": "刪除",
   "status.detailed_status": "對話的詳細內容",
   "status.direct": "發送私訊給 @{name}",
@@ -441,11 +441,11 @@
   "time_remaining.minutes": "剩餘{number, plural, one {# 分鐘} other {# 分鐘}}",
   "time_remaining.moments": "剩餘時間",
   "time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+  "timeline_hint.remote_resource_not_displayed": "不會顯示來自其他服務器的 {resource}",
+  "timeline_hint.resources.followers": "關注者",
+  "timeline_hint.resources.follows": "正在關注",
+  "timeline_hint.resources.statuses": "更早的嘟文",
+  "trends.counter_by_accounts": "{count, plural,one {{counter} 人}other {{counter} 人}}正在討論",
   "trends.trending_now": "目前趨勢",
   "ui.beforeunload": "如果離開 Mastodon,你的草稿將會不見。",
   "units.short.billion": "{count}B",
@@ -458,7 +458,7 @@
   "upload_form.audio_description": "簡單描述內容給聽障人士",
   "upload_form.description": "為視障人士增加文字說明",
   "upload_form.edit": "編輯",
-  "upload_form.thumbnail": "Change thumbnail",
+  "upload_form.thumbnail": "更改預覽圖",
   "upload_form.undo": "刪除",
   "upload_form.video_description": "簡單描述給聽障或視障人士",
   "upload_modal.analyzing_picture": "正在分析圖片…",
@@ -468,7 +468,7 @@
   "upload_modal.detect_text": "從圖片偵測文字",
   "upload_modal.edit_media": "編輯媒體",
   "upload_modal.hint": "點擊或拖曳圓圈以選擇預覽縮圖。",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "準備 OCR 中……",
   "upload_modal.preview_label": "預覽 ({ratio})",
   "upload_progress.label": "上傳中...",
   "video.close": "關閉影片",
diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss
index 5b97d1ec4..47e02d41d 100644
--- a/app/javascript/styles/mastodon/widgets.scss
+++ b/app/javascript/styles/mastodon/widgets.scss
@@ -2,6 +2,10 @@
   margin-bottom: 10px;
   box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
 
+  &:last-child {
+    margin-bottom: 0;
+  }
+
   &__img {
     width: 100%;
     position: relative;
diff --git a/app/lib/activitypub/activity/move.rb b/app/lib/activitypub/activity/move.rb
index 2103f503f..7e073f64d 100644
--- a/app/lib/activitypub/activity/move.rb
+++ b/app/lib/activitypub/activity/move.rb
@@ -20,6 +20,9 @@ class ActivityPub::Activity::Move < ActivityPub::Activity
 
     # Initiate a re-follow for each follower
     MoveWorker.perform_async(origin_account.id, target_account.id)
+  rescue
+    unmark_as_processing!
+    raise
   end
 
   private
diff --git a/app/lib/activitypub/adapter.rb b/app/lib/activitypub/adapter.rb
index 4e406b41d..ef00a4e2e 100644
--- a/app/lib/activitypub/adapter.rb
+++ b/app/lib/activitypub/adapter.rb
@@ -24,6 +24,7 @@ class ActivityPub::Adapter < ActiveModelSerializers::Adapter::Base
     discoverable: { 'toot' => 'http://joinmastodon.org/ns#', 'discoverable' => 'toot:discoverable' },
     voters_count: { 'toot' => 'http://joinmastodon.org/ns#', 'votersCount' => 'toot:votersCount' },
     olm: { 'toot' => 'http://joinmastodon.org/ns#', 'Device' => 'toot:Device', 'Ed25519Signature' => 'toot:Ed25519Signature', 'Ed25519Key' => 'toot:Ed25519Key', 'Curve25519Key' => 'toot:Curve25519Key', 'EncryptedMessage' => 'toot:EncryptedMessage', 'publicKeyBase64' => 'toot:publicKeyBase64', 'deviceId' => 'toot:deviceId', 'claim' => { '@type' => '@id', '@id' => 'toot:claim' }, 'fingerprintKey' => { '@type' => '@id', '@id' => 'toot:fingerprintKey' }, 'identityKey' => { '@type' => '@id', '@id' => 'toot:identityKey' }, 'devices' => { '@type' => '@id', '@id' => 'toot:devices' }, 'messageFranking' => 'toot:messageFranking', 'messageType' => 'toot:messageType', 'cipherText' => 'toot:cipherText' },
+    suspended: { 'toot' => 'http://joinmastodon.org/ns#', 'suspended' => 'toot:suspended' },
   }.freeze
 
   def self.default_key_transform
diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb
index b2374c494..c7aa43bb3 100644
--- a/app/lib/webfinger.rb
+++ b/app/lib/webfinger.rb
@@ -2,6 +2,8 @@
 
 class Webfinger
   class Error < StandardError; end
+  class GoneError < Error; end
+  class RedirectError < StandardError; end
 
   class Response
     def initialize(body)
@@ -47,6 +49,8 @@ class Webfinger
         res.body_with_limit
       elsif res.code == 404 && use_fallback
         body_from_host_meta
+      elsif res.code == 410
+        raise Webfinger::GoneError, "#{@uri} is gone from the server"
       else
         raise Webfinger::Error, "Request for #{@uri} returned HTTP #{res.code}"
       end
diff --git a/app/models/account.rb b/app/models/account.rb
index 14df68058..641e984cd 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -51,6 +51,7 @@
 #  header_storage_schema_version :integer
 #  devices_url                   :string
 #  sensitized_at                 :datetime
+#  suspension_origin             :integer
 #
 
 class Account < ApplicationRecord
@@ -77,6 +78,7 @@ class Account < ApplicationRecord
   }.freeze
 
   enum protocol: [:ostatus, :activitypub]
+  enum suspension_origin: [:local, :remote], _prefix: true
 
   validates :username, presence: true
   validates_with UniqueUsernameValidator, if: -> { will_save_change_to_username? }
@@ -226,17 +228,25 @@ class Account < ApplicationRecord
     suspended_at.present?
   end
 
-  def suspend!(date = Time.now.utc)
+  def suspended_permanently?
+    suspended? && deletion_request.nil?
+  end
+
+  def suspended_temporarily?
+    suspended? && deletion_request.present?
+  end
+
+  def suspend!(date: Time.now.utc, origin: :local)
     transaction do
       create_deletion_request!
-      update!(suspended_at: date)
+      update!(suspended_at: date, suspension_origin: origin)
     end
   end
 
   def unsuspend!
     transaction do
       deletion_request&.destroy!
-      update!(suspended_at: nil)
+      update!(suspended_at: nil, suspension_origin: nil)
     end
   end
 
diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb
index 11ce737f3..bf222391f 100644
--- a/app/models/admin/account_action.rb
+++ b/app/models/admin/account_action.rb
@@ -127,7 +127,7 @@ class Admin::AccountAction
   def handle_suspend!
     authorize(target_account, :suspend?)
     log_action(:suspend, target_account)
-    target_account.suspend!
+    target_account.suspend!(origin: :local)
   end
 
   def text_for_warning
diff --git a/app/policies/account_policy.rb b/app/policies/account_policy.rb
index 679119075..262ada42e 100644
--- a/app/policies/account_policy.rb
+++ b/app/policies/account_policy.rb
@@ -18,11 +18,11 @@ class AccountPolicy < ApplicationPolicy
   end
 
   def destroy?
-    record.suspended? && record.deletion_request.present? && admin?
+    record.suspended_temporarily? && admin?
   end
 
   def unsuspend?
-    staff?
+    staff? && record.suspension_origin_local?
   end
 
   def sensitive?
diff --git a/app/serializers/activitypub/actor_serializer.rb b/app/serializers/activitypub/actor_serializer.rb
index 5d2741b17..759ef30f9 100644
--- a/app/serializers/activitypub/actor_serializer.rb
+++ b/app/serializers/activitypub/actor_serializer.rb
@@ -7,7 +7,7 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
 
   context_extensions :manually_approves_followers, :featured, :also_known_as,
                      :moved_to, :property_value, :identity_proof,
-                     :discoverable, :olm
+                     :discoverable, :olm, :suspended
 
   attributes :id, :type, :following, :followers,
              :inbox, :outbox, :featured, :featured_tags,
@@ -23,6 +23,7 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
   attribute :devices, unless: :instance_actor?
   attribute :moved_to, if: :moved?
   attribute :also_known_as, if: :also_known_as?
+  attribute :suspended, if: :suspended?
 
   class EndpointsSerializer < ActivityPub::Serializer
     include RoutingHelper
@@ -39,7 +40,7 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
   has_one :icon,  serializer: ActivityPub::ImageSerializer, if: :avatar_exists?
   has_one :image, serializer: ActivityPub::ImageSerializer, if: :header_exists?
 
-  delegate :moved?, :instance_actor?, to: :object
+  delegate :suspended?, :instance_actor?, to: :object
 
   def id
     object.instance_actor? ? instance_actor_url : account_url(object)
@@ -93,12 +94,16 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
     object.username
   end
 
+  def discoverable
+    object.suspended? ? false : (object.discoverable || false)
+  end
+
   def name
-    object.display_name
+    object.suspended? ? '' : object.display_name
   end
 
   def summary
-    Formatter.instance.simplified_format(object)
+    object.suspended? ? '' : Formatter.instance.simplified_format(object)
   end
 
   def icon
@@ -113,36 +118,44 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
     object
   end
 
+  def suspended
+    object.suspended?
+  end
+
   def url
     object.instance_actor? ? about_more_url(instance_actor: true) : short_account_url(object)
   end
 
   def avatar_exists?
-    object.avatar?
+    !object.suspended? && object.avatar?
   end
 
   def header_exists?
-    object.header?
+    !object.suspended? && object.header?
   end
 
   def manually_approves_followers
-    object.locked
+    object.suspended? ? false : object.locked
   end
 
   def virtual_tags
-    object.emojis + object.tags
+    object.suspended? ? [] : (object.emojis + object.tags)
   end
 
   def virtual_attachments
-    object.fields + object.identity_proofs.active
+    object.suspended? ? [] : (object.fields + object.identity_proofs.active)
   end
 
   def moved_to
     ActivityPub::TagManager.instance.uri_for(object.moved_to_account)
   end
 
+  def moved?
+    !object.suspended? && object.moved?
+  end
+
   def also_known_as?
-    !object.also_known_as.empty?
+    !object.suspended? && !object.also_known_as.empty?
   end
 
   class CustomEmojiSerializer < ActivityPub::EmojiSerializer
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 9f95f1950..4cb8e09db 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -18,10 +18,11 @@ class ActivityPub::ProcessAccountService < BaseService
 
     RedisLock.acquire(lock_options) do |lock|
       if lock.acquired?
-        @account          = Account.remote.find_by(uri: @uri) if @options[:only_key]
-        @account        ||= Account.find_remote(@username, @domain)
-        @old_public_key   = @account&.public_key
-        @old_protocol     = @account&.protocol
+        @account            = Account.remote.find_by(uri: @uri) if @options[:only_key]
+        @account          ||= Account.find_remote(@username, @domain)
+        @old_public_key     = @account&.public_key
+        @old_protocol       = @account&.protocol
+        @suspension_changed = false
 
         create_account if @account.nil?
         update_account
@@ -37,8 +38,9 @@ class ActivityPub::ProcessAccountService < BaseService
     after_protocol_change! if protocol_changed?
     after_key_change! if key_changed? && !@options[:signed_with_known_key]
     clear_tombstones! if key_changed?
+    after_suspension_change! if suspension_changed?
 
-    unless @options[:only_key]
+    unless @options[:only_key] || @account.suspended?
       check_featured_collection! if @account.featured_collection_url.present?
       check_links! unless @account.fields.empty?
     end
@@ -52,20 +54,23 @@ class ActivityPub::ProcessAccountService < BaseService
 
   def create_account
     @account = Account.new
-    @account.protocol     = :activitypub
-    @account.username     = @username
-    @account.domain       = @domain
-    @account.private_key  = nil
-    @account.suspended_at = domain_block.created_at if auto_suspend?
-    @account.silenced_at  = domain_block.created_at if auto_silence?
+    @account.protocol          = :activitypub
+    @account.username          = @username
+    @account.domain            = @domain
+    @account.private_key       = nil
+    @account.suspended_at      = domain_block.created_at if auto_suspend?
+    @account.suspension_origin = :local if auto_suspend?
+    @account.silenced_at       = domain_block.created_at if auto_silence?
+    @account.save
   end
 
   def update_account
     @account.last_webfingered_at = Time.now.utc unless @options[:only_key]
     @account.protocol            = :activitypub
 
-    set_immediate_attributes!
-    set_fetchable_attributes! unless @options[:only_keys]
+    set_suspension!
+    set_immediate_attributes! unless @account.suspended?
+    set_fetchable_attributes! unless @options[:only_keys] || @account.suspended?
 
     @account.save_with_optional_media!
   end
@@ -99,6 +104,18 @@ class ActivityPub::ProcessAccountService < BaseService
     @account.moved_to_account  = @json['movedTo'].present? ? moved_account : nil
   end
 
+  def set_suspension!
+    return if @account.suspended? && @account.suspension_origin_local?
+
+    if @account.suspended? && !@json['suspended']
+      @account.unsuspend!
+      @suspension_changed = true
+    elsif !@account.suspended? && @json['suspended']
+      @account.suspend!(origin: :remote)
+      @suspension_changed = true
+    end
+  end
+
   def after_protocol_change!
     ActivityPub::PostUpgradeWorker.perform_async(@account.domain)
   end
@@ -107,6 +124,14 @@ class ActivityPub::ProcessAccountService < BaseService
     RefollowWorker.perform_async(@account.id)
   end
 
+  def after_suspension_change!
+    if @account.suspended?
+      Admin::SuspensionWorker.perform_async(@account.id)
+    else
+      Admin::UnsuspensionWorker.perform_async(@account.id)
+    end
+  end
+
   def check_featured_collection!
     ActivityPub::SynchronizeFeaturedCollectionWorker.perform_async(@account.id)
   end
@@ -227,6 +252,10 @@ class ActivityPub::ProcessAccountService < BaseService
     !@old_public_key.nil? && @old_public_key != @account.public_key
   end
 
+  def suspension_changed?
+    @suspension_changed
+  end
+
   def clear_tombstones!
     Tombstone.where(account_id: @account.id).delete_all
   end
diff --git a/app/services/activitypub/process_collection_service.rb b/app/services/activitypub/process_collection_service.rb
index e6ccaccc9..f1d175dac 100644
--- a/app/services/activitypub/process_collection_service.rb
+++ b/app/services/activitypub/process_collection_service.rb
@@ -8,7 +8,7 @@ class ActivityPub::ProcessCollectionService < BaseService
     @json    = Oj.load(body, mode: :strict)
     @options = options
 
-    return if !supported_context? || (different_actor? && verify_account!.nil?) || @account.suspended? || @account.local?
+    return if !supported_context? || (different_actor? && verify_account!.nil?) || suspended_actor? || @account.local?
 
     case @json['type']
     when 'Collection', 'CollectionPage'
@@ -28,6 +28,14 @@ class ActivityPub::ProcessCollectionService < BaseService
     @json['actor'].present? && value_or_id(@json['actor']) != @account.uri
   end
 
+  def suspended_actor?
+    @account.suspended? && !activity_allowed_while_suspended?
+  end
+
+  def activity_allowed_while_suspended?
+    %w(Delete Reject Undo Update).include?(@json['type'])
+  end
+
   def process_items(items)
     items.reverse_each.map { |item| process_item(item) }.compact
   end
diff --git a/app/services/block_domain_service.rb b/app/services/block_domain_service.rb
index 1cf3382b3..76cc36ff6 100644
--- a/app/services/block_domain_service.rb
+++ b/app/services/block_domain_service.rb
@@ -16,7 +16,7 @@ class BlockDomainService < BaseService
     scope = Account.by_domain_and_subdomains(domain_block.domain)
 
     scope.where(silenced_at: domain_block.created_at).in_batches.update_all(silenced_at: nil) unless domain_block.silence?
-    scope.where(suspended_at: domain_block.created_at).in_batches.update_all(suspended_at: nil) unless domain_block.suspend?
+    scope.where(suspended_at: domain_block.created_at).in_batches.update_all(suspended_at: nil, suspension_origin: nil) unless domain_block.suspend?
   end
 
   def process_domain_block!
@@ -34,7 +34,8 @@ class BlockDomainService < BaseService
   end
 
   def suspend_accounts!
-    blocked_domain_accounts.without_suspended.in_batches.update_all(suspended_at: @domain_block.created_at)
+    blocked_domain_accounts.without_suspended.in_batches.update_all(suspended_at: @domain_block.created_at, suspension_origin: :local)
+
     blocked_domain_accounts.where(suspended_at: @domain_block.created_at).reorder(nil).find_each do |account|
       DeleteAccountService.new.call(account, reserve_username: true, suspended_at: @domain_block.created_at)
     end
diff --git a/app/services/delete_account_service.rb b/app/services/delete_account_service.rb
index 15bdd13e3..de6488c78 100644
--- a/app/services/delete_account_service.rb
+++ b/app/services/delete_account_service.rb
@@ -64,8 +64,15 @@ class DeleteAccountService < BaseService
   def reject_follows!
     return if @account.local? || !@account.activitypub?
 
+    # When deleting a remote account, the account obviously doesn't
+    # actually become deleted on its origin server, i.e. unlike a
+    # locally deleted account it continues to have access to its home
+    # feed and other content. To prevent it from being able to continue
+    # to access toots it would receive because it follows local accounts,
+    # we have to force it to unfollow them.
+
     ActivityPub::DeliveryWorker.push_bulk(Follow.where(account: @account)) do |follow|
-      [build_reject_json(follow), follow.target_account_id, follow.account.inbox_url]
+      [Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), follow.target_account_id, @account.inbox_url]
     end
   end
 
@@ -114,19 +121,20 @@ class DeleteAccountService < BaseService
 
     return unless @options[:reserve_username]
 
-    @account.silenced_at      = nil
-    @account.suspended_at     = @options[:suspended_at] || Time.now.utc
-    @account.locked           = false
-    @account.memorial         = false
-    @account.discoverable     = false
-    @account.display_name     = ''
-    @account.note             = ''
-    @account.fields           = []
-    @account.statuses_count   = 0
-    @account.followers_count  = 0
-    @account.following_count  = 0
-    @account.moved_to_account = nil
-    @account.trust_level      = :untrusted
+    @account.silenced_at       = nil
+    @account.suspended_at      = @options[:suspended_at] || Time.now.utc
+    @account.suspension_origin = :local
+    @account.locked            = false
+    @account.memorial          = false
+    @account.discoverable      = false
+    @account.display_name      = ''
+    @account.note              = ''
+    @account.fields            = []
+    @account.statuses_count    = 0
+    @account.followers_count   = 0
+    @account.following_count   = 0
+    @account.moved_to_account  = nil
+    @account.trust_level       = :untrusted
     @account.avatar.destroy
     @account.header.destroy
     @account.save!
@@ -154,10 +162,6 @@ class DeleteAccountService < BaseService
     @delete_actor_json ||= Oj.dump(serialize_payload(@account, ActivityPub::DeleteActorSerializer, signer: @account))
   end
 
-  def build_reject_json(follow)
-    Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer))
-  end
-
   def delivery_inboxes
     @delivery_inboxes ||= @account.followers.inboxes + Relay.enabled.pluck(:inbox_url)
   end
diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb
index 3f7bb7cc5..4783e6d33 100644
--- a/app/services/resolve_account_service.rb
+++ b/app/services/resolve_account_service.rb
@@ -5,8 +5,6 @@ class ResolveAccountService < BaseService
   include DomainControlHelper
   include WebfingerHelper
 
-  class WebfingerRedirectError < StandardError; end
-
   # Find or create an account record for a remote user. When creating,
   # look up the user's webfinger and fetch ActivityPub data
   # @param [String, Account] uri URI in the username@domain format or account record
@@ -40,13 +38,18 @@ class ResolveAccountService < BaseService
 
     @account ||= Account.find_remote(@username, @domain)
 
-    return @account if @account&.local? || !webfinger_update_due?
+    if gone_from_origin? && not_yet_deleted?
+      queue_deletion!
+      return
+    end
+
+    return @account if @account&.local? || gone_from_origin? || !webfinger_update_due?
 
     # Now it is certain, it is definitely a remote account, and it
     # either needs to be created, or updated from fresh data
 
     process_account!
-  rescue Webfinger::Error, WebfingerRedirectError, Oj::ParseError => e
+  rescue Webfinger::Error, Oj::ParseError => e
     Rails.logger.debug "Webfinger query for #{@uri} failed: #{e}"
     nil
   end
@@ -86,10 +89,12 @@ class ResolveAccountService < BaseService
     elsif !redirected
       return process_webfinger!("#{confirmed_username}@#{confirmed_domain}", true)
     else
-      raise WebfingerRedirectError, "The URI #{uri} tries to hijack #{@username}@#{@domain}"
+      raise Webfinger::RedirectError, "The URI #{uri} tries to hijack #{@username}@#{@domain}"
     end
 
     @domain = nil if TagManager.instance.local_domain?(@domain)
+  rescue Webfinger::GoneError
+    @gone = true
   end
 
   def process_account!
@@ -131,6 +136,18 @@ class ResolveAccountService < BaseService
     @actor_json = supported_context?(json) && equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) ? json : nil
   end
 
+  def gone_from_origin?
+    @gone
+  end
+
+  def not_yet_deleted?
+    @account.present? && !@account.local?
+  end
+
+  def queue_deletion!
+    AccountDeletionWorker.perform_async(@account.id, reserve_username: false)
+  end
+
   def lock_options
     { redis: Redis.current, key: "resolve:#{@username}@#{@domain}" }
   end
diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb
index f08c41e17..7c70a6021 100644
--- a/app/services/suspend_account_service.rb
+++ b/app/services/suspend_account_service.rb
@@ -1,10 +1,14 @@
 # frozen_string_literal: true
 
 class SuspendAccountService < BaseService
+  include Payloadable
+
   def call(account)
     @account = account
 
     suspend!
+    reject_remote_follows!
+    distribute_update_actor!
     unmerge_from_home_timelines!
     unmerge_from_list_timelines!
     privatize_media_attachments!
@@ -16,6 +20,31 @@ class SuspendAccountService < BaseService
     @account.suspend! unless @account.suspended?
   end
 
+  def reject_remote_follows!
+    return if @account.local? || !@account.activitypub?
+
+    # When suspending a remote account, the account obviously doesn't
+    # actually become suspended on its origin server, i.e. unlike a
+    # locally suspended account it continues to have access to its home
+    # feed and other content. To prevent it from being able to continue
+    # to access toots it would receive because it follows local accounts,
+    # we have to force it to unfollow them. Unfortunately, there is no
+    # counterpart to this operation, i.e. you can't then force a remote
+    # account to re-follow you, so this part is not reversible.
+
+    follows = Follow.where(account: @account).to_a
+
+    ActivityPub::DeliveryWorker.push_bulk(follows) do |follow|
+      [Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), follow.target_account_id, @account.inbox_url]
+    end
+
+    follows.each(&:destroy)
+  end
+
+  def distribute_update_actor!
+    ActivityPub::UpdateDistributionWorker.perform_async(@account.id) if @account.local?
+  end
+
   def unmerge_from_home_timelines!
     @account.followers_for_local_distribution.find_each do |follower|
       FeedManager.instance.unmerge_from_home(@account, follower)
diff --git a/app/services/unblock_domain_service.rb b/app/services/unblock_domain_service.rb
index d502d9e49..e765fb7a8 100644
--- a/app/services/unblock_domain_service.rb
+++ b/app/services/unblock_domain_service.rb
@@ -13,6 +13,6 @@ class UnblockDomainService < BaseService
     scope = Account.by_domain_and_subdomains(domain_block.domain)
 
     scope.where(silenced_at: domain_block.created_at).in_batches.update_all(silenced_at: nil) unless domain_block.noop?
-    scope.where(suspended_at: domain_block.created_at).in_batches.update_all(suspended_at: nil) if domain_block.suspend?
+    scope.where(suspended_at: domain_block.created_at).in_batches.update_all(suspended_at: nil, suspension_origin: nil) if domain_block.suspend?
   end
 end
diff --git a/app/services/unsuspend_account_service.rb b/app/services/unsuspend_account_service.rb
index 91dbc9c18..a81d1ac4f 100644
--- a/app/services/unsuspend_account_service.rb
+++ b/app/services/unsuspend_account_service.rb
@@ -5,6 +5,10 @@ class UnsuspendAccountService < BaseService
     @account = account
 
     unsuspend!
+    refresh_remote_account!
+
+    return if @account.nil?
+
     merge_into_home_timelines!
     merge_into_list_timelines!
     publish_media_attachments!
@@ -16,6 +20,22 @@ class UnsuspendAccountService < BaseService
     @account.unsuspend! if @account.suspended?
   end
 
+  def refresh_remote_account!
+    return if @account.local?
+
+    # While we had the remote account suspended, it could be that
+    # it got suspended on its origin, too. So, we need to refresh
+    # it straight away so it gets marked as remotely suspended in
+    # that case.
+
+    @account.update!(last_webfingered_at: nil)
+    @account = ResolveAccountService.new.call(@account)
+
+    # Worth noting that it is possible that the remote has not only
+    # been suspended, but deleted permanently, in which case
+    # @account would now be nil.
+  end
+
   def merge_into_home_timelines!
     @account.followers_for_local_distribution.find_each do |follower|
       FeedManager.instance.merge_into_home(@account, follower)
diff --git a/app/workers/account_deletion_worker.rb b/app/workers/account_deletion_worker.rb
index 0f6be71e1..b6016bf8c 100644
--- a/app/workers/account_deletion_worker.rb
+++ b/app/workers/account_deletion_worker.rb
@@ -5,8 +5,8 @@ class AccountDeletionWorker
 
   sidekiq_options queue: 'pull'
 
-  def perform(account_id)
-    DeleteAccountService.new.call(Account.find(account_id), reserve_username: true, reserve_email: false)
+  def perform(account_id, reserve_username: true)
+    DeleteAccountService.new.call(Account.find(account_id), reserve_username: reserve_username, reserve_email: false)
   rescue ActiveRecord::RecordNotFound
     true
   end