about summary refs log tree commit diff
path: root/app/javascript
diff options
context:
space:
mode:
Diffstat (limited to 'app/javascript')
-rw-r--r--app/javascript/flavours/glitch/components/status_action_bar.js2
-rw-r--r--app/javascript/flavours/glitch/features/status/components/action_bar.js2
-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/flavours/glitch/styles/components/announcements.scss7
-rw-r--r--app/javascript/mastodon/components/status_action_bar.js2
-rw-r--r--app/javascript/mastodon/features/status/components/action_bar.js6
-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.json153
-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.json7
-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.json27
-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.json5
-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.json101
-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.json15
-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.json123
-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/javascript/styles/mastodon/components.scss7
78 files changed, 515 insertions, 315 deletions
diff --git a/app/javascript/flavours/glitch/components/status_action_bar.js b/app/javascript/flavours/glitch/components/status_action_bar.js
index 60b370622..0a481c816 100644
--- a/app/javascript/flavours/glitch/components/status_action_bar.js
+++ b/app/javascript/flavours/glitch/components/status_action_bar.js
@@ -265,7 +265,7 @@ class StatusActionBar extends ImmutablePureComponent {
       replyTitle = intl.formatMessage(messages.replyAll);
     }
 
-    const shareButton = ('share' in navigator) && status.get('visibility') === 'public' && (
+    const shareButton = ('share' in navigator) && publicStatus && (
       <IconButton className='status__action-bar-button' title={intl.formatMessage(messages.share)} icon='share-alt' onClick={this.handleShareClick} />
     );
 
diff --git a/app/javascript/flavours/glitch/features/status/components/action_bar.js b/app/javascript/flavours/glitch/features/status/components/action_bar.js
index d71a3ae08..080362dd0 100644
--- a/app/javascript/flavours/glitch/features/status/components/action_bar.js
+++ b/app/javascript/flavours/glitch/features/status/components/action_bar.js
@@ -188,7 +188,7 @@ class ActionBar extends React.PureComponent {
       }
     }
 
-    const shareButton = ('share' in navigator) && status.get('visibility') === 'public' && (
+    const shareButton = ('share' in navigator) && publicStatus && (
       <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.share)} icon='share-alt' onClick={this.handleShare} /></div>
     );
 
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/flavours/glitch/styles/components/announcements.scss b/app/javascript/flavours/glitch/styles/components/announcements.scss
index ac4c199cd..eab6c728b 100644
--- a/app/javascript/flavours/glitch/styles/components/announcements.scss
+++ b/app/javascript/flavours/glitch/styles/components/announcements.scss
@@ -84,14 +84,13 @@
 
     &__unread {
       position: absolute;
-      top: 15px;
-      right: 15px;
-      display: inline-block;
+      top: 19px;
+      right: 19px;
+      display: block;
       background: $highlight-text-color;
       border-radius: 50%;
       width: 0.625rem;
       height: 0.625rem;
-      margin: 0 .15em;
     }
   }
 
diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js
index 4b3c79d0d..e2c8d43c9 100644
--- a/app/javascript/mastodon/components/status_action_bar.js
+++ b/app/javascript/mastodon/components/status_action_bar.js
@@ -319,7 +319,7 @@ class StatusActionBar extends ImmutablePureComponent {
       replyTitle = intl.formatMessage(messages.replyAll);
     }
 
-    const shareButton = ('share' in navigator) && status.get('visibility') === 'public' && (
+    const shareButton = ('share' in navigator) && publicStatus && (
       <IconButton className='status__action-bar-button' title={intl.formatMessage(messages.share)} icon='share-alt' onClick={this.handleShareClick} />
     );
 
diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js
index 657d2bb1c..959774da4 100644
--- a/app/javascript/mastodon/features/status/components/action_bar.js
+++ b/app/javascript/mastodon/features/status/components/action_bar.js
@@ -250,7 +250,7 @@ class ActionBar extends React.PureComponent {
       }
     }
 
-    const shareButton = ('share' in navigator) && status.get('visibility') === 'public' && (
+    const shareButton = ('share' in navigator) && publicStatus && (
       <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.share)} icon='share-alt' onClick={this.handleShare} /></div>
     );
 
@@ -265,12 +265,10 @@ class ActionBar extends React.PureComponent {
     if (status.get('visibility') === 'direct') reblogIcon = 'envelope';
     else if (status.get('visibility') === 'private') reblogIcon = 'lock';
 
-    let reblog_disabled = (status.get('visibility') === 'direct' || status.get('visibility') === 'private');
-
     return (
       <div className='detailed-status__action-bar'>
         <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.reply)} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} onClick={this.handleReplyClick} /></div>
-        <div className='detailed-status__button'><IconButton disabled={reblog_disabled} active={status.get('reblogged')} title={reblog_disabled ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} icon={reblogIcon} onClick={this.handleReblogClick} /></div>
+        <div className='detailed-status__button'><IconButton disabled={!publicStatus} active={status.get('reblogged')} title={!publicStatus ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} icon={reblogIcon} onClick={this.handleReblogClick} /></div>
         <div className='detailed-status__button'><IconButton className='star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} /></div>
         {shareButton}
         <div className='detailed-status__button'><IconButton className='bookmark-icon' active={status.get('bookmarked')} title={intl.formatMessage(messages.bookmark)} icon='bookmark' onClick={this.handleBookmarkClick} /></div>
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..c71212b85 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": "إخفاء الإعلانات",
+  "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": "هذا الحساب ينتمي إلى خادوم آخَر. هل تودّ إرسال نسخة مجهولة مِن التقرير إلى هنالك أيضًا؟",
@@ -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..8006a1306 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.",
@@ -32,18 +32,18 @@
   "account.report": "Report @{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.show_reblogs": "Amosar les comparticiones de @{name}",
   "account.unblock": "Desbloquiar a @{name}",
   "account.unblock_domain": "Amosar {domain}",
