about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/concerns/signature_verification.rb2
-rw-r--r--app/helpers/accounts_helper.rb2
-rw-r--r--app/javascript/flavours/glitch/features/video/index.js2
-rw-r--r--app/javascript/flavours/glitch/packs/public.js2
-rw-r--r--app/javascript/mastodon/features/video/index.js2
-rw-r--r--app/javascript/mastodon/locales/ar.json11
-rw-r--r--app/javascript/mastodon/locales/ast.json99
-rw-r--r--app/javascript/mastodon/locales/bg.json3
-rw-r--r--app/javascript/mastodon/locales/bn.json3
-rw-r--r--app/javascript/mastodon/locales/br.json3
-rw-r--r--app/javascript/mastodon/locales/ca.json3
-rw-r--r--app/javascript/mastodon/locales/co.json3
-rw-r--r--app/javascript/mastodon/locales/cs.json5
-rw-r--r--app/javascript/mastodon/locales/cy.json5
-rw-r--r--app/javascript/mastodon/locales/da.json3
-rw-r--r--app/javascript/mastodon/locales/de.json5
-rw-r--r--app/javascript/mastodon/locales/el.json3
-rw-r--r--app/javascript/mastodon/locales/eo.json7
-rw-r--r--app/javascript/mastodon/locales/es-AR.json3
-rw-r--r--app/javascript/mastodon/locales/es.json3
-rw-r--r--app/javascript/mastodon/locales/et.json5
-rw-r--r--app/javascript/mastodon/locales/eu.json3
-rw-r--r--app/javascript/mastodon/locales/fa.json101
-rw-r--r--app/javascript/mastodon/locales/fi.json9
-rw-r--r--app/javascript/mastodon/locales/fr.json3
-rw-r--r--app/javascript/mastodon/locales/ga.json3
-rw-r--r--app/javascript/mastodon/locales/gl.json3
-rw-r--r--app/javascript/mastodon/locales/he.json3
-rw-r--r--app/javascript/mastodon/locales/hi.json3
-rw-r--r--app/javascript/mastodon/locales/hr.json3
-rw-r--r--app/javascript/mastodon/locales/hu.json3
-rw-r--r--app/javascript/mastodon/locales/hy.json3
-rw-r--r--app/javascript/mastodon/locales/id.json3
-rw-r--r--app/javascript/mastodon/locales/io.json3
-rw-r--r--app/javascript/mastodon/locales/is.json5
-rw-r--r--app/javascript/mastodon/locales/it.json5
-rw-r--r--app/javascript/mastodon/locales/ja.json3
-rw-r--r--app/javascript/mastodon/locales/ka.json3
-rw-r--r--app/javascript/mastodon/locales/kab.json83
-rw-r--r--app/javascript/mastodon/locales/kk.json3
-rw-r--r--app/javascript/mastodon/locales/kn.json3
-rw-r--r--app/javascript/mastodon/locales/ko.json5
-rw-r--r--app/javascript/mastodon/locales/lt.json3
-rw-r--r--app/javascript/mastodon/locales/lv.json3
-rw-r--r--app/javascript/mastodon/locales/mk.json3
-rw-r--r--app/javascript/mastodon/locales/ml.json3
-rw-r--r--app/javascript/mastodon/locales/mr.json3
-rw-r--r--app/javascript/mastodon/locales/ms.json3
-rw-r--r--app/javascript/mastodon/locales/nl.json15
-rw-r--r--app/javascript/mastodon/locales/nn.json3
-rw-r--r--app/javascript/mastodon/locales/no.json3
-rw-r--r--app/javascript/mastodon/locales/oc.json19
-rw-r--r--app/javascript/mastodon/locales/pl.json3
-rw-r--r--app/javascript/mastodon/locales/pt-BR.json5
-rw-r--r--app/javascript/mastodon/locales/pt-PT.json5
-rw-r--r--app/javascript/mastodon/locales/ro.json3
-rw-r--r--app/javascript/mastodon/locales/ru.json7
-rw-r--r--app/javascript/mastodon/locales/sk.json3
-rw-r--r--app/javascript/mastodon/locales/sl.json3
-rw-r--r--app/javascript/mastodon/locales/sq.json3
-rw-r--r--app/javascript/mastodon/locales/sr-Latn.json3
-rw-r--r--app/javascript/mastodon/locales/sr.json3
-rw-r--r--app/javascript/mastodon/locales/sv.json3
-rw-r--r--app/javascript/mastodon/locales/ta.json21
-rw-r--r--app/javascript/mastodon/locales/te.json3
-rw-r--r--app/javascript/mastodon/locales/th.json3
-rw-r--r--app/javascript/mastodon/locales/tr.json7
-rw-r--r--app/javascript/mastodon/locales/uk.json3
-rw-r--r--app/javascript/mastodon/locales/ur.json3
-rw-r--r--app/javascript/mastodon/locales/vi.json3
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json15
-rw-r--r--app/javascript/mastodon/locales/zh-HK.json3
-rw-r--r--app/javascript/mastodon/locales/zh-TW.json3
-rw-r--r--app/javascript/packs/public.js2
-rw-r--r--app/models/concerns/remotable.rb2
-rw-r--r--app/serializers/rest/announcement_serializer.rb4
-rw-r--r--app/serializers/rest/status_serializer.rb2
-rw-r--r--app/views/accounts/_og.html.haml2
-rw-r--r--app/views/accounts/show.html.haml2
-rw-r--r--app/views/statuses/show.html.haml2
80 files changed, 408 insertions, 198 deletions
diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb
index ce353f1de..10efbf2e0 100644
--- a/app/controllers/concerns/signature_verification.rb
+++ b/app/controllers/concerns/signature_verification.rb
@@ -160,6 +160,8 @@ module SignatureVerification
       account ||= stoplight_wrap_request { ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false) }
       account
     end
+  rescue Mastodon::HostValidationError
+    nil
   end
 
   def stoplight_wrap_request(&block)
diff --git a/app/helpers/accounts_helper.rb b/app/helpers/accounts_helper.rb
index c9e95d8d8..e977db2c6 100644
--- a/app/helpers/accounts_helper.rb
+++ b/app/helpers/accounts_helper.rb
@@ -11,7 +11,7 @@ module AccountsHelper
 
   def acct(account)
     if account.local?
-      "@#{account.acct}@#{Rails.configuration.x.local_domain}"
+      "@#{account.acct}@#{site_hostname}"
     else
       "@#{account.pretty_acct}"
     end
diff --git a/app/javascript/flavours/glitch/features/video/index.js b/app/javascript/flavours/glitch/features/video/index.js
index 049baaee7..1b5fbce9f 100644
--- a/app/javascript/flavours/glitch/features/video/index.js
+++ b/app/javascript/flavours/glitch/features/video/index.js
@@ -512,7 +512,7 @@ class Video extends React.PureComponent {
             </div>
 
             <div className='video-player__buttons right'>
-              {(!onCloseVideo && !editable) && <button type='button' aria-label={intl.formatMessage(messages.hide)} onClick={this.toggleReveal}><Icon id='eye-slash' fixedWidth /></button>}
+              {(!onCloseVideo && !editable && !fullscreen) && <button type='button' aria-label={intl.formatMessage(messages.hide)} onClick={this.toggleReveal}><Icon id='eye-slash' fixedWidth /></button>}
               {(!fullscreen && onOpenVideo) && <button type='button' aria-label={intl.formatMessage(messages.expand)} onClick={this.handleOpenVideo}><Icon id='expand' fixedWidth /></button>}
               {onCloseVideo && <button type='button' aria-label={intl.formatMessage(messages.close)} onClick={this.handleCloseVideo}><Icon id='compress' fixedWidth /></button>}
               <button type='button' aria-label={intl.formatMessage(messages.download)}>
diff --git a/app/javascript/flavours/glitch/packs/public.js b/app/javascript/flavours/glitch/packs/public.js
index d1adfb17a..d8a97704f 100644
--- a/app/javascript/flavours/glitch/packs/public.js
+++ b/app/javascript/flavours/glitch/packs/public.js
@@ -62,7 +62,7 @@ function main() {
       content.textContent = timeAgoString({
         formatMessage: ({ id, defaultMessage }, values) => (new IntlMessageFormat(messages[id] || defaultMessage, locale)).format(values),
         formatDate: (date, options) => (new Intl.DateTimeFormat(locale, options)).format(date),
-      }, datetime, now, now.getFullYear());
+      }, datetime, now, now.getFullYear(), content.getAttribute('datetime').includes('T'));
     });
 
     const reactComponents = document.querySelectorAll('[data-component]');
