about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/settings/identity_proofs_controller.rb2
-rw-r--r--app/javascript/mastodon/locales/ar.json27
-rw-r--r--app/javascript/mastodon/locales/ast.json1
-rw-r--r--app/javascript/mastodon/locales/bg.json1
-rw-r--r--app/javascript/mastodon/locales/bn.json1
-rw-r--r--app/javascript/mastodon/locales/ca.json1
-rw-r--r--app/javascript/mastodon/locales/cs.json2
-rw-r--r--app/javascript/mastodon/locales/cy.json1
-rw-r--r--app/javascript/mastodon/locales/da.json1
-rw-r--r--app/javascript/mastodon/locales/el.json19
-rw-r--r--app/javascript/mastodon/locales/eo.json1
-rw-r--r--app/javascript/mastodon/locales/es.json1
-rw-r--r--app/javascript/mastodon/locales/eu.json1
-rw-r--r--app/javascript/mastodon/locales/fa.json1
-rw-r--r--app/javascript/mastodon/locales/fi.json1
-rw-r--r--app/javascript/mastodon/locales/fr.json25
-rw-r--r--app/javascript/mastodon/locales/gl.json1
-rw-r--r--app/javascript/mastodon/locales/he.json1
-rw-r--r--app/javascript/mastodon/locales/hr.json1
-rw-r--r--app/javascript/mastodon/locales/hu.json1
-rw-r--r--app/javascript/mastodon/locales/hy.json1
-rw-r--r--app/javascript/mastodon/locales/id.json1
-rw-r--r--app/javascript/mastodon/locales/io.json1
-rw-r--r--app/javascript/mastodon/locales/it.json1
-rw-r--r--app/javascript/mastodon/locales/ka.json1
-rw-r--r--app/javascript/mastodon/locales/kk.json9
-rw-r--r--app/javascript/mastodon/locales/lv.json1
-rw-r--r--app/javascript/mastodon/locales/ms.json1
-rw-r--r--app/javascript/mastodon/locales/nl.json1
-rw-r--r--app/javascript/mastodon/locales/no.json1
-rw-r--r--app/javascript/mastodon/locales/oc.json1
-rw-r--r--app/javascript/mastodon/locales/pl.json2
-rw-r--r--app/javascript/mastodon/locales/pt-BR.json1
-rw-r--r--app/javascript/mastodon/locales/pt.json1
-rw-r--r--app/javascript/mastodon/locales/ro.json1
-rw-r--r--app/javascript/mastodon/locales/ru.json158
-rw-r--r--app/javascript/mastodon/locales/sk.json105
-rw-r--r--app/javascript/mastodon/locales/sl.json1
-rw-r--r--app/javascript/mastodon/locales/sq.json1
-rw-r--r--app/javascript/mastodon/locales/sr-Latn.json1
-rw-r--r--app/javascript/mastodon/locales/sr.json1
-rw-r--r--app/javascript/mastodon/locales/sv.json1
-rw-r--r--app/javascript/mastodon/locales/ta.json1
-rw-r--r--app/javascript/mastodon/locales/te.json1
-rw-r--r--app/javascript/mastodon/locales/th.json15
-rw-r--r--app/javascript/mastodon/locales/tr.json1
-rw-r--r--app/javascript/mastodon/locales/uk.json1
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json1
-rw-r--r--app/javascript/mastodon/locales/zh-HK.json1
-rw-r--r--app/javascript/mastodon/locales/zh-TW.json1
-rw-r--r--app/lib/proof_provider/keybase.rb16
-rw-r--r--app/lib/proof_provider/keybase/badge.rb9
-rw-r--r--app/lib/proof_provider/keybase/verifier.rb5
-rw-r--r--app/lib/proof_provider/keybase/worker.rb5
-rw-r--r--app/models/account_identity_proof.rb6
-rw-r--r--babel.config.js2
-rw-r--r--config/locales/activerecord.de.yml3
-rw-r--r--config/locales/activerecord.el.yml3
-rw-r--r--config/locales/activerecord.fr.yml4
-rw-r--r--config/locales/activerecord.gl.yml3
-rw-r--r--config/locales/activerecord.kk.yml4
-rw-r--r--config/locales/activerecord.nl.yml3
-rw-r--r--config/locales/activerecord.ru.yml4
-rw-r--r--config/locales/activerecord.sk.yml5
-rw-r--r--config/locales/co.yml3
-rw-r--r--config/locales/cs.yml6
-rw-r--r--config/locales/de.yml10
-rw-r--r--config/locales/devise.fr.yml3
-rw-r--r--config/locales/devise.ru.yml40
-rw-r--r--config/locales/en.yml1
-rw-r--r--config/locales/ja.yml18
-rw-r--r--config/locales/ko.yml6
-rw-r--r--config/locales/ru.yml298
-rw-r--r--config/locales/simple_form.co.yml5
-rw-r--r--config/locales/simple_form.cs.yml5
-rw-r--r--config/locales/simple_form.de.yml5
-rw-r--r--config/locales/simple_form.ja.yml5
-rw-r--r--config/locales/simple_form.ko.yml5
-rw-r--r--config/locales/simple_form.ru.yml68
-rw-r--r--spec/controllers/settings/identity_proofs_controller_spec.rb17
-rw-r--r--spec/lib/proof_provider/keybase/verifier_spec.rb2
81 files changed, 697 insertions, 276 deletions
diff --git a/app/controllers/settings/identity_proofs_controller.rb b/app/controllers/settings/identity_proofs_controller.rb
index 8f857fdcc..e22b4d9be 100644
--- a/app/controllers/settings/identity_proofs_controller.rb
+++ b/app/controllers/settings/identity_proofs_controller.rb
@@ -18,7 +18,7 @@ class Settings::IdentityProofsController < Settings::BaseController
       provider_username: params[:provider_username]
     )
 
-    if current_account.username == params[:username]
+    if current_account.username.casecmp(params[:username]).zero?
       render layout: 'auth'
     else
       flash[:alert] = I18n.t('identity_proofs.errors.wrong_user', proving: params[:username], current: current_account.username)
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 6ed799941..e815d54d5 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -71,10 +71,10 @@
   "compose_form.lock_disclaimer": "حسابك ليس {locked}. يمكن لأي شخص متابعتك و عرض المنشورات.",
   "compose_form.lock_disclaimer.lock": "مقفل",
   "compose_form.placeholder": "فيمَ تفكّر؟",
-  "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
+  "compose_form.poll.add_option": "إضافة خيار",
+  "compose_form.poll.duration": "مدة استطلاع الرأي",
+  "compose_form.poll.option_placeholder": "الخيار {number}",
+  "compose_form.poll.remove_option": "إزالة هذا الخيار",
   "compose_form.publish": "بوّق",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "لقد تم تحديد هذه الصورة كحساسة",
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "رموز",
   "emoji_button.travel": "أماكن و أسفار",
   "empty_column.account_timeline": "ليس هناك تبويقات!",
+  "empty_column.account_unavailable": "الملف الشخصي غير متوفر",
   "empty_column.blocks": "لم تقم بحظر أي مستخدِم بعد.",
   "empty_column.community": "الخط الزمني المحلي فارغ. أكتب شيئا ما للعامة كبداية !",
   "empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
@@ -150,7 +151,7 @@
   "hashtag.column_settings.tag_mode.all": "كلها",
   "hashtag.column_settings.tag_mode.any": "أي كان مِن هذه",
   "hashtag.column_settings.tag_mode.none": "لا شيء مِن هذه",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_toggle": "إدراج الوسوم الإضافية لهذا العمود",
   "home.column_settings.basic": "أساسية",
   "home.column_settings.show_reblogs": "عرض الترقيات",
   "home.column_settings.show_replies": "عرض الردود",
@@ -257,7 +258,7 @@
   "notifications.column_settings.filter_bar.show": "عرض",
   "notifications.column_settings.follow": "متابعُون جُدُد :",
   "notifications.column_settings.mention": "الإشارات :",
-  "notifications.column_settings.poll": "Poll results:",
+  "notifications.column_settings.poll": "نتائج استطلاع الرأي:",
   "notifications.column_settings.push": "الإخطارات المدفوعة",
   "notifications.column_settings.reblog": "الترقيّات:",
   "notifications.column_settings.show": "إعرِضها في عمود",
@@ -267,14 +268,14 @@
   "notifications.filter.favourites": "المفضلة",
   "notifications.filter.follows": "يتابِع",
   "notifications.filter.mentions": "الإشارات",
-  "notifications.filter.polls": "Poll results",
+  "notifications.filter.polls": "نتائج استطلاع الرأي",
   "notifications.group": "{count} إشعارات",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
+  "poll.closed": "انتهى",
+  "poll.refresh": "تحديث",
   "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll.vote": "صَوّت",
+  "poll_button.add_poll": "إضافة استطلاع للرأي",
+  "poll_button.remove_poll": "إزالة استطلاع الرأي",
   "privacy.change": "إضبط خصوصية المنشور",
   "privacy.direct.long": "أنشر إلى المستخدمين المشار إليهم فقط",
   "privacy.direct.short": "مباشر",
@@ -366,7 +367,7 @@
   "upload_area.title": "إسحب ثم أفلت للرفع",
   "upload_button.label": "إضافة وسائط (JPEG، PNG، GIF، WebM، MP4، MOV)",
   "upload_error.limit": "لقد تم بلوغ الحد الأقصى المسموح به لإرسال الملفات.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.",
   "upload_form.description": "وصف للمعاقين بصريا",
   "upload_form.focus": "قص",
   "upload_form.undo": "حذف",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index a341567a7..a983f63a4 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Símbolos",
   "emoji_button.travel": "Viaxes y llugares",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Entá nun bloquiesti a dengún usuariu.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
   "empty_column.direct": "Entá nun tienes dengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 49e043582..36a08b264 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symbols",
   "emoji_button.travel": "Travel & Places",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.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.",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index 0d095bdeb..338e49f81 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symbols",
   "emoji_button.travel": "Travel & Places",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.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.",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index c6b71a4f8..18dd56d0d 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Símbols",
   "emoji_button.travel": "Viatges i Llocs",
   "empty_column.account_timeline": "No hi ha toots aquí!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Encara no has bloquejat cap usuari.",
   "empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per fer rodar la pilota!",
   "empty_column.direct": "Encara no tens missatges directes. Quan enviïs o rebis un, es mostrarà aquí.",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index 61d865154..f98ea7f26 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -351,7 +351,7 @@
   "status.unmute_conversation": "Odkrýt konverzaci",
   "status.unpin": "Odepnout z profilu",
   "suggestions.dismiss": "Odmítnout návrh",
-  "suggestions.header": "Mohlo by vás zajímat…",
+  "suggestions.header": "Mohli by vás zajímat…",
   "tabs_bar.federated_timeline": "Federovaná",
   "tabs_bar.home": "Domů",
   "tabs_bar.local_timeline": "Místní",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index f03b54750..d886b2b54 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symbolau",
   "emoji_button.travel": "Teithio & Llefydd",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
   "empty_column.community": "Mae'r ffrwd lleol yn wag. Ysgrifenwch rhywbeth yn gyhoeddus i gael dechrau arni!",
   "empty_column.direct": "Nid oes gennych unrhyw negeseuon preifat eto. Pan y byddwch yn anfon neu derbyn un, mi fydd yn ymddangos yma.",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index 1be8d989d..89096b29b 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symboler",
   "emoji_button.travel": "Rejser & steder",
   "empty_column.account_timeline": "Ingen bidrag her!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Du har ikke blokeret nogen endnu.",
   "empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at starte lavinen!",
   "empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager en, vil den vises her.",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 701410a81..69c0dcbad 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -71,10 +71,10 @@
   "compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σας προς τους ακολούθους σας.",
   "compose_form.lock_disclaimer.lock": "κλειδωμένος",
   "compose_form.placeholder": "Τι σκέφτεσαι;",
-  "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
+  "compose_form.poll.add_option": "Προσθήκη επιλογής",
+  "compose_form.poll.duration": "Διάρκεια δημοσκόπησης",
+  "compose_form.poll.option_placeholder": "Επιλογή {number}",
+  "compose_form.poll.remove_option": "Αφαίρεση επιλογής",
   "compose_form.publish": "Τουτ",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Το πολυμέσο έχει σημειωθεί ως ευαίσθητο",
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Σύμβολα",
   "emoji_button.travel": "Ταξίδια & Τοποθεσίες",
   "empty_column.account_timeline": "Δεν έχει τουτ εδώ!",
+  "empty_column.account_unavailable": "Μη διαθέσιμο προφίλ",
   "empty_column.blocks": "Δεν έχεις αποκλείσει κανέναν χρήστη ακόμα.",
   "empty_column.community": "Η τοπική ροή είναι κενή. Γράψε κάτι δημόσιο παραμύθι ν' αρχινίσει!",
   "empty_column.direct": "Δεν έχεις προσωπικά μηνύματα ακόμα. Όταν στείλεις ή λάβεις κανένα, θα εμφανιστεί εδώ.",
@@ -154,8 +155,8 @@
   "home.column_settings.basic": "Βασικά",
   "home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων",
   "home.column_settings.show_replies": "Εμφάνιση απαντήσεων",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+  "intervals.full.days": "{number, plural, one {# μέρα} other {# μέρες}}",
+  "intervals.full.hours": "{number, plural, one {# ώρα} other {# ώρες}}",
   "intervals.full.minutes": "{number, plural, one {# λεπτό} other {# λεπτά}}",
   "introduction.federation.action": "Επόμενο",
   "introduction.federation.federated.headline": "Ομοσπονδιακή",
@@ -273,8 +274,8 @@
   "poll.refresh": "Ανανέωση",
   "poll.total_votes": "{count, plural, one {# ψήφος} other {# ψήφοι}}",
   "poll.vote": "Ψήφισε",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Προσθήκη δημοσκόπησης",
+  "poll_button.remove_poll": "Αφαίρεση δημοσκόπησης",
   "privacy.change": "Προσαρμογή ιδιωτικότητας δημοσίευσης",
   "privacy.direct.long": "Δημοσίευση μόνο σε όσους και όσες αναφέρονται",
   "privacy.direct.short": "Προσωπικά",
@@ -366,7 +367,7 @@
   "upload_area.title": "Drag & drop για να ανεβάσεις",
   "upload_button.label": "Πρόσθεσε πολυμέσα (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Υπέρβαση ορίου μεγέθους ανεβασμένων αρχείων.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.",
   "upload_form.description": "Περιέγραψε για όσους & όσες έχουν προβλήματα όρασης",
   "upload_form.focus": "Αλλαγή προεπισκόπησης",
   "upload_form.undo": "Διαγραφή",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index ed0113650..740f2bfae 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Simboloj",
   "emoji_button.travel": "Vojaĝoj kaj lokoj",
   "empty_column.account_timeline": "Neniu mesaĝo ĉi tie!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.",
   "empty_column.community": "La loka tempolinio estas malplena. Skribu ion por plenigi ĝin!",
   "empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 97d03d840..158a116d0 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Símbolos",
   "emoji_button.travel": "Viajes y lugares",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
   "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
   "empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 17f84dc27..bd26ae232 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Sinboloak",
   "emoji_button.travel": "Bidaiak eta tokiak",
   "empty_column.account_timeline": "Ez dago toot-ik hemen!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Ez duzu erabiltzailerik blokeatu oraindik.",
   "empty_column.community": "Denbora-lerro lokala hutsik dago. Idatzi zerbait publikoki pilota biraka jartzeko!",
   "empty_column.direct": "Ez duzu mezu zuzenik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 91a27e366..6890fa971 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "نمادها",
   "emoji_button.travel": "سفر و مکان",
   "empty_column.account_timeline": "هیچ بوقی این‌جا نیست!",
+  "empty_column.account_unavailable": "نمایهٔ ناموجود",
   "empty_column.blocks": "شما هنوز هیچ کسی را مسدود نکرده‌اید.",
   "empty_column.community": "فهرست نوشته‌های محلی خالی است. چیزی بنویسید تا چرخش بچرخد!",
   "empty_column.direct": "شما هیچ پیغام مستقیمی ندارید. اگر چنین پیغامی بگیرید یا بفرستید این‌جا نمایش خواهد یافت.",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 68381f6b3..825cd4a75 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symbolit",
   "emoji_button.travel": "Matkailu",
   "empty_column.account_timeline": "Ei ole 'toots' täällä!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Et ole vielä estänyt yhtään käyttäjää.",
   "empty_column.community": "Paikallinen aikajana on tyhjä. Homma lähtee käyntiin, kun kirjoitat jotain julkista!",
   "empty_column.direct": "Sinulla ei ole vielä yhtään viestiä yksittäiselle käyttäjälle. Kun lähetät tai vastaanotat sellaisen, se näkyy täällä.",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 4d7451248..58f3ce147 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -71,10 +71,10 @@
   "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos pouets privés.",
   "compose_form.lock_disclaimer.lock": "verrouillé",
   "compose_form.placeholder": "Qu’avez-vous en tête ?",
-  "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
+  "compose_form.poll.add_option": "Ajouter un choix",
+  "compose_form.poll.duration": "Durée du sondage",
+  "compose_form.poll.option_placeholder": "Choix {number}",
+  "compose_form.poll.remove_option": "Supprimer ce choix",
   "compose_form.publish": "Pouet",
   "compose_form.publish_loud": "{publish} !",
   "compose_form.sensitive.marked": "Média marqué comme sensible",
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symboles",
   "emoji_button.travel": "Lieux & Voyages",
   "empty_column.account_timeline": "Aucun pouet ici !",
+  "empty_column.account_unavailable": "Profil non disponible",
   "empty_column.blocks": "Vous n’avez bloqué aucun·e utilisateur·rice pour le moment.",
   "empty_column.community": "Le fil public local est vide. Écrivez donc quelque chose pour le remplir !",
   "empty_column.direct": "Vous n’avez pas encore de messages directs. Lorsque vous en enverrez ou recevrez un, il s’affichera ici.",
@@ -154,8 +155,8 @@
   "home.column_settings.basic": "Basique",
   "home.column_settings.show_reblogs": "Afficher les partages",
   "home.column_settings.show_replies": "Afficher les réponses",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+  "intervals.full.days": "{number, plural, one {# jour} other {# jours}}",
+  "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
   "introduction.federation.action": "Suivant",
   "introduction.federation.federated.headline": "Fil public global",
@@ -246,7 +247,7 @@
   "notification.favourite": "{name} a ajouté à ses favoris :",
   "notification.follow": "{name} vous suit",
   "notification.mention": "{name} vous a mentionné :",
-  "notification.poll": "A poll you have voted in has ended",
+  "notification.poll": "Un sondage auquel vous avez participé vient de se terminer",
   "notification.reblog": "{name} a partagé votre statut :",
   "notifications.clear": "Nettoyer les notifications",
   "notifications.clear_confirmation": "Voulez-vous vraiment supprimer toutes vos notifications ?",
@@ -257,7 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Afficher",
   "notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e·s :",
   "notifications.column_settings.mention": "Mentions :",