-  "account.unendorse": "Don't feature on profile",
-  "account.unfollow": "Unfollow",
+  "account.unendorse": "Nun destacar nel perfil",
+  "account.unfollow": "Dexar de siguir",
   "account.unmute": "Unmute @{name}",
   "account.unmute_notifications": "Unmute notifications from @{name}",
   "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
   "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",
@@ -84,10 +84,10 @@
   "compose_form.poll.add_option": "Amestar una escoyeta",
   "compose_form.poll.duration": "Poll duration",
   "compose_form.poll.option_placeholder": "Escoyeta {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
+  "compose_form.poll.remove_option": "Desaniciar esta escoyeta",
   "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",
@@ -96,30 +96,30 @@
   "compose_form.spoiler.unmarked": "El testu nun va anubrise",
   "compose_form.spoiler_placeholder": "Escribi equí l'alvertencia",
   "confirmation_modal.cancel": "Encaboxar",
-  "confirmations.block.block_and_report": "Block & Report",
-  "confirmations.block.confirm": "Block",
+  "confirmations.block.block_and_report": "Bloquiar ya informar",
+  "confirmations.block.confirm": "Bloquiar",
   "confirmations.block.message": "¿De xuru que quies bloquiar a {name}?",
-  "confirmations.delete.confirm": "Delete",
+  "confirmations.delete.confirm": "Desaniciar",
   "confirmations.delete.message": "¿De xuru que quies desaniciar esti estáu?",
   "confirmations.delete_list.confirm": "Desaniciar",
   "confirmations.delete_list.message": "¿De xuru que quies desaniciar dafechu esta llista?",
   "confirmations.domain_block.confirm": "Anubrir tol dominiu",
-  "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
-  "confirmations.logout.confirm": "Log out",
-  "confirmations.logout.message": "Are you sure you want to log out?",
-  "confirmations.mute.confirm": "Mute",
-  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
+  "confirmations.domain_block.message": "¿De xuru xurísimu que quies bloquiar el dominiu {domain} enteru? Na mayoría de casos bloquiar o silenciar dalguna cuenta ye abondo y preferible. Nun vas ver el conteníu d'esi dominiu en nenguna llinia temporal pública o nos avisos, y van desanciase los tos siguidores d'esi dominiu.",
+  "confirmations.logout.confirm": "Zarrar sesión",
+  "confirmations.logout.message": "¿De xuru que quies zarrar la sesión?",
+  "confirmations.mute.confirm": "Silenciar",
+  "confirmations.mute.explanation": "Esto va anubrir los espublizamientos y les sos menciones pero entá va permiti-yos ver los tos espublizamientos y siguite.",
   "confirmations.mute.message": "¿De xuru que quies silenciar a {name}?",
   "confirmations.redraft.confirm": "Desaniciar y reeditar",
   "confirmations.redraft.message": "¿De xuru que quies desaniciar esti estáu y reeditalu? Van perdese los favoritos y comparticiones, y les rempuestes al toot orixinal van quedar güérfanes.",
-  "confirmations.reply.confirm": "Reply",
-  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
-  "confirmations.unfollow.confirm": "Unfollow",
+  "confirmations.reply.confirm": "Responder",
+  "confirmations.reply.message": "Responder agora va sobrescribir el mensaxe que tas componiendo anguaño. ¿De xuru que quies siguir?",
+  "confirmations.unfollow.confirm": "Dexar de siguir",
   "confirmations.unfollow.message": "¿De xuru que quies dexar de siguir a {name}?",
   "conversation.delete": "Delete conversation",
   "conversation.mark_as_read": "Mark as read",
   "conversation.open": "View conversation",
-  "conversation.with": "With {names}",
+  "conversation.with": "Con {names}",
   "directory.federated": "Dende'l fediversu",
   "directory.local": "Dende {domain} namái",
   "directory.new_arrivals": "Cuentes nueves",
@@ -142,21 +142,21 @@
   "emoji_button.travel": "Viaxes y llugares",
   "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.blocks": "Entá nun bloquiesti a nunengún usuariu.",
+  "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.direct": "Entá nun tienes nunengú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.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, va amosase equí.",
   "empty_column.hashtag": "Entá nun hai nada nesta etiqueta.",
   "empty_column.home": "¡Tienes la llinia temporal balera! Visita {public} o usa la gueta pa entamar y conocer a otros usuarios.",
   "empty_column.home.public_timeline": "la llinia temporal pública",
   "empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen estaos nuevos, van apaecer equí.",