diff --git a/app/javascript/mastodon/features/video/index.js b/app/javascript/mastodon/features/video/index.js
index 0e2a99416..8ac9c8db7 100644
--- a/app/javascript/mastodon/features/video/index.js
+++ b/app/javascript/mastodon/features/video/index.js
@@ -517,7 +517,7 @@ class Video extends React.PureComponent {
             </div>
 
             <div className='video-player__buttons right'>
-              {(!onCloseVideo && !editable) && <button type='button' aria-label={intl.formatMessage(messages.hide)} onClick={this.toggleReveal}><Icon id='eye-slash' fixedWidth /></button>}
+              {(!onCloseVideo && !editable && !fullscreen) && <button type='button' aria-label={intl.formatMessage(messages.hide)} onClick={this.toggleReveal}><Icon id='eye-slash' fixedWidth /></button>}
               {(!fullscreen && onOpenVideo) && <button type='button' aria-label={intl.formatMessage(messages.expand)} onClick={this.handleOpenVideo}><Icon id='expand' fixedWidth /></button>}
               {onCloseVideo && <button type='button' aria-label={intl.formatMessage(messages.close)} onClick={this.handleCloseVideo}><Icon id='compress' fixedWidth /></button>}
               <button type='button' aria-label={intl.formatMessage(messages.download)}><a className='video-player__download__icon' href={this.props.src} download><Icon id={'download'} fixedWidth /></a></button>
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 5ce5eb12e..596ebc051 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -1,9 +1,9 @@
 {
   "account.add_or_remove_from_list": "أضفه أو أزله من القائمة",
   "account.badges.bot": "روبوت",
-  "account.badges.group": "Group",
+  "account.badges.group": "فريق",
   "account.block": "حظر @{name}",
-  "account.block_domain": "إخفاء كل شيئ قادم من اسم النطاق {domain}",
+  "account.block_domain": "إخفاء كل شيء قادم من اسم النطاق {domain}",
   "account.blocked": "محظور",
   "account.cancel_follow_request": "إلغاء طلب المتابَعة",
   "account.direct": "رسالة خاصة إلى @{name}",
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "المعدل محدود",
   "alert.unexpected.message": "لقد طرأ هناك خطأ غير متوقّع.",
   "alert.unexpected.title": "المعذرة!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "إعلان",
   "autosuggest_hashtag.per_week": "{count} في الأسبوع",
   "boost_modal.combo": "يمكنك/ي ضغط {combo} لتخطّي هذه في المرّة القادمة",
   "bundle_column_error.body": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "الأساسية",
   "home.column_settings.show_reblogs": "اعرض الترقيات",
   "home.column_settings.show_replies": "اعرض الردود",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# يوم} other {# أيام}}",
   "intervals.full.hours": "{number, plural, one {# ساعة} other {# ساعات}}",
   "intervals.full.minutes": "{number, plural, one {# دقيقة} other {# دقائق}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "الآن",
   "relative_time.minutes": "{number}د",
   "relative_time.seconds": "{number}ثا",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "إلغاء",
   "report.forward": "التحويل إلى {target}",
   "report.forward_hint": "هذا الحساب ينتمي إلى خادوم آخَر. هل تودّ إرسال نسخة مجهولة مِن التقرير إلى هنالك أيضًا؟",
@@ -420,7 +423,7 @@
   "upload_form.video_description": "وصف للمعاقين بصريا أو لِذي قِصر السمع",
   "upload_modal.analyzing_picture": "جارٍ فحص الصورة…",
   "upload_modal.apply": "طبّق",
-  "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
+  "upload_modal.description_placeholder": "نصٌّ حكيمٌ لهُ سِرٌّ قاطِعٌ وَذُو شَأنٍ عَظيمٍ مكتوبٌ على ثوبٍ أخضرَ ومُغلفٌ بجلدٍ أزرق",
   "upload_modal.detect_text": "اكتشف النص مِن الصورة",
   "upload_modal.edit_media": "تعديل الوسائط",
   "upload_modal.hint": "اضغط أو اسحب الدائرة على خانة المعاينة لاختيار نقطة التركيز التي ستُعرَض دائمًا على كل المصغرات.",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index e570fc3b7..8a2657792 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -1,22 +1,22 @@
 {
   "account.add_or_remove_from_list": "Add or Remove from lists",
   "account.badges.bot": "Robó",
-  "account.badges.group": "Group",
+  "account.badges.group": "Grupu",
   "account.block": "Bloquiar a @{name}",
   "account.block_domain": "Anubrir tolo de {domain}",
   "account.blocked": "Blocked",
-  "account.cancel_follow_request": "Cancel follow request",
+  "account.cancel_follow_request": "Encaboxar la solicitú de siguimientu",
   "account.direct": "Unviar un mensaxe direutu a @{name}",
   "account.domain_blocked": "Dominiu anubríu",
   "account.edit_profile": "Editar el perfil",
   "account.endorse": "Destacar nel perfil",
-  "account.follow": "Follow",
+  "account.follow": "Siguir",
   "account.followers": "Siguidores",
   "account.followers.empty": "Naide sigue a esti usuariu entá.",
-  "account.follows": "Sigue a",
+  "account.follows": "Follows",
   "account.follows.empty": "Esti usuariu entá nun sigue a naide.",
   "account.follows_you": "Síguete",
-  "account.hide_reblogs": "Hide boosts from @{name}",
+  "account.hide_reblogs": "Anubrir les comparticiones de @{name}",
   "account.last_status": "Last active",
   "account.link_verified_on": "Ownership of this link was checked on {date}",
   "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
@@ -29,13 +29,13 @@
   "account.never_active": "Enxamás",
   "account.posts": "Barritos",
   "account.posts_with_replies": "Barritos y rempuestes",
-  "account.report": "Report @{name}",
+  "account.report": "Informar de @{name}",
   "account.requested": "Esperando pola aprobación. Calca pa encaboxar la solicitú de siguimientu",
   "account.share": "Share @{name}'s profile",
   "account.show_reblogs": "Show boosts from @{name}",
   "account.unblock": "Desbloquiar a @{name}",
   "account.unblock_domain": "Amosar {domain}",
-  "account.unendorse": "Don't feature on profile",
+  "account.unendorse": "Nun destacar nel perfil",
   "account.unfollow": "Unfollow",
   "account.unmute": "Unmute @{name}",
   "account.unmute_notifications": "Unmute notifications from @{name}",
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Rate limited",
   "alert.unexpected.message": "Asocedió un fallu inesperáu.",
   "alert.unexpected.title": "¡Meca!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Anunciu",
   "autosuggest_hashtag.per_week": "{count} per selmana",
   "boost_modal.combo": "Pues primir {combo} pa saltar esto la próxima vegada",
   "bundle_column_error.body": "Asocedió daqué malo mentanto se cargaba esti componente.",
@@ -71,7 +71,7 @@
   "column_header.moveLeft_settings": "Mover la columna a la esquierda",
   "column_header.moveRight_settings": "Mover la columna a la drecha",
   "column_header.pin": "Fixar",
-  "column_header.show_settings": "Show settings",
+  "column_header.show_settings": "Amosar axustes",
   "column_header.unpin": "Desfixar",
   "column_subheading.settings": "Axustes",
   "community.column_settings.media_only": "Namái multimedia",
@@ -87,7 +87,7 @@
   "compose_form.poll.remove_option": "Remove this choice",
   "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
   "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
-  "compose_form.publish": "Toot",
+  "compose_form.publish": "Barritar",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.hide": "Mark media as sensitive",
   "compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -143,11 +143,11 @@
   "empty_column.account_timeline": "¡Equí nun hai barritos!",
   "empty_column.account_unavailable": "Profile unavailable",
   "empty_column.blocks": "Entá nun bloquiesti a dengún usuariu.",
-  "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+  "empty_column.bookmarked_statuses": "Entá nun tienes nengún barritu en Marcadores. Cuando amiestes unu, va amosase equí.",
   "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í.",
   "empty_column.domain_blocks": "Entá nun hai dominios anubríos.",
-  "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
+  "empty_column.favourited_statuses": "Entá nun tienes nengún barritu en Favoritos. Cuando amiestes unu, va amosase equí.",
   "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
   "empty_column.follow_requests": "Entá nun tienes denguna solicitú de siguimientu. Cuando recibas una, va amosase equí.",
   "empty_column.hashtag": "Entá nun hai nada nesta etiqueta.",
@@ -175,15 +175,17 @@
   "hashtag.column_header.tag_mode.all": "y {additional}",
   "hashtag.column_header.tag_mode.any": "o {additional}",
   "hashtag.column_header.tag_mode.none": "ensin {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
+  "hashtag.column_settings.select.no_options_message": "Nun s'alcontraron suxerencies",
   "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_mode.all": "Toes estes",
+  "hashtag.column_settings.tag_mode.any": "Cualesquiera d'estes",
+  "hashtag.column_settings.tag_mode.none": "Nenguna d'estes",
   "hashtag.column_settings.tag_toggle": "Incluyir les etiquetes adicionales d'esta columna",
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Amosar toots compartíos",
   "home.column_settings.show_replies": "Amosar rempuestes",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# día} other {# díes}}",
   "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
   "intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}",
@@ -212,7 +214,7 @@
   "keyboard_shortcuts.description": "Descripción",
   "keyboard_shortcuts.direct": "p'abrir la columna de los mensaxes direutos",
   "keyboard_shortcuts.down": "pa baxar na llista",
-  "keyboard_shortcuts.enter": "to open status",
+  "keyboard_shortcuts.enter": "p'abrir estaos",
   "keyboard_shortcuts.favourite": "p'amestar a Favoritos",
   "keyboard_shortcuts.favourites": "p'abrir la llista de favoritos",
   "keyboard_shortcuts.federated": "p'abrir la llinia temporal federada",
@@ -252,13 +254,13 @@
   "lists.subheading": "Les tos llistes",
   "load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}",
   "loading_indicator.label": "Cargando…",
-  "media_gallery.toggle_visible": "Toggle visibility",
+  "media_gallery.toggle_visible": "Alternar la visibilidá",
   "missing_indicator.label": "Nun s'alcontró",
   "missing_indicator.sublabel": "Esti recursu nun pudo alcontrase",
-  "mute_modal.hide_notifications": "Hide notifications from this user?",
+  "mute_modal.hide_notifications": "¿Anubrir los avisos d'esti usuariu?",
   "navigation_bar.apps": "Aplicaciones pa móviles",
   "navigation_bar.blocks": "Usuarios bloquiaos",
-  "navigation_bar.bookmarks": "Bookmarks",
+  "navigation_bar.bookmarks": "Marcadores",
   "navigation_bar.community_timeline": "Llinia temporal llocal",
   "navigation_bar.compose": "Compose new toot",
   "navigation_bar.direct": "Mensaxes direutos",
@@ -281,37 +283,37 @@
   "navigation_bar.security": "Seguranza",
   "notification.favourite": "{name} favourited your status",
   "notification.follow": "{name} siguióte",
-  "notification.follow_request": "{name} has requested to follow you",
+  "notification.follow_request": "{name} solicitó siguite",
   "notification.mention": "{name} mentóte",
   "notification.own_poll": "Your poll has ended",
-  "notification.poll": "A poll you have voted in has ended",
+  "notification.poll": "Finó una encuesta na que votesti",
   "notification.reblog": "{name} compartió'l to estáu",
   "notifications.clear": "Llimpiar avisos",
   "notifications.clear_confirmation": "¿De xuru que quies llimpiar dafechu tolos avisos?",
   "notifications.column_settings.alert": "Avisos d'escritoriu",
   "notifications.column_settings.favourite": "Favoritos:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
+  "notifications.column_settings.filter_bar.advanced": "Amosar toles estayes",
+  "notifications.column_settings.filter_bar.category": "Barra de peñera rápida",
   "notifications.column_settings.filter_bar.show": "Amosar",
   "notifications.column_settings.follow": "Siguidores nuevos:",
   "notifications.column_settings.follow_request": "Solicitúes de siguimientu nueves:",
   "notifications.column_settings.mention": "Menciones:",
-  "notifications.column_settings.poll": "Poll results:",
+  "notifications.column_settings.poll": "Resultaos d'encuestes:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Barritos compartíos:",
   "notifications.column_settings.show": "Amosar en columna",
   "notifications.column_settings.sound": "Reproducir un soníu",
-  "notifications.filter.all": "All",
+  "notifications.filter.all": "Too",
   "notifications.filter.boosts": "Boosts",
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
   "notifications.filter.mentions": "Menciones",
   "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} avisos",
-  "poll.closed": "Closed",
+  "poll.closed": "Acabó",
   "poll.refresh": "Refresh",
-  "poll.total_people": "{count, plural, one {# person} other {# people}}",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+  "poll.total_people": "{count, plural, one {# persona} other {# persones}}",
+  "poll.total_votes": "{count, plural, one {# votu} other {# votos}}",
   "poll.vote": "Vote",
   "poll.voted": "You voted for this answer",
   "poll_button.add_poll": "Add a poll",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "agora",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "güei",
   "reply_indicator.cancel": "Encaboxar",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
@@ -340,7 +343,7 @@
   "report.placeholder": "Comentarios adicionales",
   "report.submit": "Submit",
   "report.target": "Report {target}",
-  "search.placeholder": "Search",
+  "search.placeholder": "Guetar",
   "search_popout.search_format": "Formatu de gueta avanzada",
   "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
   "search_popout.tips.hashtag": "etiqueta",
@@ -355,10 +358,10 @@
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
   "status.block": "Bloquiar a @{name}",
-  "status.bookmark": "Bookmark",
+  "status.bookmark": "Amestar a Marcadores",
   "status.cancel_reblog_private": "Dexar de compartir",
   "status.cannot_reblog": "Esti artículu nun pue compartise",
-  "status.copy": "Copy link to status",
+  "status.copy": "Copiar l'enllaz al estáu",
   "status.delete": "Delete",
   "status.detailed_status": "Detailed conversation view",
   "status.direct": "Unviar un mensaxe direutu a @{name}",
@@ -380,50 +383,50 @@
   "status.reblogged_by": "{name} compartió",
   "status.reblogs.empty": "Naide nun compartió esti barritu entá. Cuando daquién lo faiga, va amosase equí.",
   "status.redraft": "Desaniciar y reeditar",
-  "status.remove_bookmark": "Remove bookmark",
+  "status.remove_bookmark": "Desaniciar de Marcadores",
   "status.reply": "Responder",
   "status.replyAll": "Reply to thread",
   "status.report": "Report @{name}",
   "status.sensitive_warning": "Conteníu sensible",
   "status.share": "Share",
   "status.show_less": "Amosar menos",
-  "status.show_less_all": "Show less for all",
+  "status.show_less_all": "Amosar menos en too",
   "status.show_more": "Amosar más",
-  "status.show_more_all": "Show more for all",
+  "status.show_more_all": "Amosar más en too",
   "status.show_thread": "Amosar el filu",
-  "status.uncached_media_warning": "Not available",
+  "status.uncached_media_warning": "Non disponible",
   "status.unmute_conversation": "Unmute conversation",
   "status.unpin": "Desfixar del perfil",
   "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
-  "tabs_bar.federated_timeline": "Federated",
+  "suggestions.header": "Quiciabes t'interese…",
+  "tabs_bar.federated_timeline": "Fediversu",
   "tabs_bar.home": "Aniciu",
   "tabs_bar.local_timeline": "Llocal",
   "tabs_bar.notifications": "Avisos",
   "tabs_bar.search": "Search",
-  "time_remaining.days": "{number, plural, one {# día} other {# díes}} que queden",
-  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
-  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+  "time_remaining.days": "{number, plural, one {Queda # día} other {Queden # díes}}",
+  "time_remaining.hours": "{number, plural, one {# hora restante} other {# hores restantes}}",
+  "time_remaining.minutes": "{number, plural, one {# minutu restante} other {# minutos restantes}}",
   "time_remaining.moments": "Moments remaining",
-  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
+  "time_remaining.seconds": "{number, plural, one {# segundu restante} other {# segundos restantes}}",
   "trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {persones}} falando",
   "trends.trending_now": "Trending now",
   "ui.beforeunload": "El borrador va perdese si coles de Mastodon.",
-  "upload_area.title": "Drag & drop to upload",
+  "upload_area.title": "Arrastra y suelta pa xubir",
   "upload_button.label": "Add media ({formats})",
   "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
-  "upload_form.audio_description": "Describe for people with hearing loss",
+  "upload_error.poll": "La xuba de ficheros nun ta permitida con encuestes.",
+  "upload_form.audio_description": "Descripción pa persones con perda auditiva",
   "upload_form.description": "Descripción pa discapacitaos visuales",
   "upload_form.edit": "Editar",
   "upload_form.undo": "Desaniciar",
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+  "upload_form.video_description": "Descripción pa persones con perda auditiva o discapacidá visual",
   "upload_modal.analyzing_picture": "Analizando la semeya…",
   "upload_modal.apply": "Aplicar",
   "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
-  "upload_modal.detect_text": "Detect text from picture",
+  "upload_modal.detect_text": "Deteutar el testu de la semeya",
   "upload_modal.edit_media": "Edición",
-  "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
+  "upload_modal.hint": "Calca o arrastra'l círculu de la previsualización pa escoyer el puntu d'enfoque que va amosase siempres en toles miniatures.",
   "upload_modal.preview_label": "Previsualización ({ratio})",
   "upload_progress.label": "Xubiendo…",
   "video.close": "Zarrar el videu",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 6a6f9a309..5429f358f 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Show boosts",
   "home.column_settings.show_replies": "Show replies",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Отказ",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index 283812fdf..9b6449064 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "সাধারণ",
   "home.column_settings.show_reblogs": "সমর্থনগুলো দেখান",
   "home.column_settings.show_replies": "মতামত দেখান",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# ঘটা} other {# ঘটা}}",
   "intervals.full.minutes": "{number, plural, one {# মিনিট} other {# মিনিট}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "এখন",
   "relative_time.minutes": "{number}মিঃ",
   "relative_time.seconds": "{number} সেকেন্ড",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "বাতিল করতে",
   "report.forward": "এটা আরো পাঠান {target} তে",
   "report.forward_hint": "এই নিবন্ধনটি অন্য একটি সার্ভারে। অপ্রকাশিতনামাভাবে রিপোর্টের কপি সেখানেও কি পাঠাতে চান ?",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index b6bf0eb8a..96092457f 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Show boosts",
   "home.column_settings.show_replies": "Show replies",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Cancel",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 65ec5750b..11092a133 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Bàsic",
   "home.column_settings.show_reblogs": "Mostra els impulsos",
   "home.column_settings.show_replies": "Mostra les respostes",
+  "home.hide_announcements": "Amaga els anuncis",
+  "home.show_announcements": "Mostra els anuncis",
   "intervals.full.days": "{number, plural, one {# dia} other {# dies}}",
   "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
   "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "ara",
   "relative_time.minutes": "fa {number} minuts",
   "relative_time.seconds": "fa {number} segons",
+  "relative_time.today": "avui",
   "reply_indicator.cancel": "Cancel·lar",
   "report.forward": "Reenvia a {target}",
   "report.forward_hint": "Aquest compte és d'un altre servidor. Enviar-hi també una copia anònima del informe?",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index 8f3c99f8a..7efc9c75e 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Bàsichi",
   "home.column_settings.show_reblogs": "Vede e spartere",
   "home.column_settings.show_replies": "Vede e risposte",
+  "home.hide_announcements": "Piattà annunzii",
+  "home.show_announcements": "Vede annunzii",
   "intervals.full.days": "{number, plural, one {# ghjornu} other {# ghjorni}}",
   "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}",
   "intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "avà",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "oghji",
   "reply_indicator.cancel": "Annullà",
   "report.forward": "Trasferisce à {target}",
   "report.forward_hint": "U contu hè nant'à un'altru servore. Vulete ancu mandà una copia anonima di u signalamentu quallà?",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index f180b7f94..7b427c3f0 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Rychlost omezena",
   "alert.unexpected.message": "Objevila se neočekávaná chyba.",
   "alert.unexpected.title": "Jejda!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Oznámení",
   "autosuggest_hashtag.per_week": "{count} za týden",
   "boost_modal.combo": "Příště můžete pro přeskočení stisknout {combo}",
   "bundle_column_error.body": "Při načítání této komponenty se něco pokazilo.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Základní",
   "home.column_settings.show_reblogs": "Zobrazit boosty",
   "home.column_settings.show_replies": "Zobrazit odpovědi",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dní} other {# dní}}",
   "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodin} other {# hodin}}",
   "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "teď",
   "relative_time.minutes": "{number} m",
   "relative_time.seconds": "{number} s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Zrušit",
   "report.forward": "Přeposlat na {target}",
   "report.forward_hint": "Tento účet je z jiného serveru. Chcete na něj také poslat anonymizovanou kopii?",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index ee58c7168..890baec0b 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Cyfradd gyfyngedig",
   "alert.unexpected.message": "Digwyddodd gwall annisgwyl.",
   "alert.unexpected.title": "Wps!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Cyhoeddiad",
   "autosuggest_hashtag.per_week": "{count} yr wythnos",
   "boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa",
   "bundle_column_error.body": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Syml",
   "home.column_settings.show_reblogs": "Dangos bŵstiau",
   "home.column_settings.show_replies": "Dangos ymatebion",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# ddydd} other {# o ddyddiau}}",
   "intervals.full.hours": "{number, plural, one {# awr} other {# o oriau}}",
   "intervals.full.minutes": "{number, plural, one {# funud} other {# o funudau}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "nawr",
   "relative_time.minutes": "{number}munud",
   "relative_time.seconds": "{number}eiliad",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Canslo",
   "report.forward": "Ymlaen i {target}",
   "report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index a699aaf54..42125a5fc 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Grundlæggende",
   "home.column_settings.show_reblogs": "Vis fremhævelser",
   "home.column_settings.show_replies": "Vis svar",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# dag} other {# dage}}",
   "intervals.full.hours": "{number, plural, one {# time} other {# timer}}",
   "intervals.full.minutes": "{number, plural, one {# minut} other {# minutter}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "nu",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Annuller",
   "report.forward": "Videresend til {target}",
   "report.forward_hint": "Kontoen er fra en anden server. Vil du også sende en anonym kopi af anmeldelsen dertil?",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index aae5ad1c1..cd4ba01a5 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -143,7 +143,7 @@
   "empty_column.account_timeline": "Keine Beiträge!",
   "empty_column.account_unavailable": "Konto nicht verfügbar",
   "empty_column.blocks": "Du hast keine Profile blockiert.",
-  "empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.",
+  "empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Toots gespeichert. Wenn du einen Beitrag als Toot speicherst, wird er hier erscheinen.",
   "empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Ball ins Rollen zu bringen!",
   "empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Wenn du eine sendest oder empfängst, wird sie hier zu sehen sein.",
   "empty_column.domain_blocks": "Es ist noch keine versteckten Domains.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Einfach",
   "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
   "home.column_settings.show_replies": "Antworten anzeigen",
+  "home.hide_announcements": "Verstecke Ankündigungen",
+  "home.show_announcements": "Zeige Ankündigungen",
   "intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}",
   "intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}",
   "intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "jetzt",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "heute",
   "reply_indicator.cancel": "Abbrechen",
   "report.forward": "An {target} weiterleiten",
   "report.forward_hint": "Dieses Konto ist von einem anderen Server. Soll eine anonymisierte Kopie des Berichts auch dorthin geschickt werden?",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index abb6f0d33..5b0067acb 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Βασικές ρυθμίσεις",
   "home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων",
   "home.column_settings.show_replies": "Εμφάνιση απαντήσεων",
+  "home.hide_announcements": "Απόκρυψη ανακοινώσεων",
+  "home.show_announcements": "Εμφάνιση ανακοινώσεων",
   "intervals.full.days": "{number, plural, one {# μέρα} other {# μέρες}}",
   "intervals.full.hours": "{number, plural, one {# ώρα} other {# ώρες}}",
   "intervals.full.minutes": "{number, plural, one {# λεπτό} other {# λεπτά}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "τώρα",
   "relative_time.minutes": "{number}λ",
   "relative_time.seconds": "{number}δ",
+  "relative_time.today": "σήμερα",
   "reply_indicator.cancel": "Άκυρο",
   "report.forward": "Προώθηση προς {target}",
   "report.forward_hint": "Ο λογαριασμός είναι από διαφορετικό διακομιστή. Να σταλεί ανώνυμο αντίγραφο της καταγγελίας κι εκεί;",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index e84e59b2e..a315c9226 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Mesaĝkvante limigita",
   "alert.unexpected.message": "Neatendita eraro okazis.",
   "alert.unexpected.title": "Ups!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Anonco",
   "autosuggest_hashtag.per_week": "{count} semajne",
   "boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje",
   "bundle_column_error.body": "Io misfunkciis en la ŝargado de ĉi tiu elemento.",
@@ -108,7 +108,7 @@
   "confirmations.logout.confirm": "Elsaluti",
   "confirmations.logout.message": "Ĉu vi certas ke vi volas elsaluti?",
   "confirmations.mute.confirm": "Silentigi",
-  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
+  "confirmations.mute.explanation": "Ĉi-tio kaŝos mesaĝojn el ili kaj mesaĝojn kiuj mencias ilin, sed ili ankoraŭ rajtos vidi viajn mesaĝojn kaj sekvi vin.",
   "confirmations.mute.message": "Ĉu vi certas, ke vi volas silentigi {name}?",
   "confirmations.redraft.confirm": "Forigi kaj reskribi",
   "confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun mesaĝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Bazaj agordoj",
   "home.column_settings.show_reblogs": "Montri diskonigojn",
   "home.column_settings.show_replies": "Montri respondojn",
+  "home.hide_announcements": "Kaŝi anoncojn",
+  "home.show_announcements": "Montri anoncojn",
   "intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}",
   "intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}",
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutoj}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "nun",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "hodiaŭ",
   "reply_indicator.cancel": "Nuligi",
   "report.forward": "Plusendi al {target}",
   "report.forward_hint": "La konto estas en alia servilo. Ĉu sendi sennomigitan kopion de la signalo ankaŭ tien?",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index f83e5a251..8e1f84ab8 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar retoots",
   "home.column_settings.show_replies": "Mostrar respuestas",
+  "home.hide_announcements": "Ocultar anuncios",
+  "home.show_announcements": "Mostrar anuncios",
   "intervals.full.days": "{number, plural, one {# día} other {# días}}",
   "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "recién",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "hoy",
   "reply_indicator.cancel": "Cancelar",
   "report.forward": "Reenviar a {target}",
   "report.forward_hint": "La cuenta es de otro servidor. ¿Querés enviar una copia anonimizada del informe también ahí?",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 93484b412..87873b864 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar retoots",
   "home.column_settings.show_replies": "Mostrar respuestas",
+  "home.hide_announcements": "Ocultar anuncios",
+  "home.show_announcements": "Mostrar anuncios",
   "intervals.full.days": "{number, plural, one {# día} other {# días}}",
   "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "ahora",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "hoy",
   "reply_indicator.cancel": "Cancelar",
   "report.forward": "Reenviar a {target}",
   "report.forward_hint": "Esta cuenta es de otro servidor. ¿Enviar una copia anonimizada del informe allí también?",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index 9a13b4ee0..7498962f2 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Piiratud",
   "alert.unexpected.message": "Tekkis ootamatu viga.",
   "alert.unexpected.title": "Oih!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Teadaanne",
   "autosuggest_hashtag.per_week": "{count} nädalas",
   "boost_modal.combo": "Võite vajutada {combo}, et see järgmine kord vahele jätta",
   "bundle_column_error.body": "Midagi läks valesti selle komponendi laadimisel.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Peamine",
   "home.column_settings.show_reblogs": "Näita upitusi",
   "home.column_settings.show_replies": "Näita vastuseid",
+  "home.hide_announcements": "Peida teadaanded",
+  "home.show_announcements": "Kuva teadaandeid",
   "intervals.full.days": "{number, plural, one {# päev} other {# päevad}}",
   "intervals.full.hours": "{number, plural, one {# tund} other {# tundi}}",
   "intervals.full.minutes": "{number, plural, one {# minut} other {# minutit}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "nüüd",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "täna",
   "reply_indicator.cancel": "Tühista",
   "report.forward": "Edasta kasutajale {target}",
   "report.forward_hint": "See kasutaja on teisest serverist. Kas saadan anonümiseeritud koopia sellest teatest sinna ka?",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index c89cb151f..5dc4e60c2 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Oinarrizkoa",
   "home.column_settings.show_reblogs": "Erakutsi bultzadak",
   "home.column_settings.show_replies": "Erakutsi erantzunak",
+  "home.hide_announcements": "Ezkutatu iragarpenak",
+  "home.show_announcements": "Erakutsi iragarpenak",
   "intervals.full.days": "{number, plural, one {egun #} other {# egun}}",
   "intervals.full.hours": "{number, plural, one {ordu #} other {# ordu}}",
   "intervals.full.minutes": "{number, plural, one {minutu #} other {# minutu}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "orain",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "gaur",
   "reply_indicator.cancel": "Utzi",
   "report.forward": "Birbidali hona: {target}",
   "report.forward_hint": "Kontu hau beste zerbitzari batekoa da. Bidali txostenaren kopia anonimo hara ere?",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 3bb2f0ee8..0fc39b16d 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -23,8 +23,8 @@
   "account.media": "رسانه",
   "account.mention": "نام‌بردن از @{name}",
   "account.moved_to": "{name} منتقل شده به:",
-  "account.mute": "خموشی @{name}",
-  "account.mute_notifications": "خموشی اعلان‌ها از @{name}",
+  "account.mute": "خموشاندن @{name}",
+  "account.mute_notifications": "خموشاندن اعلان‌ها از @{name}",
   "account.muted": "خموش",
   "account.never_active": "هرگز",
   "account.posts": "نوشته‌ها",
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "محدودیت تعداد",
   "alert.unexpected.message": "خطایی غیرمنتظره رخ داد.",
   "alert.unexpected.title": "ای وای!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "اعلامیه",
   "autosuggest_hashtag.per_week": "{count} در هفته",
   "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
   "bundle_column_error.body": "هنگام بازکردن این بخش خطایی رخ داد.",
@@ -104,12 +104,12 @@
   "confirmations.delete_list.confirm": "پاک کن",
   "confirmations.delete_list.message": "مطمئنید می‌خواهید این فهرست را برای همیشه پاک کنید؟",
   "confirmations.domain_block.confirm": "نهفتن تمام دامنه",
-  "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدودسازی یا خموشیدن چند حساب خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامنه در فهرست نوشته‌های عمومی یا اعلان‌هایتان نخواهید دید. پیگیرانتان از این دامنه هم حذف خواهند شد.",
+  "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدودسازی یا خموشاندن چند حساب خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامنه در فهرست نوشته‌های عمومی یا اعلان‌هایتان نخواهید دید. پیگیرانتان از این دامنه هم حذف خواهند شد.",
   "confirmations.logout.confirm": "خروج",
   "confirmations.logout.message": "مطمئنید می‌خواهید خارج شوید؟",
-  "confirmations.mute.confirm": "خموشی",
+  "confirmations.mute.confirm": "خموشاندن",
   "confirmations.mute.explanation": "این کار فرسته‌های آن‌ها و فرسته‌هایی را که از آن‌ها نام برده پنهان می‌کند، ولی آن‌ها همچنان اجازه دارند فرسته‌های شما را ببینند و شما را پی بگیرند.",
-  "confirmations.mute.message": "مطمئنید می‌خواهید {name} را بخموشید؟",
+  "confirmations.mute.message": "مطمئنید می‌خواهید {name} را بخموشانید؟",
   "confirmations.redraft.confirm": "پاک‌کردن و بازنویسی",
   "confirmations.redraft.message": "مطمئنید که می‌خواهید این بوق را پاک کنید و از نو بنویسید؟ با این کار بازبوق‌ها و پسندهای آن از دست می‌رود و پاسخ‌ها به آن بی‌مرجع می‌شود.",
   "confirmations.reply.confirm": "پاسخ",
@@ -159,7 +159,7 @@
   "empty_column.notifications": "هنوز هیچ اعلانی ندارید. به دیگران واکنش نشان دهید تا گفتگو آغاز شود.",
   "empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران کارسازهای دیگر را پی بگیرید تا این‌جا پر شود",
   "error.unexpected_crash.explanation": "به خاطر اشکالی در کدهای ما یا ناسازگاری با مرورگر شما، این صفحه به درستی نمایش نیافت.",
-  "error.unexpected_crash.next_steps": "لطفاً صفحه را دوباره باز کنید. اگر کمکی نکرد، شاید همچنان بتوانید با ماستدون از راه یک مرورگر دیگر یا با یکی از اپ‌های آن کار کنید.",
+  "error.unexpected_crash.next_steps": "لطفاً صفحه را دوباره باز کنید. اگر کمکی نکرد، شاید همچنان بتوانید با ماستودون از راه یک مرورگر دیگر یا با یکی از اپ‌های آن کار کنید.",
   "errors.unexpected_crash.copy_stacktrace": "رونوشت از جزئیات اشکال",
   "errors.unexpected_crash.report_issue": "گزارش مشکل",
   "follow_request.authorize": "اجازه دهید",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "پایه‌ای",
   "home.column_settings.show_reblogs": "نمایش بازبوق‌ها",
   "home.column_settings.show_replies": "نمایش پاسخ‌ها",
+  "home.hide_announcements": "نهفتن اعلامیه‌ها",
+  "home.show_announcements": "نمایش اعلامیه‌ها",
   "intervals.full.days": "{number, plural, one {# روز} other {# روز}}",
   "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}",
   "intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}",
@@ -273,7 +275,7 @@
   "navigation_bar.keyboard_shortcuts": "میان‌برها",
   "navigation_bar.lists": "فهرست‌ها",
   "navigation_bar.logout": "خروج",
-  "navigation_bar.mutes": "کاربران خموشیده",
+  "navigation_bar.mutes": "کاربران خموشانده",
   "navigation_bar.personal": "شخصی",
   "navigation_bar.pins": "بوق‌های ثابت",
   "navigation_bar.preferences": "ترجیحات",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "الان",
   "relative_time.minutes": "{number} دقیقه",
   "relative_time.seconds": "{number} ثانیه",
+  "relative_time.today": "امروز",
   "reply_indicator.cancel": "لغو",
   "report.forward": "فرستادن به {target}",
   "report.forward_hint": "این حساب در کارساز دیگری ثبت شده. آیا می‌خواهید رونوشتی ناشناس از این گزارش به آن‌جا هم فرستاده شود؟",
@@ -342,44 +345,44 @@
   "report.target": "در حال گزارش {target}",
   "search.placeholder": "جستجو",
   "search_popout.search_format": "راهنمای جستجوی پیشرفته",
-  "search_popout.tips.full_text": "جست‌وجوی متنی ساده وضعیت‌هایی که که نوشته، برگزیده، تقویت‌کرده یا در آن‌ها اشاره‌شده‌اید را به اضافهٔ نام‌های کاربری، نام‌های نمایشی و برچسب‌های مطابق برمی‌گرداند.",
+  "search_popout.tips.full_text": "جستجوی متنی ساده می‌تواند بوق‌هایی که شما نوشته‌اید، پسندیده‌اید، بازبوقیده‌اید، یا در آن‌ها از شما نام برده شده است را پیدا کند. همچنین نام‌های کاربری، نام نمایش‌یافته، و هشتگ‌ها را هم شامل می‌شود.",
   "search_popout.tips.hashtag": "برچسب",
-  "search_popout.tips.status": "وضعیت",
-  "search_popout.tips.text": "جست‌وجوی متنی ساده، نام‌های نمایشی، نام‌های کاربری، و برچسب‌ها را برمی‌گرداند",
+  "search_popout.tips.status": "بوق",
+  "search_popout.tips.text": "جستجوی متنی ساده برای نام‌ها، نام‌های کاربری، و برچسب‌ها",
   "search_popout.tips.user": "کاربر",
   "search_results.accounts": "افراد",
   "search_results.hashtags": "برچسب‌ها",
   "search_results.statuses": "بوق‌ها",
-  "search_results.statuses_fts_disabled": "جست‌وجوی بوق‌ها بر اساس محتوایشان روی این کارساز ماستودون به کار نیفتاده است.",
+  "search_results.statuses_fts_disabled": "جستجوی محتوای بوق‌ها در این کارساز ماستودون فعال نشده است.",
   "search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}",
   "status.admin_account": "گشودن واسط مدیریت برای @{name}",
-  "status.admin_status": "گشودن این وضعیت در واسط مدیریت",
-  "status.block": "انسداد @{name}",
+  "status.admin_status": "گشودن این بوق در واسط مدیریت",
+  "status.block": "مسدودسازی @{name}",
   "status.bookmark": "نشانک",
-  "status.cancel_reblog_private": "ناتقویت",
-  "status.cannot_reblog": "این نوشته نمی‌تواند تقویت شود",
-  "status.copy": "رونوشت از پیوند به وضعیت",
-  "status.delete": "حذف",
-  "status.detailed_status": "نمای گفت‌وگوی باجزییات",
-  "status.direct": "پیام خصوصی به @{name}",
+  "status.cancel_reblog_private": "حذف بازبوق",
+  "status.cannot_reblog": "این نوشته را نمی‌شود بازبوقید",
+  "status.copy": "رونوشت‌برداری از نشانی بوق",
+  "status.delete": "پاک‌کردن",
+  "status.detailed_status": "نمایش کامل گفتگو",
+  "status.direct": "پیغام مستقیم به @{name}",
   "status.embed": "جاگذاری",
-  "status.favourite": "برگزیدن",
+  "status.favourite": "پسندیدن",
   "status.filtered": "پالوده",
-  "status.load_more": "بار کردن بیشتر",
+  "status.load_more": "بیشتر نشان بده",
   "status.media_hidden": "رسانهٔ نهفته",
-  "status.mention": "اشاره به @{name}",
+  "status.mention": "نام‌بردن از @{name}",
   "status.more": "بیشتر",
-  "status.mute": "خموشی @{name}",
-  "status.mute_conversation": "خموشی گفت‌وگو",
-  "status.open": "گسترش این وضعیت",
-  "status.pin": "سنجاق به نمایه",
-  "status.pinned": "بوق سنجاق‌شده",
+  "status.mute": "خموشاندن @{name}",
+  "status.mute_conversation": "خموشاندن گفتگو",
+  "status.open": "گشودن این بوق",
+  "status.pin": "ثابت کردن در نمایه",
+  "status.pinned": "بوق ثابت",
   "status.read_more": "بیشتر بخوانید",
-  "status.reblog": "تقویت",
-  "status.reblog_private": "تقویت برای مخاطبان نخستین",
-  "status.reblogged_by": "‫{name}‬ تقویت کرد",
-  "status.reblogs.empty": "هنوز کسی این بوق را تقویت نکرده است. وقتی کسی چنین کاری کند، این‌جا دیده خواهد شد.",
-  "status.redraft": "حذف و بازنویسی",
+  "status.reblog": "بازبوقیدن",
+  "status.reblog_private": "بازبوق به مخاطبان اولیه",
+  "status.reblogged_by": "‫{name}‬ بازبوقید",
+  "status.reblogs.empty": "هنوز هیچ کسی این بوق را بازنبوقیده است. وقتی کسی چنین کاری کند، این‌جا نمایش خواهد یافت.",
+  "status.redraft": "پاک‌کردن و بازنویسی",
   "status.remove_bookmark": "برداشتن نشانک",
   "status.reply": "پاسخ",
   "status.replyAll": "پاسخ به رشته",
@@ -387,53 +390,53 @@
   "status.sensitive_warning": "محتوای حساس",
   "status.share": "هم‌رسانی",
   "status.show_less": "نمایش کمتر",
-  "status.show_less_all": "نمایش کمتر برای همه",
+  "status.show_less_all": "نمایش کمتر همه",
   "status.show_more": "نمایش بیشتر",
-  "status.show_more_all": "نمایش بیشتر برای همه",
+  "status.show_more_all": "نمایش بیشتر همه",
   "status.show_thread": "نمایش رشته",
   "status.uncached_media_warning": "ناموجود",
-  "status.unmute_conversation": "رفع خموشی گفت‌وگو",
-  "status.unpin": "برداشتن سنجاق از نمایه",
+  "status.unmute_conversation": "رفع خموشی گفتگو",
+  "status.unpin": "برداشتن نوشتهٔ ثابت نمایه",
   "suggestions.dismiss": "نادیده گرفتن پیشنهاد",
   "suggestions.header": "شاید این هم برایتان جالب باشد…",
   "tabs_bar.federated_timeline": "همگانی",
   "tabs_bar.home": "خانه",
   "tabs_bar.local_timeline": "محلّی",
-  "tabs_bar.notifications": "آگاهی‌ها",
-  "tabs_bar.search": "جست‌وجو",
+  "tabs_bar.notifications": "اعلان‌ها",
+  "tabs_bar.search": "جستجو",
   "time_remaining.days": "{number, plural, one {# روز} other {# روز}} باقی مانده",
   "time_remaining.hours": "{number, plural, one {# ساعت} other {# ساعت}} باقی مانده",
   "time_remaining.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}} باقی مانده",
-  "time_remaining.moments": "لحظاتی باقی‌مانده",
+  "time_remaining.moments": "زمان باقی‌مانده",
   "time_remaining.seconds": "{number, plural, one {# ثانیه} other {# ثانیه}} باقی مانده",
   "trends.count_by_accounts": "{count} {rawCount, plural, one {نفر نوشته است} other {نفر نوشته‌اند}}",
   "trends.trending_now": "پرطرفدار",
-  "ui.beforeunload": "در صورت خروج از از ماستودون، پیش‌نویستان از دست خواهد رفت.",
+  "ui.beforeunload": "اگر از ماستودون خارج شوید پیش‌نویس شما از دست خواهد رفت.",
   "upload_area.title": "برای بارگذاری به این‌جا بکشید",
   "upload_button.label": "افزودن رسانه ({formats})",
-  "upload_error.limit": "تجاوز از کران بارگذاری پرونده.",
+  "upload_error.limit": "از حد مجاز باگذاری پرونده فراتر رفتید.",
   "upload_error.poll": "بارگذاری پرونده در نظرسنجی‌ها مجاز نیست.",
-  "upload_form.audio_description": "توصیف برای افراد فاقد شنوایی",
-  "upload_form.description": "توضیح برای کم‌بینایان",
+  "upload_form.audio_description": "برای ناشنوایان توصیفش کنید",
+  "upload_form.description": "برای کم‌بینایان توصیفش کنید",
   "upload_form.edit": "ویرایش",
   "upload_form.undo": "حذف",
-  "upload_form.video_description": "توصیف برای افراد با اختلال دید یا فاقد شنوایی",
+  "upload_form.video_description": "برای کم‌بینایان یا ناشنوایان توصیفش کنید",
   "upload_modal.analyzing_picture": "در حال پردازش تصویر…",
   "upload_modal.apply": "اعمال",
   "upload_modal.description_placeholder": "الا یا ایّها الساقی، ادر کأساً و ناولها",
   "upload_modal.detect_text": "تشخیص متن درون عکس",
   "upload_modal.edit_media": "ویرایش رسانه",
-  "upload_modal.hint": "دایره را روی پیش‌نمایش کشیده یا کلیک کنید تا نقطهٔ کانونی‌ای که همواره باید در تمام بندانگشتی‌ها داخل نما باشد را برگزینید.",
+  "upload_modal.hint": "حتی اگر تصویر بریده یا کوچک شود، نقطهٔ کانونی آن همیشه دیده خواهد شد. نقطهٔ کانونی را با کلیک یا جابه‌جا کردن آن تنظیم کنید.",
   "upload_modal.preview_label": "پیش‌نمایش ({ratio})",
   "upload_progress.label": "در حال بارگذاری…",
   "video.close": "بستن ویدیو",
   "video.download": "بارگیری پرونده",
   "video.exit_fullscreen": "خروج از حالت تمام‌صفحه",
-  "video.expand": "گسترش ویدیو",
+  "video.expand": "بزرگ‌کردن ویدیو",
   "video.fullscreen": "تمام‌صفحه",
   "video.hide": "نهفتن ویدیو",
-  "video.mute": "خموشی صدا",
+  "video.mute": "قطع صدا",
   "video.pause": "مکث",
   "video.play": "پخش",
-  "video.unmute": "رفع خموشی صدا"
+  "video.unmute": "پخش صدا"
 }
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 8a069f2a3..b46083477 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -64,7 +64,7 @@
   "column.lists": "Listat",
   "column.mutes": "Mykistetyt käyttäjät",
   "column.notifications": "Ilmoitukset",
-  "column.pins": "Kiinnitetty tuuttaus",
+  "column.pins": "Kiinnitetyt tuuttaukset",
   "column.public": "Yleinen aikajana",
   "column_back_button.label": "Takaisin",
   "column_header.hide_settings": "Piilota asetukset",
@@ -165,7 +165,7 @@
   "follow_request.authorize": "Valtuuta",
   "follow_request.reject": "Hylkää",
   "getting_started.developers": "Kehittäjille",
-  "getting_started.directory": "Profiili hakemisto",
+  "getting_started.directory": "Profiilihakemisto",
   "getting_started.documentation": "Documentaatio",
   "getting_started.heading": "Aloitus",
   "getting_started.invite": "Kutsu ihmisiä",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Perusasetukset",
   "home.column_settings.show_reblogs": "Näytä buustaukset",
   "home.column_settings.show_replies": "Näytä vastaukset",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "Päivä päiviä",
   "intervals.full.hours": "Tunti tunteja",
   "intervals.full.minutes": "Minuuti minuuteja",
@@ -269,7 +271,7 @@
   "navigation_bar.filters": "Mykistetyt sanat",
   "navigation_bar.follow_requests": "Seuraamispyynnöt",
   "navigation_bar.follows_and_followers": "Seurattavat ja seuraajat",
-  "navigation_bar.info": "Tietoa tästä instanssista",
+  "navigation_bar.info": "Tietoa tästä palvelimesta",
   "navigation_bar.keyboard_shortcuts": "Näppäinkomennot",
   "navigation_bar.lists": "Listat",
   "navigation_bar.logout": "Kirjaudu ulos",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "nyt",
   "relative_time.minutes": "{number} m",
   "relative_time.seconds": "{number} s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Peruuta",
   "report.forward": "Välitä kohteeseen {target}",
   "report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 7cd5ec0e3..f61c15d57 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Base",
   "home.column_settings.show_reblogs": "Afficher les partages",
   "home.column_settings.show_replies": "Afficher les réponses",
+  "home.hide_announcements": "Masquer les annonces",
+  "home.show_announcements": "Afficher les annonces",
   "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}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "à l’instant",
   "relative_time.minutes": "{number} min",
   "relative_time.seconds": "{number} s",
+  "relative_time.today": "aujourd’hui",
   "reply_indicator.cancel": "Annuler",
   "report.forward": "Transférer à {target}",
   "report.forward_hint": "Le compte provient d’un autre serveur. Envoyer également une copie anonyme du rapport ?",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index 508456736..0e9c9d6d1 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Show boosts",
   "home.column_settings.show_replies": "Show replies",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Cancel",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 81ba22987..798557200 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Amosar compartidos",
   "home.column_settings.show_replies": "Amosar respostas",
+  "home.hide_announcements": "Agochar anuncios",
+  "home.show_announcements": "Amosar anuncios",
   "intervals.full.days": "{number, plural,one {# día} other {# días}}",
   "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "agora",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "hoxe",
   "reply_indicator.cancel": "Desbotar",
   "report.forward": "Reenviar a {target}",
   "report.forward_hint": "A conta é doutro servidor. Enviar unha copia anónima da denuncia aló tamén?",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 07217364a..7e394c112 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "למתחילים",
   "home.column_settings.show_reblogs": "הצגת הדהודים",
   "home.column_settings.show_replies": "הצגת תגובות",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "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}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "כרגע",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "ביטול",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index ff7ea9e6a..d4659bc2e 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "बुनियादी",
   "home.column_settings.show_reblogs": "बूस्ट दिखाए",
   "home.column_settings.show_replies": "जवाबों को दिखाए",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "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}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "अभी",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "रद्द करें",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 31327e3d3..ab6883eff 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Osnovno",
   "home.column_settings.show_reblogs": "Pokaži boostove",
   "home.column_settings.show_replies": "Pokaži odgovore",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Otkaži",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index e8dc573fa..b25369326 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Alapvető",
   "home.column_settings.show_reblogs": "Megtolások mutatása",
   "home.column_settings.show_replies": "Válaszok mutatása",
+  "home.hide_announcements": "Közlemények elrejtése",
+  "home.show_announcements": "Közlemények mutatása",
   "intervals.full.days": "{number, plural, one {# nap} other {# nap}}",
   "intervals.full.hours": "{number, plural, one {# óra} other {# óra}}",
   "intervals.full.minutes": "{number, plural, one {# perc} other {# perc}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "most",
   "relative_time.minutes": "{number}p",
   "relative_time.seconds": "{number}mp",
+  "relative_time.today": "ma",
   "reply_indicator.cancel": "Mégsem",
   "report.forward": "Továbbítás: {target}",
   "report.forward_hint": "Ez a fiók egy másik kiszolgálóról van. Oda is elküldöd a jelentés egy anonimizált másolatát?",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index 1ad3cb0fd..6a0e825b0 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Հիմնական",
   "home.column_settings.show_reblogs": "Ցուցադրել տարածածները",
   "home.column_settings.show_replies": "Ցուցադրել պատասխանները",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "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}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "նոր",
   "relative_time.minutes": "{number}ր",
   "relative_time.seconds": "{number}վ",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Չեղարկել",
   "report.forward": "Փոխանցել {target}֊ին",
   "report.forward_hint": "Այս հաշիւ այլ հանգոյցից է։ Ուղարկե՞մ այնտեղ էլ այս բողոքի անոնիմ պատճէնը։",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index b1605ac60..8cf3f3e58 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Dasar",
   "home.column_settings.show_reblogs": "Tampilkan boost",
   "home.column_settings.show_replies": "Tampilkan balasan",
+  "home.hide_announcements": "Sembunyikan pengumuman",
+  "home.show_announcements": "Tampilkan pengumuman",
   "intervals.full.days": "{number, plural, other {# hari}}",
   "intervals.full.hours": "{number, plural, other {# jam}}",
   "intervals.full.minutes": "{number, plural, other {# menit}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "sekarang",
   "relative_time.minutes": "{number}b",
   "relative_time.seconds": "{number}d",
+  "relative_time.today": "hari ini",
   "reply_indicator.cancel": "Batal",
   "report.forward": "Teruskan ke {target}",
   "report.forward_hint": "Akun dari server lain. Kirim salinan laporan scr anonim ke sana?",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 36bf1a588..f53c77172 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Simpla",
   "home.column_settings.show_reblogs": "Montrar repeti",
   "home.column_settings.show_replies": "Montrar respondi",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Nihiligar",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 53b2a150a..4c6599b39 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Með takmörkum",
   "alert.unexpected.message": "Upp kom óvænt villa.",
   "alert.unexpected.title": "Úbbs!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Auglýsing",
   "autosuggest_hashtag.per_week": "{count} á viku",
   "boost_modal.combo": "Þú getur ýtt á {combo} til að sleppa þessu næst",
   "bundle_column_error.body": "Eitthvað fór úrskeiðis við að hlaða inn þessari einingu.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Einfalt",
   "home.column_settings.show_reblogs": "Sýna endurbirtingar",
   "home.column_settings.show_replies": "Birta svör",
+  "home.hide_announcements": "Fela auglýsingar",
+  "home.show_announcements": "Birta auglýsingar",
   "intervals.full.days": "{number, plural, one {# dagur} other {# dagar}}",
   "intervals.full.hours": "{number, plural, one {# klukkustund} other {# klukkustundir}}",
   "intervals.full.minutes": "{number, plural, one {# mínúta} other {# mínútur}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "núna",
   "relative_time.minutes": "{number}mín",
   "relative_time.seconds": "{number}sek",
+  "relative_time.today": "í dag",
   "reply_indicator.cancel": "Hætta við",
   "report.forward": "Áframsenda til {target}",
   "report.forward_hint": "Notandaaðgangurinn er af öðrum vefþjóni. Á einnig að senda nafnlaust afrit af kærunni þangað?",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 1b31f90f6..94f81116c 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Numero massimo di richieste superato",
   "alert.unexpected.message": "Si è verificato un errore inatteso.",
   "alert.unexpected.title": "Oops!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Annuncio",
   "autosuggest_hashtag.per_week": "{count} per settimana",
   "boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio la prossima volta",
   "bundle_column_error.body": "E' avvenuto un errore durante il caricamento di questo componente.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Semplice",
   "home.column_settings.show_reblogs": "Mostra post condivisi",
   "home.column_settings.show_replies": "Mostra risposte",
+  "home.hide_announcements": "Nascondi annunci",
+  "home.show_announcements": "Mostra annunci",
   "intervals.full.days": "{number, plural, one {# giorno} other {# giorni}}",
   "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}",
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minuti}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "ora",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "oggi",
   "reply_indicator.cancel": "Annulla",
   "report.forward": "Inoltra a {target}",
   "report.forward_hint": "Questo account appartiene a un altro server. Mandare anche là una copia anonima del rapporto?",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index 67cee9276..b1a9ad9ce 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -188,6 +188,8 @@
   "home.column_settings.basic": "基本設定",
   "home.column_settings.show_reblogs": "ブースト表示",
   "home.column_settings.show_replies": "返信表示",
