about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authorReverite <github@reverite.sh>2019-06-22 14:15:02 -0600
committerReverite <github@reverite.sh>2019-06-22 14:15:02 -0600
commit714940de498e93a8bf40dcda1835217df18741bf (patch)
treeeafc1d01710ba978f133216d8d1a6e4d585606c6 /app
parentb2ffaa9f2909c83f23691a02b2843bf41a1a12c0 (diff)
parent38d28824475056766c97385b66f4e04a5123e3a2 (diff)
Merge branch 'glitch' into production
Diffstat (limited to 'app')
-rw-r--r--app/javascript/flavours/glitch/actions/notifications.js5
-rw-r--r--app/javascript/flavours/glitch/features/compose/components/navigation_bar.js20
-rw-r--r--app/javascript/flavours/glitch/features/compose/components/options.js2
-rw-r--r--app/javascript/flavours/glitch/features/getting_started/index.js4
-rw-r--r--app/javascript/flavours/glitch/features/local_settings/navigation/index.js2
-rw-r--r--app/javascript/flavours/glitch/selectors/index.js6
-rw-r--r--app/javascript/flavours/glitch/styles/components/drawer.scss17
-rw-r--r--app/javascript/flavours/glitch/styles/components/status.scss6
-rw-r--r--app/javascript/mastodon/actions/notifications.js5
-rw-r--r--app/javascript/mastodon/locales/ar.json16
-rw-r--r--app/javascript/mastodon/locales/bn.json2
-rw-r--r--app/javascript/mastodon/locales/co.json8
-rw-r--r--app/javascript/mastodon/locales/cs.json2
-rw-r--r--app/javascript/mastodon/locales/cy.json2
-rw-r--r--app/javascript/mastodon/locales/el.json18
-rw-r--r--app/javascript/mastodon/locales/es.json64
-rw-r--r--app/javascript/mastodon/locales/eu.json4
-rw-r--r--app/javascript/mastodon/locales/fa.json2
-rw-r--r--app/javascript/mastodon/locales/hu.json566
-rw-r--r--app/javascript/mastodon/locales/sk.json26
-rw-r--r--app/javascript/mastodon/locales/sl.json114
-rw-r--r--app/javascript/mastodon/locales/th.json198
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json18
-rw-r--r--app/javascript/mastodon/selectors/index.js9
-rw-r--r--app/lib/formatter.rb5
-rw-r--r--app/models/user.rb2
26 files changed, 578 insertions, 545 deletions
diff --git a/app/javascript/flavours/glitch/actions/notifications.js b/app/javascript/flavours/glitch/actions/notifications.js
index 57fecf63d..2107503db 100644
--- a/app/javascript/flavours/glitch/actions/notifications.js
+++ b/app/javascript/flavours/glitch/actions/notifications.js
@@ -62,9 +62,14 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
     let filtered = false;
 
     if (notification.type === 'mention') {
+      const dropRegex   = regexFromFilters(filters.filter(filter => filter.get('irreversible')));
       const regex       = regexFromFilters(filters);
       const searchIndex = notification.status.spoiler_text + '\n' + unescapeHTML(notification.status.content);
 
+      if (dropRegex && dropRegex.test(searchIndex)) {
+        return;
+      }
+
       filtered = regex && regex.test(searchIndex);
     }
 
diff --git a/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js b/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js
index 3148434f1..f6bfbdd1e 100644
--- a/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js
+++ b/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js
@@ -20,16 +20,18 @@ export default class NavigationBar extends ImmutablePureComponent {
           <Avatar account={this.props.account} size={48} />
         </Permalink>
 
-        <Permalink className='acct' href={this.props.account.get('url')} to={`/accounts/${this.props.account.get('id')}`}>
-          <strong>@{this.props.account.get('acct')}</strong>
-        </Permalink>
+        <div className='navigation-bar__profile'>
+          <Permalink className='acct' href={this.props.account.get('url')} to={`/accounts/${this.props.account.get('id')}`}>
+            <strong>@{this.props.account.get('acct')}</strong>
+          </Permalink>
 
-        { profileLink !== undefined && (
-          <a
-            className='edit'
-            href={ profileLink }
-          ><FormattedMessage id='navigation_bar.edit_profile' defaultMessage='Edit profile' /></a>
-        )}
+          { profileLink !== undefined && (
+            <a
+              className='edit'
+              href={ profileLink }
+            ><FormattedMessage id='navigation_bar.edit_profile' defaultMessage='Edit profile' /></a>
+          )}
+        </div>
       </div>
     );
   };