-  "empty_column.lists": "Entá nun tienes denguna llista. Cuando crees una, va amosase equí.",
-  "empty_column.mutes": "Entá nun silenciesti a dengún usuariu.",
-  "empty_column.notifications": "Entá nun tienes dengún avisu. Interactúa con otros p'aniciar la conversación.",
+  "empty_column.lists": "Entá nun tienes nunenguna llista. Cuando crees una, va amosase equí.",
+  "empty_column.mutes": "Entá nun silenciesti a nunengún usuariu.",
+  "empty_column.notifications": "Entá nun tienes nunengún avisu. Interactúa con otros p'aniciar la conversación.",
   "empty_column.public": "¡Equí nun hai nada! Escribi daqué público o sigui a usuarios d'otros sirvidores pa rellenar esto",
   "error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun pudo amosase correutamente.",
   "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
@@ -175,19 +175,21 @@
   "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}}",
-  "introduction.federation.action": "Next",
+  "introduction.federation.action": "Siguiente",
   "introduction.federation.federated.headline": "Federated",
   "introduction.federation.federated.text": "Los espublizamientos públicos de los demás sirvidores del fediversu van apaecer na llinia temporal federada.",
   "introduction.federation.home.headline": "Home",
@@ -196,12 +198,12 @@
   "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
   "introduction.interactions.action": "¡Finar el tutorial!",
   "introduction.interactions.favourite.headline": "Favourite",
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
+  "introduction.interactions.favourite.text": "Pues guardar un barritu pa dempués y facer que l'autor sepa que te prestó marcándolu como favoritu.",
   "introduction.interactions.reblog.headline": "Boost",
   "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
   "introduction.interactions.reply.headline": "Reply",
   "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
+  "introduction.welcome.action": "¡Vamos!",
   "introduction.welcome.headline": "Primeros pasos",
   "introduction.welcome.text": "¡Afáyate nel fediversu! Nun momentu vas ser a tresmitir mensaxes y falar colos collacios d'una montonera de sirvidores. Pero esti sirvidor, {domain}, ye especial: agospia'l to perfil, asina qu'alcuérdate de cómo se llama.",
   "keyboard_shortcuts.back": "pa dir p'atrás",
@@ -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,41 +283,41 @@
   "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",
-  "poll_button.remove_poll": "Remove poll",
+  "poll_button.add_poll": "Amestar una encuesta",
+  "poll_button.remove_poll": "Desaniciar la encuesta",
   "privacy.change": "Adjust status privacy",
   "privacy.direct.long": "Post to mentioned users only",
   "privacy.direct.short": "Direct",
@@ -333,14 +335,15 @@
   "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?",
   "report.hint": "L'informe va unviase a los llendadores del to sirvidor. Embaxo, pues desplicar por qué informes d'esta cuenta:",
   "report.placeholder": "Comentarios adicionales",
-  "report.submit": "Submit",
+  "report.submit": "Unviar",
   "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,11 +358,11 @@
   "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.delete": "Delete",
+  "status.copy": "Copiar l'enllaz al estáu",
+  "status.delete": "Desaniciar",
   "status.detailed_status": "Detailed conversation view",
   "status.direct": "Unviar un mensaxe direutu a @{name}",
   "status.embed": "Empotrar",
@@ -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..f55420793 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -158,8 +158,8 @@
   "empty_column.mutes": "Encara no has silenciat cap usuari.",
   "empty_column.notifications": "Encara no tens notificacions. Interactua amb altres per iniciar la conversa.",
   "empty_column.public": "No hi ha res aquí! Escriu públicament alguna cosa o manualment segueix usuaris d'altres servidors per omplir-ho",
-  "error.unexpected_crash.explanation": "A causa d'un bug en el nostre codi o un problema de compatibilitat del navegador, aquesta pàgina no podria ser mostrada correctament.",
-  "error.unexpected_crash.next_steps": "Prova recarregant la pàgina. Si això no ajuda encara pots ser capaç d'utilitzar Mastodont a través d'un navegador diferent o app nativa.",
+  "error.unexpected_crash.explanation": "A causa d'un bug en el nostre codi o un problema de compatibilitat del navegador, aquesta pàgina podria no ser mostrada correctament.",
+  "error.unexpected_crash.next_steps": "Prova recarregant la pàgina. Si això no ajuda, encara podries ser capaç d'utilitzar Mastodon a través d'un navegador diferent o amb una app nativa.",
   "errors.unexpected_crash.copy_stacktrace": "Còpia stacktrace al porta-retalls",
   "errors.unexpected_crash.report_issue": "Informa d'un problema",
   "follow_request.authorize": "Autoritzar",
@@ -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..0d535cbc2 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": "Cuddio cyhoeddiadau",
+  "home.show_announcements": "Dangos cyhoeddiadau",
   "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": "heddiw",
   "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..76657cdde 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -72,7 +72,7 @@
   "column_header.moveRight_settings": "Mover columna cara a dereita",
   "column_header.pin": "Fixar",
   "column_header.show_settings": "Amosar axustes",
-  "column_header.unpin": "Desafixar",
+  "column_header.unpin": "Desapegar",
   "column_subheading.settings": "Axustes",
   "community.column_settings.media_only": "Só multimedia",
   "compose_form.direct_message_warning": "Este toot só será enviado ás usuarias mencionadas.",
@@ -118,7 +118,7 @@
   "confirmations.unfollow.message": "Desexas deixar de seguir a {name}?",
   "conversation.delete": "Eliminar conversa",
   "conversation.mark_as_read": "Marcar como lido",
-  "conversation.open": "Ollar conversa",
+  "conversation.open": "Ver conversa",
   "conversation.with": "Con {names}",
   "directory.federated": "Do fediverso coñecido",
   "directory.local": "Só de {domain}",