+  "home.hide_announcements": "お知らせを隠す",
+  "home.show_announcements": "お知らせを表示",
   "intervals.full.days": "{number}日",
   "intervals.full.hours": "{number}時間",
   "intervals.full.minutes": "{number}分",
@@ -338,6 +340,7 @@
   "relative_time.just_now": "今",
   "relative_time.minutes": "{number}分前",
   "relative_time.seconds": "{number}秒前",
+  "relative_time.today": "今日",
   "reply_indicator.cancel": "キャンセル",
   "report.forward": "{target} に転送する",
   "report.forward_hint": "このアカウントは別のサーバーに所属しています。通報内容を匿名で転送しますか?",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 1222702a4..4e5c8595e 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "ძირითადი",
   "home.column_settings.show_reblogs": "ბუსტების ჩვენება",
   "home.column_settings.show_replies": "პასუხების ჩვენება",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "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}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "ახლა",
   "relative_time.minutes": "{number}წთ",
   "relative_time.seconds": "{number}წმ",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "უარყოფა",
   "report.forward": "ფორვარდი {target}-ს",
   "report.forward_hint": "ანგარიში სხვა სერვერიდანაა. გავაგზავნოთ რეპორტის ანონიმური ასლიც?",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index ec77fa9e4..d73110508 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -13,7 +13,7 @@
   "account.follow": "Ḍfeṛ",
   "account.followers": "Imeḍfaṛen",
   "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.",