-  "notifications.column_settings.poll": "Poll results:",
+  "notifications.column_settings.poll": "Résultats du sondage :",
   "notifications.column_settings.push": "Notifications",
   "notifications.column_settings.reblog": "Partages :",
   "notifications.column_settings.show": "Afficher dans la colonne",
@@ -267,14 +268,14 @@
   "notifications.filter.favourites": "Favoris",
   "notifications.filter.follows": "Abonné·e·s",
   "notifications.filter.mentions": "Mentions",
-  "notifications.filter.polls": "Poll results",
+  "notifications.filter.polls": "Résultats des sondages",
   "notifications.group": "{count} notifications",
   "poll.closed": "Fermé",
   "poll.refresh": "Actualiser",
   "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
   "poll.vote": "Voter",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Ajouter un sondage",
+  "poll_button.remove_poll": "Supprimer le sondage",
   "privacy.change": "Ajuster la confidentialité du message",
   "privacy.direct.long": "N’envoyer qu’aux personnes mentionnées",
   "privacy.direct.short": "Direct",
@@ -366,7 +367,7 @@
   "upload_area.title": "Glissez et déposez pour envoyer",
   "upload_button.label": "Joindre un média (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Taille maximale d'envoi de fichier dépassée.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.poll": "L'envoi de fichiers n'est pas autorisé avec les sondages.",
   "upload_form.description": "Décrire pour les malvoyant·e·s",
   "upload_form.focus": "Modifier l’aperçu",
   "upload_form.undo": "Supprimer",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 3011e7d07..723328ab4 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Símbolos",
   "emoji_button.travel": "Viaxes e Lugares",
   "empty_column.account_timeline": "Sen toots por aquí!",
+  "empty_column.account_unavailable": "Perfil non dispoñible",
   "empty_column.blocks": "Non bloqueou ningunha usuaria polo de agora.",
   "empty_column.community": "A liña temporal local está baldeira. Escriba algo de xeito público para que rule!",
   "empty_column.direct": "Aínda non ten mensaxes directas. Cando envíe ou reciba unha, aparecerá aquí.",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index c136c111f..c9228cffd 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "סמלים",
   "emoji_button.travel": "טיולים ואתרים",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "טור הסביבה ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 86bd01a79..55a4ec4ee 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Simboli",
   "emoji_button.travel": "Putovanja & Mjesta",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "Lokalni timeline je prazan. Napiši nešto javno kako bi pokrenuo stvari!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 507e04400..c5b0831c3 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Szimbólumok",
   "emoji_button.travel": "Utazás és Helyek",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "A helyi idővonal üres. Írj egy publikus stástuszt, hogy elindítsd a labdát!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index a4c8bffba..c3971b09e 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Նշաններ",
   "emoji_button.travel": "Ուղեւորություն եւ տեղանքներ",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "Տեղական հոսքը դատա՛րկ է։ Հրապարակային մի բան գրիր շարժիչը խոդ տալու համար։",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index 5319705dc..c4610c330 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Simbol",
   "emoji_button.travel": "Tempat Wisata",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 300bc4484..dcdae5771 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symbols",
   "emoji_button.travel": "Travel & Places",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "La lokala tempolineo esas vakua. Skribez ulo publike por iniciar la agiveso!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index d70a88dbb..792204830 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Simboli",
   "emoji_button.travel": "Viaggi e luoghi",
   "empty_column.account_timeline": "Non ci sono toot qui!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Non hai ancora bloccato nessun utente.",
   "empty_column.community": "La timeline locale è vuota. Condividi qualcosa pubblicamente per dare inizio alla festa!",
   "empty_column.direct": "Non hai ancora nessun messaggio diretto. Quando ne manderai o riceverai qualcuno, apparirà qui.",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index fa1d823d0..ac983a546 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "სიმბოლოები",
   "emoji_button.travel": "მოგზაურობა და ადგილები",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "ლოკალური თაიმლაინი ცარიელია. დაწერეთ რაიმე ღიად ან ქენით რაიმე სხვა!",
   "empty_column.direct": "ჯერ პირდაპირი წერილები არ გაქვთ. როდესაც მიიღებთ ან გააგზავნით, გამოჩნდება აქ.",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index 12cdf25c9..ee7bf5d6e 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Таңбалар",
   "emoji_button.travel": "Саяхат",
   "empty_column.account_timeline": "Жазба жоқ ешқандай!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Ешкімді бұғаттамағансыз.",
   "empty_column.community": "Жергілікті желі бос. Сіз бастап жазыңыз!",
   "empty_column.direct": "Әзірше дым хат жоқ. Өзіңіз жазып көріңіз алдымен.",
@@ -246,7 +247,7 @@
   "notification.favourite": "{name} жазбаңызды таңдаулыға қосты",
   "notification.follow": "{name} сізге жазылды",
   "notification.mention": "{name} сізді атап өтті",
-  "notification.poll": "A poll you have voted in has ended",
+  "notification.poll": "Бұл сауалнаманың мерзімі аяқталыпты",
   "notification.reblog": "{name} жазбаңызды бөлісті",
   "notifications.clear": "Ескертпелерді тазарт",
   "notifications.clear_confirmation": "Шынымен барлық ескертпелерді өшіресіз бе?",
@@ -257,7 +258,7 @@
   "notifications.column_settings.filter_bar.show": "Көрсету",
   "notifications.column_settings.follow": "Жаңа оқырмандар:",
   "notifications.column_settings.mention": "Аталымдар:",
-  "notifications.column_settings.poll": "Poll results:",
+  "notifications.column_settings.poll": "Нәтижелері:",
   "notifications.column_settings.push": "Push ескертпелер",
   "notifications.column_settings.reblog": "Бөлісулер:",
   "notifications.column_settings.show": "Бағанда көрсет",
@@ -267,7 +268,7 @@
   "notifications.filter.favourites": "Таңдаулылар",
   "notifications.filter.follows": "Жазылулар",
   "notifications.filter.mentions": "Аталымдар",
-  "notifications.filter.polls": "Poll results",
+  "notifications.filter.polls": "Сауалнама нәтижелері",
   "notifications.group": "{count} ескертпе",
   "poll.closed": "Жабық",
   "poll.refresh": "Жаңарту",
@@ -366,7 +367,7 @@
   "upload_area.title": "Жүктеу үшін сүйреп әкеліңіз",
   "upload_button.label": "Медиа қосу (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Файл жүктеу лимитінен асып кеттіңіз.",
-  "upload_error.poll": "Сауалнамамен бірге файл жүктеуге болмайды",
+  "upload_error.poll": "Сауалнамамен бірге файл жүктеуге болмайды.",
   "upload_form.description": "Көру қабілеті нашар адамдар үшін сипаттаңыз",
   "upload_form.focus": "Превьюді өзгерту",
   "upload_form.undo": "Өшіру",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index 0fa0c4fde..ac3342699 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Simboli",
   "emoji_button.travel": "Ceļošana & Vietas",
   "empty_column.account_timeline": "Šeit ziņojumu nav!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Tu neesi vēl nevienu bloķējis.",
   "empty_column.community": "Lokālā laika līnija ir tukša. :/ Ieraksti kaut ko lai sākas rosība!",
   "empty_column.direct": "Tev nav privāto ziņu. Tiklīdz saņemsi tās šeit parādīsies.",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index eedd4c6f3..220cc86f9 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symbols",
   "emoji_button.travel": "Travel & Places",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.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.",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index cac676c7b..5fb445209 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symbolen",
   "emoji_button.travel": "Reizen en plekken",
   "empty_column.account_timeline": "Hier zijn geen toots!",
+  "empty_column.account_unavailable": "Profiel is niet beschikbaar",
   "empty_column.blocks": "Jij hebt nog geen enkele gebruiker geblokkeerd.",
   "empty_column.community": "De lokale tijdlijn is nog leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!",
   "empty_column.direct": "Je hebt nog geen directe berichten. Wanneer je er een verzend of ontvangt, zijn deze hier te zien.",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 9556c5ad8..fc2c3c573 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symboler",
   "emoji_button.travel": "Reise & steder",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "Den lokale tidslinjen er tom. Skriv noe offentlig for å få snøballen til å rulle!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index c9d896f5b..4dfb9904e 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -117,7 +117,6 @@
   "emoji_button.symbols": "Simbòls",
   "emoji_button.travel": "Viatges & lòcs",
   "empty_column.account_timeline": "Cap de tuts aquí !",
-  "empty_column.account_timeline_blocked": "Sètz blocat",
   "empty_column.account_unavailable": "Perfil pas disponible",
   "empty_column.blocks": "Avètz pas blocat degun pel moment.",
   "empty_column.community": "Lo flux public local es void. Escrivètz quicòm per lo garnir !",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 505f35286..fce97f00e 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -121,7 +121,7 @@
   "emoji_button.symbols": "Symbole",
   "emoji_button.travel": "Podróże i miejsca",
   "empty_column.account_timeline": "Brak wpisów tutaj!",
-  "empty_column.account_timeline_blocked": "Jesteś zablokowany(-a)",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Nie zablokowałeś(-aś) jeszcze żadnego użytkownika.",
   "empty_column.community": "Lokalna oś czasu jest pusta. Napisz coś publicznie, aby zagaić!",
   "empty_column.direct": "Nie masz żadnych wiadomości bezpośrednich. Kiedy dostaniesz lub wyślesz jakąś, pojawi się ona tutaj.",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index c2bac0f07..5b07c2295 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Símbolos",
   "emoji_button.travel": "Viagens & Lugares",
   "empty_column.account_timeline": "Não há toots aqui!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Você ainda não bloqueou nenhum usuário.",
   "empty_column.community": "A timeline local está vazia. Escreva algo publicamente para começar!",
   "empty_column.direct": "Você não tem nenhuma mensagem direta ainda. Quando você enviar ou receber uma, as mensagens aparecerão por aqui.",
diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json
index 001a48b04..2abc3e252 100644
--- a/app/javascript/mastodon/locales/pt.json
+++ b/app/javascript/mastodon/locales/pt.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Símbolos",
   "emoji_button.travel": "Viagens & Lugares",
   "empty_column.account_timeline": "Sem publicações!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Ainda não bloqueaste qualquer utilizador.",
   "empty_column.community": "Ainda não existe conteúdo local para mostrar!",
   "empty_column.direct": "Ainda não tens qualquer mensagem directa. Quando enviares ou receberes alguma, ela irá aparecer aqui.",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 7192e10b9..c0ec77cc6 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Simboluri",
   "emoji_button.travel": "Călătorii si Locuri",
   "empty_column.account_timeline": "Nici o postare aici!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Nu ai blocat nici un utilizator incă.",
   "empty_column.community": "Fluxul local este gol. Scrie ceva public pentru a împinge bila la vale!",
   "empty_column.direct": "Nu ai nici un mesaj direct incă. Când trimiți sau primești unul, va fi afișat aici.",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 09425c32e..13f511cbf 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -1,5 +1,5 @@
 {
-  "account.add_or_remove_from_list": "Add or Remove from lists",
+  "account.add_or_remove_from_list": "Добавить или удалить из списков",
   "account.badges.bot": "Бот",
   "account.block": "Блокировать",
   "account.block_domain": "Блокировать все с {domain}",
@@ -15,8 +15,8 @@
   "account.follows.empty": "Этот пользователь ни на кого не подписан.",
   "account.follows_you": "Подписан(а) на Вас",
   "account.hide_reblogs": "Скрыть продвижения от @{name}",
-  "account.link_verified_on": "Ownership of this link was checked on {date}",
-  "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+  "account.link_verified_on": "Владение этой ссылкой было проверено {date}",
+  "account.locked_info": "Это закрытый аккаунт. Его владелец вручную одобряет подписчиков.",
   "account.media": "Медиа",
   "account.mention": "Упомянуть",
   "account.moved_to": "Ищите {name} здесь:",
@@ -71,10 +71,10 @@
   "compose_form.lock_disclaimer": "Ваш аккаунт не {locked}. Любой человек может подписаться на Вас и просматривать посты для подписчиков.",
   "compose_form.lock_disclaimer.lock": "закрыт",
   "compose_form.placeholder": "О чем Вы думаете?",
-  "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
+  "compose_form.poll.add_option": "Добавить",
+  "compose_form.poll.duration": "Длительность опроса",
+  "compose_form.poll.option_placeholder": "Вариант {number}",
+  "compose_form.poll.remove_option": "Удалить этот вариант",
   "compose_form.publish": "Трубить",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.marked": "Медиафайлы не отмечены как чувствительные",
@@ -83,7 +83,7 @@
   "compose_form.spoiler.unmarked": "Текст не скрыт",
   "compose_form.spoiler_placeholder": "Текст предупреждения",
   "confirmation_modal.cancel": "Отмена",
-  "confirmations.block.block_and_report": "Block & Report",
+  "confirmations.block.block_and_report": "Заблокировать и пожаловаться",
   "confirmations.block.confirm": "Заблокировать",
   "confirmations.block.message": "Вы уверены, что хотите заблокировать {name}?",
   "confirmations.delete.confirm": "Удалить",
@@ -96,8 +96,8 @@
   "confirmations.mute.message": "Вы уверены, что хотите заглушить {name}?",
   "confirmations.redraft.confirm": "Удалить и исправить",
   "confirmations.redraft.message": "Вы уверены, что хотите удалить этот статус и превратить в черновик? Вы потеряете все ответы, продвижения и отметки 'нравится' к нему.",
-  "confirmations.reply.confirm": "Reply",
-  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+  "confirmations.reply.confirm": "Ответить",
+  "confirmations.reply.message": "При ответе текст набираемого сообщения будет перезаписан. Продолжить?",
   "confirmations.unfollow.confirm": "Отписаться",
   "confirmations.unfollow.message": "Вы уверены, что хотите отписаться от {name}?",
   "embed.instructions": "Встройте этот статус на Вашем сайте, скопировав код внизу.",
@@ -116,7 +116,9 @@
   "emoji_button.search_results": "Результаты поиска",
   "emoji_button.symbols": "Символы",
   "emoji_button.travel": "Путешествия",
-  "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_timeline": "Статусов нет!",
+  "empty_column.account_unavailable": "Профиль недоступен",
+  "empty_column.account_timeline_blocked": "Вы заблокированы",
   "empty_column.blocks": "Вы ещё никого не заблокировали.",
   "empty_column.community": "Локальная лента пуста. Напишите что-нибудь, чтобы разогреть народ!",
   "empty_column.direct": "У Вас пока нет личных сообщений. Когда Вы начнёте их отправлять или получать, они появятся здесь.",
@@ -135,45 +137,45 @@
   "follow_request.authorize": "Авторизовать",
   "follow_request.reject": "Отказать",
   "getting_started.developers": "Для разработчиков",
-  "getting_started.directory": "Profile directory",
+  "getting_started.directory": "Каталог профилей",
   "getting_started.documentation": "Документация",
   "getting_started.heading": "Добро пожаловать",
   "getting_started.invite": "Пригласить людей",
   "getting_started.open_source_notice": "Mastodon - сервис с открытым исходным кодом. Вы можете помочь проекту или сообщить о проблемах на GitHub по адресу {github}.",
   "getting_started.security": "Безопасность",
   "getting_started.terms": "Условия использования",
-  "hashtag.column_header.tag_mode.all": "and {additional}",
-  "hashtag.column_header.tag_mode.any": "or {additional}",
-  "hashtag.column_header.tag_mode.none": "without {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
-  "hashtag.column_settings.tag_mode.all": "All of these",
-  "hashtag.column_settings.tag_mode.any": "Any of these",
-  "hashtag.column_settings.tag_mode.none": "None of these",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_header.tag_mode.all": "и {additional}",
+  "hashtag.column_header.tag_mode.any": "или {additional}",
+  "hashtag.column_header.tag_mode.none": "без {additional}",
+  "hashtag.column_settings.select.no_options_message": "Предложений не найдено",
+  "hashtag.column_settings.select.placeholder": "Введите хэштеги…",
+  "hashtag.column_settings.tag_mode.all": "Все из списка",
+  "hashtag.column_settings.tag_mode.any": "Любой из списка",
+  "hashtag.column_settings.tag_mode.none": "Ни один из списка",
+  "hashtag.column_settings.tag_toggle": "Включая дополнительные хэштеге из этой колонки",
   "home.column_settings.basic": "Основные",
   "home.column_settings.show_reblogs": "Показывать продвижения",
   "home.column_settings.show_replies": "Показывать ответы",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
-  "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
-  "introduction.federation.action": "Next",
-  "introduction.federation.federated.headline": "Federated",
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
-  "introduction.federation.home.headline": "Home",
-  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
-  "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
-  "introduction.interactions.action": "Finish tutorial!",
-  "introduction.interactions.favourite.headline": "Favourite",
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
-  "introduction.interactions.reblog.headline": "Boost",
-  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
-  "introduction.interactions.reply.headline": "Reply",
-  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
-  "introduction.welcome.headline": "First steps",
-  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
+  "intervals.full.days": "{number, plural, one {# день} few {# дня} many {# дней} other {# дней}}",
+  "intervals.full.hours": "{number, plural, one {# час} few {# часа} many {# часов} other {# часов}}",
+  "intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} many {# минут} other {# минут}}",
+  "introduction.federation.action": "Далее",
+  "introduction.federation.federated.headline": "Глобальная лента",
+  "introduction.federation.federated.text": "Публичные статусы с других серверов федеративной сети расположатся в глобальной ленте.",
+  "introduction.federation.home.headline": "Домашняя лента",
+  "introduction.federation.home.text": "Статусы от тех, на кого вы подписаны, появятся в вашей домашней ленте. Вы можете подписаться на кого угодно с любого сервера!",
+  "introduction.federation.local.headline": "Локальная лента",
+  "introduction.federation.local.text": "Публичные статусы от людей с того же сервера, что и вы, будут отображены в локальной ленте.",
+  "introduction.interactions.action": "Завершить обучение",
+  "introduction.interactions.favourite.headline": "Отметки \"нравится\"",
+  "introduction.interactions.favourite.text": "Вы можете отметить статус, чтобы вернуться к нему позже и дать знать автору, что запись вам понравилась, поставив отметку \"нравится\".",
+  "introduction.interactions.reblog.headline": "Продвижения",
+  "introduction.interactions.reblog.text": "Вы можете делиться статусами других людей, продвигая их в своём аккаунте.",
+  "introduction.interactions.reply.headline": "Ответы",
+  "introduction.interactions.reply.text": "Вы можете отвечать свои и чужие посты, образуя цепочки сообщений (обсуждения).",
+  "introduction.welcome.action": "Поехали!",
+  "introduction.welcome.headline": "Первые шаги",
+  "introduction.welcome.text": "Добро пожаловать в федеративную сеть! Уже через мгновение вы сможете отправлять сообщения и общаться со своими друзьями на любом сервере. Но этот сервер — {domain} — особенный: на нём располагается ваш профиль. Запомните его название.",
   "keyboard_shortcuts.back": "перейти назад",
   "keyboard_shortcuts.blocked": "чтобы открыть список заблокированных",
   "keyboard_shortcuts.boost": "продвинуть пост",
@@ -212,7 +214,7 @@
   "lists.account.remove": "Убрать из списка",
   "lists.delete": "Удалить список",
   "lists.edit": "Изменить список",
-  "lists.edit.submit": "Change title",
+  "lists.edit.submit": "Изменить название",
   "lists.new.create": "Новый список",
   "lists.new.title_placeholder": "Заголовок списка",
   "lists.search": "Искать из ваших подписок",
@@ -222,7 +224,7 @@
   "missing_indicator.label": "Не найдено",
   "missing_indicator.sublabel": "Запрашиваемый ресурс не найден",
   "mute_modal.hide_notifications": "Убрать уведомления от этого пользователя?",
-  "navigation_bar.apps": "Mobile apps",
+  "navigation_bar.apps": "Мобильные приложения",
   "navigation_bar.blocks": "Список блокировки",
   "navigation_bar.community_timeline": "Локальная лента",
   "navigation_bar.compose": "Создать новый статус",
@@ -246,35 +248,35 @@
   "notification.favourite": "{name} понравился Ваш статус",
   "notification.follow": "{name} подписался(-лась) на Вас",
   "notification.mention": "{name} упомянул(а) Вас",
-  "notification.poll": "A poll you have voted in has ended",
+  "notification.poll": "Опрос, в котором вы приняли участие, завершился",
   "notification.reblog": "{name} продвинул(а) Ваш статус",
   "notifications.clear": "Очистить уведомления",
   "notifications.clear_confirmation": "Вы уверены, что хотите очистить все уведомления?",
   "notifications.column_settings.alert": "Десктопные уведомления",
   "notifications.column_settings.favourite": "Нравится:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
-  "notifications.column_settings.filter_bar.show": "Show",
+  "notifications.column_settings.filter_bar.advanced": "Отображать все категории",
+  "notifications.column_settings.filter_bar.category": "Фильтры по категориям",
+  "notifications.column_settings.filter_bar.show": "Показывать",
   "notifications.column_settings.follow": "Новые подписчики:",
   "notifications.column_settings.mention": "Упоминания:",
-  "notifications.column_settings.poll": "Poll results:",
+  "notifications.column_settings.poll": "Результаты опроса:",
   "notifications.column_settings.push": "Push-уведомления",
   "notifications.column_settings.reblog": "Продвижения:",
   "notifications.column_settings.show": "Показывать в колонке",
   "notifications.column_settings.sound": "Проигрывать звук",
-  "notifications.filter.all": "All",
-  "notifications.filter.boosts": "Boosts",
-  "notifications.filter.favourites": "Favourites",
-  "notifications.filter.follows": "Follows",
-  "notifications.filter.mentions": "Mentions",
-  "notifications.filter.polls": "Poll results",
+  "notifications.filter.all": "Все",
+  "notifications.filter.boosts": "Продвижения",
+  "notifications.filter.favourites": "Отметки \"нравится\"",
+  "notifications.filter.follows": "Новые подписчики",
+  "notifications.filter.mentions": "Упоминания",
+  "notifications.filter.polls": "Результаты опросов",
   "notifications.group": "{count} уведомл.",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
+  "poll.closed": "Завершён",
+  "poll.refresh": "Обновить",
+  "poll.total_votes": "{count, plural, one {# голос} few {# голоса} many {# голосов} other {# голосов}}",
+  "poll.vote": "Голосовать",
+  "poll_button.add_poll": "Добавить опрос",
+  "poll_button.remove_poll": "Удалить опрос",
   "privacy.change": "Изменить видимость статуса",
   "privacy.direct.long": "Показать только упомянутым",
   "privacy.direct.short": "Направленный",
@@ -292,12 +294,12 @@
   "relative_time.minutes": "{number}м",
   "relative_time.seconds": "{number}с",
   "reply_indicator.cancel": "Отмена",
-  "report.forward": "Переслать для {target}",
+  "report.forward": "Переслать в {target}",
   "report.forward_hint": "Этот аккаунт расположен на другом сервере. Отправить туда анонимную копию Вашей жалобы?",
   "report.hint": "Жалоба будет отправлена модераторам Вашего сервера. Вы также можете указать подробную причину жалобы ниже:",
   "report.placeholder": "Комментарий",
   "report.submit": "Отправить",
-  "report.target": "Жалуемся на {target}",
+  "report.target": "Жалоба на {target}",
   "search.placeholder": "Поиск",
   "search_popout.search_format": "Продвинутый формат поиска",
   "search_popout.tips.full_text": "Возвращает посты, которые Вы написали, отметили как 'избранное', продвинули или в которых были упомянуты, а также содержащие юзернейм, имя и хэштеги.",
@@ -309,12 +311,12 @@
   "search_results.hashtags": "Хэштеги",
   "search_results.statuses": "Посты",
   "search_results.total": "{count, number} {count, plural, one {результат} few {результата} many {результатов} other {результатов}}",
-  "status.admin_account": "Open moderation interface for @{name}",
-  "status.admin_status": "Open this status in the moderation interface",
+  "status.admin_account": "Открыть интерфейс модератора для @{name}",
+  "status.admin_status": "Открыть этот статус в интерфейсе модератора",
   "status.block": "Заблокировать @{name}",
   "status.cancel_reblog_private": "Не продвигать",
   "status.cannot_reblog": "Этот статус не может быть продвинут",
-  "status.copy": "Copy link to status",
+  "status.copy": "Копировать ссылку на запись",
   "status.delete": "Удалить",
   "status.detailed_status": "Подробный просмотр обсуждения",
   "status.direct": "Написать @{name}",
@@ -326,11 +328,11 @@
   "status.mention": "Упомянуть @{name}",
   "status.more": "Больше",
   "status.mute": "Заглушить @{name}",
-  "status.mute_conversation": "Заглушить всю цепочку",
+  "status.mute_conversation": "Заглушить всё обсуждение",
   "status.open": "Развернуть статус",
   "status.pin": "Закрепить в профиле",
   "status.pinned": "Закреплённый статус",
-  "status.read_more": "Read more",
+  "status.read_more": "Ещё",
   "status.reblog": "Продвинуть",
   "status.reblog_private": "Продвинуть для своей аудитории",
   "status.reblogged_by": "{name} продвинул(а)",
@@ -346,27 +348,27 @@
   "status.show_less_all": "Свернуть для всех",
   "status.show_more": "Развернуть",
   "status.show_more_all": "Развернуть для всех",
-  "status.show_thread": "Show thread",
-  "status.unmute_conversation": "Снять глушение с треда",
+  "status.show_thread": "Показать обсуждение",
+  "status.unmute_conversation": "Снять глушение с обсуждения",
   "status.unpin": "Открепить от профиля",
-  "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
+  "suggestions.dismiss": "Удалить предложение",
+  "suggestions.header": "Вам может быть интересно…",
   "tabs_bar.federated_timeline": "Глобальная",
   "tabs_bar.home": "Главная",
   "tabs_bar.local_timeline": "Локальная",
   "tabs_bar.notifications": "Уведомления",
   "tabs_bar.search": "Поиск",
-  "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
-  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
-  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
-  "time_remaining.moments": "Moments remaining",
-  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
+  "time_remaining.days": "{number, plural, one {остался # день} few {осталось # дня} many {осталось # дней} other {осталось # дней}}",
+  "time_remaining.hours": "{number, plural, one {остался # час} few {осталось # часа} many {осталось # часов} other {осталось # часов}}",
+  "time_remaining.minutes": "{number, plural, one {осталась # минута} few {осталось # минуты} many {осталось # минут} other {осталось # минут}}",
+  "time_remaining.moments": "остались считанные мгновения",
+  "time_remaining.seconds": "{number, plural, one {осталась # секунду} few {осталось # секунды} many {осталось # секунд} other {осталось # секунд}}",
   "trends.count_by_accounts": "Популярно у {count} {rawCount, plural, one {человека} few {человек} many {человек} other {человек}}",
   "ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.",
   "upload_area.title": "Перетащите сюда, чтобы загрузить",
   "upload_button.label": "Добавить медиаконтент",
-  "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
+  "upload_error.limit": "Достигнут лимит загруженных файлов.",
+  "upload_error.poll": "К опросам нельзя прикреплять файлы.",
   "upload_form.description": "Описать для людей с нарушениями зрения",
   "upload_form.focus": "Обрезать",
   "upload_form.undo": "Отменить",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 52c79c0bb..c4fcb9f18 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symboly",
   "emoji_button.travel": "Cestovanie a miesta",
   "empty_column.account_timeline": "Niesú tu žiadne príspevky!",
+  "empty_column.account_unavailable": "Profil nedostupný",
   "empty_column.blocks": "Ešte si nikoho nezablokoval/a.",
   "empty_column.community": "Lokálna časová os je prázdna. Napíšte niečo, aby sa to tu začalo hýbať!",
   "empty_column.direct": "Ešte nemáš žiadne súkromné správy. Keď nejakú pošleš, alebo dostaneš, ukáže sa tu.",
@@ -159,8 +160,8 @@
   "intervals.full.minutes": "{number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}",
   "introduction.federation.action": "Ďalej",
   "introduction.federation.federated.headline": "Federovaná",
-  "introduction.federation.federated.text": "Verejné príspevky z ostatných serverov vo fediverse budú zobrazenie vo federovanej časovej osi.",
-  "introduction.federation.home.headline": "Domov",
+  "introduction.federation.federated.text": "Verejné príspevky z ostatných serverov vo fediverse budú zobrazené vo federovanej časovej osi.",
+  "introduction.federation.home.headline": "Domovská",
   "introduction.federation.home.text": "Príspevky od ľudí ktorých následuješ sa zobrazia na tvojej domovskej nástenke. Môžeš následovať hocikoho na ktoromkoľvek serveri!",
   "introduction.federation.local.headline": "Miestna",
   "introduction.federation.local.text": "Verejné príspevky od ľudí v rámci toho istého serveru na akom si aj ty, budú zobrazované na miestnej časovej osi.",
@@ -177,61 +178,61 @@
   "keyboard_shortcuts.back": "dostať sa naspäť",
   "keyboard_shortcuts.blocked": "otvor zoznam blokovaných užívateľov",
   "keyboard_shortcuts.boost": "vyzdvihnúť",
-  "keyboard_shortcuts.column": "zamerať sa na status v jednom zo stĺpcov",
-  "keyboard_shortcuts.compose": "zamerať sa na písaciu plochu",
+  "keyboard_shortcuts.column": "zameraj sa na príspevok v jednom zo stĺpcov",
+  "keyboard_shortcuts.compose": "zameraj sa na písaciu plochu",
   "keyboard_shortcuts.description": "Popis",
   "keyboard_shortcuts.direct": "otvor panel súkromných správ",
   "keyboard_shortcuts.down": "posunúť sa dole v zozname",
   "keyboard_shortcuts.enter": "otvoriť správu",
-  "keyboard_shortcuts.favourite": "pridať do obľúbených",
+  "keyboard_shortcuts.favourite": "pridaj do obľúbených",
   "keyboard_shortcuts.favourites": "otvor zoznam obľúbených",
   "keyboard_shortcuts.federated": "otvor federovanú časovú os",
   "keyboard_shortcuts.heading": "Klávesové skratky",
   "keyboard_shortcuts.home": "otvor domácu časovú os",
   "keyboard_shortcuts.hotkey": "Klávesa",
-  "keyboard_shortcuts.legend": "zobraziť túto legendu",
+  "keyboard_shortcuts.legend": "zobraz túto legendu",
   "keyboard_shortcuts.local": "otvor miestnu časovú os",
-  "keyboard_shortcuts.mention": "spomenúť autora",
+  "keyboard_shortcuts.mention": "spomeň autora",
   "keyboard_shortcuts.muted": "otvor zoznam stíšených užívateľov",
   "keyboard_shortcuts.my_profile": "otvor svoj profil",
   "keyboard_shortcuts.notifications": "otvor panel oboznámení",
   "keyboard_shortcuts.pinned": "otvor zoznam pripnutých príspevkov",
   "keyboard_shortcuts.profile": "otvor autorov profil",
   "keyboard_shortcuts.reply": "odpovedať",
-  "keyboard_shortcuts.requests": "otvor zoznam požiadavok k následovaniu",
-  "keyboard_shortcuts.search": "zamerať sa na vyhľadávanie",
+  "keyboard_shortcuts.requests": "otvor zoznam žiadostí o sledovanie",
+  "keyboard_shortcuts.search": "zameraj sa na vyhľadávanie",
   "keyboard_shortcuts.start": "otvor panel ''začíname''",
   "keyboard_shortcuts.toggle_hidden": "ukáž/skry text za CW",
-  "keyboard_shortcuts.toot": "začať úplne novú hlášku",
-  "keyboard_shortcuts.unfocus": "nesústrediť sa na písaciu plochu, alebo hľadanie",
-  "keyboard_shortcuts.up": "posunúť sa vyššie v zozname",
-  "lightbox.close": "Zatvoriť",
+  "keyboard_shortcuts.toot": "začni úplne nový príspevok",
+  "keyboard_shortcuts.unfocus": "nesústreď sa na písaciu plochu, alebo hľadanie",
+  "keyboard_shortcuts.up": "posuň sa vyššie v zozname",
+  "lightbox.close": "Zatvor",
   "lightbox.next": "Ďalšie",
   "lightbox.previous": "Predchádzajúci",
-  "lists.account.add": "Pridať do zoznamu",
-  "lists.account.remove": "Odobrať zo zoznamu",
+  "lists.account.add": "Pridaj do zoznamu",
+  "lists.account.remove": "Odober zo zoznamu",
   "lists.delete": "Vymaž list",
   "lists.edit": "Uprav zoznam",
   "lists.edit.submit": "Zmeň názov",
   "lists.new.create": "Pridaj zoznam",
   "lists.new.title_placeholder": "Názov nového zoznamu",
-  "lists.search": "Vyhľadávajte medzi užívateľmi ktorých sledujete",
+  "lists.search": "Vyhľadávaj medzi užívateľmi, ktorých sleduješ",
   "lists.subheading": "Tvoje zoznamy",
   "loading_indicator.label": "Načítam...",
-  "media_gallery.toggle_visible": "Zapnúť/Vypnúť viditeľnosť",
+  "media_gallery.toggle_visible": "Zapni/Vypni viditeľnosť",
   "missing_indicator.label": "Nenájdené",
   "missing_indicator.sublabel": "Tento zdroj sa ešte nepodarilo nájsť",
-  "mute_modal.hide_notifications": "Skryť oznámenia od tohto používateľa?",
-  "navigation_bar.apps": "Mobilné aplikácie",
+  "mute_modal.hide_notifications": "Skry oznámenia od tohto používateľa?",
+  "navigation_bar.apps": "Aplikácie",
   "navigation_bar.blocks": "Blokovaní užívatelia",
-  "navigation_bar.community_timeline": "Lokálna časová os",
+  "navigation_bar.community_timeline": "Miestna časová os",
   "navigation_bar.compose": "Napíš nový príspevok",
   "navigation_bar.direct": "Súkromné správy",
   "navigation_bar.discover": "Objavuj",
   "navigation_bar.domain_blocks": "Skryté domény",
-  "navigation_bar.edit_profile": "Upraviť profil",
+  "navigation_bar.edit_profile": "Uprav profil",
   "navigation_bar.favourites": "Obľúbené",
-  "navigation_bar.filters": "Utĺmené slová",
+  "navigation_bar.filters": "Filtrované slová",
   "navigation_bar.follow_requests": "Žiadosti o sledovanie",
   "navigation_bar.info": "O tomto serveri",
   "navigation_bar.keyboard_shortcuts": "Klávesové skratky",
@@ -239,7 +240,7 @@
   "navigation_bar.logout": "Odhlás sa",
   "navigation_bar.mutes": "Ignorovaní užívatelia",
   "navigation_bar.personal": "Osobné",
-  "navigation_bar.pins": "Pripnuté tooty",
+  "navigation_bar.pins": "Pripnuté príspevky",
   "navigation_bar.preferences": "Voľby",
   "navigation_bar.public_timeline": "Federovaná časová os",
   "navigation_bar.security": "Zabezbečenie",
@@ -247,21 +248,21 @@
   "notification.follow": "{name} ťa začal/a následovať",
   "notification.mention": "{name} ťa spomenul/a",
   "notification.poll": "Anketa v ktorej si hlasoval/a sa skončila",
-  "notification.reblog": "{name} zdieľal/a tvoj status",
-  "notifications.clear": "Vyčistiť zoznam notifikácii",
-  "notifications.clear_confirmation": "Naozaj chcete nenávratne prečistiť všetky vaše notifikácie?",
-  "notifications.column_settings.alert": "Notifikácie na ploche",
+  "notification.reblog": "{name} zdieľal/a tvoj príspevok",
+  "notifications.clear": "Vyčistiť zoznam oboznámení",
+  "notifications.clear_confirmation": "Naozaj chceš nenávratne prečistiť všetky tvoje oboznámenia?",
+  "notifications.column_settings.alert": "Oboznámenia na ploche",
   "notifications.column_settings.favourite": "Obľúbené:",
   "notifications.column_settings.filter_bar.advanced": "Zobraz všetky kategórie",
   "notifications.column_settings.filter_bar.category": "Rýchle triedenie",
   "notifications.column_settings.filter_bar.show": "Ukáž",
-  "notifications.column_settings.follow": "Noví následujúci:",
+  "notifications.column_settings.follow": "Noví sledujúci:",
   "notifications.column_settings.mention": "Zmienenia:",
   "notifications.column_settings.poll": "Výsledky ankiet:",
   "notifications.column_settings.push": "Push notifikácie",
   "notifications.column_settings.reblog": "Vyzdvihnutia:",
-  "notifications.column_settings.show": "Zobraziť v stĺpci",
-  "notifications.column_settings.sound": "Prehrať zvuk",
+  "notifications.column_settings.show": "Zobraz v stĺpci",
+  "notifications.column_settings.sound": "Prehraj zvuk",
   "notifications.filter.all": "Všetky",
   "notifications.filter.boosts": "Vyzdvihnutia",
   "notifications.filter.favourites": "Obľúbené",
@@ -276,13 +277,13 @@
   "poll_button.add_poll": "Pridaj anketu",
   "poll_button.remove_poll": "Odstráň anketu",
   "privacy.change": "Uprav súkromie príspevku",
-  "privacy.direct.long": "Pošli iba spomenutým používateľom",
+  "privacy.direct.long": "Pošli iba spomenutým užívateľom",
   "privacy.direct.short": "Súkromne",
   "privacy.private.long": "Pošli iba následovateľom",
   "privacy.private.short": "Iba pre sledujúcich",
-  "privacy.public.long": "Poslať všetkým verejne",
+  "privacy.public.long": "Pošli všetkým verejne",
   "privacy.public.short": "Verejné",
-  "privacy.unlisted.long": "Neposielať do verejných časových osí",
+  "privacy.unlisted.long": "Neposielaj do verejných časových osí",
   "privacy.unlisted.short": "Verejne, ale nezobraziť v osi",
   "regeneration_indicator.label": "Načítava sa…",
   "regeneration_indicator.sublabel": "Vaša domovská nástenka sa pripravuje!",
@@ -293,11 +294,11 @@
   "relative_time.seconds": "{number}s",
   "reply_indicator.cancel": "Zrušiť",
   "report.forward": "Posuň ku {target}",
-  "report.forward_hint": "Tento účet je z iného serveru. Chceš poslať anonymnú kópiu reportu aj tam?",
+  "report.forward_hint": "Tento účet je z iného serveru. Chceš poslať anonymnú kópiu hlásenia aj tam?",
   "report.hint": "Toto nahlásenie bude zaslané správcom tvojho servera. Môžeš napísať odvôvodnenie, prečo nahlasuješ tento účet:",
   "report.placeholder": "Ďalšie komentáre",
-  "report.submit": "Poslať",
-  "report.target": "Nahlásenie {target}",
+  "report.submit": "Odošli",
+  "report.target": "Nahlás {target}",
   "search.placeholder": "Hľadaj",
   "search_popout.search_format": "Pokročilé vyhľadávanie",
   "search_popout.tips.full_text": "Vráti jednoduchý textový výpis príspevkov ktoré si napísal/a, ktoré si obľúbil/a, povýšil/a, alebo aj tých, v ktorých si bol/a spomenutý/á, a potom všetky zadaniu odpovedajúce prezívky, mená a haštagy.",
@@ -327,18 +328,18 @@
   "status.more": "Viac",
   "status.mute": "Utíš @{name}",
   "status.mute_conversation": "Ignoruj konverzáciu",
-  "status.open": "Otvoriť tento status",
+  "status.open": "Otvor tento príspevok",
   "status.pin": "Pripni na profil",
   "status.pinned": "Pripnutý príspevok",
   "status.read_more": "Čítaj ďalej",
-  "status.reblog": "Povýšiť",
+  "status.reblog": "Vyzdvihni",
   "status.reblog_private": "Vyzdvihni k pôvodnému publiku",
   "status.reblogged_by": "{name} povýšil/a",
-  "status.reblogs.empty": "Nikto ešte nepovýšil tento príspevok. Keď tak niekto urobí, bude to zobrazené práve tu.",
+  "status.reblogs.empty": "Nikto ešte nevyzdvihol tento príspevok. Keď tak niekto urobí, bude to zobrazené práve tu.",
   "status.redraft": "Vymaž a prepíš",
   "status.reply": "Odpovedať",
-  "status.replyAll": "Odpovedať na diskusiu",
-  "status.report": "Nahlásiť @{name}",
+  "status.replyAll": "Odpovedz na diskusiu",
+  "status.report": "Nahlás @{name}",
   "status.sensitive_toggle": "Klikni pre zobrazenie",
   "status.sensitive_warning": "Chúlostivý obsah",
   "status.share": "Zdieľaj",
@@ -352,31 +353,31 @@
   "suggestions.dismiss": "Zavrhni návrh",
   "suggestions.header": "Mohlo by ťa zaujímať…",
   "tabs_bar.federated_timeline": "Federovaná",
-  "tabs_bar.home": "Domov",
+  "tabs_bar.home": "Domovská",
   "tabs_bar.local_timeline": "Miestna",
   "tabs_bar.notifications": "Oboznámenia",
   "tabs_bar.search": "Hľadaj",
-  "time_remaining.days": "Zostáva {number, plural, one {# deň} few {# dní} many {# dni} other {# dni}}",
-  "time_remaining.hours": "Zostáva {number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodiny}}",
-  "time_remaining.minutes": "Zostáva {number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}",
+  "time_remaining.days": "Ostáva {number, plural, one {# deň} few {# dní} many {# dni} other {# dni}}",
+  "time_remaining.hours": "Ostáva {number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodiny}}",
+  "time_remaining.minutes": "Ostáva {number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}",
   "time_remaining.moments": "Ostáva už iba chviľka",
-  "time_remaining.seconds": "Zostáva {number, plural, one {# sekunda} few {# sekúnd} many {# sekúnd} other {# sekundy}}",
+  "time_remaining.seconds": "Ostáva {number, plural, one {# sekunda} few {# sekúnd} many {# sekúnd} other {# sekundy}}",
   "trends.count_by_accounts": "{count} {rawCount, plural, one {človek vraví} other {ľudia vravia}}",
   "ui.beforeunload": "Čo máš rozpísané sa stratí, ak opustíš Mastodon.",
   "upload_area.title": "Pretiahni a pusť pre nahratie",
-  "upload_button.label": "Pridať médiálny súbor (JPEG, PNG, GIF, WebM, MP4, MOV)",
+  "upload_button.label": "Pridaj médiálny súbor (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Limit pre nahrávanie súborov bol prekročený.",
-  "upload_error.poll": "Nahrávanie súborov pri anketách nieje dovolené.",
+  "upload_error.poll": "Nahrávanie súborov pri anketách nieje možné.",
   "upload_form.description": "Opis pre slabo vidiacich",
   "upload_form.focus": "Pozmeň náhľad",
   "upload_form.undo": "Vymaž",
   "upload_progress.label": "Nahráva sa...",
   "video.close": "Zavri video",
-  "video.exit_fullscreen": "Vpnúť zobrazenie na celú obrazovku",
+  "video.exit_fullscreen": "Vypni zobrazenie na celú obrazovku",
   "video.expand": "Zväčši video",
-  "video.fullscreen": "Zobraziť na celú obrazovku",
-  "video.hide": "Skryť video",
-  "video.mute": "Vypnúť zvuk",
+  "video.fullscreen": "Zobraz na celú obrazovku",
+  "video.hide": "Skry video",
+  "video.mute": "Vypni zvuk",
   "video.pause": "Pauza",
   "video.play": "Prehraj",
   "video.unmute": "Zapni zvuk"
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index bef4efe0e..f7a294cfe 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Simboli",
   "emoji_button.travel": "Potovanja in Kraji",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Niste še blokirali nobenega uporabnika.",
   "empty_column.community": "Lokalna časovnica je prazna. Napišite nekaj javnega, da se bo žoga zakotalila!",
   "empty_column.direct": "Nimate še nobenih neposrednih sporočil. Ko ga pošljete ali prejmete, se prikaže tukaj.",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index b86c6e2ee..89df633cc 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Simbole",
   "emoji_button.travel": "Udhëtime & Vende",
   "empty_column.account_timeline": "S’ka mesazhe këtu!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "S’keni bllokuar ende ndonjë përdorues.",
   "empty_column.community": "Rrjedha kohore vendore është e zbrazët. Shkruani diçka publikisht që t’i hyhet valles!",
   "empty_column.direct": "S’keni ende ndonjë mesazh të drejtpërdrejt. Kur dërgoni ose merrni një të tillë, ai do të shfaqet këtu.",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index 155935306..2fc5f985a 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Simboli",
   "emoji_button.travel": "Putovanja & mesta",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "Lokalna lajna je prazna. Napišite nešto javno da lajna produva!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 1124ed8d5..2ae34adca 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Симболи",
   "emoji_button.travel": "Путовања и места",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Још увек немате блокираних корисника.",
   "empty_column.community": "Локална временска линија је празна. Напишите нешто јавно да започнете!",
   "empty_column.direct": "Још увек немате директних порука. Када пошаљете или примите једну, појавиће се овде.",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 9093637b3..71264ba52 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symboler",
   "emoji_button.travel": "Resor & Platser",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "Den lokala tidslinjen är tom. Skriv något offentligt för att få bollen att rulla!",
   "empty_column.direct": "Du har inga direktmeddelanden än. När du skickar eller tar emot kommer den att dyka upp här.",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index eedd4c6f3..220cc86f9 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Symbols",
   "emoji_button.travel": "Travel & Places",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.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.",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index c93ff63df..7e818c787 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "చిహ్నాలు",
   "emoji_button.travel": "ప్రయాణం & ప్రదేశాలు",
   "empty_column.account_timeline": "ఇక్కడ ఏ టూట్లూ లేవు!No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "మీరు ఇంకా ఏ వినియోగదారులనూ బ్లాక్ చేయలేదు.",
   "empty_column.community": "స్థానిక కాలక్రమం ఖాళీగా ఉంది. మొదలుపెట్టడానికి బహిరంగంగా ఏదో ఒకటి వ్రాయండి!",
   "empty_column.direct": "మీకు ఇంకా ఏ ప్రత్యక్ష సందేశాలు లేవు. మీరు ఒకదాన్ని పంపినప్పుడు లేదా స్వీకరించినప్పుడు, అది ఇక్కడ చూపబడుతుంది.",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index e15382402..630543ada 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -7,7 +7,7 @@
   "account.direct": "ส่งข้อความโดยตรงถึง @{name}",
   "account.domain_blocked": "ซ่อนโดเมนอยู่",
   "account.edit_profile": "แก้ไขโปรไฟล์",
-  "account.endorse": "Feature on profile",
+  "account.endorse": "แสดงให้เห็นในโปรไฟล์",
   "account.follow": "ติดตาม",
   "account.followers": "ผู้ติดตาม",
   "account.followers.empty": "ยังไม่มีใครติดตามผู้ใช้นี้",
@@ -15,7 +15,7 @@
   "account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร",
   "account.follows_you": "ติดตามคุณ",
   "account.hide_reblogs": "ซ่อนการดันจาก @{name}",
-  "account.link_verified_on": "Ownership of this link was checked on {date}",
+  "account.link_verified_on": "ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ {date}",
   "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
   "account.media": "สื่อ",
   "account.mention": "กล่าวถึง @{name}",
@@ -31,18 +31,18 @@
   "account.show_reblogs": "แสดงการดันจาก @{name}",
   "account.unblock": "เลิกปิดกั้น @{name}",
   "account.unblock_domain": "เลิกซ่อน {domain}",
-  "account.unendorse": "Don't feature on profile",
+  "account.unendorse": "ไม่แสดงให้เห็นในโปรไฟล์",
   "account.unfollow": "เลิกติดตาม",
   "account.unmute": "เลิกปิดเสียง @{name}",
   "account.unmute_notifications": "เลิกปิดเสียงการแจ้งเตือนจาก @{name}",
   "alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
   "alert.unexpected.title": "อุปส์!",
   "boost_modal.combo": "You can press {combo} to skip this next time",
-  "bundle_column_error.body": "Something went wrong while loading this component.",
+  "bundle_column_error.body": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้",
   "bundle_column_error.retry": "ลองอีกครั้ง",
   "bundle_column_error.title": "ข้อผิดพลาดเครือข่าย",
   "bundle_modal_error.close": "ปิด",
-  "bundle_modal_error.message": "Something went wrong while loading this component.",
+  "bundle_modal_error.message": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้",
   "bundle_modal_error.retry": "ลองอีกครั้ง",
   "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
   "column.community": "เส้นเวลาในเว็บ",
@@ -83,7 +83,7 @@
   "compose_form.spoiler.unmarked": "Text is not hidden",
   "compose_form.spoiler_placeholder": "เขียนคำเตือนของคุณที่นี่",
   "confirmation_modal.cancel": "ยกเลิก",
-  "confirmations.block.block_and_report": "Block & Report",
+  "confirmations.block.block_and_report": "ปิดกั้นแล้วรายงาน",
   "confirmations.block.confirm": "ปิดกั้น",
   "confirmations.block.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดกั้น {name}?",
   "confirmations.delete.confirm": "ลบ",
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "สัญลักษณ์",
   "emoji_button.travel": "การเดินทางและสถานที่",
   "empty_column.account_timeline": "ไม่มีโพสต์ที่นี่!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -141,7 +142,7 @@
   "getting_started.invite": "เชิญผู้คน",
   "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
   "getting_started.security": "ความปลอดภัย",
-  "getting_started.terms": "Terms of service",
+  "getting_started.terms": "เงื่อนไขการให้บริการ",
   "hashtag.column_header.tag_mode.all": "และ {additional}",
   "hashtag.column_header.tag_mode.any": "หรือ {additional}",
   "hashtag.column_header.tag_mode.none": "โดยไม่มี {additional}",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index ec2d34a26..26eca8239 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Semboller",
   "emoji_button.travel": "Seyahat ve Yerler",
   "empty_column.account_timeline": "Burada hiç gönderi yok!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Henüz bir kullanıcıyı engellemediniz.",
   "empty_column.community": "Yerel zaman çizelgesi boş. Daha fazla eğlence için herkese açık bir gönderi paylaşın!",
   "empty_column.direct": "Henüz doğrudan mesajınız yok. Bir tane gönderdiğinizde veya aldığınızda burada görünecektir.",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index fc1c4f5d5..51a48a2b2 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "Символи",
   "emoji_button.travel": "Подорожі",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "Локальна стрічка пуста. Напишіть щось, щоб розігріти народ!",
   "empty_column.direct": "У вас ще немає прямих повідомлень. Коли ви відправите чи отримаєте якесь, воно з'явиться тут.",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 702be0ded..f9c6b4d41 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "符号",
   "emoji_button.travel": "旅行和地点",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "本站时间轴暂时没有内容,快嘟几个来抢头香啊!",
   "empty_column.direct": "你还没有使用过私信。当你发出或者收到私信时,它会在这里显示。",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 5ea738bc9..ed448f65a 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "符號",
   "emoji_button.travel": "旅遊景物",
   "empty_column.account_timeline": "No toots here!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "You haven't blocked any users yet.",
   "empty_column.community": "本站時間軸暫時未有內容,快寫一點東西來搶頭香啊!",
   "empty_column.direct": "你沒有個人訊息。當你發出或接收個人訊息,就會在這裡出現。",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 6d33ef070..b43a0b72c 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -117,6 +117,7 @@
   "emoji_button.symbols": "符號",
   "emoji_button.travel": "旅遊與地點",
   "empty_column.account_timeline": "這裡還沒有嘟文!",
+  "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "你還沒有封鎖任何使用者。",
   "empty_column.community": "本地時間軸是空的。快公開嘟些文搶頭香啊!",
   "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。",
diff --git a/app/lib/proof_provider/keybase.rb b/app/lib/proof_provider/keybase.rb
index 628972e9d..9680b90ee 100644
--- a/app/lib/proof_provider/keybase.rb
+++ b/app/lib/proof_provider/keybase.rb
@@ -2,7 +2,7 @@
 
 class ProofProvider::Keybase
   BASE_URL = ENV.fetch('KEYBASE_BASE_URL', 'https://keybase.io')
-  DOMAIN = ENV.fetch('KEYBASE_DOMAIN', Rails.configuration.x.local_domain)
+  DOMAIN   = ENV.fetch('KEYBASE_DOMAIN', Rails.configuration.x.local_domain)
 
   class Error < StandardError; end
 
@@ -50,12 +50,20 @@ class ProofProvider::Keybase
   end
 
   def badge
-    @badge ||= ProofProvider::Keybase::Badge.new(@proof.account.username, @proof.provider_username, @proof.token)
+    @badge ||= ProofProvider::Keybase::Badge.new(@proof.account.username, @proof.provider_username, @proof.token, domain)
+  end
+
+  def verifier
+    @verifier ||= ProofProvider::Keybase::Verifier.new(@proof.account.username, @proof.provider_username, @proof.token, domain)
   end
 
   private
 
-  def verifier
-    @verifier ||= ProofProvider::Keybase::Verifier.new(@proof.account.username, @proof.provider_username, @proof.token)
+  def domain
+    if @proof.account.local?
+      DOMAIN
+    else
+      @proof.account.domain
+    end
   end
 end
diff --git a/app/lib/proof_provider/keybase/badge.rb b/app/lib/proof_provider/keybase/badge.rb
index 3aa067ecf..f587b1cc7 100644
--- a/app/lib/proof_provider/keybase/badge.rb
+++ b/app/lib/proof_provider/keybase/badge.rb
@@ -3,10 +3,11 @@
 class ProofProvider::Keybase::Badge
   include RoutingHelper
 
-  def initialize(local_username, provider_username, token)
+  def initialize(local_username, provider_username, token, domain)
     @local_username    = local_username
     @provider_username = provider_username
     @token             = token
+    @domain            = domain
   end
 
   def proof_url
@@ -18,7 +19,7 @@ class ProofProvider::Keybase::Badge
   end
 
   def icon_url
-    "#{ProofProvider::Keybase::BASE_URL}/#{@provider_username}/proof_badge/#{@token}?username=#{@local_username}&domain=#{domain}"
+    "#{ProofProvider::Keybase::BASE_URL}/#{@provider_username}/proof_badge/#{@token}?username=#{@local_username}&domain=#{@domain}"
   end
 
   def avatar_url
@@ -41,8 +42,4 @@ class ProofProvider::Keybase::Badge
   def default_avatar_url
     asset_pack_path('media/images/proof_providers/keybase.png')
   end
-
-  def domain
-    Rails.configuration.x.local_domain
-  end
 end
diff --git a/app/lib/proof_provider/keybase/verifier.rb b/app/lib/proof_provider/keybase/verifier.rb
index ab1422323..af69b1bfc 100644
--- a/app/lib/proof_provider/keybase/verifier.rb
+++ b/app/lib/proof_provider/keybase/verifier.rb
@@ -1,10 +1,11 @@
 # frozen_string_literal: true
 
 class ProofProvider::Keybase::Verifier
-  def initialize(local_username, provider_username, token)
+  def initialize(local_username, provider_username, token, domain)
     @local_username    = local_username
     @provider_username = provider_username
     @token             = token
+    @domain            = domain
   end
 
   def valid?
@@ -49,7 +50,7 @@ class ProofProvider::Keybase::Verifier
 
   def query_params
     {
-      domain: ProofProvider::Keybase::DOMAIN,
+      domain: @domain,
       kb_username: @provider_username,
       username: @local_username,
       sig_hash: @token,
diff --git a/app/lib/proof_provider/keybase/worker.rb b/app/lib/proof_provider/keybase/worker.rb
index 2872f59c1..bcdd18cc5 100644
--- a/app/lib/proof_provider/keybase/worker.rb
+++ b/app/lib/proof_provider/keybase/worker.rb
@@ -19,9 +19,8 @@ class ProofProvider::Keybase::Worker
   end
 
   def perform(proof_id)
-    proof    = proof_id.is_a?(AccountIdentityProof) ? proof_id : AccountIdentityProof.find(proof_id)
-    verifier = ProofProvider::Keybase::Verifier.new(proof.account.username, proof.provider_username, proof.token)
-    status   = verifier.status
+    proof  = proof_id.is_a?(AccountIdentityProof) ? proof_id : AccountIdentityProof.find(proof_id)
+    status = proof.provider_instance.verifier.status
 
     # If Keybase thinks the proof is valid, and it exists here in Mastodon,
     # then it should be live. Keybase just has to notice that it's here
diff --git a/app/models/account_identity_proof.rb b/app/models/account_identity_proof.rb
index 1ac234735..10b66cccf 100644
--- a/app/models/account_identity_proof.rb
+++ b/app/models/account_identity_proof.rb
@@ -18,7 +18,7 @@ class AccountIdentityProof < ApplicationRecord
   belongs_to :account
 
   validates :provider, inclusion: { in: ProofProvider::SUPPORTED_PROVIDERS }
-  validates :provider_username, format: { with: /\A[a-z0-9_]+\z/i }, length: { minimum: 2, maximum: 15 }
+  validates :provider_username, format: { with: /\A[a-z0-9_]+\z/i }, length: { minimum: 2, maximum: 30 }
   validates :provider_username, uniqueness: { scope: [:account_id, :provider] }
   validates :token, format: { with: /\A[a-f0-9]+\z/ }, length: { maximum: 66 }
 
@@ -30,12 +30,12 @@ class AccountIdentityProof < ApplicationRecord
 
   delegate :refresh!, :on_success_path, :badge, to: :provider_instance
 
-  private
-
   def provider_instance
     @provider_instance ||= ProofProvider.find(provider, self)
   end
 
+  private
+
   def queue_worker
     provider_instance.worker_class.perform_async(id)
   end
diff --git a/babel.config.js b/babel.config.js
index a506ad8ce..55efafc40 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -17,7 +17,7 @@ module.exports = (api) => {
       ['@babel/proposal-object-rest-spread', { useBuiltIns: true }],
       ['@babel/proposal-decorators', { legacy: true }],
       '@babel/proposal-class-properties',
-      ['react-intl', { messagesDir: './build/messages' }],
+      ['react-intl', { messagesDir: './build/messages/' }],
       'preval',
     ],
   };
diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml
index 19267cc4c..ce465545b 100644
--- a/config/locales/activerecord.de.yml
+++ b/config/locales/activerecord.de.yml
@@ -2,6 +2,9 @@
 de:
   activerecord:
     attributes:
+      poll:
+        expires_at: Frist
+        options: Wahlen
       status:
         owned_poll: Umfrage
     errors:
diff --git a/config/locales/activerecord.el.yml b/config/locales/activerecord.el.yml
index e396860ea..abeca78ac 100644
--- a/config/locales/activerecord.el.yml
+++ b/config/locales/activerecord.el.yml
@@ -2,6 +2,9 @@
 el:
   activerecord:
     attributes:
+      poll:
+        expires_at: Προθεσμία
+        options: Επιλογές
       status:
         owned_poll: Ψηφοφορία
     errors:
diff --git a/config/locales/activerecord.fr.yml b/config/locales/activerecord.fr.yml
index c4b04c73a..e26e02592 100644
--- a/config/locales/activerecord.fr.yml
+++ b/config/locales/activerecord.fr.yml
@@ -1,6 +1,10 @@
 ---
 fr:
   activerecord:
+    attributes:
+      poll:
+        expires_at: Date butoir
+        options: Choix
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.gl.yml b/config/locales/activerecord.gl.yml
index 65a83fbee..3792f3476 100644
--- a/config/locales/activerecord.gl.yml
+++ b/config/locales/activerecord.gl.yml
@@ -2,6 +2,9 @@
 gl:
   activerecord:
     attributes:
+      poll:
+        expires_at: Caducidade
+        options: Opcións
       status:
         owned_poll: Sondaxe
     errors:
diff --git a/config/locales/activerecord.kk.yml b/config/locales/activerecord.kk.yml
index 41d3b2525..fba2e6054 100644
--- a/config/locales/activerecord.kk.yml
+++ b/config/locales/activerecord.kk.yml
@@ -1,6 +1,10 @@
 ---
 kk:
   activerecord:
+    attributes:
+      poll:
+        expires_at: Дедлайн
+        options: Таңдаулар
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.nl.yml b/config/locales/activerecord.nl.yml
index bdb87e8e5..31348b18f 100644
--- a/config/locales/activerecord.nl.yml
+++ b/config/locales/activerecord.nl.yml
@@ -2,6 +2,9 @@
 nl:
   activerecord:
     attributes:
+      poll:
+        expires_at: Deadline
+        options: Keuzes
       status:
         owned_poll: Poll
     errors:
diff --git a/config/locales/activerecord.ru.yml b/config/locales/activerecord.ru.yml
index 2a2d62a7e..d4529428a 100644
--- a/config/locales/activerecord.ru.yml
+++ b/config/locales/activerecord.ru.yml
@@ -1,6 +1,10 @@
 ---
 ru:
   activerecord:
+    attributes:
+      poll:
+        expires_at: Крайний срок
+        options: Варианты
     errors:
       models:
         account:
diff --git a/config/locales/activerecord.sk.yml b/config/locales/activerecord.sk.yml
index bba7c66f2..9d59edd5b 100644
--- a/config/locales/activerecord.sk.yml
+++ b/config/locales/activerecord.sk.yml
@@ -2,6 +2,9 @@
 sk:
   activerecord:
     attributes:
+      poll:
+        expires_at: Uzávierka
+        options: Voľby
       status:
         owned_poll: Anketa
     errors:
@@ -13,4 +16,4 @@ sk:
         status:
           attributes:
             reblog:
-              taken: status už existuje
+              taken: príspevku už existuje
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 311e3f142..1b0d8ff6a 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -860,6 +860,8 @@ co:
     revoke_success: Sessione rivucata
     title: Sessioni
   settings:
+    account: Contu
+    account_settings: Parametri di u contu
     authorized_apps: Applicazione auturizate
     back: Ritornu nant’à Mastodon
     delete: Suppressione di u contu
@@ -869,6 +871,7 @@ co:
     featured_tags: Hashtag in vista
     identity_proofs: Prove d'identità
     import: Impurtazione
+    import_and_export: Impurtazione è spurtazione
     migrate: Migrazione di u contu
     notifications: Nutificazione
     preferences: Priferenze
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index fdb0252bd..ca456b7ef 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -138,6 +138,7 @@ cs:
       moderation_notes: Moderátorské poznámky
       most_recent_activity: Nejnovější aktivita
       most_recent_ip: Nejnovější IP
+      no_account_selected: Nebyl změněn žádný účet, neboť žádný nebyl zvolen
       no_limits_imposed: Nejsou nastavena žádná omezení
       not_subscribed: Neodebírá
       outbox_url: URL odchozí schránky
@@ -870,6 +871,9 @@ cs:
     revoke_success: Relace úspěšně zamítnuta
     title: Relace
   settings:
+    account: Účet
+    account_settings: Nastavení účtu
+    appearance: Vzhled
     authorized_apps: Autorizované aplikace
     back: Zpět na Mastodon
     delete: Smazání účtu
@@ -879,9 +883,11 @@ cs:
     featured_tags: Zvýrazněné hashtagy
     identity_proofs: Důkazy identity
     import: Import
+    import_and_export: Import a export
     migrate: Přesunutí účtu
     notifications: Oznámení
     preferences: Předvolby
+    profile: Profil
     relationships: Sledovaní a sledující
     two_factor_authentication: Dvoufázové ověřování
   statuses:
diff --git a/config/locales/de.yml b/config/locales/de.yml
index aaf1c30b2..7138b7269 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -134,6 +134,7 @@ de:
       moderation_notes: Moderationsnotizen
       most_recent_activity: Letzte Aktivität
       most_recent_ip: Letzte IP-Adresse
+      no_account_selected: Keine Konten wurden verändert, da keine ausgewählt wurden
       no_limits_imposed: Keine Limits eingesetzt
       not_subscribed: Nicht abonniert
       outbox_url: Postausgangs-URL
@@ -248,6 +249,7 @@ de:
       feature_profile_directory: Profilverzeichnis
       feature_registrations: Registrierung
       feature_relay: Föderations-Relay
+      feature_timeline_preview: Zeitleistenvorschau
       features: Eigenschaften
       hidden_service: Föderation mit versteckten Diensten
       open_reports: Offene Meldungen
@@ -652,10 +654,13 @@ de:
       keybase:
         invalid_token: Keybase-Tokens sind Hashsignaturen und müssen 66 Hexadezimalzeichen lang sein
         verification_failed: Keybase nimmt dieses Token nicht als Signatur für Keybase-Benutzer %{kb_username} an. Bitte versuche es nochmal über Keybase.
+      wrong_user: Kann keinen Beweis für %{proving} erstellen während du als %{current} angemeldet bist. Melde dich als %{proving} an und versuche es noch einmal.
     explanation_html: Hier kannst du kryptographisch deine anderen Identitäten wie dein Keybase-Profil verbinden. Dadurch können andere Leute dir verschlüsselte Nachrichten senden und dem Inhalt, den sie dir senden, vertrauen.
     i_am_html: Ich bin %{username} auf %{service}.
     identity: Identität
     inactive: Inaktiv
+    publicize_checkbox: 'Und poste das:'
+    publicize_toot: 'Es ist offiziell! Ich bin %{username} auf %{service}: %{url}'
     status: Verifizierungsstatus
     view_proof: Zeige Nachweis
   imports:
@@ -855,6 +860,9 @@ de:
     revoke_success: Sitzung erfolgreich geschlossen
     title: Sitzungen
   settings:
+    account: Konto
+    account_settings: Konto & Sicherheit
+    appearance: Bearbeiten
     authorized_apps: Autorisierte Anwendungen
     back: Zurück zu Mastodon
     delete: Konto löschen
@@ -864,9 +872,11 @@ de:
     featured_tags: Empfohlene Hashtags
     identity_proofs: Identitätsnachweise
     import: Datenimport
+    import_and_export: Importieren und Exportieren
     migrate: Konto-Umzug
     notifications: Benachrichtigungen
     preferences: Einstellungen
+    profile: Profil
     relationships: Folgende und Follower
     two_factor_authentication: Zwei-Faktor-Auth
   statuses:
diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml
index 944f9b556..2d3c86c1f 100644
--- a/config/locales/devise.fr.yml
+++ b/config/locales/devise.fr.yml
@@ -12,6 +12,7 @@ fr:
       last_attempt: Vous avez droit à une tentative avant que votre compte ne soit verrouillé.
       locked: Votre compte est verrouillé.
       not_found_in_database: "%{authentication_keys} ou mot de passe invalide."
+      pending: Votre compte est toujours en cours d'approbation.
       timeout: Votre session a expiré. Veuillez vous reconnecter pour continuer.
       unauthenticated: Vous devez vous connecter ou vous inscrire pour continuer.
       unconfirmed: Vous devez valider votre compte pour continuer.
@@ -20,6 +21,7 @@ fr:
         action: Vérifier l’adresse courriel
         action_with_app: Confirmer et retourner à %{app}
         explanation: Vous avez créé un compte sur %{host} avec cette adresse courriel. Vous êtes à un clic de l’activer. Si ce n’était pas vous, veuillez ignorer ce courriel.
+        explanation_when_pending: Vous avez demandé à vous inscrire à %{host} avec cette adresse courriel. Une fois que vous aurez confirmé cette adresse, nous étudierons votre demande. Vous ne pourrez pas vous connecté d'ici-là. Si votre demande est refusée, vos données seront supprimées du serveur, aucune action supplémentaire de votre part n'est donc requise. Si vous n'êtes pas à l'origine de cette demande, veuillez ignorer ce courriel.
         extra_html: Merci de consultez également <a href="%{terms_path}">les règles du serveur</a> et <a href="%{policy_path}">nos conditions d’utilisation</a>.
         subject: 'Mastodon : Merci de confirmer votre inscription sur %{instance}'
         title: Vérifier l’adresse courriel
@@ -60,6 +62,7 @@ fr:
       signed_up: Bienvenue ! Vous êtes connecté⋅e.
       signed_up_but_inactive: Vous êtes bien enregistré⋅e. Vous ne pouvez cependant pas vous connecter car votre compte n’est pas encore activé.
       signed_up_but_locked: Vous êtes bien enregistré⋅e. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé.
+      signed_up_but_pending: Un message avec un lien de confirmation a été envoyé à votre adresse courriel. Après avoir cliqué sur le lien, nous étudierons votre demande. Vous serez informé·e si elle a été approuvée.
       signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse courriel. Ouvrez ce lien pour activer votre compte. Veuillez vérifier votre dossier d'indésirables si vous ne recevez pas le courriel.
       update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier d'indésirables.
       updated: Votre compte a été modifié avec succès.
diff --git a/config/locales/devise.ru.yml b/config/locales/devise.ru.yml
index 2186066c9..65441f24b 100644
--- a/config/locales/devise.ru.yml
+++ b/config/locales/devise.ru.yml
@@ -3,8 +3,8 @@ ru:
   devise:
     confirmations:
       confirmed: Ваш адрес e-mail был успешно подтвержден.
-      send_instructions: Вы получите e-mail с инструкцией по подтверждению Вашего адреса e-mail в течение нескольких минут.
-      send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail с инструкцией по подтверждению Вашего адреса в течение нескольких минут.
+      send_instructions: Вы получите e-mail с инструкцией по подтверждению вашего адреса e-mail в течение нескольких минут.
+      send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail с инструкцией по подтверждению вашего адреса в течение нескольких минут.
     failure:
       already_authenticated: Вы уже авторизованы.
       inactive: Ваш аккаунт еще не активирован.
@@ -12,63 +12,67 @@ ru:
       last_attempt: У Вас есть последняя попытка, после чего вход будет заблокирован.
       locked: Ваш аккаунт заблокирован.
       not_found_in_database: Неверно введены %{authentication_keys} или пароль.
+      pending: Ваша заявка на вступление всё ещё рассматривается.
       timeout: Ваша сессия истекла. Пожалуйста, войдите снова, чтобы продолжить.
       unauthenticated: Вам необходимо войти или зарегистрироваться.
       unconfirmed: Вам необходимо подтвердить ваш адрес e-mail для продолжения.
     mailer:
       confirmation_instructions:
         action: Подтвердите e-mail адрес
+        action_with_app: Подтвердить и вернуться в %{app}
         explanation: Вы создали учётную запись на сайте %{host}, используя этот e-mail адрес. Остался лишь один шаг для активации. Если это были не вы, просто игнорируйте письмо.
+        explanation_when_pending: Вы подали заявку на %{host}, используя этот адрес e-mail. Как только вы его подтвердите, мы начнём изучать вашу заявку. До тех пор вы не сможете войти на сайт. Если ваша заявка будет отклонена, все данные будут автоматически удалены, от вас не потребуется никаких дополнительных действий. Если это были не вы, пожалуйста, проигнорируйте данное письмо.
         extra_html: Пожалуйста, ознакомьтесь <a href="%{terms_path}">правилами узла</a> and <a href="%{policy_path}">условиями пользования Сервисом</a>.
         subject: 'Mastodon: Инструкция по подтверждению на узле %{instance}'
         title: Подтвердите e-mail адрес
       email_changed:
-        explanation: 'E-mail адрес Вашей учётной записи будет изменён на:'
-        extra: Если Вы не меняли адрес e-mail, возможно кто-то получил доступ к Вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у Вас нет доступа к учётной записи.
+        explanation: 'E-mail адрес вашей учётной записи будет изменён на:'
+        extra: Если Вы не меняли адрес e-mail, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у вас нет доступа к учётной записи.
         subject: 'Mastodon: Адрес e-mail изменён'
         title: Новый адрес e-mail
       password_change:
         explanation: Пароль Вашей учётной записи был изменён.
-        extra: Если Вы не меняли пароль, возможно кто-то получил доступ к Вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у Вас нет доступа к учётной записи.
+        extra: Если Вы не меняли пароль, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у вас нет доступа к учётной записи.
         subject: 'Mastodon: Пароль изменен'
         title: Пароль изменён
       reconfirmation_instructions:
         explanation: Подтвердите новый адрес для смены e-mail.
-        extra: Если смену e-mail инициировали не Вы, пожалуйста, игнорируйте это письмо. Адрес e-mail для учётной записи Mastodon не будет изменён, пока Вы не перейдёте по ссылке выше.
+        extra: Если смену e-mail инициировали не вы, пожалуйста, игнорируйте это письмо. Адрес e-mail для учётной записи Mastodon не будет изменён, пока вы не перейдёте по ссылке выше.
         subject: 'Mastodon: Подтверждение e-mail для узла %{instance}'
         title: Подтвердите e-mail адрес
       reset_password_instructions:
         action: Смена пароля
-        explanation: Вы запросили новый пароль для Вашей учётной записи.
-        extra: Если это сделали не Вы, пожалуйста, игнорируйте письмо. Ваш пароль не будет изменён, пока Вы не перейдёте по ссылке выше и не создадите новый пароль.
+        explanation: Вы запросили новый пароль для вашей учётной записи.
+        extra: Если это сделали не вы, пожалуйста, игнорируйте письмо. Ваш пароль не будет изменён, пока вы не перейдёте по ссылке выше и не создадите новый пароль.
         subject: 'Mastodon: инструкция по смене пароля'
         title: Сброс пароля
       unlock_instructions:
         subject: 'Mastodon: Инструкция по разблокировке'
     omniauth_callbacks:
-      failure: Не получилось аутентифицировать Вас с помощью %{kind} по следующей причине - "%{reason}".
+      failure: Не получилось аутентифицировать вас с помощью %{kind} по следующей причине - "%{reason}".
       success: Аутентификация с помощью аккаунта %{kind} прошла успешно.
     passwords:
-      no_token: Вы можете получить доступ к этой странице, только перейдя по ссылке в e-mail для сброса пароля. Если Вы действительно перешли по такой ссылке, пожалуйста, удостоверьтесь, что ссылка была введена полностью и без изменений.
+      no_token: Вы можете получить доступ к этой странице, только перейдя по ссылке в e-mail для сброса пароля. Если вы действительно перешли по такой ссылке, пожалуйста, удостоверьтесь, что ссылка была введена полностью и без изменений.
       send_instructions: Вы получите e-mail с инструкцией по сбросу пароля в течение нескольких минут.
-      send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, Вы получите e-mail со ссылкой для сброса пароля в течение нескольких минут.
+      send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail со ссылкой для сброса пароля в течение нескольких минут.
       updated: Ваш пароль был успешно изменен. Вход выполнен.
       updated_not_active: Ваш пароль был успешно изменен.
     registrations:
-      destroyed: До свидания! Ваш аккаунт был успешно удален. Мы надеемся скоро увидеть Вас снова.
+      destroyed: До свидания! Ваш аккаунт был успешно удален. Мы надеемся скоро увидеть вас снова.
       signed_up: Добро пожаловать! Вы успешно зарегистрировались.
-      signed_up_but_inactive: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать Вас, поскольку Ваш аккаунт еще не активирован.
-      signed_up_but_locked: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать Вас, поскольку Ваш аккаунт заблокирован.
-      signed_up_but_unconfirmed: Сообщение со ссылкой для подтверждения было выслано на Ваш адрес e-mail. Пожалуйста, пройдите по ссылке для активации Вашего аккаунта.
-      update_needs_confirmation: Вы успешно обновили Ваш аккаунт, но нам нужно подтвердить ваш новый адрес e-mail. Пожалуйста, проверьте почту и пройдите по ссылке для подтверждения Вашего нового адреса.
+      signed_up_but_inactive: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать вас, поскольку ваш аккаунт еще не активирован.
+      signed_up_but_locked: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать вас, поскольку ваш аккаунт заблокирован.
+      signed_up_but_pending: На ваш e-mail адрес было отправлено письмо с ссылкой для подтверждения. После перехода по ней, мы начнём рассматривать вашу заявку. В случае подтверждения, мы вас оповестим.
+      signed_up_but_unconfirmed: Сообщение со ссылкой для подтверждения было выслано на ваш адрес e-mail. Пожалуйста, пройдите по ссылке для активации вашего аккаунта.
+      update_needs_confirmation: Вы успешно обновили данные учётной записи, но нам нужно подтвердить ваш новый адрес e-mail. Пожалуйста, проверьте почту и перейдите по ссылке из письма для подтверждения вашего нового адреса.
       updated: Ваш аккаунт был успешно обновлен.
     sessions:
       already_signed_out: Выход прошел успешно.
       signed_in: Вход прошел успешно.
       signed_out: Выход прошел успешно.
     unlocks:
-      send_instructions: Вы получите e-mail с инструкцией по разблокировке Вашего аккаунта в течение нескольких минут.
-      send_paranoid_instructions: Если Ваш аккаунт существует, Вы получите e-mail с инструкцией по его разблокировке в течение нескольких минут.
+      send_instructions: Вы получите e-mail с инструкцией по разблокировке вашего аккаунта в течение нескольких минут.
+      send_paranoid_instructions: Если Ваш аккаунт существует, вы получите e-mail с инструкцией по его разблокировке в течение нескольких минут.
       unlocked: Ваш аккаунт был успешно разблокирован. пожалуйста, войдите для продолжения.
   errors:
     messages:
diff --git a/config/locales/en.yml b/config/locales/en.yml
index c208298eb..a2cd84fc5 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -866,6 +866,7 @@ en:
   settings:
     account: Account
     account_settings: Account settings
+    appearance: Appearance
     authorized_apps: Authorized apps
     back: Back to Mastodon
     delete: Account deletion
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 637d94ac6..a181c76f4 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -9,9 +9,9 @@ ja:
     administered_by: '管理者:'
     api: API
     apps: アプリ
-    apps_platforms: iOSやAndroid、その他プラットフォームから使用する
-    browse_directory: ディレクトリで関心を軸に見つける
-    browse_public_posts: Mastodonの公開ライブストリームを見てみる
+    apps_platforms: iOSやAndroidなど、各種環境から利用できます
+    browse_directory: ディレクトリから気になる人を探しましょう
+    browse_public_posts: Mastodonの公開ライブストリームをご覧ください
     contact: 連絡先
     contact_missing: 未設定
     contact_unavailable: N/A
@@ -20,13 +20,13 @@ ja:
     extended_description_html: |
       <h3>ルールを書くのに適した場所</h3>
       <p>詳細説明が設定されていません。</p>
-    federation_hint_html: "%{instance} にアカウントを作ればどこのMastodonや互換性のあるサーバーのユーザーでもフォローできます。"
+    federation_hint_html: "%{instance} にアカウントがあればどの互換性のあるサーバーのユーザーでもフォローできるでしょう。"
     generic_description: "%{domain} は、Mastodon サーバーの一つです"
     get_apps: モバイルアプリを試す
     hosted_on: Mastodon hosted on %{domain}
     learn_more: もっと詳しく
     privacy_policy: プライバシーポリシー
-    see_whats_happening: 何が起きているのか見てみる
+    see_whats_happening: やりとりを見てみる
     server_stats: 'サーバー統計:'
     source_code: ソースコード
     status_count_after:
@@ -134,6 +134,7 @@ ja:
       moderation_notes: モデレーションメモ
       most_recent_activity: 直近の活動
       most_recent_ip: 直近のIP
+      no_account_selected: 何も選択されていないため、変更されていません
       no_limits_imposed: 制限なし
       not_subscribed: 購読していない
       outbox_url: Outbox URL
@@ -530,7 +531,7 @@ ja:
       cas: CAS
       saml: SAML
     register: 登録する
-    registration_closed: "%{instance} は現在新しいメンバーを受け入れていません"
+    registration_closed: "%{instance} は現在、新規登録停止中です"
     resend_confirmation: 確認メールを再送する
     reset_password: パスワードを再発行
     security: セキュリティ
@@ -859,6 +860,9 @@ ja:
     revoke_success: セッションを削除しました
     title: セッション
   settings:
+    account: アカウント
+    account_settings: セキュリティ
+    appearance: プロフィールを編集
     authorized_apps: 認証済みアプリ
     back: Mastodon に戻る
     delete: アカウントの削除
@@ -869,9 +873,11 @@ ja:
     flavours: フレーバー
     identity_proofs: Identity proofs
     import: データのインポート
+    import_and_export: インポート・エクスポート
     migrate: アカウントの引っ越し
     notifications: 通知
     preferences: ユーザー設定
+    profile: プロフィール
     relationships: フォロー・フォロワー
     two_factor_authentication: 二段階認証
   statuses:
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index cf0a99384..6334ad30b 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -134,6 +134,7 @@ ko:
       moderation_notes: 모더레이션 기록
       most_recent_activity: 최근 활동
       most_recent_ip: 최근 IP
+      no_account_selected: 아무 계정도 선택 되지 않아 아무 것도 변경 되지 않았습니다
       no_limits_imposed: 제한 없음
       not_subscribed: 구독하지 않음
       outbox_url: 발신함 URL
@@ -861,6 +862,9 @@ ko:
     revoke_success: 세션이 성공적으로 삭제되었습니다
     title: 세션
   settings:
+    account: 계정
+    account_settings: 계정 설정
+    appearance: 외관
     authorized_apps: 인증된 애플리케이션
     back: 돌아가기
     delete: 계정 삭제
@@ -870,9 +874,11 @@ ko:
     featured_tags: 추천 해시태그
     identity_proofs: 신원 증명
     import: 데이터 가져오기
+    import_and_export: 가져오기 / 내보내기
     migrate: 계정 이동
     notifications: 알림
     preferences: 사용자 설정
+    profile: 프로필
     relationships: 팔로잉과 팔로워
     two_factor_authentication: 2단계 인증
   statuses:
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 0d912d352..edccd9e7c 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -4,19 +4,30 @@ ru:
     about_hashtag_html: Это публичные статусы, отмеченные хэштегом <strong>#%{hashtag}</strong>. Вы можете взаимодействовать с ними при наличии у Вас аккаунта в глобальной сети Mastodon.
     about_mastodon_html: Mastodon - это <em>свободная</em> социальная сеть с <em>открытым исходным кодом</em>. Как <em>децентрализованная</em> альтернатива коммерческим платформам, Mastodon предотвращает риск монополизации Вашего общения одной компанией. Выберите сервер, которому Вы доверяете &mdash; что бы Вы ни выбрали, Вы сможете общаться со всеми остальными. Любой может запустить свой собственный узел Mastodon и участвовать в <em>социальной сети</em> совершенно бесшовно.
     about_this: Об этом узле
+    active_count_after: активных
+    active_footnote: Ежемесячно активные пользователи (MAU)
     administered_by: 'Администратор узла:'
     api: API
     apps: Приложения
+    apps_platforms: Используйте Mastodon на iOS, Android и других платформах
+    browse_directory: Изучайте каталог профилей и ищите по интересам
+    browse_public_posts: Просматривайте в реальном времени новые статусы в Mastodon
     contact: Связаться
-    contact_missing: Не установлено
-    contact_unavailable: Недоступен
+    contact_missing: не указан
+    contact_unavailable: неизв.
+    discover_users: Находите пользователей
+    documentation: Документация
     extended_description_html: |
       <h3>Хорошее место для правил</h3>
       <p>Расширенное описание еще не настроено.</p>
+    federation_hint_html: С учётной записью на %{instance} вы сможете подписываться на людей с любого сервера Mastodon и не только.
     generic_description: "%{domain} - один из серверов сети"
+    get_apps: Попробуйте мобильное приложение
     hosted_on: Mastodon размещен на %{domain}
     learn_more: Узнать больше
     privacy_policy: Политика конфиденциальности
+    see_whats_happening: Узнавайте, что происходит вокруг
+    server_stats: 'Статистика сервера:'
     source_code: Исходный код
     status_count_after:
       few: статуса
@@ -24,6 +35,7 @@ ru:
       one: статус
       other: статусов
     status_count_before: Опубликовано
+    tagline: Подписывайтесь на друзей и заводите новые знакомства
     terms: Условия использования
     user_count_after:
       few: пользователя
@@ -42,6 +54,8 @@ ru:
       other: подписчиков
     following: подписки
     joined: 'Дата регистрации: %{date}'
+    last_active: последняя активность
+    link_verified_on: Владение этой ссылкой было проверено %{date}
     media: Медиа
     moved_html: "%{name} переехал(а) на %{new_profile_link}:"
     network_hidden: Эта информация недоступна
@@ -62,14 +76,20 @@ ru:
       admin: Администратор
       bot: Бот
       moderator: Модератор
+    unavailable: Профиль недоступен
     unfollow: Отписаться
   admin:
+    account_actions:
+      action: Выполнить действие
+      title: Произвести модерацию аккаунта %{acct}
     account_moderation_notes:
       create: Создать
       created_msg: Заметка модератора успешно создана!
       delete: Удалить
       destroyed_msg: Заметка модератора успешно удалена!
     accounts:
+      approve: Подтвердить
+      approve_all: Подтвердить все
       are_you_sure: Вы уверены?
       avatar: Аватар
       by_domain: Домен
@@ -83,6 +103,7 @@ ru:
       confirm: Подтвердить
       confirmed: Подтверждено
       confirming: Подтверждение
+      deleted: Удалён
       demote: Разжаловать
       disable: Отключить
       disable_two_factor_authentication: Отключить 2FA
@@ -98,8 +119,11 @@ ru:
       followers: Подписчики
       followers_url: URL подписчиков
       follows: Подписки
+      header: Заголовок
       inbox_url: URL входящих
+      invited_by: Приглашение выдал(а)
       ip: IP
+      joined: Дата регистрации
       location:
         all: Все
         local: Локальные
@@ -109,15 +133,20 @@ ru:
       media_attachments: Мультимедийные вложения
       memorialize: Превратить в Памятник
       moderation:
+        active: Действующие
         all: Все
+        pending: В ожидании
         silenced: Заглушенные
         suspended: Заблокированные
         title: Модерация
       moderation_notes: Заметки модератора
       most_recent_activity: Последняя активность
       most_recent_ip: Последний IP
+      no_account_selected: Ничего не выбрано, никакие аккаунты не изменены
+      no_limits_imposed: Без ограничений
       not_subscribed: Не подписаны
       outbox_url: URL исходящих
+      pending: Ожидает рассмотрения
       perform_full_suspension: Полная блокировка
       profile_url: URL профиля
       promote: Повысить
@@ -125,7 +154,10 @@ ru:
       public: Публичный
       push_subscription_expires: Подписка PuSH истекает
       redownload: Обновить аватар
+      reject: Отклонить
+      reject_all: Отклонить все
       remove_avatar: Удалить аватар
+      remove_header: Удалить шапку
       resend_confirmation:
         already_confirmed: Этот пользователь уже подтвержден
         send: Повторно отправить подтверждение по электронной почте
@@ -145,25 +177,30 @@ ru:
       show:
         created_reports: Жалобы, отправленные этим аккаунтом
         targeted_reports: Жалобы на этот аккаунт
-      silence: Глушение
+      silence: Заглушить
+      silenced: Заглушен
       statuses: Статусы
       subscribe: Подписаться
+      suspended: Заморожен
       title: Аккаунты
       unconfirmed_email: Неподтверждённый e-mail
       undo_silenced: Снять глушение
       undo_suspension: Снять блокировку
       unsubscribe: Отписаться
       username: Имя пользователя
+      warn: Предупредить
       web: Веб
     action_logs:
       actions:
         assigned_to_self_report: "%{name} назначил(а) жалобу %{target} на себя"
         change_email_user: "%{name} сменил(а) e-mail пользователя %{target}"
         confirm_user: "%{name} подтвердил(а) e-mail адрес пользователя %{target}"
+        create_account_warning: "%{name} отправил(а) предупреждение для %{target}"
         create_custom_emoji: "%{name} загрузил(а) новый эмодзи %{target}"
         create_domain_block: "%{name} заблокировал(а) домен %{target}"
         create_email_domain_block: "%{name} добавил(а) e-mail домен %{target} в чёрный список"
         demote_user: "%{name} разжаловал(а) пользователя %{target}"
+        destroy_custom_emoji: "%{name} удалил(а) эмодзи %{target}"
         destroy_domain_block: "%{name} разблокировал(а) домен %{target}"
         destroy_email_domain_block: "%{name} добавил(а) e-mail домен %{target} в белый список"
         destroy_status: "%{name} удалил(а) статус пользователя %{target}"
@@ -217,8 +254,10 @@ ru:
       config: Конфигурация
       feature_deletions: Удаление аккаунтов
       feature_invites: Пригласительные ссылки
+      feature_profile_directory: Каталог профилей
       feature_registrations: Регистрация
       feature_relay: Ретрансляторы
+      feature_timeline_preview: Предпросмотр ленты
       features: Возможности
       hidden_service: Федерация со скрытыми сервисами
       open_reports: открытых жалоб
@@ -234,7 +273,7 @@ ru:
       week_users_active: активно на этой неделе
       week_users_new: пользователей на этой неделе
     domain_blocks:
-      add_new: Добавить новую
+      add_new: Заблокировать домен
       created_msg: Блокировка домена обрабатывается
       destroyed_msg: Блокировка домена снята
       domain: Домен
@@ -248,7 +287,14 @@ ru:
           suspend: Блокировка
         title: Новая доменная блокировка
       reject_media: Запретить медиаконтент
-      reject_media_hint: Удаляет локально хранимый медиаконтент и запрещает его загрузку в будущем. Не имеет значения в случае блокировки
+      reject_media_hint: Удаляет локально хранимый медиаконтент и запрещает его загрузку в будущем. Не имеет значения в случае блокировки.
+      reject_reports: Отклонять жалобы
+      reject_reports_hint: Игнорировать все жалобы с этого домена. Не имеет значения в случае блокировки.
+      rejecting_media: отклонение медиафайлов
+      rejecting_reports: отклонение жалоб
+      severity:
+        silence: заглушен
+        suspend: заморожен
       show:
         affected_accounts:
           few: Влияет на %{count} аккаунта в базе данных
@@ -260,7 +306,7 @@ ru:
           suspend: Снять блокировку со всех существующих аккаунтов этого домена
         title: Снять блокировку с домена %{domain}
         undo: Отменить
-      undo: Отменить
+      undo: Отменить блокировку домена
     email_domain_blocks:
       add_new: Добавить новую
       created_msg: Доменная блокировка еmail успешно создана
@@ -271,8 +317,27 @@ ru:
         create: Создать блокировку
         title: Новая доменная блокировка еmail
       title: Доменная блокировка email
+    followers:
+      back_to_account: Вернуться к аккаунту
+      title: Подписчики пользователя %{acct}
     instances:
+      by_domain: Домен
+      delivery_available: Доставка возможна
+      known_accounts:
+        few: "%{count} известных аккаунта"
+        many: "%{count} известных аккаунтов"
+        one: "%{count} известный аккаунт"
+        other: "%{count} известных аккаунтов"
+      moderation:
+        all: Все
+        limited: Ограниченные
+        title: Модерация
       title: Известные узлы
+      total_blocked_by_us: Заблокировано нами
+      total_followed_by_them: Заблокировано ими
+      total_followed_by_us: Наших подписчиков
+      total_reported: Жалобы на них
+      total_storage: Медиафайлы
     invites:
       deactivate_all: Отключить все
       filter:
@@ -281,10 +346,17 @@ ru:
         expired: Истёкшие
         title: Фильтр
       title: Приглашения
+    pending_accounts:
+      title: Ожидающие аккаунты (%{count})
     relays:
       add_new: Добавить ретранслятор
+      delete: Удалить
       description_html: "<strong>Федеративный ретранслятор</strong> – это промежуточный сервер, который передаёт большие объёмы публичных статусов между серверами, которые подписываются и публикуют туда. <strong>Это может помочь небольшим и средним серверам находить записи со всей федерации</strong>, ведь в противном случае пользователям нужно будет вручную подписываться на людей с удалённых узлов."
+      disable: Отключить
+      disabled: Отключено
+      enable: Включить
       enable_hint: Если включено, ваш сервер будет подписан на все публичные статусы с этого ретранслятора и начнёт туда отправлять публичные статусы со своего узла.
+      enabled: Включено
       inbox_url: URL ретранслятора
       pending: Ожидание подтверждения ретранслятора
       save_and_enable: Сохранить и включить
@@ -296,8 +368,8 @@ ru:
       destroyed_msg: Примечание жалобы удалено!
     reports:
       account:
-        note: заметка
-        report: жалоба
+        note: заметок
+        report: жалоб
       action_taken_by: 'Действие предпринято:'
       are_you_sure: Вы уверены?
       assign_to_self: Назначить себе
@@ -317,7 +389,7 @@ ru:
       report: 'Жалоба #%{id}'
       reported_account: Аккаунт нарушителя
       reported_by: Отправитель жалобы
-      resolved: Разрешено
+      resolved: Разрешенные
       resolved_msg: Жалоба успешно обработана!
       status: Статус
       title: Жалобы
@@ -340,12 +412,18 @@ ru:
       hero:
         desc_html: Отображается на главной странице. Рекомендуется разрешение не менее 600х100px. Если не установлено, используется изображение узла
         title: Баннер узла
+      mascot:
+        desc_html: Отображается на различных страницах. Рекомендуется размер не менее 293×205px. Если ничего не выбрано, используется персонаж по умолчанию
+        title: Персонаж сервера
       peers_api_enabled:
         desc_html: Домены, которые были замечены этим узлом среди всей федерации
         title: Публикация списка обнаруженных узлов
       preview_sensitive_media:
         desc_html: Предпросмотр ссылок с остальных веб-сайтов будет показан даже если медиаконтент отмечен как чувствительный
         title: Показывать чувствительный медиаконтент в предпросмотре OpenGraph
+      profile_directory:
+        desc_html: Позволять находить пользователей
+        title: Включить каталог профилей
       registrations:
         closed_message:
           desc_html: Отображается на титульной странице, когда закрыта регистрация<br>Можно использовать HTML-теги
@@ -356,6 +434,12 @@ ru:
         min_invite_role:
           disabled: Никого
           title: Разрешать приглашения от
+      registrations_mode:
+        modes:
+          approved: Для регистрации требуется подтверждение
+          none: Никто не может регистрироваться
+          open: Все могут регистрироваться
+        title: Режим регистраций
       show_known_fediverse_at_about_page:
         desc_html: Если включено, показывает посты со всех известных узлов в предпросмотре ленты. В противном случае отображаются только локальные посты.
         title: Показывать известные узлы в предпросмотре ленты
@@ -402,8 +486,25 @@ ru:
       last_delivery: Последняя доставка
       title: WebSub
       topic: Тема
+    tags:
+      accounts: Аккаунты
+      hidden: Скрыты
+      hide: Скрыть из каталога
+      name: Хэштег
+      title: Хэштеги
+      unhide: Показывать в каталоге
+      visible: Видны
     title: Администрирование
+    warning_presets:
+      add_new: Добавить
+      delete: Удалить
+      edit: Изменить
+      edit_preset: Удалить шаблон предупреждения
+      title: Управление шаблонами предупреждений
   admin_mailer:
+    new_pending_account:
+      body: Ниже указана информация об аккаунте. Вы можете одобрить или отклонить заявку.
+      subject: Новый аккаунт для рассмотрения на %{instance} (%{username})
     new_report:
       body: "%{reporter} подал(а) жалобу на %{target}"
       body_remote: Кто-то с узла %{domain} пожаловался на %{target}
@@ -424,7 +525,9 @@ ru:
     warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем!
     your_token: Ваш токен доступа
   auth:
+    apply_for_account: Запросить приглашение
     change_password: Пароль
+    checkbox_agreement_html: Я соглашаюсь с <a href="%{rules_path}" target="_blank">правилами сервера</a> и <a href="%{terms_path}" target="_blank">Условиями использования</a>
     confirm_email: Подтвердите email
     delete_account: Удалить аккаунт
     delete_account_html: Если Вы хотите удалить свой аккаунт, вы можете <a href="%{path}">перейти сюда</a>. У Вас будет запрошено подтверждение.
@@ -440,10 +543,12 @@ ru:
       cas: CAS
       saml: SAML
     register: Зарегистрироваться
+    registration_closed: "%{instance} не принимает новых участников"
     resend_confirmation: Повторить отправку инструкции для подтверждения
     reset_password: Сбросить пароль
     security: Безопасность
     set_new_password: Задать новый пароль
+    trouble_logging_in: Не удаётся войти?
   authorize_follow:
     already_following: Вы уже подписаны на этот аккаунт
     error: К сожалению, при поиске удаленного аккаунта возникла ошибка
@@ -477,6 +582,18 @@ ru:
     success_msg: Ваш аккаунт был успешно удален
     warning_html: Гарантируется удаление контента только на этом узле. Широко распространившийся контент, скорее всего, оставит следы. Сервера, отключенные от сети или отписавшиеся от Ваших обновлений, не обновят свои базы данных.
     warning_title: О доступности распространившегося контента
+  directories:
+    directory: Каталог профилей
+    enabled: В настоящий момент вы указаны в каталоге.
+    enabled_but_waiting: Вы согласились находиться в каталоге, но у вас ещё нет необходимого количества подписчиков (%{min_followers}), чтобы оказаться в каталоге.
+    explanation: Находите пользователей по интересам
+    explore_mastodon: Изучайте %{title}
+    how_to_enable: Вы ещё не находитесь в каталоге. Можете добавиться ниже. Используйте хэштеги в разделе "о себе", чтобы вас находили по этим хэштегам!
+    people:
+      few: "%{count} человека"
+      many: "%{count} человек"
+      one: "%{count} человек"
+      other: "%{count} человек"
   errors:
     '403': У Вас нет доступа к просмотру этой страницы.
     '404': Страница, которую Вы искали, не существует.
@@ -489,6 +606,9 @@ ru:
       content: Приносим извинения, но на нашей стороне что-то пошло не так.
       title: Страница неверна
     noscript_html: Для работы с Mastodon, пожалуйста, включите JavaScript. Кроме того, вы можете использовать одно из <a href="%{apps_path}">приложений</a> Mastodon для Вашей платформы.
+  existing_username_validator:
+    not_found: не удалось найти локального пользователя с таким именем
+    not_found_multiple: не удалось найти %{usernames}
   exports:
     archive_takeout:
       date: Дата
@@ -499,9 +619,15 @@ ru:
       size: Размер
     blocks: Список блокировки
     csv: CSV
+    domain_blocks: Доменные блокировки
     follows: Подписки
+    lists: Списки
     mutes: Список глушения
     storage: Ваш медиаконтент
+  featured_tags:
+    add_new: Добавить
+    errors:
+      limit: Вы уже добавили максимальное число хэштегов
   filters:
     contexts:
       home: Домашняя лента
@@ -523,18 +649,47 @@ ru:
     more: Ещё…
     resources: Ссылки
   generic:
+    all: Все
     changes_saved_msg: Изменения успешно сохранены!
+    copy: Копировать
+    order_by: Сортировать по
     save_changes: Сохранить изменения
     validation_errors:
       few: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
       many: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
       one: Что-то здесь не так! Пожалуйста, прочитайте об ошибке ниже
       other: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
+  html_validator:
+    invalid_markup: 'contains invalid HTML markup: %{error}'
+  identity_proofs:
+    active: Активно
+    authorize: Да, авторизовать
+    authorize_connection_prompt: Авторизовать эту криптографическую связь?
+    errors:
+      failed: Криптографическое соединение не установлено. Попробуйте ещё раз на %{provider}.
+      keybase:
+        invalid_token: Токены Keybase — это хэши от подписей и должны быть по длине в 66 hex-символов
+        verification_failed: Keybase не распознаёт этот токен как подпись пользователя %{kb_username}. Пожалуйста, повторите на Keybase.
+      wrong_user: Невозможно подтвердить пользователя %{proving}, будучи залогиненным как %{current}. Выполните вход как %{proving} и попробуйте ещё раз.
+    explanation_html: Здесь вы можете криптографически связать свои остальные идентификаторы, такие как профиль Keybase. Это позволит другим дюдям отправлять вам зашифрованные сообщения и верить отправляемым вами сообщениям.
+    i_am_html: Я %{username} на %{service}.
+    identity: Идентификатор
+    inactive: Неактивно
+    publicize_checkbox: 'И опубликуйте текст:'
+    publicize_toot: 'Подтверждено! Я %{username} на %{service}: %{url}'
+    status: Статус подтверждения
+    view_proof: Посмотреть доказательство личности
   imports:
+    modes:
+      merge: Объединить
+      merge_long: Сохранить имеющиеся данные и добавить новые
+      overwrite: Перезаписать
+      overwrite_long: Перезаписать имеющиеся данные новыми
     preface: Вы можете загрузить некоторые данные, например, списки людей, на которых Вы подписаны или которых блокируете, в Ваш аккаунт на этом узле из файлов, экспортированных с другого узла.
     success: Ваши данные были успешно загружены и будут обработаны с должной скоростью
     types:
       blocking: Список блокировки
+      domain_blocking: Список доменных блокировок
       following: Подписки
       muting: Список глушения
     upload: Загрузить
@@ -551,6 +706,7 @@ ru:
       '86400': 1 день
     expires_in_prompt: Никогда
     generate: Сгенерировать
+    invited_by: 'Вас пригласил(а):'
     max_uses:
       few: "%{count} исп."
       many: "%{count} исп."
@@ -573,7 +729,7 @@ ru:
     acct: имя@домен нового аккаунта
     currently_redirecting: 'Ваш профиль будет перенаправлен на:'
     proceed: Сохранить
-    updated_msg: Настройки миграции Вашего аккаунта обновлены!
+    updated_msg: Настройки миграции вашего аккаунта обновлены!
   moderation:
     title: Модерация
   notification_mailer:
@@ -582,28 +738,28 @@ ru:
       body: Кратко о пропущенных Вами сообщениях с Вашего последнего захода %{since}
       mention: "%{name} упомянул(а) Вас в:"
       new_followers_summary:
-        few: У Вас появилось %{count} новых подписчика! Отлично!
-        many: У Вас появилось %{count} новых подписчиков! Отлично!
-        one: Также, пока вас не было, у Вас появился новый подписчик! Ура!
-        other: Также, пока вас не было, у Вас появилось %{count} новых подписчиков! Отлично!
+        few: У вас появилось %{count} новых подписчика! Отлично!
+        many: У вас появилось %{count} новых подписчиков! Отлично!
+        one: Также, пока вас не было, у вас появился новый подписчик! Ура!
+        other: Также, пока вас не было, у вас появилось %{count} новых подписчиков! Отлично!
       subject:
-        few: "%{count} новых уведомления с Вашего последнего захода \U0001F418"
-        many: "%{count} новых уведомлений с Вашего последнего захода \U0001F418"
-        one: "1 новое уведомление с Вашего последнего захода \U0001F418"
-        other: "%{count} новых уведомлений с Вашего последнего захода \U0001F418"
+        few: "%{count} новых уведомления с вашего последнего захода \U0001F418"
+        many: "%{count} новых уведомлений с вашего последнего захода \U0001F418"
+        one: "1 новое уведомление с вашего последнего захода \U0001F418"
+        other: "%{count} новых уведомлений с вашего последнего захода \U0001F418"
       title: В ваше отсутствие…
     favourite:
       body: 'Ваш статус понравился %{name}:'
-      subject: "%{name} понравился Ваш статус"
+      subject: "%{name} понравился ваш статус"
       title: Понравившийся статус
     follow:
-      body: "%{name} теперь подписан(а) на Вас!"
-      subject: "%{name} теперь подписан(а) на Вас"
+      body: "%{name} теперь подписан(а) на вас!"
+      subject: "%{name} теперь подписан(а) на вас"
       title: Новый подписчик
     follow_request:
       action: Управление запросами на подписку
-      body: "%{name} запросил Вас о подписке"
-      subject: "%{name} хочет подписаться на Вас"
+      body: "%{name} запросил вас о подписке"
+      subject: "%{name} хочет подписаться на вас"
       title: Новый запрос о подписке
     mention:
       action: Ответить
@@ -612,7 +768,7 @@ ru:
       title: Новое упоминание
     reblog:
       body: 'Ваш статус был продвинут %{name}:'
-      subject: "%{name} продвинул(а) Ваш статус"
+      subject: "%{name} продвинул(а) ваш статус"
       title: Новое продвижение
   number:
     human:
@@ -631,21 +787,59 @@ ru:
     older: Старше
     prev: Пред
     truncate: "&hellip;"
+  polls:
+    errors:
+      already_voted: Вы уже голосовали в этом опросе
+      duplicate_options: содержит одинаковые варианты
+      duration_too_long: слишком далеко в будущем
+      duration_too_short: слишком короткий срок
+      expired: Опрос уже завершился
+      over_character_limit: каждый не вариант не может быть длиннее %{max} символов
+      too_few_options: должно быть больше 1 варианта
+      too_many_options: может содержать не больше %{max} вариантов
   preferences:
     languages: Языки
     other: Другое
     publishing: Публикация
     web: WWW
+  relationships:
+    activity: Активность аккаунта
+    dormant: Заброшенные
+    last_active: Недавно активные
+    most_recent: Новые
+    moved: Переехавший
+    mutual: Общие
+    primary: Основной
+    relationship: Связь
+    remove_selected_domains: Удалить всех подписчиков для выбранных доменов
+    remove_selected_followers: Удалить выбранных подписчиков
+    remove_selected_follows: Отписаться от выбранных пользователей
+    status: Статус аккаунта
   remote_follow:
     acct: Введите свой username@domain для продолжения
     missing_resource: Поиск требуемого перенаправления URL для Вашего аккаунта завершился неудачей
     no_account_html: Нет учётной записи? Вы можете <a href='%{sign_up_path}' target='_blank'>зарегистрироваться здесь</a>
     proceed: Продолжить подписку
     prompt: 'Вы хотите подписаться на:'
+    reason_html: "<strong>Почему это необходимо?</strong> <code>%{instance}</code> может не являться сервером, на котором вы зарегистрированы, поэтому нам сперва нужно перенаправить вас на домашний сервер."
+  remote_interaction:
+    favourite:
+      proceed: Отметить как "нравится"
+      prompt: 'Вы собираетесь поставить отметку "нравится" этому статусу:'
+    reblog:
+      proceed: Продвинуть статус
+      prompt: 'Вы хотите продвинуть этот статус:'
+    reply:
+      proceed: Ответить
+      prompt: 'Вы собираетесь ответить на этот статус:'
   remote_unfollow:
     error: Ошибка
     title: Заголовок
     unfollowed: Отписаны
+  scheduled_statuses:
+    over_daily_limit: Вы превысили лимит в %{limit} запланированных постов на указанный день
+    over_total_limit: Вы превысили лимит на %{limit} запланированных постов
+    too_soon: Запланированная дата должна быть в будущем
   sessions:
     activity: Последняя активность
     browser: Браузер
@@ -688,16 +882,24 @@ ru:
     revoke_success: Сессия завершена успешно
     title: Сессии
   settings:
+    account: Учётная запись
+    account_settings: Настройки учётной записи
+    appearance: Внешний вид
     authorized_apps: Авторизованные приложения
     back: Назад в Mastodon
     delete: Удаление аккаунта
     development: Разработка
     edit_profile: Изменить профиль
     export: Экспорт данных
+    featured_tags: Особенные хэштеги
+    identity_proofs: Подтверждения личности
     import: Импорт
+    import_and_export: Импорт и экспорт
     migrate: Перенос аккаунта
     notifications: Уведомления
     preferences: Настройки
+    profile: Профиль
+    relationships: Подписки и подписчики
     two_factor_authentication: Двухфакторная аутентификация
   statuses:
     attached:
@@ -727,6 +929,13 @@ ru:
       ownership: Нельзя закрепить чужой статус
       private: Нельзя закрепить непубличный статус
       reblog: Нельзя закрепить продвинутый статус
+    poll:
+      total_votes:
+        few: "%{count} голоса"
+        many: "%{count} голосов"
+        one: "%{count} голос"
+        other: "%{count} голосов"
+      vote: Голосовать
     show_more: Ещё
     sign_in_to_participate: Войдите, чтобы принять участие в дискуссии
     title: '%{name}: "%{quote}"'
@@ -821,12 +1030,13 @@ ru:
       <p>Originally adapted from the <a href="https://github.com/discourse/discourse">Discourse privacy policy</a>.</p>
     title: Условия обслуживания и политика конфиденциальности %{instance}
   themes:
-    contrast: Высококонтрастная
-    default: Mastodon
+    contrast: Mastodon (высококонтрастная)
+    default: Mastodon (тёмная)
     mastodon-light: Mastodon (светлая)
   time:
     formats:
-      default: "%b %d, %Y, %H:%M"
+      default: "%d %b %Y, %H:%M"
+      month: "%m.%Y"
   two_factor_authentication:
     code_hint: Для подтверждения введите код, сгенерированный приложением аутентификатора
     description_html: При включении <strong>двухфакторной аутентификации</strong>, вход потребует от Вас использования Вашего телефона, который сгенерирует входные токены.
@@ -848,26 +1058,46 @@ ru:
       explanation: Вы запросили полный архив вашего аккаунта Mastodon. Он готов к загрузке!
       subject: Ваш архив готов к загрузке
       title: Вынос архива
+    warning:
+      explanation:
+        disable: Пока ваш аккаунт заморожен, ваши данные остаются нетронутыми, но вы не можете производить никаких действий до разблокировки.
+        silence: Пока ваш аккаунт ограничен, ваши посты на этом сервере увидят только ваши действующие подписчики, а ваш аккаунт может быть исключён из различных каталогов. Впрочем, остальные могут подписаться на вас вручную.
+        suspend: Ваш аккаунт заблокирован и все ваши посты и загруженные медиафайлы безвозвратно удалены с этого сервера и других серверов, где у вас были подписчики.
+      review_server_policies: Посмотреть правила сервера
+      subject:
+        disable: Ваш аккаунт %{acct} заморожен
+        none: "%{acct}, вам вынесено предупреждение"
+        silence: Ваш аккаунт %{acct} был ограничен
+        suspend: Ваш аккаунт %{acct} был заблокирован
+      title:
+        disable: Аккаунт заморожен
+        none: Предупреждение
+        silence: Аккаунт ограничен
+        suspend: Аккаунт заблокирован
     welcome:
       edit_profile_action: Настроить профиль
-      edit_profile_step: Вы можете настроить свой профиль, загрузив аватар, обложку, сменив имя и много чего ещё. Если Вы хотите фильтровать подписчиков до того, как они смогут на Вас подписаться, Вы можете закрыть свой аккаунт.
+      edit_profile_step: Вы можете настроить свой профиль, загрузив аватар, обложку, сменив имя и много чего ещё. Если вы хотите фильтровать подписчиков до того, как они смогут на вас подписаться, вы можете закрыть свой аккаунт.
       explanation: Несколько советов для новичков
       final_action: Начать постить
-      final_step: 'Начните постить! Ваши публичные посты могут видеть другие, например, в локальной ленте или по хэштегам, даже если у Вас нет подписчиков. Вы также можете поздороваться с остальными и представиться, используя хэштек #приветствие.'
+      final_step: 'Начните постить! Ваши публичные посты могут видеть другие, например, в локальной ленте или по хэштегам, даже если у вас нет подписчиков. Вы также можете поздороваться с остальными и представиться, используя хэштег #приветствие.'
       full_handle: Ваше обращение
       full_handle_hint: То, что Вы хотите сообщить своим друзьям, чтобы они могли написать Вам или подписаться с другого узла.
       review_preferences_action: Изменить настройки
-      review_preferences_step: Проверьте все настройки, например, какие письма Вы хотите получать или уровень приватности статусов по умолчанию. Если Вы не страдаете морской болезнь, можете включить автовоспроизведение GIF.
+      review_preferences_step: Проверьте все настройки, например, какие письма вы хотите получать или уровень приватности статусов по умолчанию. Если вы не страдаете морской болезнью, можете включить автовоспроизведение GIF.
       subject: Добро пожаловать в Mastodon
-      tip_federated_timeline: В глобальной ленте отображается сеть Mastodon. Но в ней показаны посты только от людей, на которых подписаны Вы и Ваши соседи, поэтому лента может быть неполной.
-      tip_following: По умолчанию Вы подписаны на администратора(-ов) Вашего узла. Чтобы найти других интересных людей, проверьте локальную и глобальную ленты.
-      tip_local_timeline: В локальной ленте показаны посты от людей с %{instance}. Это Ваши непосредственные соседи!
-      tip_mobile_webapp: Если Ваш мобильный браузер предлагает добавить иконку Mastodon на домашний экран, то Вы можете получать push-уведомления. Прямо как полноценное приложение!
+      tip_federated_timeline: В глобальной ленте отображается сеть Mastodon. Но в ней показаны посты только от людей, на которых подписаны вы и ваши соседи, поэтому лента может быть неполной.
+      tip_following: По умолчанию вы подписаны на администратора(-ов) вашего узла. Чтобы найти других интересных людей, проверьте локальную и глобальную ленты.
+      tip_local_timeline: В локальной ленте показаны посты от людей с %{instance}. Это ваши непосредственные соседи!
+      tip_mobile_webapp: Если ваш мобильный браузер предлагает добавить иконку Mastodon на домашний экран, то вы можете получать push-уведомления. Прямо как полноценное приложение!
       tips: Советы
       title: Добро пожаловать на борт, %{name}!
   users:
+    follow_limit_reached: Вы не можете подписаться больше, чем на %{limit} человек
     invalid_email: Введенный e-mail неверен
     invalid_otp_token: Введен неверный код двухфакторной аутентификации
     otp_lost_help_html: Если Вы потеряли доступ к обоим, свяжитесь с %{email}
     seamless_external_login: Вы залогинены через сторонний сервис, поэтому настройки e-mail и пароля недоступны.
     signed_in_as: 'Выполнен вход под именем:'
+  verification:
+    explanation_html: 'Вы можете <strong>подтвердить себя как владельца ссылок в вашем профиле</strong>. Для этого указанный веб-сайт должен содержать обратную ссылку на ваш профиль в Mastodon. У обратной ссылки <strong>должен</strong> быть атрибут <code>rel="me"</code>. Сам текст ссылки не имеет значения. Пример:'
+    verification: Подтверждение
diff --git a/config/locales/simple_form.co.yml b/config/locales/simple_form.co.yml
index 53e48d758..3a521e85e 100644
--- a/config/locales/simple_form.co.yml
+++ b/config/locales/simple_form.co.yml
@@ -41,6 +41,8 @@ co:
         name: 'Pudete vulè utilizà unu di quelli:'
       imports:
         data: Un fugliale CSV da un’altru servore di Mastodon
+      invite_request:
+        text: Quessu ci aiutarà à valutà a vostra dumanda
       sessions:
         otp: 'Entrate u codice d’identificazione à dui fattori nant’à u vostru telefuninu, o unu di i vostri codici di ricuperazione:'
       user:
@@ -118,12 +120,15 @@ co:
         must_be_follower: Piattà e nutificazione di quelli·e ch’ùn vi seguitanu
         must_be_following: Piattà e nutificazione di quelli·e ch’ùn seguitate
         must_be_following_dm: Bluccà e missaghji diretti di quelli·e ch’ùn seguitate
+      invite_request:
+        text: Perchè vulete ghjunghje?
       notification_emails:
         digest: Mandà e-mail di ricapitulazione
         favourite: Mandà un’e-mail quandu qualch’unu aghjunghje i mo statuti à i so favuriti
         follow: Mandà un’e-mail quandu qualch’unu mi seguita
         follow_request: Mandà un’e-mail quandu qualch’unu vole seguitami
         mention: Mandà un’e-mail quandu qualch’unu mi mintuva
+        pending_account: Mandà un'e-mail quandu un novu contu hà bisognu d'esse valutatu
         reblog: Mandà un’e-mail quandu qualch’unu sparte i mo statuti
         report: Mandà un'e-mail quandu c'hè un novu signalamentu
     'no': Nò
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index 579f627d7..2b4888424 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -41,6 +41,8 @@ cs:
         name: 'Nejspíš budete chtít použít jeden z těchto:'
       imports:
         data: Soubor CSV exportovaný z jiného serveru Mastodon
+      invite_request:
+        text: To nám pomůže posoudit váš požadavek
       sessions:
         otp: 'Napište dvoufázový kód vygenerovaný vaší mobilní aplikací, nebo použijte jeden z vašich záložních kódů:'
       user:
@@ -118,12 +120,15 @@ cs:
         must_be_follower: Blokovat oznámení od lidí, kteří vás nesledují
         must_be_following: Blokovat oznámení od lidí, které nesledujete
         must_be_following_dm: Blokovat přímé zprávy od lidí, které nesledujete
+      invite_request:
+        text: Proč se chcete připojit?
       notification_emails:
         digest: Posílat e-maily s přehledem
         favourite: Posílat e-maily, když si někdo oblíbí váš toot
         follow: Posílat e-maily, když vás někdo začne sledovat
         follow_request: Posílat e-maily, když vás někdo požádá o sledování
         mention: Posílat e-maily, když vás někdo zmíní
+        pending_account: Posílat e-maily, když je třeba posoudit nový účet
         reblog: Posílat e-maily, když někdo boostne váš toot
         report: Posílat e-maily, je-li odesláno nové nahlášení
     'no': Ne
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 6dbfd17c0..779476069 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -41,6 +41,8 @@ de:
         name: 'Du möchtest vielleicht einen von diesen benutzen:'
       imports:
         data: CSV-Datei, die aus einem anderen Mastodon-Server exportiert wurde
+      inivte_request:
+        text: Dies wird uns helfen deine Anfrage besser zu verstehen
       sessions:
         otp: 'Gib den Zwei-Faktor-Authentisierungscode von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:'
       user:
@@ -118,12 +120,15 @@ de:
         must_be_follower: Benachrichtigungen von Nicht-Folgenden blockieren
         must_be_following: Benachrichtigungen von Profilen blockieren, denen ich nicht folge
         must_be_following_dm: Private Nachrichten von Profilen, denen ich nicht folge, blockieren
+      invite_request:
+        text: Warum möchtest du beitreten?
       notification_emails:
         digest: Schicke Übersichts-E-Mails
         favourite: E-Mail senden, wenn jemand meinen Beitrag favorisiert
         follow: E-Mail senden, wenn mir jemand folgt
         follow_request: E-Mail senden, wenn mir jemand folgen möchte
         mention: E-Mail senden, wenn mich jemand erwähnt
+        pending_account: E-Mail senden, wenn ein Benutzerkonto zur Überprüfung aussteht
         reblog: E-Mail senden, wenn jemand meinen Beitrag teilt
         report: E-Mail senden, wenn ein neuer Bericht vorliegt
     'no': Nein
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index 2cade4301..c82f1943f 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -41,6 +41,8 @@ ja:
         name: 'これらを使うといいかもしれません:'
       imports:
         data: 他の Mastodon サーバーからエクスポートしたCSVファイルを選択して下さい
+      invite_request:
+        text: このサーバーは現在承認制です。申請を承認する際に役立つメッセージを添えてください
       sessions:
         otp: '携帯電話のアプリで生成された二段階認証コードを入力するか、リカバリーコードを使用してください:'
       user:
@@ -119,12 +121,15 @@ ja:
         must_be_follower: フォロワー以外からの通知をブロック
         must_be_following: フォローしていないユーザーからの通知をブロック
         must_be_following_dm: フォローしていないユーザーからのダイレクトメッセージをブロック
+      invite_request:
+        text: 意気込みをお聞かせください
       notification_emails:
         digest: タイムラインからピックアップしてメールで通知する
         favourite: お気に入りに登録された時にメールで通知する
         follow: フォローされた時にメールで通知する
         follow_request: フォローリクエストを受けた時にメールで通知する
         mention: 返信が来た時にメールで通知する
+        pending_account: 新しいアカウントの承認が必要な時にメールで通知する
         reblog: トゥートがブーストされた時にメールで通知する
         report: 通報を受けた時にメールで通知する
     'no': いいえ
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 81392c8be..9c5fc413d 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -41,6 +41,8 @@ ko:
         name: '이것들을 사용하면 좋을 것 같습니다:'
       imports:
         data: 다른 마스토돈 서버에서 추출된 CSV 파일
+      invite_request:
+        text: 이 정보는 우리가 심사를 하는 데에 참고할 수 있습니다
       sessions:
         otp: '휴대전화에서 생성 된 2단계 인증 코드를 입력하거나, 복구 코드 중 하나를 사용하세요:'
       user:
@@ -118,12 +120,15 @@ ko:
         must_be_follower: 나를 팔로우 하지 않는 사람에게서 온 알림을 차단
         must_be_following: 내가 팔로우 하지 않는 사람에게서 온 알림을 차단
         must_be_following_dm: 내가 팔로우 하지 않은 사람에게서 오는 다이렉트메시지를 차단
+      invite_request:
+        text: 가입하려는 이유가 무엇인가요?
       notification_emails:
         digest: 요약 이메일 보내기
         favourite: 누군가 내 상태를 즐겨찾기로 등록했을 때 이메일 보내기
         follow: 누군가 나를 팔로우 했을 때 이메일 보내기
         follow_request: 누군가 나를 팔로우 하길 원할 때 이메일 보내기
         mention: 누군가 나에게 답장했을 때 이메일 보내기
+        pending_account: 새 계정이 심사가 필요할 때 이메일 보내기
         reblog: 누군가 내 툿을 부스트 했을 때 이메일 보내기
         report: 새 신고 등록시 이메일로 알리기
     'no': 아니오
diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml
index 44cd7ccd6..4196076a9 100644
--- a/config/locales/simple_form.ru.yml
+++ b/config/locales/simple_form.ru.yml
@@ -2,29 +2,47 @@
 ru:
   simple_form:
     hints:
+      account_warning_preset:
+        text: Вы можете использовать всё, что в обычных постах — ссылки, хэштеги, упоминания и т.д.
+      admin_account_action:
+        send_email_notification: Пользователь получит сообщение о том, что случилось с его/её аккаунтом
+        text_html: (Необязательно) Можно использовать обычный синтаксис. Для экономии времени <a href="%{path}">добавьте шаблоны предупреждений</a>
+        type_html: Выберите, что делать с аккаунтом <strong>%{acct}</strong>
+        warning_preset_id: Необязательно. Вы можете добавить собственный текст в конце шаблона
       defaults:
         autofollow: Люди, пришедшие по этому приглашению автоматически будут подписаны на Вас
         avatar: PNG, GIF или JPG. Максимально %{size}. Будет уменьшено до %{dimensions}px
         bot: Этот аккаунт обычно выполяет автоматизированные действия и может не просматриваться владельцем
         context: Один или несколько контекстов, к которым должны быть применены фильтры
-        digest: Отсылается лишь после длительной неактивности, если Вы в это время получали личные сообщения
+        digest: Отсылается лишь после длительной неактивности, если вы в это время получали личные сообщения
+        discoverable_html: <a href="%{path}" target="_blank">Каталог</a> позволяет пользователям искать людей по интересам и активности. Необходимо наличие не менее %{min_followers} подписчиков
+        email: Вам будет отправлено электронное письмо с подтверждением
         fields: В профиле можно отобразить до 4 пунктов как таблицу
         header: PNG, GIF или JPG. Максимально %{size}. Будет уменьшено до %{dimensions}px
-        inbox_url: Копировать URL с главной страницы ретранслятора, который Вы хотите использовать
+        inbox_url: Копировать URL с главной страницы ретранслятора, который вы хотите использовать
         irreversible: Отфильтрованные статусы будут утеряны навсегда, даже если в будущем фильтр будет убран
         locale: Язык интерфейса, e-mail писем и push-уведомлений
-        locked: Потребует от Вас ручного подтверждения подписчиков, изменит приватность постов по умолчанию на "только для подписчиков"
+        locked: Потребует от вас ручного подтверждения подписчиков, изменит приватность постов по умолчанию на "только для подписчиков"
+        password: Укажите не менее 8 символов
         phrase: Будет сопоставлено независимо от присутствия в тексте или предупреждения о содержании статуса
-        scopes: Какие API приложению будет позволено использовать. Если Вы выберите самый верхний, нижестоящие будут выбраны автоматически.
-        setting_default_language: Язык Ваших статусов может быть определён автоматически, но не всегда правильно
-        setting_hide_network: Те, на кого Вы подписаны и кто подписан на Вас, не будут отображены в Вашем профиле
-        setting_noindex: Относится к Вашему публичному профилю и страницам статусов
+        scopes: Какие API приложению будет позволено использовать. Если вы выберете самый верхний, нижестоящие будут выбраны автоматически.
+        setting_aggregate_reblogs: Не показывать новые продвижения статусов, которые уже были недавно продвинуты (относится только к новым продвижениям)
+        setting_default_language: Язык ваших статусов может быть определён автоматически, но не всегда правильно
+        setting_display_media_default: Скрывать чувствительные медиафайлы
+        setting_display_media_hide_all: Всегда скрывать любые медиафайлы
+        setting_display_media_show_all: Всегда показывать чувствительные медиафайлы
+        setting_hide_network: Те, на кого вы подписаны и кто подписан на Вас, не будут отображены в вашем профиле
+        setting_noindex: Относится к вашему публичному профилю и страницам статусов
+        setting_show_application: В окне просмотра вашего статуса будет видно, с какого приложения он был отправлен
         setting_theme: Влияет на внешний вид Mastodon при выполненном входе в аккаунт.
+        username: Ваш юзернейм будет уникальным на %{domain}
         whole_word: Если слово или фраза состоит только из букв и цифр, сопоставление произойдёт только по полному совпадению
+      featured_tag:
+        name: 'Возможно, вы захотите выбрать из них:'
       imports:
         data: Файл CSV, экспортированный с другого узла Mastodon
       sessions:
-        otp: 'Введите код двухфакторной аутентификации, сгенерированный в мобильном приложении, или используйте один из Ваших кодов восстановления:'
+        otp: 'Введите код двухфакторной аутентификации, сгенерированный в мобильном приложении, или используйте один из ваших кодов восстановления:'
       user:
         chosen_languages: Если выбрано, то в публичных лентах будут показаны только посты на выбранных языках
     labels:
@@ -32,6 +50,18 @@ ru:
         fields:
           name: Пункт
           value: Значение
+      account_warning_preset:
+        text: Текст шаблона
+      admin_account_action:
+        send_email_notification: Уведомить юзера по e-mail
+        text: Свой текст предупреждения
+        type: Действие
+        types:
+          disable: Заморозить
+          none: Ничего не делать
+          silence: Заглушить
+          suspend: Заблокировать и безвозвратно удалить все данные аккаунта
+        warning_preset_id: Использовать шаблон
       defaults:
         autofollow: Пригласите подписаться на Ваш аккаунт
         avatar: Аватар
@@ -42,6 +72,7 @@ ru:
         context: Контекст фильтра
         current_password: Текущий пароль
         data: Данные
+        discoverable: Показывать этот аккаунт в каталоге
         display_name: Показываемое имя
         email: Адрес e-mail
         expires_in: Истекает через
@@ -57,15 +88,22 @@ ru:
         otp_attempt: Двухфакторный код
         password: Пароль
         phrase: Слово или фраза
+        setting_aggregate_reblogs: Группировать продвижения в лентах
         setting_auto_play_gif: Автоматически проигрывать анимированные GIF
         setting_boost_modal: Показывать диалог подтверждения перед продвижением
         setting_default_language: Язык отправляемых статусов
         setting_default_privacy: Видимость постов
         setting_default_sensitive: Всегда отмечать медиаконтент как чувствительный
         setting_delete_modal: Показывать диалог подтверждения перед удалением
+        setting_display_media: Отображение медиафайлов
+        setting_display_media_default: По умолчанию
+        setting_display_media_hide_all: Скрывать все
+        setting_display_media_show_all: Показывать все
+        setting_expand_spoilers: Всегда раскрывать статусы, имеющие предупреждение о содержании
         setting_hide_network: Скрыть свои связи
         setting_noindex: Отказаться от индексации в поисковых машинах
         setting_reduce_motion: Уменьшить движение в анимации
+        setting_show_application: Раскрывать приложение, с которого отправляются статусы
         setting_system_font_ui: Использовать шрифт системы по умолчанию
         setting_theme: Тема сайта
         setting_unfollow_modal: Показывать диалог подтверждения перед тем, как отписаться от аккаунта
@@ -74,17 +112,19 @@ ru:
         username: Имя пользователя
         username_or_email: Имя пользователя или e-mail
         whole_word: Слово целиком
+      featured_tag:
+        name: Хэштег
       interactions:
         must_be_follower: Заблокировать уведомления не от подписчиков
-        must_be_following: Заблокировать уведомления от людей, на которых Вы не подписаны
-        must_be_following_dm: Заблокировать личные сообщения от людей, на которых Вы не подписаны
+        must_be_following: Заблокировать уведомления от людей, на которых вы не подписаны
+        must_be_following_dm: Заблокировать личные сообщения от людей, на которых вы не подписаны
       notification_emails:
         digest: Присылать дайджест по e-mail
-        favourite: Уведомлять по e-mail, когда кому-то нравится Ваш статус
-        follow: Уведомлять по e-mail, когда кто-то подписался на Вас
+        favourite: Уведомлять по e-mail, когда кому-то нравится ваш статус
+        follow: Уведомлять по e-mail, когда кто-то подписался на вас
         follow_request: Уведомлять по e-mail, когда кто-то запрашивает разрешение на подписку
-        mention: Уведомлять по e-mail, когда кто-то упомянул Вас
-        reblog: Уведомлять по e-mail, когда кто-то продвинул Ваш статус
+        mention: Уведомлять по e-mail, когда кто-то упомянул вас
+        reblog: Уведомлять по e-mail, когда кто-то продвинул ваш статус
         report: Уведомлять по e-mail при создании жалобы
     'no': Нет
     required:
diff --git a/spec/controllers/settings/identity_proofs_controller_spec.rb b/spec/controllers/settings/identity_proofs_controller_spec.rb
index 5c05eb83c..2a0f91088 100644
--- a/spec/controllers/settings/identity_proofs_controller_spec.rb
+++ b/spec/controllers/settings/identity_proofs_controller_spec.rb
@@ -28,11 +28,11 @@ describe Settings::IdentityProofsController do
 
   describe 'new proof creation' do
     context 'GET #new' do
-      context 'with all of the correct params' do
-        before do
-          allow_any_instance_of(ProofProvider::Keybase::Badge).to receive(:avatar_url) { full_pack_url('media/images/void.png') }
-        end
+      before do
+        allow_any_instance_of(ProofProvider::Keybase::Badge).to receive(:avatar_url) { full_pack_url('media/images/void.png') }
+      end
 
+      context 'with all of the correct params' do
         it 'renders the template' do
           get :new, params: new_proof_params
           expect(response).to render_template(:new)
@@ -54,6 +54,15 @@ describe Settings::IdentityProofsController do
           expect(flash[:alert]).to eq I18n.t('identity_proofs.errors.wrong_user', proving: 'someone_else', current: user.account.username)
         end
       end
+
+      context 'with params to prove the same username cased differently' do
+        let(:capitalized_username) { new_proof_params.merge(username: user.account.username.upcase) }
+
+        it 'renders the new template' do
+          get :new, params: capitalized_username
+          expect(response).to render_template(:new)
+        end
+      end
     end
 
     context 'POST #create' do
diff --git a/spec/lib/proof_provider/keybase/verifier_spec.rb b/spec/lib/proof_provider/keybase/verifier_spec.rb
index 4ce67da9c..0081a735d 100644
--- a/spec/lib/proof_provider/keybase/verifier_spec.rb
+++ b/spec/lib/proof_provider/keybase/verifier_spec.rb
@@ -10,7 +10,7 @@ describe ProofProvider::Keybase::Verifier do
       token: '11111111111111111111111111'
     )
 
-    described_class.new('alice', 'cryptoalice', '11111111111111111111111111')
+    described_class.new('alice', 'cryptoalice', '11111111111111111111111111', my_domain)
   end
 
   let(:query_params) do