@@ -129,7 +129,7 @@
   "emoji_button.activity": "Actividade",
   "emoji_button.custom": "Personalizado",
   "emoji_button.flags": "Bandeiras",
-  "emoji_button.food": "Comida e bebida",
+  "emoji_button.food": "Comida e Bebida",
   "emoji_button.label": "Inserir emoticona",
   "emoji_button.nature": "Natureza",
   "emoji_button.not_found": "Non hai emoticonas!! (╯°□°)╯︵ ┻━┻",
@@ -139,11 +139,11 @@
   "emoji_button.search": "Procurar...",
   "emoji_button.search_results": "Resultados da procura",
   "emoji_button.symbols": "Símbolos",
-  "emoji_button.travel": "Viaxes e lugares",
+  "emoji_button.travel": "Viaxes e Lugares",
   "empty_column.account_timeline": "Non hai toots aquí!",
-  "empty_column.account_unavailable": "Perfil non dispoñíbel",
+  "empty_column.account_unavailable": "Perfil non dispoñible",
   "empty_column.blocks": "Aínda non bloqueaches a ningún usuaria.",
-  "empty_column.bookmarked_statuses": "Aínda non marcaches ningún toot. Cando o fagas, amosaranse aquí.",
+  "empty_column.bookmarked_statuses": "Aínda non marcaches ningún toot. Cando o fagas, aparecerán aquí.",
   "empty_column.community": "A cronoloxía local está baleira. Escribe algo de xeito público para espallalo!",
   "empty_column.direct": "Aínda non tes mensaxes directas. Cando envíes ou recibas unha, amosarase aquí.",
   "empty_column.domain_blocks": "Aínda non hai dominios agochados.",
@@ -165,7 +165,7 @@
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rexeitar",
   "getting_started.developers": "Desenvolvedores",
-  "getting_started.directory": "Directorio do perfil",
+  "getting_started.directory": "Directorio local",
   "getting_started.documentation": "Documentación",
   "getting_started.heading": "Primeiros pasos",
   "getting_started.invite": "Convidar persoas",
@@ -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}}",
@@ -221,13 +223,13 @@
   "keyboard_shortcuts.hotkey": "Tecla de atallo",
   "keyboard_shortcuts.legend": "para amosar esta lenda",
   "keyboard_shortcuts.local": "para abrir a cronoloxía local",
-  "keyboard_shortcuts.mention": "para mencionar ó autor",
+  "keyboard_shortcuts.mention": "para mencionar a autora",
   "keyboard_shortcuts.muted": "abrir lista de usuarias acaladas",
   "keyboard_shortcuts.my_profile": "para abrir o teu perfil",
   "keyboard_shortcuts.notifications": "para abrir a columna das notificacións",
   "keyboard_shortcuts.open_media": "para abrir o contido multimedia",
   "keyboard_shortcuts.pinned": "para abrir a listaxe dos toots fixados",
-  "keyboard_shortcuts.profile": "para abrir o perfil do autor",
+  "keyboard_shortcuts.profile": "para abrir o perfil da autora",
   "keyboard_shortcuts.reply": "para responder",
   "keyboard_shortcuts.requests": "para abrir a listaxe das peticións de seguimento",
   "keyboard_shortcuts.search": "para destacar a procura",
@@ -311,7 +313,7 @@
   "poll.closed": "Pechado",
   "poll.refresh": "Actualizar",
   "poll.total_people": "{count, plural,one {# persoa}other {# persoas}}",
-  "poll.total_votes": "{count, plural, one {# voto} outros {# votos}}",
+  "poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
   "poll.vote": "Votar",
   "poll.voted": "Votaches por esta opción",
   "poll_button.add_poll": "Engadir unha enquisa",
@@ -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?",
@@ -354,14 +357,14 @@
   "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
   "status.admin_account": "Abrir interface de moderación para @{name}",
   "status.admin_status": "Abrir este estado na interface de moderación",
-  "status.block": "Bloquear @{name}",
+  "status.block": "Bloquear a @{name}",
   "status.bookmark": "Marcar",
   "status.cancel_reblog_private": "Desfacer compartido",
   "status.cannot_reblog": "Esta publicación non pode ser promovida",
   "status.copy": "Copiar ligazón ó estado",
   "status.delete": "Eliminar",
   "status.detailed_status": "Vista detallada da conversa",
-  "status.direct": "Mensaxe directa @{name}",
+  "status.direct": "Mensaxe directa a @{name}",
   "status.embed": "Embeber nunha web",
   "status.favourite": "Favorito",
   "status.filtered": "Filtrado",
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..98d0af510 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Batasan tingkat",
   "alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.",
   "alert.unexpected.title": "Oops!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Pengumuman",
   "autosuggest_hashtag.per_week": "{count} per minggu",
   "boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini",
   "bundle_column_error.body": "Kesalahan terjadi saat memuat komponen ini.",
@@ -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..e78b4cc4f 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,8 +27,8 @@
   "account.mute_notifications": "Susem ilγa sγur @{name}",
   "account.muted": "Yettwasgugem",
   "account.never_active": "Werǧin",