-  "account.follows": "Aḍfaṛen",
+  "account.follows": "Ig ṭafaṛ",
   "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.",
   "account.follows_you": "Yeṭṭafaṛ-ik",
   "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}",
@@ -27,7 +27,7 @@
   "account.mute_notifications": "Susem ilγa sγur @{name}",
   "account.muted": "Yettwasgugem",
   "account.never_active": "Werǧin",
-  "account.posts": "Tiberraḥin",
+  "account.posts": "Tijewwaqin",
   "account.posts_with_replies": "Tibarraḥin d tririyin",
   "account.report": "Sewɛed @{name}",
   "account.requested": "Di laɛḍil ad yettwaqbel. Ssit iwakken ad yefsex usuter n weḍfar",
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Aktum s talast",
   "alert.unexpected.message": "Tella-d tuccḍa i ɣef ur nedmi ara.",
   "alert.unexpected.title": "Ayhuh!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Ulγu",
   "autosuggest_hashtag.per_week": "{count} i yimalas",
   "boost_modal.combo": "Tzemreḍ ad tetekkiḍ γef {combo} akken ad tessurfeḍ aya tikelt-nniḍen",
   "bundle_column_error.body": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.",
@@ -64,7 +64,7 @@
   "column.lists": "Tibdarin",
   "column.mutes": "Imiḍanen yettwasgugmen",
   "column.notifications": "Tilγa",
