about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2018-05-27 14:24:57 +0200
committerGitHub <noreply@github.com>2018-05-27 14:24:57 +0200
commit458ec31791bfd5caabeae0c19dcfe074e6b30517 (patch)
tree1d8350cdad20ad1eb8c67a4d17a18ff7183f22e5
parentc2e528916cae422baee3d72a3b4409a23c476b3f (diff)
parent659b8a12ece7110608ee84748e57647c08d1dbda (diff)
Merge pull request #520 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
-rw-r--r--app/controllers/application_controller.rb5
-rw-r--r--app/javascript/mastodon/locales/defaultMessages.json21
-rw-r--r--app/javascript/mastodon/locales/el.json114
-rw-r--r--app/javascript/mastodon/locales/eo.json10
-rw-r--r--app/javascript/mastodon/locales/eu.json430
-rw-r--r--app/javascript/mastodon/locales/fa.json88
-rw-r--r--app/javascript/mastodon/locales/fr.json8
-rw-r--r--app/javascript/mastodon/locales/it.json24
-rw-r--r--app/javascript/mastodon/locales/ja.json10
-rw-r--r--app/javascript/mastodon/locales/nl.json4
-rw-r--r--app/javascript/mastodon/locales/oc.json6
-rw-r--r--app/javascript/mastodon/locales/pt-BR.json6
-rw-r--r--app/javascript/mastodon/locales/sv.json6
-rw-r--r--app/javascript/mastodon/service_worker/web_push_notifications.js20
-rw-r--r--app/javascript/styles/mastodon-light/diff.scss55
-rw-r--r--app/javascript/styles/mastodon-light/variables.scss7
-rw-r--r--app/javascript/styles/mastodon/accounts.scss4
-rw-r--r--app/javascript/styles/mastodon/components.scss9
-rw-r--r--app/javascript/styles/mastodon/variables.scss8
-rw-r--r--app/models/user.rb1
-rw-r--r--app/validators/email_mx_validator.rb25
-rw-r--r--config/initializers/active_model_serializers.rb2
-rw-r--r--config/locales/ar.yml14
-rw-r--r--config/locales/ca.yml4
-rw-r--r--config/locales/de.yml1
-rw-r--r--config/locales/doorkeeper.ar.yml1
-rw-r--r--config/locales/doorkeeper.eo.yml1
-rw-r--r--config/locales/el.yml101
-rw-r--r--config/locales/eo.yml3
-rw-r--r--config/locales/eu.yml12
-rw-r--r--config/locales/fa.yml22
-rw-r--r--config/locales/fr.yml8
-rw-r--r--config/locales/gl.yml5
-rw-r--r--config/locales/it.yml21
-rw-r--r--config/locales/ja.yml24
-rw-r--r--config/locales/nl.yml12
-rw-r--r--config/locales/oc.yml13
-rw-r--r--config/locales/pt-BR.yml6
-rw-r--r--config/locales/simple_form.ar.yml2
-rw-r--r--config/locales/simple_form.eo.yml4
-rw-r--r--config/locales/simple_form.eu.yml11
-rw-r--r--config/locales/simple_form.fa.yml8
-rw-r--r--config/locales/simple_form.gl.yml2
-rw-r--r--config/locales/simple_form.it.yml2
-rw-r--r--config/locales/simple_form.ja.yml2
-rw-r--r--config/locales/simple_form.sk.yml17
-rw-r--r--config/locales/simple_form.sv.yml5
-rw-r--r--config/locales/simple_form.zh-HK.yml4
-rw-r--r--config/locales/sk.yml12
-rw-r--r--config/locales/sv.yml4
-rw-r--r--config/locales/zh-HK.yml8
51 files changed, 716 insertions, 476 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 27ebc3333..cc92894a5 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -21,6 +21,7 @@ class ApplicationController < ActionController::Base
   rescue_from ActionController::RoutingError, with: :not_found
   rescue_from ActiveRecord::RecordNotFound, with: :not_found
   rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity
+  rescue_from ActionController::UnknownFormat, with: :not_acceptable
   rescue_from Mastodon::NotPermittedError, with: :forbidden
 
   before_action :store_current_location, except: :raise_not_found, unless: :devise_controller?
@@ -143,6 +144,10 @@ class ApplicationController < ActionController::Base
     respond_with_error(422)
   end
 
+  def not_acceptable
+    respond_with_error(406)
+  end
+
   def single_user_mode?
     @single_user_mode ||= Rails.configuration.x.single_user_mode && Account.exists?
   end
diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json
index 48dd3d1e7..ef2a796a3 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -593,16 +593,21 @@
   {
     "descriptors": [
       {
-        "defaultMessage": "Local timeline",
-        "id": "column.community"
-      },
-      {
         "defaultMessage": "Toots",
         "id": "timeline.posts"
       },
       {
         "defaultMessage": "Media",
         "id": "timeline.media"
+      }
+    ],
+    "path": "app/javascript/mastodon/features/community_timeline/components/section_headline.json"
+  },
+  {
+    "descriptors": [
+      {
+        "defaultMessage": "Local timeline",
+        "id": "column.community"
       },
       {
         "defaultMessage": "The local timeline is empty. Write something publicly to get the ball rolling!",
@@ -1402,14 +1407,6 @@
         "id": "column.public"
       },
       {
-        "defaultMessage": "Toots",
-        "id": "timeline.posts"
-      },
-      {
-        "defaultMessage": "Media",
-        "id": "timeline.media"
-      },
-      {
         "defaultMessage": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
         "id": "empty_column.public"
       }
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 1e7707b4a..bb48fe93f 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -11,16 +11,16 @@
   "account.followers": "Ακόλουθοι",
   "account.follows": "Ακολουθεί",
   "account.follows_you": "Σε ακολουθεί",
-  "account.hide_reblogs": "Απόκρυψη προωθήσεων από τον/την @{name}",
+  "account.hide_reblogs": "Απόκρυψη προωθήσεων από @{name}",
   "account.media": "Πολυμέσα",
-  "account.mention": "Ανέφερε τον/την @{name}",
-  "account.moved_to": "{name} μετακόμισε στο:",
+  "account.mention": "Ανάφερε @{name}",
+  "account.moved_to": "{name} μεταφέρθηκε στο:",
   "account.mute": "Σώπασε τον/την @{name}",
   "account.mute_notifications": "Σώπασε τις ειδοποιήσεις από τον/την @{name}",
   "account.muted": "Αποσιωπημένος/η",
   "account.posts": "Τουτ",
   "account.posts_with_replies": "Τουτ και απαντήσεις",
-  "account.report": "Ανέφερε τον/την @{name}",
+  "account.report": "Κατάγγειλε τον/την @{name}",
   "account.requested": "Εκκρεμεί έγκριση. Κάνε κλικ για να ακυρώσεις το αίτημα ακολούθησης",
   "account.share": "Μοιράσου το προφίλ του/της @{name}",
   "account.show_reblogs": "Δείξε τις προωθήσεις του/της @{name}",
@@ -44,7 +44,7 @@
   "column.direct": "Απευθείας μηνύματα",
   "column.domain_blocks": "Κρυμμένοι τομείς",
   "column.favourites": "Αγαπημένα",
-  "column.follow_requests": "Αιτήματα παρακολούθησης",
+  "column.follow_requests": "Αιτήματα ακολούθησης",
   "column.home": "Αρχική",
   "column.lists": "Λίστες",
   "column.mutes": "Αποσιωπημένοι χρήστες",
@@ -60,9 +60,9 @@
   "column_header.unpin": "Ξεκαρφίτσωμα",
   "column_subheading.navigation": "Πλοήγηση",
   "column_subheading.settings": "Ρυθμίσεις",
-  "compose_form.direct_message_warning": "Αυτό το τουτ θα εμφανίζεται μόνο σε όλους τους αναφερόμενους χρήστες.",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
-  "compose_form.hashtag_warning": "Αυτό το τουτ δεν θα εμφανίζεται κάτω από καμία ταμπέλα καθώς είναι αφανές. Μόνο τα δημόσια τουτ μπορούν να αναζητηθούν ανά ταμπέλα.",
+  "compose_form.direct_message_warning": "Αυτό το τουτ θα σταλεί μόνο στους αναφερόμενους χρήστες.",
+  "compose_form.direct_message_warning_learn_more": "Μάθετε περισσότερα",
+  "compose_form.hashtag_warning": "Αυτό το τουτ δεν θα εμφανίζεται κάτω από κανένα hashtag καθώς είναι αφανές. Μόνο τα δημόσια τουτ μπορούν να αναζητηθούν ανά hashtag.",
   "compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σας προς τους ακολούθους σας.",
   "compose_form.lock_disclaimer.lock": "κλειδωμένος",
   "compose_form.placeholder": "Τι σκέφτεσαι;",
@@ -107,16 +107,16 @@
   "empty_column.hashtag": "Δεν υπάρχει ακόμα κάτι για αυτή την ταμπέλα.",
   "empty_column.home": "Η τοπική σου ροή είναι κενή! Πήγαινε στο {public} ή κάνε αναζήτηση για να ξεκινήσεις και να γνωρίσεις άλλους χρήστες.",
   "empty_column.home.public_timeline": "η δημόσια ροή",
-  "empty_column.list": "Δεν υπάρχει τίποτα σε αυτή τη λίστα ακόμα. Όταν τα μέλη της δημοσιεύσουν νέες καταστάσεις, θα εμφανιστούν εδώ",
+  "empty_column.list": "Δεν υπάρχει τίποτα σε αυτή τη λίστα ακόμα. Όταν τα μέλη της δημοσιεύσουν νέες καταστάσεις, θα εμφανιστούν εδώ.",
   "empty_column.notifications": "Δεν έχεις ειδοποιήσεις ακόμα. Αλληλεπίδρασε με άλλους χρήστες για να ξεκινήσεις την κουβέντα.",
-  "empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο, ή ακολούθησε χειροκίνητα χρήστες από άλλα instances για να το γεμίσεις",
+  "empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο, ή ακολούθησε χειροκίνητα χρήστες από άλλα instances για να τη γεμίσεις",
   "follow_request.authorize": "Ενέκρινε",
   "follow_request.reject": "Απέρριψε",
   "getting_started.appsshort": "Εφαρμογές",
   "getting_started.faq": "Συχνές Ερωτήσεις",
   "getting_started.heading": "Ξεκινώντας",
   "getting_started.open_source_notice": "Το Mastodon είναι ελεύθερο λογισμικό. Μπορείς να συνεισφέρεις ή να αναφέρεις ζητήματα στο GitHub στο {github}.",
-  "getting_started.userguide": "Οδηγός Χρηστών",
+  "getting_started.userguide": "Οδηγός Χρήσης",
   "home.column_settings.advanced": "Προχωρημένα",
   "home.column_settings.basic": "Βασικά",
   "home.column_settings.filter_regex": "Φιλτράρετε μέσω regular expressions",
@@ -139,58 +139,58 @@
   "keyboard_shortcuts.search": "για εστίαση αναζήτησης",
   "keyboard_shortcuts.toggle_hidden": "για εμφάνιση/απόκρυψη κειμένου πίσω από την προειδοποίηση",
   "keyboard_shortcuts.toot": "για δημιουργία ολοκαίνουριου τουτ",
-  "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
-  "keyboard_shortcuts.up": "to move up in the list",
+  "keyboard_shortcuts.unfocus": "για την απο-εστίαση του πεδίου σύνθεσης/αναζήτησης",
+  "keyboard_shortcuts.up": "για να ανέβεις στη λίστα",
   "lightbox.close": "Close",
-  "lightbox.next": "Next",
-  "lightbox.previous": "Previous",
-  "lists.account.add": "Add to list",
-  "lists.account.remove": "Remove from list",
+  "lightbox.next": "Επόμενο",
+  "lightbox.previous": "Προηγούμενο",
+  "lists.account.add": "Πρόσθεσε στη λίστα",
+  "lists.account.remove": "Αφαίρεσε από τη λίστα",
   "lists.delete": "Delete list",
-  "lists.edit": "Edit list",
-  "lists.new.create": "Add list",
-  "lists.new.title_placeholder": "New list title",
-  "lists.search": "Search among people you follow",
-  "lists.subheading": "Your lists",
-  "loading_indicator.label": "Loading...",
-  "media_gallery.toggle_visible": "Toggle visibility",
-  "missing_indicator.label": "Not found",
-  "missing_indicator.sublabel": "This resource could not be found",
-  "mute_modal.hide_notifications": "Hide notifications from this user?",
-  "navigation_bar.blocks": "Blocked users",
+  "lists.edit": "Τροποποίησε τη λίστα",
+  "lists.new.create": "Πρόσθεσε λίστα",
+  "lists.new.title_placeholder": "Τίτλος νέας λίστα",
+  "lists.search": "Αναζήτησε ανάμεσα σε όσους/όσες ακολουθείς",
+  "lists.subheading": "Οι λίστες σου",
+  "loading_indicator.label": "Φορτώνει...",
+  "media_gallery.toggle_visible": "Αντιστροφή ορατότητας",
+  "missing_indicator.label": "Δε βρέθηκε",
+  "missing_indicator.sublabel": "Αυτό το υλικό δε βρέθηκε",
+  "mute_modal.hide_notifications": "Απόκρυψη ειδοποιήσεων αυτού του χρήστη;",
+  "navigation_bar.blocks": "Αποκλεισμένοι χρήστες",
   "navigation_bar.community_timeline": "Local timeline",
-  "navigation_bar.direct": "Direct messages",
+  "navigation_bar.direct": "Απευθείας μηνύματα",
   "navigation_bar.domain_blocks": "Hidden domains",
   "navigation_bar.edit_profile": "Edit profile",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.follow_requests": "Follow requests",
   "navigation_bar.info": "Extended information",
-  "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+  "navigation_bar.keyboard_shortcuts": "Συντομεύσεις πληκτρολογίου",
   "navigation_bar.lists": "Lists",
-  "navigation_bar.logout": "Logout",
+  "navigation_bar.logout": "Αποσύνδεση",
   "navigation_bar.mutes": "Muted users",
   "navigation_bar.pins": "Pinned toots",
-  "navigation_bar.preferences": "Preferences",
-  "navigation_bar.public_timeline": "Federated timeline",
-  "notification.favourite": "{name} favourited your status",
-  "notification.follow": "{name} followed you",
-  "notification.mention": "{name} mentioned you",
-  "notification.reblog": "{name} boosted your status",
+  "navigation_bar.preferences": "Προτιμήσεις",
+  "navigation_bar.public_timeline": "Ομοσπονδιακή ροή",
+  "notification.favourite": "Ο/Η {name} σημείωσε ως αγαπημένη την κατάστασή σου",
+  "notification.follow": "Ο/Η {name} σε ακολούθησε",
+  "notification.mention": "Ο/Η {name} σε ανέφερε",
+  "notification.reblog": "Ο/Η {name} προώθησε την κατάστασή σου",
   "notifications.clear": "Καθαρισμός ειδοποιήσεων",
-  "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
+  "notifications.clear_confirmation": "Σίγουρα θέλεις να καθαρίσεις όλες τις ειδοποιήσεις σου;",
   "notifications.column_settings.alert": "Desktop notifications",
-  "notifications.column_settings.favourite": "Favourites:",
-  "notifications.column_settings.follow": "New followers:",
-  "notifications.column_settings.mention": "Mentions:",
+  "notifications.column_settings.favourite": "Αγαπημένα:",
+  "notifications.column_settings.follow": "Νέοι ακόλουθοι:",
+  "notifications.column_settings.mention": "Αναφορές:",
   "notifications.column_settings.push": "Push notifications",
-  "notifications.column_settings.push_meta": "This device",
-  "notifications.column_settings.reblog": "Boosts:",
-  "notifications.column_settings.show": "Show in column",
-  "notifications.column_settings.sound": "Play sound",
+  "notifications.column_settings.push_meta": "Αυτή η συσκευή",
+  "notifications.column_settings.reblog": "Προωθήσεις:",
+  "notifications.column_settings.show": "Εμφάνισε σε στήλη",
+  "notifications.column_settings.sound": "Ηχητική ειδοποίηση",
   "notifications.group": "{count} notifications",
-  "onboarding.done": "Done",
-  "onboarding.next": "Next",
-  "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+  "onboarding.done": "Έγινε",
+  "onboarding.next": "Επόμενο",
+  "onboarding.page_five.public_timelines": "Η τοπική ροή δείχνει τις δημόσιες δημοσιεύσεις από όσους εδρεύουν στον κόμβο {domain}. Η ομοσπονδιακή ροή δείχνει τις δημόσιες δημοσιεύσεις εκείνων που οι χρήστες του {domain} ακολουθούν. Αυτές οι είναι Δημόσιες Ροές, ένας ωραίος τρόπος να ανακαλύψεις καινούριους ανθρώπους.",
   "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
   "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
   "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
@@ -201,7 +201,7 @@
   "onboarding.page_six.almost_done": "Almost done...",
   "onboarding.page_six.appetoot": "Bon Appetoot!",
   "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
-  "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+  "onboarding.page_six.github": "Το Mastodon είναι ελεύθερο λογισμικό. Μπορείς να αναφέρεις σφάλματα, να αιτηθείς νέες λειτουργίες ή να συνεισφέρεις κώδικα στο {github}.",
   "onboarding.page_six.guidelines": "community guidelines",
   "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
   "onboarding.page_six.various_app": "mobile apps",
@@ -227,13 +227,13 @@
   "relative_time.seconds": "{number}s",
   "reply_indicator.cancel": "Cancel",
   "report.forward": "Forward to {target}",
-  "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
-  "report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
+  "report.forward_hint": "Ο λογαριασμός είναι από διαφορετικό διακομιστή. Να σταλεί ανώνυμο αντίγραφο της καταγγελίας κι εκεί;",
+  "report.hint": "Η καταγγελία θα σταλεί στους διαχειριστές του κόμβου σου. Μπορείς να περιγράψεις γιατί καταγγέλεις το λογαριασμό παρακάτω:",
   "report.placeholder": "Additional comments",
   "report.submit": "Submit",
-  "report.target": "Report {target}",
+  "report.target": "Καταγγελία {target}",
   "search.placeholder": "Search",
-  "search_popout.search_format": "Advanced search format",
+  "search_popout.search_format": "Προχωρημένη αναζήτηση",
   "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
   "search_popout.tips.hashtag": "hashtag",
   "search_popout.tips.status": "status",
@@ -247,7 +247,7 @@
   "status.block": "Block @{name}",
   "status.cancel_reblog_private": "Unboost",
   "status.cannot_reblog": "This post cannot be boosted",
-  "status.delete": "Delete",
+  "status.delete": "Διαγραφή",
   "status.direct": "Direct message @{name}",
   "status.embed": "Embed",
   "status.favourite": "Favourite",
@@ -265,7 +265,7 @@
   "status.reblogged_by": "{name} boosted",
   "status.reply": "Reply",
   "status.replyAll": "Reply to thread",
-  "status.report": "Report @{name}",
+  "status.report": "Καταγγελία @{name}",
   "status.sensitive_toggle": "Click to view",
   "status.sensitive_warning": "Sensitive content",
   "status.share": "Share",
@@ -275,7 +275,7 @@
   "status.show_more_all": "Show more for all",
   "status.unmute_conversation": "Unmute conversation",
   "status.unpin": "Unpin from profile",
-  "tabs_bar.federated_timeline": "Federated",
+  "tabs_bar.federated_timeline": "Ομοσπονδιακή",
   "tabs_bar.home": "Home",
   "tabs_bar.local_timeline": "Local",
   "tabs_bar.notifications": "Notifications",
@@ -287,7 +287,7 @@
   "upload_button.label": "Add media",
   "upload_form.description": "Describe for the visually impaired",
   "upload_form.focus": "Crop",
-  "upload_form.undo": "Undo",
+  "upload_form.undo": "Διαγραφή",
   "upload_progress.label": "Uploading...",
   "video.close": "Close video",
   "video.exit_fullscreen": "Exit full screen",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 04d9dc8d5..bb27099b7 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -60,8 +60,8 @@
   "column_header.unpin": "Depingli",
   "column_subheading.navigation": "Navigado",
   "column_subheading.settings": "Agordado",
-  "compose_form.direct_message_warning": "Tiu mesaĝo videblos nur por ĉiuj menciitaj uzantoj.",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.direct_message_warning": "Tiu mesaĝo estos sendita nur al menciitaj uzantoj.",
+  "compose_form.direct_message_warning_learn_more": "Lerni pli",
   "compose_form.hashtag_warning": "Ĉi tiu mesaĝo ne estos listigita per ajna kradvorto. Nur publikaj mesaĝoj estas serĉeblaj per kradvortoj.",
   "compose_form.lock_disclaimer": "Via konta ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn mesaĝojn, kiuj estas nur por sekvantoj.",
   "compose_form.lock_disclaimer.lock": "ŝlosita",
@@ -187,7 +187,7 @@
   "notifications.column_settings.reblog": "Diskonigoj:",
   "notifications.column_settings.show": "Montri en kolumno",
   "notifications.column_settings.sound": "Eligi sonon",
-  "notifications.group": "{count} notifications",
+  "notifications.group": "{count} sciigoj",
   "onboarding.done": "Farita",
   "onboarding.next": "Sekva",
   "onboarding.page_five.public_timelines": "La loka tempolinio montras publikajn mesaĝojn de ĉiuj en {domain}. La fratara tempolinio montras publikajn mesaĝojn de ĉiuj, kiuj estas sekvataj de homoj en {domain}. Tio estas la publikaj tempolinioj, kio estas bona maniero por malkovri novajn homojn.",
@@ -280,8 +280,8 @@
   "tabs_bar.local_timeline": "Loka tempolinio",
   "tabs_bar.notifications": "Sciigoj",
   "tabs_bar.search": "Serĉi",
-  "timeline.media": "Media",
-  "timeline.posts": "Toots",
+  "timeline.media": "Aŭdovidaĵoj",
+  "timeline.posts": "Mesaĝoj",
   "ui.beforeunload": "Via malneto perdiĝos se vi eliras de Mastodon.",
   "upload_area.title": "Altreni kaj lasi por alŝuti",
   "upload_button.label": "Aldoni aŭdovidaĵon",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index a6b1f8e83..636c51f6f 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -1,9 +1,9 @@
 {
   "account.badges.bot": "Bot",
   "account.block": "Blokeatu @{name}",
-  "account.block_domain": "{domain}(e)ko guztia ezkutatu",
+  "account.block_domain": "Ezkutatu {domain} domeinuko guztia",
   "account.blocked": "Blokeatuta",
-  "account.direct": "@{name}(e)ri mezu zuzena bidali",
+  "account.direct": "Mezu zuzena @{name} erabiltzaileari",
   "account.disclaimer_full": "Baliteke beheko informazioak erabiltzailearen profilaren zati bat baino ez erakustea.",
   "account.domain_blocked": "Ezkutatutako domeinua",
   "account.edit_profile": "Profila aldatu",
@@ -11,291 +11,291 @@
   "account.followers": "Jarraitzaileak",
   "account.follows": "Jarraitzen",
   "account.follows_you": "Jarraitzen dizu",
-  "account.hide_reblogs": "@{name}(e)k sustatutakoak ezkutatu",
+  "account.hide_reblogs": "Ezkutatu @{name} erabiltzailearen bultzadak",
   "account.media": "Media",
   "account.mention": "@{name} aipatu",
   "account.moved_to": "{name} hona lekualdatu da:",
   "account.mute": "@{name} isilarazi",
-  "account.mute_notifications": "@{name}(e)ren jakinarazpenak isilarazi",
+  "account.mute_notifications": "Mututu @{name} erabiltzailearen jakinarazpenak",
   "account.muted": "Isilarazita",
-  "account.posts": "Toots",
-  "account.posts_with_replies": "Toots and replies",
+  "account.posts": "Toot-ak",
+  "account.posts_with_replies": "Toot eta erantzunak",
   "account.report": "@{name} salatu",
   "account.requested": "Onarpenaren zain. Klikatu jarraitzeko eskaera ezeztatzeko",
   "account.share": "@{name}(e)ren profila elkarbanatu",
-  "account.show_reblogs": "@{name}(e)k sustatutakoak erakutsi",
-  "account.unblock": "@{name} desblokeatu",
+  "account.show_reblogs": "Erakutsi @{name} erabiltzailearen bultzadak",
+  "account.unblock": "Desblokeatu @{name}",
   "account.unblock_domain": "Berriz erakutsi {domain}",
   "account.unfollow": "Jarraitzeari utzi",
-  "account.unmute": "Unmute @{name}",
-  "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account.view_full_profile": "View full profile",
-  "alert.unexpected.message": "An unexpected error occurred.",
-  "alert.unexpected.title": "Oops!",
-  "boost_modal.combo": "You can press {combo} to skip this next time",
-  "bundle_column_error.body": "Something went wrong while loading this component.",
-  "bundle_column_error.retry": "Try again",
+  "account.unmute": "Desmututu @{name}",
+  "account.unmute_notifications": "Desmututu @{name} erabiltzailearen jakinarazpenak",
+  "account.view_full_profile": "Ikusi profil osoa",
+  "alert.unexpected.message": "Ustekabeko errore bat gertatu da.",
+  "alert.unexpected.title": "Ene!",
+  "boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko",
+  "bundle_column_error.body": "Zerbait okerra gertatu da osagai hau kargatzean.",
+  "bundle_column_error.retry": "Saiatu berriro",
   "bundle_column_error.title": "Network error",
-  "bundle_modal_error.close": "Close",
-  "bundle_modal_error.message": "Something went wrong while loading this component.",
-  "bundle_modal_error.retry": "Try again",
-  "column.blocks": "Blocked users",
-  "column.community": "Local timeline",
-  "column.direct": "Direct messages",
-  "column.domain_blocks": "Hidden domains",
-  "column.favourites": "Favourites",
-  "column.follow_requests": "Follow requests",
+  "bundle_modal_error.close": "Itxi",
+  "bundle_modal_error.message": "Zerbait okerra gertatu da osagai hau kargatzean.",
+  "bundle_modal_error.retry": "Saiatu berriro",
+  "column.blocks": "Blokeatutako erabiltzaileak",
+  "column.community": "Denbora-lerro lokala",
+  "column.direct": "Mezu zuzenak",
+  "column.domain_blocks": "Domeinu ezkutuak",
+  "column.favourites": "Gogokoak",
+  "column.follow_requests": "Jarraitzeko eskariak",
   "column.home": "Home",
-  "column.lists": "Lists",
-  "column.mutes": "Muted users",
-  "column.notifications": "Notifications",
+  "column.lists": "Zerrendak",
+  "column.mutes": "Mutututako erabiltzaileak",
+  "column.notifications": "Jakinarazpenak",
   "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.public": "Federatutako denbora-lerroa",
+  "column_back_button.label": "Atzera",
+  "column_header.hide_settings": "Ezkutatu ezarpenak",
+  "column_header.moveLeft_settings": "Eraman zutabea ezkerrera",
+  "column_header.moveRight_settings": "Eraman zutabea eskuinera",
+  "column_header.pin": "Finkatu",
+  "column_header.show_settings": "Erakutsi ezarpenak",
+  "column_header.unpin": "Desfinkatu",
   "column_subheading.navigation": "Navigation",
-  "column_subheading.settings": "Settings",
-  "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": "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?",
+  "column_subheading.settings": "Ezarpenak",
+  "compose_form.direct_message_warning": "Toot hau aipatutako erabiltzaileei besterik ez zaie bidaliko.",
+  "compose_form.direct_message_warning_learn_more": "Ikasi gehiago",
+  "compose_form.hashtag_warning": "Toot hau ez da traoletan agertuko zerrendatu gabekoa baita. Traoletan toot publikoak besterik ez dira agertzen.",
+  "compose_form.lock_disclaimer": "Zure kontua ez dago {locked}. Edonork jarraitu zaitzake zure jarraitzaileentzako soilik diren mezuak ikusteko.",
+  "compose_form.lock_disclaimer.lock": "blokeatuta",
+  "compose_form.placeholder": "Zer duzu buruan?",
   "compose_form.publish": "Toot",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.marked": "Media is marked as sensitive",
-  "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
-  "compose_form.spoiler.marked": "Text is hidden behind warning",
-  "compose_form.spoiler.unmarked": "Text is not hidden",
-  "compose_form.spoiler_placeholder": "Write your warning here",
-  "confirmation_modal.cancel": "Cancel",
+  "compose_form.sensitive.marked": "Multimedia mingarri gisa markatu da",
+  "compose_form.sensitive.unmarked": "Multimedia ez da mingarri gisa markatu",
+  "compose_form.spoiler.marked": "Testua abisu batek ezkutatzen du",
+  "compose_form.spoiler.unmarked": "Testua ez dago ezkutatuta",
+  "compose_form.spoiler_placeholder": "Idatzi zure abisua hemen",
+  "confirmation_modal.cancel": "Utzi",
   "confirmations.block.confirm": "Block",
-  "confirmations.block.message": "Are you sure you want to block {name}?",
+  "confirmations.block.message": "Ziur {name} blokeatu nahi duzula?",
   "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.delete_list.message": "Ziur behin betiko ezabatu nahi duzula zerrenda hau?",
+  "confirmations.domain_block.confirm": "Ezkutatu domeinu osoa",
   "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
-  "confirmations.mute.confirm": "Mute",
-  "confirmations.mute.message": "Are you sure you want to mute {name}?",
-  "confirmations.unfollow.confirm": "Unfollow",
-  "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
+  "confirmations.mute.confirm": "Mututu",
+  "confirmations.mute.message": "Ziur {name} mututu nahi duzula?",
+  "confirmations.unfollow.confirm": "Utzi jarraitzeari",
+  "confirmations.unfollow.message": "Ziur {name} jarraitzeari utzi nahi diozula?",
   "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",
+  "embed.preview": "Hau da izango duen itxura:",
+  "emoji_button.activity": "Jarduera",
+  "emoji_button.custom": "Pertsonalizatua",
+  "emoji_button.flags": "Banderak",
+  "emoji_button.food": "Janari eta edaria",
   "emoji_button.label": "Insert emoji",
-  "emoji_button.nature": "Nature",
+  "emoji_button.nature": "Natura",
   "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",
+  "emoji_button.objects": "Objektuak",
+  "emoji_button.people": "Jendea",
+  "emoji_button.recent": "Maiz erabiliak",
+  "emoji_button.search": "Bilatu...",
+  "emoji_button.search_results": "Bilaketaren emaitzak",
+  "emoji_button.symbols": "Sinboloak",
+  "emoji_button.travel": "Bidaiak eta tokiak",
   "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.hashtag": "There is nothing in this hashtag yet.",
+  "empty_column.hashtag": "Ez dago ezer traola honetan oraindik.",
   "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": "denbora-lerro publikoa",
   "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
   "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
   "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
-  "follow_request.authorize": "Authorize",
-  "follow_request.reject": "Reject",
-  "getting_started.appsshort": "Apps",
+  "follow_request.authorize": "Baimendu",
+  "follow_request.reject": "Ukatu",
+  "getting_started.appsshort": "Aplikazioak",
   "getting_started.faq": "FAQ",
-  "getting_started.heading": "Getting started",
+  "getting_started.heading": "Lehen urratsak",
   "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
-  "getting_started.userguide": "User Guide",
-  "home.column_settings.advanced": "Advanced",
-  "home.column_settings.basic": "Basic",
-  "home.column_settings.filter_regex": "Filter out by regular expressions",
-  "home.column_settings.show_reblogs": "Show boosts",
-  "home.column_settings.show_replies": "Show replies",
-  "home.settings": "Column settings",
-  "keyboard_shortcuts.back": "to navigate back",
-  "keyboard_shortcuts.boost": "to boost",
+  "getting_started.userguide": "Erabiltzaile gida",
+  "home.column_settings.advanced": "Aurreratua",
+  "home.column_settings.basic": "Oinarrizkoa",
+  "home.column_settings.filter_regex": "Iragazi adierazpen erregularren bidez",
+  "home.column_settings.show_reblogs": "Erakutsi bultzadak",
+  "home.column_settings.show_replies": "Erakutsi erantzunak",
+  "home.settings": "Zutabearen ezarpenak",
+  "keyboard_shortcuts.back": "atzera nabigatzeko",
+  "keyboard_shortcuts.boost": "bultzada ematea",
   "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.down": "to move down in the list",
+  "keyboard_shortcuts.down": "zerrendan behera mugitzea",
   "keyboard_shortcuts.enter": "to open status",
-  "keyboard_shortcuts.favourite": "to favourite",
+  "keyboard_shortcuts.favourite": "gogoko egitea",
   "keyboard_shortcuts.heading": "Keyboard Shortcuts",
-  "keyboard_shortcuts.hotkey": "Hotkey",
-  "keyboard_shortcuts.legend": "to display this legend",
-  "keyboard_shortcuts.mention": "to mention author",
-  "keyboard_shortcuts.reply": "to reply",
-  "keyboard_shortcuts.search": "to focus search",
+  "keyboard_shortcuts.hotkey": "Laster-tekla",
+  "keyboard_shortcuts.legend": "legenda hau bistaratzea",
+  "keyboard_shortcuts.mention": "egilea aipatzea",
+  "keyboard_shortcuts.reply": "erantzutea",
+  "keyboard_shortcuts.search": "bilaketan fokua jartzea",
   "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
-  "keyboard_shortcuts.toot": "to start a brand new toot",
+  "keyboard_shortcuts.toot": "toot berria hastea",
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
-  "keyboard_shortcuts.up": "to move up in the list",
-  "lightbox.close": "Close",
-  "lightbox.next": "Next",
-  "lightbox.previous": "Previous",
-  "lists.account.add": "Add to list",
-  "lists.account.remove": "Remove from list",
+  "keyboard_shortcuts.up": "zerrendan gora mugitzea",
+  "lightbox.close": "Itxi",
+  "lightbox.next": "Hurrengoa",
+  "lightbox.previous": "Aurrekoa",
+  "lists.account.add": "Gehitu zerrendara",
+  "lists.account.remove": "Kendu zerrendatik",
   "lists.delete": "Delete list",
-  "lists.edit": "Edit list",
-  "lists.new.create": "Add list",
-  "lists.new.title_placeholder": "New list title",
-  "lists.search": "Search among people you follow",
-  "lists.subheading": "Your lists",
-  "loading_indicator.label": "Loading...",
-  "media_gallery.toggle_visible": "Toggle visibility",
-  "missing_indicator.label": "Not found",
-  "missing_indicator.sublabel": "This resource could not be found",
-  "mute_modal.hide_notifications": "Hide notifications from this user?",
-  "navigation_bar.blocks": "Blocked users",
-  "navigation_bar.community_timeline": "Local timeline",
-  "navigation_bar.direct": "Direct messages",
-  "navigation_bar.domain_blocks": "Hidden domains",
-  "navigation_bar.edit_profile": "Edit profile",
-  "navigation_bar.favourites": "Favourites",
-  "navigation_bar.follow_requests": "Follow requests",
+  "lists.edit": "Editatu zerrenda",
+  "lists.new.create": "Gehitu zerrenda",
+  "lists.new.title_placeholder": "Zerrenda berriaren izena",
+  "lists.search": "Bilatu jarraitzen dituzun pertsonen artean",
+  "lists.subheading": "Zure zerrendak",
+  "loading_indicator.label": "Kargatzen...",
+  "media_gallery.toggle_visible": "Txandakatu ikusgaitasuna",
+  "missing_indicator.label": "Ez aurkitua",
+  "missing_indicator.sublabel": "Baliabide hau ezin izan da aurkitu",
+  "mute_modal.hide_notifications": "Ezkutatu erabiltzaile honen jakinarazpenak?",
+  "navigation_bar.blocks": "Blokeatutako erabiltzaileak",
+  "navigation_bar.community_timeline": "Denbora-lerro lokala",
+  "navigation_bar.direct": "Mezu zuzenak",
+  "navigation_bar.domain_blocks": "Domeinu ezkutuak",
+  "navigation_bar.edit_profile": "Editatu profila",
+  "navigation_bar.favourites": "Gogokoak",
+  "navigation_bar.follow_requests": "Jarraitzeko eskariak",
   "navigation_bar.info": "Extended information",
-  "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
-  "navigation_bar.lists": "Lists",
-  "navigation_bar.logout": "Logout",
-  "navigation_bar.mutes": "Muted users",
-  "navigation_bar.pins": "Pinned toots",
-  "navigation_bar.preferences": "Preferences",
-  "navigation_bar.public_timeline": "Federated timeline",
+  "navigation_bar.keyboard_shortcuts": "Teklatu laster-bideak",
+  "navigation_bar.lists": "Zerrendak",
+  "navigation_bar.logout": "Amaitu saioa",
+  "navigation_bar.mutes": "Mutututako erabiltzaileak",
+  "navigation_bar.pins": "Finkatutako toot-ak",
+  "navigation_bar.preferences": "Hobespenak",
+  "navigation_bar.public_timeline": "Federatutako denbora-lerroa",
   "notification.favourite": "{name} favourited your status",
-  "notification.follow": "{name} followed you",
-  "notification.mention": "{name} mentioned you",
+  "notification.follow": "{name} erabiltzaileak jarraitzen zaitu",
+  "notification.mention": "{name} erabiltzaileak aipatu zaitu",
   "notification.reblog": "{name} boosted your status",
-  "notifications.clear": "Clear notifications",
-  "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
-  "notifications.column_settings.alert": "Desktop notifications",
-  "notifications.column_settings.favourite": "Favourites:",
-  "notifications.column_settings.follow": "New followers:",
-  "notifications.column_settings.mention": "Mentions:",
-  "notifications.column_settings.push": "Push notifications",
-  "notifications.column_settings.push_meta": "This device",
-  "notifications.column_settings.reblog": "Boosts:",
-  "notifications.column_settings.show": "Show in column",
-  "notifications.column_settings.sound": "Play sound",
-  "notifications.group": "{count} notifications",
-  "onboarding.done": "Done",
-  "onboarding.next": "Next",
+  "notifications.clear": "Garbitu jakinarazpenak",
+  "notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?",
+  "notifications.column_settings.alert": "Mahaigaineko jakinarazpenak",
+  "notifications.column_settings.favourite": "Gogokoak:",
+  "notifications.column_settings.follow": "Jarraitzaile berriak:",
+  "notifications.column_settings.mention": "Aipamenak:",
+  "notifications.column_settings.push": "Push jakinarazpenak",
+  "notifications.column_settings.push_meta": "Gailu hau",
+  "notifications.column_settings.reblog": "Bultzadak:",
+  "notifications.column_settings.show": "Erakutsi zutabean",
+  "notifications.column_settings.sound": "Jo soinua",
+  "notifications.group": "{count} jakinarazpen",
+  "onboarding.done": "Egina",
+  "onboarding.next": "Hurrengoa",
   "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
-  "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
-  "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+  "onboarding.page_four.home": "Hasierako denbora-lerroak jarraitzen duzun jendearen mezuak erakusten ditu.",
+  "onboarding.page_four.notifications": "Jakinarazpenen  zutabeak besteek zurekin hasitako hartu-emanak erakusten ditu.",
   "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
-  "onboarding.page_one.full_handle": "Your full handle",
-  "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
-  "onboarding.page_one.welcome": "Welcome to Mastodon!",
-  "onboarding.page_six.admin": "Your instance's admin is {admin}.",
-  "onboarding.page_six.almost_done": "Almost done...",
+  "onboarding.page_one.full_handle": "Zure erabiltzaile-izen osoa",
+  "onboarding.page_one.handle_hint": "Hau da zure lagunei zu aurkitzeko emango zeniena.",
+  "onboarding.page_one.welcome": "Ongi etorri Mastodon-era!",
+  "onboarding.page_six.admin": "Zure instantziaren administratzailea {admin} da.",
+  "onboarding.page_six.almost_done": "Ia eginda...",
   "onboarding.page_six.appetoot": "Bon Appetoot!",
-  "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+  "onboarding.page_six.apps_available": "{apps} eskuragarri daude iOS, Android eta beste plataformetarako.",
   "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
-  "onboarding.page_six.guidelines": "community guidelines",
-  "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
-  "onboarding.page_six.various_app": "mobile apps",
+  "onboarding.page_six.guidelines": "komunitatearen gida-lerroak",
+  "onboarding.page_six.read_guidelines": "Irakurri {domain} {guidelines} mesedez!",
+  "onboarding.page_six.various_app": "mugikorrerako aplikazioak",
   "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
   "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
   "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
-  "onboarding.skip": "Skip",
+  "onboarding.skip": "Saltatu",
   "privacy.change": "Adjust status privacy",
-  "privacy.direct.long": "Post to mentioned users only",
-  "privacy.direct.short": "Direct",
-  "privacy.private.long": "Post to followers only",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Post to public timelines",
-  "privacy.public.short": "Public",
+  "privacy.direct.long": "Bidali aipatutako erabiltzaileei besterik ez",
+  "privacy.direct.short": "Zuzena",
+  "privacy.private.long": "Bidali jarraitzaileei besterik ez",
+  "privacy.private.short": "Jarraitzaileak soilik",
+  "privacy.public.long": "Bistaratu denbora-lerro publikoetan",
+  "privacy.public.short": "Publikoa",
   "privacy.unlisted.long": "Do not show in public timelines",
-  "privacy.unlisted.short": "Unlisted",
-  "regeneration_indicator.label": "Loading…",
-  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+  "privacy.unlisted.short": "Zerrendatu gabea",
+  "regeneration_indicator.label": "Kargatzen…",
+  "regeneration_indicator.sublabel": "Zure hasiera-jarioa prestatzen ari da!",
   "relative_time.days": "{number}d",
   "relative_time.hours": "{number}h",
-  "relative_time.just_now": "now",
+  "relative_time.just_now": "orain",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
-  "reply_indicator.cancel": "Cancel",
-  "report.forward": "Forward to {target}",
+  "reply_indicator.cancel": "Utzi",
+  "report.forward": "Birbidali hona: {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
   "report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
-  "report.placeholder": "Additional comments",
+  "report.placeholder": "Iruzkin gehigarriak",
   "report.submit": "Submit",
   "report.target": "Report {target}",
-  "search.placeholder": "Search",
-  "search_popout.search_format": "Advanced search format",
+  "search.placeholder": "Bilatu",
+  "search_popout.search_format": "Bilaketa aurreratuaren formatua",
   "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.hashtag": "traola",
   "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_popout.tips.user": "erabiltzailea",
+  "search_results.accounts": "Jendea",
+  "search_results.hashtags": "Traolak",
+  "search_results.statuses": "Toot-ak",
   "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "standalone.public_title": "A look inside...",
+  "standalone.public_title": "Begiradatxo bat...",
   "status.block": "Block @{name}",
-  "status.cancel_reblog_private": "Unboost",
-  "status.cannot_reblog": "This post cannot be boosted",
+  "status.cancel_reblog_private": "Kendu bultzada",
+  "status.cannot_reblog": "Mezu honi ezin zaio bultzada eman",
   "status.delete": "Delete",
-  "status.direct": "Direct message @{name}",
-  "status.embed": "Embed",
-  "status.favourite": "Favourite",
-  "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.direct": "Mezu zuzena @{name} erabiltzaileari",
+  "status.embed": "Txertatu",
+  "status.favourite": "Gogokoa",
+  "status.load_more": "Kargatu gehiago",
+  "status.media_hidden": "Multimedia ezkutatua",
+  "status.mention": "Aipatu @{name}",
+  "status.more": "Gehiago",
+  "status.mute": "Mututu @{name}",
+  "status.mute_conversation": "Mututu elkarrizketa",
   "status.open": "Expand this status",
-  "status.pin": "Pin on profile",
-  "status.pinned": "Pinned toot",
-  "status.reblog": "Boost",
-  "status.reblog_private": "Boost to original audience",
-  "status.reblogged_by": "{name} boosted",
-  "status.reply": "Reply",
-  "status.replyAll": "Reply to thread",
+  "status.pin": "Finkatu profilean",
+  "status.pinned": "Finkatutako toot-a",
+  "status.reblog": "Bultzada",
+  "status.reblog_private": "Bultzada jatorrizko hartzaileei",
+  "status.reblogged_by": "{name} erabiltzailearen bultzada",
+  "status.reply": "Erantzun",
+  "status.replyAll": "Erantzun harian",
   "status.report": "Report @{name}",
   "status.sensitive_toggle": "Click to view",
-  "status.sensitive_warning": "Sensitive content",
-  "status.share": "Share",
-  "status.show_less": "Show less",
-  "status.show_less_all": "Show less for all",
-  "status.show_more": "Show more",
-  "status.show_more_all": "Show more for all",
-  "status.unmute_conversation": "Unmute conversation",
-  "status.unpin": "Unpin from profile",
-  "tabs_bar.federated_timeline": "Federated",
+  "status.sensitive_warning": "Eduki mingarria",
+  "status.share": "Partekatu",
+  "status.show_less": "Erakutsi gutxiago",
+  "status.show_less_all": "Erakutsi denetarik gutxiago",
+  "status.show_more": "Erakutsi gehiago",
+  "status.show_more_all": "Erakutsi denetarik gehiago",
+  "status.unmute_conversation": "Desmututu elkarrizketa",
+  "status.unpin": "Desfinkatu profiletik",
+  "tabs_bar.federated_timeline": "Federatua",
   "tabs_bar.home": "Home",
   "tabs_bar.local_timeline": "Local",
-  "tabs_bar.notifications": "Notifications",
-  "tabs_bar.search": "Search",
+  "tabs_bar.notifications": "Jakinarazpenak",
+  "tabs_bar.search": "Bilatu",
   "timeline.media": "Media",
-  "timeline.posts": "Toots",
-  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
-  "upload_area.title": "Drag & drop to upload",
-  "upload_button.label": "Add media",
-  "upload_form.description": "Describe for the visually impaired",
-  "upload_form.focus": "Crop",
-  "upload_form.undo": "Undo",
-  "upload_progress.label": "Uploading...",
-  "video.close": "Close video",
-  "video.exit_fullscreen": "Exit full screen",
-  "video.expand": "Expand video",
+  "timeline.posts": "Toot-ak",
+  "ui.beforeunload": "Zure zirriborroa galduko da Mastodon uzten baduzu.",
+  "upload_area.title": "Arrastatu eta jaregin igotzeko",
+  "upload_button.label": "Gehitu multimedia",
+  "upload_form.description": "Deskribatu ikusmen arazoak dituztenentzat",
+  "upload_form.focus": "Moztu",
+  "upload_form.undo": "Ezabatu",
+  "upload_progress.label": "Igotzen...",
+  "video.close": "Itxi bideoa",
+  "video.exit_fullscreen": "Irten pantaila osotik",
+  "video.expand": "Hedatu bideoa",
   "video.fullscreen": "Full screen",
-  "video.hide": "Hide video",
-  "video.mute": "Mute sound",
+  "video.hide": "Ezkutatu bideoa",
+  "video.mute": "Mututu soinua",
   "video.pause": "Pause",
-  "video.play": "Play",
-  "video.unmute": "Unmute sound"
+  "video.play": "Jo",
+  "video.unmute": "Desmututu soinua"
 }
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index c45277d82..6c0f34a11 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -1,9 +1,9 @@
 {
-  "account.badges.bot": "Bot",
+  "account.badges.bot": "ربات",
   "account.block": "مسدودسازی @{name}",
   "account.block_domain": "پنهان‌سازی همه چیز از سرور {domain}",
   "account.blocked": "مسدودشده",
-  "account.direct": "Direct message @{name}",
+  "account.direct": "پیغام خصوصی به @{name}",
   "account.disclaimer_full": "اطلاعات زیر ممکن است نمایهٔ این کاربر را به تمامی نشان ندهد.",
   "account.domain_blocked": "دامین پنهان‌شده",
   "account.edit_profile": "ویرایش نمایه",
@@ -12,7 +12,7 @@
   "account.follows": "پی می‌گیرد",
   "account.follows_you": "پیگیر شماست",
   "account.hide_reblogs": "پنهان کردن بازبوق‌های @{name}",
-  "account.media": "رسانه",
+  "account.media": "عکس و ویدیو",
   "account.mention": "نام‌بردن از @{name}",
   "account.moved_to": "{name} منتقل شده است به:",
   "account.mute": "بی‌صدا کردن @{name}",
@@ -30,8 +30,8 @@
   "account.unmute": "باصدا کردن @{name}",
   "account.unmute_notifications": "باصداکردن اعلان‌ها از طرف @{name}",
   "account.view_full_profile": "نمایش نمایهٔ کامل",
-  "alert.unexpected.message": "An unexpected error occurred.",
-  "alert.unexpected.title": "Oops!",
+  "alert.unexpected.message": "خطای پیش‌بینی‌نشده‌ای رخ داد.",
+  "alert.unexpected.title": "ای وای!",
   "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
   "bundle_column_error.body": "هنگام بازکردن این بخش خطایی رخ داد.",
   "bundle_column_error.retry": "تلاش دوباره",
@@ -41,8 +41,8 @@
   "bundle_modal_error.retry": "تلاش دوباره",
   "column.blocks": "کاربران مسدودشده",
   "column.community": "نوشته‌های محلی",
-  "column.direct": "Direct messages",
-  "column.domain_blocks": "Hidden domains",
+  "column.direct": "پیغام‌های خصوصی",
+  "column.domain_blocks": "دامین‌های پنهان‌شده",
   "column.favourites": "پسندیده‌ها",
   "column.follow_requests": "درخواست‌های پیگیری",
   "column.home": "خانه",
@@ -60,18 +60,18 @@
   "column_header.unpin": "رهاکردن",
   "column_subheading.navigation": "گشت و گذار",
   "column_subheading.settings": "تنظیمات",
-  "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.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.publish": "بوق",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.marked": "Media is marked as sensitive",
-  "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
-  "compose_form.spoiler.marked": "Text is hidden behind warning",
-  "compose_form.spoiler.unmarked": "Text is not hidden",
+  "compose_form.sensitive.marked": "این تصویر به عنوان حساس علامت‌گذاری شده",
+  "compose_form.sensitive.unmarked": "این تصویر به عنوان حساس علامت‌گذاری نشده",
+  "compose_form.spoiler.marked": "نوشته پشت هشدار محتوا پنهان است",
+  "compose_form.spoiler.unmarked": "نوشته پنهان نیست",
   "compose_form.spoiler_placeholder": "هشدار محتوا",
   "confirmation_modal.cancel": "بی‌خیال",
   "confirmations.block.confirm": "مسدود کن",
@@ -103,7 +103,7 @@
   "emoji_button.symbols": "نمادها",
   "emoji_button.travel": "سفر و مکان",
   "empty_column.community": "فهرست نوشته‌های محلی خالی است. چیزی بنویسید تا چرخش بچرخد!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.direct": "شما هیچ پیغام مستقیمی ندارید. اگر چنین پیغامی بگیرید یا بفرستید این‌جا نمایش خواهد یافت.",
   "empty_column.hashtag": "هنوز هیچ چیزی با این هشتگ نیست.",
   "empty_column.home": "شما هنوز پیگیر کسی نیستید. {public} را ببینید یا چیزی را جستجو کنید تا کاربران دیگر را ببینید.",
   "empty_column.home.public_timeline": "فهرست نوشته‌های همه‌جا",
@@ -119,7 +119,7 @@
   "getting_started.userguide": "راهنمای کاربری",
   "home.column_settings.advanced": "پیشرفته",
   "home.column_settings.basic": "اصلی",
-  "home.column_settings.filter_regex": "با عبارت‌های باقاعده فیلتر کنید",
+  "home.column_settings.filter_regex": "با عبارت‌های باقاعده (regexp) فیلتر کنید",
   "home.column_settings.show_reblogs": "نمایش بازبوق‌ها",
   "home.column_settings.show_replies": "نمایش پاسخ‌ها",
   "home.settings": "تنظیمات ستون",
@@ -155,12 +155,12 @@
   "loading_indicator.label": "بارگیری...",
   "media_gallery.toggle_visible": "تغییر پیدایی",
   "missing_indicator.label": "پیدا نشد",
-  "missing_indicator.sublabel": "This resource could not be found",
+  "missing_indicator.sublabel": "این منبع پیدا نشد",
   "mute_modal.hide_notifications": "اعلان‌های این کاربر پنهان شود؟",
   "navigation_bar.blocks": "کاربران مسدودشده",
   "navigation_bar.community_timeline": "نوشته‌های محلی",
-  "navigation_bar.direct": "Direct messages",
-  "navigation_bar.domain_blocks": "Hidden domains",
+  "navigation_bar.direct": "پیغام‌های خصوصی",
+  "navigation_bar.domain_blocks": "دامین‌های پنهان‌شده",
   "navigation_bar.edit_profile": "ویرایش نمایه",
   "navigation_bar.favourites": "پسندیده‌ها",
   "navigation_bar.follow_requests": "درخواست‌های پیگیری",
@@ -187,15 +187,15 @@
   "notifications.column_settings.reblog": "بازبوق‌ها:",
   "notifications.column_settings.show": "نمایش در ستون",
   "notifications.column_settings.sound": "پخش صدا",
-  "notifications.group": "{count} notifications",
+  "notifications.group": "{count} اعلان",
   "onboarding.done": "پایان",
   "onboarding.next": "بعدی",
   "onboarding.page_five.public_timelines": "نوشته‌های محلی یعنی نوشته‌های همهٔ کاربران {domain}. نوشته‌های همه‌جا یعنی نوشته‌های همهٔ کسانی که کاربران {domain} آن‌ها را پی می‌گیرند. این فهرست‌های عمومی راه خوبی برای یافتن کاربران تازه هستند.",
   "onboarding.page_four.home": "ستون «خانه» نوشته‌های کسانی را نشان می‌دهد که شما پی می‌گیرید.",
   "onboarding.page_four.notifications": "ستون «اعلان‌ها» ارتباط‌های شما با دیگران را نشان می‌دهد.",
   "onboarding.page_one.federation": "ماستدون شبکه‌ای از سرورهای مستقل است که با پیوستن به یکدیگر یک شبکهٔ اجتماعی بزرگ را تشکیل می‌دهند.",
-  "onboarding.page_one.full_handle": "Your full handle",
-  "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
+  "onboarding.page_one.full_handle": "شناسهٔ کاربری کامل شما",
+  "onboarding.page_one.handle_hint": "این چیزی است که باید به دوستان خود بگویید تا بتوانند شما را پیدا کنند.",
   "onboarding.page_one.welcome": "به ماستدون خوش آمدید!",
   "onboarding.page_six.admin": "نشانی مسئول سرور شما {admin} است.",
   "onboarding.page_six.almost_done": "الان تقریباً آماده‌اید...",
@@ -218,50 +218,50 @@
   "privacy.public.short": "عمومی",
   "privacy.unlisted.long": "عمومی، ولی فهرست نکن",
   "privacy.unlisted.short": "فهرست‌نشده",
-  "regeneration_indicator.label": "Loading…",
-  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+  "regeneration_indicator.label": "در حال باز شدن…",
+  "regeneration_indicator.sublabel": "این فهرست دارد آماده می‌شود!",
   "relative_time.days": "{number}d",
   "relative_time.hours": "{number}h",
   "relative_time.just_now": "الان",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
   "reply_indicator.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 instance moderators. You can provide an explanation of why you are reporting this account below:",
+  "report.forward": "فرستادن به {target}",
+  "report.forward_hint": "این حساب در سرور دیگری ثبت شده. آیا می‌خواهید رونوشتی از این گزارش به طور ناشناس به آن‌جا هم فرستاده شود؟",
+  "report.hint": "این گزارش به مدیران سرور شما فرستاده خواهد شد. می‌توانید دلیل گزارش‌دادن این حساب را در این‌جا بنویسید:",
   "report.placeholder": "توضیح اضافه",
   "report.submit": "بفرست",
   "report.target": "گزارش‌دادن",
   "search.placeholder": "جستجو",
   "search_popout.search_format": "راهنمای جستجوی پیشرفته",
-  "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+  "search_popout.tips.full_text": "جستجوی متنی ساده می‌تواند بوق‌هایی که شما نوشته‌اید، پسندیده‌اید، بازبوقیده‌اید، یا در آن‌ها از شما نام برده شده است را پیدا کند. همچنین نام‌های کاربری، نام نمایش‌یافته، و هشتگ‌ها را هم شامل می‌شود.",
   "search_popout.tips.hashtag": "هشتگ",
   "search_popout.tips.status": "نوشته",
   "search_popout.tips.text": "جستجوی متنی ساده برای نام‌ها، نام‌های کاربری، و هشتگ‌ها",
   "search_popout.tips.user": "کاربر",
-  "search_results.accounts": "People",
-  "search_results.hashtags": "Hashtags",
-  "search_results.statuses": "Toots",
+  "search_results.accounts": "افراد",
+  "search_results.hashtags": "هشتگ‌ها",
+  "search_results.statuses": "بوق‌ها",
   "search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}",
   "standalone.public_title": "نگاهی به کاربران این سرور...",
-  "status.block": "Block @{name}",
-  "status.cancel_reblog_private": "Unboost",
+  "status.block": "مسدودسازی @{name}",
+  "status.cancel_reblog_private": "حذف بازبوق",
   "status.cannot_reblog": "این نوشته را نمی‌شود بازبوقید",
   "status.delete": "پاک‌کردن",
-  "status.direct": "Direct message @{name}",
+  "status.direct": "پیغام مستقیم به @{name}",
   "status.embed": "جاگذاری",
   "status.favourite": "پسندیدن",
   "status.load_more": "بیشتر نشان بده",
   "status.media_hidden": "تصویر پنهان شده",
   "status.mention": "نام‌بردن از @{name}",
   "status.more": "بیشتر",
-  "status.mute": "Mute @{name}",
+  "status.mute": "بی‌صدا کردن @{name}",
   "status.mute_conversation": "بی‌صداکردن گفتگو",
   "status.open": "این نوشته را باز کن",
   "status.pin": "نوشتهٔ ثابت نمایه",
-  "status.pinned": "Pinned toot",
+  "status.pinned": "بوق ثابت",
   "status.reblog": "بازبوقیدن",
-  "status.reblog_private": "Boost to original audience",
+  "status.reblog_private": "بازبوق به مخاطبان اولیه",
   "status.reblogged_by": "‫{name}‬ بازبوقید",
   "status.reply": "پاسخ",
   "status.replyAll": "به نوشته پاسخ دهید",
@@ -270,24 +270,24 @@
   "status.sensitive_warning": "محتوای حساس",
   "status.share": "هم‌رسانی",
   "status.show_less": "نهفتن",
-  "status.show_less_all": "Show less for all",
+  "status.show_less_all": "نمایش کمتر همه",
   "status.show_more": "نمایش",
-  "status.show_more_all": "Show more for all",
+  "status.show_more_all": "نمایش بیشتر همه",
   "status.unmute_conversation": "باصداکردن گفتگو",
   "status.unpin": "برداشتن نوشتهٔ ثابت نمایه",
   "tabs_bar.federated_timeline": "همگانی",
   "tabs_bar.home": "خانه",
   "tabs_bar.local_timeline": "محلی",
   "tabs_bar.notifications": "اعلان‌ها",
-  "tabs_bar.search": "Search",
-  "timeline.media": "Media",
-  "timeline.posts": "Toots",
+  "tabs_bar.search": "جستجو",
+  "timeline.media": "عکس و ویدیو",
+  "timeline.posts": "بوق‌ها",
   "ui.beforeunload": "اگر از ماستدون خارج شوید پیش‌نویس شما پاک خواهد شد.",
   "upload_area.title": "برای بارگذاری به این‌جا بکشید",
   "upload_button.label": "افزودن تصویر",
   "upload_form.description": "نوشتهٔ توضیحی برای کم‌بینایان و نابینایان",
-  "upload_form.focus": "Crop",
-  "upload_form.undo": "واگردانی",
+  "upload_form.focus": "بریدن لبه‌ها",
+  "upload_form.undo": "حذف",
   "upload_progress.label": "بارگذاری...",
   "video.close": "بستن ویدیو",
   "video.exit_fullscreen": "خروج از حالت تمام صفحه",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 4c2bd39ca..24b771efa 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -3,7 +3,7 @@
   "account.block": "Bloquer @{name}",
   "account.block_domain": "Tout masquer venant de {domain}",
   "account.blocked": "Bloqué",
-  "account.direct": "Message direct @{name}",
+  "account.direct": "Message direct à @{name}",
   "account.disclaimer_full": "Les données ci-dessous peuvent ne pas refléter ce profil dans sa totalité.",
   "account.domain_blocked": "Domaine caché",
   "account.edit_profile": "Modifier le profil",
@@ -61,7 +61,7 @@
   "column_subheading.navigation": "Navigation",
   "column_subheading.settings": "Paramètres",
   "compose_form.direct_message_warning": "Ce pouet sera uniquement envoyé qu'aux personnes mentionnées. Cependant, l'administration de votre instance et des instances réceptrices pourront inspecter ce message.",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.direct_message_warning_learn_more": "En savoir plus",
   "compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur \"non-listé\". Seuls les pouets avec une visibilité \"publique\" peuvent être recherchés par hashtag.",
   "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos pouets privés.",
   "compose_form.lock_disclaimer.lock": "verrouillé",
@@ -248,7 +248,7 @@
   "status.cancel_reblog_private": "Dé-booster",
   "status.cannot_reblog": "Cette publication ne peut être boostée",
   "status.delete": "Effacer",
-  "status.direct": "Message direct @{name}",
+  "status.direct": "Message direct à @{name}",
   "status.embed": "Intégrer",
   "status.favourite": "Ajouter aux favoris",
   "status.load_more": "Charger plus",
@@ -281,7 +281,7 @@
   "tabs_bar.notifications": "Notifications",
   "tabs_bar.search": "Chercher",
   "timeline.media": "Media",
-  "timeline.posts": "Toots",
+  "timeline.posts": "Pouets",
   "ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.",
   "upload_area.title": "Glissez et déposez pour envoyer",
   "upload_button.label": "Joindre un média",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 485fe0fad..cc0551b14 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -19,7 +19,7 @@
   "account.mute_notifications": "Silenzia notifiche da @{name}",
   "account.muted": "Silenziato",
   "account.posts": "Toot",
-  "account.posts_with_replies": "Toot con risposte",
+  "account.posts_with_replies": "Toot e risposte",
   "account.report": "Segnala @{name}",
   "account.requested": "In attesa di approvazione",
   "account.share": "Condividi il profilo di @{name}",
@@ -33,7 +33,7 @@
   "alert.unexpected.message": "Si è verificato un errore inatteso.",
   "alert.unexpected.title": "Oops!",
   "boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio la prossima volta",
-  "bundle_column_error.body": "C'è stato un errore mentre questo componente veniva caricato.",
+  "bundle_column_error.body": "E' avvenuto un errore durante il caricamento di questo componente.",
   "bundle_column_error.retry": "Riprova",
   "bundle_column_error.title": "Network error",
   "bundle_modal_error.close": "Chiudi",
@@ -60,8 +60,8 @@
   "column_header.unpin": "Non fissare in cima",
   "column_subheading.navigation": "Navigation",
   "column_subheading.settings": "Impostazioni",
-  "compose_form.direct_message_warning": "Questo toot sarà visibile solo a tutti gli utenti citati.",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.direct_message_warning": "Questo toot sarà mandato solo a tutti gli utenti menzionati.",
+  "compose_form.direct_message_warning_learn_more": "Per saperne di piu'",
   "compose_form.hashtag_warning": "Questo toot non è listato, quindi non sarà trovato nelle ricerche per hashtag. Solo i toot pubblici possono essere cercati per hashtag.",
   "compose_form.lock_disclaimer": "Il tuo account non è {bloccato}. Chiunque può decidere di seguirti per vedere i tuoi post per soli seguaci.",
   "compose_form.lock_disclaimer.lock": "bloccato",
@@ -84,7 +84,7 @@
   "confirmations.domain_block.message": "Sei davvero sicuro che vuoi bloccare l'intero {domain}? Nella maggior parte dei casi, pochi blocchi o silenziamenti mirati sono sufficienti e preferibili.",
   "confirmations.mute.confirm": "Silenzia",
   "confirmations.mute.message": "Sei sicuro di voler silenziare {name}?",
-  "confirmations.unfollow.confirm": "Non seguire più",
+  "confirmations.unfollow.confirm": "Smetti di seguire",
   "confirmations.unfollow.message": "Sei sicuro che non vuoi più seguire {name}?",
   "embed.instructions": "Inserisci questo status nel tuo sito copiando il codice qui sotto.",
   "embed.preview": "Ecco come apparirà:",
@@ -94,7 +94,7 @@
   "emoji_button.food": "Cibo e bevande",
   "emoji_button.label": "Inserisci emoji",
   "emoji_button.nature": "Natura",
-  "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "Nessun emojos!! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "Oggetti",
   "emoji_button.people": "Persone",
   "emoji_button.recent": "Usati di frequente",
@@ -187,7 +187,7 @@
   "notifications.column_settings.reblog": "Post condivisi:",
   "notifications.column_settings.show": "Mostra in colonna",
   "notifications.column_settings.sound": "Riproduci suono",
-  "notifications.group": "{count} notifications",
+  "notifications.group": "{count} notifiche",
   "onboarding.done": "Fatto",
   "onboarding.next": "Prossimo",
   "onboarding.page_five.public_timelines": "La timeline locale mostra i post pubblici di tutti gli utenti di {domain}. La timeline federata mostra i post pubblici di tutti gli utenti seguiti da quelli di {domain}. Queste sono le timeline pubbliche, che vi danno grandi possibilità di scoprire nuovi utenti.",
@@ -228,18 +228,18 @@
   "reply_indicator.cancel": "Annulla",
   "report.forward": "Inoltra a {target}",
   "report.forward_hint": "Questo account appartiene a un altro server. Mandare anche là una copia anonima del rapporto?",
-  "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": "La segnalazione sara' invata ai tuoi moderatori di istanza. Di seguito, puoi fornire  il motivo per il quale stai segnalando questo account:",
   "report.placeholder": "Commenti aggiuntivi",
   "report.submit": "Invia",
-  "report.target": "Invio la segnalazione",
+  "report.target": "Invio la segnalazione {target}",
   "search.placeholder": "Cerca",
-  "search_popout.search_format": "Advanced search format",
+  "search_popout.search_format": "Formato di ricerca avanzato",
   "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_popout.tips.user": "utente",
+  "search_results.accounts": "Gente",
   "search_results.hashtags": "Hashtag",
   "search_results.statuses": "Toot",
   "search_results.total": "{count} {count, plural, one {risultato} other {risultati}}",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index 488fb6020..8de92db16 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -63,11 +63,11 @@
   "column_subheading.lists": "リスト",
   "column_subheading.navigation": "ナビゲーション",
   "column_subheading.settings": "設定",
-  "compose_form.direct_message_warning": "このトゥートはメンションされた人にのみ送信されます。ただし送受信したインスタンスの管理者が検査するかもしれません。",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
+  "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.lock_disclaimer.lock": "承認制",
   "compose_form.placeholder": "今なにしてる?",
   "compose_form.publish": "トゥート",
   "compose_form.publish_loud": "{publish}!",
@@ -191,7 +191,7 @@
   "notifications.column_settings.reblog": "ブースト:",
   "notifications.column_settings.show": "カラムに表示",
   "notifications.column_settings.sound": "通知音を再生",
-  "notifications.group": "{count} notifications",
+  "notifications.group": "{count} 件の通知",
   "onboarding.done": "完了",
   "onboarding.next": "次へ",
   "onboarding.page_five.public_timelines": "連合タイムラインでは{domain}の人がフォローしているMastodon全体での公開投稿を表示します。同じくローカルタイムラインでは{domain}のみの公開投稿を表示します。",
@@ -285,7 +285,7 @@
   "tabs_bar.notifications": "通知",
   "tabs_bar.search": "検索",
   "timeline.media": "Media",
-  "timeline.posts": "Toots",
+  "timeline.posts": "投稿",
   "ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。",
   "upload_area.title": "ドラッグ&ドロップでアップロード",
   "upload_button.label": "メディアを追加",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 1ead2011d..ee4d9de47 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -61,7 +61,7 @@
   "column_subheading.navigation": "Navigatie",
   "column_subheading.settings": "Instellingen",
   "compose_form.direct_message_warning": "Deze toot wordt alleen naar vermelde gebruikers verstuurd. Echter, de beheerders en moderatoren van jouw en de ontvangende Mastodonserver(s) kunnen dit bericht mogelijk wel bekijken.",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.direct_message_warning_learn_more": "Meer leren",
   "compose_form.hashtag_warning": "Deze toot valt niet onder een hashtag te bekijken, omdat deze niet op openbare tijdlijnen wordt getoond. Alleen openbare toots kunnen via hashtags gevonden worden.",
   "compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de toots zien die je alleen aan jouw volgers hebt gericht.",
   "compose_form.lock_disclaimer.lock": "besloten",
@@ -187,7 +187,7 @@
   "notifications.column_settings.reblog": "Boosts:",
   "notifications.column_settings.show": "In kolom tonen",
   "notifications.column_settings.sound": "Geluid afspelen",
-  "notifications.group": "{count} notifications",
+  "notifications.group": "{count} meldingen",
   "onboarding.done": "Klaar",
   "onboarding.next": "Volgende",
   "onboarding.page_five.public_timelines": "De lokale tijdlijn toont openbare toots van iedereen op {domain}. De globale tijdlijn toont openbare toots van iedereen die door gebruikers van {domain} worden gevolgd, dus ook mensen van andere Mastodonservers. Dit zijn de openbare tijdlijnen en vormen een uitstekende manier om nieuwe mensen te leren kennen.",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index e7bc148fa..3ad5b3d95 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -1,5 +1,5 @@
 {
-  "account.badges.bot": "Bot",
+  "account.badges.bot": "Robòt",
   "account.block": "Blocar @{name}",
   "account.block_domain": "Tot amagar del domeni {domain}",
   "account.blocked": "Blocat",
@@ -60,7 +60,7 @@
   "column_header.unpin": "Despenjar",
   "column_subheading.navigation": "Navigacion",
   "column_subheading.settings": "Paramètres",
-  "compose_form.direct_message_warning": "Aqueste tut serà pas que visibile pel monde mencionat.",
+  "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 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.",
@@ -281,7 +281,7 @@
   "tabs_bar.notifications": "Notificacions",
   "tabs_bar.search": "Recèrcas",
   "timeline.media": "Media",
-  "timeline.posts": "Toots",
+  "timeline.posts": "Tuts",
   "ui.beforeunload": "Vòstre brolhon serà perdut se quitatz Mastodon.",
   "upload_area.title": "Lisatz e depausatz per mandar",
   "upload_button.label": "Ajustar un mèdia",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index c69a90e62..c8441df29 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -60,8 +60,8 @@
   "column_header.unpin": "Desafixar",
   "column_subheading.navigation": "Navegação",
   "column_subheading.settings": "Configurações",
-  "compose_form.direct_message_warning": "Este toot só será enviado aos usuários mencionados. No entanto, a administração da sua instância e das instâncias dos usuários mencionados podem inspecionar essa mensagem.",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
+  "compose_form.direct_message_warning": "Este toot só será enviado aos usuários mencionados. A mensagem não é encriptada e será armazenada nos servidores dos usuários mencionados.",
+  "compose_form.direct_message_warning_learn_more": "Saber mais",
   "compose_form.hashtag_warning": "Esse toot não será listado em nenhuma hashtag por ser não listado. Somente toots públicos podem ser pesquisados por hashtag.",
   "compose_form.lock_disclaimer": "A sua conta não está {locked}. Qualquer pessoa pode te seguir e visualizar postagens direcionadas a apenas seguidores.",
   "compose_form.lock_disclaimer.lock": "trancada",
@@ -187,7 +187,7 @@
   "notifications.column_settings.reblog": "Compartilhamento:",
   "notifications.column_settings.show": "Mostrar nas colunas",
   "notifications.column_settings.sound": "Reproduzir som",
-  "notifications.group": "{count} notifications",
+  "notifications.group": "{count} notificações",
   "onboarding.done": "Pronto",
   "onboarding.next": "Próximo",
   "onboarding.page_five.public_timelines": "A timeline local mostra postagens públicas de todos os usuários no {domain}. A timeline federada mostra todas as postagens de todas as pessoas que pessoas no {domain} seguem. Estas são as timelines públicas, uma ótima maneira de conhecer novas pessoas.",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 6c396e525..d2af13bfb 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -60,7 +60,7 @@
   "column_header.unpin": "Ångra fäst",
   "column_subheading.navigation": "Navigation",
   "column_subheading.settings": "Inställningar",
-  "compose_form.direct_message_warning": "Denna toot kommer endast vara synlig för nämnda användare.",
+  "compose_form.direct_message_warning": "Denna toot kommer endast att skickas nämnda nämnda användare.",
   "compose_form.direct_message_warning_learn_more": "Learn more",
   "compose_form.hashtag_warning": "Denna toot kommer inte att listas under någon hashtag eftersom den är onoterad. Endast offentliga toots kan sökas med hashtag.",
   "compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vemsomhelst kan följa dig och även se dina inlägg skrivna för endast dina följare.",
@@ -287,12 +287,12 @@
   "upload_button.label": "Lägg till media",
   "upload_form.description": "Beskriv för synskadade",
   "upload_form.focus": "Beskär",
-  "upload_form.undo": "Ångra",
+  "upload_form.undo": "Ta bort",
   "upload_progress.label": "Laddar upp...",
   "video.close": "Stäng video",
   "video.exit_fullscreen": "Stäng helskärm",
   "video.expand": "Expandera video",
-  "video.fullscreen": "Helskärm",
+  "video.fullscreen": "Fullskärm",
   "video.hide": "Dölj video",
   "video.mute": "Stäng av ljud",
   "video.pause": "Pause",
diff --git a/app/javascript/mastodon/service_worker/web_push_notifications.js b/app/javascript/mastodon/service_worker/web_push_notifications.js
index f922f7dd0..3318bbadc 100644
--- a/app/javascript/mastodon/service_worker/web_push_notifications.js
+++ b/app/javascript/mastodon/service_worker/web_push_notifications.js
@@ -25,7 +25,7 @@ const notify = options =>
 
       return self.registration.showNotification(group.title, group);
     } else if (notifications.length === 1 && notifications[0].tag === GROUP_TAG) { // Already grouped, proceed with appending the notification to the group
-      const group = { ...notifications[0] };
+      const group = cloneNotification(notifications[0]);
 
       group.title = formatMessage('notifications.group', options.data.preferred_locale, { count: group.data.count + 1 });
       group.body  = `${options.title}\n${group.body}`;
@@ -57,6 +57,18 @@ const fetchFromApi = (path, method, accessToken) => {
   }).then(res => res.json());
 };
 
+const cloneNotification = notification => {
+  const clone = {};
+  let k;
+
+  // Object.assign() does not work with notifications
+  for(k in notification) {
+    clone[k] = notification[k];
+  }
+
+  return clone;
+};
+
 const formatMessage = (messageId, locale, values = {}) =>
   (new IntlMessageFormat(locales[locale][messageId], locale)).format(values);
 
@@ -95,7 +107,7 @@ const handlePush = (event) => {
         options.body    = notification.status.spoiler_text;
         options.image   = undefined;
         options.actions = [actionExpand(preferred_locale)];
-      } else if (notification.status) {
+      } else if (notification.type === 'mention') {
         options.actions = [actionReblog(preferred_locale), actionFavourite(preferred_locale)];
       }
 
@@ -130,7 +142,7 @@ const findBestClient = clients => {
 };
 
 const expandNotification = notification => {
-  const newNotification = { ...notification };
+  const newNotification = cloneNotification(notification);
 
   newNotification.body    = newNotification.data.hiddenBody;
   newNotification.image   = newNotification.data.hiddenImage;
@@ -140,7 +152,7 @@ const expandNotification = notification => {
 };
 
 const removeActionFromNotification = (notification, action) => {
-  const newNotification = { ...notification };
+  const newNotification = cloneNotification(notification);
 
   newNotification.actions = newNotification.actions.filter(item => item.action !== action);
 
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 42c790bac..2b88b830c 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -25,6 +25,55 @@
   background: $ui-base-color url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 234.80078 31.757813" width="234.80078" height="31.757812"><path d="M19.599609 0c-1.05 0-2.10039.375-2.90039 1.125L0 16.925781v14.832031h234.80078V17.025391l-16.5-15.900391c-1.6-1.5-4.20078-1.5-5.80078 0l-13.80078 13.099609c-1.6 1.5-4.19883 1.5-5.79883 0L179.09961 1.125c-1.6-1.5-4.19883-1.5-5.79883 0L159.5 14.224609c-1.6 1.5-4.20078 1.5-5.80078 0L139.90039 1.125c-1.6-1.5-4.20078-1.5-5.80078 0l-13.79883 13.099609c-1.6 1.5-4.20078 1.5-5.80078 0L100.69922 1.125c-1.600001-1.5-4.198829-1.5-5.798829 0l-13.59961 13.099609c-1.6 1.5-4.200781 1.5-5.800781 0L61.699219 1.125c-1.6-1.5-4.198828-1.5-5.798828 0L42.099609 14.224609c-1.6 1.5-4.198828 1.5-5.798828 0L22.5 1.125C21.7.375 20.649609 0 19.599609 0z" fill="#{hex-color($white)}"/></svg>') no-repeat bottom / 100% auto;
 }
 
+.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button {
+  color: $ui-base-color;
+
+  &:active,
+  &:focus,
+  &:hover {
+    color: darken($ui-base-color, 7%);
+  }
+}
+
+.compose-form .compose-form__modifiers .compose-form__upload-description input {
+  color: $ui-base-color;
+
+  &::placeholder {
+    color: $ui-base-color;
+  }
+}
+
+.compose-form .compose-form__buttons-wrapper {
+  background: darken($ui-base-color, 6%);
+}
+
+.focusable:focus {
+  background: $ui-base-color;
+}
+
+.status.status-direct {
+  background: lighten($ui-base-color, 4%);
+}
+
+.focusable:focus .status.status-direct {
+  background: lighten($ui-base-color, 8%);
+}
+
+.detailed-status,
+.detailed-status__action-bar {
+  background: darken($ui-base-color, 6%);
+}
+
+// Change the background color of status__content__spoiler-link
+.reply-indicator__content .status__content__spoiler-link,
+.status__content .status__content__spoiler-link {
+  background: $ui-base-lighter-color;
+
+  &:hover {
+    background: lighten($ui-base-lighter-color, 6%);
+  }
+}
+
 // Change the colors used in the dropdown menu
 .dropdown-menu {
   background: $ui-base-color;
@@ -84,17 +133,17 @@
 .confirmation-modal,
 .mute-modal,
 .report-modal {
-  background: $ui-secondary-color;
+  background: $ui-base-color;
 }
 
 .boost-modal__action-bar,
 .confirmation-modal__action-bar,
 .mute-modal__action-bar {
-  background: darken($ui-secondary-color, 6%);
+  background: darken($ui-base-color, 6%);
 }
 
 .react-toggle-track {
-  background: $ui-base-color;
+  background: $ui-secondary-color;
 }
 
 // Change the default color used for the text in an empty column or on the error column
diff --git a/app/javascript/styles/mastodon-light/variables.scss b/app/javascript/styles/mastodon-light/variables.scss
index 4be454e66..9f6d470b1 100644
--- a/app/javascript/styles/mastodon-light/variables.scss
+++ b/app/javascript/styles/mastodon-light/variables.scss
@@ -8,7 +8,10 @@ $classic-secondary-color: #d9e1e8;
 $classic-highlight-color: #2b90d9;
 
 // Differences
-$base-overlay-background: $white;
+$success-green: #3c754d;
+
+$base-overlay-background: $white !default;
+$valid-value-color: $success-green !default;
 
 $ui-base-color: $classic-secondary-color !default;
 $ui-base-lighter-color: #b0c0cf;
@@ -26,7 +29,7 @@ $lighter-text-color: $classic-base-color !default;
 $light-text-color: #444b5d;
 
 //Newly added colors
-$account-background-color: $white;
+$account-background-color: $white !default;
 
 //Invert darkened and lightened colors
 @function darken($color, $amount) {
diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss
index de0a7ea42..3ccce383b 100644
--- a/app/javascript/styles/mastodon/accounts.scss
+++ b/app/javascript/styles/mastodon/accounts.scss
@@ -79,6 +79,10 @@
       font-weight: 400;
       overflow: hidden;
       text-overflow: ellipsis;
+
+      .fa {
+        margin-left: 3px;
+      }
     }
   }
 
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index f067898bc..abffa6daa 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -425,7 +425,7 @@
 
         .icon-button {
           flex: 0 1 auto;
-          color: $action-button-color;
+          color: $secondary-text-color;
           font-size: 14px;
           font-weight: 500;
           padding: 10px;
@@ -434,7 +434,7 @@
           &:hover,
           &:focus,
           &:active {
-            color: lighten($action-button-color, 7%);
+            color: lighten($secondary-text-color, 7%);
           }
         }
 
@@ -1373,9 +1373,8 @@ a.account__display-name {
 }
 
 .notification__message {
-  margin-left: 68px;
-  padding: 8px 0;
-  padding-bottom: 0;
+  margin: 0 10px 0 68px;
+  padding: 8px 0 0;
   cursor: default;
   color: $darker-text-color;
   font-size: 15px;
diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss
index cbefe35b4..40aeb4afc 100644
--- a/app/javascript/styles/mastodon/variables.scss
+++ b/app/javascript/styles/mastodon/variables.scss
@@ -1,10 +1,10 @@
 // Commonly used web colors
 $black: #000000;            // Black
 $white: #ffffff;            // White
-$success-green: #79bd9a;    // Padua
-$error-red: #df405a;        // Cerise
-$warning-red: #ff5050;      // Sunset Orange
-$gold-star: #ca8f04;        // Dark Goldenrod
+$success-green: #79bd9a !default;    // Padua
+$error-red: #df405a !default;        // Cerise
+$warning-red: #ff5050 !default;      // Sunset Orange
+$gold-star: #ca8f04 !default;        // Dark Goldenrod
 
 // Values from the classic Mastodon UI
 $classic-base-color: #282c37;         // Midnight Express
diff --git a/app/models/user.rb b/app/models/user.rb
index 9bdf8807f..ef48282fd 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -65,6 +65,7 @@ class User < ApplicationRecord
 
   validates :locale, inclusion: I18n.available_locales.map(&:to_s), if: :locale?
   validates_with BlacklistedEmailValidator, if: :email_changed?
+  validates_with EmailMxValidator, if: :email_changed?
 
   scope :recent, -> { order(id: :desc) }
   scope :admins, -> { where(admin: true) }
diff --git a/app/validators/email_mx_validator.rb b/app/validators/email_mx_validator.rb
new file mode 100644
index 000000000..d4c7cc252
--- /dev/null
+++ b/app/validators/email_mx_validator.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'resolv'
+
+class EmailMxValidator < ActiveModel::Validator
+  def validate(user)
+    return if Rails.env.test?
+    user.errors.add(:email, I18n.t('users.invalid_email')) if invalid_mx?(user.email)
+  end
+
+  private
+
+  def invalid_mx?(value)
+    _, domain = value.split('@', 2)
+
+    return true if domain.nil?
+
+    records = Resolv::DNS.new.getresources(domain, Resolv::DNS::Resource::IN::MX).to_a.map { |e| e.exchange.to_s }
+    records.empty? || on_blacklist?(records)
+  end
+
+  def on_blacklist?(values)
+    EmailDomainBlock.where(domain: values).any?
+  end
+end
diff --git a/config/initializers/active_model_serializers.rb b/config/initializers/active_model_serializers.rb
index b0230267d..0e69e1d96 100644
--- a/config/initializers/active_model_serializers.rb
+++ b/config/initializers/active_model_serializers.rb
@@ -1,3 +1,5 @@
 ActiveModelSerializers.config.tap do |config|
   config.default_includes = '**'
 end
+
+ActiveSupport::Notifications.unsubscribe(ActiveModelSerializers::Logging::RENDER_EVENT)
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index f187bd6ac..e2d057b96 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -40,6 +40,7 @@ ar:
     following: يتابعون
     media: الوسائط
     moved_html: "%{name} إنتقلَ إلى %{new_profile_link} :"
+    network_hidden: إنّ المعطيات غير متوفرة
     nothing_here: لا يوجد أي شيء هنا !
     people_followed_by: الأشخاص الذين يتبعهم %{name}
     people_who_follow: الأشخاص الذين يتبعون %{name}
@@ -49,6 +50,7 @@ ar:
     reserved_username: إسم المستخدم محجوز
     roles:
       admin: المدير
+      bot: روبوت
       moderator: مُشرِف
     unfollow: إلغاء المتابعة
   admin:
@@ -283,7 +285,7 @@ ar:
         create_and_resolve: الحل مع ملاحظة
         create_and_unresolve: إعادة فتح مع ملاحظة
         delete: حذف
-        placeholder: وصف الإجراءات التي تم اتخاذها أو أي تحديثات أخرى لهذا التقرير …
+        placeholder: قم بوصف الإجراءات التي تم اتخاذها أو أي تحديثات أخرى ذات علاقة …
       reopen: إعادة فتح التقرير
       report: 'التقرير #%{id}'
       report_contents: المحتويات
@@ -414,7 +416,7 @@ ar:
     register_elsewhere: التسجيل على خادوم آخَر
     resend_confirmation: إعادة إرسال تعليمات التأكيد
     reset_password: إعادة تعيين كلمة المرور
-    security: الهوية
+    security: الأمان
     set_new_password: إدخال كلمة مرور جديدة
   authorize_follow:
     already_following: أنت تتابع بالفعل هذا الحساب
@@ -637,7 +639,7 @@ ar:
     notifications: الإخطارات
     preferences: التفضيلات
     settings: الإعدادات
-    two_factor_authentication: إثبات الهويّة المزدوج
+    two_factor_authentication: المُصادقة بخُطوَتَيْن
     your_apps: تطبيقاتك
   statuses:
     attached:
@@ -678,11 +680,11 @@ ar:
       default: "%b %d, %Y, %H:%M"
   two_factor_authentication:
     code_hint: قم بإدخال الرمز المُوَلّد عبر تطبيق المصادقة للتأكيد
-    description_html: في حال تفعيل <strong>المصادقة بخطوتين </strong>، فتسجيل الدخول يتتطلب منك أن يكون بحوزتك هاتفك النقال قصد توليد الرمز الذي سيتم إدخاله.
+    description_html: في حال تفعيل <strong>المصادقة بخطوتين </strong>، فتسجيل الدخول يتطلب منك أن يكون بحوزتك هاتفك النقال قصد توليد الرمز الذي سيتم إدخاله.
     disable: تعطيل
     enable: تفعيل
     enabled: نظام المصادقة بخطوتين مُفعَّل
-    enabled_success: تم تفعيل إثبات الهوية المزدوج بنجاح
+    enabled_success: تم تفعيل المصادقة بخطوتين بنجاح
     generate_recovery_codes: توليد رموز الإسترجاع
     instructions_html: "<strong>قم بمسح رمز الكيو آر عبر Google Authenticator أو أي تطبيق TOTP على جهازك</strong>. من الآن فصاعدا سوف يقوم ذاك التطبيق بتوليد رموز يجب عليك إدخالها عند تسجيل الدخول."
     manual_instructions: 'في حالة تعذّر مسح رمز الكيو آر أو طُلب منك إدخال يدوي، يُمْكِنك إدخال هذا النص السري على التطبيق :'
@@ -705,6 +707,6 @@ ar:
       title: أهلاً بك، %{name} !
   users:
     invalid_email: عنوان البريد الإلكتروني غير صالح
-    invalid_otp_token: الرمز الثنائي غير صالح
+    invalid_otp_token: رمز المصادقة بخطوتين غير صالح
     seamless_external_login: لقد قمت بتسجيل الدخول عبر خدمة خارجية، إنّ إعدادات الكلمة السرية و البريد الإلكتروني غير متوفرة.
     signed_in_as: 'تم تسجيل دخولك بصفة :'
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 636def5eb..b05398d22 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -283,7 +283,7 @@ ca:
         create_and_resolve: Resoldre amb nota
         create_and_unresolve: Reobrir amb nota
         delete: Esborrar
-        placeholder: Descriu les accions que s'han pres o qualsevol altra actualització d'aquest informe…
+        placeholder: Descriu les accions que s'han pres o qualsevol altra actualització relacionada…
       reopen: Reobrir informe
       report: 'Informe #%{id}'
       report_contents: Contingut
@@ -619,7 +619,7 @@ ca:
       micro_messenger: MicroMessenger
       nokia: Nokia S40 Ovi Browser
       opera: Opera
-      otter: Altre
+      otter: Otter
       phantom_js: PhantomJS
       qq: QQ Browser
       safari: Safari
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 8f9c12a2e..3440439cd 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -40,6 +40,7 @@ de:
     following: Folgt
     media: Medien
     moved_html: "%{name} ist auf %{new_profile_link} umgezogen:"
+    network_hidden: Diese Informationen sind nicht verfügbar
     nothing_here: Hier gibt es nichts!
     people_followed_by: Profile, denen %{name} folgt
     people_who_follow: Profile, die %{name} folgen
diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml
index 5586b8dc8..3b4202903 100644
--- a/config/locales/doorkeeper.ar.yml
+++ b/config/locales/doorkeeper.ar.yml
@@ -114,5 +114,6 @@ ar:
         title: طلب تصريح مفتوح OAuth
     scopes:
       follow: متابعة و حجب و فك الحجب و إلغاء متابعة حسابات المستخدمين
+      push: تلقى إشعارات حسابك
       read: قراءة بيانات حسابك
       write: النشر نيابةً عنك
diff --git a/config/locales/doorkeeper.eo.yml b/config/locales/doorkeeper.eo.yml
index 59df52852..9713c462c 100644
--- a/config/locales/doorkeeper.eo.yml
+++ b/config/locales/doorkeeper.eo.yml
@@ -115,5 +115,6 @@ eo:
         title: OAuth-a rajtigo bezonata
     scopes:
       follow: sekvi, bloki, malbloki kaj malsekvi kontojn
+      push: ricevi puŝ-sciigojn por via konto
       read: legi la datumojn de via konto
       write: mesaĝi kiel vi
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 823a6f576..77b794dc8 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -18,8 +18,8 @@ el:
     features:
       humane_approach_body: Μαθαίνοντας από τις αποτυχίες άλλων δικτύων, το Mastodon στοχεύει να κάνει σχεδιαστικά ηθικές επιλογές για να καταπολεμήσει την κακόβουλη χρήση των κοινωνικών δικτύων.
       humane_approach_title: Μια πιο ανθρώπινη προσέγγιση
-      not_a_product_body: Το Mastodon δεν είναι εμπορικό δίκτυο. Χωρίς διαφημίσεις, χωρίς εξόρυξη δεδομένων, χωρίς φραγμένες περιοχές. Δεν έχει κεντρική αρχή.
-      not_a_product_title: Είσαι άτομο, όχι προϊόν
+      not_a_product_body: Το Mastodon δεν είναι εμπορικό δίκτυο. Δεν έχει διαφημίσεις, δεν έχει εξόρυξη δεδομένων, δεν έχει φραγμένες περιοχές. Δεν υπάρχει κεντρικό σημείο ελέγχου.
+      not_a_product_title: Είσαι άνθρωπος, όχι προϊόν
       real_conversation_body: Με 500 χαρακτήρες στη διάθεσή σου και υποστήριξη για λεπτομερή έλεγχο και προειδοποιήσεις πολυμέσων, μπορείς να εκφραστείς με τον τρόπο που θέλεις.
       real_conversation_title: Φτιαγμένο για αληθινή συζήτηση
       within_reach_body: Οι πολλαπλές εφαρμογές για το iOS, το Android και τις υπόλοιπες πλατφόρμες, χάρη σε ένα φιλικό προς τους προγραμματιστές οικοσύστημα API, σου επιτρέπουν να κρατάς επαφή με τους φίλους και τις φίλες σου οπουδήποτε.
@@ -40,6 +40,7 @@ el:
     following: Ακολουθεί
     media: Πολυμέσα
     moved_html: 'Ο/Η %{name} μετακόμισε στο %{new_profile_link}:'
+    network_hidden: Αυτή η πληροφορία δεν είναι διαθέσιμη
     nothing_here: Δεν υπάρχει τίποτα εδώ!
     people_followed_by: Χρήστες που ακολουθεί ο/η %{name}
     people_who_follow: Χρήστες που ακολουθούν τον/την %{name}
@@ -54,7 +55,7 @@ el:
     unfollow: Διακοπή παρακολούθησης
   admin:
     account_moderation_notes:
-      create: Δημιουργία
+      create: Άφησε σημείωση
       created_msg: Επιτυχής δημιουργία σημειώματος μεσολάβησης!
       delete: Διαγραφή
       destroyed_msg: Επιτυχής καταστροφή σημειώματος μεσολάβησης!
@@ -129,7 +130,7 @@ el:
       role: Δικαιώματα
       roles:
         admin: Διαχειριστής
-        moderator: Μεσολαβητής
+        moderator: Συντονιστής
         staff: Προσωπικό
         user: Χρήστης
       salmon_url: URL Salmon
@@ -137,7 +138,7 @@ el:
       shared_inbox_url: URL κοινόχρηστων εισερχομένων
       show:
         created_reports: Αναφορές από αυτόν το λογαριασμό
-        report: ανάφερε
+        report: κατάγγειλε
         targeted_reports: Αναφορές για αυτόν το λογαριασμό
       silence: Αποσιώπησε
       statuses: Καταστάσεις
@@ -151,7 +152,7 @@ el:
       web: Διαδίκτυο
     action_logs:
       actions:
-        assigned_to_self_report: Ο/Η %{name} ανάθεσε την αναφορά %{target} στον εαυτό του/της
+        assigned_to_self_report: Ο/Η %{name} ανάθεσε την καταγγελία %{target} στον εαυτό του/της
         change_email_user: Ο/Η %{name} άλλαξε τη διεύθυνση email του χρήστη %{target}
         confirm_user: Ο/Η %{name} επιβεβαίωσε τη διεύθυνση email του χρήστη %{target}
         create_custom_emoji: Ο/Η %{name} ανέβασε νέο emoji %{target}
@@ -169,12 +170,12 @@ el:
         memorialize_account: Ο/Η %{name} μετέτρεψε το λογαριασμό του/της %{target} σε σελίδα νεκρολογίας
         promote_user: Ο/Η %{name} προβίβασε το χρήστη %{target}
         remove_avatar_user: Ο/Η %{name} αφαίρεσε το αβατάρ του/της %{target}
-        reopen_report: Ο/Η %{name} ξανάνοιξε την αναφορά %{target}
+        reopen_report: Ο/Η %{name} ξανάνοιξε την καταγγελία %{target}
         reset_password_user: Ο/Η %{name} επανέφερε το συνθηματικό του χρήστη %{target}
-        resolve_report: Ο/Η %{name} επέλυσε την αναφορά %{target}
+        resolve_report: Ο/Η %{name} επέλυσε την καταγγελία %{target}
         silence_account: Ο/Η %{name} αποσιώπησε το λογαριασμό του/της %{target}
         suspend_account: Ο/Η %{name} έπαυσε το λογαριασμό του/της %{target}
-        unassigned_report: Ο/Η %{name} αποδέσμευσε την αναφορά %{target}
+        unassigned_report: Ο/Η %{name} αποδέσμευσε την καταγγελία %{target}
         unsilence_account: Ο/Η %{name} ήρε την αποσιώπηση του λογαριασμού του/της %{target}
         unsuspend_account: Ο/Η %{name} ήρε την παύση του λογαριασμού του χρήστη %{target}
         update_custom_emoji: Ο/Η %{name} ενημέρωσε το emoji %{target}
@@ -216,6 +217,83 @@ el:
         severity:
           noop: Κανένα
           silence: Σίγαση
+          suspend: Αναστολή
+        title: Αποκλεισμός νέου τομέα
+      reject_media: Απόρριψη πολυμέσων
+      severities:
+        noop: Κανένα
+        silence: Αποσιώπηση
+        suspend: Αναστολή
+      severity: Αυστηρότητα
+      show:
+        affected_accounts:
+          one: Επηρεάζεται ένας λογαριασμός στη βάση δεδομένων
+          other: Επηρεάζονται %{count} λογαριασμοί στη βάση δεδομένων
+        retroactive:
+          silence: Αναίρεση αποσιώπησης όλων των λογαριασμός του τομέα
+          suspend: Αναίρεση αναστολής όλων των λογαριασμών του τομέα
+        title: Αναίρεση αποκλεισμού για τον τομέα %{domain}
+        undo: Αναίρεση
+      title: Αποκλεισμένοι τομείς
+      undo: Αναίρεση
+    email_domain_blocks:
+      add_new: Πρόσθεση νέου
+      created_msg: Επιτυχής πρόσθεση email τομέα σε μαύρη λίστα
+      delete: Διαγραφή
+      destroyed_msg: Επιτυχής διαγραφή email τομέα από τη μαύρη λίστα
+      domain: Τομέας
+      new:
+        create: Πρόσθεση τομέα
+        title: Νέα εγγραφή email στη μαύρη λίστα
+      title: Μαύρη λίστα email
+    instances:
+      account_count: Γνωστοί λογαριασμοί
+      domain_name: Τομέας
+      reset: Επαναφορά
+      search: Αναζήτηση
+      title: Γνωστοί κόμβοι
+    invites:
+      filter:
+        all: Όλες
+        available: Διαθέσιμες
+        expired: Ληγμένες
+        title: Φίλτρο
+      title: Προσκλήσεις
+    report_notes:
+      created_msg: Επιτυχής δημιουργία σημείωσης καταγγελίας!
+      destroyed_msg: Επιτυχής διαγραφή σημείωσης καταγγελίας!
+    reports:
+      account:
+        note: σημείωση
+        report: καταγγελία
+      action_taken_by: Ενέργεια από τον/την
+      are_you_sure: Σίγουρα;
+      assign_to_self: Ανάθεση σε μένα
+      assigned: Αρμόδιος συντονιστής
+      comment:
+        none: Κανένα
+      created_at: Αναφέρθηκε
+      id: ID
+      mark_as_resolved: Σημειωμένο ως επιλυμένο
+      mark_as_unresolved: Σημειωμένο ως ανεπίλυτο
+      notes:
+        create: Πρόσθεσε σημείωση
+        create_and_resolve: Επίλυσε με σημείωση
+        create_and_unresolve: Ξανάνοιξε με σημείωση
+        delete: Διέγραψε
+        placeholder: Περιέγραψε τις ενέργειες που έγιναν, ή οποιαδήποτε άλλη ενημέρωση...
+      reopen: Ξανάνοιξε την καταγγελία
+      report: 'Καταγγελία #%{id}'
+      report_contents: Περιεχόμενα
+      reported_account: Αναφερόμενος λογαριασμός
+      reported_by: Αναφέρθηκε από
+      resolved: Επιλύθηκε
+      resolved_msg: Η καταγγελία επιλύθηκε επιτυχώς!
+      silence_account: Αποσιώπηση λογαριασμού
+      status: Κατάσταση
+      suspend_account: Ανέστειλε λογαριασμό
+      target: Στόχος
+      title: Αναφορές
     settings:
       hero:
         desc_html: Εμφανίζεται στην μπροστινή σελίδα. Συνίσταται τουλάχιστον 600x100px. Όταν λείπει, χρησιμοποιείται η μικρογραφία του κόμβου
@@ -235,7 +313,7 @@ el:
         title: Προεπισκόπιση ροής
   admin_mailer:
     new_report:
-      subject: Νέα αναφορά για %{instance} (#%{id})
+      subject: Νέα καταγγελία για %{instance} (#%{id})
   auth:
     agreement_html: Με την εγγραφή σου, συμφωνείς να ακολουθείς <a href="%{rules_path}">τους κανόνες αυτού του κόμβου</a> και <a href="%{terms_path}">τους όρους χρήσης του</a>.
   deletes:
@@ -250,5 +328,6 @@ el:
     welcome:
       final_step: 'Ξεκίνα τις δημοσιεύσεις! Ακόμα και χωρίς ακόλουθους τα δημόσια μηνύματά σου μπορεί να τα δουν άλλοι, για παράδειγμα στην τοπική ροή και στις ετικέτες. Ίσως να θέλεις να κάνεις μια εισαγωγή του εαυτού σου με την ετικέτα #introductions.'
       full_handle_hint: Αυτό θα εδώ θα πεις στους φίλους σου για να σου μιλήσουν ή να σε ακολουθήσουν από άλλο κόμβο.
-      tip_federated_timeline: Η συνδυασμένη ροή είναι μια όψη πραγματικού χρόνου στο δίκτυο του Mastodon. Παρόλα αυτά, περιλαμβάνει μόνο όσους ακολουθούν οι γείτονές σου, άρα δεν είναι πλήρης.
+      tip_federated_timeline: Η ομοσπονδιακή ροή είναι μια όψη πραγματικού χρόνου στο δίκτυο του Mastodon. Παρόλα αυτά, περιλαμβάνει μόνο όσους ακολουθούν οι γείτονές σου, άρα δεν είναι πλήρης.
+      tip_following: Ακολουθείς το διαχειριστή του διακομιστή σου αυτόματα. Για να βρεις περισσότερους ενδιαφέροντες ανθρώπους, έλεγξε την τοπική και την ομοσπονδιακή ροή.
       tip_local_timeline: Η τοπική ροή είναι η όψη πραγματικού χρόνου των ανθρώπων στον κόμβο %{instance}. Αυτοί είναι οι άμεσοι γείτονές σου!
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 892070914..f1a9ff79d 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -40,6 +40,7 @@ eo:
     following: Sekvatoj
     media: Aŭdovidaĵoj
     moved_html: "%{name} moviĝis al %{new_profile_link}:"
+    network_hidden: Tiu informo ne estas disponebla
     nothing_here: Estas nenio ĉi tie!
     people_followed_by: Sekvatoj de %{name}
     people_who_follow: Sekvantoj de %{name}
@@ -670,6 +671,7 @@ eo:
       video:
         one: "%{count} video"
         other: "%{count} videoj"
+    boosted_from_html: Diskonigita de %{acct_link}
     content_warning: 'Enhava averto: %{warning}'
     disallowed_hashtags:
       one: 'enhavas malpermesitan kradvorton: %{tags}'
@@ -700,6 +702,7 @@ eo:
   themes:
     contrast: Forta kontrasto
     default: Mastodon
+    mastodon-light: Mastodon (hela)
   time:
     formats:
       default: "%Y-%m-%d %H:%M"
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index 0967ef424..fc8916ab9 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -1 +1,11 @@
-{}
+---
+eu:
+  about:
+    about_this: Honi buruz
+    administered_by: 'Administratzailea(k):'
+    contact: Kontaktua
+    contact_missing: Ezarri gabe
+    contact_unavailable: E/E
+    description_headline: Zer da %{domain}?
+    domain_count_after: beste instantziak
+    domain_count_before: 'Hona konektatuta:'
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index b73f2401d..e32009289 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -40,6 +40,7 @@ fa:
     following: پی می‌گیرد
     media: عکس و ویدیو
     moved_html: "%{name} حساب خود را به %{new_profile_link} منتقل کرده است:"
+    network_hidden: این اطلاعات در دسترس نیست
     nothing_here: این‌جا چیزی نیست!
     people_followed_by: کسانی که %{name} پی می‌گیرد
     people_who_follow: کسانی که %{name} را پی می‌گیرند
@@ -49,6 +50,7 @@ fa:
     reserved_username: این نام کاربری در دسترس نیست
     roles:
       admin: مدیر
+      bot: ربات
       moderator: ناظم
     unfollow: پایان پیگیری
   admin:
@@ -281,7 +283,7 @@ fa:
         create_and_resolve: حل کردن با یادداشت
         create_and_unresolve: دوباره گشودن با یادداشت
         delete: حذف
-        placeholder: کارهایی را که در این باره انجام شده، یا هر به‌روزرسانی دیگری را بنویسید…
+        placeholder: کارهایی را که در این باره انجام شده، یا هر به‌روزرسانی دیگری را بنویسید...
       reopen: دوباره به جریان بیندازید
       report: 'گزارش #%{id}'
       report_contents: محتوا
@@ -359,9 +361,9 @@ fa:
       failed_to_execute: اجرا نشد
       media:
         title: رسانه
-      no_media: بدون رسانه
+      no_media: بدون عکس یا ویدیو
       title: نوشته‌های حساب
-      with_media: دارای رسانه
+      with_media: دارای عکس یا ویدیو
     subscriptions:
       callback_url: نشانی Callback
       confirmed: تأییدشده
@@ -463,7 +465,7 @@ fa:
     archive_takeout:
       date: تاریخ
       download: بایگانی خود را باربگیرید
-      hint_html: شما می‌توانید بایگانی <strong>بوق‌ها و پرونده‌های بارگذاری‌شدهٔ</strong> خود را درخواست کنید. داده‌های برون‌بری‌شده در قالب ActivityPub خواهند بود و همهٔ نرم‌افزارهای سازگار خواهند توانست آن را بخوانند. شما هر ۷ روز می‌توانید یک بار برای چنین بایگانی‌ای درخواست دهید.
+      hint_html: شما می‌توانید بایگانی <strong>نوشته‌ها و پرونده‌های بارگذاری‌شدهٔ</strong> خود را درخواست کنید. داده‌های برون‌بری‌شده در قالب ActivityPub خواهند بود و همهٔ نرم‌افزارهای سازگار خواهند توانست آن را بخوانند. شما هر ۷ روز می‌توانید یک بار برای چنین بایگانی‌ای درخواست دهید.
       in_progress: در حال ساختن بایگانی شما...
       request: درخواست بایگانی داده‌هایتان
       size: اندازه
@@ -548,7 +550,7 @@ fa:
       subject:
         one: "یک اعلان تازه از زمان آخرین بازدید شما \U0001F418"
         other: "%{count} اعلان تازه از زمان آخرین بازدید شما \U0001F418"
-      title: در مدتی که نبودید…
+      title: در مدتی که نبودید...
     favourite:
       body: "%{name} این نوشتهٔ شما را پسندید:"
       subject: "%{name} نوشتهٔ شما را پسندید"
@@ -589,9 +591,9 @@ fa:
     prev: قبلی
     truncate: "&hellip;"
   preferences:
-    languages: زبان‌ها
-    other: سایر
-    publishing: انتشار
+    languages: تنظیمات زبان
+    other: سایر تنظیمات
+    publishing: تنظیمات انتشار مطالب
     web: وب
   remote_follow:
     acct: نشانی حساب username@domain خود را این‌جا بنویسید
@@ -667,6 +669,7 @@ fa:
       video:
         one: "%{count} ویدیو"
         other: "%{count} ویدیو"
+    boosted_from_html: بازبوقیده از طرف %{acct_link}
     content_warning: 'هشدا محتوا: %{warning}'
     disallowed_hashtags:
       one: 'دارای هشتگ غیرمجاز: %{tags}'
@@ -682,7 +685,7 @@ fa:
     title: '%{name}: "%{quote}"'
     visibilities:
       private: خصوصی
-      private_long: نمایش تنها به پیگیران
+      private_long: تنها پیگیران شما می‌بینند
       public: عمومی
       public_long: همه می‌توانند ببینند
       unlisted: فهرست‌نشده
@@ -697,6 +700,7 @@ fa:
   themes:
     contrast: کنتراست بالا
     default: ماستدون
+    mastodon-light: ماستدون (روشن)
   time:
     formats:
       default: "%d %b %Y, %H:%M"
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index cd323b602..b3914ea2b 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -72,7 +72,7 @@ fr:
         title: Modifier le courriel pour %{username}
       confirm: Confirmer
       confirmed: Confirmé
-      confirming: Confirmant
+      confirming: Confirmation
       demote: Rétrograder
       disable: Désactiver
       disable_two_factor_authentication: Désactiver l’authentification à deux facteurs
@@ -283,7 +283,7 @@ fr:
         create_and_resolve: Résoudre avec une note
         create_and_unresolve: Ré-ouvrir avec une note
         delete: Effacer
-        placeholder: Décrivez quelles actions ont été prises, ou toute autre mise à jour de ce signalement…
+        placeholder: Décrivez quelles actions ont été prises, ou toute autre mise à jour…
       reopen: Ré-ouvrir le signalement
       report: 'Signalement #%{id}'
       report_contents: Contenu
@@ -550,7 +550,7 @@ fr:
       subject:
         one: "Une nouvelle notification depuis votre dernière visite \U0001F418"
         other: "%{count} nouvelles notifications depuis votre dernière visite \U0001F418"
-      title: Pendant votre absence…
+      title: Pendant votre absence...
     favourite:
       body: "%{name} a ajouté votre post à ses favoris :"
       subject: "%{name} a ajouté votre post à ses favoris"
@@ -619,7 +619,7 @@ fr:
       micro_messenger: MicroMessenger
       nokia: Nokia S40 Ovi Browser
       opera: Opera
-      otter: Loutre
+      otter: Otter
       phantom_js: PhantomJS
       qq: QQ Browser
       safari: Safari
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 6b11383c0..82636618a 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -283,7 +283,7 @@ gl:
         create_and_resolve: Resolver con nota
         create_and_unresolve: Voltar a abrir con nota
         delete: Eliminar
-        placeholder: Describir qué decisións foron tomadas, ou calquer actualización a este informe…
+        placeholder: Describe qué medidas foron tomadas, ou calquer outra información relacionada...
       reopen: Voltar a abrir o informe
       report: 'Informe #%{id}'
       report_contents: Contidos
@@ -550,7 +550,7 @@ gl:
       subject:
         one: "1 nova notificación desde a súa última visita \U0001F418"
         other: "%{count} novas notificacións desde a súa última visita \U0001F418"
-      title: Na súa ausencia…
+      title: Na súa ausencia...
     favourite:
       body: 'O seu estado foi marcado favorito por %{name}:'
       subject: "%{name} marcou favorito o seu estado"
@@ -776,6 +776,7 @@ gl:
     title: "%{instance} Termos do Servizo e Política de Intimidade"
   themes:
     default: Mastodon
+    mastodon-light: Mastodon (claro)
   time:
     formats:
       default: "%d %b, %Y, %H:%M"
diff --git a/config/locales/it.yml b/config/locales/it.yml
index db754b2b2..5608c0574 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -37,9 +37,10 @@ it:
   accounts:
     follow: Segui
     followers: Seguaci
-    following: Seguiti
+    following: Segui
     media: Media
     moved_html: "%{name} è stato spostato su %{new_profile_link}:"
+    network_hidden: Questa informazione non e' disponibile
     nothing_here: Qui non c'è nulla!
     people_followed_by: Persone seguite da %{name}
     people_who_follow: Persone che seguono %{name}
@@ -50,7 +51,7 @@ it:
     roles:
       admin: Amministratore
       bot: Bot
-      moderator: Mod
+      moderator: Moderatore
     unfollow: Non seguire più
   admin:
     account_moderation_notes:
@@ -86,7 +87,7 @@ it:
       feed_url: URL Feed
       followers: Follower
       followers_url: URL follower
-      follows: Follows
+      follows: Segue
       inbox_url: URL inbox
       ip: IP
       location:
@@ -116,6 +117,7 @@ it:
       promote: Promuovi
       protocol: Protocollo
       public: Pubblico
+      push_subscription_expires: Sottoscrizione PuSH scaduta
       redownload: Aggiorna avatar
       remove_avatar: Rimuovi avatar
       resend_confirmation:
@@ -129,11 +131,14 @@ it:
       roles:
         admin: Amministratore
         moderator: Moderatore
-        staff: Staff
+        staff: Personale
         user: Utente
+      salmon_url: URL Salmone
       search: Cerca
+      shared_inbox_url: URL Inbox Condiviso
       show:
         created_reports: Rapporti creati da questo account
+        report: segnala
         targeted_reports: Rapporti che riguardano questo account
       silence: Silenzia
       statuses: Stati
@@ -338,7 +343,7 @@ it:
     created: Applicazione creata con successo
     destroyed: Applicazione eliminata con successo
     invalid_url: L'URL fornito non è valido
-    regenerate_token: Rigenera token di accesso
+    regenerate_token: Rigenera il token di accesso
     token_regenerated: Token di accesso rigenerato
     warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro!
   auth:
@@ -350,7 +355,7 @@ it:
     didnt_get_confirmation: Non hai ricevuto le istruzioni di conferma?
     forgot_password: Hai dimenticato la tua password?
     login: Entra
-    logout: Logout
+    logout: Sloggati
     migrate_account: Sposta ad un account differente
     migrate_account_html: Se vuoi che questo account sia reindirizzato a uno diverso, puoi <a href="%{path}">configurarlo qui</a>.
     or: o
@@ -451,7 +456,7 @@ it:
     max_uses:
       other: "%{count} utilizzi"
     max_uses_prompt: Nessun limite
-    prompt: Genera dei link e forniscili ad altri per concedere l'accesso a questa istanza
+    prompt: Genera e condividi dei link ad altri per garantire l'accesso a questa istanza
     table:
       expires_at: Scade
       uses: Utilizzi
@@ -609,7 +614,7 @@ it:
     recovery_codes_regenerated: I codici di recupero sono stati rigenerati
     recovery_instructions_html: Se perdi il telefono, puoi usare uno dei codici di recupero qui sotto per riottenere l'accesso al tuo account. <strong>Conserva i codici di recupero in un posto sicuro</strong>. Ad esempio puoi stamparli e conservarli insieme ad altri documenti importanti.
     setup: Configura
-    wrong_code: Il codice inserito non è corretto! Assicurati che l'orario del server e l'orario del telefono siano corretti.
+    wrong_code: Il codice inserito non è corretto! Assicurati che l'orario del server e l'orario del dispotivo siano corretti.
   user_mailer:
     backup_ready:
       explanation: Hai richiesto un backup completo del tuo account Mastodon. È pronto per essere scaricato!
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 5270debee..19b4017c7 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -283,7 +283,7 @@ ja:
         create_and_resolve: 書き込み、解決済みにする
         create_and_unresolve: 書き込み、未解決として開く
         delete: 削除
-        placeholder: このレポートに取られた措置や、その他の更新を記述してください…
+        placeholder: どのような措置が取られたか、または関連する更新を記述してください…
       reopen: 再び開く
       report: レポート#%{id}
       report_contents: 内容
@@ -393,7 +393,7 @@ ja:
     warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください!
     your_token: アクセストークン
   auth:
-    agreement_html: 登録すると <a href="%{rules_path}">インスタンスのルール</a> と <a href="%{terms_path}">利用規約</a> に従うことに同意したことになります。
+    agreement_html: 登録すると <a href="%{rules_path}">インスタンスのルール</a> と <a href="%{terms_path}">プライバシーポリシー</a> に従うことに同意したことになります。
     change_password: パスワード
     confirm_email: メールアドレスの確認
     delete_account: アカウントの削除
@@ -478,14 +478,14 @@ ja:
     domain: ドメイン
     explanation_html: あなたの投稿のプライバシーを確保したい場合、誰があなたをフォローしているのかを把握している必要があります。 <strong>プライベート投稿は、あなたのフォロワーがいる全てのインスタンスに配信されます</strong>。 フォロワーのインスタンスの管理者やソフトウェアがあなたのプライバシーを尊重してくれるかどうか怪しい場合は、そのフォロワーを削除した方がよいかもしれません。
     followers_count: フォロワー数
-    lock_link: 非公開アカウントにする
+    lock_link: 承認制アカウントにする
     purge: フォロワーから削除する
     success:
       one: 1個のドメインからソフトブロックするフォロワーを処理中...
       other: "%{count} 個のドメインからソフトブロックするフォロワーを処理中..."
     true_privacy_html: "<strong>プライバシーの保護はエンドツーエンドの暗号化でのみ実現可能</strong>であることに留意ください。"
-    unlocked_warning_html: 誰でもあなたをフォローすることができ、あなたのプライベート投稿をすぐに見ることができます。フォローする人を限定したい場合は%{lock_link}に設定してください。
-    unlocked_warning_title: このアカウントは非公開アカウントに設定されていません
+    unlocked_warning_html: 誰でもあなたをフォローすることができ、フォロワー限定の投稿をすぐに見ることができます。フォローする人を限定したい場合は%{lock_link}に設定してください。
+    unlocked_warning_title: このアカウントは承認制アカウントに設定されていません
   generic:
     changes_saved_msg: 正常に変更されました!
     powered_by: powered by %{link}
@@ -695,7 +695,7 @@ ja:
     show_more: もっと見る
     title: '%{name}: "%{quote}"'
     visibilities:
-      private: 非公開
+      private: フォロワー限定
       private_long: フォロワーにのみ表示されます
       public: 公開
       public_long: 誰でも見ることができ、かつ公開タイムラインに表示されます
@@ -755,7 +755,7 @@ ja:
 
       <h3 id="cookies">クッキーを使用していますか?</h3>
 
-      <p>はい。クッキーは (あなたが許可した場合に) WebサイトやサービスがWebブラウザーを介してコンピューターに保存する小さなファイルです。使用することで Web サイトがブラウザーを識別し、登録済みのアカウントがある場合関連付けます。</p>
+      <p>はい。クッキーは (あなたが許可した場合に) WebサイトやサービスがWebブラウザーを介してコンピューターに保存する小さなファイルです。使用することでWebサイトがブラウザーを識別し、登録済みのアカウントがある場合関連付けます。</p>
 
       <p>私たちはクッキーを将来の訪問のために設定を保存し呼び出す用途に使用します。</p>
 
@@ -771,9 +771,13 @@ ja:
 
       <hr class="spacer" />
 
-      <h3 id="coppa">児童オンラインプライバシー保護法の遵守</h3>
+      <h3 id="children">児童によるサイト利用について</h3>
 
-      <p>当サイト・製品・サービスは13歳以上の人を対象としています。サーバーが米国にあり、あなたが13歳未満の場合、COPPA (<a href="https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Children's Online Privacy Protection Act</a> - 児童オンラインプライバシー保護法) により当サイトを使用できません。</p>
+      <p>サーバーがEUまたはEEA圏内にある場合: 当サイト・製品・サービスは16歳以上の人を対象としています。あなたが16歳未満の場合、GDPR (<a href="https://en.wikipedia.org/wiki/General_Data_Protection_Regulation">General Data Protection Regulation</a> - EU一般データ保護規則) により当サイトを使用できません。</p>
+
+      <p>サーバーが米国にある場合: 当サイト・製品・サービスは13歳以上の人を対象としています。あなたが13歳未満の場合、COPPA (<a href="https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Children's Online Privacy Protection Act</a> - 児童オンラインプライバシー保護法) により当サイトを使用できません。</p>
+
+      <p>サーバーが別の管轄区域にある場合、法的要件は異なることがあります。</p>
 
       <hr class="spacer" />
 
@@ -813,7 +817,7 @@ ja:
       title: アーカイブの取り出し
     welcome:
       edit_profile_action: プロフィールを設定
-      edit_profile_step: アバター画像やヘッダー画像をアップロードしたり、表示名やその他プロフィールを変更しカスタマイズすることができます。新しいフォロワーからのフォローを許可する前に検討したい場合、アカウントを非公開にすることができます。
+      edit_profile_step: アバター画像やヘッダー画像をアップロードしたり、表示名やその他プロフィールを変更しカスタマイズすることができます。新しいフォロワーからのフォローを許可する前に検討したい場合、アカウントを承認制にすることができます。
       explanation: 始めるにあたってのアドバイスです
       final_action: 始めましょう
       final_step: 'さあ始めましょう! たとえフォロワーがいなくても、あなたの公開した投稿はローカルタイムラインやハッシュタグなどで誰かの目に止まるかもしれません。自己紹介をしたい時は #introductions ハッシュタグを使うといいかもしれません。'
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 6eb96c32c..1fe3b5472 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -283,7 +283,7 @@ nl:
         create_and_resolve: Oplossen met opmerking
         create_and_unresolve: Heropenen met opmerking
         delete: Verwijderen
-        placeholder: Beschrijf welke acties zijn ondernomen of andere opmerkingen over deze gerapporteerde toot…
+        placeholder: Beschrijf welke acties zijn ondernomen of andere gerelateerde opmerkingen…
       reopen: Gerapporteerde toot heropenen
       report: 'Gerapporteerde toot #%{id}'
       report_contents: Inhoud
@@ -550,7 +550,7 @@ nl:
       subject:
         one: "1 nieuwe melding sinds jouw laatste bezoek \U0001F418"
         other: "%{count} nieuwe meldingen sinds jouw laatste bezoek \U0001F418"
-      title: Tijdens jouw afwezigheid…
+      title: Tijdens jouw afwezigheid...
     favourite:
       body: 'Jouw toot werd door %{name} als favoriet gemarkeerd:'
       subject: "%{name} markeerde jouw toot als favoriet"
@@ -760,9 +760,13 @@ nl:
 
       <hr class="spacer" />
 
-      <h3 id="coppa">Children's Online Privacy Protection Act Compliance</h3>
+      <h3 id="children">Site usage by children</h3>
 
-      <p>Our site, products and services are all directed to people who are at least 13 years old. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA (<a href="https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Children's Online Privacy Protection Act</a>) do not use this site.</p>
+      <p>If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (<a href="https://en.wikipedia.org/wiki/General_Data_Protection_Regulation">General Data Protection Regulation</a>) do not use this site.</p>
+
+      <p>If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (<a href="https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Children's Online Privacy Protection Act</a>) do not use this site.</p>
+
+      <p>Law requirements can be different if this server is in another jurisdiction.</p>
 
       <hr class="spacer" />
 
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 54820bdb3..faf4f6d17 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -50,11 +50,12 @@ oc:
     reserved_username: Aqueste nom d’utilizaire es reservat
     roles:
       admin: Admin
+      bot: Robòt
       moderator: Moderador
     unfollow: Quitar de sègre
   admin:
     account_moderation_notes:
-      create: Crear
+      create: Crear una nòta
       created_msg: Nòta de moderacion ben creada !
       delete: Suprimir
       destroyed_msg: Nòta de moderacion ben suprimida !
@@ -282,10 +283,11 @@ oc:
         create: Ajustar una nòta
         create_and_resolve: Resòlvre amb una nòta
         create_and_unresolve: Tornar dobrir amb una nòta
-        placeholder: Explicatz las accions que son estadas menadas o çò qu’es estat fach per aqueste rapòrt…
+        delete: Escafar
+        placeholder: Explicatz las accions que son estadas menadas o quicòm de ligat al senhalament…
       reopen: Tornar dobrir lo rapòrt
       report: 'senhalament #%{id}'
-      report_contents: Contenguts
+      report_contents: Contengut
       reported_account: Compte senhalat
       reported_by: Senhalat per
       resolved: Resolgut
@@ -374,6 +376,7 @@ oc:
   admin_mailer:
     new_report:
       body: "%{reporter} a senhalat %{target}"
+      body_remote: Qualqu’un de %{domain} senhalèt %{target}
       subject: Novèl senhalament per %{instance} (#%{id})
   application_mailer:
     notification_preferences: Cambiar las preferéncias de corrièl
@@ -533,7 +536,7 @@ oc:
     '429': Lo servidor mòla (subrecargada)
     '500':
       content: Un quicomet a pas foncionat coma caliá.
-      title: Aquesta pagina es incorrècta
+      title: Aquesta pagina es pas corrècta
     noscript_html: Per utilizar l’aplicacion web de Mastodon, mercés d’activar JavaScript. O podètz utilizar <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">una aplicacion</a> per vòstra plataforma coma alernativa.
   exports:
     archive_takeout:
@@ -550,7 +553,7 @@ oc:
     storage: Mèdias gardats
   followers:
     domain: Domeni
-    explanation_html: Se volètz vos assegurar de la confidencialitat de vòstres estatuts, vos cal saber qual sèc vòstre compte. <strong>Vòstres estatuts privats son enviats a totas las instàncias qu’an de monde que vos sègon.</strong>. Benlèu que volètz repassar vòstra lista e tirar los seguidors s’avètz de dobtes tocant las politica de confidencialitat de lor instàncias.
+    explanation_html: Se volètz vos assegurar de la confidencialitat de vòstres estatuts, vos cal saber qual sèc vòstre compte. <strong>Vòstres estatuts privats son enviats a totas las instàncias qu’an de monde que vos sègon.</strong>. Benlèu que volètz repassar vòstra lista e tirar los seguidors s’avètz de dobtes tocant las politicas de confidencialitat dels gestionaris de lor instància o sul logicial qu’utilizan.
     followers_count: Nombre de seguidors
     lock_link: Clavar vòstre compte
     purge: Tirar dels seguidors
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 1dd37f78c..89cc26cf3 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -283,7 +283,7 @@ pt-BR:
         create_and_resolve: Resolver com nota
         create_and_unresolve: Reabrir com nota
         delete: Excluir
-        placeholder: Descreva que ações foram tomadas, ou quaisquer atualizações sobre esta denúncia…
+        placeholder: Descreva que ações foram tomadas, ou quaisquer outras atualizações relacionadas…
       reopen: Reabrir denúncia
       report: 'Denúncia #%{id}'
       report_contents: Conteúdos
@@ -550,7 +550,7 @@ pt-BR:
       subject:
         one: "Uma nova notificação desde o seu último acesso \U0001F418"
         other: "%{count} novas notificações desde o seu último acesso \U0001F418"
-      title: Enquanto você estava ausente…
+      title: Enquanto você estava ausente...
     favourite:
       body: 'Sua postagem foi favoritada por %{name}:'
       subject: "%{name} favoritou a sua postagem"
@@ -701,7 +701,7 @@ pt-BR:
 
       <ul>
         <li><em>Informação básica de conta</em>: Se você se registrar nesse servidor, podemos pedir que você utilize um nome de usuário, um e-mail e uma senha. Você também pode adicionar informações extras como um nome de exibição e biografia; enviar uma imagem de perfil e imagem de cabeçalho. O nome de usuário, nome de exibição, biografia, imagem de perfil e imagem de cabeçalho são sempre listadas publicamente.</li>
-        <li><em>Posts, informação de seguidores e outras informações públicas</em>: A lista de pessoas que você segue é listada publicamente, o mesmo é verdade para quem te segue. Quando você envia uma mensagem, a data e o horário são armazenados, assim como a aplicação que você usou para enviar a mensagem. Mensagens podem conter mídias anexadas, como imagens e vídeos. Posts públicos e não-listados estão disponíveis publicamente. Quando você destaca um post no seu perfil, isso também é uma informação pública. Seus posts são entregues aos seus seguidores e em alguns casos isso significa que eles são enviados para servidores diferentes e cópias são armazenadas nesses servidores. Quando você remove posts, essa informação também é entregue aos seus seguidores. O ato de compartilhar ou favoritar um outro post é sempre público.<li>
+        <li><em>Posts, informação de seguidores e outras informações públicas</em>: A lista de pessoas que você segue é listada publicamente, o mesmo é verdade para quem te segue. Quando você envia uma mensagem, a data e o horário são armazenados, assim como a aplicação que você usou para enviar a mensagem. Mensagens podem conter mídias anexadas, como imagens e vídeos. Posts públicos e não-listados estão disponíveis publicamente. Quando você destaca um post no seu perfil, isso também é uma informação pública. Seus posts são entregues aos seus seguidores e em alguns casos isso significa que eles são enviados para servidores diferentes e cópias são armazenadas nesses servidores. Quando você remove posts, essa informação também é entregue aos seus seguidores. O ato de compartilhar ou favoritar um outro post é sempre público.</li>
         <li><em>Mensagens diretas e posts somente para seguidores</em>: Todos os posts são armazenados e processados no servidor. Posts somente para seguidores são entregues aos seus seguidores e usuários que são mencionados neles; mensagens diretas são entregues somente aos usuários mencionados nelas. Em alguns casos isso significa que as mensagens são entregues para servidores diferentes e cópias são armazenadas nesses servidores. Nós fazemos esforços substanciais para limitar o acesso dessas mensagens somente para as pessoas autorizadas, mas outros servidores podem não fazer o mesmo. É importante portanto revisar os servidores à qual seus seguidores pertencem. Você pode usar uma opção para aprovar ou rejeitar novos seguidores manualmente nas configurações. <em>Por favor tenha em mente que os operadores do servidor e de qualquer servidores do destinatário podem ver tais mensagens</em>, e que os destinatários podem fazer capturas de tela, copiar ou de outra maneira compartilhar as mensagens. <em>Não compartilhe informação confidencial pelo Mastodon.</em></li>
         <li><em>IPs e outros metadados</em>: Quando você faz se autentica, nos guardamos o endereço de IP que você usou ao se autenticar e o nome do seu navegador da internet. Todas as sessões autenticadas são disponíveis para serem analisadas e revogadas nas configurações. O último endereço de IP usado é guardado por até 12 meses. Nós também podemos reter históricos do servidor que incluem o endereço de IP de todas as requisições ao nosso servidor.</li>
       </ul>
diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml
index 9e3e1e4e8..3d555718c 100644
--- a/config/locales/simple_form.ar.yml
+++ b/config/locales/simple_form.ar.yml
@@ -9,6 +9,7 @@ ar:
         fields: يُمكنك عرض 4 عناصر على شكل جدول في ملفك الشخصي
         header: ملف PNG أو GIF أو JPG. حجمه على أقصى تصدير 2MB. سيتم تصغيره إلى 700x335px
         locked: يتطلب منك الموافقة يدويا على طلبات المتابعة
+        setting_hide_network: الحسابات التي تُتابعها و التي تُتابِعك على حد سواء لن تُعرَض على صفحتك الشخصية
         setting_noindex: ذلك يؤثر على حالة ملفك الشخصي و صفحاتك
         setting_theme: ذلك يؤثر على الشكل الذي سيبدو عليه ماستدون عندما تقوم بالدخول مِن أي جهاز.
       imports:
@@ -48,6 +49,7 @@ ar:
         setting_default_sensitive: إعتبر الوسائط دائما كمحتوى حساس
         setting_delete_modal: إظهار مربع حوار للتأكيد قبل حذف أي تبويق
         setting_display_sensitive_media: دائمًا إظهار الوسائط الحساسة
+        setting_hide_network: إخفِ شبكتك
         setting_noindex: عدم السماح لمحركات البحث بفهرسة ملفك الشخصي
         setting_reduce_motion: تخفيض عدد الصور في الوسائط المتحركة
         setting_system_font_ui: إستخدم الخطوط الإفتراضية للنظام
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index 9ff9ebad4..4027c1b60 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -4,7 +4,7 @@ eo:
     hints:
       defaults:
         avatar: Formato PNG, GIF aŭ JPG. Ĝis 2MB. Estos malgrandigita al 400x400px
-        bot: Atentigas homojn, ke la konto ne reprezentas homon
+        bot: Tiu konto ĉefe faras aŭtomatajn agojn, kaj povas esti ne kontrolata
         digest: Sendita nur post longa tempo de neaktiveco, kaj nur se vi ricevis personan mesaĝon en via foresto
         display_name:
           one: <span class="name-counter">1</span> signo restas
@@ -15,6 +15,7 @@ eo:
         note:
           one: <span class="note-counter">1</span> signo restas
           other: <span class="note-counter">%{count}</span> signoj restas
+        setting_hide_network: Tiuj, kiujn vi sekvas, kaj tiuj, kiuj sekvas vin ne estos videblaj en via profilo
         setting_noindex: Influas vian publikan profilon kaj mesaĝajn paĝojn
         setting_theme: Influas kiel Mastodon aspektas post ensaluto de ajna aparato.
       imports:
@@ -54,6 +55,7 @@ eo:
         setting_default_sensitive: Ĉiam marki aŭdovidaĵojn tiklaj
         setting_delete_modal: Montri fenestron por konfirmi antaŭ ol forigi mesaĝon
         setting_display_sensitive_media: Ĉiam montri aŭdovidaĵojn markitajn tiklaj
+        setting_hide_network: Kaŝi viajn sekvantojn kaj sekvatojn
         setting_noindex: Ellistiĝi de retserĉila indeksado
         setting_reduce_motion: Malrapidigi animaciojn
         setting_system_font_ui: Uzi la dekomencan tiparon de la sistemo
diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml
index d856feac5..22b71bac1 100644
--- a/config/locales/simple_form.eu.yml
+++ b/config/locales/simple_form.eu.yml
@@ -28,5 +28,14 @@ eu:
         filtered_languages: Iragazitako hizkuntzak
         locale: Hizkuntza
         new_password: Pasahitz berria
-        note: Bio
+        note: Biografia
         password: Pasahitza
+        setting_boost_modal: Erakutsi baieztapen elkarrizketa-koadroa bultzada eman aurretik
+        setting_default_privacy: Mezuaren pribatutasuna
+      notification_emails:
+        reblog: Bidali e-mail mezua norbaitek zure mezuari bultzada ematen badio
+    'no': Ez
+    required:
+      mark: "*"
+      text: beharrezkoa
+    'yes': Bai
diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml
index a885c9332..13ff7801e 100644
--- a/config/locales/simple_form.fa.yml
+++ b/config/locales/simple_form.fa.yml
@@ -11,7 +11,7 @@ fa:
           other: <span class="name-counter">%{count}</span> حرف باقی مانده
         fields: شما می‌توانید تا چهار مورد را در یک جدول در نمایهٔ خود نمایش دهید
         header: یکی از قالب‌های PNG یا  GIF یا JPG. بیشترین اندازه ۲ مگابایت. تصویر به اندازهٔ ۳۳۵×۷۰۰ پیکسل تبدیل خواهد شد
-        locked: باید پیگیران تازه را خودتان تأیید کنید. حریم خصوصی پیش‌فرض نوشته‌ها را روی پیگیران تنظیم می‌کند
+        locked: باید پیگیران تازه را خودتان تأیید کنید
         note:
           one: <span class="note-counter">1</span> حرف باقی مانده
           other: <span class="note-counter">%{count}</span> حرف باقی مانده
@@ -53,10 +53,10 @@ fa:
         setting_boost_modal: نمایش پیغام تأیید پیش از بازبوقیدن
         setting_default_privacy: حریم خصوصی نوشته‌ها
         setting_default_sensitive: همیشه تصاویر را به عنوان حساس علامت بزن
-        setting_delete_modal: پیش از پاک کردن یک نوشته پیغام تأیید نشان بده
+        setting_delete_modal: نمایش پیغام تأیید پیش از پاک کردن یک نوشته
         setting_display_sensitive_media: همیشه تصویرهای علامت‌زده‌شده به عنوان حساس را نمایش بده
         setting_hide_network: نهفتن شبکهٔ ارتباطی
-        setting_noindex: درخواست از موتورهای جستجو برای لغو فهرست‌سازی
+        setting_noindex: درخواست از موتورهای جستجوگر برای ظاهر نشدن در نتایج جستجو
         setting_reduce_motion: کاستن از حرکت در پویانمایی‌ها
         setting_system_font_ui: به‌کاربردن قلم پیش‌فرض سیستم
         setting_theme: تم سایت
@@ -71,7 +71,7 @@ fa:
         must_be_following_dm: مسدودکردن پیغام‌های خصوصی کسانی که شما پی نمی‌گیرید
       notification_emails:
         digest: خلاصه‌کردن چند اعلان در یک ایمیل
-        favourite: وقتی کسی نوشتهٔ شما پسندید ایمیل بفرست
+        favourite: وقتی کسی نوشتهٔ شما را پسندید ایمیل بفرست
         follow: وقتی کسی پیگیر شما شد ایمیل بفرست
         follow_request: وقتی کسی درخواست پیگیری کرد ایمیل بفرست
         mention: وقتی کسی از شما نام برد ایمیل بفرست
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index 6dc3da19c..bae49a65d 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -35,7 +35,7 @@ gl:
         confirm_new_password: Confirme o novo contrasinal
         confirm_password: Confirme o contrasinal
         current_password: Contrasinal actual
-        data: Data
+        data: Datos
         display_name: Nome mostrado
         email: enderezo correo electrónico
         expires_in: Caducidade despois de
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index dd533ec31..59a4cf525 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -15,6 +15,7 @@ it:
         note:
           one: <span class="note-counter">1</span> carattere rimanente
           other: <span class="note-counter">%{count}</span> caratteri rimanenti
+        setting_hide_network: Chi segui e chi segue te no saranno mostrati sul tuo profilo
         setting_noindex: Coinvolge il tuo profilo pubblico e le pagine di stato
         setting_theme: Coinvolge il modo in cui Mastodon verrà visualizzato quando sarai collegato da qualsiasi dispositivo.
       imports:
@@ -54,6 +55,7 @@ it:
         setting_default_sensitive: Segna sempre i media come sensibili
         setting_delete_modal: Mostra dialogo di conferma prima di eliminare un toot
         setting_display_sensitive_media: Mostra sempre i media segnati come sensibili
+        setting_hide_network: Nascondi la tua rete
         setting_noindex: Non indicizzare dai motori di ricerca
         setting_reduce_motion: Riduci movimento nelle animazioni
         setting_system_font_ui: Usa il carattere di default del sistema
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index 9a6da72bd..a3ae822fe 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -39,7 +39,7 @@ ja:
         filtered_languages: 除外する言語
         header: ヘッダー
         locale: 言語
-        locked: 非公開アカウントにする
+        locked: 承認制アカウントにする
         max_uses: 使用できる回数
         new_password: 新しいパスワード
         note: プロフィール
diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml
index 83d388ba7..c6887a363 100644
--- a/config/locales/simple_form.sk.yml
+++ b/config/locales/simple_form.sk.yml
@@ -4,18 +4,18 @@ sk:
     hints:
       defaults:
         avatar: PNG, GIF alebo JPG. Maximálne 2MB. Bude zmenšený na 400x400px
-        bot: Tento účet vykonáva hlavne zautomatizované akcie, a je pravdepodobne nespravovaný
-        digest: Odoslané iba v prípade dlhodobej neprítomnosti, a len ak ste obdŕžali nejaké osobné správy kým ste boli preč
+        bot: Tento účet vykonáva hlavne automatizované akcie, a je pravdepodobne nespravovaný
+        digest: Odoslané iba v prípade dlhodobej neprítomnosti, a len ak si obdŕžal/a nejaké osobné správy kým si bol/a preč
         display_name:
           few: Ostávajú ti <span class="name-counter">%{count}</span> znaky
           one: Ostáva ti <span class="name-counter">1</span> znak
           other: Ostáva ti <span class="name-counter">%{count}</span> znakov
         fields: Môžeš mať 4 položky na svojom profile zobrazené vo forme tabuľky
         header: PNG, GIF alebo JPG. Maximálne 2MB. Bude zmenšený na 700x335px
-        locked: Musíte manuálne schváliť sledujúcich
+        locked: Vyžaduje manuálne schvalovať sledujúcich
         note:
           few: Ostávajú ti <span class="note-counter">%{count}</span> znaky
-          one: Ostáva vám <span class="note-counter">1</span> znak
+          one: Ostáva ti <span class="note-counter">1</span> znak
           other: Ostáva ti <span class="note-counter">%{count}</span> znakov
         setting_hide_network: Koho následuješ, a kto následuje teba nebude zobrazené na tvojom profile
         setting_noindex: Ovplyvňuje verejný profil a statusy
@@ -57,6 +57,7 @@ sk:
         setting_default_sensitive: Označ všetky mediálne súbory ako chúlostivé
         setting_delete_modal: Zobrazuj potvrdzovacie okno pred vymazaním toot-u
         setting_display_sensitive_media: Vždy zobraz médiá označené ako chúlostivé
+        setting_hide_network: Ukri svoju sieť kontaktov
         setting_noindex: Nezaraďuj príspevky do indexu pre vyhľadávče
         setting_reduce_motion: Redukovať pohyb v animáciách
         setting_system_font_ui: Použiť základné systémové písmo
@@ -64,11 +65,11 @@ sk:
         setting_unfollow_modal: Zobraziť potvrdzovacie okno pred skončením sledovania iného užívateľa
         severity: Závažnosť
         type: Typ importu
-        username: Užívateľská prezývka
-        username_or_email: Prezívka, alebo Email
+        username: Prezývka
+        username_or_email: Prezívka, alebo email
       interactions:
-        must_be_follower: Blokovať notifikácie pod používateľov, ktorí ťa nesledujú
-        must_be_following: Blokovať notifikácie od ľudí ktorí ťa nesledujú
+        must_be_follower: Blokovať oznámenia od užívateľov, ktorí ťa nesledujú
+        must_be_following: Blokovať oznámenia od ľudí ktorých nesleduješ
         must_be_following_dm: Blokovať súkromné správy od ľudí ktorých nesleduješ
       notification_emails:
         digest: Posielať súhrnné emaily
diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml
index f43097e55..f027d684b 100644
--- a/config/locales/simple_form.sv.yml
+++ b/config/locales/simple_form.sv.yml
@@ -3,7 +3,7 @@ sv:
   simple_form:
     hints:
       defaults:
-        avatar: Högst 2 MB. Kommer nedskalas till 400x400px
+        avatar: Högst 2 MB. Kommer att skalas ner till 400x400px
         bot: Detta konto utför huvudsakligen automatiserade åtgärder och kanske inte övervakas
         digest: Skickas endast efter en lång period av inaktivitet och endast om du har fått några personliga meddelanden i din frånvaro
         display_name:
@@ -15,6 +15,7 @@ sv:
         note:
           one: <span class="note-counter">1</span> tecken kvar
           other: <span class="note-counter">%{count}</span> tecken kvar
+        setting_hide_network: Vem du följer och vilka som följer dig kommer inte att visas på din profilsida
         setting_noindex: Påverkar din offentliga profil och statussidor
         setting_theme: Påverkar hur Mastodon ser ut oavsett från vilken enhet du är inloggad.
       imports:
@@ -30,6 +31,7 @@ sv:
           value: Innehåll
       defaults:
         avatar: Avatar
+        bot: Detta är ett botkonto
         confirm_new_password: Bekräfta nytt lösenord
         confirm_password: Bekräfta lösenord
         current_password: Nuvarande lösenord
@@ -53,6 +55,7 @@ sv:
         setting_default_sensitive: Markera alltid media som känsligt
         setting_delete_modal: Visa bekräftelsedialog innan du raderar en toot
         setting_display_sensitive_media: Visa alltid media märkt som känsligt
+        setting_hide_network: Göm ditt nätverk
         setting_noindex: Uteslutning av sökmotorindexering
         setting_reduce_motion: Minska rörelser i animationer
         setting_system_font_ui: Använd systemets standardfont
diff --git a/config/locales/simple_form.zh-HK.yml b/config/locales/simple_form.zh-HK.yml
index ed80b10ae..06d3f6f6c 100644
--- a/config/locales/simple_form.zh-HK.yml
+++ b/config/locales/simple_form.zh-HK.yml
@@ -15,12 +15,13 @@ zh-HK:
         note:
           one: 尚餘 <span class="note-counter">1</span> 個字
           other: 尚餘 <span class="note-counter">%{count}</span> 個字
+        setting_hide_network: 你關注的人和關注你的人將不會在你的個人資料頁上顯示
         setting_noindex: 此設定會影響到你的公開個人資料以及文章頁面
         setting_theme: 此設置會影響到你從任意設備登入時 Mastodon 的顯示樣式。
       imports:
         data: 自其他服務站匯出的 CSV 檔案
       sessions:
-        otp: 輸入你手機上生成的雙重認證碼,或者任意一個恢復代碼。
+        otp: 輸入你手機上生成的雙重認證碼,或者任意一個恢復代碼:
       user:
         filtered_languages: 下面被選擇的語言的文章將不會出現在你的公共時間軸上
     labels:
@@ -54,6 +55,7 @@ zh-HK:
         setting_default_sensitive: 預設我的內容為敏感內容
         setting_delete_modal: 刪推前詢問我
         setting_display_sensitive_media: 預設我的媒體為敏感內容
+        setting_hide_network: 隱藏你的社交網絡
         setting_noindex: 阻止搜尋引擎檢索
         setting_reduce_motion: 減低動畫效果
         setting_system_font_ui: 使用系統預設字型
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 3a0de0ff2..d887d2de2 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -10,7 +10,7 @@ sk:
     contact_missing: Nezadané
     contact_unavailable: Neuvedené
     description_headline: Čo je %{domain}?
-    domain_count_after: ďalším inštanciám
+    domain_count_after: ďalším instanciám
     domain_count_before: Pripojený k
     extended_description_html: |
       <h3>Pravidlá</h3>
@@ -40,6 +40,7 @@ sk:
     following: Sleduje
     media: Médiá
     moved_html: "%{name} účet bol presunutý na %{new_profile_link}:"
+    network_hidden: Táto informácia nieje k dispozícii
     nothing_here: Nič tu nie je!
     people_followed_by: Ľudia, ktorých %{name} sleduje
     people_who_follow: Ľudia sledujúci %{name}
@@ -282,7 +283,7 @@ sk:
         create_and_resolve: Vyrieš s poznámkou
         create_and_unresolve: Otvor znovu, s poznámkou
         delete: Vymaž
-        placeholder: Opíš aké opatrenia boli urobené, alebo akékoľvek iné aktualizácie k tomuto nahláseniu…
+        placeholder: Opíš aké opatrenia boli urobené, alebo akékoľvek iné súvisiace aktualizácie…
       reopen: Znovu otvor report
       report: Nahlásiť
       report_contents: Obsah
@@ -396,8 +397,8 @@ sk:
     change_password: Heslo
     confirm_email: Potvrdiť email
     delete_account: Vymazať účet
-    delete_account_html: Pokiaľ si želáte vymazať svoj účet, môžete tak <a href="%{path}"> 1 urobiť tu</a> 2. Budete požiadaný/á o potvrdenie tohto kroku.
-    didnt_get_confirmation: Neobdŕžali ste kroky pre potvrdenie?
+    delete_account_html: Pokiaľ chceš vymazať svoj účet, môžeš tak <a href="%{path}">urobiť tu</a>. Budeš požiadaný/á o potvrdenie tohto kroku.
+    didnt_get_confirmation: Neobdŕžal/a si kroky pre potvrdenie?
     forgot_password: Zabudli ste heslo?
     invalid_reset_password_token: Token na obnovu hesla vypršal. Prosím vypítajte si nový.
     login: Prihlás sa
@@ -482,7 +483,7 @@ sk:
       few: Počas utišovania sledovateľov z %{count} domén...
       one: Počas utišovania sledovateľov z jednej domény...
       other: Počas utišovania sledovateľov z %{count} domén...
-    true_privacy_html: Prosím majte na vedomí, <strong> 1 že ozajstné súkromie sa dá dosiahnúť iba za pomoci end-to-end enkrypcie</strong> 2.
+    true_privacy_html: Prosím ber na vedomie, <strong> že ozajstné súkromie sa dá dosiahnúť iba za pomoci end-to-end enkrypcie</strong>.
     unlocked_warning_html: Hocikto ťa môže následovať aby mohol/a ihneď vidieť tvoje súkromné príspevky. %{lock_link} aby si mohla skontrolovať a odmietať sledovateľov.
     unlocked_warning_title: Tvoj účet nieje zamknutý
   generic:
@@ -678,6 +679,7 @@ sk:
     title: Podmienky užívania, a pravidlá o súkromí pre %{instance}
   themes:
     default: Mastodon
+    mastodon-light: Mastodon (svetlý)
   time:
     formats:
       default: "%b %d, %R, %H:%M"
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 5a81d0435..23ea7ddd1 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -55,7 +55,7 @@ sv:
     unfollow: Sluta följa
   admin:
     account_moderation_notes:
-      create: Skapa
+      create: Lämna kommentar
       created_msg: Modereringsnotering skapad utan problem!
       delete: Ta bort
       destroyed_msg: Modereringsnotering borttagen utan problem!
@@ -283,7 +283,7 @@ sv:
         create_and_resolve: Lös med anteckning
         create_and_unresolve: Återuppta med anteckning
         delete: Radera
-        placeholder: Beskriv vilka åtgärder som vidtagits eller andra uppdateringar till den här anmälan…
+        placeholder: Beskriv vilka åtgärder som vidtagits eller andra uppdateringar till den här anmälan.
       reopen: Återuppta anmälan
       report: 'Anmäl #%{id}'
       report_contents: Innehåll
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 14eedc9ba..c489d8bd4 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -40,6 +40,7 @@ zh-HK:
     following: 正在關注
     media: 媒體
     moved_html: "%{name} 已經轉移到 %{new_profile_link}:"
+    network_hidden: 此信息不可用
     nothing_here: 暫時未有內容可以顯示
     people_followed_by: "%{name} 關注的人"
     people_who_follow: 關注 %{name} 的人
@@ -50,7 +51,7 @@ zh-HK:
     roles:
       admin: 管理員
       bot: 機械人
-      moderator: 監察员
+      moderator: 監察員
     unfollow: 取消關注
   admin:
     account_moderation_notes:
@@ -129,7 +130,7 @@ zh-HK:
       role: 身份
       roles:
         admin: 管理員
-        moderator: 監察员
+        moderator: 監察員
         staff: 管理人員
         user: 普通用戶
       salmon_url: Salmon 反饋 URL
@@ -282,7 +283,7 @@ zh-HK:
         create_and_resolve: 建立筆記並標示為「已處理」
         create_and_unresolve: 建立筆記並標示為「未處理」
         delete: 刪除
-        placeholder: 記錄已執行的動作,或其他更新
+        placeholder: 記錄已執行的動作,或其他相關的更新……
       reopen: 重開舉報
       report: '舉報 #%{id}'
       report_contents: 舉報內容
@@ -696,6 +697,7 @@ zh-HK:
   themes:
     contrast: 高對比
     default: 萬象
+    mastodon-light: 萬象(亮色主題)
   time:
     formats:
       default: "%Y年%-m月%d日 %H:%M"