-  "account.posts": "Tiberraḥin",
-  "account.posts_with_replies": "Tibarraḥin d tririyin",
+  "account.posts": "Tijewwaqin",
+  "account.posts_with_replies": "Tijewwaqin akked tririyin",
   "account.report": "Sewɛed @{name}",
   "account.requested": "Di laɛḍil ad yettwaqbel. Ssit iwakken ad yefsex usuter n weḍfar",
   "account.share": "Bḍu amaγnu n @{name}",
@@ -41,9 +41,9 @@
   "account.unmute_notifications": "Serreḥ ilγa sγur @{name}",
   "alert.rate_limited.message": "Ma ulac aγilif ɛreḍ tikelt-nniḍen mbeɛd {retry_time, time, medium}.",
   "alert.rate_limited.title": "Aktum s talast",
-  "alert.unexpected.message": "Tella-d tuccḍa i ɣef ur nedmi ara.",
+  "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",
@@ -109,20 +109,20 @@
   "confirmations.logout.message": "D tidet tebγiḍ ad teffγeḍ?",
   "confirmations.mute.confirm": "Sgugem",
   "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.mute.message": "Tetḥeqqeḍ belli tebγiḍ ad ttegugmeḍ {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",
-  "confirmations.unfollow.message": "Tetḥeqqeḍ belli tebγiḍ ur teḍḍafaṛeḍ ara {name}?",
+  "confirmations.unfollow.message": "Tetḥeqqeḍ belli tebγiḍ ur teṭafaṛeḍ ara {name}?",
   "conversation.delete": "Sfeḍ adiwenni",
   "conversation.mark_as_read": "Creḍ yettwaγṛa",
   "conversation.open": "Sken adiwenni",
   "conversation.with": "Akked {names}",
-  "directory.federated": "Seg fedivers yettwasnen",
+  "directory.federated": "Deg 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,14 +198,14 @@
   "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.",
+  "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.",
   "keyboard_shortcuts.back": "uγal ar deffir",
   "keyboard_shortcuts.blocked": "akken ad teldiḍ tabdert n yimseqdacen yettwasḥebsen",
   "keyboard_shortcuts.boost": "i beṭṭu tikelt-nniḍen",
@@ -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,9 +411,9 @@
   "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.",
-  "upload_area.title": "Drag & drop to upload",
-  "upload_button.label": "Add media ({formats})",
+  "ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeγ-ed deg Maṣṭudun.",
+  "upload_area.title": "Zuḥeb rnu sers i tasalyt",
+  "upload_button.label": "Rnu Taγwalt ({formats})",
   "upload_error.limit": "File upload limit exceeded.",
   "upload_error.poll": "File upload not allowed with polls.",
   "upload_form.audio_description": "Glem-d i yemdanen i yesɛan ugur deg tmesliwt",