-  "column.pins": "Tiberraḥin yettwasenṭḍen",
+  "column.pins": "Tijewwaqin yettwasenṭḍen",
   "column.public": "Tasuddemt tamatut",
   "column_back_button.label": "Tuγalin",
   "column_header.hide_settings": "Ffer iγewwaṛen",
@@ -75,7 +75,7 @@
   "column_header.unpin": "Kkes asenteḍ",
   "column_subheading.settings": "Iγewwaṛen",
   "community.column_settings.media_only": "Allal n teywalt kan",
-  "compose_form.direct_message_warning": "Taberraḥt-a ad d-tettwasken kan i yimseqdacen i d-yettwabedren.",
+  "compose_form.direct_message_warning": "Tajewwaqt-a ad d-tettwasken kan i yimseqdacen i d-yettwabedren.",
   "compose_form.direct_message_warning_learn_more": "Issin ugar",
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
   "compose_form.lock_disclaimer": "Amiḍan-ik ur yelli ara {locked}. Menwala yezmer ad k-yeḍfeṛ akken ad iẓer acu tbeṭṭuḍ akked yimeḍfaṛen-ik.",
@@ -87,7 +87,7 @@
   "compose_form.poll.remove_option": "Sfeḍ afran-agi",
   "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
   "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
-  "compose_form.publish": "Taberraḥt",
+  "compose_form.publish": "Jewweq",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.hide": "Creḍ allal n teywalt d anafri",
   "compose_form.sensitive.marked": "Allal n teywalt yettwacreḍ d anafri",
@@ -111,7 +111,7 @@
   "confirmations.mute.explanation": "Aya ad yeffer iznan-is d wid i deg d-yettwabder neγ d-tettwabder, maca xas akka yezmer neγ tezmer awali n yiznan-inek d uḍfaṛ-ik.",
   "confirmations.mute.message": "Tetḥeqqeḍ belli tebγiḍ asɛuggen n {name}?",
   "confirmations.redraft.confirm": "Sfeḍ & Ɛiwed tira",
-  "confirmations.redraft.message": "Tetḥeqqeḍ belli tebγiḍ asfaḍ n waddad-agi iwakken ad s-tɛiwdeḍ tira? Ismenyifen d beḍḍuwat ad ṛuḥen, ma d tiririyin-is ad uγalent d tigujilin.",
+  "confirmations.redraft.message": "Tetḥeqqeḍ belli tebγiḍ tuksa n waddad-agi iwakken ad s-tɛiwdeḍ tira? Ismenyifen d beḍḍuwat ad ṛuḥen, ma d tiririyin-is ad uγalent d tigujilin.",
   "confirmations.reply.confirm": "Err",
   "confirmations.reply.message": "Tiririt akka tura ad k-degger izen-agi i tettaruḍ. Tebγiḍ ad tkemmleḍ?",
   "confirmations.unfollow.confirm": "Ur ḍḍafaṛ ara",
@@ -122,7 +122,7 @@
   "conversation.with": "Akked {names}",
   "directory.federated": "Seg fedivers yettwasnen",
   "directory.local": "Seg {domain} kan",
-  "directory.new_arrivals": "Inebgawen imaynuten",
+  "directory.new_arrivals": "Imaynuten id yewḍen",
   "directory.recently_active": "Yermed xas melmi kan",
   "embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenγal n tangalt yellan sdaw-agi.",
   "embed.preview": "Akka ara d-iban:",
@@ -140,15 +140,15 @@
   "emoji_button.search_results": "Igmaḍ u unadi",
   "emoji_button.symbols": "Izamulen",
   "emoji_button.travel": "Imeḍqan d Yinigen",
-  "empty_column.account_timeline": "Ulac tiberraḥin dagi!",
+  "empty_column.account_timeline": "Ulac tijewwaqin dagi!",
   "empty_column.account_unavailable": "Ur nufi ara amaγnu-a",
   "empty_column.blocks": "Ur tesḥebseḍ ula yiwen n umseqdac ar tura.",
-  "empty_column.bookmarked_statuses": "Ulac tiberraḥin i terniḍ γer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.",
+  "empty_column.bookmarked_statuses": "Ulac tijewwaqin i terniḍ γer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.",
   "empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!",
   "empty_column.direct": "Ulac γur-k ula yiwen n yizen usrid. Ad d-yettwasken da, ticki tuzneḍ neγ teṭṭfeḍ-d yiwen.",
   "empty_column.domain_blocks": "Ulac kra n taγult yettwaffren ar tura.",
-  "empty_column.favourited_statuses": "Ulac ula yiwet n tberraḥt deg yismenyifen-ik ar tura. Ticki Tella-d yiwet, ad d-ban da.",
-  "empty_column.favourites": "Ula yiwen ur yerri taberraḥt-agi deg yismenyifen-is. Melmi i d-yella waya, ad d-yettwasken da.",
+  "empty_column.favourited_statuses": "Ulac ula yiwet n tjewwaqt deg yismenyifen-ik ar tura. Ticki Tella-d yiwet, ad d-ban da.",
+  "empty_column.favourites": "Ula yiwen ur yerri tajewwaqt-agi deg yismenyifen-is. Melmi i d-yella waya, ad d-yettwasken da.",
   "empty_column.follow_requests": "Ulac γur-k ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.",
   "empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaγ γer uhacṭag-agi.",
   "empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neγ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.",
@@ -159,17 +159,17 @@
   "empty_column.notifications": "Ulac γur-k tilγa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.",
   "empty_column.public": "Ulac kra da! Aru kra, neγ ḍfeṛ imdanen i yellan deg yiqeddacen-nniḍen akken ad d-teččar tsuddemt tazayezt",
   "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
-  "error.unexpected_crash.next_steps": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Masṭudun deg yiminig-nniḍen neγ deg usnas anaṣli.",
+  "error.unexpected_crash.next_steps": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Maṣṭudun deg yiminig-nniḍen neγ deg usnas anaṣli.",
   "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
   "errors.unexpected_crash.report_issue": "Mmel ugur",
   "follow_request.authorize": "Ssireg",
   "follow_request.reject": "Agi",
   "getting_started.developers": "Ineflayen",
-  "getting_started.directory": "Imaγnuten",
+  "getting_started.directory": "Akaram n imaγnuten",
   "getting_started.documentation": "Amnir",
   "getting_started.heading": "Bdu",
   "getting_started.invite": "Snebgi-d imdanen",
-  "getting_started.open_source_notice": "Mastudun d aseγzan s uγbalu yeldin. Tzemreḍ ad tɛiwneḍ neγ ad temmleḍ uguren deg GitHub {github}.",
+  "getting_started.open_source_notice": "Maṣṭudun d aseγzan s uγbalu yeldin. Tzemreḍ ad tɛiwneḍ neγ ad temmleḍ uguren deg GitHub {github}.",
   "getting_started.security": "Iγewwaṛen n umiḍan",
   "getting_started.terms": "Tiwetlin n useqdec",
   "hashtag.column_header.tag_mode.all": "d {additional}",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Igejdanen",
   "home.column_settings.show_reblogs": "Sken-d beṭṭu",
   "home.column_settings.show_replies": "Sken-d tiririyin",
+  "home.hide_announcements": "Ffer ulγuyen",
+  "home.show_announcements": "Sken-d ulγuyen",
   "intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}",
   "intervals.full.hours": "{number, plural, one {# n usarag} other {# n yesragen}}",
   "intervals.full.minutes": "{number, plural, one {# n tesdat} other {# n tesdatin}}",
@@ -196,11 +198,11 @@
   "introduction.federation.local.text": "Iznan izuyaz n yemdanen i yellan deg yiwen uqeddac akked kečč ad d-banen deg tsuddemt tazayezt tadigant.",
   "introduction.interactions.action": "Fakk tameskant!",
   "introduction.interactions.favourite.headline": "Ismenyifen",
-  "introduction.interactions.favourite.text": "Tzemreḍ ad teǧǧeḍ kra n tberraḥt i ticki, daγen ad tiniḍ i bab-is d akken taɛǧeb-ik, s tmerna-ines γer yismenyifen-ik.",
+  "introduction.interactions.favourite.text": "Tzemreḍ ad teǧǧeḍ kra n tjewwaqt i ticki, daγen ad tiniḍ i bab-is d akken taɛǧeb-ik, s tmerna-ines γer yismenyifen-ik.",
   "introduction.interactions.reblog.headline": "Bḍu tikelt-nniḍen",
-  "introduction.interactions.reblog.text": "Tzemreḍ ad tebḍuḍ akked yimeḍfaṛen-ik tiberraḥin n yemdanen-nniḍen s beṭṭu-nsent tikelt-nniḍen.",
+  "introduction.interactions.reblog.text": "Tzemreḍ ad tebḍuḍ tijewwaqin n medden akk d yimeḍfaṛen-ik s beṭṭu-nsent tikelt-nniḍen.",
   "introduction.interactions.reply.headline": "Err",
-  "introduction.interactions.reply.text": "Tzemreḍ ad terreḍ γef tberraḥin-ik d tid n medden-nniḍen, d acu ara tent-id-iɛeqden ta deffir ta deg udiwenni.",
+  "introduction.interactions.reply.text": "Tzemreḍ ad terreḍ γef tjewwakin-ik d tid n medden-nniḍen, d acu ara tent-id-iɛeqden ta deffir ta deg yiwen udiwenni.",
   "introduction.welcome.action": "Bdu!",
   "introduction.welcome.headline": "Isurifen imenza",
   "introduction.welcome.text": "Anṣuf γer fediverse! Deg kra n yimiren, ad tizmireḍ ad tzzuzreḍ iznan neɣ ad tmeslayeḍ i yemddukkal deg waṭas n yiqeddacen. Maca aqeddac-agi, {domain}, mačči am wiyaḍ - deg-s i yella umaγnu-ik, ihi cfu γef yisem-is.",
@@ -226,7 +228,7 @@
   "keyboard_shortcuts.my_profile": "akken ad d-teldiḍ amaγnu-ik",
   "keyboard_shortcuts.notifications": "akken ad d-teldiḍ ajgu n tilγa",
   "keyboard_shortcuts.open_media": "to open media",
-  "keyboard_shortcuts.pinned": "i tildin n tebdert n tberraḥin yettwasentḍen",
+  "keyboard_shortcuts.pinned": "i tildin n tebdert n tjewwaqin yettwasentḍen",
   "keyboard_shortcuts.profile": "akken ad d-teldiḍ amaγnu n umeskar",
   "keyboard_shortcuts.reply": "i tririt",
   "keyboard_shortcuts.requests": "akken ad d-teldiḍ tabdert n yisuturen n teḍfeṛt",
@@ -234,7 +236,7 @@
   "keyboard_shortcuts.start": "akken ad d-teldiḍ ajgu n \"bdu\"",
   "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
   "keyboard_shortcuts.toggle_sensitivity": "i teskent/tuffra n yimidyaten",
-  "keyboard_shortcuts.toot": "i beddu n tberraḥt tamaynut",
+  "keyboard_shortcuts.toot": "i wakken attebdud tajewwaqt tamaynut",
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
   "keyboard_shortcuts.up": "i tulin γer ufella n tebdert",
   "lightbox.close": "Mdel",
@@ -251,7 +253,7 @@
   "lists.search": "Nadi gar yemdanen i teṭṭafaṛeḍ",
   "lists.subheading": "Tibdarin-ik·im",
   "load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}",
-  "loading_indicator.label": "Asali...",
+  "loading_indicator.label": "Yessalay-ed…",
   "media_gallery.toggle_visible": "Sken / Ffer",
   "missing_indicator.label": "Ulac-it",
   "missing_indicator.sublabel": "Ur nufi ara aγbalu-a",
@@ -260,7 +262,7 @@
   "navigation_bar.blocks": "Imseqdacen yettusḥebsen",
   "navigation_bar.bookmarks": "Ticraḍ",
   "navigation_bar.community_timeline": "Tasuddemt tadigant",
-  "navigation_bar.compose": "Aru taberraḥt tamaynut",
+  "navigation_bar.compose": "Aru tajewwiqt tamaynut",
   "navigation_bar.direct": "Iznan usridden",
   "navigation_bar.discover": "Ẓer",
   "navigation_bar.domain_blocks": "Tiγula yeffren",
@@ -275,7 +277,7 @@
   "navigation_bar.logout": "Ffeγ",
   "navigation_bar.mutes": "Iseqdacen yettwasusmen",
   "navigation_bar.personal": "Udmawan",
-  "navigation_bar.pins": "Tiberraḥin yettwasentḍen",
+  "navigation_bar.pins": "Tijewwiqin yettwasentḍen",
   "navigation_bar.preferences": "Imenyafen",
   "navigation_bar.public_timeline": "Tasuddemt tazayezt tamatut",
   "navigation_bar.security": "Taγellist",