diff --git a/app/javascript/flavours/glitch/features/compose/components/options.js b/app/javascript/flavours/glitch/features/compose/components/options.js
index 0c94f5514..ed52b1997 100644
--- a/app/javascript/flavours/glitch/features/compose/components/options.js
+++ b/app/javascript/flavours/glitch/features/compose/components/options.js
@@ -232,7 +232,7 @@ class ComposerOptions extends ImmutablePureComponent {
 
     const contentTypeItems = {
       plain: {
-        icon: 'align-left',
+        icon: 'file-text',
         name: 'text/plain',
         text: <FormattedMessage {...messages.plain} />,
       },
diff --git a/app/javascript/flavours/glitch/features/getting_started/index.js b/app/javascript/flavours/glitch/features/getting_started/index.js
index f669220e3..36a445dca 100644
--- a/app/javascript/flavours/glitch/features/getting_started/index.js
+++ b/app/javascript/flavours/glitch/features/getting_started/index.js
@@ -14,6 +14,7 @@ import { List as ImmutableList } from 'immutable';
 import { createSelector } from 'reselect';
 import { fetchLists } from 'flavours/glitch/actions/lists';
 import { preferencesLink, signOutLink } from 'flavours/glitch/util/backend_links';
+import NavigationBar from '../compose/components/navigation_bar';
 import LinkFooter from 'flavours/glitch/features/ui/components/link_footer';
 
 const messages = defineMessages({
@@ -165,7 +166,8 @@ const NAVIGATION_PANEL_BREAKPOINT = 600 + (285 * 2) + (10 * 2);
       <Column name='getting-started' icon='asterisk' heading={intl.formatMessage(messages.heading)} label={intl.formatMessage(messages.menu)} hideHeadingOnMobile>
         <div className='scrollable optionally-scrollable'>
           <div className='getting-started__wrapper'>
-            <ColumnSubheading text={intl.formatMessage(messages.navigation_subheading)} />
+            {!multiColumn && <NavigationBar account={myAccount} />}
+            {multiColumn && <ColumnSubheading text={intl.formatMessage(messages.navigation_subheading)} />}
             {navItems}
             <ColumnSubheading text={intl.formatMessage(messages.lists_subheading)} />
             {listItems}
diff --git a/app/javascript/flavours/glitch/features/local_settings/navigation/index.js b/app/javascript/flavours/glitch/features/local_settings/navigation/index.js
index c583c4863..01368abad 100644
--- a/app/javascript/flavours/glitch/features/local_settings/navigation/index.js
+++ b/app/javascript/flavours/glitch/features/local_settings/navigation/index.js
@@ -74,7 +74,7 @@ export default class LocalSettingsNavigation extends React.PureComponent {
           active={index === 5}
           href={ preferencesLink }
           index={5}
-          icon='sliders'
+          icon='cog'
           title={intl.formatMessage(messages.preferences)}
         />
         <LocalSettingsNavigationItem
diff --git a/app/javascript/flavours/glitch/selectors/index.js b/app/javascript/flavours/glitch/selectors/index.js
index d1a88a2fc..2d4f3f7b4 100644
--- a/app/javascript/flavours/glitch/selectors/index.js
+++ b/app/javascript/flavours/glitch/selectors/index.js
@@ -78,6 +78,12 @@ export const makeGetStatus = () => {
         return null;
       }
 
+      const dropRegex = (accountReblog || accountBase).get('id') !== me && regexFromFilters(filters.filter(filter => filter.get('irreversible')));
+
+      if (dropRegex && dropRegex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index'))) {
+        return null;
+      }
+
       const regex  = (accountReblog || accountBase).get('id') !== me && regexFromFilters(filters);
       let filtered = false;
 
diff --git a/app/javascript/flavours/glitch/styles/components/drawer.scss b/app/javascript/flavours/glitch/styles/components/drawer.scss
index f054ddbc0..0e50482f6 100644
--- a/app/javascript/flavours/glitch/styles/components/drawer.scss
+++ b/app/javascript/flavours/glitch/styles/components/drawer.scss
@@ -163,18 +163,15 @@
 .drawer--account {
   padding: 10px;
   color: $darker-text-color;
+  display: flex;
+  align-items: center;
 
-  & > a {
+  a {
     color: inherit;
     text-decoration: none;
   }
 
-  & > .avatar {
-    float: left;
-    margin-right: 10px;
-  }
-
-  & > .acct {
+  .acct {
     display: block;
     color: $secondary-text-color;
     font-weight: 500;
@@ -184,6 +181,12 @@
   }
 }
 
+.navigation-bar__profile {
+  flex: 1 1 auto;
+  margin-left: 8px;
+  overflow: hidden;
+}
+
 .drawer--results {
   background: $ui-base-color;
   overflow-x: hidden;
diff --git a/app/javascript/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss
index ee4440e89..fa115f21b 100644
--- a/app/javascript/flavours/glitch/styles/components/status.scss
+++ b/app/javascript/flavours/glitch/styles/components/status.scss
@@ -33,6 +33,12 @@
 
   .status__content__text,
   .e-content {
+
+    & > ul,
+    & > ol {
+      margin-bottom: 20px;
+    }
+
     h1, h2, h3, h4, h5 {
       margin-top: 20px;
       margin-bottom: 20px;
diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js
index b0861fc6b..88788eec9 100644
--- a/app/javascript/mastodon/actions/notifications.js
+++ b/app/javascript/mastodon/actions/notifications.js
@@ -48,9 +48,14 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
     let filtered = false;
 
     if (notification.type === 'mention') {
+      const dropRegex   = regexFromFilters(filters.filter(filter => filter.get('irreversible')));
       const regex       = regexFromFilters(filters);
       const searchIndex = notification.status.spoiler_text + '\n' + unescapeHTML(notification.status.content);
 
+      if (dropRegex && dropRegex.test(searchIndex)) {
+        return;
+      }
+
       filtered = regex && regex.test(searchIndex);
     }
 
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 28a18c92d..1586580a8 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -45,7 +45,7 @@
   "bundle_modal_error.message": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
   "bundle_modal_error.retry": "إعادة المحاولة",
   "column.blocks": "الحسابات المحجوبة",
-  "column.community": "التَسَلْسُل الزَمني المحلي",
+  "column.community": "الخيط العام المحلي",
   "column.direct": "الرسائل المباشرة",
   "column.domain_blocks": "النطاقات المخفية",
   "column.favourites": "المفضلة",
@@ -109,7 +109,7 @@
   "emoji_button.food": "الطعام والشراب",
   "emoji_button.label": "أدرج إيموجي",
   "emoji_button.nature": "الطبيعة",
-  "emoji_button.not_found": "لا إيموجو !! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "لا إيموجو!! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "أشياء",
   "emoji_button.people": "الناس",
   "emoji_button.recent": "الشائعة الاستخدام",
@@ -120,7 +120,7 @@
   "empty_column.account_timeline": "ليس هناك تبويقات!",
   "empty_column.account_unavailable": "الملف الشخصي غير متوفر",
   "empty_column.blocks": "لم تقم بحظر أي مستخدِم بعد.",
-  "empty_column.community": "الخط الزمني المحلي فارغ. أكتب شيئا ما للعامة كبداية!",
+  "empty_column.community": "الخط العام المحلي فارغ. أكتب شيئا ما للعامة كبداية!",
   "empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
   "empty_column.domain_blocks": "ليس هناك نطاقات مخفية بعد.",
   "empty_column.favourited_statuses": "ليس لديك أية تبويقات مفضلة بعد. عندما ستقوم بالإعجاب بواحد، سيظهر هنا.",
@@ -164,8 +164,8 @@
   "introduction.federation.federated.text": "كافة المنشورات التي نُشِرت إلى العامة على الخوادم الأخرى للفديفرس سوف يتم عرضها على الخيط المُوحَّد.",
   "introduction.federation.home.headline": "الرئيسي",
   "introduction.federation.home.text": "سوف تُعرَض منشورات الأشخاص الذين تُتابِعهم على الخيط الرئيسي. بإمكانك متابعة أي حساب أيا كان الخادم الذي هو عليه!",
-  "introduction.federation.local.headline": "المحلي",
-  "introduction.federation.local.text": "المنشورات المُوجّهة للعامة على نفس الخادم الذي أنتم عليه ستظهر على الخيط الزمني المحلي.",
+  "introduction.federation.local.headline": "الخيط العام المحلي",
+  "introduction.federation.local.text": "المنشورات المُوجّهة للعامة على نفس الخادم الذي أنتم عليه ستظهر على الخيط العام المحلي.",
   "introduction.interactions.action": "إنهاء العرض التوضيحي!",
   "introduction.interactions.favourite.headline": "الإضافة إلى المفضلة",
   "introduction.interactions.favourite.text": "يمكِنك إضافة أي تبويق إلى المفضلة و إعلام صاحبه أنك أعجِبت بذاك التبويق.",
@@ -192,7 +192,7 @@
   "keyboard_shortcuts.home": "لفتح الخيط الرئيسي",
   "keyboard_shortcuts.hotkey": "مفتاح الاختصار",
   "keyboard_shortcuts.legend": "لعرض هذا المفتاح",
-  "keyboard_shortcuts.local": "لفتح الخيط الزمني المحلي",
+  "keyboard_shortcuts.local": "لفتح الخيط العام المحلي",
   "keyboard_shortcuts.mention": "لذِكر الناشر",
   "keyboard_shortcuts.muted": "لفتح قائمة المستخدِمين المكتومين",
   "keyboard_shortcuts.my_profile": "لفتح ملفك الشخصي",
@@ -221,7 +221,7 @@
   "lists.new.title_placeholder": "عنوان القائمة الجديدة",
   "lists.search": "إبحث في قائمة الحسابات التي تُتابِعها",
   "lists.subheading": "قوائمك",
-  "loading_indicator.label": "تحميل ...",
+  "loading_indicator.label": "تحميل...",
   "media_gallery.toggle_visible": "عرض / إخفاء",
   "missing_indicator.label": "تعذر العثور عليه",
   "missing_indicator.sublabel": "تعذر العثور على هذا المورد",
@@ -358,7 +358,7 @@
   "suggestions.header": "يمكن أن يهمك…",
   "tabs_bar.federated_timeline": "الموحَّد",
   "tabs_bar.home": "الرئيسية",
-  "tabs_bar.local_timeline": "المحلي",
+  "tabs_bar.local_timeline": "الخيط العام المحلي",
   "tabs_bar.notifications": "الإخطارات",
   "tabs_bar.search": "البحث",
   "time_remaining.days": "{number, plural, one {# يوم} other {# أيام}} متبقية",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index 93e7eedf9..5b7162ec1 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -239,7 +239,7 @@
   "navigation_bar.follow_requests": "অনুসরণের অনুরোধগুলি",
   "navigation_bar.follows_and_followers": "Follows and followers",
   "navigation_bar.info": "এই সার্ভার সম্পর্কে",
-  "navigation_bar.keyboard_shortcuts": "চাবি ব্যবহার",
+  "navigation_bar.keyboard_shortcuts": "হটকীগুলি",
   "navigation_bar.lists": "তালিকাগুলো",
   "navigation_bar.logout": "বাইরে যান",
   "navigation_bar.mutes": "যেসব বেভহারকারীদের কার্যক্রম বন্ধ করা আছে",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index 907032bdf..fb8ffdd51 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -161,7 +161,7 @@
   "intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}",
   "introduction.federation.action": "Cuntinuà",
   "introduction.federation.federated.headline": "Federata",
-  "introduction.federation.federated.text": "I statuti pubblichi da l'altri servori di u fediverse saranu mustrati nant'à a linea pubblica federata.",
+  "introduction.federation.federated.text": "I statuti pubblichi da l'altri servori di u fediverse saranu mustrati nant'à a linea pubblica glubale.",
   "introduction.federation.home.headline": "Accolta",
   "introduction.federation.home.text": "I statuti da a ghjente che vo siguitate saranu affissati nant'à a linea d'accolta. Pudete seguità qualvogliasia nant'à tutti i servori!",
   "introduction.federation.local.headline": "Lucale",
@@ -187,7 +187,7 @@
   "keyboard_shortcuts.enter": "apre u statutu",
   "keyboard_shortcuts.favourite": "aghjunghje à i favuriti",
   "keyboard_shortcuts.favourites": "per apre a lista di i favuriti",
-  "keyboard_shortcuts.federated": "per apre a linea pubblica federata",
+  "keyboard_shortcuts.federated": "per apre a linea pubblica glubale",
   "keyboard_shortcuts.heading": "Accorte cù a tastera",
   "keyboard_shortcuts.home": "per apre a linea d'accolta",
   "keyboard_shortcuts.hotkey": "Accorta",
@@ -286,9 +286,9 @@
   "privacy.direct.short": "Direttu",
   "privacy.private.long": "Mustrà solu à l'abbunati",
   "privacy.private.short": "Privatu",
-  "privacy.public.long": "Mustrà à tuttu u mondu nant'a linea pubblica",
+  "privacy.public.long": "Mustrà à tuttu u mondu nant'à e linee pubbliche",
   "privacy.public.short": "Pubblicu",
-  "privacy.unlisted.long": "Ùn mette micca nant'a linea pubblica (ma tutt'u mondu pò vede u statutu nant'à u vostru prufile)",
+  "privacy.unlisted.long": "Ùn mette micca nant'à e linee pubbliche",
   "privacy.unlisted.short": "Micca listatu",
   "regeneration_indicator.label": "Caricamentu…",
   "regeneration_indicator.sublabel": "Priparazione di a vostra pagina d'accolta!",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index 1bd2ae84d..f10a3f38b 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -300,7 +300,7 @@
   "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?",
-  "report.hint": "Toto nahlášení bude zasláno moderátorům vašeho serveru. Níže můžete uvést, proč tento účet nahlašujete:",
+  "report.hint": "Nahlášení bude zasláno moderátorům vašeho serveru. Níže můžete uvést, proč tento účet nahlašujete:",
   "report.placeholder": "Dodatečné komentáře",
   "report.submit": "Odeslat",
   "report.target": "Nahlášení uživatele {target}",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 07067e6b1..4ce5d7ad9 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -264,7 +264,7 @@
   "notifications.column_settings.follow": "Dilynwyr newydd:",
   "notifications.column_settings.mention": "Crybwylliadau:",
   "notifications.column_settings.poll": "Canlyniadau pleidlais:",
-  "notifications.column_settings.push": "Hysbysiadau push",
+  "notifications.column_settings.push": "Hysbysiadau gwthiadwy",
   "notifications.column_settings.reblog": "Hybiadau:",
   "notifications.column_settings.show": "Dangos yn y golofn",
   "notifications.column_settings.sound": "Chwarae sain",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index ceaa2be4d..e118e427b 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -1,7 +1,7 @@
 {
   "account.add_or_remove_from_list": "Προσθήκη ή Αφαίρεση από λίστες",
   "account.badges.bot": "Μποτ",
-  "account.block": "Απόκλεισε τον/την @{name}",
+  "account.block": "Αποκλισμός @{name}",
   "account.block_domain": "Απόκρυψε τα πάντα από το {domain}",
   "account.blocked": "Αποκλεισμένος/η",
   "account.direct": "Προσωπικό μήνυμα προς @{name}",
@@ -27,13 +27,13 @@
   "account.posts_with_replies": "Τουτ και απαντήσεις",
   "account.report": "Κατάγγειλε @{name}",
   "account.requested": "Εκκρεμεί έγκριση. Κάνε κλικ για να ακυρώσεις το αίτημα παρακολούθησης",
-  "account.share": "Μοιράσου το προφίλ του/της @{name}",
-  "account.show_reblogs": "Δείξε τις προωθήσεις του/της @{name}",
+  "account.share": "Μοίρασμα του προφίλ @{name}",
+  "account.show_reblogs": "Εμφάνιση προωθήσεων από @{name}",
   "account.unblock": "Ξεμπλόκαρε @{name}",
   "account.unblock_domain": "Αποκάλυψε το {domain}",
   "account.unendorse": "Άνευ προβολής στο προφίλ",
   "account.unfollow": "Διακοπή παρακολούθησης",
-  "account.unmute": "Διακοπή αποσιώπησης του/της @{name}",
+  "account.unmute": "Διακοπή αποσιώπησης @{name}",
   "account.unmute_notifications": "Διακοπή αποσιώπησης ειδοποιήσεων του/της @{name}",
   "alert.unexpected.message": "Προέκυψε απροσδόκητο σφάλμα.",
   "alert.unexpected.title": "Εεπ!",
@@ -41,8 +41,8 @@
   "bundle_column_error.body": "Κάτι πήγε στραβά ενώ φορτωνόταν αυτό το στοιχείο.",
   "bundle_column_error.retry": "Δοκίμασε ξανά",
   "bundle_column_error.title": "Σφάλμα δικτύου",
-  "bundle_modal_error.close": "Κλείσε",
-  "bundle_modal_error.message": "Κάτι πήγε στραβά ενώ φορτωνόταν αυτό το στοιχείο.",
+  "bundle_modal_error.close": "Κλείσιμο",
+  "bundle_modal_error.message": "Κάτι πήγε στραβά κατά τη φόρτωση του στοιχείου.",
   "bundle_modal_error.retry": "Δοκίμασε ξανά",
   "column.blocks": "Αποκλεισμένοι χρήστες",
   "column.community": "Τοπική ροή",
@@ -69,7 +69,7 @@
   "compose_form.direct_message_warning_learn_more": "Μάθετε περισσότερα",
   "compose_form.hashtag_warning": "Αυτό το τουτ δεν θα εμφανίζεται κάτω από κανένα hashtag καθώς είναι αφανές. Μόνο τα δημόσια τουτ μπορούν να αναζητηθούν ανά hashtag.",
   "compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σας προς τους ακολούθους σας.",
-  "compose_form.lock_disclaimer.lock": "κλειδωμένος",
+  "compose_form.lock_disclaimer.lock": "κλειδωμένο",
   "compose_form.placeholder": "Τι σκέφτεσαι;",
   "compose_form.poll.add_option": "Προσθήκη επιλογής",
   "compose_form.poll.duration": "Διάρκεια δημοσκόπησης",
@@ -88,7 +88,7 @@
   "confirmations.block.confirm": "Απόκλεισε",
   "confirmations.block.message": "Σίγουρα θες να αποκλείσεις {name};",
   "confirmations.delete.confirm": "Διέγραψε",
-  "confirmations.delete.message": "Σίγουρα θες να διαγράψεις αυτή την κατάσταση;",
+  "confirmations.delete.message": "Σίγουρα θες να διαγράψεις αυτή τη δημοσίευση;",
   "confirmations.delete_list.confirm": "Διέγραψε",
   "confirmations.delete_list.message": "Σίγουρα θες να διαγράψεις οριστικά αυτή τη λίστα;",
   "confirmations.domain_block.confirm": "Απόκρυψη ολόκληρου του τομέα",
@@ -149,7 +149,7 @@
   "hashtag.column_header.tag_mode.none": "χωρίς {additional}",
   "hashtag.column_settings.select.no_options_message": "Δεν βρέθηκαν προτάσεις",
   "hashtag.column_settings.select.placeholder": "Γράψε μερικές ταμπέλες…",
-  "hashtag.column_settings.tag_mode.all": "Όλα αυτα",
+  "hashtag.column_settings.tag_mode.all": "Όλα αυτά",
   "hashtag.column_settings.tag_mode.any": "Οποιοδήποτε από αυτά",
   "hashtag.column_settings.tag_mode.none": "Κανένα από αυτά",
   "hashtag.column_settings.tag_toggle": "Προσθήκη επιπλέον ταμπελών για την κολώνα",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index fc9e7bb16..8fe50ace5 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -17,7 +17,7 @@
   "account.hide_reblogs": "Ocultar retoots de @{name}",
   "account.link_verified_on": "El proprietario de este link fue verificado el {date}",
   "account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.",
-  "account.media": "Media",
+  "account.media": "Multimedia",
   "account.mention": "Mencionar a @{name}",
   "account.moved_to": "{name} se ha mudado a:",
   "account.mute": "Silenciar a @{name}",
@@ -36,7 +36,7 @@
   "account.unmute": "Dejar de silenciar a @{name}",
   "account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
   "alert.unexpected.message": "Hubo un error inesperado.",
-  "alert.unexpected.title": "Oops!",
+  "alert.unexpected.title": "¡Ups!",
   "boost_modal.combo": "Puedes presionar {combo} para saltear este aviso la próxima vez",
   "bundle_column_error.body": "Algo salió mal al cargar este componente.",
   "bundle_column_error.retry": "Inténtalo de nuevo",
@@ -71,25 +71,25 @@
   "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
   "compose_form.lock_disclaimer.lock": "bloqueado",
   "compose_form.placeholder": "¿En qué estás pensando?",
-  "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
+  "compose_form.poll.add_option": "Añadir una opción",
+  "compose_form.poll.duration": "Duración de la encuesta",
+  "compose_form.poll.option_placeholder": "Elección {number}",
+  "compose_form.poll.remove_option": "Eliminar esta opción",
   "compose_form.publish": "Tootear",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Mark media as sensitive",
+  "compose_form.sensitive.hide": "Marcar multimedia como sensible",
   "compose_form.sensitive.marked": "Material marcado como sensible",
   "compose_form.sensitive.unmarked": "Material no marcado como sensible",
   "compose_form.spoiler.marked": "Texto oculto tras la advertencia",
   "compose_form.spoiler.unmarked": "Texto no oculto",
   "compose_form.spoiler_placeholder": "Advertencia de contenido",
   "confirmation_modal.cancel": "Cancelar",
-  "confirmations.block.block_and_report": "Block & Report",
+  "confirmations.block.block_and_report": "Bloquear y Reportar",
   "confirmations.block.confirm": "Bloquear",
   "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?",
   "confirmations.delete.confirm": "Eliminar",
   "confirmations.delete.message": "¿Estás seguro de que quieres borrar este toot?",
-  "confirmations.delete_list.confirm": "Delete",
+  "confirmations.delete_list.confirm": "Eliminar",
   "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?",
   "confirmations.domain_block.confirm": "Ocultar dominio entero",
   "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.",
@@ -97,7 +97,7 @@
   "confirmations.mute.message": "¿Estás seguro de que quieres silenciar a {name}?",
   "confirmations.redraft.confirm": "Borrar y volver a borrador",
   "confirmations.redraft.message": "Estás seguro de que quieres borrar este estado y volverlo a borrador? Perderás todas las respuestas, impulsos y favoritos asociados a él, y las respuestas a la publicación original quedarán huérfanos.",
-  "confirmations.reply.confirm": "Reply",
+  "confirmations.reply.confirm": "Responder",
   "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
   "confirmations.unfollow.confirm": "Dejar de seguir",
   "confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?",
@@ -117,8 +117,8 @@
   "emoji_button.search_results": "Resultados de búsqueda",
   "emoji_button.symbols": "Símbolos",
   "emoji_button.travel": "Viajes y lugares",
-  "empty_column.account_timeline": "No toots here!",
-  "empty_column.account_unavailable": "Profile unavailable",
+  "empty_column.account_timeline": "¡No hay toots aquí!",
+  "empty_column.account_unavailable": "Perfil no disponible",
   "empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
   "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
   "empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
@@ -137,21 +137,21 @@
   "follow_request.authorize": "Autorizar",
   "follow_request.reject": "Rechazar",
   "getting_started.developers": "Desarrolladores",
-  "getting_started.directory": "Profile directory",
-  "getting_started.documentation": "Documentation",
+  "getting_started.directory": "Directorio de perfil",
+  "getting_started.documentation": "Documentación",
   "getting_started.heading": "Primeros pasos",
   "getting_started.invite": "Invitar usuarios",
   "getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.",
   "getting_started.security": "Seguridad",
   "getting_started.terms": "Términos de servicio",
-  "hashtag.column_header.tag_mode.all": "and {additional}",
-  "hashtag.column_header.tag_mode.any": "or {additional}",
-  "hashtag.column_header.tag_mode.none": "without {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+  "hashtag.column_header.tag_mode.all": "y {additional}",
+  "hashtag.column_header.tag_mode.any": "o {additional}",
+  "hashtag.column_header.tag_mode.none": "sin {additional}",
+  "hashtag.column_settings.select.no_options_message": "No se encontraron sugerencias",
+  "hashtag.column_settings.select.placeholder": "Introduzca 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.any": "Cualquiera de estos",
+  "hashtag.column_settings.tag_mode.none": "Ninguno de estos",
   "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
   "home.column_settings.basic": "Básico",
   "home.column_settings.show_reblogs": "Mostrar retoots",
@@ -159,29 +159,29 @@
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
-  "introduction.federation.action": "Next",
-  "introduction.federation.federated.headline": "Federated",
+  "introduction.federation.action": "Siguiente",
+  "introduction.federation.federated.headline": "Federado",
   "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
-  "introduction.federation.home.headline": "Home",
+  "introduction.federation.home.headline": "Inicio",
   "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
   "introduction.federation.local.headline": "Local",
   "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
-  "introduction.interactions.action": "Finish toot-orial!",
-  "introduction.interactions.favourite.headline": "Favourite",
+  "introduction.interactions.action": "¡Terminar tutorial!",
+  "introduction.interactions.favourite.headline": "Favorito",
   "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
   "introduction.interactions.reblog.headline": "Boost",
   "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
-  "introduction.interactions.reply.headline": "Reply",
+  "introduction.interactions.reply.headline": "Responder",
   "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
-  "introduction.welcome.headline": "First steps",
+  "introduction.welcome.action": "¡Vamos!",
+  "introduction.welcome.headline": "Primeros pasos",
   "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
   "keyboard_shortcuts.back": "volver atrás",
   "keyboard_shortcuts.blocked": "abrir una lista de usuarios bloqueados",
   "keyboard_shortcuts.boost": "retootear",
   "keyboard_shortcuts.column": "enfocar un estado en una de las columnas",
   "keyboard_shortcuts.compose": "enfocar el área de texto de redacción",
-  "keyboard_shortcuts.description": "Description",
+  "keyboard_shortcuts.description": "Descripción",
   "keyboard_shortcuts.direct": "abrir la columna de mensajes directos",
   "keyboard_shortcuts.down": "mover hacia abajo en la lista",
   "keyboard_shortcuts.enter": "to open status",
@@ -211,10 +211,10 @@
   "lightbox.close": "Cerrar",
   "lightbox.next": "Siguiente",
   "lightbox.previous": "Anterior",
-  "lightbox.view_context": "View context",
+  "lightbox.view_context": "Ver contexto",
   "lists.account.add": "Añadir a lista",
   "lists.account.remove": "Quitar de lista",
-  "lists.delete": "Delete list",
+  "lists.delete": "Borrar lista",
   "lists.edit": "Editar lista",
   "lists.edit.submit": "Change title",
   "lists.new.create": "Añadir lista",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 5e37f5862..3e91012b3 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -23,7 +23,7 @@
   "account.mute": "Mututu @{name}",
   "account.mute_notifications": "Mututu @{name}(r)en jakinarazpenak",
   "account.muted": "Mutututa",
-  "account.posts": "Tootak",
+  "account.posts": "Toot",
   "account.posts_with_replies": "Toot eta erantzunak",
   "account.report": "Salatu @{name}",
   "account.requested": "Onarpenaren zain. Klikatu jarraitzeko eskaera ezeztatzeko",
@@ -32,7 +32,7 @@
   "account.unblock": "Desblokeatu @{name}",
   "account.unblock_domain": "Berriz erakutsi {domain}",
   "account.unendorse": "Ez nabarmendu profilean",
-  "account.unfollow": "Jarraitzeari utzi",
+  "account.unfollow": "Utzi jarraitzeari",
   "account.unmute": "Desmututu @{name}",
   "account.unmute_notifications": "Desmututu @{name}(r)en jakinarazpenak",
   "alert.unexpected.message": "Ustekabeko errore bat gertatu da.",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index def140df6..68d231ce9 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -1,5 +1,5 @@
 {
-  "account.add_or_remove_from_list": "افزودن یا برداشتن از فهرست",
+  "account.add_or_remove_from_list": "افزودن یا حذف از فهرست‌ها",
   "account.badges.bot": "ربات",
   "account.block": "مسدودسازی @{name}",
   "account.block_domain": "پنهان‌سازی همه چیز از سرور {domain}",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 7be8b7d67..1c3b63d7d 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -1,107 +1,107 @@
 {
-  "account.add_or_remove_from_list": "Add or Remove from lists",
+  "account.add_or_remove_from_list": "Hozzáadás és elvétel listáról",
   "account.badges.bot": "Bot",
   "account.block": "@{name} letiltása",
   "account.block_domain": "Minden elrejtése innen: {domain}",
-  "account.blocked": "Blocked",
-  "account.direct": "Direct Message @{name}",
-  "account.domain_blocked": "Domain hidden",
+  "account.blocked": "Letiltva",
+  "account.direct": "Közvetlen üzenet @{name} számára",
+  "account.domain_blocked": "Rejtett domain",
   "account.edit_profile": "Profil szerkesztése",
-  "account.endorse": "Feature on profile",
+  "account.endorse": "Kiemelés a profilodon",
   "account.follow": "Követés",
-  "account.followers": "Követők",
-  "account.followers.empty": "No one follows this user yet.",
-  "account.follows": "Követve",
-  "account.follows.empty": "This user doesn't follow anyone yet.",
-  "account.follows_you": "Követnek téged",
-  "account.hide_reblogs": "Rejtsd el a tülkölést @{name}-tól/től",
-  "account.link_verified_on": "Ownership of this link was checked on {date}",
-  "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+  "account.followers": "Követő",
+  "account.followers.empty": "Ezt a felhasználót még senki sem követi.",
+  "account.follows": "Követett",
+  "account.follows.empty": "Ez a felhasználó még senkit sem követ.",
+  "account.follows_you": "Követ téged",
+  "account.hide_reblogs": "@{name} megtolásainak némítása",
+  "account.link_verified_on": "A linket ellenőriztük: {date}",
+  "account.locked_info": "Ez a fiók zárt. A tulaj engedélyezi, ki követheti őt.",
   "account.media": "Média",
   "account.mention": "@{name} említése",
   "account.moved_to": "{name} átköltözött:",
   "account.mute": "@{name} némítása",
-  "account.mute_notifications": "@{name} értesítések némítása",
-  "account.muted": "Muted",
-  "account.posts": "Státuszok",
-  "account.posts_with_replies": "Toots with replies",
+  "account.mute_notifications": "@{name} értesítéseinek némítása",
+  "account.muted": "Némítva",
+  "account.posts": "Tülkölés",
+  "account.posts_with_replies": "Tülkölés válaszokkal",
   "account.report": "@{name} jelentése",
-  "account.requested": "Engedélyre vár. Kattintson a követési kérés visszavonására",
+  "account.requested": "Engedélyre vár. Kattints a követési kérés visszavonásához",
   "account.share": "@{name} profiljának megosztása",
-  "account.show_reblogs": "@{name} kedvenceinek mutatása",
-  "account.unblock": "@{name} kiblokkolása",
-  "account.unblock_domain": "{domain} mutatása",
-  "account.unendorse": "Don't feature on profile",
-  "account.unfollow": "Követés abbahagyása",
-  "account.unmute": "@{name} kinémítása",
-  "account.unmute_notifications": "@{name} értesítéseinek kinémítása",
-  "alert.unexpected.message": "An unexpected error occurred.",
-  "alert.unexpected.title": "Oops!",
-  "boost_modal.combo": "Megnyomhatod {combo}, hogy átugord következő alkalommal",
+  "account.show_reblogs": "@{name} megtolásainak mutatása",
+  "account.unblock": "@{name} letiltásának feloldása",
+  "account.unblock_domain": "{domain} elrejtésének feloldása",
+  "account.unendorse": "Kiemelés törlése a profilodról",
+  "account.unfollow": "Követés vége",
+  "account.unmute": "@{name} némítás feloldása",
+  "account.unmute_notifications": "@{name} némított értesítéseinek feloldása",
+  "alert.unexpected.message": "Váratlan hiba történt.",
+  "alert.unexpected.title": "Hoppá!",
+  "boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}",
   "bundle_column_error.body": "Hiba történt a komponens betöltése közben.",
-  "bundle_column_error.retry": "Próbálja újra",
+  "bundle_column_error.retry": "Próbáld újra",
   "bundle_column_error.title": "Hálózati hiba",
-  "bundle_modal_error.close": "Bezár",
+  "bundle_modal_error.close": "Bezárás",
   "bundle_modal_error.message": "Hiba történt a komponens betöltésekor.",
-  "bundle_modal_error.retry": "Próbálja újra",
+  "bundle_modal_error.retry": "Próbáld újra",
   "column.blocks": "Letiltott felhasználók",
   "column.community": "Helyi idővonal",
-  "column.direct": "Direct messages",
-  "column.domain_blocks": "Hidden domains",
+  "column.direct": "Közvetlen üzenetek",
+  "column.domain_blocks": "Rejtett domainek",
   "column.favourites": "Kedvencek",
-  "column.follow_requests": "Követési kérések",
+  "column.follow_requests": "Követési kérelmek",
   "column.home": "Kezdőlap",
   "column.lists": "Listák",
   "column.mutes": "Némított felhasználók",
   "column.notifications": "Értesítések",
-  "column.pins": "Kitűzött tülkölések",
+  "column.pins": "Kitűzött tülkök",
   "column.public": "Nyilvános idővonal",
   "column_back_button.label": "Vissza",
   "column_header.hide_settings": "Beállítások elrejtése",
   "column_header.moveLeft_settings": "Oszlop elmozdítása balra",
-  "column_header.moveRight_settings": "oszlop elmozdítása jobbra",
-  "column_header.pin": "Kitűz",
+  "column_header.moveRight_settings": "Oszlop elmozdítása jobbra",
+  "column_header.pin": "Kitűzés",
   "column_header.show_settings": "Beállítások mutatása",
   "column_header.unpin": "Kitűzés eltávolítása",
   "column_subheading.settings": "Beállítások",
-  "community.column_settings.media_only": "Media Only",
-  "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
-  "compose_form.hashtag_warning": "Ezen tülkölés nem fog megjelenni semmilyen hashtag alatt mivel listázatlan. Csak a publikus tülkölések kereshetőek hashtag-el.",
-  "compose_form.lock_disclaimer": "Az ön fiókja nincs {locked}. Bárki követni tud, hogy megtekintse a kizárt követőknek szánt üzeneteid.",
+  "community.column_settings.media_only": "Csak média",
+  "compose_form.direct_message_warning": "Ezt a tülköt csak a benne megemlített felhasználók láthatják majd.",
+  "compose_form.direct_message_warning_learn_more": "Több infó",
+  "compose_form.hashtag_warning": "Ez a tülköd nem fog megjelenni semmilyen hashtag alatt mivel listázatlan. Csak nyilvános tülkök kereshetőek hashtaggel.",
+  "compose_form.lock_disclaimer": "A fiókod nincs {locked}. Bárki követni tud, hogy megtekintse a kizárólag követőknek szánt üzeneteidet.",
   "compose_form.lock_disclaimer.lock": "lezárva",
-  "compose_form.placeholder": "Mire gondolsz?",
-  "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
+  "compose_form.placeholder": "Mi jár a fejedben?",
+  "compose_form.poll.add_option": "Lehetőség hozzáadása",
+  "compose_form.poll.duration": "Szavazás időtartama",
+  "compose_form.poll.option_placeholder": "Lehetőség {number}",
+  "compose_form.poll.remove_option": "Lehetőség törlése",
   "compose_form.publish": "Tülk",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Mark media as sensitive",
-  "compose_form.sensitive.marked": "Media is marked as sensitive",
-  "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
-  "compose_form.spoiler.marked": "Text is hidden behind warning",
-  "compose_form.spoiler.unmarked": "Text is not hidden",
-  "compose_form.spoiler_placeholder": "Figyelmeztetését írja ide",
-  "confirmation_modal.cancel": "Bezár",
-  "confirmations.block.block_and_report": "Block & Report",
-  "confirmations.block.confirm": "Letilt",
-  "confirmations.block.message": "Biztos benne, hogy le szeretné tiltani {name}?",
-  "confirmations.delete.confirm": "Töröl",
-  "confirmations.delete.message": "Biztos benne, hogy törölni szeretné ezt a státuszt?",
-  "confirmations.delete_list.confirm": "Töröl",
-  "confirmations.delete_list.message": "Biztos benne, hogy véglegesen törölni szeretné ezt a listát?",
-  "confirmations.domain_block.confirm": "Egész domain elrejtése",
-  "confirmations.domain_block.message": "Nagyon biztos abban, hogy le szeretné tiltani az egész {domain}-t? A legtöbb esetben néhány célszerű tiltás vagy némítás elegendő és kívánatosabb megoldás.",
-  "confirmations.mute.confirm": "Némít",
-  "confirmations.mute.message": "Biztos benne, hogy némítani szeretné {name}?",
-  "confirmations.redraft.confirm": "Delete & redraft",
-  "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
-  "confirmations.reply.confirm": "Reply",
-  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+  "compose_form.sensitive.hide": "Média megjelölése szenzitívként",
+  "compose_form.sensitive.marked": "A médiát szenzitívnek jelölték",
+  "compose_form.sensitive.unmarked": "A médiát nem jelölték szenzitívnek",
+  "compose_form.spoiler.marked": "A szöveg figyelmeztetés mögé van rejtve",
+  "compose_form.spoiler.unmarked": "A szöveg nem rejtett",
+  "compose_form.spoiler_placeholder": "Írd ide a figyelmeztetést",
+  "confirmation_modal.cancel": "Mégse",
+  "confirmations.block.block_and_report": "Letiltás és Bejelentés",
+  "confirmations.block.confirm": "Letiltás",
+  "confirmations.block.message": "Biztos, hogy le szeretnéd tiltani {name}?",
+  "confirmations.delete.confirm": "Törlés",
+  "confirmations.delete.message": "Biztos, hogy törölni szeretnéd ezt a tülkölést?",
+  "confirmations.delete_list.confirm": "Törlés",
+  "confirmations.delete_list.message": "Biztos, hogy véglegesen törölni szeretnéd ezt a listát?",
+  "confirmations.domain_block.confirm": "Teljes domain elrejtése",
+  "confirmations.domain_block.message": "Egészen biztos, hogy le szeretnéd tiltani a teljes {domain}-t? A legtöbb esetben néhány célzott tiltás vagy némítás elegendő és kívánatosabb megoldás. Semmilyen tartalmat nem fogsz látni ebből a domainből se idővonalakon, se értesítésekben. Az ebben a domainben lévő követőidet is eltávolítjuk.",
+  "confirmations.mute.confirm": "Némítás",
+  "confirmations.mute.message": "Biztos, hogy némítani szeretnéd {name}?",
+  "confirmations.redraft.confirm": "Törlés és újraírás",
+  "confirmations.redraft.message": "Biztos, hogy ezt a tülköt szeretnéd törölni és újraírni? Minden megtolást és kedvencnek jelölést elvesztesz, az eredetire adott válaszok pedig elárvulnak.",
+  "confirmations.reply.confirm": "Válasz",
+  "confirmations.reply.message": "Ha most válaszolsz, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?",
   "confirmations.unfollow.confirm": "Követés visszavonása",
-  "confirmations.unfollow.message": "Biztos benne, hogy vissza szeretné vonni {name} követését?",
-  "embed.instructions": "Ágyazza be ezen státuszt weboldalába az alábbi kód másolásával.",
+  "confirmations.unfollow.message": "Biztos, hogy vissza szeretnéd vonni {name} követését?",
+  "embed.instructions": "Ágyazd be ezt a tülköt a weboldaladba az alábbi kód kimásolásával.",
   "embed.preview": "Így fog kinézni:",
   "emoji_button.activity": "Aktivitás",
   "emoji_button.custom": "Egyéni",
@@ -109,7 +109,7 @@
   "emoji_button.food": "Étel és Ital",
   "emoji_button.label": "Emoji beszúrása",
   "emoji_button.nature": "Természet",
-  "emoji_button.not_found": "Nincsenek emojok!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "Nincsenek emojik!! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "Tárgyak",
   "emoji_button.people": "Emberek",
   "emoji_button.recent": "Gyakran használt",
@@ -117,272 +117,272 @@
   "emoji_button.search_results": "Keresési találatok",
   "emoji_button.symbols": "Szimbólumok",
   "emoji_button.travel": "Utazás és Helyek",
-  "empty_column.account_timeline": "No toots here!",
-  "empty_column.account_unavailable": "Profile unavailable",
-  "empty_column.blocks": "You haven't blocked any users yet.",
-  "empty_column.community": "A helyi idővonal üres. Írj egy publikus stástuszt, hogy elindítsd a labdát!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
-  "empty_column.domain_blocks": "There are no hidden domains yet.",
-  "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
-  "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
-  "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
-  "empty_column.hashtag": "Jelenleg nem található semmi ezen hashtaggel.",
-  "empty_column.home": "A hazai idővonala üres! Látogasd meg a {public} vagy használd a keresőt, hogy ismerj meg más felhasználókat.",
-  "empty_column.home.public_timeline": "publikus idővonal",
-  "empty_column.list": "A lista jelenleg üres. Mikor a listatagok új státuszt posztolnak itt meg fognak jelenni.",
-  "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
-  "empty_column.mutes": "You haven't muted any users yet.",
-  "empty_column.notifications": "Jelenleg nincsenek értesítései. Lépj kapcsolatba másokkal, hogy indítsd el a beszélgetést.",
-  "empty_column.public": "Jelenleg semmi nincs itt! Írj valamit publikusan vagy kövess más szervereken levő felhasználókat, hogy megtöltsd",
-  "follow_request.authorize": "Engedélyez",
-  "follow_request.reject": "Visszautasít",
-  "getting_started.developers": "Developers",
-  "getting_started.directory": "Profile directory",
-  "getting_started.documentation": "Documentation",
+  "empty_column.account_timeline": "Itt nincs tülkölés!",
+  "empty_column.account_unavailable": "A profil nem elérhető",
+  "empty_column.blocks": "Még senkit sem tiltottál le.",
+  "empty_column.community": "A helyi idővonal üres. Tülkölj egyet nyilvánosan, hogy elindítsd az eseményeket!",
+  "empty_column.direct": "Még nincs egy közvetlen üzeneted sem. Ha küldesz vagy kapsz egyet, itt fog megjelenni.",
+  "empty_column.domain_blocks": "Még nem rejtettél el egyetlen domaint sem.",
+  "empty_column.favourited_statuses": "Még nincs egy kedvenc tülköd sem. Ha kedvencnek jelölsz egyet, itt fog megjelenni.",
+  "empty_column.favourites": "Még senki sem jelölte ezt a tülköt kedvencként. Ha valaki mégis megteszi, itt fogjuk mutatni.",
+  "empty_column.follow_requests": "Még nincs egy követési kérésed sem. Ha kapsz egyet, itt fogjuk feltüntetni.",
+  "empty_column.hashtag": "Jelenleg nem található semmi ezzel a hashtaggel.",
+  "empty_column.home": "A saját idővonalad üres! Látogasd meg a {public} -at vagy használd a keresőt, hogy megismerj másokat.",
+  "empty_column.home.public_timeline": "nyilvános idővonal",
+  "empty_column.list": "A lista jelenleg üres. Ha a listatagok tülkölnek, itt fognak megjelenni.",
+  "empty_column.lists": "Még nem hoztál létre listát. Ha csinálsz egyet, itt látszik majd.",
+  "empty_column.mutes": "Még egy felhasználót sem némítottál le.",
+  "empty_column.notifications": "Jelenleg nincsenek értesítéseid. Lépj kapcsolatba másokkal, hogy elindítsd a beszélgetést.",
+  "empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más szervereken levő felhasználókat, hogy megtöltsd",
+  "follow_request.authorize": "Engedélyezés",
+  "follow_request.reject": "Visszautasítás",
+  "getting_started.developers": "Fejlesztőknek",
+  "getting_started.directory": "Profilok",
+  "getting_started.documentation": "Dokumentáció",
   "getting_started.heading": "Első lépések",
-  "getting_started.invite": "Invite people",
-  "getting_started.open_source_notice": "Mastodon egy nyílt forráskódú szoftver. Hozzájárulás vagy problémák jelentése a GitHub-on {github}.",
-  "getting_started.security": "Security",
-  "getting_started.terms": "Terms of service",
-  "hashtag.column_header.tag_mode.all": "and {additional}",
-  "hashtag.column_header.tag_mode.any": "or {additional}",
-  "hashtag.column_header.tag_mode.none": "without {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
-  "hashtag.column_settings.tag_mode.all": "All of these",
-  "hashtag.column_settings.tag_mode.any": "Any of these",
-  "hashtag.column_settings.tag_mode.none": "None of these",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
-  "home.column_settings.basic": "Alap",
-  "home.column_settings.show_reblogs": "Ismétlések mutatása",
+  "getting_started.invite": "Mások meghívása",
+  "getting_started.open_source_notice": "A Mastodon nyílt forráskódú szoftver. Csatlakozhatsz a fejlesztéshez vagy jelenthetsz problémákat GitHub-on {github}.",
+  "getting_started.security": "Biztonság",
+  "getting_started.terms": "Felhasználási feltételek",
+  "hashtag.column_header.tag_mode.all": "és {additional}",
+  "hashtag.column_header.tag_mode.any": "vagy {additional}",
+  "hashtag.column_header.tag_mode.none": "nélküle {additional}",
+  "hashtag.column_settings.select.no_options_message": "Nincs javaslat",
+  "hashtag.column_settings.select.placeholder": "Addj meg hashtageket…",
+  "hashtag.column_settings.tag_mode.all": "Mindegyik",
+  "hashtag.column_settings.tag_mode.any": "Bármelyik",
+  "hashtag.column_settings.tag_mode.none": "Egyik sem",
+  "hashtag.column_settings.tag_toggle": "Új tagek felvétele ehhez az oszlophoz",
+  "home.column_settings.basic": "Alapértelmezések",
+  "home.column_settings.show_reblogs": "Megtolások mutatása",
   "home.column_settings.show_replies": "Válaszok mutatása",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
-  "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
-  "introduction.federation.action": "Next",
-  "introduction.federation.federated.headline": "Federated",
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
-  "introduction.federation.home.headline": "Home",
-  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
-  "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
-  "introduction.interactions.action": "Finish toot-orial!",
-  "introduction.interactions.favourite.headline": "Favourite",
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
-  "introduction.interactions.reblog.headline": "Boost",
-  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
-  "introduction.interactions.reply.headline": "Reply",
-  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
-  "introduction.welcome.headline": "First steps",
-  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
-  "keyboard_shortcuts.back": "vissza navigálás",
-  "keyboard_shortcuts.blocked": "to open blocked users list",
-  "keyboard_shortcuts.boost": "ismétlés",
-  "keyboard_shortcuts.column": "összpontosítson egy státuszra az egyik oszlopban",
-  "keyboard_shortcuts.compose": "fókuszálja a szerkesztési szövegdobozt",
+  "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}}",
+  "introduction.federation.action": "Következő",
+  "introduction.federation.federated.headline": "Föderációs",
+  "introduction.federation.federated.text": "A fediverzum más szervereiről származó nyilvános tülkök a föderációs idővonalon jelennek meg.",
+  "introduction.federation.home.headline": "Saját",
+  "introduction.federation.home.text": "A saját idővonaladon az általad követettek tülkjei jelennek meg. Bárkit követhetsz bármely szerveren.",
+  "introduction.federation.local.headline": "Helyi",
+  "introduction.federation.local.text": "A helyi idővonalon a veled közös szerveren lévő emberek nyilvános tülkjei jelennek meg.",
+  "introduction.interactions.action": "Oktatóanyag befejezése!",
+  "introduction.interactions.favourite.headline": "Kedvenc",
+  "introduction.interactions.favourite.text": "A kedvenc funkcióval elrakhatsz későbbre egy tülköt, illetve közölheted a szerzővel, hogy tetszett a megosztása.",
+  "introduction.interactions.reblog.headline": "Megtolás",
+  "introduction.interactions.reblog.text": "A saját követőiddel mások tülkjeit is megoszthatod úgy, hogy megtolod őket.",
+  "introduction.interactions.reply.headline": "Válasz",
+  "introduction.interactions.reply.text": "Saját vagy mások tülkjeire válaszolva egy beszélgetési láncot alakíthatsz ki.",
+  "introduction.welcome.action": "Csapjunk bele!",
+  "introduction.welcome.headline": "Első lépések",
+  "introduction.welcome.text": "Üdv a fediverzumban! Pár pillanat múlva már küldheted is üzeneteidet barátaidnak bármely szerveren. Ez a szerver {domain} viszont különleges. Ez tartja nyilván a profilod, szóval jegyezd meg a nevét.",
+  "keyboard_shortcuts.back": "visszafelé navigálás",
+  "keyboard_shortcuts.blocked": "letiltott felhasználók listájának megnyitása",
+  "keyboard_shortcuts.boost": "megtolás",
+  "keyboard_shortcuts.column": "fókuszálás egy tülkre az egyik oszlopban",
+  "keyboard_shortcuts.compose": "fókuszálás a szerkesztési szövegdobozra",
   "keyboard_shortcuts.description": "Leírás",
-  "keyboard_shortcuts.direct": "to open direct messages column",
+  "keyboard_shortcuts.direct": "közvetlen üzenetek megnyitása",
   "keyboard_shortcuts.down": "lefele navigálás a listában",
-  "keyboard_shortcuts.enter": "státusz megnyitása",
-  "keyboard_shortcuts.favourite": "kedvenccé tétel",
-  "keyboard_shortcuts.favourites": "to open favourites list",
-  "keyboard_shortcuts.federated": "to open federated timeline",
-  "keyboard_shortcuts.heading": "Billentyű rövidítések",
-  "keyboard_shortcuts.home": "to open home timeline",
+  "keyboard_shortcuts.enter": "tülk megnyitása",
+  "keyboard_shortcuts.favourite": "kedvencnek jelölés",
+  "keyboard_shortcuts.favourites": "kedvenc lista megnyitása",
+  "keyboard_shortcuts.federated": "föderációs idővonal megnyitása",
+  "keyboard_shortcuts.heading": "Billentyűparancsok",
+  "keyboard_shortcuts.home": "saját idővonal megnyitása",
   "keyboard_shortcuts.hotkey": "Gyorsbillentyű",
   "keyboard_shortcuts.legend": "jelmagyarázat megjelenítése",
-  "keyboard_shortcuts.local": "to open local timeline",
-  "keyboard_shortcuts.mention": "szerző megjelenítése",
-  "keyboard_shortcuts.muted": "to open muted users list",
-  "keyboard_shortcuts.my_profile": "to open your profile",
-  "keyboard_shortcuts.notifications": "to open notifications column",
-  "keyboard_shortcuts.pinned": "to open pinned toots list",
-  "keyboard_shortcuts.profile": "to open author's profile",
-  "keyboard_shortcuts.reply": "válaszolás",
-  "keyboard_shortcuts.requests": "to open follow requests list",
-  "keyboard_shortcuts.search": "kereső kiemelése",
-  "keyboard_shortcuts.start": "to open \"get started\" column",
-  "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
-  "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
-  "keyboard_shortcuts.toot": "új tülk megkezdése",
+  "keyboard_shortcuts.local": "helyi idővonal megnyitása",
+  "keyboard_shortcuts.mention": "szerző megemlítése",
+  "keyboard_shortcuts.muted": "némított felhasználók listájának megnyitása",
+  "keyboard_shortcuts.my_profile": "profilod megnyitása",
+  "keyboard_shortcuts.notifications": "értesítések megnyitása",
+  "keyboard_shortcuts.pinned": "kitűzött tülkök listájának megnyitása",
+  "keyboard_shortcuts.profile": "szerző profiljának megnyitása",
+  "keyboard_shortcuts.reply": "válasz",
+  "keyboard_shortcuts.requests": "követési kérések listájának megnyitása",
+  "keyboard_shortcuts.search": "fókuszálás a keresőre",
+  "keyboard_shortcuts.start": "\"Első lépések\" megnyitása",
+  "keyboard_shortcuts.toggle_hidden": "tartalmi figyelmeztetéssel ellátott szöveg mutatása/elrejtése",
+  "keyboard_shortcuts.toggle_sensitivity": "média mutatása/elrejtése",
+  "keyboard_shortcuts.toot": "új tülk írása",
   "keyboard_shortcuts.unfocus": "tülk szerkesztés/keresés fókuszpontból való kivétele",
-  "keyboard_shortcuts.up": "fennebb helyezés a listában",
+  "keyboard_shortcuts.up": "felfelé mozdítás a listában",
   "lightbox.close": "Bezárás",
   "lightbox.next": "Következő",
   "lightbox.previous": "Előző",
-  "lightbox.view_context": "View context",
+  "lightbox.view_context": "Kontextus megtekintése",
   "lists.account.add": "Hozzáadás a listához",
-  "lists.account.remove": "Eltávolít a listából",
+  "lists.account.remove": "Eltávolítás a listából",
   "lists.delete": "Lista törlése",
   "lists.edit": "Lista szerkesztése",
-  "lists.edit.submit": "Change title",
+  "lists.edit.submit": "Cím megváltoztatása",
   "lists.new.create": "Lista hozzáadása",
-  "lists.new.title_placeholder": "Új lista cím",
-  "lists.search": "Keresés a követtett személyek között",
+  "lists.new.title_placeholder": "Új lista címe",
+  "lists.search": "Keresés a követett személyek között",
   "lists.subheading": "Listáid",
   "loading_indicator.label": "Betöltés...",
-  "media_gallery.toggle_visible": "Láthatóság váltása",
+  "media_gallery.toggle_visible": "Láthatóság állítása",
   "missing_indicator.label": "Nincs találat",
-  "missing_indicator.sublabel": "Ezen forrás nem található",
-  "mute_modal.hide_notifications": "Értesítések elrejtése ezen felhasználótól?",
-  "navigation_bar.apps": "Mobile apps",
-  "navigation_bar.blocks": "Tiltott felhasználók",
+  "missing_indicator.sublabel": "Ez az erőforrás nem található",
+  "mute_modal.hide_notifications": "Rejtsük el a felhasználótól származó értesítéseket?",
+  "navigation_bar.apps": "Mobil appok",
+  "navigation_bar.blocks": "Letiltott felhasználók",
   "navigation_bar.community_timeline": "Helyi idővonal",
-  "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
-  "navigation_bar.discover": "Discover",
-  "navigation_bar.domain_blocks": "Hidden domains",
+  "navigation_bar.compose": "Új tülk írása",
+  "navigation_bar.direct": "Közvetlen üzenetek",
+  "navigation_bar.discover": "Felfedezés",
+  "navigation_bar.domain_blocks": "Rejtett domainek",
   "navigation_bar.edit_profile": "Profil szerkesztése",
   "navigation_bar.favourites": "Kedvencek",
-  "navigation_bar.filters": "Muted words",
-  "navigation_bar.follow_requests": "Követési kérések",
-  "navigation_bar.follows_and_followers": "Follows and followers",
-  "navigation_bar.info": "Ezen szerverről",
+  "navigation_bar.filters": "Némított szavak",
+  "navigation_bar.follow_requests": "Követési kérelmek",
+  "navigation_bar.follows_and_followers": "Követettek és követők",
+  "navigation_bar.info": "Erről a szerverről",
   "navigation_bar.keyboard_shortcuts": "Gyorsbillentyűk",
   "navigation_bar.lists": "Listák",
   "navigation_bar.logout": "Kijelentkezés",
   "navigation_bar.mutes": "Némított felhasználók",
-  "navigation_bar.personal": "Personal",
+  "navigation_bar.personal": "Személyes",
   "navigation_bar.pins": "Kitűzött tülkök",
   "navigation_bar.preferences": "Beállítások",
-  "navigation_bar.profile_directory": "Profile directory",
-  "navigation_bar.public_timeline": "Nyilvános időfolyam",
-  "navigation_bar.security": "Security",
-  "notification.favourite": "{name} kedvencnek jelölte az állapotod",
+  "navigation_bar.profile_directory": "Profilok",
+  "navigation_bar.public_timeline": "Föderációs idővonal",
+  "navigation_bar.security": "Biztonság",
+  "notification.favourite": "{name} kedvencnek jelölte egy tülködet",
   "notification.follow": "{name} követ téged",
   "notification.mention": "{name} megemlített",
-  "notification.poll": "A poll you have voted in has ended",
-  "notification.reblog": "{name} rebloggolta az állapotod",
+  "notification.poll": "Egy szavazás, melyben részt vettél, véget ért",
+  "notification.reblog": "{name} megtolta a tülködet",
   "notifications.clear": "Értesítések törlése",
-  "notifications.clear_confirmation": "Biztos benne, hogy véglegesen törölni akarja az összes értesítését?",
-  "notifications.column_settings.alert": "Asztali gépi értesítések",
+  "notifications.clear_confirmation": "Biztos, hogy véglegesen törölni akarod az összes értesítésed?",
+  "notifications.column_settings.alert": "Asztali értesítések",
   "notifications.column_settings.favourite": "Kedvencek:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
-  "notifications.column_settings.filter_bar.show": "Show",
+  "notifications.column_settings.filter_bar.advanced": "Minden kategória mutatása",
+  "notifications.column_settings.filter_bar.category": "Gyorskereső mező",
+  "notifications.column_settings.filter_bar.show": "Mutat",
   "notifications.column_settings.follow": "Új követők:",
-  "notifications.column_settings.mention": "Megemítéseim:",
-  "notifications.column_settings.poll": "Poll results:",
+  "notifications.column_settings.mention": "Megemlítéseid:",
+  "notifications.column_settings.poll": "Szavazás eredménye:",
   "notifications.column_settings.push": "Push értesítések",
-  "notifications.column_settings.reblog": "Rebloggolások:",
+  "notifications.column_settings.reblog": "Megtolások:",
   "notifications.column_settings.show": "Oszlopban mutatás",
   "notifications.column_settings.sound": "Hang lejátszása",
-  "notifications.filter.all": "All",
-  "notifications.filter.boosts": "Boosts",
-  "notifications.filter.favourites": "Favourites",
-  "notifications.filter.follows": "Follows",
-  "notifications.filter.mentions": "Mentions",
-  "notifications.filter.polls": "Poll results",
-  "notifications.group": "{count} notifications",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
-  "privacy.change": "Státusz láthatóságának módosítása",
-  "privacy.direct.long": "Posztolás csak az említett felhasználóknak",
-  "privacy.direct.short": "Egyenesen",
-  "privacy.private.long": "Posztolás csak követőknek",
+  "notifications.filter.all": "Mind",
+  "notifications.filter.boosts": "Megtolások",
+  "notifications.filter.favourites": "Kedvencnek jelölések",
+  "notifications.filter.follows": "Követések",
+  "notifications.filter.mentions": "Megemlítések",
+  "notifications.filter.polls": "Szavazások eredményei",
+  "notifications.group": "{count} értesítés",
+  "poll.closed": "Lezárva",
+  "poll.refresh": "Frissítés",
+  "poll.total_votes": "{count, plural, one {# szavazat} other {# szavazat}}",
+  "poll.vote": "Szavazás",
+  "poll_button.add_poll": "Új szavazás",
+  "poll_button.remove_poll": "Szavazás törlése",
+  "privacy.change": "Tülk láthatóságának módosítása",
+  "privacy.direct.long": "Tülk csak az említett felhasználóknak",
+  "privacy.direct.short": "Közvetlen",
+  "privacy.private.long": "Tülk csak követőknek",
   "privacy.private.short": "Csak követőknek",
-  "privacy.public.long": "Posztolás a publikus idővonalakra",
-  "privacy.public.short": "Publikus",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.public.long": "Tülk a nyilvános idővonalra",
+  "privacy.public.short": "Nyilvános",
+  "privacy.unlisted.long": "Ne mutassuk nyilvános idővonalon",
   "privacy.unlisted.short": "Listázatlan",
   "regeneration_indicator.label": "Töltődik…",
-  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
-  "relative_time.days": "{number}d",
-  "relative_time.hours": "{number}h",
+  "regeneration_indicator.sublabel": "A saját idővonalad épp készül!",
+  "relative_time.days": "{number}nap",
+  "relative_time.hours": "{number}ó",
   "relative_time.just_now": "most",
-  "relative_time.minutes": "{number}m",
-  "relative_time.seconds": "{number}s",
+  "relative_time.minutes": "{number}p",
+  "relative_time.seconds": "{number}mp",
   "reply_indicator.cancel": "Mégsem",
-  "report.forward": "Forward to {target}",
-  "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
-  "report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
-  "report.placeholder": "További kommentek",
-  "report.submit": "Submit",
-  "report.target": "Reporting",
+  "report.forward": "Továbbítás neki {target}",
+  "report.forward_hint": "Ez a fiók egy másik szerverről van. Küldjünk oda is egy anonimizált bejelentést?",
+  "report.hint": "A bejelentést a szervered moderátorainak küldjük el. Megmagyarázhatod, miért jelented az alábbi problémát:",
+  "report.placeholder": "További megjegyzések",
+  "report.submit": "Küldés",
+  "report.target": "{target} jelentése",
   "search.placeholder": "Keresés",
-  "search_popout.search_format": "Fejlett keresés",
-  "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.search_format": "Haladó keresés",
+  "search_popout.tips.full_text": "Egyszerű szöveg. Illeszkedő, általad írt tülköket, kedvencnek jelöléseket, megtolást, megemlítést, felhasználói nevet, megjelenített nevet, hashtageket ad majd vissza.",
   "search_popout.tips.hashtag": "hashtag",
-  "search_popout.tips.status": "status",
-  "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+  "search_popout.tips.status": "tülk",
+  "search_popout.tips.text": "Egyszerű szöveg. Illeszkedő megjelenített nevet, felhasználói nevet, hashtageket ad majd vissza",
   "search_popout.tips.user": "felhasználó",
-  "search_results.accounts": "People",
-  "search_results.hashtags": "Hashtags",
-  "search_results.statuses": "Toots",
-  "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
-  "status.admin_account": "Open moderation interface for @{name}",
-  "status.admin_status": "Open this status in the moderation interface",
-  "status.block": "Block @{name}",
-  "status.cancel_reblog_private": "Unboost",
-  "status.cannot_reblog": "Ezen státusz nem rebloggolható",
-  "status.copy": "Copy link to status",
+  "search_results.accounts": "Emberek",
+  "search_results.hashtags": "Hashtagek",
+  "search_results.statuses": "Tülkök",
+  "search_results.total": "{count, number} {count, plural, one {találat} other {találat}}",
+  "status.admin_account": "Moderáció megnyitása @{name} felhasználóhoz",
+  "status.admin_status": "Tülk megnyitása moderációra",
+  "status.block": "@{name} letiltása",
+  "status.cancel_reblog_private": "Megtolás törlése",
+  "status.cannot_reblog": "Ez a tülk nem tolható meg",
+  "status.copy": "Link másolása tülkbe",
   "status.delete": "Törlés",
-  "status.detailed_status": "Detailed conversation view",
-  "status.direct": "Direct message @{name}",
-  "status.embed": "Beágyaz",
+  "status.detailed_status": "Részletes beszélgetési nézet",
+  "status.direct": "Közvetlen üzenet @{name} számára",
+  "status.embed": "Beágyazás",
   "status.favourite": "Kedvenc",
-  "status.filtered": "Filtered",
+  "status.filtered": "Megszűrt",
   "status.load_more": "Többet",
   "status.media_hidden": "Média elrejtve",
-  "status.mention": "Említés",
+  "status.mention": "@{name} említése",
   "status.more": "Többet",
   "status.mute": "@{name} némítása",
   "status.mute_conversation": "Beszélgetés némítása",
-  "status.open": "Státusz kinagyítása",
+  "status.open": "Tülk kibontása",
   "status.pin": "Kitűzés a profilra",
-  "status.pinned": "Pinned toot",
-  "status.read_more": "Read more",
-  "status.reblog": "Reblog",
-  "status.reblog_private": "Boost to original audience",
-  "status.reblogged_by": "{name} reblogolta",
-  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
-  "status.redraft": "Delete & re-draft",
+  "status.pinned": "Kitűzött tülk",
+  "status.read_more": "Bővebben",
+  "status.reblog": "Megtolás",
+  "status.reblog_private": "Megtolás az eredeti közönségnek",
+  "status.reblogged_by": "{name} megtolta",
+  "status.reblogs.empty": "Senki sem tolta még meg ezt a tülköt. Ha valaki megteszi, itt fog megjelenni.",
+  "status.redraft": "Törlés és újraírás",
   "status.reply": "Válasz",
-  "status.replyAll": "Válaszolj a beszélgetésre",
-  "status.report": "Report @{name}",
-  "status.sensitive_warning": "Érzékeny tartalom",
+  "status.replyAll": "Válasz a beszélgetésre",
+  "status.report": "@{name} jelentése",
+  "status.sensitive_warning": "Szenzitív tartalom",
   "status.share": "Megosztás",
-  "status.show_less": "Kevesebb",
-  "status.show_less_all": "Show less for all",
+  "status.show_less": "Kevesebbet",
+  "status.show_less_all": "Kevesebbet mindenhol",
   "status.show_more": "Többet",
-  "status.show_more_all": "Show more for all",
-  "status.show_thread": "Show thread",
-  "status.unmute_conversation": "Beszélgetés némításának elvonása",
-  "status.unpin": "Kitűzés eltávolítása a profilról",
-  "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
-  "tabs_bar.federated_timeline": "Federált",
-  "tabs_bar.home": "Kezdőlap",
-  "tabs_bar.local_timeline": "Local",
+  "status.show_more_all": "Többet mindenhol",
+  "status.show_thread": "Szál mutatása",
+  "status.unmute_conversation": "Beszélgetés némításának kikapcsolása",
+  "status.unpin": "Kitűzés eltávolítása a profilodról",
+  "suggestions.dismiss": "Javaslat elvetése",
+  "suggestions.header": "Esetleg érdekelhet…",
+  "tabs_bar.federated_timeline": "Föderációs",
+  "tabs_bar.home": "Saját",
+  "tabs_bar.local_timeline": "Helyi",
   "tabs_bar.notifications": "Értesítések",
-  "tabs_bar.search": "Search",
-  "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
-  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
-  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
-  "time_remaining.moments": "Moments remaining",
-  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
-  "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
-  "ui.beforeunload": "A piszkozata el fog vesztődni ha elhagyja Mastodon-t.",
-  "upload_area.title": "Húzza ide a feltöltéshez",
-  "upload_button.label": "Média hozzáadása",
-  "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
-  "upload_form.description": "Describe for the visually impaired",
-  "upload_form.focus": "Crop",
+  "tabs_bar.search": "Keresés",
+  "time_remaining.days": "{number, plural, one {# nap} other {# nap}} van hátra",
+  "time_remaining.hours": "{number, plural, one {# óra} other {# óra}} van hátra",
+  "time_remaining.minutes": "{number, plural, one {# perc} other {# perc}} van hátra",
+  "time_remaining.moments": "Pillanatok vannak hátra",
+  "time_remaining.seconds": "{number, plural, one {# másodperc} other {# másodperc}} van hátra",
+  "trends.count_by_accounts": "{count} {rawCount, plural, one {résztvevő} other {résztvevő}} beszélget",
+  "ui.beforeunload": "A piszkozatod el fog veszni, ha elhagyod a Mastodon-t.",
+  "upload_area.title": "Húzd ide a feltöltéshez",
+  "upload_button.label": "Média hozzáadása (JPEG, PNG, GIF, WebM, MP4, MOV)",
+  "upload_error.limit": "Túllépted a fájl feltöltési limitet.",
+  "upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.",
+  "upload_form.description": "Leírás látáskorlátozottak számára",
+  "upload_form.focus": "Előnézet megváltoztatása",
   "upload_form.undo": "Mégsem",
-  "upload_progress.label": "Uploading...",
-  "video.close": "Close video",
-  "video.exit_fullscreen": "Exit full screen",
-  "video.expand": "Expand video",
-  "video.fullscreen": "Full screen",
-  "video.hide": "Hide video",
-  "video.mute": "Mute sound",
+  "upload_progress.label": "Feltöltés...",
+  "video.close": "Videó bezárása",
+  "video.exit_fullscreen": "Kilépés teljes képernyőből",
+  "video.expand": "Videó nagyítása",
+  "video.fullscreen": "Teljes képernyő",
+  "video.hide": "Videó elrejtése",
+  "video.mute": "Hang némitása",
   "video.pause": "Szünet",
   "video.play": "Lejátszás",
-  "video.unmute": "Hang kinémítása"
+  "video.unmute": "Hang némitásának vége"
 }
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 56edf5469..d624aa25c 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -36,7 +36,7 @@
   "account.unmute": "Prestaň ignorovať @{name}",
   "account.unmute_notifications": "Zruš stĺmenie oboznámení od @{name}",
   "alert.unexpected.message": "Vyskytla sa nečakaná chyba.",
-  "alert.unexpected.title": "Oops!",
+  "alert.unexpected.title": "Ups!",
   "boost_modal.combo": "Nabudúce môžeš kliknúť {combo} pre preskočenie",
   "bundle_column_error.body": "Pri načítaní tohto prvku nastala nejaká chyba.",
   "bundle_column_error.retry": "Skús to znova",
@@ -77,14 +77,14 @@
   "compose_form.poll.remove_option": "Odstráň túto voľbu",
   "compose_form.publish": "Pošli",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Mark media as sensitive",
+  "compose_form.sensitive.hide": "Označ médiá ako chúlostivé",
   "compose_form.sensitive.marked": "Médiálny obsah je označený ako chúlostivý",
   "compose_form.sensitive.unmarked": "Médiálny obsah nieje označený ako chúlostivý",
   "compose_form.spoiler.marked": "Text je ukrytý za varovaním",
   "compose_form.spoiler.unmarked": "Text nieje ukrytý",
   "compose_form.spoiler_placeholder": "Sem napíš tvoje varovanie",
   "confirmation_modal.cancel": "Zruš",
-  "confirmations.block.block_and_report": "Block & Report",
+  "confirmations.block.block_and_report": "Zablokuj a nahlás",
   "confirmations.block.confirm": "Blokuj",
   "confirmations.block.message": "Si si istý/á, že chceš blokovať {name}?",
   "confirmations.delete.confirm": "Vymaž",
@@ -204,14 +204,14 @@
   "keyboard_shortcuts.search": "zameraj sa na vyhľadávanie",
   "keyboard_shortcuts.start": "otvor panel ''začíname''",
   "keyboard_shortcuts.toggle_hidden": "ukáž/skry text za CW",
-  "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
+  "keyboard_shortcuts.toggle_sensitivity": "pre zobrazenie/skrytie médií",
   "keyboard_shortcuts.toot": "začni úplne nový príspevok",
   "keyboard_shortcuts.unfocus": "nesústreď sa na písaciu plochu, alebo hľadanie",
   "keyboard_shortcuts.up": "posuň sa vyššie v zozname",
   "lightbox.close": "Zatvor",
   "lightbox.next": "Ďalšie",
   "lightbox.previous": "Predchádzajúci",
-  "lightbox.view_context": "View context",
+  "lightbox.view_context": "Ukáž kontext",
   "lists.account.add": "Pridaj do zoznamu",
   "lists.account.remove": "Odober zo zoznamu",
   "lists.delete": "Vymaž list",
@@ -237,7 +237,7 @@
   "navigation_bar.favourites": "Obľúbené",
   "navigation_bar.filters": "Filtrované slová",
   "navigation_bar.follow_requests": "Žiadosti o sledovanie",
-  "navigation_bar.follows_and_followers": "Follows and followers",
+  "navigation_bar.follows_and_followers": "Následovaní a sledovatelia",
   "navigation_bar.info": "O tomto serveri",
   "navigation_bar.keyboard_shortcuts": "Klávesové skratky",
   "navigation_bar.lists": "Zoznamy",
@@ -246,7 +246,7 @@
   "navigation_bar.personal": "Osobné",
   "navigation_bar.pins": "Pripnuté príspevky",
   "navigation_bar.preferences": "Voľby",
-  "navigation_bar.profile_directory": "Profile directory",
+  "navigation_bar.profile_directory": "Katalóg profilov",
   "navigation_bar.public_timeline": "Federovaná časová os",
   "navigation_bar.security": "Zabezbečenie",
   "notification.favourite": "{name} si obľúbil/a tvoj príspevok",
@@ -292,11 +292,11 @@
   "privacy.unlisted.short": "Verejne, ale nezobraziť v osi",
   "regeneration_indicator.label": "Načítava sa…",
   "regeneration_indicator.sublabel": "Vaša domovská nástenka sa pripravuje!",
-  "relative_time.days": "{number}d",
-  "relative_time.hours": "{number}h",
+  "relative_time.days": "{number}dní",
+  "relative_time.hours": "{number}hod",
   "relative_time.just_now": "teraz",
-  "relative_time.minutes": "{number}m",
-  "relative_time.seconds": "{number}s",
+  "relative_time.minutes": "{number}min",
+  "relative_time.seconds": "{number}sek",
   "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?",
@@ -308,7 +308,7 @@
   "search_popout.search_format": "Pokročilé vyhľadávanie",
   "search_popout.tips.full_text": "Vráti jednoduchý textový výpis príspevkov ktoré si napísal/a, ktoré si obľúbil/a, povýšil/a, alebo aj tých, v ktorých si bol/a spomenutý/á, a potom všetky zadaniu odpovedajúce prezívky, mená a haštagy.",
   "search_popout.tips.hashtag": "haštag",
-  "search_popout.tips.status": "status",
+  "search_popout.tips.status": "príspevok",
   "search_popout.tips.text": "Vráti jednoduchý textový výpis zhodujúcich sa mien, prezývok a haštagov",
   "search_popout.tips.user": "užívateľ",
   "search_results.accounts": "Ľudia",
@@ -361,7 +361,7 @@
   "tabs_bar.local_timeline": "Miestna",
   "tabs_bar.notifications": "Oboznámenia",
   "tabs_bar.search": "Hľadaj",
-  "time_remaining.days": "Ostáva {number, plural, one {# deň} few {# dní} many {# dni} other {# dni}}",
+  "time_remaining.days": "Ostáva {number, plural, one {# deň} few {# dní} many {# dní} other {# dni}}",
   "time_remaining.hours": "Ostáva {number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodiny}}",
   "time_remaining.minutes": "Ostáva {number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}",
   "time_remaining.moments": "Ostáva už iba chviľka",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index 736d7da36..f0e813e90 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -13,10 +13,10 @@
   "account.followers.empty": "Nihče ne sledi temu uporabniku.",
   "account.follows": "Sledi",
   "account.follows.empty": "Ta uporabnik še ne sledi nikomur.",
-  "account.follows_you": "Ti sledi",
-  "account.hide_reblogs": "Skrij sunke od @{name}",
+  "account.follows_you": "Sledi tebi",
+  "account.hide_reblogs": "Skrij spodbude od @{name}",
   "account.link_verified_on": "Lastništvo te povezave je bilo preverjeno {date}",
-  "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+  "account.locked_info": "Stanje zasebnosti računa je nastavljeno na zaklenjeno. Lastnik ročno pregleda, kdo ga lahko spremlja.",
   "account.media": "Mediji",
   "account.mention": "Omeni @{name}",
   "account.moved_to": "{name} se je premaknil na:",
@@ -28,16 +28,16 @@
   "account.report": "Prijavi @{name}",
   "account.requested": "Čakanje na odobritev. Kliknite, da prekličete prošnjo za sledenje",
   "account.share": "Delite profil osebe @{name}",
-  "account.show_reblogs": "Pokaži delitve osebe @{name}",
+  "account.show_reblogs": "Pokaži spodbude osebe @{name}",
   "account.unblock": "Odblokiraj @{name}",
   "account.unblock_domain": "Razkrij {domain}",
-  "account.unendorse": "Don't feature on profile",
+  "account.unendorse": "Ne vključi v profil",
   "account.unfollow": "Prenehaj slediti",
   "account.unmute": "Odtišaj @{name}",
   "account.unmute_notifications": "Vklopi obvestila od @{name}",
   "alert.unexpected.message": "Zgodila se je nepričakovana napaka.",
   "alert.unexpected.title": "Uups!",
-  "boost_modal.combo": "Če želite naslednjič preskočiti to, lahko pritisnete {combo}",
+  "boost_modal.combo": "Če želite preskočiti to, lahko pritisnete {combo}",
   "bundle_column_error.body": "Med nalaganjem te komponente je prišlo do napake.",
   "bundle_column_error.retry": "Poskusi ponovno",
   "bundle_column_error.title": "Napaka omrežja",
@@ -67,49 +67,49 @@
   "community.column_settings.media_only": "Samo mediji",
   "compose_form.direct_message_warning": "Ta tut bo viden le vsem omenjenim uporabnikom.",
   "compose_form.direct_message_warning_learn_more": "Nauči se več",
-  "compose_form.hashtag_warning": "Ta tut ne bo naveden pod nobenim hashtagom, ker ni dodan hashtag. Samo javne tute lahko iščete pod hashtagom.",
+  "compose_form.hashtag_warning": "Ta tut ne bo naveden pod nobenim ključnikom, ker ni javen. Samo javne tute lahko iščete s ključniki.",
   "compose_form.lock_disclaimer": "Vaš račun ni {locked}. Vsakdo vam lahko sledi in si ogleda objave, ki so namenjene samo sledilcem.",
   "compose_form.lock_disclaimer.lock": "zaklenjen",
   "compose_form.placeholder": "O čem razmišljaš?",
-  "compose_form.poll.add_option": "Add a choice",
-  "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
+  "compose_form.poll.add_option": "Dodaj izbiro",
+  "compose_form.poll.duration": "Trajanje ankete",
+  "compose_form.poll.option_placeholder": "Izbira {number}",
+  "compose_form.poll.remove_option": "Odstrani to izbiro",
   "compose_form.publish": "Tutni",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Mark media as sensitive",
+  "compose_form.sensitive.hide": "Označi medij kot občutljiv",
   "compose_form.sensitive.marked": "Medij je označen kot občutljiv",
   "compose_form.sensitive.unmarked": "Medij ni označen kot občutljiv",
   "compose_form.spoiler.marked": "Besedilo je skrito za opozorilom",
   "compose_form.spoiler.unmarked": "Besedilo ni skrito",
-  "compose_form.spoiler_placeholder": "Napišite opozorilo tukaj",
+  "compose_form.spoiler_placeholder": "Tukaj napišite opozorilo",
   "confirmation_modal.cancel": "Prekliči",
-  "confirmations.block.block_and_report": "Block & Report",
-  "confirmations.block.confirm": "Block",
+  "confirmations.block.block_and_report": "Blokiraj in Prijavi",
+  "confirmations.block.confirm": "Blokiraj",
   "confirmations.block.message": "Ali ste prepričani, da želite blokirati {name}?",
-  "confirmations.delete.confirm": "Delete",
+  "confirmations.delete.confirm": "Izbriši",
   "confirmations.delete.message": "Ali ste prepričani, da želite izbrisati to stanje?",
-  "confirmations.delete_list.confirm": "Delete",
+  "confirmations.delete_list.confirm": "Izbriši",
   "confirmations.delete_list.message": "Ali ste prepričani, da želite trajno izbrisati ta seznam?",
   "confirmations.domain_block.confirm": "Skrij celotno domeno",
-  "confirmations.domain_block.message": "Ali ste res, res prepričani, da želite blokirati celotno {domain}? V večini primerov je nekaj ciljnih blokiranj ali utišanj dovolj in boljše.",
+  "confirmations.domain_block.message": "Ali ste res, res prepričani, da želite blokirati celotno {domain}? V večini primerov je nekaj ciljnih blokiranj ali utišanj dovolj in boljše. Vsebino iz te domene ne boste videli v javnih časovnicah ali obvestilih. Vaši sledilci iz te domene bodo odstranjeni.",
   "confirmations.mute.confirm": "Utišanje",
   "confirmations.mute.message": "Ali ste prepričani, da želite utišati {name}?",
   "confirmations.redraft.confirm": "Izbriši in preoblikuj",
-  "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
-  "confirmations.reply.confirm": "Reply",
+  "confirmations.redraft.message": "Ali ste prepričani, da želite izbrisati ta status in ga preoblikovati? Vzljubi in spodbude bodo izgubljeni, odgovori na izvirno objavo pa bodo osiroteli.",
+  "confirmations.reply.confirm": "Odgovori",
   "confirmations.reply.message": "Odgovarjanje bo prepisalo sporočilo, ki ga trenutno sestavljate. Ali ste prepričani, da želite nadaljevati?",
   "confirmations.unfollow.confirm": "Prenehaj slediti",
   "confirmations.unfollow.message": "Ali ste prepričani, da ne želite več slediti {name}?",
   "embed.instructions": "Vstavi ta status na svojo spletno stran tako, da kopirate spodnjo kodo.",
-  "embed.preview": "Tukaj je, kako bo izgledalo:",
+  "embed.preview": "Tako bo izgledalo:",
   "emoji_button.activity": "Dejavnost",
   "emoji_button.custom": "Po meri",
   "emoji_button.flags": "Zastave",
   "emoji_button.food": "Hrana in Pijača",
-  "emoji_button.label": "Vstavi emojija",
+  "emoji_button.label": "Vstavi emotikon",
   "emoji_button.nature": "Narava",
-  "emoji_button.not_found": "Ni emojijev!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "Ni emotikonov!! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "Predmeti",
   "emoji_button.people": "Ljudje",
   "emoji_button.recent": "Pogosto uporabljeni",
@@ -117,50 +117,50 @@
   "emoji_button.search_results": "Rezultati iskanja",
   "emoji_button.symbols": "Simboli",
   "emoji_button.travel": "Potovanja in Kraji",
-  "empty_column.account_timeline": "No toots here!",
-  "empty_column.account_unavailable": "Profile unavailable",
+  "empty_column.account_timeline": "Tukaj ni tutov!",
+  "empty_column.account_unavailable": "Profil ni na voljo",
   "empty_column.blocks": "Niste še blokirali nobenega uporabnika.",
   "empty_column.community": "Lokalna časovnica je prazna. Napišite nekaj javnega, da se bo žoga zakotalila!",
-  "empty_column.direct": "Nimate še nobenih neposrednih sporočil. Ko ga pošljete ali prejmete, se prikaže tukaj.",
+  "empty_column.direct": "Nimate še nobenih neposrednih sporočil. Ko ga boste poslali ali prejeli, se bo prikazal tukaj.",
   "empty_column.domain_blocks": "Še vedno ni skritih domen.",
-  "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
-  "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
-  "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
-  "empty_column.hashtag": "V tem hashtagu še ni nič.",
+  "empty_column.favourited_statuses": "Nimate priljubljenih tutov. Ko boste vzljubili kakšnega, se bo prikazal tukaj.",
+  "empty_column.favourites": "Nihče še ni vzljubil tega tuta. Ko ga bo nekdo, se bo pojavil tukaj.",
+  "empty_column.follow_requests": "Nimate prošenj za sledenje. Ko boste prejeli kakšno, se bo prikazala tukaj.",
+  "empty_column.hashtag": "V tem ključniku še ni nič.",
   "empty_column.home": "Vaša domača časovnica je prazna! Obiščite {public} ali uporabite iskanje, da se boste srečali druge uporabnike.",
   "empty_column.home.public_timeline": "javna časovnica",
   "empty_column.list": "Na tem seznamu ni ničesar. Ko bodo člani tega seznama objavili nove statuse, se bodo pojavili tukaj.",
-  "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
-  "empty_column.mutes": "You haven't muted any users yet.",
+  "empty_column.lists": "Nimate seznamov. Ko ga boste ustvarili, se bo prikazal tukaj.",
+  "empty_column.mutes": "Niste utišali še nobenega uporabnika.",
   "empty_column.notifications": "Nimate še nobenih obvestil. Poveži se z drugimi, da začnete pogovor.",
-  "empty_column.public": "Tukaj ni ničesar! Da ga napolnite, napišite nekaj javnega ali pa ročno sledite uporabnikom iz drugih vozlišč",
-  "follow_request.authorize": "Odobri",
+  "empty_column.public": "Tukaj ni ničesar! Da ga napolnite, napišite nekaj javnega ali pa ročno sledite uporabnikom iz drugih strežnikov",
+  "follow_request.authorize": "Overi",
   "follow_request.reject": "Zavrni",
-  "getting_started.developers": "Developers",
-  "getting_started.directory": "Profile directory",
-  "getting_started.documentation": "Documentation",
-  "getting_started.heading": "Prvi koraki",
-  "getting_started.invite": "Invite people",
-  "getting_started.open_source_notice": "Mastodon je odprtokodna programska oprema. V GitHubu na {github} lahko prispevate ali poročate o napakah.",
-  "getting_started.security": "Security",
-  "getting_started.terms": "Terms of service",
-  "hashtag.column_header.tag_mode.all": "and {additional}",
-  "hashtag.column_header.tag_mode.any": "or {additional}",
-  "hashtag.column_header.tag_mode.none": "without {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
-  "hashtag.column_settings.tag_mode.all": "All of these",
-  "hashtag.column_settings.tag_mode.any": "Any of these",
-  "hashtag.column_settings.tag_mode.none": "None of these",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "getting_started.developers": "Razvijalci",
+  "getting_started.directory": "Imenik profilov",
+  "getting_started.documentation": "Dokumentacija",
+  "getting_started.heading": "Kako začeti",
+  "getting_started.invite": "Povabite osebe",
+  "getting_started.open_source_notice": "Mastodon je odprtokodna programska oprema. Na GitHubu na {github} lahko prispevate ali poročate o napakah.",
+  "getting_started.security": "Varnost",
+  "getting_started.terms": "Pogoji uporabe",
+  "hashtag.column_header.tag_mode.all": "in {additional}",
+  "hashtag.column_header.tag_mode.any": "ali {additional}",
+  "hashtag.column_header.tag_mode.none": "brez {additional}",
+  "hashtag.column_settings.select.no_options_message": "Ni najdenih predlogov",
+  "hashtag.column_settings.select.placeholder": "Vpiši ključnik…",
+  "hashtag.column_settings.tag_mode.all": "Vse našteto",
+  "hashtag.column_settings.tag_mode.any": "Karkoli od naštetega",
+  "hashtag.column_settings.tag_mode.none": "Nič od naštetega",
+  "hashtag.column_settings.tag_toggle": "V ta stolpec vključite dodatne oznake",
   "home.column_settings.basic": "Osnovno",
-  "home.column_settings.show_reblogs": "Pokaži sunke",
+  "home.column_settings.show_reblogs": "Pokaži spodbude",
   "home.column_settings.show_replies": "Pokaži odgovore",
-  "intervals.full.days": "{number, plural, one {# day} other {# days}}",
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
-  "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
-  "introduction.federation.action": "Next",
-  "introduction.federation.federated.headline": "Federated",
+  "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}}",
+  "introduction.federation.action": "Naprej",
+  "introduction.federation.federated.headline": "Združeno",
   "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
   "introduction.federation.home.headline": "Home",
   "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index bd042c1d1..3bcf389c7 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -11,12 +11,12 @@
   "account.follow": "ติดตาม",
   "account.followers": "ผู้ติดตาม",
   "account.followers.empty": "ยังไม่มีใครติดตามผู้ใช้นี้",
-  "account.follows": "ติดตาม",
+  "account.follows": "การติดตาม",
   "account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร",
   "account.follows_you": "ติดตามคุณ",
   "account.hide_reblogs": "ซ่อนการดันจาก @{name}",
   "account.link_verified_on": "ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ {date}",
-  "account.locked_info": "บัญชีนี้ถูกล็อคไว้ เจ้าของจะต้องรับรองการติดตามของคุณด้วย",
+  "account.locked_info": "มีการตั้งสถานะความเป็นส่วนตัวของบัญชีนี้เป็นล็อคอยู่ เจ้าของตรวจทานผู้ที่สามารถติดตามเขาด้วยตนเอง",
   "account.media": "สื่อ",
   "account.mention": "กล่าวถึง @{name}",
   "account.moved_to": "{name} ได้ย้ายไปยัง:",
@@ -37,7 +37,7 @@
   "account.unmute_notifications": "เลิกปิดเสียงการแจ้งเตือนจาก @{name}",
   "alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
   "alert.unexpected.title": "อุปส์!",
-  "boost_modal.combo": "กด {combo} เพื่อข้าม",
+  "boost_modal.combo": "คุณสามารถกด {combo} เพื่อข้ามสิ่งนี้ในครั้งถัดไป",
   "bundle_column_error.body": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้",
   "bundle_column_error.retry": "ลองอีกครั้ง",
   "bundle_column_error.title": "ข้อผิดพลาดเครือข่าย",
@@ -65,23 +65,23 @@
   "column_header.unpin": "ถอนหมุด",
   "column_subheading.settings": "การตั้งค่า",
   "community.column_settings.media_only": "สื่อเท่านั้น",
-  "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
+  "compose_form.direct_message_warning": "จะส่งโพสต์นี้ไปยังผู้ใช้ที่กล่าวถึงเท่านั้น",
   "compose_form.direct_message_warning_learn_more": "เรียนรู้เพิ่มเติม",
-  "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
-  "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
-  "compose_form.lock_disclaimer.lock": "locked",
-  "compose_form.placeholder": "What is on your mind?",
-  "compose_form.poll.add_option": "Add a choice",
+  "compose_form.hashtag_warning": "จะไม่แสดงรายการโพสต์นี้ภายใต้แฮชแท็กใด ๆ เนื่องจากไม่อยู่ในรายการ เฉพาะโพสต์สาธารณะเท่านั้นที่สามารถค้นหาโดยแฮชแท็ก",
+  "compose_form.lock_disclaimer": "บัญชีของคุณไม่ได้ {locked} ใครก็ตามสามารถติดตามคุณเพื่อดูโพสต์สำหรับผู้ติดตามเท่านั้นของคุณ",
+  "compose_form.lock_disclaimer.lock": "ล็อคอยู่",
+  "compose_form.placeholder": "คุณกำลังคิดอะไรอยู่?",
+  "compose_form.poll.add_option": "เพิ่มทางเลือก",
   "compose_form.poll.duration": "Poll duration",
-  "compose_form.poll.option_placeholder": "Choice {number}",
-  "compose_form.poll.remove_option": "Remove this choice",
+  "compose_form.poll.option_placeholder": "ทางเลือก {number}",
+  "compose_form.poll.remove_option": "เอาทางเลือกนี้ออก",
   "compose_form.publish": "โพสต์",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.sensitive.hide": "Mark media as sensitive",
-  "compose_form.sensitive.marked": "Media is marked as sensitive",
-  "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
-  "compose_form.spoiler.marked": "Text is hidden behind warning",
-  "compose_form.spoiler.unmarked": "Text is not hidden",
+  "compose_form.sensitive.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": "ปิดกั้นแล้วรายงาน",
@@ -91,25 +91,25 @@
   "confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบสถานะนี้?",
   "confirmations.delete_list.confirm": "ลบ",
   "confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?",
-  "confirmations.domain_block.confirm": "Hide entire domain",
+  "confirmations.domain_block.confirm": "ซ่อนทั้งโดเมน",
   "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
   "confirmations.mute.confirm": "ปิดเสียง",
   "confirmations.mute.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดเสียง {name}?",
   "confirmations.redraft.confirm": "ลบแล้วร่างใหม่",
-  "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
+  "confirmations.redraft.message": "คุณแน่ใจหรือไม่ว่าต้องการลบสถานะนี้แล้วร่างใหม่? รายการโปรดและการดันจะหายไป และการตอบกลับโพสต์ดั้งเดิมจะไม่มีความเกี่ยวพัน",
   "confirmations.reply.confirm": "ตอบกลับ",
-  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+  "confirmations.reply.message": "การตอบกลับตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
   "confirmations.unfollow.confirm": "เลิกติดตาม",
   "confirmations.unfollow.message": "คุณแน่ใจหรือไม่ว่าต้องการเลิกติดตาม {name}?",
-  "embed.instructions": "Embed this status on your website by copying the code below.",
-  "embed.preview": "Here is what it will look like:",
+  "embed.instructions": "ฝังสถานะนี้ในเว็บไซต์ของคุณโดยคัดลอกโค้ดด้านล่าง",
+  "embed.preview": "นี่คือลักษณะที่จะปรากฏ:",
   "emoji_button.activity": "กิจกรรม",
   "emoji_button.custom": "กำหนดเอง",
   "emoji_button.flags": "ธง",
   "emoji_button.food": "อาหารและเครื่องดื่ม",
   "emoji_button.label": "แทรกอีโมจิ",
   "emoji_button.nature": "ธรรมชาติ",
-  "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "ไม่มีอีโมโจ!! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "วัตถุ",
   "emoji_button.people": "ผู้คน",
   "emoji_button.recent": "ที่ใช้บ่อย",
@@ -118,22 +118,22 @@
   "emoji_button.symbols": "สัญลักษณ์",
   "emoji_button.travel": "การเดินทางและสถานที่",
   "empty_column.account_timeline": "ไม่มีโพสต์ที่นี่!",
-  "empty_column.account_unavailable": "Profile unavailable",
-  "empty_column.blocks": "You haven't blocked any users yet.",
-  "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+  "empty_column.account_unavailable": "ไม่มีโปรไฟล์",
+  "empty_column.blocks": "คุณยังไม่ได้ปิดกั้นผู้ใช้ใด ๆ",
+  "empty_column.community": "เส้นเวลาในเว็บว่างเปล่า เขียนบางอย่างเป็นสาธารณะเพื่อเริ่มต้น!",
+  "empty_column.direct": "คุณยังไม่มีข้อความโดยตรงใด ๆ เมื่อคุณส่งหรือรับข้อความ ข้อความจะปรากฏที่นี่",
   "empty_column.domain_blocks": "ยังไม่มีโดเมนที่ซ่อนอยู่",
-  "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
-  "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
-  "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
-  "empty_column.hashtag": "There is nothing in this hashtag yet.",
-  "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
+  "empty_column.favourited_statuses": "คุณยังไม่มีโพสต์ที่ชื่นชอบใด ๆ เมื่อคุณชื่นชอบโพสต์ โพสต์จะปรากฏที่นี่",
+  "empty_column.favourites": "ยังไม่มีใครชื่นชอบโพสต์นี้ เมื่อใครสักคนชื่นชอบ เขาจะปรากฏที่นี่",
+  "empty_column.follow_requests": "คุณยังไม่มีคำขอติดตามใด ๆ เมื่อคุณได้รับคำขอ คำขอจะปรากฏที่นี่",
+  "empty_column.hashtag": "ยังไม่มีสิ่งใดในแฮชแท็กนี้",
+  "empty_column.home": "เส้นเวลาหน้าแรกของคุณว่างเปล่า! เยี่ยมชม {public} หรือใช้การค้นหาเพื่อเริ่มต้นใช้งานและพบปะผู้ใช้อื่น ๆ",
   "empty_column.home.public_timeline": "เส้นเวลาสาธารณะ",
-  "empty_column.list": "There is nothing in this list yet.",
-  "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
-  "empty_column.mutes": "You haven't muted any users yet.",
-  "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
-  "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
+  "empty_column.list": "ยังไม่มีสิ่งใดในรายการนี้ เมื่อสมาชิกของรายการนี้โพสต์สถานะใหม่ สถานะจะปรากฏที่นี่",
+  "empty_column.lists": "คุณยังไม่มีรายการใด ๆ เมื่อคุณสร้างรายการ รายการจะปรากฏที่นี่",
+  "empty_column.mutes": "คุณยังไม่ได้ปิดเสียงผู้ใช้ใด ๆ",
+  "empty_column.notifications": "คุณยังไม่มีการแจ้งเตือนใด ๆ โต้ตอบกับผู้อื่นเพื่อเริ่มการสนทนา",
+  "empty_column.public": "ไม่มีสิ่งใดที่นี่! เขียนบางอย่างเป็นสาธารณะ หรือติดตามผู้ใช้จากเซิร์ฟเวอร์อื่น ๆ ด้วยตนเองเพื่อเติมให้เต็ม",
   "follow_request.authorize": "อนุญาต",
   "follow_request.reject": "ปฏิเสธ",
   "getting_started.developers": "นักพัฒนา",
@@ -141,7 +141,7 @@
   "getting_started.documentation": "เอกสารประกอบ",
   "getting_started.heading": "เริ่มต้นใช้งาน",
   "getting_started.invite": "เชิญผู้คน",
-  "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
+  "getting_started.open_source_notice": "Mastodon เป็นซอฟต์แวร์เปิดต้นฉบับ คุณสามารถมีส่วนร่วมหรือรายงานปัญหาใน GitHub ที่ {github}",
   "getting_started.security": "ความปลอดภัย",
   "getting_started.terms": "เงื่อนไขการให้บริการ",
   "hashtag.column_header.tag_mode.all": "และ {additional}",
@@ -149,10 +149,10 @@
   "hashtag.column_header.tag_mode.none": "โดยไม่มี {additional}",
   "hashtag.column_settings.select.no_options_message": "ไม่พบข้อเสนอแนะ",
   "hashtag.column_settings.select.placeholder": "ป้อนแฮชแท็ก…",
-  "hashtag.column_settings.tag_mode.all": "All of these",
-  "hashtag.column_settings.tag_mode.any": "Any of these",
-  "hashtag.column_settings.tag_mode.none": "None of these",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+  "hashtag.column_settings.tag_mode.all": "ทั้งหมดนี้",
+  "hashtag.column_settings.tag_mode.any": "ใดก็ตามนี้",
+  "hashtag.column_settings.tag_mode.none": "ไม่ใช่ทั้งหมดนี้",
+  "hashtag.column_settings.tag_toggle": "รวมแท็กเพิ่มเติมสำหรับคอลัมน์นี้",
   "home.column_settings.basic": "พื้นฐาน",
   "home.column_settings.show_reblogs": "แสดงการดัน",
   "home.column_settings.show_replies": "แสดงการตอบกลับ",
@@ -160,58 +160,58 @@
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
   "introduction.federation.action": "ถัดไป",
-  "introduction.federation.federated.headline": "Federated",
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
-  "introduction.federation.home.headline": "Home",
-  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
-  "introduction.federation.local.headline": "Local",
-  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
-  "introduction.interactions.action": "Finish toot-orial!",
-  "introduction.interactions.favourite.headline": "Favourite",
+  "introduction.federation.federated.headline": "ที่ติดต่อกับภายนอก",
+  "introduction.federation.federated.text": "โพสต์สาธารณะจากเซิร์ฟเวอร์อื่น ๆ ของ Fediverse จะปรากฏในเส้นเวลาที่ติดต่อกับภายนอก",
+  "introduction.federation.home.headline": "หน้าแรก",
+  "introduction.federation.home.text": "โพสต์จากผู้คนที่คุณติดตามจะปรากฏในฟีดหน้าแรกของคุณ คุณสามารถติดตามใครก็ตามในเซิร์ฟเวอร์ใดก็ตาม!",
+  "introduction.federation.local.headline": "ในเว็บ",
+  "introduction.federation.local.text": "โพสต์สาธารณะจากผู้คนในเซิร์ฟเวอร์เดียวกันกับคุณจะปรากฏในเส้นเวลาในเว็บ",
+  "introduction.interactions.action": "เสร็จสิ้นบทช่วยสอน!",
+  "introduction.interactions.favourite.headline": "ชื่นชอบ",
   "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
-  "introduction.interactions.reblog.headline": "Boost",
+  "introduction.interactions.reblog.headline": "ดัน",
   "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.headline": "ตอบกลับ",
   "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
-  "introduction.welcome.action": "Let's go!",
-  "introduction.welcome.headline": "First steps",
+  "introduction.welcome.action": "ไปกันเลย!",
+  "introduction.welcome.headline": "ขั้นตอนแรก",
   "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
-  "keyboard_shortcuts.back": "to navigate back",
-  "keyboard_shortcuts.blocked": "to open blocked users list",
-  "keyboard_shortcuts.boost": "to boost",
-  "keyboard_shortcuts.column": "to focus a status in one of the columns",
-  "keyboard_shortcuts.compose": "to focus the compose textarea",
+  "keyboard_shortcuts.back": "เพื่อนำทางย้อนกลับ",
+  "keyboard_shortcuts.blocked": "เพื่อเปิดรายการผู้ใช้ที่ปิดกั้นอยู่",
+  "keyboard_shortcuts.boost": "เพื่อดัน",
+  "keyboard_shortcuts.column": "เพื่อโฟกัสสถานะในหนึ่งในคอลัมน์",
+  "keyboard_shortcuts.compose": "เพื่อโฟกัสพื้นที่เขียนข้อความ",
   "keyboard_shortcuts.description": "คำอธิบาย",
-  "keyboard_shortcuts.direct": "to open direct messages column",
-  "keyboard_shortcuts.down": "to move down in the list",
-  "keyboard_shortcuts.enter": "to open status",
-  "keyboard_shortcuts.favourite": "to favourite",
-  "keyboard_shortcuts.favourites": "to open favourites list",
-  "keyboard_shortcuts.federated": "to open federated timeline",
-  "keyboard_shortcuts.heading": "Keyboard Shortcuts",
-  "keyboard_shortcuts.home": "to open home timeline",
+  "keyboard_shortcuts.direct": "เพื่อเปิดคอลัมน์ข้อความโดยตรง",
+  "keyboard_shortcuts.down": "เพื่อย้ายลงในรายการ",
+  "keyboard_shortcuts.enter": "เพื่อเปิดสถานะ",
+  "keyboard_shortcuts.favourite": "เพื่อชื่นชอบ",
+  "keyboard_shortcuts.favourites": "เพื่อเปิดรายการโปรด",
+  "keyboard_shortcuts.federated": "เพื่อเปิดเส้นเวลาที่ติดต่อกับภายนอก",
+  "keyboard_shortcuts.heading": "แป้นพิมพ์ลัด",
+  "keyboard_shortcuts.home": "เพื่อเปิดเส้นเวลาหน้าแรก",
   "keyboard_shortcuts.hotkey": "ปุ่มลัด",
-  "keyboard_shortcuts.legend": "to display this legend",
-  "keyboard_shortcuts.local": "to open local timeline",
-  "keyboard_shortcuts.mention": "to mention author",
-  "keyboard_shortcuts.muted": "to open muted users list",
-  "keyboard_shortcuts.my_profile": "to open your profile",
-  "keyboard_shortcuts.notifications": "to open notifications column",
-  "keyboard_shortcuts.pinned": "to open pinned toots list",
-  "keyboard_shortcuts.profile": "to open author's profile",
-  "keyboard_shortcuts.reply": "to reply",
-  "keyboard_shortcuts.requests": "to open follow requests list",
-  "keyboard_shortcuts.search": "to focus search",
-  "keyboard_shortcuts.start": "to open \"get started\" column",
-  "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
-  "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
-  "keyboard_shortcuts.toot": "to start a brand new toot",
-  "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
-  "keyboard_shortcuts.up": "to move up in the list",
+  "keyboard_shortcuts.legend": "เพื่อแสดงคำอธิบายนี้",
+  "keyboard_shortcuts.local": "เพื่อเปิดเส้นเวลาในเว็บ",
+  "keyboard_shortcuts.mention": "เพื่อกล่าวถึงผู้สร้าง",
+  "keyboard_shortcuts.muted": "เพื่อเปิดรายการผู้ใช้ที่ปิดเสียงอยู่",
+  "keyboard_shortcuts.my_profile": "เพื่อเปิดโปรไฟล์ของคุณ",
+  "keyboard_shortcuts.notifications": "เพื่อเปิดคอลัมน์การแจ้งเตือน",
+  "keyboard_shortcuts.pinned": "เพื่อเปิดรายการโพสต์ที่ปักหมุด",
+  "keyboard_shortcuts.profile": "เพื่อเปิดโปรไฟล์ของผู้สร้าง",
+  "keyboard_shortcuts.reply": "เพื่อตอบกลับ",
+  "keyboard_shortcuts.requests": "เพื่อเปิดรายการคำขอติดตาม",
+  "keyboard_shortcuts.search": "เพื่อโฟกัสการค้นหา",
+  "keyboard_shortcuts.start": "เพื่อเปิดคอลัมน์ \"เริ่มต้นใช้งาน\"",
+  "keyboard_shortcuts.toggle_hidden": "เพื่อแสดง/ซ่อนข้อความที่อยู่หลังคำเตือนเนื้อหา",
+  "keyboard_shortcuts.toggle_sensitivity": "เพื่อแสดง/ซ่อนสื่อ",
+  "keyboard_shortcuts.toot": "เพื่อเริ่มโพสต์ใหม่",
+  "keyboard_shortcuts.unfocus": "เพื่อเลิกโฟกัสพื้นที่เขียนข้อความ/การค้นหา",
+  "keyboard_shortcuts.up": "เพื่อย้ายขึ้นในรายการ",
   "lightbox.close": "ปิด",
   "lightbox.next": "ถัดไป",
   "lightbox.previous": "ก่อนหน้า",
-  "lightbox.view_context": "View context",
+  "lightbox.view_context": "ดูบริบท",
   "lists.account.add": "เพิ่มไปยังรายการ",
   "lists.account.remove": "เอาออกจากรายการ",
   "lists.delete": "ลบรายการ",
@@ -237,7 +237,7 @@
   "navigation_bar.favourites": "รายการโปรด",
   "navigation_bar.filters": "คำที่ปิดเสียงอยู่",
   "navigation_bar.follow_requests": "คำขอติดตาม",
-  "navigation_bar.follows_and_followers": "Follows and followers",
+  "navigation_bar.follows_and_followers": "การติดตามและผู้ติดตาม",
   "navigation_bar.info": "เกี่ยวกับเซิร์ฟเวอร์นี้",
   "navigation_bar.keyboard_shortcuts": "ปุ่มลัด",
   "navigation_bar.lists": "รายการ",
@@ -246,7 +246,7 @@
   "navigation_bar.personal": "ส่วนบุคคล",
   "navigation_bar.pins": "โพสต์ที่ปักหมุด",
   "navigation_bar.preferences": "การกำหนดลักษณะ",
-  "navigation_bar.profile_directory": "Profile directory",
+  "navigation_bar.profile_directory": "ไดเรกทอรีโปรไฟล์",
   "navigation_bar.public_timeline": "เส้นเวลาที่ติดต่อกับภายนอก",
   "navigation_bar.security": "ความปลอดภัย",
   "notification.favourite": "{name} ได้ชื่นชอบสถานะของคุณ",
@@ -256,7 +256,7 @@
   "notification.reblog": "{name} ได้ดันสถานะของคุณ",
   "notifications.clear": "ล้างการแจ้งเตือน",
   "notifications.clear_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการล้างการแจ้งเตือนทั้งหมดของคุณอย่างถาวร?",
-  "notifications.column_settings.alert": "Desktop notifications",
+  "notifications.column_settings.alert": "การแจ้งเตือนบนเดสก์ท็อป",
   "notifications.column_settings.favourite": "รายการโปรด:",
   "notifications.column_settings.filter_bar.advanced": "แสดงหมวดหมู่ทั้งหมด",
   "notifications.column_settings.filter_bar.category": "แถบตัวกรองด่วน",
@@ -276,12 +276,12 @@
   "notifications.filter.polls": "Poll results",
   "notifications.group": "{count} การแจ้งเตือน",
   "poll.closed": "ปิดแล้ว",
-  "poll.refresh": "Refresh",
+  "poll.refresh": "รีเฟรช",
   "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
   "poll.vote": "Vote",
   "poll_button.add_poll": "Add a poll",
   "poll_button.remove_poll": "Remove poll",
-  "privacy.change": "Adjust status privacy",
+  "privacy.change": "ปรับเปลี่ยนความเป็นส่วนตัวของสถานะ",
   "privacy.direct.long": "โพสต์ไปยังผู้ใช้ที่กล่าวถึงเท่านั้น",
   "privacy.direct.short": "โดยตรง",
   "privacy.private.long": "โพสต์ไปยังผู้ติดตามเท่านั้น",
@@ -291,7 +291,7 @@
   "privacy.unlisted.long": "ไม่โพสต์ไปยังเส้นเวลาสาธารณะ",
   "privacy.unlisted.short": "ไม่อยู่ในรายการ",
   "regeneration_indicator.label": "กำลังโหลด…",
-  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+  "regeneration_indicator.sublabel": "กำลังเตรียมฟีดหน้าแรกของคุณ!",
   "relative_time.days": "{number} วัน",
   "relative_time.hours": "{number} ชั่วโมง",
   "relative_time.just_now": "ตอนนี้",
@@ -299,17 +299,17 @@
   "relative_time.seconds": "{number} วินาที",
   "reply_indicator.cancel": "ยกเลิก",
   "report.forward": "ส่งต่อไปยัง {target}",
-  "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
-  "report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
+  "report.forward_hint": "บัญชีมาจากเซิร์ฟเวอร์อื่น ส่งสำเนาของรายงานที่ไม่ระบุตัวตนไปที่นั่นด้วย?",
+  "report.hint": "จะส่งรายงานไปยังผู้ควบคุมเซิร์ฟเวอร์ของคุณ คุณสามารถให้คำอธิบายเหตุผลที่คุณรายงานบัญชีนี้ด้านล่าง:",
   "report.placeholder": "ความคิดเห็นเพิ่มเติม",
   "report.submit": "ส่ง",
   "report.target": "กำลังรายงาน {target}",
   "search.placeholder": "ค้นหา",
   "search_popout.search_format": "รูปแบบการค้นหาขั้นสูง",
-  "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+  "search_popout.tips.full_text": "ข้อความแบบง่ายส่งคืนสถานะที่คุณได้เขียน ชื่นชอบ ดัน หรือได้รับการกล่าวถึง ตลอดจนชื่อผู้ใช้, ชื่อที่แสดง และแฮชแท็กที่ตรงกัน",
   "search_popout.tips.hashtag": "แฮชแท็ก",
   "search_popout.tips.status": "สถานะ",
-  "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+  "search_popout.tips.text": "ข้อความแบบง่ายส่งคืนชื่อที่แสดง, ชื่อผู้ใช้ และแฮชแท็กที่ตรงกัน",
   "search_popout.tips.user": "ผู้ใช้",
   "search_results.accounts": "ผู้คน",
   "search_results.hashtags": "แฮชแท็ก",
@@ -324,7 +324,7 @@
   "status.delete": "ลบ",
   "status.detailed_status": "มุมมองการสนทนาโดยละเอียด",
   "status.direct": "ส่งข้อความโดยตรงถึง @{name}",
-  "status.embed": "Embed",
+  "status.embed": "ฝัง",
   "status.favourite": "ชื่นชอบ",
   "status.filtered": "กรองอยู่",
   "status.load_more": "โหลดเพิ่มเติม",
@@ -340,7 +340,7 @@
   "status.reblog": "ดัน",
   "status.reblog_private": "ดันไปยังผู้ชมดั้งเดิม",
   "status.reblogged_by": "{name} ได้ดัน",
-  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
+  "status.reblogs.empty": "ยังไม่มีใครดันโพสต์นี้ เมื่อใครสักคนดัน เขาจะปรากฏที่นี่",
   "status.redraft": "ลบแล้วร่างใหม่",
   "status.reply": "ตอบกลับ",
   "status.replyAll": "ตอบกลับกระทู้",
@@ -364,15 +364,15 @@
   "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
   "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
   "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
-  "time_remaining.moments": "Moments remaining",
+  "time_remaining.moments": "ช่วงเวลาที่เหลือ",
   "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
   "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
   "ui.beforeunload": "แบบร่างของคุณจะหายไปหากคุณออกจาก Mastodon",
   "upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด",
   "upload_button.label": "เพิ่มสื่อ (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "เกินขีดจำกัดการอัปโหลดไฟล์",
-  "upload_error.poll": "File upload not allowed with polls.",
-  "upload_form.description": "Describe for the visually impaired",
+  "upload_error.poll": "ไม่อนุญาตให้อัปโหลดไฟล์กับการลงคะแนน",
+  "upload_form.description": "อธิบายสำหรับผู้บกพร่องทางการมองเห็น",
   "upload_form.focus": "ตัวอย่างการเปลี่ยนแปลง",
   "upload_form.undo": "ลบ",
   "upload_progress.label": "กำลังอัปโหลด...",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 785419eae..05c29f16e 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -29,7 +29,7 @@
   "account.requested": "正在等待对方同意。点击以取消发送关注请求",
   "account.share": "分享 @{name} 的个人资料",
   "account.show_reblogs": "显示来自 @{name} 的转嘟",
-  "account.unblock": "不再屏蔽 @{name}",
+  "account.unblock": "解除屏蔽 @{name}",
   "account.unblock_domain": "不再隐藏来自 {domain} 的内容",
   "account.unendorse": "不在个人资料中推荐此用户",
   "account.unfollow": "取消关注",
@@ -98,7 +98,7 @@
   "confirmations.redraft.confirm": "删除并重新编辑",
   "confirmations.redraft.message": "你确定要删除这条嘟文并重新编辑它吗?所有相关的转嘟和收藏都会被清除,回复将会被孤立。",
   "confirmations.reply.confirm": "回复",
-  "confirmations.reply.message": "回复此消息会覆盖掉当前正在编辑的消息。确定继续吗?",
+  "confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?",
   "confirmations.unfollow.confirm": "取消关注",
   "confirmations.unfollow.message": "你确定要取消关注 {name} 吗?",
   "embed.instructions": "要在你的网站上嵌入这条嘟文,请复制以下代码。",
@@ -175,7 +175,7 @@
   "introduction.interactions.reply.text": "你可以向其他人回复,这些回复会像对话一样串在一起。",
   "introduction.welcome.action": "让我们开始吧!",
   "introduction.welcome.headline": "首先",
-  "introduction.welcome.text": "欢迎来到联邦!稍后,您将可以广播消息冰河您的朋友交流,这些消息将穿越于联邦中的各式服务器。但是这台服务器,{domain},是特殊的——它保存了你的个人资料,所以请记住它的名字。",
+  "introduction.welcome.text": "欢迎来到联邦!稍后,您将可以广播消息并和您的朋友交流,这些消息将穿越于联邦中的各式服务器。但是这台服务器,{domain},是特殊的——它保存了你的个人资料,所以请记住它的名字。",
   "keyboard_shortcuts.back": "返回上一页",
   "keyboard_shortcuts.blocked": "打开被屏蔽用户列表",
   "keyboard_shortcuts.boost": "转嘟",
@@ -187,12 +187,12 @@
   "keyboard_shortcuts.enter": "展开嘟文",
   "keyboard_shortcuts.favourite": "收藏嘟文",
   "keyboard_shortcuts.favourites": "打开收藏列表",
-  "keyboard_shortcuts.federated": "打开跨站时间线",
+  "keyboard_shortcuts.federated": "打开跨站时间轴",
   "keyboard_shortcuts.heading": "快捷键列表",
-  "keyboard_shortcuts.home": "打开主页时间线",
+  "keyboard_shortcuts.home": "打开主页时间轴",
   "keyboard_shortcuts.hotkey": "快捷键",
   "keyboard_shortcuts.legend": "显示此列表",
-  "keyboard_shortcuts.local": "打开本站时间线",
+  "keyboard_shortcuts.local": "打开本站时间轴",
   "keyboard_shortcuts.mention": "提及嘟文作者",
   "keyboard_shortcuts.muted": "打开屏蔽用户列表",
   "keyboard_shortcuts.my_profile": "打开你的个人资料",
@@ -253,11 +253,11 @@
   "notification.follow": "{name} 开始关注你",
   "notification.mention": "{name} 提及你",
   "notification.poll": "你参与的一个投票已经结束",
-  "notification.reblog": "{name} 转嘟了你的嘟文",
+  "notification.reblog": "{name} 转了你的嘟文",
   "notifications.clear": "清空通知列表",
   "notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
   "notifications.column_settings.alert": "桌面通知",
-  "notifications.column_settings.favourite": "当你的嘟文被收藏时:",
+  "notifications.column_settings.favourite": "你的嘟文被收藏时:",
   "notifications.column_settings.filter_bar.advanced": "显示所有类别",
   "notifications.column_settings.filter_bar.category": "快速过滤栏",
   "notifications.column_settings.filter_bar.show": "显示",
@@ -300,7 +300,7 @@
   "reply_indicator.cancel": "取消",
   "report.forward": "发送举报至 {target}",
   "report.forward_hint": "这名用户来自另一个服务器。是否要向那个服务器发送一条匿名的举报?",
-  "report.hint": "举报将会发送给你所在服务器的监察员。你可以在下面填写举报这个用户的理由:",
+  "report.hint": "举报将会发送给你所在服务器的监察员。你可以在下面填写举报该用户的理由:",
   "report.placeholder": "附言",
   "report.submit": "提交",
   "report.target": "举报 {target}",
diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js
index 70f08a8eb..ff6c7fdfb 100644
--- a/app/javascript/mastodon/selectors/index.js
+++ b/app/javascript/mastodon/selectors/index.js
@@ -84,8 +84,13 @@ export const makeGetStatus = () => {
         statusReblog = null;
       }
 
-      const regex    = (accountReblog || accountBase).get('id') !== me && regexFromFilters(filters);
-      const filtered = regex && regex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index'));
+      const dropRegex = (accountReblog || accountBase).get('id') !== me && regexFromFilters(filters.filter(filter => filter.get('irreversible')));
+      if (dropRegex && dropRegex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index'))) {
+        return null;
+      }
+
+      const regex     = (accountReblog || accountBase).get('id') !== me && regexFromFilters(filters);
+      const filtered  = regex && regex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index'));
 
       return statusBase.withMutations(map => {
         map.set('reblog', statusReblog);
diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb
index 8a2828bbf..4c11ca291 100644
--- a/app/lib/formatter.rb
+++ b/app/lib/formatter.rb
@@ -59,11 +59,10 @@ class Formatter
     html = "RT @#{prepend_reblog} #{html}" if prepend_reblog
     html = format_markdown(html) if status.content_type == 'text/markdown'
     html = encode_and_link_urls(html, linkable_accounts, keep_html: %w(text/markdown text/html).include?(status.content_type))
+    html = reformat(html) if %w(text/markdown text/html).include?(status.content_type)
     html = encode_custom_emojis(html, status.emojis, options[:autoplay]) if options[:custom_emojify]
 
-    if %w(text/markdown text/html).include?(status.content_type)
-      html = reformat(html)
-    else
+    unless %w(text/markdown text/html).include?(status.content_type)
       html = simple_format(html, {}, sanitize: false)
       html = html.delete("\n")
     end
diff --git a/app/models/user.rb b/app/models/user.rb
index c24741ff1..fcfb79612 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -88,7 +88,7 @@ class User < ApplicationRecord
   scope :confirmed, -> { where.not(confirmed_at: nil) }
   scope :enabled, -> { where(disabled: false) }
   scope :inactive, -> { where(arel_table[:current_sign_in_at].lt(ACTIVE_DURATION.ago)) }
-  scope :active, -> { confirmed.where(arel_table[:current_sign_in_at].gteq(ACTIVE_DURATION.ago)).joins(:account).where.not(accounts: { suspended_at: nil }) }
+  scope :active, -> { confirmed.where(arel_table[:current_sign_in_at].gteq(ACTIVE_DURATION.ago)).joins(:account).where(accounts: { suspended_at: nil }) }
   scope :matches_email, ->(value) { where(arel_table[:email].matches("#{value}%")) }
   scope :emailable, -> { confirmed.enabled.joins(:account).merge(Account.searchable) }