@@ -421,10 +424,10 @@
   "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_modal.preview_label": "Taskant ({ratio})",
   "upload_progress.label": "Asali iteddu...",
   "video.close": "Mdel tabidyutt",
   "video.download": "Sidered afaylu",
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..9d9eaa769 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -1,7 +1,7 @@
 {
   "account.add_or_remove_from_list": "Dodaj lub usuń z list",
   "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
+  "account.badges.group": "Grupa",
   "account.block": "Blokuj @{name}",
   "account.block_domain": "Blokuj wszystko z {domain}",
   "account.blocked": "Zablokowany(-a)",
@@ -43,7 +43,7 @@
   "alert.rate_limited.title": "Ograniczony czasowo",
   "alert.unexpected.message": "Wystąpił nieoczekiwany błąd.",
   "alert.unexpected.title": "O nie!",
-  "announcement.announcement": "Announcement",
+  "announcement.announcement": "Ogłoszenie",
   "autosuggest_hashtag.per_week": "{count} co tydzień",
   "boost_modal.combo": "Naciśnij {combo}, aby pominąć to następnym razem",
   "bundle_column_error.body": "Coś poszło nie tak podczas ładowania tego składnika.",
@@ -89,8 +89,8 @@
   "compose_form.poll.duration": "Czas trwania głosowania",
   "compose_form.poll.option_placeholder": "Opcja {number}",
   "compose_form.poll.remove_option": "Usuń tę opcję",
-  "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": "Pozwól na wybranie wielu opcji",
+  "compose_form.poll.switch_to_single": "Pozwól na wybranie tylko jednej opcji",
   "compose_form.publish": "Wyślij",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.sensitive.hide": "Oznacz multimedia jako wrażliwe",
@@ -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": "Ukryj ogłoszenia",
+  "home.show_announcements": "Pokaż ogłoszenia",
   "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": "dzisiaj",
   "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ą?",
@@ -418,11 +421,11 @@
   "upload_button.label": "Dodaj zawartość multimedialną (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Przekroczono limit plików do wysłania.",
   "upload_error.poll": "Dołączanie plików nie dozwolone z głosowaniami.",
-  "upload_form.audio_description": "Describe for people with hearing loss",
+  "upload_form.audio_description": "Opisz dla osób niesłyszących i niedosłyszących",
   "upload_form.description": "Wprowadź opis dla niewidomych i niedowidzących",
   "upload_form.edit": "Edytuj",
   "upload_form.undo": "Usuń",
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+  "upload_form.video_description": "Opisz dla osób niesłyszących, niedosłyszących, niewidomych i niedowidzących",
   "upload_modal.analyzing_picture": "Analizowanie obrazu…",
   "upload_modal.apply": "Zastosuj",
   "upload_modal.description_placeholder": "Pchnąć w tę łódź jeża lub ośm skrzyń fig",
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..ad4407e9d 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": "Skry oboznámenia",
+  "home.show_announcements": "Ukáž oboznámenia",
   "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": "dnes",
   "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..003dfaf3b 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -40,20 +40,20 @@
   "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": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.",
-  "bundle_column_error.retry": "மீண்டும் முயல்க",
+  "bundle_column_error.retry": "மீண்டும் முயற்சிக்கவும்",
   "bundle_column_error.title": "பிணையப் பிழை",
   "bundle_modal_error.close": "மூடுக",
   "bundle_modal_error.message": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.",
   "bundle_modal_error.retry": "மீண்டும் முயற்சி செய்",
   "column.blocks": "தடுக்கப்பட்ட பயனர்கள்",
-  "column.bookmarks": "Bookmarks",
+  "column.bookmarks": "அடையாளக்குறிகள்",
   "column.community": "சுய நிகழ்வு காலவரிசை",
   "column.direct": "நேர் சேதிகள்",
   "column.directory": "சுயவிவரங்களை உலாவு",
@@ -64,71 +64,71 @@
   "column.lists": "பட்டியல்கள்",
   "column.mutes": "மௌனத் தடை செய்யப்பட்ட பயனர்கள்",
   "column.notifications": "அறிவிப்புகள்",
-  "column.pins": "Pinned toot",
-  "column.public": "கூட்டாட்சி காலக்கெடு",
-  "column_back_button.label": "முந்தைய பக்கம்",
+  "column.pins": "பொருத்தப்பட்ட டூட்டுகள்",
+  "column.public": "ஆலமரத்தில் நிகழ்பவை",
+  "column_back_button.label": "திரும்பு",
   "column_header.hide_settings": "அமைப்புகளை மறை",
-  "column_header.moveLeft_settings": "நெடுவரிசையை இடதுபுறமாக நகர்த்தவும்",
-  "column_header.moveRight_settings": "நெடுவரிசை வலது புறமாக நகர்த்து",
-  "column_header.pin": "குண்டூசி",
+  "column_header.moveLeft_settings": "நெடுவரிசையை இடதுபுறமாக நகர்த்து",
+  "column_header.moveRight_settings": "நெடுவரிசையை வலதுபுறமாக நகர்த்து",
+  "column_header.pin": "பொருத்து",
   "column_header.show_settings": "அமைப்புகளைக் காட்டு",
-  "column_header.unpin": "பொருத்தப்படாத",
+  "column_header.unpin": "கழட்டு",
   "column_subheading.settings": "அமைப்புகள்",
   "community.column_settings.media_only": "படங்கள் மட்டுமே",
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
-  "compose_form.direct_message_warning_learn_more": "மேலும் அறிக",
-  "compose_form.hashtag_warning": "இந்த toot பட்டியலிடப்படாதது போல எந்த ஹேஸ்டேக்கின் கீழ் பட்டியலிடப்படாது. ஹேஸ்டேக் மூலம் பொது டோட்டல்கள் மட்டுமே தேட முடியும்.",
-  "compose_form.lock_disclaimer": "உங்கள் கணக்கு அல்ல {locked}. உங்களுடைய பின்தொடர்பவர் மட்டும் இடுகைகளை யாராவது காணலாம்.",
-  "compose_form.lock_disclaimer.lock": "தாழிடு",
-  "compose_form.placeholder": "What is on your mind?",
-  "compose_form.poll.add_option": "ஒரு விருப்பத்தைச் சேர்க்கவும்",
-  "compose_form.poll.duration": "வாக்கெடுப்பு காலம்",
-  "compose_form.poll.option_placeholder": "தேர்ந்தெடுப்ப {number}",
-  "compose_form.poll.remove_option": "இந்த விருப்பத்தை அகற்றவும்",
-  "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
-  "compose_form.publish": "டூட் செய்க",
+  "compose_form.direct_message_warning": "இந்த டூட் இதில் குறிப்பிடப்பட்டுள்ள பயனர்களுக்கு மட்டுமே அனுப்பப்படும்.",
+  "compose_form.direct_message_warning_learn_more": "மேலும் அறிய",
+  "compose_form.hashtag_warning": "இது ஒரு பட்டியலிடப்படாத டூட் என்பதால் எந்த ஹேஷ்டேகின் கீழும் வராது. ஹேஷ்டேகின் மூலம் பொதுவில் உள்ள டூட்டுகளை மட்டுமே தேட முடியும்.",
+  "compose_form.lock_disclaimer": "உங்கள் கணக்கு {locked} செய்யப்படவில்லை. உங்கள் பதிவுகளை யார் வேண்டுமானாலும் பின்தொடர்ந்து காணலாம்.",
+  "compose_form.lock_disclaimer.lock": "பூட்டப்பட்டது",
+  "compose_form.placeholder": "உங்கள் மனதில் என்ன இருக்கிறது?",
+  "compose_form.poll.add_option": "தேர்வை சேர்",
+  "compose_form.poll.duration": "கருத்துக்கணிப்பின் கால அளவு",
+  "compose_form.poll.option_placeholder": "தேர்வு எண் {number}",
+  "compose_form.poll.remove_option": "இந்தத் தேர்வை அகற்று",
+  "compose_form.poll.switch_to_multiple": "பல தேர்வுகளை அனுமதிக்குமாறு மாற்று",
+  "compose_form.poll.switch_to_single": "ஒரே ஒரு தேர்வை மட்டும் அனுமதிக்குமாறு மாற்று",
+  "compose_form.publish": "டூட்",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "அனைவருக்கும் ஏற்ற ஊடகம் இல்லை எனக் குறியிடுக",
-  "compose_form.sensitive.marked": "ஊடகம் உணர்திறன் என குறிக்கப்பட்டுள்ளது",
-  "compose_form.sensitive.unmarked": "ஊடகம் உணர்திறன் என குறிக்கப்படவில்லை",
-  "compose_form.spoiler.marked": "எச்சரிக்கை பின்னால் உரை மறைக்கப்பட்டுள்ளது",
-  "compose_form.spoiler.unmarked": "உரை மறைக்கப்படவில்லை",
-  "compose_form.spoiler_placeholder": "இங்கே உங்கள் எச்சரிக்கையை எழுதுங்கள்",
-  "confirmation_modal.cancel": "எதிராணை",
+  "compose_form.sensitive.hide": "அனைவருக்கும் ஏற்றப் படம் இல்லை எனக் குறியிடு",
+  "compose_form.sensitive.marked": "இப்படம் அனைவருக்கும் ஏற்றதல்ல எனக் குறியிடப்பட்டுள்ளது",
+  "compose_form.sensitive.unmarked": "இப்படம் அனைவருக்கும் ஏற்றதல்ல எனக் குறியிடப்படவில்லை",
+  "compose_form.spoiler.marked": "எச்சரிக்கையின் பின்னால் பதிவு மறைக்கப்பட்டுள்ளது",
+  "compose_form.spoiler.unmarked": "பதிவு மறைக்கப்படவில்லை",
+  "compose_form.spoiler_placeholder": "உங்கள் எச்சரிக்கையை இங்கு எழுதவும்",
+  "confirmation_modal.cancel": "ரத்து",
   "confirmations.block.block_and_report": "தடுத்துப் புகாரளி",
   "confirmations.block.confirm": "தடு",
-  "confirmations.block.message": "நீங்கள் நிச்சயமாக தடைசெய்ய விரும்புகிறீர்களா {name}?",
-  "confirmations.delete.confirm": "அழி",
-  "confirmations.delete.message": "இந்த நிலையை நிச்சயமாக நீக்க விரும்புகிறீர்களா?",
-  "confirmations.delete_list.confirm": "அழி",
-  "confirmations.delete_list.message": "இந்த பட்டியலில் நிரந்தரமாக நீக்க விரும்புகிறீர்களா?",
-  "confirmations.domain_block.confirm": "முழு டொமைனை மறை",
-  "confirmations.domain_block.message": "நீங்கள் உண்மையில், நிச்சயமாக நீங்கள் முழு தடுக்க வேண்டும் நிச்சயமாக {domain}? பெரும்பாலான சந்தர்ப்பங்களில் ஒரு சில இலக்குகள் அல்லது மியூட்கள் போதுமானவை மற்றும் சிறந்தவை. எந்த பொது நேரத்திலும் அல்லது உங்கள் அறிவிப்புகளிலும் அந்தக் களத்திலிருந்து உள்ளடக்கத்தை நீங்கள் பார்க்க மாட்டீர்கள். அந்த களத்தில் இருந்து உங்கள் ஆதரவாளர்கள் அகற்றப்படுவார்கள்.",
+  "confirmations.block.message": "{name}-ஐ நிச்சயமாகத் தடுக்க விரும்புகிறீர்களா?",
+  "confirmations.delete.confirm": "நீக்கு",
+  "confirmations.delete.message": "இப்பதிவை நிச்சயமாக நீக்க விரும்புகிறீர்களா?",
+  "confirmations.delete_list.confirm": "நீக்கு",
+  "confirmations.delete_list.message": "இப்பட்டியலை நிரந்தரமாக நீக்க நிச்சயம் விரும்புகிறீர்களா?",
+  "confirmations.domain_block.confirm": "முழு களத்தையும் மறை",
+  "confirmations.domain_block.message": "நீங்கள் முழு {domain} களத்தையும் நிச்சயமாக, நிச்சயமாகத் தடுக்க விரும்புகிறீர்களா? பெரும்பாலும் சில குறிப்பிட்ட பயனர்களைத் தடுப்பதே போதுமானது. முழு களத்தையும் தடுத்தால், அதிலிருந்து வரும் எந்தப் பதிவையும் உங்களால் காண முடியாது, மேலும் அப்பதிவுகள் குறித்த அறிவிப்புகளும் உங்களுக்கு வராது. அந்தக் களத்தில் இருக்கும் பின்தொடர்பவர்கள் உங்கள் பக்கத்திலிருந்து நீக்கப்படுவார்கள்.",
   "confirmations.logout.confirm": "வெளியேறு",
-  "confirmations.logout.message": "கண்டிப்பாக வெளியேறத்தான் வேண்டுமா?",
-  "confirmations.mute.confirm": "ஊமையான",
-  "confirmations.mute.explanation": "இது அவர்களின் பதிவுகளையும், அவர்களைக் குறிப்பிடும் பதிவுகளையும் மறைத்துவிடும். ஆனால் அவர்கள் உங்கள் பதிவுகளைப் பார்க்கவும், உங்களைப் பின் தொடரவும் அனுமதிக்கப்படுவார்கள்.",
-  "confirmations.mute.message": "நிச்சயமாக நீங்கள் முடக்க விரும்புகிறீர்களா {name}?",
-  "confirmations.redraft.confirm": "நீக்கு & redraft",
-  "confirmations.redraft.message": "நிச்சயமாக இந்த நிலையை நீக்கி, அதை மறுபடியும் உருவாக்க வேண்டுமா? பிடித்தவை மற்றும் ஊக்கங்கள் இழக்கப்படும், மற்றும் அசல் இடுகையில் பதில்கள் அனாதையான இருக்கும்.",
-  "confirmations.reply.confirm": "பதில்",
-  "confirmations.reply.message": "இப்போது பதில், தற்போது நீங்கள் உருவாக்கும் செய்தி மேலெழுதப்படும். நீங்கள் தொடர விரும்புகிறீர்களா?",
-  "confirmations.unfollow.confirm": "பின்தொடராட்",
-  "confirmations.unfollow.message": "நிச்சயமாக நீங்கள் பின்தொடர விரும்புகிறீர்களா {name}?",
-  "conversation.delete": "உரையாடலை அழிக்கவும்",
+  "confirmations.logout.message": "நிச்சயமாக நீங்கள் வெளியேற விரும்புகிறீர்களா?",
+  "confirmations.mute.confirm": "அமைதியாக்கு",
+  "confirmations.mute.explanation": "இந்தத் தேர்வு அவர்களின் பதிவுகளையும், அவர்களைக் குறிப்பிடும் பதிவுகளையும் மறைத்துவிடும். ஆனால், அவர்களால் உங்களைப் பின்தொடர்ந்து உங்கள் பதிவுகளைக் காண முடியும்.",
+  "confirmations.mute.message": "{name}-ஐ நிச்சயமாக நீங்கள் அமைதியாக்க விரும்புகிறீர்களா?",
+  "confirmations.redraft.confirm": "பதிவை நீக்கி மறுவரைவு செய்",
+  "confirmations.redraft.message": "நிச்சயமாக நீங்கள் இந்தப் பதிவை நீக்கி மறுவரைவு செய்ய விரும்புகிறீர்களா? விருப்பங்களும் பகிர்வுகளும் அழிந்துபோகும், மேலும் மூலப் பதிவிற்கு வந்த மறுமொழிகள் தனித்துவிடப்படும்.",
+  "confirmations.reply.confirm": "மறுமொழி",
+  "confirmations.reply.message": "ஏற்கனவே ஒரு பதிவு எழுதப்பட்டுக்கொண்டிருக்கிறது. இப்பொழுது பதில் எழுத முனைந்தால் அது அழிக்கப்படும். பரவாயில்லையா?",
+  "confirmations.unfollow.confirm": "விலகு",
+  "confirmations.unfollow.message": "{name}-ஐப் பின்தொடர்வதை நிச்சயமாக நீங்கள் நிறுத்த விரும்புகிறீர்களா?",
+  "conversation.delete": "உரையாடலை அழி",
   "conversation.mark_as_read": "படிக்கபட்டதாகக் குறி",
-  "conversation.open": "உரையாடலைக் காண்க",
+  "conversation.open": "உரையாடலைக் காட்டு",
   "conversation.with": "{names} உடன்",
-  "directory.federated": "தெரிந்த ஃபெடிவெர்சிலிருந்து",
-  "directory.local": "{domain} இல் இருந்து மட்டும்",
+  "directory.federated": "ஆலமரத்தின் அறியப்பட்டப் பகுதியிலிருந்து",
+  "directory.local": "{domain} களத்திலிருந்து மட்டும்",
   "directory.new_arrivals": "புதிய வரவு",
-  "directory.recently_active": "தற்பொழுது இயாக்கதிலிருப்பவர்கள்",
-  "embed.instructions": "கீழே உள்ள குறியீட்டை நகலெடுப்பதன் மூலம் உங்கள் இணையதளத்தில் இந்த நிலையை உட்பொதிக்கவும்.",
-  "embed.preview": "இது போன்ற தோற்றத்தை இங்கு காணலாம்:",
-  "emoji_button.activity": "நடவடிக்கை",
-  "emoji_button.custom": "வழக்கம்",
-  "emoji_button.flags": "கொடி",
+  "directory.recently_active": "சற்றுமுன் செயல்பாட்டில் இருந்தவர்கள்",
+  "embed.instructions": "இந்தப் பதிவை உங்கள் வலைதளத்தில் பொதிக்கக் கீழே உள்ள வரிகளை காப்பி செய்யவும்.",
+  "embed.preview": "பார்க்க இப்படி இருக்கும்:",
+  "emoji_button.activity": "செயல்பாடு",
+  "emoji_button.custom": "தனிப்பயன்",
+  "emoji_button.flags": "கொடிகள்",
   "emoji_button.food": "உணவு மற்றும் பானம்",
   "emoji_button.label": "குறுப்படங்களை உள்ளிடு",
   "emoji_button.nature": "இயற்கை",
@@ -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/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 54372022a..aa885e241 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -6697,14 +6697,13 @@ noscript {
 
     &__unread {
       position: absolute;
-      top: 15px;
-      right: 15px;
-      display: inline-block;
+      top: 19px;
+      right: 19px;
+      display: block;
       background: $highlight-text-color;
       border-radius: 50%;
       width: 0.625rem;
       height: 0.625rem;
-      margin: 0 .15em;
     }
   }