@@ -285,7 +287,7 @@
   "notification.mention": "{name} yebder-ik-id",
   "notification.own_poll": "Your poll has ended",
   "notification.poll": "A poll you have voted in has ended",
-  "notification.reblog": "{name} yebḍa taberraḥ-ik i tikelt-nniḍen",
+  "notification.reblog": "{name} yebḍa tajewwiqt-ik i tikelt-nniḍen",
   "notifications.clear": "Sfeḍ tilγa",
   "notifications.clear_confirmation": "Tebγiḍ s tidet ad tekkseḍ akk tilγa-ik i lebda?",
   "notifications.column_settings.alert": "Tilγa n tnarit",
@@ -326,15 +328,16 @@
   "privacy.unlisted.long": "Ur beṭṭu ara deg tsuddemt tazayezt",
   "privacy.unlisted.short": "War tabdert",
   "refresh": "Smiren",
-  "regeneration_indicator.label": "Asali…",
+  "regeneration_indicator.label": "Yessalay-ed…",
   "regeneration_indicator.sublabel": "Tasuddemt tagejdant ara d-tettwaheggay!",
   "relative_time.days": "{number}u",
-  "relative_time.hours": "{number}h",
+  "relative_time.hours": "{number}a",
   "relative_time.just_now": "tura",
   "relative_time.minutes": "{number}t",
-  "relative_time.seconds": "{number}s",
+  "relative_time.seconds": "{number}t",
+  "relative_time.today": "assa",
   "reply_indicator.cancel": "Sefsex",
-  "report.forward": "Forward to {target}",
+  "report.forward": "Bren-it γeṛ {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
   "report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
   "report.placeholder": "Iwenniten-nniḍen",
@@ -344,13 +347,13 @@
   "search_popout.search_format": "Anadi yenneflin",
   "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
   "search_popout.tips.hashtag": "ahacṭag",
-  "search_popout.tips.status": "status",
+  "search_popout.tips.status": "addad",
   "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
   "search_popout.tips.user": "amseqdac",
   "search_results.accounts": "Medden",
   "search_results.hashtags": "Ihacṭagen",
   "search_results.statuses": "Tibeṛṛaniyin",
-  "search_results.statuses_fts_disabled": "Anadi n tberraḥin s ugbur-nsent ur yermid ara deg uqeddac-agi n Mastudun.",
+  "search_results.statuses_fts_disabled": "Anadi γef tjewwiqin s ugbur-nsent ur yermid ara deg uqeddac-agi n Maṣṭudun.",
   "search_results.total": "{count, number} {count, plural, one {n ugemmuḍ} other {n yigemmuḍen}}",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
@@ -366,23 +369,23 @@
   "status.favourite": "Rnu γer yismenyifen",
   "status.filtered": "Yettwasizdeg",
   "status.load_more": "Sali ugar",
-  "status.media_hidden": "Media hidden",
+  "status.media_hidden": "Taγwalt tettwaffer",
   "status.mention": "Bder-d @{name}",
   "status.more": "Ugar",
   "status.mute": "Sussem @{name}",
-  "status.mute_conversation": "Mute conversation",
+  "status.mute_conversation": "Sgugem adiwenni",
   "status.open": "Semγeṛ tasuffeγt-agi",
   "status.pin": "Senteḍ-itt deg umaγnu",
-  "status.pinned": "Tiberraḥin yettwasentḍen",
+  "status.pinned": "Tijewwiqin yettwasentḍen",
   "status.read_more": "Issin ugar",
   "status.reblog": "Bḍu",
   "status.reblog_private": "Boost to original audience",
   "status.reblogged_by": "{name} boosted",
-  "status.reblogs.empty": "Ula yiwen ur yebḍi taberraḥt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.",
-  "status.redraft": "Sfeḍ tɛiwdeḍ tira",
+  "status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.",
+  "status.redraft": "Kkes tɛiwdeḍ tira",
   "status.remove_bookmark": "Kkes tacreḍt",
   "status.reply": "Err",
-  "status.replyAll": "Reply to thread",
+  "status.replyAll": "Err i lxiḍ",
   "status.report": "Cetki γef @{name}",
   "status.sensitive_warning": "Agbur amḥulfu",
   "status.share": "Bḍu",
@@ -390,7 +393,7 @@
   "status.show_less_all": "Semẓi akk tisuffγin",
   "status.show_more": "Sken-ed ugar",
   "status.show_more_all": "Ẓerr ugar lebda",
-  "status.show_thread": "Show thread",
+  "status.show_thread": "Sken-ed lxiḍ",
   "status.uncached_media_warning": "Ulac-it",
   "status.unmute_conversation": "Kkes asgugem n udiwenni",
   "status.unpin": "Kkes asenteḍ seg umaγnu",
@@ -408,7 +411,7 @@
   "time_remaining.seconds": "Mazal {number, plural, one {# n tasint} other {# n tsinin}}",
   "trends.count_by_accounts": "{count} {rawCount, plural, one {n umdan} other {n yemdanen}} i yettmeslayen",
   "trends.trending_now": "Trending now",
-  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
+  "ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeγ-ed deg Maṣṭudun.",
   "upload_area.title": "Drag & drop to upload",
   "upload_button.label": "Add media ({formats})",
   "upload_error.limit": "File upload limit exceeded.",
@@ -421,8 +424,8 @@
   "upload_modal.analyzing_picture": "Tasleḍt n tugna tetteddu…",
   "upload_modal.apply": "Snes",
   "upload_modal.description_placeholder": "Aberraγ arurad ineggez nnig n uqjun amuṭṭis",
-  "upload_modal.detect_text": "Detect text from picture",
-  "upload_modal.edit_media": "Edit media",
+  "upload_modal.detect_text": "Sefru-d aḍris seg tugna",
+  "upload_modal.edit_media": "Ẓreg taγwalt",
   "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
   "upload_modal.preview_label": "Preview ({ratio})",
   "upload_progress.label": "Asali iteddu...",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index b307a3161..34c702d19 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Негізгі",
   "home.column_settings.show_reblogs": "Бөлісулерді көрсету",
   "home.column_settings.show_replies": "Жауаптарды көрсету",
+  "home.hide_announcements": "Анонстарды жасыр",
+  "home.show_announcements": "Анонстарды көрсет",
   "intervals.full.days": "{number, plural, one {# күн} other {# күн}}",
   "intervals.full.hours": "{number, plural, one {# сағат} other {# сағат}}",
   "intervals.full.minutes": "{number, plural, one {# минут} other {# минут}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "жаңа",
   "relative_time.minutes": "{number}мин",
   "relative_time.seconds": "{number}с",
+  "relative_time.today": "бүгін",
   "reply_indicator.cancel": "Қайтып алу",
   "report.forward": "Жіберу {target}",
   "report.forward_hint": "Бұл аккаунт басқа серверден. Аноним шағым жібересіз бе?",
diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json
index 278f6b14c..5385de456 100644
--- a/app/javascript/mastodon/locales/kn.json
+++ b/app/javascript/mastodon/locales/kn.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Show boosts",
   "home.column_settings.show_replies": "Show replies",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Cancel",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 5a3b409c0..6d6bf2ea2 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -165,7 +165,7 @@
   "follow_request.authorize": "허가",
   "follow_request.reject": "거부",
   "getting_started.developers": "개발자",
-  "getting_started.directory": "프로필 디렉토리",
+  "getting_started.directory": "프로필 책자",
   "getting_started.documentation": "문서",
   "getting_started.heading": "시작",
   "getting_started.invite": "초대",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "기본 설정",
   "home.column_settings.show_reblogs": "부스트 표시",
   "home.column_settings.show_replies": "답글 표시",
+  "home.hide_announcements": "공지사항 숨기기",
+  "home.show_announcements": "공지사항 보기",
   "intervals.full.days": "{number} 일",
   "intervals.full.hours": "{number} 시간",
   "intervals.full.minutes": "{number} 분",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "방금",
   "relative_time.minutes": "{number}분 전",
   "relative_time.seconds": "{number}초 전",
+  "relative_time.today": "오늘",
   "reply_indicator.cancel": "취소",
   "report.forward": "{target}에 포워드 됨",
   "report.forward_hint": "이 계정은 다른 서버에 있습니다. 익명화 된 사본을 해당 서버에도 전송할까요?",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index 278f6b14c..5385de456 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Show boosts",
   "home.column_settings.show_replies": "Show replies",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Cancel",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index b2f8fedbf..1b5b7cf5e 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Show boosts",
   "home.column_settings.show_replies": "Show replies",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Cancel",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json
index 90c8d2418..4a1f736cf 100644
--- a/app/javascript/mastodon/locales/mk.json
+++ b/app/javascript/mastodon/locales/mk.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Основно",
   "home.column_settings.show_reblogs": "Прикажи бустирања",
   "home.column_settings.show_replies": "Прикажи одговори",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# ден} other {# дена}}",
   "intervals.full.hours": "{number, plural, one {# час} other {# часа}}",
   "intervals.full.minutes": "{number, plural, one {# минута} other {# минути}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "сега",
   "relative_time.minutes": "{number}м",
   "relative_time.seconds": "{number}с",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Откажи",
   "report.forward": "Проследи до {target}",
   "report.forward_hint": "Оваа сметка е од друг сервер. Испрати анонимна копија од пријавата и таму?",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index 6a042e8c4..58bb9b723 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "അടിസ്ഥാനം",
   "home.column_settings.show_reblogs": "ബൂസ്റ്റുകൾ കാണിക്കുക",
   "home.column_settings.show_replies": "മറുപടികൾ കാണിക്കുക",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "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}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Cancel",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json
index f265042f2..8c0fed9b0 100644
--- a/app/javascript/mastodon/locales/mr.json
+++ b/app/javascript/mastodon/locales/mr.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Show boosts",
   "home.column_settings.show_replies": "Show replies",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Cancel",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 3bd6e145e..0d23e0d2c 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Show boosts",
   "home.column_settings.show_replies": "Show replies",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Cancel",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index d570f3612..5048a3a49 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -1,7 +1,7 @@
 {
   "account.add_or_remove_from_list": "Toevoegen of verwijderen vanuit lijsten",
   "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
+  "account.badges.group": "Groep",
   "account.block": "Blokkeer @{name}",
   "account.block_domain": "Verberg alles van {domain}",
   "account.blocked": "Geblokkeerd",
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Beperkt te gebruiken",
   "alert.unexpected.message": "Er deed zich een onverwachte fout voor",
   "alert.unexpected.title": "Oeps!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Mededeling",
   "autosuggest_hashtag.per_week": "{count} per week",
   "boost_modal.combo": "Je kunt {combo} klikken om dit de volgende keer over te slaan",
   "bundle_column_error.body": "Tijdens het laden van dit onderdeel is er iets fout gegaan.",
@@ -75,7 +75,7 @@
   "column_header.unpin": "Losmaken",
   "column_subheading.settings": "Instellingen",
   "community.column_settings.media_only": "Alleen media",
-  "compose_form.direct_message_warning": "Deze toot wordt alleen naar vermelde gebruikers verstuurd. Echter, de beheerders en moderatoren van jouw en de ontvangende Mastodonserver(s) kunnen dit bericht mogelijk wel bekijken.",
+  "compose_form.direct_message_warning": "Deze toot wordt alleen naar vermelde gebruikers verstuurd. Echter, de beheerders en moderatoren van jouw en de ontvangende server(s) kunnen dit bericht mogelijk wel bekijken.",
   "compose_form.direct_message_warning_learn_more": "Meer leren",
   "compose_form.hashtag_warning": "Deze toot valt niet onder een hashtag te bekijken, omdat deze niet op openbare tijdlijnen wordt getoond. Alleen openbare toots kunnen via hashtags gevonden worden.",
   "compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de toots zien die je alleen aan jouw volgers hebt gericht.",
@@ -85,8 +85,8 @@
   "compose_form.poll.duration": "Duur van de poll",
   "compose_form.poll.option_placeholder": "Keuze {number}",
   "compose_form.poll.remove_option": "Deze keuze verwijderen",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.poll.switch_to_multiple": "Poll wijzigen om meerdere keuzes toe te staan",
+  "compose_form.poll.switch_to_single": "Poll wijzigen om een enkele keuze toe te staan",
   "compose_form.publish": "Toot",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.hide": "Media als gevoelig markeren",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Algemeen",
   "home.column_settings.show_reblogs": "Boosts tonen",
   "home.column_settings.show_replies": "Reacties tonen",
+  "home.hide_announcements": "Mededelingen verbergen",
+  "home.show_announcements": "Mededelingen tonen",
   "intervals.full.days": "{number, plural, one {# dag} other {# dagen}}",
   "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}",
   "intervals.full.minutes": "{number, plural, one {# minuut} other {# minuten}}",
@@ -333,10 +335,11 @@
   "relative_time.just_now": "nu",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "vandaag",
   "reply_indicator.cancel": "Annuleren",
   "report.forward": "Doorsturen naar {target}",
   "report.forward_hint": "Het account bevindt zich op een andere server. Stuur daar eveneens een geanonimiseerde kopie van de rapportage naartoe?",
-  "report.hint": "De rapportage wordt naar de moderatoren van jouw server gestuurd. Je kunt hieronder een uitleg geven waarom je dit account rapporteert:",
+  "report.hint": "De rapportage wordt naar de moderator(en) van jouw server gestuurd. Je kunt hieronder een uitleg geven waarom je dit account rapporteert:",
   "report.placeholder": "Extra opmerkingen",
   "report.submit": "Verzenden",
   "report.target": "Rapporteer {target}",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index c04b30e04..9dd48767d 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Enkelt",
   "home.column_settings.show_reblogs": "Vis framhevingar",
   "home.column_settings.show_replies": "Vis svar",
+  "home.hide_announcements": "Skjul kunngjøring",
+  "home.show_announcements": "Vis kunngjøring",
   "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}",
   "intervals.full.hours": "{number, plural, one {# time} other {# timar}}",
   "intervals.full.minutes": "{number, plural, one {# minutt} other {# minutt}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "nå",
   "relative_time.minutes": "{number}min",
   "relative_time.seconds": "{number}sek",
+  "relative_time.today": "i dag",
   "reply_indicator.cancel": "Avbryt",
   "report.forward": "Vidaresend til {target}",
   "report.forward_hint": "Kontoen er frå ein annan tenar. Vil du senda ein anonymisert kopi av rapporten dit òg?",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 215cdb150..38cff4c91 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Enkelt",
   "home.column_settings.show_reblogs": "Vis fremhevinger",
   "home.column_settings.show_replies": "Vis svar",
+  "home.hide_announcements": "Skjul kunngjøring",
+  "home.show_announcements": "Vis kunngjøring",
   "intervals.full.days": "{number, plural,one {# dag} other {# dager}}",
   "intervals.full.hours": "{number, plural, one {# time} other {# timer}}",
   "intervals.full.minutes": "{number, plural, one {# minutt} other {# minutter}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "nå",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "i dag",
   "reply_indicator.cancel": "Avbryt",
   "report.forward": "Videresend til {target}",
   "report.forward_hint": "Denne kontoen er fra en annen tjener. Vil du sende en anonymisert kopi av rapporten dit også?",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index b7701c17e..1be047755 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -1,7 +1,7 @@
 {
   "account.add_or_remove_from_list": "Ajustar o tirar de las listas",
   "account.badges.bot": "Robòt",
-  "account.badges.group": "Group",
+  "account.badges.group": "Grop",
   "account.block": "Blocar @{name}",
   "account.block_domain": "Tot amagar del domeni {domain}",
   "account.blocked": "Blocat",
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Taus limitat",
   "alert.unexpected.message": "Una error s’es producha.",
   "alert.unexpected.title": "Ops !",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Anóncia",
   "autosuggest_hashtag.per_week": "{count} per setmana",
   "boost_modal.combo": "Podètz botar {combo} per passar aquò lo còp que ven",
   "bundle_column_error.body": "Quicòm a fach mèuca pendent lo cargament d’aqueste compausant.",
@@ -85,8 +85,8 @@
   "compose_form.poll.duration": "Durada del sondatge",
   "compose_form.poll.option_placeholder": "Opcion {number}",
   "compose_form.poll.remove_option": "Levar aquesta opcion",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.poll.switch_to_multiple": "Cambiar lo sondatge per permetre de causidas multiplas",
+  "compose_form.poll.switch_to_single": "Cambiar lo sondatge per permetre una sola causida",
   "compose_form.publish": "Tut",
   "compose_form.publish_loud": "{publish} !",
   "compose_form.sensitive.hide": "Marcar coma sensible",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Basic",
   "home.column_settings.show_reblogs": "Mostrar los partatges",
   "home.column_settings.show_replies": "Mostrar las responsas",
+  "home.hide_announcements": "Rescondre las anóncias",
+  "home.show_announcements": "Mostrar las anóncias",
   "intervals.full.days": "{number, plural, one {# jorn} other {# jorns}}",
   "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}",
   "intervals.full.minutes": "{number, plural, one {# minuta} other {# minutas}}",
@@ -281,7 +283,7 @@
   "navigation_bar.security": "Seguretat",
   "notification.favourite": "{name} a ajustat a sos favorits",
   "notification.follow": "{name} vos sèc",
-  "notification.follow_request": "{name} has requested to follow you",
+  "notification.follow_request": "{name} a demandat a vos sègre",
   "notification.mention": "{name} vos a mencionat",
   "notification.own_poll": "Vòstre sondatge es acabat",
   "notification.poll": "Avètz participat a un sondatge que ven de s’acabar",
@@ -294,7 +296,7 @@
   "notifications.column_settings.filter_bar.category": "Barra de recèrca rapida",
   "notifications.column_settings.filter_bar.show": "Mostrar",
   "notifications.column_settings.follow": "Nòus seguidors :",
-  "notifications.column_settings.follow_request": "New follow requests:",
+  "notifications.column_settings.follow_request": "Novèla demanda d’abonament :",
   "notifications.column_settings.mention": "Mencions :",
   "notifications.column_settings.poll": "Resultats del sondatge :",
   "notifications.column_settings.push": "Notificacions",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "ara",
   "relative_time.minutes": "fa {number} min",
   "relative_time.seconds": "fa {number}s",
+  "relative_time.today": "uèi",
   "reply_indicator.cancel": "Anullar",
   "report.forward": "Far sègre a {target}",
   "report.forward_hint": "Lo compte ven d’un autre servidor. Volètz mandar una còpia anonima del rapòrt enlai tanben ?",
@@ -413,11 +416,11 @@
   "upload_button.label": "Ajustar un mèdia (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Talha maximum pels mandadís subrepassada.",
   "upload_error.poll": "Lo mandadís de fichièr es pas autorizat pels sondatges.",
-  "upload_form.audio_description": "Describe for people with hearing loss",
+  "upload_form.audio_description": "Descriure per las personas amb pèrdas auditivas",
   "upload_form.description": "Descripcion pels mal vesents",
   "upload_form.edit": "Modificar",
   "upload_form.undo": "Suprimir",
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+  "upload_form.video_description": "Descriure per las personas amb pèrdas auditivas o mal vesent",
   "upload_modal.analyzing_picture": "Analisi de l’imatge…",
   "upload_modal.apply": "Aplicar",
   "upload_modal.description_placeholder": "Lo dròlle bilingüe manja un yaourt de ròcs exagonals e kiwis verds farà un an mai",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 3874f1596..9d119902a 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -188,6 +188,8 @@
   "home.column_settings.basic": "Podstawowe",
   "home.column_settings.show_reblogs": "Pokazuj podbicia",
   "home.column_settings.show_replies": "Pokazuj odpowiedzi",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# dzień} few {# dni} many {# dni} other {# dni}}",
   "intervals.full.hours": "{number, plural, one {# godzina} few {# godziny} many {# godzin} other {# godzin}}",
   "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}",
@@ -338,6 +340,7 @@
   "relative_time.just_now": "teraz",
   "relative_time.minutes": "{number} min.",
   "relative_time.seconds": "{number} s.",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Anuluj",
   "report.forward": "Przekaż na {target}",
   "report.forward_hint": "To konto znajduje się na innej instancji. Czy chcesz wysłać anonimową kopię zgłoszenia rnież na nią?",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index f78c327fb..024bbb9df 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Tentativas limitadas",
   "alert.unexpected.message": "Ocorreu um erro inesperado.",
   "alert.unexpected.title": "Eita!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Anúncio",
   "autosuggest_hashtag.per_week": "{count} por semana",
   "boost_modal.combo": "Pressione {combo} para ignorar este diálogo na próxima vez",
   "bundle_column_error.body": "Ocorreu um problema ao carregar este componente.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar boosts",
   "home.column_settings.show_replies": "Mostrar respostas",
+  "home.hide_announcements": "Ocultar anúncios",
+  "home.show_announcements": "Exibir anúncios",
   "intervals.full.days": "{number, plural, one {# dia} other {# dias}}",
   "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "agora",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "hoje",
   "reply_indicator.cancel": "Cancelar",
   "report.forward": "Enviar cópia para {target}",
   "report.forward_hint": "A conta está em outra instância. Enviar uma cópia anônima da denúncia para lá?",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index b2fb2a012..34acbfc9a 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Limite de tentativas",
   "alert.unexpected.message": "Ocorreu um erro inesperado.",
   "alert.unexpected.title": "Bolas!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Anúncio",
   "autosuggest_hashtag.per_week": "{count} por semana",
   "boost_modal.combo": "Pode clicar {combo} para não voltar a ver",
   "bundle_column_error.body": "Algo de errado aconteceu enquanto este componente era carregado.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar boosts",
   "home.column_settings.show_replies": "Mostrar respostas",
+  "home.hide_announcements": "Ocultar anúncios",
+  "home.show_announcements": "Exibir anúncios",
   "intervals.full.days": "{number, plural, one {# dia} other {# dias}}",
   "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "agora",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "hoje",
   "reply_indicator.cancel": "Cancelar",
   "report.forward": "Reenviar para {target}",
   "report.forward_hint": "A conta é de outro servidor. Enviar uma cópia anónima do relatório para lá também?",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 4d01ad3a5..e32c308f6 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "De bază",
   "home.column_settings.show_reblogs": "Arată redistribuirile",
   "home.column_settings.show_replies": "Arată răspunsurile",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "acum",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Anulează",
   "report.forward": "Redirecționează catre {target}",
   "report.forward_hint": "Acest cont este de pe un alt server. Trimitem o copie anonimă a raportului și acolo?",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 6e63a418c..f805215c1 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -74,7 +74,7 @@
   "column_header.show_settings": "Показать настройки",
   "column_header.unpin": "Открепить",
   "column_subheading.settings": "Настройки",
-  "community.column_settings.media_only": "Только с медиа",
+  "community.column_settings.media_only": "Только с медиафайлами",
   "compose_form.direct_message_warning": "Адресованные посты отправляются и видны только упомянутым в них пользователям.",
   "compose_form.direct_message_warning_learn_more": "Узнать подробнее",
   "compose_form.hashtag_warning": "Так как этот пост не публичный, он не отобразится в поиске по хэштегам.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Основные",
   "home.column_settings.show_reblogs": "Показывать продвижения",
   "home.column_settings.show_replies": "Показывать ответы",
+  "home.hide_announcements": "Скрыть объявления",
+  "home.show_announcements": "Показать объявления",
   "intervals.full.days": "{number, plural, one {# день} few {# дня} other {# дней}}",
   "intervals.full.hours": "{number, plural, one {# час} few {# часа} other {# часов}}",
   "intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} other {# минут}}",
@@ -301,7 +303,7 @@
   "notifications.column_settings.reblog": "Ваш пост продвинули:",
   "notifications.column_settings.show": "Отображать в списке",
   "notifications.column_settings.sound": "Проигрывать звук",
-  "notifications.filter.all": "Всё",
+  "notifications.filter.all": "Все",
   "notifications.filter.boosts": "Продвижения",
   "notifications.filter.favourites": "Отметки «избранного»",
   "notifications.filter.follows": "Подписки",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "только что",
   "relative_time.minutes": "{number} мин",
   "relative_time.seconds": "{number} с",
+  "relative_time.today": "сегодня",
   "reply_indicator.cancel": "Отмена",
   "report.forward": "Переслать в {target}",
   "report.forward_hint": "Эта учётная запись расположена на другом узле. Отправить туда анонимную копию вашей жалобы?",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 976dc572e..8217a1369 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Základné",
   "home.column_settings.show_reblogs": "Ukáž vyzdvihnuté",
   "home.column_settings.show_replies": "Ukáž odpovede",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# deň} few {# dní} many {# dní} other {# dní}}",
   "intervals.full.hours": "{number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodín}}",
   "intervals.full.minutes": "{number, plural, one {# minúta} few {# minút} many {# minút} other {# minút}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "teraz",
   "relative_time.minutes": "{number}min",
   "relative_time.seconds": "{number}sek",
+  "relative_time.today": "today",
   "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 hlásenia aj tam?",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index bcf3b8d1a..dedd4e007 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Osnovno",
   "home.column_settings.show_reblogs": "Pokaži spodbude",
   "home.column_settings.show_replies": "Pokaži odgovore",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# dan} two {# dni} few {# dni} other {# dni}}",
   "intervals.full.hours": "{number, plural, one {# ura} two {# uri} few {# ure} other {# ur}}",
   "intervals.full.minutes": "{number, plural, one {# minuta} two {# minuti} few {# minute} other {# minut}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "zdaj",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Prekliči",
   "report.forward": "Posreduj do {target}",
   "report.forward_hint": "Račun je iz drugega strežnika. Pošljem anonimno kopijo poročila tudi na drugi strežnik?",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index 617c3aee3..2d1f1c64d 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Bazë",
   "home.column_settings.show_reblogs": "Shfaq përforcime",
   "home.column_settings.show_replies": "Shfaq përgjigje",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "tani",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Anuloje",
   "report.forward": "Përcillja {target}",
   "report.forward_hint": "Llogaria është nga një shërbyes tjetër. Të dërgohet edhe një kopje e anonimizuar e raportimit?",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index 09b30ff5f..ddeca47a6 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Osnovno",
   "home.column_settings.show_reblogs": "Prikaži i podržavanja",
   "home.column_settings.show_replies": "Prikaži odgovore",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "sada",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Poništi",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 5b04f9826..fbe48bf2e 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Основно",
   "home.column_settings.show_reblogs": "Прикажи и подржавања",
   "home.column_settings.show_replies": "Прикажи одговоре",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "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}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "сада",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Поништи",
   "report.forward": "Проследити {target}",
   "report.forward_hint": "Налог је са другог сервера. Послати анонимну копију пријаве и тамо?",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 4e778a481..29b8b023e 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Grundläggande",
   "home.column_settings.show_reblogs": "Visa knuffar",
   "home.column_settings.show_replies": "Visa svar",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}",
   "intervals.full.hours": "{number, plural, one {# timme} other {# timmar}}",
   "intervals.full.minutes": "{number, plural, one {# minut} other {# minuter}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "nu",
   "relative_time.minutes": "{number}min",
   "relative_time.seconds": "{number}sek",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Ångra",
   "report.forward": "Vidarebefordra till {target}",
   "report.forward_hint": "Kontot är från en annan server. Skicka även en anonymiserad kopia av anmälan dit?",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index 8d1a8f14d..1674499e9 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -40,10 +40,10 @@
   "account.unmute": "@{name} இன் மீது மௌனத் தடையை நீக்குக",
   "account.unmute_notifications": "@{name} இலிருந்து அறிவிப்புகளின் மீது மௌனத் தடையை நீக்குக",
   "alert.rate_limited.message": "{retry_time, time, medium} க்கு பிறகு மீண்டும் முயற்சிக்கவும்.",
-  "alert.rate_limited.title": "விகிதம் வரையறுக்கப்பட்டுள்ளது",
+  "alert.rate_limited.title": "பயன்பாடு கட்டுப்படுத்தப்பட்டுள்ளது",
   "alert.unexpected.message": "எதிர்பாராத பிழை ஏற்பட்டுவிட்டது.",
   "alert.unexpected.title": "அச்சச்சோ!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "அறிவிப்பு",
   "autosuggest_hashtag.per_week": "ஒவ்வொரு வாரம் {count}",
   "boost_modal.combo": "நீங்கள் இதை அடுத்தமுறை தவிர்க்க {combo} வை அழுத்தவும்",
   "bundle_column_error.body": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.",
@@ -53,7 +53,7 @@
   "bundle_modal_error.message": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.",
   "bundle_modal_error.retry": "மீண்டும் முயற்சி செய்",
   "column.blocks": "தடுக்கப்பட்ட பயனர்கள்",
-  "column.bookmarks": "Bookmarks",
+  "column.bookmarks": "அடையாளக்குறிகள்",
   "column.community": "சுய நிகழ்வு காலவரிசை",
   "column.direct": "நேர் சேதிகள்",
   "column.directory": "சுயவிவரங்களை உலாவு",
@@ -64,9 +64,9 @@
   "column.lists": "பட்டியல்கள்",
   "column.mutes": "மௌனத் தடை செய்யப்பட்ட பயனர்கள்",
   "column.notifications": "அறிவிப்புகள்",
-  "column.pins": "Pinned toot",
+  "column.pins": "பொருத்தப்பட்ட டூட்டுகள்",
   "column.public": "கூட்டாட்சி காலக்கெடு",
-  "column_back_button.label": "முந்தைய பக்கம்",
+  "column_back_button.label": "திரும்பு",
   "column_header.hide_settings": "அமைப்புகளை மறை",
   "column_header.moveLeft_settings": "நெடுவரிசையை இடதுபுறமாக நகர்த்தவும்",
   "column_header.moveRight_settings": "நெடுவரிசை வலது புறமாக நகர்த்து",
@@ -85,8 +85,8 @@
   "compose_form.poll.duration": "வாக்கெடுப்பு காலம்",
   "compose_form.poll.option_placeholder": "தேர்ந்தெடுப்ப {number}",
   "compose_form.poll.remove_option": "இந்த விருப்பத்தை அகற்றவும்",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.poll.switch_to_multiple": "பல தேர்வுகளை அனுமதிக்குமாறு மாற்று",
+  "compose_form.poll.switch_to_single": "ஒரே ஒரு தேர்வை மட்டும் அனுமதிக்குமாறு மாற்று",
   "compose_form.publish": "டூட் செய்க",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.hide": "அனைவருக்கும் ஏற்ற ஊடகம் இல்லை எனக் குறியிடுக",
@@ -143,7 +143,7 @@
   "empty_column.account_timeline": "இல்லை toots இங்கே!",
   "empty_column.account_unavailable": "சுயவிவரம் கிடைக்கவில்லை",
   "empty_column.blocks": "இதுவரை எந்த பயனர்களும் தடுக்கவில்லை.",
-  "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+  "empty_column.bookmarked_statuses": "உங்களிடம் அடையாளக்குறியிட்ட டூட்டுகள் எவையும் இல்லை. அடையாளக்குறியிட்ட பிறகு அவை இங்கே காட்டப்படும்.",
   "empty_column.community": "உள்ளூர் காலக்கெடு காலியாக உள்ளது. பந்தை உருட்டிக்கொள்வதற்கு பகிரங்கமாக ஒன்றை எழுதுங்கள்!",
   "empty_column.direct": "உங்களிடம் நேரடியான செய்திகள் எதுவும் இல்லை. நீங்கள் ஒன்றை அனுப்பி அல்லது பெறும் போது, அது இங்கே காண்பிக்கும்.",
   "empty_column.domain_blocks": "இன்னும் மறைந்த களங்கள் இல்லை.",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "அடிப்படையான",
   "home.column_settings.show_reblogs": "காட்டு boosts",
   "home.column_settings.show_replies": "பதில்களைக் காண்பி",
+  "home.hide_announcements": "அறிவிப்புகளை மறை",
+  "home.show_announcements": "அறிவிப்புகளைக் காட்டு",
   "intervals.full.days": "{number, plural, one {# day} மற்ற {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} மற்ற {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} மற்ற {# minutes}}",
@@ -258,7 +260,7 @@
   "mute_modal.hide_notifications": "இந்த பயனரின் அறிவிப்புகளை மறைக்கவா?",
   "navigation_bar.apps": "மொபைல் பயன்பாடுகள்",
   "navigation_bar.blocks": "தடுக்கப்பட்ட பயனர்கள்",
-  "navigation_bar.bookmarks": "Bookmarks",
+  "navigation_bar.bookmarks": "அடையாளக்குறிகள்",
   "navigation_bar.community_timeline": "உள்ளூர் காலக்கெடு",
   "navigation_bar.compose": "புதியவற்றை எழுதுக toot",
   "navigation_bar.direct": "நேரடி செய்திகள்",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "இப்பொழுது",
   "relative_time.minutes": "{number}நி",
   "relative_time.seconds": "{number}வி",
+  "relative_time.today": "இன்று",
   "reply_indicator.cancel": "எதிராணை",
   "report.forward": "முன்னோக்கி {target}",
   "report.forward_hint": "கணக்கு மற்றொரு சேவையகத்திலிருந்து வருகிறது. அறிக்கையின் அநாமதேய பிரதி ஒன்றை அனுப்பவும்.?",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index 8b47fec52..904f62684 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "ప్రాథమిక",
   "home.column_settings.show_reblogs": "బూస్ట్ లను చూపించు",
   "home.column_settings.show_replies": "ప్రత్యుత్తరాలను చూపించు",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "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}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "ఇప్పుడు",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "రద్దు చెయ్యి",
   "report.forward": "{target}కి ఫార్వార్డ్ చేయండి",
   "report.forward_hint": "ఖాతా మరొక సర్వర్లో ఉంది. నివేదిక యొక్క ఒక అనామకంగా ఉన్న కాపీని అక్కడికి కూడా పంపించమంటారా?",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 2d009b851..71de4beaf 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "พื้นฐาน",
   "home.column_settings.show_reblogs": "แสดงการดัน",
   "home.column_settings.show_replies": "แสดงการตอบกลับ",
+  "home.hide_announcements": "ซ่อนประกาศ",
+  "home.show_announcements": "แสดงประกาศ",
   "intervals.full.days": "{number, plural, other {# วัน}}",
   "intervals.full.hours": "{number, plural, other {# ชั่วโมง}}",
   "intervals.full.minutes": "{number, plural, other {# นาที}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "ตอนนี้",
   "relative_time.minutes": "{number} นาที",
   "relative_time.seconds": "{number} วินาที",
+  "relative_time.today": "วันนี้",
   "reply_indicator.cancel": "ยกเลิก",
   "report.forward": "ส่งต่อไปยัง {target}",
   "report.forward_hint": "บัญชีมาจากเซิร์ฟเวอร์อื่น ส่งสำเนาของรายงานที่ไม่ระบุตัวตนไปที่นั่นด้วย?",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 11f9ff2ef..54cc0379c 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Temel",
   "home.column_settings.show_reblogs": "Boost edilenleri göster",
   "home.column_settings.show_replies": "Cevapları göster",
+  "home.hide_announcements": "Duyuruları gizle",
+  "home.show_announcements": "Duyuruları göster",
   "intervals.full.days": "{number, plural, one {# gün} other {# gün}}",
   "intervals.full.hours": "{number, plural, one {# saat} other {# saat}}",
   "intervals.full.minutes": "{number, plural, one {# dakika} other {# dakika}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "şimdi",
   "relative_time.minutes": "{number}dk",
   "relative_time.seconds": "{number}sn",
+  "relative_time.today": "bugün",
   "reply_indicator.cancel": "İptal",
   "report.forward": "Şu kişiye ilet : {target}",
   "report.forward_hint": "Bu hesap başka bir sunucudan. Anonimleştirilmiş bir rapor oraya da gönderilsin mi?",
@@ -382,7 +385,7 @@
   "status.redraft": "Sil & tekrar taslakla",
   "status.remove_bookmark": "Yer imini kaldır",
   "status.reply": "Cevapla",
-  "status.replyAll": "Konuşmayı cevapla",
+  "status.replyAll": "Mesaj dizisini cevapla",
   "status.report": "@{name}'i raporla",
   "status.sensitive_warning": "Hassas içerik",
   "status.share": "Paylaş",
@@ -390,7 +393,7 @@
   "status.show_less_all": "Hepsi için daha az göster",
   "status.show_more": "Daha fazla göster",
   "status.show_more_all": "Hepsi için daha fazla göster",
-  "status.show_thread": "Başlığı göster",
+  "status.show_thread": "Mesaj dizisini göster",
   "status.uncached_media_warning": "Mevcut değil",
   "status.unmute_conversation": "Sohbeti aç",
   "status.unpin": "Profilden sabitlemeyi kaldır",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 061fc50cb..b11532d18 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Основні",
   "home.column_settings.show_reblogs": "Показувати передмухи",
   "home.column_settings.show_replies": "Показувати відповіді",
+  "home.hide_announcements": "Приховати оголошення",
+  "home.show_announcements": "Показати оголошення",
   "intervals.full.days": "{number, plural, one {# день} few {# дні} other {# днів}}",
   "intervals.full.hours": "{number, plural, one {# година} few {# години} other {# годин}}",
   "intervals.full.minutes": "{number, plural, one {# хвилина} few {# хвилини} other {# хвилин}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "щойно",
   "relative_time.minutes": "{number}х",
   "relative_time.seconds": "{number}с",
+  "relative_time.today": "сьогодні",
   "reply_indicator.cancel": "Відмінити",
   "report.forward": "Надіслати до {target}",
   "report.forward_hint": "Це аккаунт з іншого серверу. Відправити анонімізовану копію скарги і туди?",
diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json
index 01477906c..664eebfbf 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "بنیادی",
   "home.column_settings.show_reblogs": "افزائشات دکھائیں",
   "home.column_settings.show_replies": "جوابات دکھائیں",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# روز} other {# روز}}",
   "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "now",
   "relative_time.minutes": "{number}m",
   "relative_time.seconds": "{number}s",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Cancel",
   "report.forward": "Forward to {target}",
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 07dff79fa..067a422e6 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "Cơ bản",
   "home.column_settings.show_reblogs": "Hiện tút được loan tin",
   "home.column_settings.show_replies": "Hiện trả lời",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number} days",
   "intervals.full.hours": "{number} hours",
   "intervals.full.minutes": "{number} minutes",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "vừa xong",
   "relative_time.minutes": "{number} phút",
   "relative_time.seconds": "{number} giây",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "Hủy bỏ",
   "report.forward": "Chuyển đến {target}",
   "report.forward_hint": "Tài khoản này từ miền khác. Gửi thêm một báo cáo ẩn danh tới miền của tài khoản này?",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 62a86e75b..41ecfe1f2 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -1,7 +1,7 @@
 {
   "account.add_or_remove_from_list": "从列表中添加或删除",
   "account.badges.bot": "机器人",
-  "account.badges.group": "Group",
+  "account.badges.group": "群组",
   "account.block": "屏蔽 @{name}",
   "account.block_domain": "隐藏来自 {domain} 的内容",
   "account.blocked": "已屏蔽",
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "频率受限",
   "alert.unexpected.message": "发生了意外错误。",
   "alert.unexpected.title": "哎呀!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "公告",
   "autosuggest_hashtag.per_week": "每星期 {count} 条",
   "boost_modal.combo": "下次按住 {combo} 即可跳过此提示",
   "bundle_column_error.body": "载入这个组件时发生了错误。",
@@ -85,8 +85,8 @@
   "compose_form.poll.duration": "投票持续时间",
   "compose_form.poll.option_placeholder": "选项 {number}",
   "compose_form.poll.remove_option": "移除这个选项",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+  "compose_form.poll.switch_to_multiple": "将投票改为多选",
+  "compose_form.poll.switch_to_single": "将投票改为单选",
   "compose_form.publish": "嘟嘟",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.hide": "标记媒体为敏感内容",
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "基本设置",
   "home.column_settings.show_reblogs": "显示转嘟",
   "home.column_settings.show_replies": "显示回复",
+  "home.hide_announcements": "隐藏公告",
+  "home.show_announcements": "显示公告",
   "intervals.full.days": "{number} 天",
   "intervals.full.hours": "{number} 小时",
   "intervals.full.minutes": "{number} 分钟",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "刚刚",
   "relative_time.minutes": "{number}分",
   "relative_time.seconds": "{number}秒",
+  "relative_time.today": "今天",
   "reply_indicator.cancel": "取消",
   "report.forward": "转发举报至 {target}",
   "report.forward_hint": "这名用户来自另一个服务器。是否要向那个服务器发送一条匿名的举报?",
@@ -391,7 +394,7 @@
   "status.show_more": "显示内容",
   "status.show_more_all": "显示所有内容",
   "status.show_thread": "显示全部对话",
-  "status.uncached_media_warning": "不可用",
+  "status.uncached_media_warning": "暂不可用",
   "status.unmute_conversation": "不再隐藏此对话",
   "status.unpin": "在个人资料页面取消置顶",
   "suggestions.dismiss": "关闭建议",
@@ -410,7 +413,7 @@
   "trends.trending_now": "现在流行",
   "ui.beforeunload": "如果你现在离开 Mastodon,你的草稿内容将会丢失。",
   "upload_area.title": "将文件拖放到此处开始上传",
-  "upload_button.label": "上传媒体文件 (JPEG, PNG, GIF, WebM, MP4, MOV)",
+  "upload_button.label": "上传媒体文件 ({formats})",
   "upload_error.limit": "文件大小超过限制。",
   "upload_error.poll": "投票中不允许上传文件。",
   "upload_form.audio_description": "为听障人士添加文字描述",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 4dcf70e6b..12f154a2c 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "基本",
   "home.column_settings.show_reblogs": "顯示被轉推的文章",
   "home.column_settings.show_replies": "顯示回應文章",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# 天} other {# 天}}",
   "intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}",
   "intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "剛剛",
   "relative_time.minutes": "{number}分鐘",
   "relative_time.seconds": "{number}秒",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "取消",
   "report.forward": "轉寄到 {target}",
   "report.forward_hint": "這個帳戶屬於其他服務站。要向該服務站發送匿名的舉報訊息嗎?",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index ab680223e..56c4de066 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -184,6 +184,8 @@
   "home.column_settings.basic": "基本",
   "home.column_settings.show_reblogs": "顯示轉嘟",
   "home.column_settings.show_replies": "顯示回覆",
+  "home.hide_announcements": "Hide announcements",
+  "home.show_announcements": "Show announcements",
   "intervals.full.days": "{number, plural, one {# 天} other {# 天}}",
   "intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}",
   "intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}",
@@ -333,6 +335,7 @@
   "relative_time.just_now": "剛剛",
   "relative_time.minutes": "{number} 分",
   "relative_time.seconds": "{number} 秒",
+  "relative_time.today": "today",
   "reply_indicator.cancel": "取消",
   "report.forward": "轉寄到 {target}",
   "report.forward_hint": "這個帳戶屬於其他站點。要像該站點發送匿名的檢舉訊息嗎?",
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js
index 640f0af0a..13cb5d548 100644
--- a/app/javascript/packs/public.js
+++ b/app/javascript/packs/public.js
@@ -65,7 +65,7 @@ function main() {
       content.textContent = timeAgoString({
         formatMessage: ({ id, defaultMessage }, values) => (new IntlMessageFormat(messages[id] || defaultMessage, locale)).format(values),
         formatDate: (date, options) => (new Intl.DateTimeFormat(locale, options)).format(date),
-      }, datetime, now, now.getFullYear());
+      }, datetime, now, now.getFullYear(), content.getAttribute('datetime').includes('T'));
     });
 
     const reactComponents = document.querySelectorAll('[data-component]');
diff --git a/app/models/concerns/remotable.rb b/app/models/concerns/remotable.rb
index b7a476c87..c728a460e 100644
--- a/app/models/concerns/remotable.rb
+++ b/app/models/concerns/remotable.rb
@@ -36,8 +36,8 @@ module Remotable
 
             basename = SecureRandom.hex(8)
 
-            send("#{attachment_name}=", StringIO.new(response.body_with_limit(limit)))
             send("#{attachment_name}_file_name=", basename + extname)
+            send("#{attachment_name}=", StringIO.new(response.body_with_limit(limit)))
 
             self[attribute_name] = url if has_attribute?(attribute_name)
           end
diff --git a/app/serializers/rest/announcement_serializer.rb b/app/serializers/rest/announcement_serializer.rb
index ae72f9ace..f27feb669 100644
--- a/app/serializers/rest/announcement_serializer.rb
+++ b/app/serializers/rest/announcement_serializer.rb
@@ -41,5 +41,9 @@ class REST::AnnouncementSerializer < ActiveModel::Serializer
     def url
       ActivityPub::TagManager.instance.url_for(object)
     end
+
+    def acct
+      object.pretty_acct
+    end
   end
 end
diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb
index 023913028..58e7bd4e4 100644
--- a/app/serializers/rest/status_serializer.rb
+++ b/app/serializers/rest/status_serializer.rb
@@ -147,7 +147,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
     end
 
     def acct
-      object.account_acct
+      object.account.pretty_acct
     end
   end
 
diff --git a/app/views/accounts/_og.html.haml b/app/views/accounts/_og.html.haml
index de948ec6a..839576372 100644
--- a/app/views/accounts/_og.html.haml
+++ b/app/views/accounts/_og.html.haml
@@ -10,4 +10,4 @@
 = opengraph 'og:image:width', '120'
 = opengraph 'og:image:height', '120'
 = opengraph 'twitter:card', 'summary'
-= opengraph 'profile:username', account.local_username_and_domain
+= opengraph 'profile:username', acct(account)[1..-1]
diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml
index c312fe2bd..c9688ea88 100644
--- a/app/views/accounts/show.html.haml
+++ b/app/views/accounts/show.html.haml
@@ -1,5 +1,5 @@
 - content_for :page_title do
-  = "#{display_name(@account)} (@#{@account.local_username_and_domain})"
+  = "#{display_name(@account)} (#{acct(@account)})"
 
 - content_for :header_tags do
   - if @account.user&.setting_noindex
diff --git a/app/views/statuses/show.html.haml b/app/views/statuses/show.html.haml
index 0f22d106b..873df7fbd 100644
--- a/app/views/statuses/show.html.haml
+++ b/app/views/statuses/show.html.haml
@@ -10,7 +10,7 @@
 
   = opengraph 'og:site_name', site_title
   = opengraph 'og:type', 'article'
-  = opengraph 'og:title', "#{display_name(@account)} (@#{@account.local_username_and_domain})"
+  = opengraph 'og:title', "#{display_name(@account)} (#{acct(@account)})"
   = opengraph 'og:url', short_account_status_url(@account, @status)
 
   = render 'og_description', activity: @status