about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/admin/accounts_controller.rb2
-rw-r--r--app/controllers/admin/instances_controller.rb2
-rw-r--r--app/controllers/api/v1/admin/accounts_controller.rb2
-rw-r--r--app/controllers/api/v1/filters_controller.rb6
-rw-r--r--app/javascript/flavours/glitch/actions/compose.js3
-rw-r--r--app/javascript/flavours/glitch/actions/statuses.js41
-rw-r--r--app/javascript/flavours/glitch/components/status.js6
-rw-r--r--app/javascript/flavours/glitch/components/status_content.js68
-rw-r--r--app/javascript/flavours/glitch/containers/status_container.js12
-rw-r--r--app/javascript/flavours/glitch/features/compose/components/action_bar.js66
-rw-r--r--app/javascript/flavours/glitch/features/compose/components/navigation_bar.js14
-rw-r--r--app/javascript/flavours/glitch/features/compose/containers/navigation_container.js21
-rw-r--r--app/javascript/flavours/glitch/features/status/components/detailed_status.js7
-rw-r--r--app/javascript/flavours/glitch/features/status/index.js15
-rw-r--r--app/javascript/flavours/glitch/features/ui/components/header.js31
-rw-r--r--app/javascript/flavours/glitch/initial_state.js2
-rw-r--r--app/javascript/flavours/glitch/locales/cs.js175
-rw-r--r--app/javascript/flavours/glitch/names.yml8
-rw-r--r--app/javascript/flavours/glitch/reducers/compose.js1
-rw-r--r--app/javascript/flavours/glitch/reducers/status_lists.js30
-rw-r--r--app/javascript/flavours/glitch/reducers/statuses.js6
-rw-r--r--app/javascript/flavours/glitch/styles/components/columns.scss6
-rw-r--r--app/javascript/flavours/glitch/styles/components/drawer.scss2
-rw-r--r--app/javascript/flavours/glitch/styles/components/index.scss2
-rw-r--r--app/javascript/flavours/glitch/styles/components/modal.scss3
-rw-r--r--app/javascript/flavours/glitch/styles/components/single_column.scss2
-rw-r--r--app/javascript/flavours/glitch/styles/components/status.scss10
-rw-r--r--app/javascript/flavours/glitch/styles/statuses.scss2
-rw-r--r--app/javascript/flavours/vanilla/names.yml8
-rw-r--r--app/javascript/mastodon/features/status/index.js4
-rw-r--r--app/javascript/mastodon/features/ui/components/header.js31
-rw-r--r--app/javascript/mastodon/locales/ast.json136
-rw-r--r--app/javascript/mastodon/locales/be.json22
-rw-r--r--app/javascript/mastodon/locales/bg.json66
-rw-r--r--app/javascript/mastodon/locales/br.json12
-rw-r--r--app/javascript/mastodon/locales/ca.json20
-rw-r--r--app/javascript/mastodon/locales/cs.json102
-rw-r--r--app/javascript/mastodon/locales/cy.json326
-rw-r--r--app/javascript/mastodon/locales/da.json88
-rw-r--r--app/javascript/mastodon/locales/de.json244
-rw-r--r--app/javascript/mastodon/locales/defaultMessages.json8
-rw-r--r--app/javascript/mastodon/locales/el.json10
-rw-r--r--app/javascript/mastodon/locales/en-GB.json14
-rw-r--r--app/javascript/mastodon/locales/eo.json44
-rw-r--r--app/javascript/mastodon/locales/es-AR.json2
-rw-r--r--app/javascript/mastodon/locales/es-MX.json106
-rw-r--r--app/javascript/mastodon/locales/es.json56
-rw-r--r--app/javascript/mastodon/locales/et.json52
-rw-r--r--app/javascript/mastodon/locales/fa.json14
-rw-r--r--app/javascript/mastodon/locales/fi.json62
-rw-r--r--app/javascript/mastodon/locales/fr.json4
-rw-r--r--app/javascript/mastodon/locales/gd.json4
-rw-r--r--app/javascript/mastodon/locales/gl.json26
-rw-r--r--app/javascript/mastodon/locales/hi.json94
-rw-r--r--app/javascript/mastodon/locales/is.json12
-rw-r--r--app/javascript/mastodon/locales/kk.json4
-rw-r--r--app/javascript/mastodon/locales/ko.json12
-rw-r--r--app/javascript/mastodon/locales/ku.json20
-rw-r--r--app/javascript/mastodon/locales/lt.json16
-rw-r--r--app/javascript/mastodon/locales/lv.json294
-rw-r--r--app/javascript/mastodon/locales/ml.json46
-rw-r--r--app/javascript/mastodon/locales/ms.json52
-rw-r--r--app/javascript/mastodon/locales/oc.json2
-rw-r--r--app/javascript/mastodon/locales/ro.json4
-rw-r--r--app/javascript/mastodon/locales/ru.json2
-rw-r--r--app/javascript/mastodon/locales/sco.json54
-rw-r--r--app/javascript/mastodon/locales/sk.json94
-rw-r--r--app/javascript/mastodon/locales/sr-Latn.json1114
-rw-r--r--app/javascript/mastodon/locales/sr.json622
-rw-r--r--app/javascript/mastodon/locales/th.json12
-rw-r--r--app/javascript/mastodon/locales/uk.json32
-rw-r--r--app/javascript/mastodon/locales/ur.json32
-rw-r--r--app/javascript/mastodon/locales/vi.json6
-rw-r--r--app/javascript/mastodon/locales/whitelist_de.json3
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json2
-rw-r--r--app/javascript/mastodon/locales/zh-HK.json10
-rw-r--r--app/javascript/mastodon/locales/zh-TW.json8
-rw-r--r--app/javascript/mastodon/reducers/status_lists.js30
-rw-r--r--app/javascript/mastodon/reducers/user_lists.js2
-rw-r--r--app/javascript/skins/glitch/contrast/names.yml4
-rw-r--r--app/javascript/skins/glitch/mastodon-light/names.yml4
-rw-r--r--app/javascript/skins/vanilla/contrast/names.yml4
-rw-r--r--app/javascript/skins/vanilla/mastodon-light/names.yml4
-rw-r--r--app/javascript/skins/vanilla/win95/names.yml4
-rw-r--r--app/javascript/styles/mastodon/components.scss11
-rw-r--r--app/lib/activitypub/activity/create.rb2
-rw-r--r--app/lib/activitypub/activity/update.rb4
-rw-r--r--app/lib/advanced_text_formatter.rb80
-rw-r--r--app/lib/delivery_failure_tracker.rb9
-rw-r--r--app/models/account_migration.rb2
-rw-r--r--app/models/concerns/domain_materializable.rb15
-rw-r--r--app/models/custom_filter.rb2
-rw-r--r--app/models/form/redirect.rb2
-rw-r--r--app/models/user.rb2
-rw-r--r--app/services/activitypub/fetch_featured_collection_service.rb4
-rw-r--r--app/services/activitypub/fetch_remote_account_service.rb2
-rw-r--r--app/services/activitypub/fetch_remote_actor_service.rb4
-rw-r--r--app/services/activitypub/fetch_remote_status_service.rb8
-rw-r--r--app/services/activitypub/process_account_service.rb25
-rw-r--r--app/services/activitypub/process_status_update_service.rb5
-rw-r--r--app/views/admin/settings/discovery/show.html.haml3
101 files changed, 2671 insertions, 2114 deletions
diff --git a/app/controllers/admin/accounts_controller.rb b/app/controllers/admin/accounts_controller.rb
index 40bf685c5..9beb8fde6 100644
--- a/app/controllers/admin/accounts_controller.rb
+++ b/app/controllers/admin/accounts_controller.rb
@@ -55,12 +55,14 @@ module Admin
     def approve
       authorize @account.user, :approve?
       @account.user.approve!
+      log_action :approve, @account.user
       redirect_to admin_accounts_path(status: 'pending'), notice: I18n.t('admin.accounts.approved_msg', username: @account.acct)
     end
 
     def reject
       authorize @account.user, :reject?
       DeleteAccountService.new.call(@account, reserve_email: false, reserve_username: false)
+      log_action :reject, @account.user
       redirect_to admin_accounts_path(status: 'pending'), notice: I18n.t('admin.accounts.rejected_msg', username: @account.acct)
     end
 
diff --git a/app/controllers/admin/instances_controller.rb b/app/controllers/admin/instances_controller.rb
index 5c82331de..7c44e88b7 100644
--- a/app/controllers/admin/instances_controller.rb
+++ b/app/controllers/admin/instances_controller.rb
@@ -57,7 +57,7 @@ module Admin
     end
 
     def preload_delivery_failures!
-      warning_domains_map = DeliveryFailureTracker.warning_domains_map
+      warning_domains_map = DeliveryFailureTracker.warning_domains_map(@instances.map(&:domain))
 
       @instances.each do |instance|
         instance.failure_days = warning_domains_map[instance.domain]
diff --git a/app/controllers/api/v1/admin/accounts_controller.rb b/app/controllers/api/v1/admin/accounts_controller.rb
index ae7f7d076..f48300072 100644
--- a/app/controllers/api/v1/admin/accounts_controller.rb
+++ b/app/controllers/api/v1/admin/accounts_controller.rb
@@ -54,12 +54,14 @@ class Api::V1::Admin::AccountsController < Api::BaseController
   def approve
     authorize @account.user, :approve?
     @account.user.approve!
+    log_action :approve, @account.user
     render json: @account, serializer: REST::Admin::AccountSerializer
   end
 
   def reject
     authorize @account.user, :reject?
     DeleteAccountService.new.call(@account, reserve_email: false, reserve_username: false)
+    log_action :reject, @account.user
     render_empty
   end
 
diff --git a/app/controllers/api/v1/filters_controller.rb b/app/controllers/api/v1/filters_controller.rb
index 149139b40..772791b25 100644
--- a/app/controllers/api/v1/filters_controller.rb
+++ b/app/controllers/api/v1/filters_controller.rb
@@ -13,7 +13,7 @@ class Api::V1::FiltersController < Api::BaseController
 
   def create
     ApplicationRecord.transaction do
-      filter_category = current_account.custom_filters.create!(resource_params)
+      filter_category = current_account.custom_filters.create!(filter_params)
       @filter = filter_category.keywords.create!(keyword_params)
     end
 
@@ -52,11 +52,11 @@ class Api::V1::FiltersController < Api::BaseController
   end
 
   def resource_params
-    params.permit(:phrase, :expires_in, :irreversible, context: [])
+    params.permit(:phrase, :expires_in, :irreversible, :whole_word, context: [])
   end
 
   def filter_params
-    resource_params.slice(:expires_in, :irreversible, :context)
+    resource_params.slice(:phrase, :expires_in, :irreversible, :context)
   end
 
   def keyword_params
diff --git a/app/javascript/flavours/glitch/actions/compose.js b/app/javascript/flavours/glitch/actions/compose.js
index 54909b56e..7a4af4cda 100644
--- a/app/javascript/flavours/glitch/actions/compose.js
+++ b/app/javascript/flavours/glitch/actions/compose.js
@@ -93,12 +93,13 @@ export const ensureComposeIsVisible = (getState, routerHistory) => {
   }
 };
 
-export function setComposeToStatus(status, text, spoiler_text) {
+export function setComposeToStatus(status, text, spoiler_text, content_type) {
   return{
     type: COMPOSE_SET_STATUS,
     status,
     text,
     spoiler_text,
+    content_type,
   };
 };
 
diff --git a/app/javascript/flavours/glitch/actions/statuses.js b/app/javascript/flavours/glitch/actions/statuses.js
index 5930b7a16..efb4cc33b 100644
--- a/app/javascript/flavours/glitch/actions/statuses.js
+++ b/app/javascript/flavours/glitch/actions/statuses.js
@@ -34,6 +34,11 @@ export const STATUS_FETCH_SOURCE_REQUEST = 'STATUS_FETCH_SOURCE_REQUEST';
 export const STATUS_FETCH_SOURCE_SUCCESS = 'STATUS_FETCH_SOURCE_SUCCESS';
 export const STATUS_FETCH_SOURCE_FAIL    = 'STATUS_FETCH_SOURCE_FAIL';
 
+export const STATUS_TRANSLATE_REQUEST = 'STATUS_TRANSLATE_REQUEST';
+export const STATUS_TRANSLATE_SUCCESS = 'STATUS_TRANSLATE_SUCCESS';
+export const STATUS_TRANSLATE_FAIL    = 'STATUS_TRANSLATE_FAIL';
+export const STATUS_TRANSLATE_UNDO    = 'STATUS_TRANSLATE_UNDO';
+
 export function fetchStatusRequest(id, skipLoading) {
   return {
     type: STATUS_FETCH_REQUEST,
@@ -101,7 +106,7 @@ export const editStatus = (id, routerHistory) => (dispatch, getState) => {
   api(getState).get(`/api/v1/statuses/${id}/source`).then(response => {
     dispatch(fetchStatusSourceSuccess());
     ensureComposeIsVisible(getState, routerHistory);
-    dispatch(setComposeToStatus(status, response.data.text, response.data.spoiler_text));
+    dispatch(setComposeToStatus(status, response.data.text, response.data.spoiler_text, response.data.content_type));
   }).catch(error => {
     dispatch(fetchStatusSourceFail(error));
   });
@@ -310,4 +315,36 @@ export function toggleStatusCollapse(id, isCollapsed) {
     id,
     isCollapsed,
   };
-}
+};
+
+export const translateStatus = id => (dispatch, getState) => {
+  dispatch(translateStatusRequest(id));
+
+  api(getState).post(`/api/v1/statuses/${id}/translate`).then(response => {
+    dispatch(translateStatusSuccess(id, response.data));
+  }).catch(error => {
+    dispatch(translateStatusFail(id, error));
+  });
+};
+
+export const translateStatusRequest = id => ({
+  type: STATUS_TRANSLATE_REQUEST,
+  id,
+});
+
+export const translateStatusSuccess = (id, translation) => ({
+  type: STATUS_TRANSLATE_SUCCESS,
+  id,
+  translation,
+});
+
+export const translateStatusFail = (id, error) => ({
+  type: STATUS_TRANSLATE_FAIL,
+  id,
+  error,
+});
+
+export const undoStatusTranslation = id => ({
+  type: STATUS_TRANSLATE_UNDO,
+  id,
+});
diff --git a/app/javascript/flavours/glitch/components/status.js b/app/javascript/flavours/glitch/components/status.js
index 800832dc8..4041b4819 100644
--- a/app/javascript/flavours/glitch/components/status.js
+++ b/app/javascript/flavours/glitch/components/status.js
@@ -83,6 +83,7 @@ class Status extends ImmutablePureComponent {
     onEmbed: PropTypes.func,
     onHeightChange: PropTypes.func,
     onToggleHidden: PropTypes.func,
+    onTranslate: PropTypes.func,
     onInteractionModal: PropTypes.func,
     muted: PropTypes.bool,
     hidden: PropTypes.bool,
@@ -472,6 +473,10 @@ class Status extends ImmutablePureComponent {
     this.node = c;
   }
 
+  handleTranslate = () => {
+    this.props.onTranslate(this.props.status);
+  }
+
   renderLoadingMediaGallery () {
     return <div className='media-gallery' style={{ height: '110px' }} />;
   }
@@ -788,6 +793,7 @@ class Status extends ImmutablePureComponent {
             mediaIcons={contentMediaIcons}
             expanded={isExpanded}
             onExpandedToggle={this.handleExpandedToggle}
+            onTranslate={this.handleTranslate}
             parseClick={parseClick}
             disabled={!router}
             tagLinks={settings.get('tag_misleading_links')}
diff --git a/app/javascript/flavours/glitch/components/status_content.js b/app/javascript/flavours/glitch/components/status_content.js
index c618cedca..c59f42220 100644
--- a/app/javascript/flavours/glitch/components/status_content.js
+++ b/app/javascript/flavours/glitch/components/status_content.js
@@ -1,11 +1,11 @@
 import React from 'react';
 import ImmutablePropTypes from 'react-immutable-proptypes';
 import PropTypes from 'prop-types';
-import { FormattedMessage } from 'react-intl';
+import { FormattedMessage, injectIntl } from 'react-intl';
 import Permalink from './permalink';
 import classnames from 'classnames';
 import Icon from 'flavours/glitch/components/icon';
-import { autoPlayGif } from 'flavours/glitch/initial_state';
+import { autoPlayGif, languages as preloadedLanguages, translationEnabled } from 'flavours/glitch/initial_state';
 import { decode as decodeIDNA } from 'flavours/glitch/utils/idna';
 
 const textMatchesTarget = (text, origin, host) => {
@@ -62,13 +62,56 @@ const isLinkMisleading = (link) => {
   return !(textMatchesTarget(text, origin, host) || textMatchesTarget(text.toLowerCase(), origin, host));
 };
 
-export default class StatusContent extends React.PureComponent {
+class TranslateButton extends React.PureComponent {
+
+  static propTypes = {
+    translation: ImmutablePropTypes.map,
+    onClick: PropTypes.func,
+  };
+
+  render () {
+    const { translation, onClick } = this.props;
+
+    if (translation) {
+      const language     = preloadedLanguages.find(lang => lang[0] === translation.get('detected_source_language'));
+      const languageName = language ? language[2] : translation.get('detected_source_language');
+      const provider     = translation.get('provider');
+
+      return (
+        <div className='translate-button'>
+          <div className='translate-button__meta'>
+            <FormattedMessage id='status.translated_from_with' defaultMessage='Translated from {lang} using {provider}' values={{ lang: languageName, provider }} />
+          </div>
+
+          <button className='link-button' onClick={onClick}>
+            <FormattedMessage id='status.show_original' defaultMessage='Show original' />
+          </button>
+        </div>
+      );
+    }
+
+    return (
+      <button className='status__content__read-more-button' onClick={onClick}>
+        <FormattedMessage id='status.translate' defaultMessage='Translate' />
+      </button>
+    );
+  }
+
+}
+
+export default @injectIntl
+class StatusContent extends React.PureComponent {
+
+  static contextTypes = {
+    identity: PropTypes.object,
+  };
 
   static propTypes = {
     status: ImmutablePropTypes.map.isRequired,
     expanded: PropTypes.bool,
     collapsed: PropTypes.bool,
     onExpandedToggle: PropTypes.func,
+    onTranslate: PropTypes.func,
     media: PropTypes.node,
     extraMedia: PropTypes.node,
     mediaIcons: PropTypes.arrayOf(PropTypes.string),
@@ -77,6 +120,7 @@ export default class StatusContent extends React.PureComponent {
     onUpdate: PropTypes.func,
     tagLinks: PropTypes.bool,
     rewriteMentions: PropTypes.string,
+    intl: PropTypes.object,
   };
 
   static defaultProps = {
@@ -249,6 +293,10 @@ export default class StatusContent extends React.PureComponent {
     }
   }
 
+  handleTranslate = () => {
+    this.props.onTranslate();
+  }
+
   setContentsRef = (c) => {
     this.contentsNode = c;
   }
@@ -263,18 +311,24 @@ export default class StatusContent extends React.PureComponent {
       disabled,
       tagLinks,
       rewriteMentions,
+      intl,
     } = this.props;
 
     const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden;
+    const renderTranslate = translationEnabled && this.context.identity.signedIn && this.props.onTranslate && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && status.get('language') !== null && intl.locale !== status.get('language');
 
-    const content = { __html: status.get('contentHtml') };
+    const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') };
     const spoilerContent = { __html: status.get('spoilerHtml') };
-    const lang = status.get('language');
+    const lang = status.get('translation') ? intl.locale : status.get('language');
     const classNames = classnames('status__content', {
       'status__content--with-action': parseClick && !disabled,
       'status__content--with-spoiler': status.get('spoiler_text').length > 0,
     });
 
+    const translateButton = renderTranslate && (
+      <TranslateButton onClick={this.handleTranslate} translation={status.get('translation')} />
+    );
+
     if (status.get('spoiler_text').length > 0) {
       let mentionsPlaceholder = '';
 
@@ -350,11 +404,11 @@ export default class StatusContent extends React.PureComponent {
               onMouseLeave={this.handleMouseLeave}
               lang={lang}
             />
+            {!hidden && translateButton}
             {media}
           </div>
 
           {extraMedia}
-
         </div>
       );
     } else if (parseClick) {
@@ -375,6 +429,7 @@ export default class StatusContent extends React.PureComponent {
             onMouseLeave={this.handleMouseLeave}
             lang={lang}
           />
+          {translateButton}
           {media}
           {extraMedia}
         </div>
@@ -395,6 +450,7 @@ export default class StatusContent extends React.PureComponent {
             onMouseLeave={this.handleMouseLeave}
             lang={lang}
           />
+          {translateButton}
           {media}
           {extraMedia}
         </div>
diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js
index c12b2e614..947573fc7 100644
--- a/app/javascript/flavours/glitch/containers/status_container.js
+++ b/app/javascript/flavours/glitch/containers/status_container.js
@@ -23,7 +23,9 @@ import {
   deleteStatus,
   hideStatus,
   revealStatus,
-  editStatus
+  editStatus,
+  translateStatus,
+  undoStatusTranslation,
 } from 'flavours/glitch/actions/statuses';
 import {
   initAddFilter,
@@ -187,6 +189,14 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({
     dispatch(editStatus(status.get('id'), history));
   },
 
+  onTranslate (status) {
+    if (status.get('translation')) {
+      dispatch(undoStatusTranslation(status.get('id')));
+    } else {
+      dispatch(translateStatus(status.get('id')));
+    }
+  },
+
   onDirect (account, router) {
     dispatch(directCompose(account, router));
   },
diff --git a/app/javascript/flavours/glitch/features/compose/components/action_bar.js b/app/javascript/flavours/glitch/features/compose/components/action_bar.js
new file mode 100644
index 000000000..267c0ba69
--- /dev/null
+++ b/app/javascript/flavours/glitch/features/compose/components/action_bar.js
@@ -0,0 +1,66 @@
+import React from 'react';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import PropTypes from 'prop-types';
+import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
+import { defineMessages, injectIntl } from 'react-intl';
+import { preferencesLink, profileLink } from 'flavours/glitch/utils/backend_links';
+
+const messages = defineMessages({
+  edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' },
+  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
+  preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
+  follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
+  favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
+  lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
+  blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
+  domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },
+  mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
+  filters: { id: 'navigation_bar.filters', defaultMessage: 'Muted words' },
+  logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
+  bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' },
+});
+
+export default @injectIntl
+class ActionBar extends React.PureComponent {
+
+  static propTypes = {
+    account: ImmutablePropTypes.map.isRequired,
+    onLogout: PropTypes.func.isRequired,
+    intl: PropTypes.object.isRequired,
+  };
+
+  handleLogout = () => {
+    this.props.onLogout();
+  }
+
+  render () {
+    const { intl } = this.props;
+
+    let menu = [];
+
+    menu.push({ text: intl.formatMessage(messages.edit_profile), href: profileLink });
+    menu.push({ text: intl.formatMessage(messages.preferences), href: preferencesLink });
+    menu.push({ text: intl.formatMessage(messages.pins), to: '/pinned' });
+    menu.push(null);
+    menu.push({ text: intl.formatMessage(messages.follow_requests), to: '/follow_requests' });
+    menu.push({ text: intl.formatMessage(messages.favourites), to: '/favourites' });
+    menu.push({ text: intl.formatMessage(messages.bookmarks), to: '/bookmarks' });
+    menu.push({ text: intl.formatMessage(messages.lists), to: '/lists' });
+    menu.push(null);
+    menu.push({ text: intl.formatMessage(messages.mutes), to: '/mutes' });
+    menu.push({ text: intl.formatMessage(messages.blocks), to: '/blocks' });
+    menu.push({ text: intl.formatMessage(messages.domain_blocks), to: '/domain_blocks' });
+    menu.push({ text: intl.formatMessage(messages.filters), href: '/filters' });
+    menu.push(null);
+    menu.push({ text: intl.formatMessage(messages.logout), action: this.handleLogout });
+
+    return (
+      <div className='compose__action-bar'>
+        <div className='compose__action-bar-dropdown'>
+          <DropdownMenuContainer items={menu} icon='ellipsis-v' size={18} direction='right' />
+        </div>
+      </div>
+    );
+  }
+
+}
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 ba73ed553..1a68f1e12 100644
--- a/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js
+++ b/app/javascript/flavours/glitch/features/compose/components/navigation_bar.js
@@ -1,5 +1,7 @@
 import React from 'react';
+import PropTypes from 'prop-types';
 import ImmutablePropTypes from 'react-immutable-proptypes';
+import ActionBar from './action_bar';
 import Avatar from 'flavours/glitch/components/avatar';
 import Permalink from 'flavours/glitch/components/permalink';
 import { FormattedMessage } from 'react-intl';
@@ -10,11 +12,12 @@ export default class NavigationBar extends ImmutablePureComponent {
 
   static propTypes = {
     account: ImmutablePropTypes.map.isRequired,
+    onLogout: PropTypes.func.isRequired,
   };
 
   render () {
     return (
-      <div className='drawer--account'>
+      <div className='navigation-bar'>
         <Permalink className='avatar' href={this.props.account.get('url')} to={`/@${this.props.account.get('acct')}`}>
           <span style={{ display: 'none' }}>{this.props.account.get('acct')}</span>
           <Avatar account={this.props.account} size={48} />
@@ -28,11 +31,16 @@ export default class NavigationBar extends ImmutablePureComponent {
           { profileLink !== undefined && (
             <a
               className='edit'
-              href={ profileLink }
+              href={profileLink}
             ><FormattedMessage id='navigation_bar.edit_profile' defaultMessage='Edit profile' /></a>
           )}
         </div>
+
+        <div className='navigation-bar__actions'>
+          <ActionBar account={this.props.account} onLogout={this.props.onLogout} />
+        </div>
       </div>
     );
-  };
+  }
+
 }
diff --git a/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js b/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js
index 0e1400261..89036adcd 100644
--- a/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js
+++ b/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js
@@ -1,11 +1,30 @@
 import { connect }   from 'react-redux';
+import { defineMessages, injectIntl } from 'react-intl';
 import NavigationBar from '../components/navigation_bar';
+import { logOut } from 'flavours/glitch/utils/log_out';
+import { openModal } from 'flavours/glitch/actions/modal';
 import { me } from 'flavours/glitch/initial_state';
 
+const messages = defineMessages({
+  logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
+  logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },
+});
+
 const mapStateToProps = state => {
   return {
     account: state.getIn(['accounts', me]),
   };
 };
 
-export default connect(mapStateToProps)(NavigationBar);
+const mapDispatchToProps = (dispatch, { intl }) => ({
+  onLogout () {
+    dispatch(openModal('CONFIRM', {
+      message: intl.formatMessage(messages.logoutMessage),
+      confirm: intl.formatMessage(messages.logoutConfirm),
+      closeWhenConfirm: false,
+      onConfirm: () => logOut(),
+    }));
+  },
+});
+
+export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(NavigationBar));
diff --git a/app/javascript/flavours/glitch/features/status/components/detailed_status.js b/app/javascript/flavours/glitch/features/status/components/detailed_status.js
index 46770930f..7d2c2aace 100644
--- a/app/javascript/flavours/glitch/features/status/components/detailed_status.js
+++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.js
@@ -34,6 +34,7 @@ class DetailedStatus extends ImmutablePureComponent {
     onOpenMedia: PropTypes.func.isRequired,
     onOpenVideo: PropTypes.func.isRequired,
     onToggleHidden: PropTypes.func,
+    onTranslate: PropTypes.func.isRequired,
     expanded: PropTypes.bool,
     measureHeight: PropTypes.bool,
     onHeightChange: PropTypes.func,
@@ -112,6 +113,11 @@ class DetailedStatus extends ImmutablePureComponent {
     window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes');
   }
 
+  handleTranslate = () => {
+    const { onTranslate, status } = this.props;
+    onTranslate(status);
+  }
+
   render () {
     const status = (this.props.status && this.props.status.get('reblog')) ? this.props.status.get('reblog') : this.props.status;
     const { expanded, onToggleHidden, settings, usingPiP, intl } = this.props;
@@ -305,6 +311,7 @@ class DetailedStatus extends ImmutablePureComponent {
             expanded={expanded}
             collapsed={false}
             onExpandedToggle={onToggleHidden}
+            onTranslate={this.handleTranslate}
             parseClick={this.parseClick}
             onUpdate={this.handleChildUpdate}
             tagLinks={settings.get('tag_misleading_links')}
diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js
index aaa9c7928..e190652b0 100644
--- a/app/javascript/flavours/glitch/features/status/index.js
+++ b/app/javascript/flavours/glitch/features/status/index.js
@@ -33,7 +33,9 @@ import {
   deleteStatus,
   editStatus,
   hideStatus,
-  revealStatus
+  revealStatus,
+  translateStatus,
+  undoStatusTranslation,
 } from 'flavours/glitch/actions/statuses';
 import { initMuteModal } from 'flavours/glitch/actions/mutes';
 import { initBlockModal } from 'flavours/glitch/actions/blocks';
@@ -437,6 +439,16 @@ class Status extends ImmutablePureComponent {
     this.setState({ isExpanded: !isExpanded, threadExpanded: !isExpanded });
   }
 
+  handleTranslate = status => {
+    const { dispatch } = this.props;
+
+    if (status.get('translation')) {
+      dispatch(undoStatusTranslation(status.get('id')));
+    } else {
+      dispatch(translateStatus(status.get('id')));
+    }
+  }
+
   handleBlockClick = (status) => {
     const { dispatch } = this.props;
     const account = status.get('account');
@@ -666,6 +678,7 @@ class Status extends ImmutablePureComponent {
                   onOpenMedia={this.handleOpenMedia}
                   expanded={isExpanded}
                   onToggleHidden={this.handleToggleHidden}
+                  onTranslate={this.handleTranslate}
                   domain={domain}
                   showMedia={this.state.showMedia}
                   onToggleMediaVisibility={this.handleToggleMediaVisibility}
diff --git a/app/javascript/flavours/glitch/features/ui/components/header.js b/app/javascript/flavours/glitch/features/ui/components/header.js
index 891f7fc07..d9ad94961 100644
--- a/app/javascript/flavours/glitch/features/ui/components/header.js
+++ b/app/javascript/flavours/glitch/features/ui/components/header.js
@@ -7,6 +7,7 @@ import Avatar from 'flavours/glitch/components/avatar';
 import Permalink from 'flavours/glitch/components/permalink';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
+import { openModal } from 'flavours/glitch/actions/modal';
 
 const Account = connect(state => ({
   account: state.getIn(['accounts', me]),
@@ -16,7 +17,14 @@ const Account = connect(state => ({
   </Permalink>
 ));
 
-export default @withRouter
+const mapDispatchToProps = (dispatch) => ({
+  openClosedRegistrationsModal() {
+    dispatch(openModal('CLOSED_REGISTRATIONS'));
+  },
+});
+
+export default @connect(null, mapDispatchToProps)
+@withRouter
 class Header extends React.PureComponent {
 
   static contextTypes = {
@@ -24,12 +32,13 @@ class Header extends React.PureComponent {
   };
 
   static propTypes = {
+    openClosedRegistrationsModal: PropTypes.func,
     location: PropTypes.object,
   };
 
   render () {
     const { signedIn } = this.context.identity;
-    const { location } = this.props;
+    const { location, openClosedRegistrationsModal } = this.props;
 
     let content;
 
@@ -41,10 +50,26 @@ class Header extends React.PureComponent {
         </>
       );
     } else {
+      let signupButton;
+
+      if (registrationsOpen) {
+        signupButton = (
+          <a href='/auth/sign_up' className='button button-tertiary'>
+            <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+          </a>
+        );
+      } else {
+        signupButton = (
+          <button className='button button-tertiary' onClick={openClosedRegistrationsModal}>
+            <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+          </button>
+        );
+      }
+
       content = (
         <>
           <a href='/auth/sign_in' className='button'><FormattedMessage id='sign_in_banner.sign_in' defaultMessage='Sign in' /></a>
-          <a href={registrationsOpen ? '/auth/sign_up' : 'https://joinmastodon.org/servers'} className='button button-tertiary'><FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' /></a>
+          {signupButton}
         </>
       );
     }
diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js
index 5be177ced..bbf25c8a8 100644
--- a/app/javascript/flavours/glitch/initial_state.js
+++ b/app/javascript/flavours/glitch/initial_state.js
@@ -79,6 +79,7 @@
  * @property {boolean} use_blurhash
  * @property {boolean=} use_pending_items
  * @property {string} version
+ * @property {boolean} translation_enabled
  * @property {object} local_settings
  */
 
@@ -137,6 +138,7 @@ export const unfollowModal = getMeta('unfollow_modal');
 export const useBlurhash = getMeta('use_blurhash');
 export const usePendingItems = getMeta('use_pending_items');
 export const version = getMeta('version');
+export const translationEnabled = getMeta('translation_enabled');
 export const languages = initialState?.languages;
 
 // Glitch-soc-specific settings
diff --git a/app/javascript/flavours/glitch/locales/cs.js b/app/javascript/flavours/glitch/locales/cs.js
index ac7db0327..e789facb0 100644
--- a/app/javascript/flavours/glitch/locales/cs.js
+++ b/app/javascript/flavours/glitch/locales/cs.js
@@ -1,7 +1,180 @@
 import inherited from 'mastodon/locales/cs.json';
 
 const messages = {
-  //  No translations available.
+  'about.fork_disclaimer': 'Glitch-soc je svobodný software s otevřeným zdrojovým kódem založený na Mastodonu.',
+  'settings.layout_opts': 'Možnosti rozvržení',
+  'settings.layout': 'Rozložení:',
+  'layout.current_is': 'Nastavené rozložení je:',
+  'layout.auto': 'Automatické',
+  'layout.desktop': 'Desktop',
+  'layout.mobile': 'Mobil',
+  'layout.hint.auto': 'Vybrat rozložení automaticky v závislosti na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.',
+  'layout.hint.desktop': 'Použít vícesloupcové rozložení nezávisle na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.',
+  'layout.hint.single': 'Použít jednosloupcové rozložení nezávisle na nastavení “Povolit pokročilé webové rozhraní” a velikosti obrazovky.',
+  'navigation_bar.app_settings': 'Nastavení aplikace',
+  'navigation_bar.featured_users': 'Vybraní uživatelé',
+  'endorsed_accounts_editor.endorsed_accounts': 'Vybrané účty',
+  'navigation_bar.info': 'Rozšířené informace',
+  'navigation_bar.misc': 'Různé',
+  'navigation_bar.keyboard_shortcuts': 'Klávesové zkratky',
+  'getting_started.onboarding': 'Ukaž mi to tu', 
+  'onboarding.skip': 'Přeskočit',
+  'onboarding.next': 'Další',
+  'onboarding.done': 'Hotovo',
+  'onboarding.page_one.federation': '{domain} je \'instance\' Mastodonu. Mastodon je síť nezávislých serverů, které jsou spolu propojené do jedné velké sociální sítě. Těmto serverům říkáme instance.',
+  'onboarding.page_one.handle': 'Jste na instanci {domain}, takže celá adresa vašeho profilu je {handle}',
+  'onboarding.page_one.welcome': 'Vítá vás {domain}!',
+  'onboarding.page_two.compose': 'Příspěvky se píší v levém sloupci. Pomocí ikon pod příspěvkem k němu můžete připojit obrázky, změnit úroveň soukromí nebo přidat varování o obsahu.',
+  'onboarding.page_three.search': 'Pomocí vyhledávací lišty můžete hledat lidi nebo hashtagy. Pokud hledáte někoho z jiné instance, musíte použít celou adresu jeho profilu.',
+  'onboarding.page_three.profile': 'Upravte si svůj profil a nastavte si profilový obrázek, jméno, a krátký text o sobě. Naleznete tam i další možnosti nastavení.',
+  'onboarding.page_four.home': 'Domovská časová osa zobrazuje příspěvky od lidí, které sledujete.',
+  'onboarding.page_four.notifications': 'Notifikace se zobrazí, když s vámi někdo interaguje.',
+  'onboarding.page_five.public_timelines': 'Místní časová osa zobrazuje veřejné příspěvky všech uživatelů instance {domain}. Federovaná časová osa zobrazí příspěvky od všech, koho uživatelé instance {domain} sledují. Tyto veřejné časové osy jsou skvělý způsob, jak objevit nové lidi.',
+  'onboarding.page_six.almost_done': 'Skoro hotovo...',
+  'onboarding.page_six.github': 'Na serveru {domain} běží Glitchsoc. Glitchsoc je přátelský {fork} programu {Mastodon}, a je kompatibilní s jakoukoliv jinou mastodoní instancí nebo aplikací. Glitchsoc je zcela svobodný a má otevřený zdrojový kód. Na stránce {github} můžete hlásit chyby, žádat o nové funkce, nebo ke kódu vlastnoručně přispět.',
+  'onboarding.page_six.apps_available': 'Jsou dostupné {apps} pro iOS, Android i jiné platformy.',
+  'onboarding.page_six.various_app': 'mobilní aplikace',
+  'onboarding.page_six.appetoot': 'Veselé mastodonění!',
+  'settings.auto_collapse': 'Automaticky sbalit',
+  'settings.auto_collapse_all': 'Všechno',
+  'settings.auto_collapse_lengthy': 'Dlouhé příspěvky',
+  'settings.auto_collapse_media': 'Příspěvky s přílohami',
+  'settings.auto_collapse_notifications': 'Oznámení',
+  'settings.auto_collapse_reblogs': 'Boosty',
+  'settings.auto_collapse_replies': 'Odpovědi',
+  'settings.show_action_bar': 'Zobrazit ve sbalených příspěvcích tlačítka s akcemi',
+  'settings.close': 'Zavřít',
+  'settings.collapsed_statuses': 'Sbalené příspěvky',
+  'settings.confirm_boost_missing_media_description': 'Zobrazit potvrzovací dialog před boostnutím příspěvku s chybějícími popisky obrázků',
+  'boost_modal.missing_description': 'Příspěvek obsahuje obrázky bez popisků',
+  'settings.enable_collapsed': 'Povolit sbalené příspěvky',
+  'settings.enable_collapsed_hint': 'U sbalených příspěvků je část jejich obsahu skrytá, aby zabraly méně místa na obrazovce. (Tohle není stejná funkce jako varování o obsahu.)',
+  'settings.general': 'Obecné',
+  'settings.hicolor_privacy_icons': 'Barevné ikony soukromí',
+  'settings.hicolor_privacy_icons.hint': 'Zobrazit ikony úrovně soukromí příspěvků v jasných, snadno rozlišitelných barvách',
+  'settings.image_backgrounds': 'Obrázkové pozadí',
+  'settings.image_backgrounds_media': 'Náhled médií ve sbalených příspěvcích',
+  'settings.image_backgrounds_media_hint': 'Pokud jsou k příspěvku přiložena média, použije se první z nich jako pozadí', 
+  'settings.image_backgrounds_users': 'Nastavit sbaleným příspěvkům obrázkové pozadí',
+  'settings.inline_preview_cards': 'Zobrazit v časové ose náhledy externích odkazů',
+  'settings.media': 'Média',
+  'settings.media_letterbox': 'Neořezávat obrázky',
+  'settings.media_letterbox_hint': 'Místo výřezu obrázku zobrazit obrázek celý, doplněný podle potřeby o prázdné okraje',
+  'settings.media_fullwidth': 'Zobrazit náhledy v plné šířce',
+  'settings.notifications_opts': 'Možnosti oznámení',
+  'settings.notifications.tab_badge': 'Zobrazit počet nepřečtených oznámení',
+  'settings.notifications.tab_badge.hint': 'Počet nepřečtených oznámení se viditelně zobrazí na hlavní stránce (pokud není seznam oznámení viditelný)',
+  'settings.notifications.favicon_badge': 'Zobrazit počet na ikoně serveru',
+  'settings.notifications.favicon_badge.hint': 'Zobrazí počet nepřečtených oznámení na ikoně serveru',
+  'settings.preferences': 'Předvolby',
+  'settings.rewrite_mentions': 'Přepsat zmínky v zobrazených příspěvcích',
+  'settings.rewrite_mentions_no': 'Nepřepisovat zmínky',
+  'settings.rewrite_mentions_acct': 'Přepsat uživatelským jménem a doménou (pokud je účet na jiném serveru)',
+  'settings.rewrite_mentions_username': 'Přepsat uživatelským jménem',
+  'settings.show_reply_counter': 'Zobrazit odhad počtu odpovědí',
+  'settings.status_icons': 'Ikony u příspěvků',
+  'settings.status_icons_language': 'Indikace jazyk',
+  'settings.status_icons_reply': 'Indikace odpovědi',
+  'settings.status_icons_local_only': 'Indikace lokálního příspěvku',
+  'settings.status_icons_media': 'Indikace obrázků a anket',
+  'settings.status_icons_visibility': 'Indikace úrovně soukromí',
+  'settings.tag_misleading_links': 'Označit zavádějící odkazy',
+  'settings.tag_misleading_links.hint': 'Zobrazit skutečný cíl u každého odkazu, který ho explicitně nezmiňuje',
+  'settings.wide_view': 'Široké sloupce (pouze v režimu Desktop)',
+  'settings.wide_view_hint': 'Sloupce se roztáhnout, aby lépe vyplnily dostupný prostor.',
+  'settings.navbar_under': 'Navigační lišta vespod (pouze v režimu Mobil)',
+  'settings.compose_box_opts': 'Editační pole',
+  'settings.always_show_spoilers_field': 'Vždy zobrazit pole pro varování o obsahu',
+  'settings.prepend_cw_re': 'Při odpovídání přidat před varování o obsahu “re: ”',
+  'settings.preselect_on_reply': 'Při odpovědi označit uživatelská jména',
+  'settings.preselect_on_reply_hint': 'Při odpovídání na konverzaci s více účastníky se jména všech kromě prvního označí, aby šla jednoduše smazat',
+  'settings.confirm_missing_media_description': 'Zobrazit potvrzovací dialog při odesílání příspěvku, ve kterém chybí popisky obrázků',
+  'settings.confirm_before_clearing_draft': 'Zobrazit potvrzovací dialog před přepsáním právě vytvářené zprávy',
+  'settings.show_content_type_choice': 'Zobrazit volbu formátu příspěvku',
+  'settings.side_arm': 'Vedlejší odesílací tlačítko:',
+  'settings.side_arm.none': 'Žádné',
+  'settings.side_arm_reply_mode': 'Při odpovídání na příspěvek by vedlejší odesílací tlačítko mělo:',  
+  'settings.side_arm_reply_mode.keep': 'Použít svou nastavenou úroveň soukromí',
+  'settings.side_arm_reply_mode.copy': 'Použít úroveň soukromí příspěvku, na který odpovídáte',
+  'settings.side_arm_reply_mode.restrict': 'Zvýšit úroveň soukromí nejméně na úroveň příspěvku, na který odpovídáte',  
+  'settings.content_warnings': 'Varování o obsahu',
+  'settings.content_warnings_shared_state': 'Zobrazit/schovat všechny kopie naráz',
+  'settings.content_warnings_shared_state_hint': 'Tlačítko varování o obsahu bude mít efekt na všechny kopie příspěvku naráz, stejně jako na běžném Mastodonu. Nebude pak možné automaticky sbalit jakoukoliv kopii příspěvku, která má rozbalené varování o obsahu',
+  'settings.content_warnings_media_outside': 'Zobrazit obrázky a videa mimo varování o obsahu',
+  'settings.content_warnings_media_outside_hint': 'Obrázky a videa z příspěvku s varováním o obsahu se zobrazí se separátním přepínačem zobrazení, stejně jako na běžném Mastodonu.',
+  'settings.content_warnings_unfold_opts': 'Možnosti automatického rozbalení',
+  'settings.enable_content_warnings_auto_unfold': 'Vždy rozbalit příspěvky označené varováním o obsahu',
+  'settings.deprecated_setting': 'Tato možnost se nyní nastavuje v {settings_page_link}',
+  'settings.shared_settings_link': 'předvolbách Mastodonu',
+  'settings.content_warnings_filter': 'Tato varování o obsahu automaticky nerozbalovat:',
+  'settings.content_warnings.regexp': 'Regulární výraz',
+  'settings.media_reveal_behind_cw': 'Automaticky zobrazit média označená varováním o obsahu',
+  'settings.pop_in_player': 'Povolit plovoucí okno přehrávače',
+  'settings.pop_in_position': 'Pozice plovoucího okna:',
+  'settings.pop_in_left': 'Vlevo',
+  'settings.pop_in_right': 'Vpravo',
+ 
+  
+  'status.collapse': 'Sbalit',
+  'status.uncollapse': 'Rozbalit',  
+  'status.in_reply_to': 'Tento příspěvek je odpověď',
+  'status.has_preview_card': 'Obsahuje náhled odkazu',
+  'status.has_pictures': 'Obsahuje obrázky',
+  'status.is_poll': 'Tento příspěvek je anketa',
+  'status.has_video': 'Obsahuje video',
+  'status.has_audio': 'Obsahuje audio',
+  'status.local_only': 'Viditelné pouze z vaší instance',
+
+  'media_gallery.sensitive': 'Citlivý obsah',
+
+  'favourite_modal.combo': 'Příště můžete pro přeskočení stisknout {combo}',
+
+  'home.column_settings.show_direct': 'Zobrazit přímé zprávy',
+
+  'notification_purge.start': 'Čistící režim',
+  'notifications.mark_as_read': 'Označit všechna oznámení jako přečtená',
+
+  'notification.markForDeletion': 'Označit pro smazání',
+  'notifications.clear': 'Vymazat všechna oznámení',
+  'notifications.marked_clear_confirmation': 'Určitě chcete trvale smazat všechna vybraná oznámení?',
+  'notifications.marked_clear': 'Smazat vybraná oznámení',
+
+  'notification_purge.btn_all': 'Vybrat\nvše',
+  'notification_purge.btn_none': 'Nevybrat\nnic',
+  'notification_purge.btn_invert': 'Obrátit\nvýběr',
+  'notification_purge.btn_apply': 'Smazat\nvybrané',
+
+  'compose.attach.upload': 'Nahrát soubor',
+  'compose.attach.doodle': 'Něco namalovat',
+  'compose.attach': 'Připojit...',
+
+  'advanced_options.local-only.short': 'Lokální příspěvek',
+  'advanced_options.local-only.long': 'Neposílat na jiné servery',
+  'advanced_options.local-only.tooltip': 'Tento příspěvek je pouze lokální',
+  'advanced_options.icon_title': 'Pokročilá nastavení',
+  'advanced_options.threaded_mode.short': 'Režim vlákna',
+  'advanced_options.threaded_mode.long': 'Po odeslání automaticky otevře pole pro odpověď',
+  'advanced_options.threaded_mode.tooltip': 'Režim vlákna je zapnutý',
+  
+  'home.column_settings.advanced': 'Pokročilé',
+  'home.column_settings.filter_regex': 'Filtrovat podle regulárních výrazů',
+  
+  'compose_form.poll.single_choice': 'Povolit jednu odpověď',
+  'compose_form.poll.multiple_choices': 'Povolit více odpovědí',
+  
+  'compose.content-type.plain': 'Prostý text',
+  'content-type.change': 'Formát příspěvku',
+  'compose_form.spoiler': 'Přidat varování o obsahu',
+  
+  'direct.group_by_conversations': 'Seskupit do konverzací',
+  'column.toot': 'Příspěvky a odpovědi',
+  'confirmation_modal.do_not_ask_again': 'Příště se už neptat',
+  
+  'keyboard_shortcuts.bookmark': 'Přidat do záložek',
+  'keyboard_shortcuts.toggle_collapse': 'Sbalit/rozbalit příspěvek',
+  'keyboard_shortcuts.secondary_toot': 'Odeslat příspěvek s druhotným nastavením soukromí',
+  
+  'column.subheading': 'Různé',
 };
 
 export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/names.yml b/app/javascript/flavours/glitch/names.yml
index 68db3a73e..f35b457e1 100644
--- a/app/javascript/flavours/glitch/names.yml
+++ b/app/javascript/flavours/glitch/names.yml
@@ -6,6 +6,14 @@ en:
   skins:
     glitch:
       default: Default
+cs:
+  flavours:
+    glitch:
+      description: Výchozí rozhraní instancí GlitchSoc.
+      name: Glitch
+  skins:
+    glitch:
+      default: Výchozí
 pl:
   flavours:
     glitch:
diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js
index b1c792406..9b50ec23a 100644
--- a/app/javascript/flavours/glitch/reducers/compose.js
+++ b/app/javascript/flavours/glitch/reducers/compose.js
@@ -599,6 +599,7 @@ export default function compose(state = initialState, action) {
     return state.withMutations(map => {
       map.set('id', action.status.get('id'));
       map.set('text', action.text);
+      map.set('content_type', action.content_type || 'text/plain');
       map.set('in_reply_to', action.status.get('in_reply_to_id'));
       map.set('privacy', action.status.get('visibility'));
       map.set('media_attachments', action.status.get('media_attachments'));
diff --git a/app/javascript/flavours/glitch/reducers/status_lists.js b/app/javascript/flavours/glitch/reducers/status_lists.js
index ada0484f4..7ac0dab47 100644
--- a/app/javascript/flavours/glitch/reducers/status_lists.js
+++ b/app/javascript/flavours/glitch/reducers/status_lists.js
@@ -25,7 +25,7 @@ import {
   TRENDS_STATUSES_EXPAND_SUCCESS,
   TRENDS_STATUSES_EXPAND_FAIL,
 } from 'flavours/glitch/actions/trends';
-import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
 import {
   FAVOURITE_SUCCESS,
   UNFAVOURITE_SUCCESS,
@@ -43,22 +43,22 @@ const initialState = ImmutableMap({
   favourites: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   bookmarks: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   pins: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   trending: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
 });
 
@@ -67,7 +67,7 @@ const normalizeList = (state, listType, statuses, next) => {
     map.set('next', next);
     map.set('loaded', true);
     map.set('isLoading', false);
-    map.set('items', ImmutableList(statuses.map(item => item.id)));
+    map.set('items', ImmutableOrderedSet(statuses.map(item => item.id)));
   }));
 };
 
@@ -75,20 +75,22 @@ const appendToList = (state, listType, statuses, next) => {
   return state.update(listType, listMap => listMap.withMutations(map => {
     map.set('next', next);
     map.set('isLoading', false);
-    map.set('items', map.get('items').concat(statuses.map(item => item.id)));
+    map.set('items', map.get('items').union(statuses.map(item => item.id)));
   }));
 };
 
 const prependOneToList = (state, listType, status) => {
-  return state.update(listType, listMap => listMap.withMutations(map => {
-    map.set('items', map.get('items').unshift(status.get('id')));
-  }));
+  return state.updateIn([listType, 'items'], (list) => {
+    if (list.includes(status.get('id'))) {
+      return list;
+    } else {
+      return ImmutableOrderedSet([status.get('id')]).union(list);
+    }
+  });
 };
 
 const removeOneFromList = (state, listType, status) => {
-  return state.update(listType, listMap => listMap.withMutations(map => {
-    map.set('items', map.get('items').filter(item => item !== status.get('id')));
-  }));
+  return state.updateIn([listType, 'items'], (list) => list.delete(status.get('id')));
 };
 
 export default function statusLists(state = initialState, action) {
@@ -139,7 +141,7 @@ export default function statusLists(state = initialState, action) {
     return removeOneFromList(state, 'pins', action.status);
   case ACCOUNT_BLOCK_SUCCESS:
   case ACCOUNT_MUTE_SUCCESS:
-    return state.updateIn(['trending', 'items'], ImmutableList(), list => list.filterNot(statusId => action.statuses.getIn([statusId, 'account']) === action.relationship.id));
+    return state.updateIn(['trending', 'items'], ImmutableOrderedSet(), list => list.filterNot(statusId => action.statuses.getIn([statusId, 'account']) === action.relationship.id));
   default:
     return state;
   }
diff --git a/app/javascript/flavours/glitch/reducers/statuses.js b/app/javascript/flavours/glitch/reducers/statuses.js
index b47155c5f..f0c4c804b 100644
--- a/app/javascript/flavours/glitch/reducers/statuses.js
+++ b/app/javascript/flavours/glitch/reducers/statuses.js
@@ -13,6 +13,8 @@ import {
   STATUS_REVEAL,
   STATUS_HIDE,
   STATUS_COLLAPSE,
+  STATUS_TRANSLATE_SUCCESS,
+  STATUS_TRANSLATE_UNDO,
   STATUS_FETCH_REQUEST,
   STATUS_FETCH_FAIL,
 } from 'flavours/glitch/actions/statuses';
@@ -85,6 +87,10 @@ export default function statuses(state = initialState, action) {
     return state.setIn([action.id, 'collapsed'], action.isCollapsed);
   case TIMELINE_DELETE:
     return deleteStatus(state, action.id, action.references);
+  case STATUS_TRANSLATE_SUCCESS:
+    return state.setIn([action.id, 'translation'], fromJS(action.translation));
+  case STATUS_TRANSLATE_UNDO:
+    return state.deleteIn([action.id, 'translation']);
   default:
     return state;
   }
diff --git a/app/javascript/flavours/glitch/styles/components/columns.scss b/app/javascript/flavours/glitch/styles/components/columns.scss
index 71edf7fb3..42a591931 100644
--- a/app/javascript/flavours/glitch/styles/components/columns.scss
+++ b/app/javascript/flavours/glitch/styles/components/columns.scss
@@ -65,6 +65,7 @@ $ui-header-height: 55px;
   z-index: 2;
   justify-content: space-between;
   align-items: center;
+  overflow: hidden;
 
   &__logo {
     display: inline-flex;
@@ -81,10 +82,15 @@ $ui-header-height: 55px;
     align-items: center;
     gap: 10px;
     padding: 0 10px;
+    overflow: hidden;
 
     .button {
       flex: 0 0 auto;
     }
+
+    .button-tertiary {
+      flex-shrink: 1;
+    }
   }
 }
 
diff --git a/app/javascript/flavours/glitch/styles/components/drawer.scss b/app/javascript/flavours/glitch/styles/components/drawer.scss
index dfb9dc595..3e2604d4d 100644
--- a/app/javascript/flavours/glitch/styles/components/drawer.scss
+++ b/app/javascript/flavours/glitch/styles/components/drawer.scss
@@ -92,7 +92,7 @@
   @include search-popout();
 }
 
-.drawer--account {
+.navigation-bar {
   padding: 10px;
   color: $darker-text-color;
   display: flex;
diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss
index 80b0598a5..84aca2ebc 100644
--- a/app/javascript/flavours/glitch/styles/components/index.scss
+++ b/app/javascript/flavours/glitch/styles/components/index.scss
@@ -15,7 +15,7 @@
   display: block;
   font-size: 15px;
   line-height: 20px;
-  color: $ui-highlight-color;
+  color: $highlight-text-color;
   border: 0;
   background: transparent;
   padding: 0;
diff --git a/app/javascript/flavours/glitch/styles/components/modal.scss b/app/javascript/flavours/glitch/styles/components/modal.scss
index ab8609170..8ba8bec10 100644
--- a/app/javascript/flavours/glitch/styles/components/modal.scss
+++ b/app/javascript/flavours/glitch/styles/components/modal.scss
@@ -1306,7 +1306,8 @@ img.modal-warning {
   width: 600px;
   background: $ui-base-color;
   border-radius: 8px;
-  overflow: hidden;
+  overflow-x: hidden;
+  overflow-y: auto;
   position: relative;
   display: block;
   padding: 20px;
diff --git a/app/javascript/flavours/glitch/styles/components/single_column.scss b/app/javascript/flavours/glitch/styles/components/single_column.scss
index d91306151..45d57aedd 100644
--- a/app/javascript/flavours/glitch/styles/components/single_column.scss
+++ b/app/javascript/flavours/glitch/styles/components/single_column.scss
@@ -37,7 +37,7 @@
     top: 15px;
   }
 
-  .drawer--account {
+  .navigation-bar {
     flex: 0 1 48px;
   }
 
diff --git a/app/javascript/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss
index 5e4bddc67..64dbc3cf0 100644
--- a/app/javascript/flavours/glitch/styles/components/status.scss
+++ b/app/javascript/flavours/glitch/styles/components/status.scss
@@ -206,15 +206,13 @@
   }
 }
 
-.status__content__edited-label {
-  display: block;
-  cursor: default;
+.translate-button {
+  margin-top: 16px;
   font-size: 15px;
   line-height: 20px;
-  padding: 0;
-  padding-top: 8px;
+  display: flex;
+  justify-content: space-between;
   color: $dark-text-color;
-  font-weight: 500;
 }
 
 .status__content__spoiler-link {
diff --git a/app/javascript/flavours/glitch/styles/statuses.scss b/app/javascript/flavours/glitch/styles/statuses.scss
index 947a5d3ae..88fa3ffa0 100644
--- a/app/javascript/flavours/glitch/styles/statuses.scss
+++ b/app/javascript/flavours/glitch/styles/statuses.scss
@@ -268,7 +268,7 @@ a.button.logo-button {
   border: 0;
   background: transparent;
   padding: 0;
-  padding-top: 8px;
+  padding-top: 16px;
   text-decoration: none;
 
   &:hover,
diff --git a/app/javascript/flavours/vanilla/names.yml b/app/javascript/flavours/vanilla/names.yml
index 0e3f43ed0..9b7fc189d 100644
--- a/app/javascript/flavours/vanilla/names.yml
+++ b/app/javascript/flavours/vanilla/names.yml
@@ -6,6 +6,14 @@ en:
   skins:
     vanilla:
       default: Default
+cs:
+  flavours:
+    vanilla:
+      description: Standardní rozhraní Mastodonu. Některé funkce GlitchSoc v něm nejsou podporované.
+      name: Standardní Mastodon
+  skins:
+    vanilla:
+      default: Výchozí
 pl:
   flavours:
     vanilla:
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js
index cb67944c9..8a63cced2 100644
--- a/app/javascript/mastodon/features/status/index.js
+++ b/app/javascript/mastodon/features/status/index.js
@@ -222,6 +222,10 @@ class Status extends ImmutablePureComponent {
       this.props.dispatch(fetchStatus(nextProps.params.statusId));
     }
 
+    if (nextProps.params.statusId && nextProps.ancestorsIds.size > this.props.ancestorsIds.size) {
+      this._scrolledIntoView = false;
+    }
+
     if (nextProps.status && nextProps.status.get('id') !== this.state.loadedStatusId) {
       this.setState({ showMedia: defaultMediaVisibility(nextProps.status), loadedStatusId: nextProps.status.get('id') });
     }
diff --git a/app/javascript/mastodon/features/ui/components/header.js b/app/javascript/mastodon/features/ui/components/header.js
index bbb0ca1c6..1384bebda 100644
--- a/app/javascript/mastodon/features/ui/components/header.js
+++ b/app/javascript/mastodon/features/ui/components/header.js
@@ -6,6 +6,7 @@ import { registrationsOpen, me } from 'mastodon/initial_state';
 import Avatar from 'mastodon/components/avatar';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
+import { openModal } from 'mastodon/actions/modal';
 
 const Account = connect(state => ({
   account: state.getIn(['accounts', me]),
@@ -15,7 +16,14 @@ const Account = connect(state => ({
   </Link>
 ));
 
-export default @withRouter
+const mapDispatchToProps = (dispatch) => ({
+  openClosedRegistrationsModal() {
+    dispatch(openModal('CLOSED_REGISTRATIONS'));
+  },
+});
+
+export default @connect(null, mapDispatchToProps)
+@withRouter
 class Header extends React.PureComponent {
 
   static contextTypes = {
@@ -23,12 +31,13 @@ class Header extends React.PureComponent {
   };
 
   static propTypes = {
+    openClosedRegistrationsModal: PropTypes.func,
     location: PropTypes.object,
   };
 
   render () {
     const { signedIn } = this.context.identity;
-    const { location } = this.props;
+    const { location, openClosedRegistrationsModal } = this.props;
 
     let content;
 
@@ -40,10 +49,26 @@ class Header extends React.PureComponent {
         </>
       );
     } else {
+      let signupButton;
+
+      if (registrationsOpen) {
+        signupButton = (
+          <a href='/auth/sign_up' className='button button-tertiary'>
+            <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+          </a>
+        );
+      } else {
+        signupButton = (
+          <button className='button button-tertiary' onClick={openClosedRegistrationsModal}>
+            <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+          </button>
+        );
+      }
+
       content = (
         <>
           <a href='/auth/sign_in' className='button'><FormattedMessage id='sign_in_banner.sign_in' defaultMessage='Sign in' /></a>
-          <a href={registrationsOpen ? '/auth/sign_up' : 'https://joinmastodon.org/servers'} className='button button-tertiary'><FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' /></a>
+          {signupButton}
         </>
       );
     }
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index 1c5dddb60..e287b9a46 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -29,19 +29,19 @@
   "account.featured_tags.last_status_at": "Last post on {date}",
   "account.featured_tags.last_status_never": "No posts",
   "account.featured_tags.title": "Etiquetes destacaes de: {name}",
-  "account.follow": "Siguir",
+  "account.follow": "Follow",
   "account.followers": "Siguidores",
-  "account.followers.empty": "Naide sigue a esti perfil entá.",
+  "account.followers.empty": "No one follows this user yet.",
   "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
   "account.following": "Following",
   "account.following_counter": "{count, plural,one {Siguiendo a {counter}} other {Siguiendo a {counter}}}",
   "account.follows.empty": "Esti perfil entá nun sigue a naide.",
   "account.follows_you": "Síguete",
   "account.go_to_profile": "Go to profile",
-  "account.hide_reblogs": "Anubrir les comparticiones de @{name}",
+  "account.hide_reblogs": "Hide boosts from @{name}",
   "account.joined_short": "Data de xunión",
   "account.languages": "Change subscribed languages",
-  "account.link_verified_on": "La propiedá d'esti enllaz foi comprobada'l {date}",
+  "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.media": "Multimedia",
   "account.mention": "Mentar a @{name}",
@@ -53,14 +53,14 @@
   "account.posts": "Artículos",
   "account.posts_with_replies": "Artículos ya rempuestes",
   "account.report": "Report @{name}",
-  "account.requested": "Esperando pola aprobación. Calca pa encaboxar la solicitú de siguimientu",
-  "account.share": "Compartir el perfil de @{name}",
+  "account.requested": "Awaiting approval. Click to cancel follow request",
+  "account.share": "Share @{name}'s profile",
   "account.show_reblogs": "Amosar los artículos compartíos de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} artículu} other {{counter} artículos}}",
-  "account.unblock": "Desbloquiar a @{name}",
-  "account.unblock_domain": "Amosar {domain}",
+  "account.unblock": "Unblock @{name}",
+  "account.unblock_domain": "Unblock domain {domain}",
   "account.unblock_short": "Unblock",
-  "account.unendorse": "Nun destacar nel perfil",
+  "account.unendorse": "Dexar de destacar nel perfil",
   "account.unfollow": "Dexar de siguir",
   "account.unmute": "Activar los avisos de @{name}",
   "account.unmute_notifications": "Activar los avisos de @{name}",
@@ -68,7 +68,7 @@
   "account_note.placeholder": "Calca equí p'amestar una nota",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
-  "admin.dashboard.retention.average": "Promediu",
+  "admin.dashboard.retention.average": "Media",
   "admin.dashboard.retention.cohort": "Mes de rexistru",
   "admin.dashboard.retention.cohort_size": "Perfiles nuevos",
   "alert.rate_limited.message": "Volvi tentalo dempués de la hora: {retry_time, time, medium}.",
@@ -79,7 +79,7 @@
   "attachments_list.unprocessed": "(ensin procesar)",
   "audio.hide": "Hide audio",
   "autosuggest_hashtag.per_week": "{count} per selmana",
-  "boost_modal.combo": "Pues primir {combo} pa saltar esto la próxima vegada",
+  "boost_modal.combo": "You can press {combo} to skip this next time",
   "bundle_column_error.copy_stacktrace": "Copy error report",
   "bundle_column_error.error.body": "La páxina solicitada nun se pudo renderizar. Ye posible que seya pola mor d'un fallu nel códigu o por un problema de compatibilidá del restolador.",
   "bundle_column_error.error.title": "¡Oh, non!",
@@ -99,16 +99,16 @@
   "closed_registrations_modal.title": "Rexistru en Mastodon",
   "column.about": "Tocante a",
   "column.blocks": "Perfiles bloquiaos",
-  "column.bookmarks": "Marcadores",
+  "column.bookmarks": "Bookmarks",
   "column.community": "Llinia de tiempu llocal",
   "column.direct": "Mensaxes direutos",
   "column.directory": "Browse profiles",
   "column.domain_blocks": "Dominios bloquiaos",
-  "column.favourites": "Favoritos",
+  "column.favourites": "Favourites",
   "column.follow_requests": "Solicitúes de siguimientu",
-  "column.home": "Aniciu",
-  "column.lists": "Llistes",
-  "column.mutes": "Usuarios silenciaos",
+  "column.home": "Home",
+  "column.lists": "Lists",
+  "column.mutes": "Muted users",
   "column.notifications": "Avisos",
   "column.pins": "Artículos fixaos",
   "column.public": "Llinia de tiempu federada",
@@ -144,9 +144,9 @@
   "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
   "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
   "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
-  "compose_form.spoiler.marked": "El testu nun va anubrise darrera d'una alvertencia",
-  "compose_form.spoiler.unmarked": "El testu nun va anubrise",
-  "compose_form.spoiler_placeholder": "Escribi equí l'alvertencia",
+  "compose_form.spoiler.marked": "Text is hidden behind warning",
+  "compose_form.spoiler.unmarked": "Text is not hidden",
+  "compose_form.spoiler_placeholder": "Write your warning here",
   "confirmation_modal.cancel": "Encaboxar",
   "confirmations.block.block_and_report": "Bloquiar ya informar",
   "confirmations.block.confirm": "Bloquiar",
@@ -156,20 +156,20 @@
   "confirmations.delete.confirm": "Desaniciar",
   "confirmations.delete.message": "¿De xuru que quies desaniciar esti artículu?",
   "confirmations.delete_list.confirm": "Desaniciar",
-  "confirmations.delete_list.message": "¿De xuru que quies desaniciar dafechu esta llista?",
+  "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
   "confirmations.discard_edit_media.confirm": "Escartar",
   "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
   "confirmations.domain_block.confirm": "Bloquiar tol dominiu",
-  "confirmations.domain_block.message": "¿De xuru xurísimu que quies bloquiar el dominiu {domain} enteru? Na mayoría de casos bloquiar o silenciar dalguna cuenta ye abondo ya preferible. Nun vas ver el conteníu d'esi dominiu en nenguna llinia temporal pública o nos avisos, ya van desanciase los tos siguidores d'esi dominiu.",
+  "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
   "confirmations.logout.confirm": "Zarrar la sesión",
   "confirmations.logout.message": "¿De xuru que quies zarrar la sesión?",
-  "confirmations.mute.confirm": "Silenciar",
-  "confirmations.mute.explanation": "Esto va anubrir los espublizamientos ya les sos menciones pero entá va permiti-yos ver los tos espublizamientos ya siguite.",
-  "confirmations.mute.message": "¿De xuru que quies desactivar los avisos de {name}?",
+  "confirmations.mute.confirm": "Mute",
+  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
+  "confirmations.mute.message": "Are you sure you want to mute {name}?",
   "confirmations.redraft.confirm": "Desaniciar ya reeditar",
   "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
   "confirmations.reply.confirm": "Responder",
-  "confirmations.reply.message": "Responder agora va sobrescribir el mensaxe que tas componiendo anguaño. ¿De xuru que quies siguir?",
+  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
   "confirmations.unfollow.confirm": "Dexar de siguir",
   "confirmations.unfollow.message": "¿De xuru que quies dexar de siguir a {name}?",
   "conversation.delete": "Delete conversation",
@@ -178,10 +178,10 @@
   "conversation.with": "Con {names}",
   "copypaste.copied": "Copióse",
   "copypaste.copy": "Copiar",
-  "directory.federated": "Dende'l fediversu",
-  "directory.local": "Dende {domain} namái",
-  "directory.new_arrivals": "Cuentes nueves",
-  "directory.recently_active": "Actividá recién",
+  "directory.federated": "From known fediverse",
+  "directory.local": "From {domain} only",
+  "directory.new_arrivals": "New arrivals",
+  "directory.recently_active": "Recently active",
   "disabled_account_banner.account_settings": "Account settings",
   "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
   "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
@@ -197,12 +197,12 @@
   "emoji_button.custom": "Custom",
   "emoji_button.flags": "Banderes",
   "emoji_button.food": "Comida ya bébora",
-  "emoji_button.label": "Inxertar un fustaxe",
+  "emoji_button.label": "Insert emoji",
   "emoji_button.nature": "Natura",
   "emoji_button.not_found": "Nun s'atoparon fustaxes que concasen",
   "emoji_button.objects": "Oxetos",
   "emoji_button.people": "Persones",
-  "emoji_button.recent": "Úsase davezu",
+  "emoji_button.recent": "Frequently used",
   "emoji_button.search": "Buscar…",
   "emoji_button.search_results": "Resultaos de la busca",
   "emoji_button.symbols": "Símbolos",
@@ -221,13 +221,13 @@
   "empty_column.follow_recommendations": "Paez que nun se puen xenerar suxerencies pa ti. Pues tentar d'usar la busca p'atopar perfiles que pues conocer o esplorar les etiquetes en tendencia.",
   "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, apaez equí.",
   "empty_column.hashtag": "Entá nun hai nada con esta etiqueta.",
-  "empty_column.home": "¡Tienes la llinia temporal balera! Visita {public} o usa la gueta pa entamar ya conocer a otros usuarios.",
+  "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
   "empty_column.home.suggestions": "See some suggestions",
   "empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen artículos nuevos, apaecen equí.",
   "empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees una, apaez equí.",
   "empty_column.mutes": "You haven't muted any users yet.",
-  "empty_column.notifications": "Entá nun tienes nengún avisu. Cuando otros perfiles interactúen contigo, vas velos equí.",
-  "empty_column.public": "¡Equí nun hai nada! Escribi daqué público o sigui a usuarios d'otros sirvidores pa rellenar esto",
+  "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.",
+  "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
   "error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.",
   "error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.",
   "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
@@ -266,16 +266,16 @@
   "footer.privacy_policy": "Política de privacidá",
   "footer.source_code": "Ver el códigu fonte",
   "generic.saved": "Guardóse",
-  "getting_started.heading": "Entamu",
+  "getting_started.heading": "Getting started",
   "hashtag.column_header.tag_mode.all": "y {additional}",
   "hashtag.column_header.tag_mode.any": "o {additional}",
   "hashtag.column_header.tag_mode.none": "ensin {additional}",
   "hashtag.column_settings.select.no_options_message": "Nun s'atopó nenguna suxerencia",
   "hashtag.column_settings.select.placeholder": "Enter hashtags…",
-  "hashtag.column_settings.tag_mode.all": "Toes estes",
-  "hashtag.column_settings.tag_mode.any": "Cualesquiera d'estes",
-  "hashtag.column_settings.tag_mode.none": "Nenguna d'estes",
-  "hashtag.column_settings.tag_toggle": "Incluyir les etiquetes adicionales d'esta columna",
+  "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.follow": "Siguir a la etiqueta",
   "hashtag.unfollow": "Dexar de siguir a la etiqueta",
   "home.column_settings.basic": "Configuración básica",
@@ -335,23 +335,23 @@
   "lightbox.close": "Close",
   "lightbox.compress": "Compress image view box",
   "lightbox.expand": "Expand image view box",
-  "lightbox.next": "Siguiente",
+  "lightbox.next": "Next",
   "lightbox.previous": "Previous",
   "limited_account_hint.action": "Amosar el perfil de toes toes",
   "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
-  "lists.account.add": "Amestar a la llista",
-  "lists.account.remove": "Desaniciar de la llista",
+  "lists.account.add": "Add to list",
+  "lists.account.remove": "Remove from list",
   "lists.delete": "Desaniciar la llista",
   "lists.edit": "Editar la llista",
   "lists.edit.submit": "Change title",
   "lists.new.create": "Amestar la llista",
-  "lists.new.title_placeholder": "Títulu nuevu de la llista",
+  "lists.new.title_placeholder": "New list title",
   "lists.replies_policy.followed": "Cualesquier perfil siguíu",
   "lists.replies_policy.list": "Miembros de la llista",
   "lists.replies_policy.none": "Naide",
   "lists.replies_policy.title": "Show replies to:",
-  "lists.search": "Buscar ente la xente que sigues",
-  "lists.subheading": "Les tos llistes",
+  "lists.search": "Search among people you follow",
+  "lists.subheading": "Your lists",
   "load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}",
   "loading_indicator.label": "Cargando…",
   "media_gallery.toggle_visible": "{number, plural, one {Anubrir la imaxe} other {Anubrir les imáxenes}}",
@@ -377,7 +377,7 @@
   "navigation_bar.follows_and_followers": "Follows and followers",
   "navigation_bar.lists": "Llistes",
   "navigation_bar.logout": "Zarrar la sesión",
-  "navigation_bar.mutes": "Usuarios silenciaos",
+  "navigation_bar.mutes": "Muted users",
   "navigation_bar.personal": "Personal",
   "navigation_bar.pins": "Artículos fixaos",
   "navigation_bar.preferences": "Preferencies",
@@ -397,10 +397,10 @@
   "notification.status": "{name} ta acabante d'espublizar",
   "notification.update": "{name} editó un artículu",
   "notifications.clear": "Borrar los avisos",
-  "notifications.clear_confirmation": "¿De xuru que quies llimpiar dafechu tolos avisos?",
+  "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
   "notifications.column_settings.admin.report": "Informes nuevos:",
   "notifications.column_settings.admin.sign_up": "Rexistros nuevos:",
-  "notifications.column_settings.alert": "Avisos d'escritoriu",
+  "notifications.column_settings.alert": "Desktop notifications",
   "notifications.column_settings.favourite": "Artículos favoritos:",
   "notifications.column_settings.filter_bar.advanced": "Amosar toles categoríes",
   "notifications.column_settings.filter_bar.category": "Barra de peñera rápida",
@@ -411,13 +411,13 @@
   "notifications.column_settings.poll": "Resultaos de les encuestes:",
   "notifications.column_settings.push": "Push notifications",
   "notifications.column_settings.reblog": "Artículos compartíos:",
-  "notifications.column_settings.show": "Amosar en columna",
+  "notifications.column_settings.show": "Show in column",
   "notifications.column_settings.sound": "Reproducir un soníu",
   "notifications.column_settings.status": "Artículos nuevos:",
   "notifications.column_settings.unread_notifications.category": "Avisos ensin lleer",
   "notifications.column_settings.unread_notifications.highlight": "Rescamplar los avisos ensin lleer",
   "notifications.column_settings.update": "Ediciones:",
-  "notifications.filter.all": "Too",
+  "notifications.filter.all": "All",
   "notifications.filter.boosts": "Boosts",
   "notifications.filter.favourites": "Favourites",
   "notifications.filter.follows": "Follows",
@@ -430,8 +430,8 @@
   "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
   "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
   "notifications.permission_required": "Los avisos d'escritoriu nun tán disponibles porque nun se concedió'l permisu riquíu.",
-  "notifications_permission_banner.enable": "Activar los avisos d'escritoriu",
-  "notifications_permission_banner.how_to_control": "Pa recibir avisos cuando Mastodon nun tea abiertu, activa los avisos del escritoriu. Pues controlar al milímetru qué tipu d'interaiciones xeneren avisos namás que s'activen, pente'l botón {icon} d'arriba.",
+  "notifications_permission_banner.enable": "Enable desktop notifications",
+  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
   "notifications_permission_banner.title": "Never miss a thing",
   "picture_in_picture.restore": "Put it back",
   "poll.closed": "Finó",
@@ -448,15 +448,15 @@
   "privacy.direct.short": "Direct",
   "privacy.private.long": "Artículu visible namás pa los perfiles siguidores",
   "privacy.private.short": "Namás pa siguidores",
-  "privacy.public.long": "Tol mundu pue ver l'artículu",
+  "privacy.public.long": "Visible for all",
   "privacy.public.short": "Artículu públicu",
   "privacy.unlisted.long": "Artículu visible pa tol mundu mas escluyíu de les funciones de descubrimientu",
-  "privacy.unlisted.short": "Nun llistar",
+  "privacy.unlisted.short": "Unlisted",
   "privacy_policy.last_updated": "Data del últimu anovamientu: {date}",
   "privacy_policy.title": "Política de privacidá",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Cargando…",
-  "regeneration_indicator.sublabel": "¡Tamos tresnando'l feed d'Aniciu!",
+  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
   "relative_time.days": "{number} d",
   "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
   "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
@@ -538,14 +538,14 @@
   "sign_in_banner.text": "Anicia la sesión pa siguir a perfiles o etiquetes, marcar como favoritu, compartir o responder a artículos, o interactuar cola to cuenta nun sirvidor diferente.",
   "status.admin_account": "Open moderation interface for @{name}",
   "status.admin_status": "Open this status in the moderation interface",
-  "status.block": "Bloquiar a @{name}",
+  "status.block": "Block @{name}",
   "status.bookmark": "Meter en Marcadores",
-  "status.cancel_reblog_private": "Dexar de compartir",
+  "status.cancel_reblog_private": "Unboost",
   "status.cannot_reblog": "Esti artículu nun se pue compartir",
   "status.copy": "Copiar l'enllaz al artículu",
   "status.delete": "Desaniciar",
   "status.detailed_status": "Detailed conversation view",
-  "status.direct": "Unviar un mensaxe direutu a @{name}",
+  "status.direct": "Direct message @{name}",
   "status.edit": "Edit",
   "status.edited": "Edited {date}",
   "status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}",
@@ -557,7 +557,7 @@
   "status.history.created": "{name} creó {date}",
   "status.history.edited": "{name} editó {date}",
   "status.load_more": "Cargar más",
-  "status.media_hidden": "Multimedia anubrida",
+  "status.media_hidden": "Media hidden",
   "status.mention": "Mentar a @{name}",
   "status.more": "Más",
   "status.mute": "Desactivar los avisos de @{name}",
@@ -567,11 +567,11 @@
   "status.pinned": "Artículu fixáu",
   "status.read_more": "Lleer más",
   "status.reblog": "Compartir",
-  "status.reblog_private": "Compartir cola audiencia orixinal",
+  "status.reblog_private": "Boost with original visibility",
   "status.reblogged_by": "{name} compartió",
   "status.reblogs.empty": "Naide nun compartió esti artículu entá. Cuando daquién lo faiga, apaez equí.",
-  "status.redraft": "Desaniciar ya reeditar",
-  "status.remove_bookmark": "Desaniciar de Marcadores",
+  "status.redraft": "Delete & re-draft",
+  "status.remove_bookmark": "Remove bookmark",
   "status.replied_to": "En rempuesta a {name}",
   "status.reply": "Responder",
   "status.replyAll": "Responder al filu",
@@ -580,9 +580,9 @@
   "status.share": "Share",
   "status.show_filter_reason": "Show anyway",
   "status.show_less": "Amosar menos",
-  "status.show_less_all": "Amosar menos en too",
+  "status.show_less_all": "Show less for all",
   "status.show_more": "Amosar más",
-  "status.show_more_all": "Amosar más en too",
+  "status.show_more_all": "Show more for all",
   "status.show_original": "Amosar l'orixinal",
   "status.translate": "Traducir",
   "status.translated_from_with": "Tradúxose del {lang} con {provider}",
@@ -609,11 +609,11 @@
   "timeline_hint.resources.statuses": "Artículos antiguos",
   "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
   "trends.trending_now": "En tendencia",
-  "ui.beforeunload": "El borrador va perdese si coles de Mastodon.",
+  "ui.beforeunload": "El borrador piérdese si coles de Mastodon.",
   "units.short.billion": "{count} MM",
   "units.short.million": "{count} M",
   "units.short.thousand": "{count} mil",
-  "upload_area.title": "Arrastra ya suelta pa xubir",
+  "upload_area.title": "Drag & drop to upload",
   "upload_button.label": "Add images, a video or an audio file",
   "upload_error.limit": "File upload limit exceeded.",
   "upload_error.poll": "La xuba de ficheros nun ta permitida coles encuestes.",
@@ -633,12 +633,12 @@
   "upload_modal.edit_media": "Edición",
   "upload_modal.hint": "Calca o arrastra'l círculu de la previsualización pa escoyer el puntu d'enfoque que siempres va tar a la vista en toles miniatures.",
   "upload_modal.preparing_ocr": "Preparing OCR…",
-  "upload_modal.preview_label": "Previsualización ({ratio})",
+  "upload_modal.preview_label": "Preview ({ratio})",
   "upload_progress.label": "Xubiendo…",
   "upload_progress.processing": "Procesando…",
   "video.close": "Zarrar el videu",
   "video.download": "Download file",
-  "video.exit_fullscreen": "Colar de la pantalla completa",
+  "video.exit_fullscreen": "Exit full screen",
   "video.expand": "Espander el videu",
   "video.fullscreen": "Pantalla completa",
   "video.hide": "Anubrir el videu",
diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json
index 58fa56b2b..0e84db718 100644
--- a/app/javascript/mastodon/locales/be.json
+++ b/app/javascript/mastodon/locales/be.json
@@ -129,12 +129,12 @@
   "compose_form.encryption_warning": "Допісы ў Mastodon не абаронены скразным шыфраваннем. Не дзяліцеся ніякай канфідэнцыяльнай інфармацыяй в Mastodon.",
   "compose_form.hashtag_warning": "Гэты допіс не будзе паказаны пад аніякім хэштэгам, так як ён мае тып \"Не паказваць у стужках\". Толькі публічныя допісы могуць быць знойдзены па хэштэгу.",
   "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": "Працягласць апытання",
   "compose_form.poll.option_placeholder": "Варыянт {number}",
-  "compose_form.poll.remove_option": "Выдаліць выбар",
+  "compose_form.poll.remove_option": "Выдаліць гэты варыянт",
   "compose_form.poll.switch_to_multiple": "Змяніце апытанне, каб дазволіць некалькі варыянтаў адказу",
   "compose_form.poll.switch_to_single": "Змяніце апытанне, каб дазволіць адзіны варыянт адказу",
   "compose_form.publish": "Апублікаваць",
@@ -144,8 +144,8 @@
   "compose_form.sensitive.hide": "{count, plural, one {Пазначыць кантэнт як далікатны} other {Пазначыць кантэнт як далікатны}}",
   "compose_form.sensitive.marked": "{count, plural, one {Кантэнт пазначаны як далікатны} other {Кантэнт пазначаны як далікатны}}",
   "compose_form.sensitive.unmarked": "{count, plural, one {Кантэнт не пазначаны як далікатны} other {Кантэнт не пазначаны як далікатны}}",
-  "compose_form.spoiler.marked": "Выдаліць папярэджанне аб кантэнце",
-  "compose_form.spoiler.unmarked": "Дадаць папярэджанне аб кантэнце",
+  "compose_form.spoiler.marked": "Выдаліць папярэджанне аб змесціве",
+  "compose_form.spoiler.unmarked": "Дадаць папярэджанне аб змесціве",
   "compose_form.spoiler_placeholder": "Напішыце сваё папярэджанне тут",
   "confirmation_modal.cancel": "Скасаваць",
   "confirmations.block.block_and_report": "Заблакіраваць і паскардзіцца",
@@ -182,7 +182,7 @@
   "directory.local": "Толькі з {domain}",
   "directory.new_arrivals": "Новыя карыстальнікі",
   "directory.recently_active": "Нядаўна актыўныя",
-  "disabled_account_banner.account_settings": "Налады акаўнту",
+  "disabled_account_banner.account_settings": "Налады ўліковага запісу",
   "disabled_account_banner.text": "Ваш уліковы запіс {disabledAccount} часова адключаны.",
   "dismissable_banner.community_timeline": "Гэта самыя апошнія допісы ад людзей, уліковыя запісы якіх размяшчаюцца на {domain}.",
   "dismissable_banner.dismiss": "Адхіліць",
@@ -391,7 +391,7 @@
   "notification.follow": "{name} падпісаўся на вас",
   "notification.follow_request": "{name} адправіў запыт на падпіску",
   "notification.mention": "{name} згадаў вас",
-  "notification.own_poll": "Вашая апытанка скончылася",
+  "notification.own_poll": "Ваша апытанне скончылася",
   "notification.poll": "Апытанне, дзе вы прынялі ўдзел, скончылася",
   "notification.reblog": "{name} пашырыў ваш допіс",
   "notification.status": "Новы допіс ад {name}",
@@ -464,7 +464,7 @@
   "relative_time.full.minutes": "{number, plural, one {# хвіліна} few {# хвіліны} many {# хвілін} other {# хвіліны}} таму",
   "relative_time.full.seconds": "{number, plural, one {# секунда} few {# секунды} many {# секунд} other {# секунды}} таму",
   "relative_time.hours": "{number} гадз",
-  "relative_time.just_now": "цяпер",
+  "relative_time.just_now": "толькі што",
   "relative_time.minutes": "{number} хв",
   "relative_time.seconds": "{number} с",
   "relative_time.today": "сёння",
@@ -539,7 +539,7 @@
   "status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}",
   "status.admin_status": "Адкрыць гэты допіс у інтэрфейсе мадэрацыі",
   "status.block": "Заблакаваць @{name}",
-  "status.bookmark": "Закладка",
+  "status.bookmark": "Дадаць закладку",
   "status.cancel_reblog_private": "Прыбраць",
   "status.cannot_reblog": "Гэты пост нельга пашырыць",
   "status.copy": "Скапіраваць спасылку на допіс",
@@ -554,8 +554,8 @@
   "status.filter": "Фільтраваць гэты допіс",
   "status.filtered": "Адфільтравана",
   "status.hide": "Схаваць допіс",
-  "status.history.created": "створана {name} {date}",
-  "status.history.edited": "адрэдагавана {name} {date}",
+  "status.history.created": "Створана {name} {date}",
+  "status.history.edited": "Адрэдагавана {name} {date}",
   "status.load_more": "Загрузіць яшчэ",
   "status.media_hidden": "Медыя схавана",
   "status.mention": "Згадаць @{name}",
@@ -594,7 +594,7 @@
   "subscribed_languages.target": "Змяніць мовы падпіскі для {target}",
   "suggestions.dismiss": "Адхіліць прапанову",
   "suggestions.header": "Гэта можа Вас зацікавіць…",
-  "tabs_bar.federated_timeline": "Глабальная",
+  "tabs_bar.federated_timeline": "Глабальнае",
   "tabs_bar.home": "Галоўная",
   "tabs_bar.local_timeline": "Мясцовае",
   "tabs_bar.notifications": "Апавяшчэнні",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 06d3386a8..f04f6054d 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -39,7 +39,7 @@
   "account.follows_you": "Ваш последовател",
   "account.go_to_profile": "Към профила",
   "account.hide_reblogs": "Скриване на споделяния от @{name}",
-  "account.joined_short": "Присъединени",
+  "account.joined_short": "Дата на присъединяване",
   "account.languages": "Смяна на показваните езици",
   "account.link_verified_on": "Собствеността върху тази връзка е проверена на {date}",
   "account.locked_info": "Състоянието за поверителността на акаунта е зададено заключено. Собственикът преглежда ръчно от кого може да се следва.",
@@ -51,20 +51,20 @@
   "account.muted": "Заглушено",
   "account.open_original_page": "Отваряне на оригиналната страница",
   "account.posts": "Публикации",
-  "account.posts_with_replies": "Публикации и отговори",
+  "account.posts_with_replies": "С отговори",
   "account.report": "Докладване на @{name}",
   "account.requested": "Чака се одобрение. Щракнете за отмяна на заявката за последване",
-  "account.share": "Споделяне на профила на @{name}",
+  "account.share": "Изпращане на профила на @{name}",
   "account.show_reblogs": "Показване на споделяния от @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}",
   "account.unblock": "Отблокиране на @{name}",
   "account.unblock_domain": "Отблокиране на домейн {domain}",
   "account.unblock_short": "Отблокирване",
   "account.unendorse": "Не включвайте в профила",
-  "account.unfollow": "Стоп на следването",
-  "account.unmute": "Без заглушаването на @{name}",
+  "account.unfollow": "Не следвай",
+  "account.unmute": "Без заглушаване на @{name}",
   "account.unmute_notifications": "Без заглушаване на известия от @{name}",
-  "account.unmute_short": "Без заглушаването",
+  "account.unmute_short": "Без заглушаване",
   "account_note.placeholder": "Щракнете, за да добавите бележка",
   "admin.dashboard.daily_retention": "Ниво на задържани на потребители след регистрация, в дни",
   "admin.dashboard.monthly_retention": "Ниво на задържани на потребители след регистрация, в месеци",
@@ -100,7 +100,7 @@
   "column.about": "Относно",
   "column.blocks": "Блокирани потребители",
   "column.bookmarks": "Отметки",
-  "column.community": "Местна часова ос",
+  "column.community": "Локален инфопоток",
   "column.direct": "Директни съобщения",
   "column.directory": "Разглеждане на профили",
   "column.domain_blocks": "Блокирани домейни",
@@ -111,7 +111,7 @@
   "column.mutes": "Заглушени потребители",
   "column.notifications": "Известия",
   "column.pins": "Закачени публикации",
-  "column.public": "Федеративна часова ос",
+  "column.public": "Федериран инфопоток",
   "column_back_button.label": "Назад",
   "column_header.hide_settings": "Скриване на настройките",
   "column_header.moveLeft_settings": "Преместване на колона вляво",
@@ -146,7 +146,7 @@
   "compose_form.sensitive.unmarked": "{count, plural, one {Мултимедията не е маркирана като деликатна} other {Мултимедиите не са маркирани като деликатни}}",
   "compose_form.spoiler.marked": "Премахване на предупреждението за съдържание",
   "compose_form.spoiler.unmarked": "Добавяне на предупреждение за съдържание",
-  "compose_form.spoiler_placeholder": "Тук напишете предупреждението си",
+  "compose_form.spoiler_placeholder": "Напишете предупреждение",
   "confirmation_modal.cancel": "Отказ",
   "confirmations.block.block_and_report": "Блокиране и докладване",
   "confirmations.block.confirm": "Блокиране",
@@ -178,23 +178,23 @@
   "conversation.with": "С {names}",
   "copypaste.copied": "Копирано",
   "copypaste.copy": "Копиране",
-  "directory.federated": "От познат федивърс",
+  "directory.federated": "От познатата федивселена",
   "directory.local": "Само от {domain}",
   "directory.new_arrivals": "Новодошли",
   "directory.recently_active": "Наскоро дейни",
   "disabled_account_banner.account_settings": "Настройки на акаунта",
   "disabled_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен.",
-  "dismissable_banner.community_timeline": "Ето най-скорошните публични публикации от хора, чиито акаунти са разположени в {domain}.",
+  "dismissable_banner.community_timeline": "Ето най-скорошните публични публикации, създадени от акаунти в {domain}.",
   "dismissable_banner.dismiss": "Отхвърляне",
   "dismissable_banner.explore_links": "Тези новини се разказват от хората в този и други сървъри на децентрализираната мрежа точно сега.",
   "dismissable_banner.explore_statuses": "Тези публикации от този и други сървъри в децентрализираната мрежа набират популярност сега на този сървър.",
   "dismissable_banner.explore_tags": "Тези хаштагове сега набират популярност сред хората в този и други сървъри на децентрализирата мрежа.",
-  "dismissable_banner.public_timeline": "Ето най-скорошните публични публикации от хора в този и други сървъри на децентрализираната мрежа, за които този сървър познава.",
+  "dismissable_banner.public_timeline": "Това са най-скорошните публични публикации, създадени на този сървър, както и на други сървъри на децентрализираната мрежа, за които този сървър знае.",
   "embed.instructions": "Вградете публикацията в уебсайта си, копирайки кода долу.",
   "embed.preview": "Ето как ще изглежда:",
   "emoji_button.activity": "Дейност",
   "emoji_button.clear": "Изчистване",
-  "emoji_button.custom": "Персонализирано",
+  "emoji_button.custom": "Персонализирани",
   "emoji_button.flags": "Знамена",
   "emoji_button.food": "Храна и напитки",
   "emoji_button.label": "Вмъкване на емоджи",
@@ -202,7 +202,7 @@
   "emoji_button.not_found": "Без емоджита!! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "Предмети",
   "emoji_button.people": "Хора",
-  "emoji_button.recent": "Често използвано",
+  "emoji_button.recent": "Често използвани",
   "emoji_button.search": "Търсене...",
   "emoji_button.search_results": "Резултати от търсене",
   "emoji_button.symbols": "Символи",
@@ -212,8 +212,8 @@
   "empty_column.account_unavailable": "Няма достъп до профила",
   "empty_column.blocks": "Още не сте блокирали никакви потребители.",
   "empty_column.bookmarked_statuses": "Още не сте отметнали публикации. Отметвайки някоя, то тя ще се покаже тук.",
-  "empty_column.community": "Местна часова ос е празна. Напишете нещо публично, за да завъртите нещата!",
-  "empty_column.direct": "Още нямате никакви директни съобщения. Изпращайки или получавайки, то те ще се покажат тук.",
+  "empty_column.community": "Локалният инфопоток е празен. Публикувайте нещо, за да започнете!",
+  "empty_column.direct": "Все още нямате лични съобщения. Когато изпратите или получите някое, то ще се покаже тук.",
   "empty_column.domain_blocks": "Още няма блокирани домейни.",
   "empty_column.explore_statuses": "Няма нищо популярно в момента. Проверете пак по-късно!",
   "empty_column.favourited_statuses": "Още нямате любими публикации. Поставяйки някоя в любими, то тя ще се покаже тук.",
@@ -221,13 +221,13 @@
   "empty_column.follow_recommendations": "Изглежда, че няма генерирани предложения за вас. Можете да опитате да търсите за хора, които знаете или да разгледате популярните тагове.",
   "empty_column.follow_requests": "Все още нямате заявки за последване. Когато получите такава, тя ще се покаже тук.",
   "empty_column.hashtag": "Още няма нищо в този хаштаг.",
-  "empty_column.home": "Вашата начална часова ос е празна! Последвайте повече хора, за да я запълните. {suggestions}",
+  "empty_column.home": "Вашият личен инфопоток е празен! Последвайте повече хора, за да го запълните. {suggestions}",
   "empty_column.home.suggestions": "Преглед на някои предложения",
   "empty_column.list": "Още няма нищо в този списък. Когато членовете на списъка публикуват нови публикации, то те ще се появят тук.",
   "empty_column.lists": "Все още нямате списъци. Когато създадете такъв, той ще се покаже тук.",
   "empty_column.mutes": "Още не сте заглушавали потребители.",
   "empty_column.notifications": "Все още нямате известия. Взаимодействайте с другите, за да започнете разговора.",
-  "empty_column.public": "Тук няма нищо! Напишете нещо публично или ръчно последвайте потребители от други сървъри, за да го напълните",
+  "empty_column.public": "Тук няма нищо! Публикувайте нещо или последвайте потребители от други сървъри, за да го напълните",
   "error.unexpected_crash.explanation": "Поради грешка в нашия код или проблем със съвместимостта на браузъра, тази страница не може да се покаже правилно.",
   "error.unexpected_crash.explanation_addons": "Тази страница не може да се покаже правилно. Тази грешка вероятно е причинена от добавка на браузъра или инструменти за автоматичен превод.",
   "error.unexpected_crash.next_steps": "Опитайте да опресните страницата. Ако това не помогне, все още можете да използвате Mastodon чрез различен браузър или приложение.",
@@ -260,9 +260,9 @@
   "follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.",
   "footer.about": "Относно",
   "footer.directory": "Директория на профилите",
-  "footer.get_app": "Вземане на приложението",
+  "footer.get_app": "Изтегли приложението",
   "footer.invite": "Поканване на хора",
-  "footer.keyboard_shortcuts": "Клавишни съчетания",
+  "footer.keyboard_shortcuts": "Клавишни комбинации",
   "footer.privacy_policy": "Политика за поверителност",
   "footer.source_code": "Преглед на изходния код",
   "generic.saved": "Запазено",
@@ -304,17 +304,17 @@
   "keyboard_shortcuts.column": "Съсредоточение на колона",
   "keyboard_shortcuts.compose": "Фокус на текстовото пространство за композиране",
   "keyboard_shortcuts.description": "Опис",
-  "keyboard_shortcuts.direct": "за отваряне на колоната с директни съобщения",
+  "keyboard_shortcuts.direct": "за отваряне на колоната с лични съобщения",
   "keyboard_shortcuts.down": "Преместване надолу в списъка",
   "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": "Отваряне на профила ви",
@@ -364,7 +364,7 @@
   "navigation_bar.about": "За тази инстанция",
   "navigation_bar.blocks": "Блокирани потребители",
   "navigation_bar.bookmarks": "Отметки",
-  "navigation_bar.community_timeline": "Местна часова ос",
+  "navigation_bar.community_timeline": "Локален инфопоток",
   "navigation_bar.compose": "Съставяне на нова публикация",
   "navigation_bar.direct": "Директни съобщения",
   "navigation_bar.discover": "Откриване",
@@ -381,19 +381,19 @@
   "navigation_bar.personal": "Лично",
   "navigation_bar.pins": "Закачени публикации",
   "navigation_bar.preferences": "Предпочитания",
-  "navigation_bar.public_timeline": "Федеративна часова ос",
+  "navigation_bar.public_timeline": "Федериран инфопоток",
   "navigation_bar.search": "Търсене",
   "navigation_bar.security": "Сигурност",
   "not_signed_in_indicator.not_signed_in": "Трябва да влезете за достъп до този ресурс.",
   "notification.admin.report": "{name} докладва {target}",
   "notification.admin.sign_up": "{name} се регистрира",
-  "notification.favourite": "{name} направи любима ваша публикация",
+  "notification.favourite": "{name} хареса ваша публикация",
   "notification.follow": "{name} ви последва",
   "notification.follow_request": "{name} поиска да ви последва",
   "notification.mention": "{name} ви спомена",
   "notification.own_poll": "Анкетата ви приключи",
   "notification.poll": "Анкета, в която гласувахте, приключи",
-  "notification.reblog": "{name} сподели твоята публикация",
+  "notification.reblog": "{name} сподели вашата публикация",
   "notification.status": "{name} току-що публикува",
   "notification.update": "{name} промени публикация",
   "notifications.clear": "Изчистване на известията",
@@ -457,15 +457,15 @@
   "refresh": "Опресняване",
   "regeneration_indicator.label": "Зареждане…",
   "regeneration_indicator.sublabel": "Вашият основен инфопоток се подготвя!",
-  "relative_time.days": "{number}д.",
+  "relative_time.days": "{number} д.",
   "relative_time.full.days": "преди {number, plural, one {# ден} other {# дни}}",
   "relative_time.full.hours": "преди {number, plural, one {# час} other {# часа}}",
   "relative_time.full.just_now": "току-що",
   "relative_time.full.minutes": "преди {number, plural, one {# минута} other {# минути}}",
   "relative_time.full.seconds": "преди {number, plural, one {# секунда} other {# секунди}}",
-  "relative_time.hours": "{number}ч.",
+  "relative_time.hours": "{number} ч.",
   "relative_time.just_now": "сега",
-  "relative_time.minutes": "{number}м.",
+  "relative_time.minutes": "{number} мин.",
   "relative_time.seconds": "{number}с.",
   "relative_time.today": "днес",
   "reply_indicator.cancel": "Отказ",
@@ -514,7 +514,7 @@
   "search.placeholder": "Търсене",
   "search.search_or_paste": "Търсене или поставяне на URL адрес",
   "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": "Обикновеният текст връща съответстващи показвани имена, потребителски имена и хаштагове",
@@ -572,7 +572,7 @@
   "status.reblogs.empty": "Все още никой не е споделил тази публикация. Когато някой го направи, ще се покаже тук.",
   "status.redraft": "Изтриване и преработване",
   "status.remove_bookmark": "Премахване на отметката",
-  "status.replied_to": "Отговори на {name}",
+  "status.replied_to": "В отговор до {name}",
   "status.reply": "Отговор",
   "status.replyAll": "Отговор на тема",
   "status.report": "Докладване на @{name}",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index f967d3dfe..e046824b6 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -6,7 +6,7 @@
   "about.domain_blocks.preamble": "Gant Mastodon e c'hellit gwelet danvez hag eskemm gant implijerien·ezed eus forzh peseurt servijer er fedibed peurliesañ. Setu an nemedennoù a zo bet graet evit ar servijer-mañ e-unan.",
   "about.domain_blocks.silenced.explanation": "Ne vo ket gwelet profiloù eus ar servijer-mañ ganeoc'h peurliesañ, nemet ma vefec'h o klask war o lec'h pe choazfec'h o heuliañ.",
   "about.domain_blocks.silenced.title": "Bevennet",
-  "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
+  "about.domain_blocks.suspended.explanation": "Roadenn ebet eus ar servijer-mañ ne vo keweriet, kadavet pe eskemmet, ar pezh a lako an etreweriañ pe ar c'hehentiñ gant implijerien adalek ar servijer-mañ dibosupl.",
   "about.domain_blocks.suspended.title": "Astalet",
   "about.not_available": "An titour-mañ ne c'heller ket gwelet war ar servijer-mañ.",
   "about.powered_by": "Rouedad sokial digreizenned kaset gant {mastodon}",
@@ -81,21 +81,21 @@
   "autosuggest_hashtag.per_week": "{count} bep sizhun",
   "boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou",
   "bundle_column_error.copy_stacktrace": "Eilañ an danevell fazi",
-  "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
+  "bundle_column_error.error.body": "N'haller ket skrammañ ar bajenn goulennet. Gallout a ra bezañ abalamour d'ur beug er c'hod pe d'ur gudenn keverlec'hded gant ar merdeer.",
   "bundle_column_error.error.title": "Chaous !",
-  "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
+  "bundle_column_error.network.body": "Degouezhet ez eus bet ur fazi en ur glask kargañ ar bajenn-mañ. Gallout a rafe bezañ abalamour d'ur gudenn padennek pe abalamour d'ar servijer-mañ.",
   "bundle_column_error.network.title": "Fazi rouedad",
   "bundle_column_error.retry": "Klask en-dro",
   "bundle_column_error.return": "Distreiñ d'an degemer",
-  "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?",
+  "bundle_column_error.routing.body": "N'haller ket kavout ar bajenn goulennet. Sur oc'h eo reizh an URL er varrenn chomlec'hioù?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Serriñ",
   "bundle_modal_error.message": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.",
   "bundle_modal_error.retry": "Klask en-dro",
   "closed_registrations.other_server_instructions": "Peogwir ez eo Mastodon digreizennet e c'heller krouiñ ur gont war ur servijer all ha kenderc'hel da zaremprediñ gant hemañ.",
-  "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
+  "closed_registrations_modal.description": "N'eo ket posupl krouiñ ur gont war {domain} evit ar mare, met n'ho peus ket ezhomm ur gont war {domain} dre ret evit ober gant Mastodon.",
   "closed_registrations_modal.find_another_server": "Kavout ur servijer all",
-  "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
+  "closed_registrations_modal.preamble": "Digreizennet eo Mastodon, forzh pelec'h e vefe krouet ho kont e viot gouest da heuliañ hag etreweriañ gant an holl war ar servijer-mañ. Gallout a rit herbec'hiañ anezhañ hoc'h-unan zoken!",
   "closed_registrations_modal.title": "Enskrivadurioù war Mastodon",
   "column.about": "Diwar-benn",
   "column.blocks": "Implijer·ezed·ien berzet",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index aa3c1f369..6b1743d61 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -153,9 +153,9 @@
   "confirmations.block.message": "Segur que vols blocar a {name}?",
   "confirmations.cancel_follow_request.confirm": "Retirar la sol·licitud",
   "confirmations.cancel_follow_request.message": "Segur que vols retirar la sol·licitud de seguiment de {name}?",
-  "confirmations.delete.confirm": "Suprimeix",
+  "confirmations.delete.confirm": "Elimina",
   "confirmations.delete.message": "Segur que vols eliminar la publicació?",
-  "confirmations.delete_list.confirm": "Suprimeix",
+  "confirmations.delete_list.confirm": "Elimina",
   "confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?",
   "confirmations.discard_edit_media.confirm": "Descarta",
   "confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?",
@@ -166,8 +166,8 @@
   "confirmations.mute.confirm": "Silencia",
   "confirmations.mute.explanation": "Això amagarà les seves publicacions i les que els mencionen, però encara els permetrà veure les teves i seguir-te.",
   "confirmations.mute.message": "Segur que vols silenciar {name}?",
-  "confirmations.redraft.confirm": "Esborra i reescriu",
-  "confirmations.redraft.message": "Segur que vols esborrar aquesta publicació i tornar-la a escriure? Perdràs tots els impulsos i els preferits, i les respostes a la publicació original es quedaran orfes.",
+  "confirmations.redraft.confirm": "Elimina i reescriu-la",
+  "confirmations.redraft.message": "Segur que vols eliminar aquesta publicació i tornar-la a escriure? Es perdran tots els impulsos i els favorits, i les respostes a la publicació original quedaran aïllades.",
   "confirmations.reply.confirm": "Respon",
   "confirmations.reply.message": "Si respons ara, sobreescriuràs el missatge que estàs editant. Segur que vols continuar?",
   "confirmations.unfollow.confirm": "Deixa de seguir",
@@ -213,7 +213,7 @@
   "empty_column.blocks": "Encara no has blocat cap usuari.",
   "empty_column.bookmarked_statuses": "Encara no has marcat cap publicació com a preferida. Quan en marquis una, apareixerà aquí.",
   "empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!",
-  "empty_column.direct": "Encara no tens missatges directes. Quan n'enviïs o en rebis, es mostraran aquí.",
+  "empty_column.direct": "Encara no teniu missatges directes. Quan n'envieu o en rebeu, sortiran aquí.",
   "empty_column.domain_blocks": "Encara no hi ha dominis blocats.",
   "empty_column.explore_statuses": "No hi ha res en tendència ara mateix. Revisa-ho més tard!",
   "empty_column.favourited_statuses": "Encara no has afavorit cap publicació. Quan ho facis, apareixerà aquí.",
@@ -341,7 +341,7 @@
   "limited_account_hint.title": "Aquest perfil ha estat amagat pels moderadors de {domain}.",
   "lists.account.add": "Afegeix a la llista",
   "lists.account.remove": "Elimina de la llista",
-  "lists.delete": "Esborra la llista",
+  "lists.delete": "Elimina la llista",
   "lists.edit": "Edita la llista",
   "lists.edit.submit": "Canvia el títol",
   "lists.new.create": "Afegeix una llista",
@@ -543,7 +543,7 @@
   "status.cancel_reblog_private": "Desfés l'impuls",
   "status.cannot_reblog": "No es pot impulsar aquesta publicació",
   "status.copy": "Copia l'enllaç a la publicació",
-  "status.delete": "Esborra",
+  "status.delete": "Elimina",
   "status.detailed_status": "Vista detallada de la conversa",
   "status.direct": "Missatge directe a @{name}",
   "status.edit": "Edita",
@@ -570,8 +570,8 @@
   "status.reblog_private": "Impulsa amb la visibilitat original",
   "status.reblogged_by": "impulsat per {name}",
   "status.reblogs.empty": "Encara no ha impulsat ningú aquest tut. Quan algú ho faci, apareixerà aquí.",
-  "status.redraft": "Esborra-la i reescriure-la",
-  "status.remove_bookmark": "Suprimeix el marcador",
+  "status.redraft": "Elimina i reescriu-la",
+  "status.remove_bookmark": "Elimina el marcador",
   "status.replied_to": "En resposta a {name}",
   "status.reply": "Respon",
   "status.replyAll": "Respon al fil",
@@ -622,7 +622,7 @@
   "upload_form.description_missing": "No s'hi ha afegit cap descripció",
   "upload_form.edit": "Edita",
   "upload_form.thumbnail": "Canvia la miniatura",
-  "upload_form.undo": "Esborra",
+  "upload_form.undo": "Elimina",
   "upload_form.video_description": "Descripció per a persones amb discapacitat auditiva o amb discapacitat visual",
   "upload_modal.analyzing_picture": "S'analitza la imatge…",
   "upload_modal.apply": "Aplica",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index e342aa473..f153d823b 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -13,13 +13,13 @@
   "about.rules": "Pravidla serveru",
   "account.account_note_header": "Poznámka",
   "account.add_or_remove_from_list": "Přidat nebo odstranit ze seznamů",
-  "account.badges.bot": "Robot",
+  "account.badges.bot": "Bot",
   "account.badges.group": "Skupina",
   "account.block": "Blokovat @{name}",
   "account.block_domain": "Blokovat doménu {domain}",
-  "account.blocked": "Blokován",
+  "account.blocked": "Blokovaný",
   "account.browse_more_on_origin_server": "Více na původním profilu",
-  "account.cancel_follow_request": "Odvolat žádost o sledování",
+  "account.cancel_follow_request": "Zrušit žádost o sledování",
   "account.direct": "Poslat @{name} přímou zprávu",
   "account.disable_notifications": "Přestat mě upozorňovat, když @{name} zveřejní příspěvek",
   "account.domain_blocked": "Doména blokována",
@@ -31,11 +31,11 @@
   "account.featured_tags.title": "Hlavní hashtagy uživatele {name}",
   "account.follow": "Sledovat",
   "account.followers": "Sledující",
-  "account.followers.empty": "Tohoto uživatele ještě nikdo nesleduje.",
+  "account.followers.empty": "Tohoto uživatele zatím nikdo nesleduje.",
   "account.followers_counter": "{count, plural, one {{counter} Sledující} few {{counter} Sledující} many {{counter} Sledujících} other {{counter} Sledujících}}",
   "account.following": "Sledujete",
   "account.following_counter": "{count, plural, one {{counter} Sledovaný} few {{counter} Sledovaní} many {{counter} Sledovaných} other {{counter} Sledovaných}}",
-  "account.follows.empty": "Tento uživatel ještě nikoho nesleduje.",
+  "account.follows.empty": "Tento uživatel zatím nikoho nesleduje.",
   "account.follows_you": "Sleduje vás",
   "account.go_to_profile": "Přejít na profil",
   "account.hide_reblogs": "Skrýt boosty od @{name}",
@@ -45,7 +45,7 @@
   "account.locked_info": "Stav soukromí tohoto účtu je nastaven na zamčeno. Jeho vlastník ručně posuzuje, kdo ho může sledovat.",
   "account.media": "Média",
   "account.mention": "Zmínit @{name}",
-  "account.moved_to": "{name} uvedl/a, že jeho/její nový účet je nyní:",
+  "account.moved_to": "Uživatel {name} uvedl, že jeho nový účet je nyní:",
   "account.mute": "Skrýt @{name}",
   "account.mute_notifications": "Skrýt oznámení od @{name}",
   "account.muted": "Skrytý",
@@ -80,17 +80,17 @@
   "audio.hide": "Skrýt zvuk",
   "autosuggest_hashtag.per_week": "{count} za týden",
   "boost_modal.combo": "Příště můžete pro přeskočení stisknout {combo}",
-  "bundle_column_error.copy_stacktrace": "Kopírovat zprávu o chybě",
+  "bundle_column_error.copy_stacktrace": "Zkopírovat zprávu o chybě",
   "bundle_column_error.error.body": "Požadovanou stránku nelze vykreslit. Může to být způsobeno chybou v našem kódu nebo problémem s kompatibilitou prohlížeče.",
   "bundle_column_error.error.title": "Ale ne!",
-  "bundle_column_error.network.body": "Při pokusu o načtení této stránky došlo k chybě. To může být způsobeno dočasným problémem s připojením k Internetu nebo k tomuto serveru.",
+  "bundle_column_error.network.body": "Při pokusu o načtení této stránky došlo k chybě. To může být způsobeno dočasným problémem s připojením k internetu nebo k tomuto serveru.",
   "bundle_column_error.network.title": "Chyba sítě",
   "bundle_column_error.retry": "Zkusit znovu",
   "bundle_column_error.return": "Zpět na domovskou stránku",
   "bundle_column_error.routing.body": "Požadovaná stránka nebyla nalezena. Opravdu je URL v adresním řádku správně?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Zavřít",
-  "bundle_modal_error.message": "Při načítání této komponenty se něco pokazilo.",
+  "bundle_modal_error.message": "Při načítání tohoto komponentu se něco pokazilo.",
   "bundle_modal_error.retry": "Zkusit znovu",
   "closed_registrations.other_server_instructions": "Protože Mastodon je decentralizovaný, můžete si vytvořit účet na jiném serveru a přesto komunikovat s tímto serverem.",
   "closed_registrations_modal.description": "V současné době není možné vytvořit účet na {domain}, ale mějte prosím na paměti, že k používání Mastodonu nepotřebujete účet konkrétně na {domain}.",
@@ -127,16 +127,16 @@
   "compose.language.search": "Prohledat jazyky...",
   "compose_form.direct_message_warning_learn_more": "Zjistit více",
   "compose_form.encryption_warning": "Příspěvky na Mastodonu nejsou end-to-end šifrovány. Nesdílejte přes Mastodon žádné citlivé informace.",
-  "compose_form.hashtag_warning": "Tento příspěvek nebude zobrazen pod žádným hashtagem, neboť je neuvedený. Pouze veřejné příspěvky mohou být vyhledány podle hashtagu.",
+  "compose_form.hashtag_warning": "Tento příspěvek nebude zobrazen pod žádným hashtagem, neboť je neveřejný. Pouze veřejné příspěvky mohou být vyhledány podle hashtagu.",
   "compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky učené pouze pro sledující.",
   "compose_form.lock_disclaimer.lock": "zamčený",
   "compose_form.placeholder": "Co se vám honí hlavou?",
   "compose_form.poll.add_option": "Přidat volbu",
   "compose_form.poll.duration": "Doba trvání ankety",
   "compose_form.poll.option_placeholder": "Volba {number}",
-  "compose_form.poll.remove_option": "Odstranit tuto volbu",
-  "compose_form.poll.switch_to_multiple": "Povolit u ankety výběr více možností",
-  "compose_form.poll.switch_to_single": "Povolit u ankety výběr jediné možnosti",
+  "compose_form.poll.remove_option": "Odebrat tuto volbu",
+  "compose_form.poll.switch_to_multiple": "Povolit u ankety výběr více voleb",
+  "compose_form.poll.switch_to_single": "Povolit u ankety výběr pouze jedné volby",
   "compose_form.publish": "Zveřejnit",
   "compose_form.publish_form": "Zveřejnit",
   "compose_form.publish_loud": "{publish}!",
@@ -150,22 +150,22 @@
   "confirmation_modal.cancel": "Zrušit",
   "confirmations.block.block_and_report": "Blokovat a nahlásit",
   "confirmations.block.confirm": "Blokovat",
-  "confirmations.block.message": "Opravdu chcete zablokovat {name}?",
-  "confirmations.cancel_follow_request.confirm": "Odvolat žádost",
-  "confirmations.cancel_follow_request.message": "Opravdu chcete odvolat svou žádost o sledování {name}?",
+  "confirmations.block.message": "Opravdu chcete blokovat {name}?",
+  "confirmations.cancel_follow_request.confirm": "Zrušit žádost",
+  "confirmations.cancel_follow_request.message": "Opravdu chcete zrušit svou žádost o sledování {name}?",
   "confirmations.delete.confirm": "Smazat",
   "confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?",
   "confirmations.delete_list.confirm": "Smazat",
   "confirmations.delete_list.message": "Opravdu chcete tento seznam navždy smazat?",
   "confirmations.discard_edit_media.confirm": "Zahodit",
-  "confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, přesto je zahodit?",
+  "confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, chcete je přesto zahodit?",
   "confirmations.domain_block.confirm": "Blokovat celou doménu",
-  "confirmations.domain_block.message": "Opravdu chcete blokovat celou doménu {domain}? Ve většině případů stačí zablokovat nebo skrýt pár konkrétních uživatelů, což také doporučujeme. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.",
+  "confirmations.domain_block.message": "Opravdu chcete blokovat celou doménu {domain}? Ve většině případů stačí blokovat nebo skrýt pár konkrétních uživatelů, což také doporučujeme. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.",
   "confirmations.logout.confirm": "Odhlásit se",
   "confirmations.logout.message": "Opravdu se chcete odhlásit?",
   "confirmations.mute.confirm": "Skrýt",
   "confirmations.mute.explanation": "Tohle skryje uživatelovy příspěvky a příspěvky, které ho zmiňují, ale uživatel stále uvidí vaše příspěvky a může vás sledovat.",
-  "confirmations.mute.message": "Opravdu chcete {name} skrýt?",
+  "confirmations.mute.message": "Opravdu chcete skrýt uživatele {name}?",
   "confirmations.redraft.confirm": "Smazat a přepsat",
   "confirmations.redraft.message": "Opravdu chcete smazat a přepsat tento příspěvek? Oblíbení a boosty budou ztraceny a odpovědi na původní příspěvek ztratí kontext.",
   "confirmations.reply.confirm": "Odpovědět",
@@ -177,16 +177,16 @@
   "conversation.open": "Zobrazit konverzaci",
   "conversation.with": "S {names}",
   "copypaste.copied": "Zkopírováno",
-  "copypaste.copy": "Kopírovat",
+  "copypaste.copy": "Zkopírovat",
   "directory.federated": "Ze známého fedivesmíru",
-  "directory.local": "Pouze z domény {domain}",
+  "directory.local": "Pouze z {domain}",
   "directory.new_arrivals": "Nově příchozí",
   "directory.recently_active": "Nedávno aktivní",
   "disabled_account_banner.account_settings": "Nastavení účtu",
   "disabled_account_banner.text": "Váš účet {disabledAccount} je momentálně deaktivován.",
   "dismissable_banner.community_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí, jejichž účty hostuje {domain}.",
   "dismissable_banner.dismiss": "Zavřít",
-  "dismissable_banner.explore_links": "O těchto novinkách hovoří lidé na tomto a dalších serverech decentralizované sítě právě teď.",
+  "dismissable_banner.explore_links": "O těchto zprávách hovoří lidé na tomto a dalších serverech decentralizované sítě právě teď.",
   "dismissable_banner.explore_statuses": "Tyto příspěvky z tohoto a dalších serverů v decentralizované síti nyní na tomto serveru získávají na popularitě.",
   "dismissable_banner.explore_tags": "Tyto hashtagy právě teď získávají na popularitě mezi lidmi na tomto a dalších serverech decentralizované sítě.",
   "dismissable_banner.public_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí na tomto a jiných serverech decentralizované sítě, o kterých tento server ví.",
@@ -211,22 +211,22 @@
   "empty_column.account_timeline": "Nejsou tu žádné příspěvky!",
   "empty_column.account_unavailable": "Profil není dostupný",
   "empty_column.blocks": "Ještě jste nezablokovali žádného uživatele.",
-  "empty_column.bookmarked_statuses": "Ještě nemáte v záložkách žádné příspěvky. Pokud si do nich nějaký přidáte, zobrazí se zde.",
+  "empty_column.bookmarked_statuses": "Zatím v záložkách nemáte žádné příspěvky. Až si do nich nějaký přidáte, zobrazí se zde.",
   "empty_column.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!",
-  "empty_column.direct": "Ještě nemáte žádné přímé zprávy. Pokud nějakou pošlete nebo dostanete, zobrazí se zde.",
-  "empty_column.domain_blocks": "Ještě nemáte žádné blokované domény.",
+  "empty_column.direct": "Zatím nemáte žádné přímé zprávy. Až nějakou pošlete nebo dostanete, zobrazí se zde.",
+  "empty_column.domain_blocks": "Ještě nemáte žádné zablokované domény.",
   "empty_column.explore_statuses": "Momentálně není nic populární. Vraťte se později!",
-  "empty_column.favourited_statuses": "Ještě nemáte žádné oblíbené příspěvky. Pokud si nějaký oblíbíte, zobrazí se zde.",
-  "empty_column.favourites": "Tento příspěvek si ještě nikdo neoblíbil. Pokud to někdo udělá, zobrazí se zde.",
+  "empty_column.favourited_statuses": "Zatím nemáte žádné oblíbené příspěvky. Až si nějaký oblíbíte, zobrazí se zde.",
+  "empty_column.favourites": "Tento příspěvek si zatím nikdo neoblíbil. Až to někdo udělá, zobrazí se zde.",
   "empty_column.follow_recommendations": "Zdá se, že pro vás nelze vygenerovat žádné návrhy. Můžete zkusit přes vyhledávání nalézt lidi, které znáte, nebo prozkoumat populární hashtagy.",
-  "empty_column.follow_requests": "Ještě nemáte žádné žádosti o sledování. Pokud nějakou obdržíte, zobrazí se zde.",
-  "empty_column.hashtag": "Pod tímto hashtagem zde ještě nic není.",
+  "empty_column.follow_requests": "Zatím nemáte žádné žádosti o sledování. Až nějakou obdržíte, zobrazí se zde.",
+  "empty_column.hashtag": "Pod tímto hashtagem zde zatím nic není.",
   "empty_column.home": "Vaše domovská časová osa je prázdná! Naplňte ji sledováním dalších lidí. {suggestions}",
   "empty_column.home.suggestions": "Prohlédněte si návrhy",
-  "empty_column.list": "V tomto seznamu ještě nic není. Pokud nějaký člen z tohoto seznamu napíše nový příspěvek, objeví se zde.",
-  "empty_column.lists": "Ještě nemáte žádný seznam. Pokud nějaký vytvoříte, zobrazí se zde.",
-  "empty_column.mutes": "Ještě jste neskryli žádného uživatele.",
-  "empty_column.notifications": "Momentálně nemáte žádná oznámení. Jakmile s vámi někdo bude interagovat, uvidíte to zde.",
+  "empty_column.list": "V tomto seznamu zatím nic není. Až nějaký člen z tohoto seznamu zveřejní nový příspěvek, objeví se zde.",
+  "empty_column.lists": "Zatím nemáte žádné seznamy. Až nějaký vytvoříte, zobrazí se zde.",
+  "empty_column.mutes": "Zatím jste neskryli žádného uživatele.",
+  "empty_column.notifications": "Zatím nemáte žádná oznámení. Až s vámi někdo bude interagovat, uvidíte to zde.",
   "empty_column.public": "Tady nic není! Napište něco veřejně, nebo začněte ručně sledovat uživatele z jiných serverů, aby tu něco přibylo",
   "error.unexpected_crash.explanation": "Kvůli chybě v našem kódu nebo problému s kompatibilitou prohlížeče nemohla být tato stránka správně zobrazena.",
   "error.unexpected_crash.explanation_addons": "Tuto stránku nelze správně zobrazit. Takovou chybu obvykle způsobuje doplněk prohlížeče nebo nástroje pro automatický překlad.",
@@ -236,11 +236,11 @@
   "errors.unexpected_crash.report_issue": "Nahlásit problém",
   "explore.search_results": "Výsledky hledání",
   "explore.title": "Objevit",
-  "filter_modal.added.context_mismatch_explanation": "Tato kategorie filtru se nevztahuje na kontext, ve kterém jste tento příspěvek otevřeli. Pokud chcete, aby byl příspěvek filtrován i v tomto kontextu, budete muset filtr upravit.",
+  "filter_modal.added.context_mismatch_explanation": "Tato kategorie filtrů se nevztahuje na kontext, ve kterém jste tento příspěvek otevřeli. Pokud chcete, aby byl příspěvek filtrován i v tomto kontextu, budete muset filtr upravit.",
   "filter_modal.added.context_mismatch_title": "Kontext se neshoduje!",
   "filter_modal.added.expired_explanation": "Tato kategorie filtrů vypršela, budete muset změnit datum vypršení platnosti, aby mohla být použita.",
   "filter_modal.added.expired_title": "Platnost filtru vypršela!",
-  "filter_modal.added.review_and_configure": "Chcete-li zkontrolovat a dále konfigurovat tuto kategorii filtru, přejděte do {settings_link}.",
+  "filter_modal.added.review_and_configure": "Chcete-li zkontrolovat a dále konfigurovat tuto kategorii filtrů, přejděte do {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Nastavení filtru",
   "filter_modal.added.settings_link": "stránka nastavení",
   "filter_modal.added.short_explanation": "Tento příspěvek byl přidán do následující kategorie filtrů: {title}.",
@@ -254,10 +254,10 @@
   "filter_modal.title.status": "Filtrovat příspěvek",
   "follow_recommendations.done": "Hotovo",
   "follow_recommendations.heading": "Sledujte lidi, jejichž příspěvky chcete vidět! Tady jsou nějaké návrhy.",
-  "follow_recommendations.lead": "Příspěvky od lidí, které sledujete, se budou objevovat v chronologickém pořadí ve vaší domovské ose. Nebojte se, že uděláte chybu, stejně snadno můžete lidi kdykoliv přestat sledovat!",
+  "follow_recommendations.lead": "Příspěvky od lidí, které sledujete, se budou objevovat v chronologickém pořadí ve vašem domovském kanálu. Nebojte se, že uděláte chybu, stejně snadno můžete lidi kdykoliv přestat sledovat!",
   "follow_request.authorize": "Autorizovat",
   "follow_request.reject": "Zamítnout",
-  "follow_requests.unlocked_explanation": "Přestože váš účet není zamčený, administrátor {domain} usoudil, že byste mohli chtít tyto požadavky na sledování zkontrolovat ručně.",
+  "follow_requests.unlocked_explanation": "Přestože váš účet není zamčený, administrátor {domain} usoudil, že byste mohli chtít tyto žádosti o sledování zkontrolovat ručně.",
   "footer.about": "O aplikaci",
   "footer.directory": "Adresář profilů",
   "footer.get_app": "Získat aplikaci",
@@ -277,7 +277,7 @@
   "hashtag.column_settings.tag_mode.none": "Žádný z těchto",
   "hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
   "hashtag.follow": "Sledovat hashtag",
-  "hashtag.unfollow": "Zrušit sledování hashtagu",
+  "hashtag.unfollow": "Přestat sledovat hashtag",
   "home.column_settings.basic": "Základní",
   "home.column_settings.show_reblogs": "Zobrazit boosty",
   "home.column_settings.show_replies": "Zobrazit odpovědi",
@@ -291,7 +291,7 @@
   "interaction_modal.on_this_server": "Na tomto serveru",
   "interaction_modal.other_server_instructions": "Zkopírujte a vložte tuto URL adresu do vyhledávacího pole vaší oblíbené Mastodon aplikace nebo webového rozhraní vašeho Mastodon serveru.",
   "interaction_modal.preamble": "Protože Mastodon je decentralizovaný, pokud nemáte účet na tomto serveru, můžete použít svůj existující účet hostovaný jiným Mastodon serverem nebo kompatibilní platformou.",
-  "interaction_modal.title.favourite": "Oblíbený příspěvek od {name}",
+  "interaction_modal.title.favourite": "Oblíbit si příspěvek od uživatele {name}",
   "interaction_modal.title.follow": "Sledovat {name}",
   "interaction_modal.title.reblog": "Boostnout příspěvek uživatele {name}",
   "interaction_modal.title.reply": "Odpovědět na příspěvek uživatele {name}",
@@ -302,10 +302,10 @@
   "keyboard_shortcuts.blocked": "Otevřít seznam blokovaných uživatelů",
   "keyboard_shortcuts.boost": "Boostnout příspěvek",
   "keyboard_shortcuts.column": "Focus na sloupec",
-  "keyboard_shortcuts.compose": "Focus na textové pole nového příspěvku",
+  "keyboard_shortcuts.compose": "Zaměřit se na textové pole nového příspěvku",
   "keyboard_shortcuts.description": "Popis",
   "keyboard_shortcuts.direct": "k otevření sloupce přímých zpráv",
-  "keyboard_shortcuts.down": "Posunout dolů v seznamu",
+  "keyboard_shortcuts.down": "Posunout v seznamu dolů",
   "keyboard_shortcuts.enter": "Otevřít příspěvek",
   "keyboard_shortcuts.favourite": "Oblíbit si příspěvek",
   "keyboard_shortcuts.favourites": "Otevřít seznam oblíbených",
@@ -324,14 +324,14 @@
   "keyboard_shortcuts.profile": "Otevřít autorův profil",
   "keyboard_shortcuts.reply": "Odpovědět na příspěvek",
   "keyboard_shortcuts.requests": "Otevřít seznam žádostí o sledování",
-  "keyboard_shortcuts.search": "Focus na vyhledávací lištu",
+  "keyboard_shortcuts.search": "Zaměřit se na vyhledávací lištu",
   "keyboard_shortcuts.spoilers": "Zobrazit/skrýt pole varování o obsahu",
   "keyboard_shortcuts.start": "Otevřít sloupec „začínáme“",
   "keyboard_shortcuts.toggle_hidden": "Zobrazit/skrýt text za varováním o obsahu",
   "keyboard_shortcuts.toggle_sensitivity": "Zobrazit/skrýt média",
   "keyboard_shortcuts.toot": "Začít nový příspěvek",
-  "keyboard_shortcuts.unfocus": "Zrušit focus nového příspěvku/hledání",
-  "keyboard_shortcuts.up": "Posunout nahoru v seznamu",
+  "keyboard_shortcuts.unfocus": "Zrušit zaměření na nový příspěvek/hledání",
+  "keyboard_shortcuts.up": "Posunout v seznamu nahoru",
   "lightbox.close": "Zavřít",
   "lightbox.compress": "Sbalit pole zobrazení obrázku",
   "lightbox.expand": "Rozbalit pole zobrazení obrázku",
@@ -439,7 +439,7 @@
   "poll.total_people": "{count, plural, one {# člověk} few {# lidé} many {# lidí} other {# lidí}}",
   "poll.total_votes": "{count, plural, one {# hlas} few {# hlasy} many {# hlasů} other {# hlasů}}",
   "poll.vote": "Hlasovat",
-  "poll.voted": "Hlasoval/a jste pro tuto odpověď",
+  "poll.voted": "Hlasovali jste pro tuto odpověď",
   "poll.votes": "{votes, plural, one {# hlas} few {# hlasy} many {# hlasů} other {# hlasů}}",
   "poll_button.add_poll": "Přidat anketu",
   "poll_button.remove_poll": "Odebrat anketu",
@@ -451,7 +451,7 @@
   "privacy.public.long": "Viditelný pro všechny",
   "privacy.public.short": "Veřejné",
   "privacy.unlisted.long": "Viditelný pro všechny, ale vyňat z funkcí objevování",
-  "privacy.unlisted.short": "Neuvedený",
+  "privacy.unlisted.short": "Neveřejný",
   "privacy_policy.last_updated": "Naposledy aktualizováno {date}",
   "privacy_policy.title": "Zásady ochrany osobních údajů",
   "refresh": "Obnovit",
@@ -505,7 +505,7 @@
   "report.thanks.title": "Nechcete tohle vidět?",
   "report.thanks.title_actionable": "Děkujeme za nahlášení, podíváme se na to.",
   "report.unfollow": "Přestat sledovat @{name}",
-  "report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domácí časové ose, přestaňte jej sledovat.",
+  "report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.",
   "report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}",
   "report_notification.categories.other": "Ostatní",
   "report_notification.categories.spam": "Spam",
@@ -535,7 +535,7 @@
   "server_banner.server_stats": "Statistiky serveru:",
   "sign_in_banner.create_account": "Vytvořit účet",
   "sign_in_banner.sign_in": "Přihlásit se",
-  "sign_in_banner.text": "Přihlaste se pro sledování profilů nebo hashtagů, oblíbených, sdílení a odpovědi na příspěvky nebo interakci z vašeho účtu na jiném serveru.",
+  "sign_in_banner.text": "Přihlaste se pro sledování profilů nebo hashtagů, oblíbení, sdílení a odpovědí na příspěvky nebo interakci z vašeho účtu na jiném serveru.",
   "status.admin_account": "Otevřít moderátorské rozhraní pro @{name}",
   "status.admin_status": "Otevřít tento příspěvek v moderátorském rozhraní",
   "status.block": "Blokovat @{name}",
@@ -587,9 +587,9 @@
   "status.translate": "Přeložit",
   "status.translated_from_with": "Přeloženo z {lang} pomocí {provider}",
   "status.uncached_media_warning": "Nedostupné",
-  "status.unmute_conversation": "Zrušit skrytí konverzaci",
+  "status.unmute_conversation": "Zrušit skrytí konverzace",
   "status.unpin": "Odepnout z profilu",
-  "subscribed_languages.lead": "Po změně se objeví pouze příspěvky ve vybraných jazycích na vaší domovské časové ose a seznamu časových os. Pro příjem příspěvků ve všech jazycích nevyberte žádný jazyk.",
+  "subscribed_languages.lead": "Ve vašem domovském kanálu a časových osách se po změně budou objevovat pouze příspěvky ve vybraných jazycích. Pro příjem příspěvků ve všech jazycích nevyberte žádný jazyk.",
   "subscribed_languages.save": "Uložit změny",
   "subscribed_languages.target": "Změnit odebírané jazyky na {target}",
   "suggestions.dismiss": "Odmítnout návrh",
@@ -616,7 +616,7 @@
   "upload_area.title": "Nahrajte přetažením",
   "upload_button.label": "Přidat obrázky, video nebo audio soubor",
   "upload_error.limit": "Byl překročen limit nahraných souborů.",
-  "upload_error.poll": "U anket není nahrávání souborů povoleno.",
+  "upload_error.poll": "Nahrávání souborů není povoleno s anketami.",
   "upload_form.audio_description": "Popis pro sluchově postižené",
   "upload_form.description": "Popis pro zrakově postižené",
   "upload_form.description_missing": "Nebyl přidán popis",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 96567a6a5..0f29be2c9 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -9,7 +9,7 @@
   "about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei storio na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.",
   "about.domain_blocks.suspended.title": "Ataliwyd",
   "about.not_available": "Nid yw'r wybodaeth hon ar gael ar y gweinydd hwn.",
-  "about.powered_by": "Cyfrwng cymdeithasol datganoledig wedi ei yrru gan {mastodon}",
+  "about.powered_by": "Cyfrwng cymdeithasol datganoledig yn cael ei yrru gan {mastodon}",
   "about.rules": "Rheolau'r gweinydd",
   "account.account_note_header": "Nodyn",
   "account.add_or_remove_from_list": "Ychwanegu neu Dileu o'r rhestrau",
@@ -26,7 +26,7 @@
   "account.edit_profile": "Golygu proffil",
   "account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio",
   "account.endorse": "Dangos ar fy mhroffil",
-  "account.featured_tags.last_status_at": "Y cofnod diwethaf ar {date}",
+  "account.featured_tags.last_status_at": "Y postiad diwethaf ar {date}",
   "account.featured_tags.last_status_never": "Dim postiadau",
   "account.featured_tags.title": "hashnodau dan sylw {name}",
   "account.follow": "Dilyn",
@@ -39,16 +39,16 @@
   "account.follows_you": "Yn eich dilyn chi",
   "account.go_to_profile": "Mynd i'r proffil",
   "account.hide_reblogs": "Cuddio hybiau gan @{name}",
-  "account.joined_short": "Ymunodd",
-  "account.languages": "Newid ieithoedd wedi tanysgrifio iddynt nhw",
+  "account.joined_short": "Wedi Ymuno",
+  "account.languages": "Newid ieithoedd wedi tanysgrifio iddyn nhw",
   "account.link_verified_on": "Gwiriwyd perchnogaeth y ddolen yma ar {date}",
   "account.locked_info": "Mae'r statws preifatrwydd cyfrif hwn wedi'i osod i fod ar glo. Mae'r perchennog yn adolygu'r sawl sy'n gallu eu dilyn.",
   "account.media": "Cyfryngau",
   "account.mention": "Crybwyll @{name}",
   "account.moved_to": "Mae {name} wedi nodi fod eu cyfrif newydd yn:",
-  "account.mute": "Anwybyddu @{name}",
-  "account.mute_notifications": "Diffodd hysbysiadau o @{name}",
-  "account.muted": "Wedi anwybyddu",
+  "account.mute": "Tewi @{name}",
+  "account.mute_notifications": "Tewi hysbysiadau o @{name}",
+  "account.muted": "Wedi tewi",
   "account.open_original_page": "Agor y dudalen wreiddiol",
   "account.posts": "Postiadau",
   "account.posts_with_replies": "Postiadau ac atebion",
@@ -56,14 +56,14 @@
   "account.requested": "Aros am gymeradwyaeth. Cliciwch er mwyn canslo cais dilyn",
   "account.share": "Rhannwch broffil @{name}",
   "account.show_reblogs": "Dangos hybiau gan @{name}",
-  "account.statuses_counter": "{count, plural, one {Postiad: {counter}} other {Postiadau: {counter}}}",
+  "account.statuses_counter": "{count, plural, one {Postiad: {counter}} other {Postiad: {counter}}}",
   "account.unblock": "Dadflocio @{name}",
   "account.unblock_domain": "Dadflocio parth {domain}",
   "account.unblock_short": "Dadflocio",
-  "account.unendorse": "Peidio a'i arddangos ar fy mhroffil",
+  "account.unendorse": "Peidio a'i ddangos ar fy mhroffil",
   "account.unfollow": "Dad-ddilyn",
-  "account.unmute": "Dad-anwybyddu {name}",
-  "account.unmute_notifications": "Dad-ddiffodd hysbysiadau o @{name}",
+  "account.unmute": "Dad-dewi {name}",
+  "account.unmute_notifications": "Dad-dewi hysbysiadau o @{name}",
   "account.unmute_short": "Dad-anwybyddu",
   "account_note.placeholder": "Clicio i ychwanegu nodyn",
   "admin.dashboard.daily_retention": "Cyfradd cadw defnyddwyr fesul diwrnod ar ôl cofrestru",
@@ -95,20 +95,20 @@
   "closed_registrations.other_server_instructions": "Gan fod Mastodon yn ddatganoledig, gallwch greu cyfrif ar weinydd arall a dal i ryngweithio gyda hwn.",
   "closed_registrations_modal.description": "Ar hyn o bryd nid yw'n bosib creu cyfrif ar {domain}, ond cadwch mewn cof nad oes raid i chi gael cyfrif yn benodol ar {domain} i ddefnyddio Mastodon.",
   "closed_registrations_modal.find_another_server": "Dod o hyd i weinydd arall",
-  "closed_registrations_modal.preamble": "Mae Mastodon wedi'i ddatganoli, felly does dim gwahaniaeth ble rydych chi'n creu eich cyfrif, byddwch chi'n gallu dilyn a rhyngweithio ag unrhyw un ar y gweinydd hwn. Gallwch hyd yn oed ei gynnal ef eich hun!",
+  "closed_registrations_modal.preamble": "Mae Mastodon wedi'i ddatganoli, felly does dim gwahaniaeth ble rydych chi'n creu eich cyfrif, byddwch chi'n gallu dilyn a rhyngweithio ag unrhyw un ar y gweinydd hwn. Gallwch hyd yn oed ei gynnal un eich hun!",
   "closed_registrations_modal.title": "Ymgofrestru ar Mastodon",
   "column.about": "Ynghylch",
   "column.blocks": "Defnyddwyr a flociwyd",
-  "column.bookmarks": "Nodau Tudalen",
+  "column.bookmarks": "Nodau tudalen",
   "column.community": "Ffrwd lleol",
   "column.direct": "Negeseuon preifat",
   "column.directory": "Pori proffiliau",
-  "column.domain_blocks": "Parthau cuddiedig",
+  "column.domain_blocks": "Parthau wedi'u blocio",
   "column.favourites": "Ffefrynnau",
   "column.follow_requests": "Ceisiadau dilyn",
-  "column.home": "Hafan",
+  "column.home": "Cartref",
   "column.lists": "Rhestrau",
-  "column.mutes": "Wedi anwybyddu",
+  "column.mutes": "Defnyddwyr wedi'u tewi",
   "column.notifications": "Hysbysiadau",
   "column.pins": "Postiadau wedi eu pinio",
   "column.public": "Ffrwd y ffederasiwn",
@@ -150,7 +150,7 @@
   "confirmation_modal.cancel": "Diddymu",
   "confirmations.block.block_and_report": "Rhwystro ac Adrodd",
   "confirmations.block.confirm": "Blocio",
-  "confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
+  "confirmations.block.message": "Ydych chi'n siŵr eich bod eisiau blocio {name}?",
   "confirmations.cancel_follow_request.confirm": "Tynnu'r cais yn ôl",
   "confirmations.cancel_follow_request.message": "Ydych chi'n siŵr eich bod am dynnu'ch cais i ddilyn {name} yn ôl?",
   "confirmations.delete.confirm": "Dileu",
@@ -160,18 +160,18 @@
   "confirmations.discard_edit_media.confirm": "Dileu",
   "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg, eu taflu beth bynnag?",
   "confirmations.domain_block.confirm": "Blocio parth cyfan",
-  "confirmations.domain_block.message": "Ydych chi wir, wir eisiau blocio'r holl {domain}? Fel arfer, mae blocio neu anwybyddu pobl penodol yn broses mwy effeithiol. Ni fyddwch yn gweld cynnwys o'r parth hwnnw mewn ffrydiau cyhoeddus neu yn eich hysbysiadau. Bydd eich dilynwyr o'r parth hwnnw yn cael eu ddileu.",
+  "confirmations.domain_block.message": "Ydych chi wir, wir eisiau blocio'r holl {domain}? Fel arfer, mae blocio neu dewi pobl penodol yn broses mwy effeithiol. Fyddwch chi ddim yn gweld cynnwys o'r parth hwnnw mewn ffrydiau cyhoeddus neu yn eich hysbysiadau. Bydd eich dilynwyr o'r parth hwnnw yn cael eu ddileu.",
   "confirmations.logout.confirm": "Allgofnodi",
   "confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?",
-  "confirmations.mute.confirm": "Anwybyddu",
+  "confirmations.mute.confirm": "Tewi",
   "confirmations.mute.explanation": "Bydd hyn yn cuddio postiadau oddi wrthyn nhw a phostiadau sydd yn sôn amdanyn nhw, ond bydd hyn dal yn gadael iddyn nhw gweld eich postiadau a'ch dilyn.",
-  "confirmations.mute.message": "Ydych chi wir eisiau anwybyddu {name}?",
+  "confirmations.mute.message": "Ydych chi wir eisiau tewi {name}?",
   "confirmations.redraft.confirm": "Dileu ac ailddrafftio",
-  "confirmations.redraft.message": "Ydych chi wir eisiau dileu y post hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael eu colli, a bydd ymatebion i'r post gwreiddiol yn cael eu hamddifadu.",
+  "confirmations.redraft.message": "Ydych chi wir eisiau dileu y postiad hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael eu colli, a bydd ymatebion i'r postiad gwreiddiol yn cael eu hamddifadu.",
   "confirmations.reply.confirm": "Ateb",
-  "confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n sicr yr ydych am barhau?",
+  "confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n siŵr eich bod am barhau?",
   "confirmations.unfollow.confirm": "Dad-ddilyn",
-  "confirmations.unfollow.message": "Ydych chi'n sicr eich bod am ddad-ddilyn {name}?",
+  "confirmations.unfollow.message": "Ydych chi'n siŵr eich bod am ddad-ddilyn {name}?",
   "conversation.delete": "Dileu sgwrs",
   "conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
   "conversation.open": "Gweld sgwrs",
@@ -196,13 +196,13 @@
   "emoji_button.clear": "Clirio",
   "emoji_button.custom": "Unigryw",
   "emoji_button.flags": "Baneri",
-  "emoji_button.food": "Bwyd a Diod",
+  "emoji_button.food": "Bwyd & Diod",
   "emoji_button.label": "Mewnosodwch emoji",
   "emoji_button.nature": "Natur",
   "emoji_button.not_found": "Dim emojau'n cydweddu",
   "emoji_button.objects": "Gwrthrychau",
   "emoji_button.people": "Pobl",
-  "emoji_button.recent": "Defnyddir yn aml",
+  "emoji_button.recent": "Defnydd cyffredin",
   "emoji_button.search": "Chwilio...",
   "emoji_button.search_results": "Canlyniadau chwilio",
   "emoji_button.symbols": "Symbolau",
@@ -211,32 +211,32 @@
   "empty_column.account_timeline": "Dim postiadau yma!",
   "empty_column.account_unavailable": "Proffil ddim ar gael",
   "empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
-  "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bost wedi'u cadw fel nodau tudalen eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.",
+  "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bostiad wedi'u cadw fel nodau tudalen eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.",
   "empty_column.community": "Mae'r ffrwd lleol yn wag. Beth am ysgrifennu rhywbeth yn gyhoeddus?",
   "empty_column.direct": "Does gennych unrhyw negeseuon preifat eto. Pan byddwch yn anfon neu derbyn un, bydd yn ymddangos yma.",
   "empty_column.domain_blocks": "Nid oes yna unrhyw barthau cuddiedig eto.",
-  "empty_column.explore_statuses": "Does dim pynciau llosg ar hyn o bryd. Dewch nôl nes ymlaen!",
+  "empty_column.explore_statuses": "Does dim trendio ar hyn o bryd. Dewch nôl nes ymlaen!",
   "empty_column.favourited_statuses": "Nid oes gennych unrhyw hoff bostiadau eto. Pan y byddwch yn hoffi un, mi fydd yn ymddangos yma.",
   "empty_column.favourites": "Does neb wedi hoffi'r post hwn eto. Pan bydd rhywun yn ei hoffi, byddent yn ymddangos yma.",
   "empty_column.follow_recommendations": "Does dim awgrymiadau yma i chi. Gallwch geisio chwilio am bobl yr ydych yn eu hadnabod neu archwilio hashnodau sy'n trendio.",
   "empty_column.follow_requests": "Nid oes gennych unrhyw geisiadau dilyn eto. Pan fyddwch yn derbyn un, byddan nhw'n ymddangos yma.",
   "empty_column.hashtag": "Nid oes dim ar yr hashnod hwn eto.",
-  "empty_column.home": "Mae eich llinell amser gartref yn wag! Ymwelwch â {public} neu defnyddiwch y chwilotwr i ddechrau arni ac i gwrdd â defnyddwyr eraill.",
+  "empty_column.home": "Mae eich ffrwd gartref yn wag! Ymwelwch â {public} neu defnyddiwch y chwilotwr i ddechrau arni ac i gwrdd â defnyddwyr eraill.",
   "empty_column.home.suggestions": "Dyma rai awgrymiadau",
-  "empty_column.list": "Does dim yn y rhestr yma eto. Pan fydd aelodau'r rhestr yn cyhoeddi statws newydd, mi fydd yn ymddangos yma.",
+  "empty_column.list": "Does dim yn y rhestr yma eto. Pan fydd aelodau'r rhestr yn cyhoeddi postiad newydd, mi fydd yn ymddangos yma.",
   "empty_column.lists": "Nid oes gennych unrhyw restrau eto. Pan fyddwch yn creu un, mi fydd yn ymddangos yma.",
-  "empty_column.mutes": "Nid ydych wedi anwybyddu unrhyw ddefnyddwyr eto.",
-  "empty_column.notifications": "Nid oes gennych unrhyw hysbysiadau eto. Rhyngweithiwch ac eraill i ddechrau'r sgwrs.",
-  "empty_column.public": "Does dim byd yma! Ysgrifennwch rhywbeth yn gyhoeddus, neu dilynwch ddefnyddwyr o achosion eraill i'w lenwi",
+  "empty_column.mutes": "Nid ydych wedi tewi unrhyw ddefnyddwyr eto.",
+  "empty_column.notifications": "Nid oes gennych unrhyw hysbysiadau eto. Rhyngweithiwch ag eraill i ddechrau'r sgwrs.",
+  "empty_column.public": "Does dim byd yma! Ysgrifennwch rywbeth cyhoeddus, neu dilynwch ddefnyddwyr o weinyddion eraill i'w lanw",
   "error.unexpected_crash.explanation": "Oherwydd gwall yn ein cod neu oherwydd problem cysondeb porwr, nid oedd y dudalen hon gallu cael ei dangos yn gywir.",
-  "error.unexpected_crash.explanation_addons": "Ni ellid arddangos y dudalen hon yn gywir. Mae'r gwall hwn yn debygol o gael ei achosi gan ategyn porwr neu offer cyfieithu awtomatig.",
-  "error.unexpected_crash.next_steps": "Ceisiwch ail-lwytho y dudalen. Os nad yw hyn yn eich helpu, efallai gallech defnyddio Mastodon trwy borwr neu ap brodorol gwahanol.",
+  "error.unexpected_crash.explanation_addons": "Nid oes modd dangos y dudalen hon yn gywir. Mae'r gwall hwn yn debygol o gael ei achosi gan ategyn porwr neu offer cyfieithu awtomatig.",
+  "error.unexpected_crash.next_steps": "Ceisiwch ail-lwytho'r dudalen. Os nad yw hyn yn eich helpu, efallai gallwch ddefnyddio Mastodon trwy borwr neu ap brodorol gwahanol.",
   "error.unexpected_crash.next_steps_addons": "Ceisiwch eu hanalluogi ac adnewyddu'r dudalen. Os nad yw hynny'n helpu, efallai y byddwch yn dal i allu defnyddio Mastodon trwy borwr neu ap cynhenid arall.",
   "errors.unexpected_crash.copy_stacktrace": "Copïo'r olrhain stac i'r clipfwrdd",
   "errors.unexpected_crash.report_issue": "Rhoi gwybod am broblem",
   "explore.search_results": "Canlyniadau chwilio",
   "explore.title": "Archwilio",
-  "filter_modal.added.context_mismatch_explanation": "Nid yw'r categori hidlo hwn yn berthnasol i'r cyd-destun yr ydych wedi cyrchu'r postiad hwn ynddo. Os ydych chi am i'r post gael ei hidlo yn y cyd-destun hwn hefyd, bydd yn rhaid i chi olygu'r hidlydd.",
+  "filter_modal.added.context_mismatch_explanation": "Nid yw'r categori hidlo hwn yn berthnasol i'r cyd-destun yr ydych wedi cyrchu'r postiad hwn ynddo. Os ydych chi am i'r postiad gael ei hidlo yn y cyd-destun hwn hefyd, bydd yn rhaid i chi olygu'r hidlydd.",
   "filter_modal.added.context_mismatch_title": "Diffyg cyfatebiaeth cyd-destun!",
   "filter_modal.added.expired_explanation": "Mae'r categori hidlydd hwn wedi dod i ben, bydd angen i chi newid y dyddiad dod i ben er mwyn iddo fod yn berthnasol.",
   "filter_modal.added.expired_title": "Hidlydd wedi dod i ben!",
@@ -249,15 +249,15 @@
   "filter_modal.select_filter.expired": "daeth i ben",
   "filter_modal.select_filter.prompt_new": "Categori newydd: {name}",
   "filter_modal.select_filter.search": "Chwilio neu greu",
-  "filter_modal.select_filter.subtitle": "Defnyddiwch gategori sy'n bodoli eisoes neu crëwch un newydd",
-  "filter_modal.select_filter.title": "Hidlo'r post hwn",
-  "filter_modal.title.status": "Hidlo post",
+  "filter_modal.select_filter.subtitle": "Defnyddiwch gategori sy'n bodoli eisoes neu crëu un newydd",
+  "filter_modal.select_filter.title": "Hidlo'r postiad hwn",
+  "filter_modal.title.status": "Hidlo postiad",
   "follow_recommendations.done": "Wedi gorffen",
   "follow_recommendations.heading": "Dilynwch y bobl yr hoffech chi weld eu postiadau! Dyma ambell i awgrymiad.",
   "follow_recommendations.lead": "Bydd postiadau gan bobl rydych chi'n eu dilyn yn ymddangos mewn trefn amser ar eich ffrwd cartref. Peidiwch â bod ofn gwneud camgymeriadau, gallwch chi ddad-ddilyn pobl yr un mor hawdd unrhyw bryd!",
-  "follow_request.authorize": "Caniatau",
+  "follow_request.authorize": "Awdurdodi",
   "follow_request.reject": "Gwrthod",
-  "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
+  "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, roedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
   "footer.about": "Ynghylch",
   "footer.directory": "Cyfeiriadur proffiliau",
   "footer.get_app": "Lawrlwytho'r ap",
@@ -280,104 +280,104 @@
   "hashtag.unfollow": "Dad-ddilyn hashnod",
   "home.column_settings.basic": "Syml",
   "home.column_settings.show_reblogs": "Dangos hybiau",
-  "home.column_settings.show_replies": "Dangos ymatebion",
+  "home.column_settings.show_replies": "Dangos atebion",
   "home.hide_announcements": "Cuddio cyhoeddiadau",
   "home.show_announcements": "Dangos cyhoeddiadau",
-  "interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi hoffi'r post hwn i roi gwybod i'r awdur eich bod chi'n ei werthfawrogi a'i gadw ar gyfer nes ymlaen.",
+  "interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi hoffi'r postiad hwn i roi gwybod i'r awdur eich bod chi'n ei werthfawrogi a'i gadw ar gyfer nes ymlaen.",
   "interaction_modal.description.follow": "Gyda chyfrif ar Mastodon, gallwch ddilyn {name} i dderbyn eu postiadau yn eich llif cartref.",
-  "interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r post hwn i'w rannu â'ch dilynwyr.",
-  "interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r post hwn.",
+  "interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r postiad hwn i'w rannu â'ch dilynwyr.",
+  "interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r postiad hwn.",
   "interaction_modal.on_another_server": "Ar weinydd gwahanol",
   "interaction_modal.on_this_server": "Ar y gweinydd hwn",
   "interaction_modal.other_server_instructions": "Copïwch a gludo'r URL hwn i faes chwilio eich hoff ap Mastodon neu ryngwyneb gwe eich gweinydd Mastodon.",
   "interaction_modal.preamble": "Gan fod Mastodon wedi'i ddatganoli, gallwch ddefnyddio'ch cyfrif presennol a gynhelir gan weinydd Mastodon arall neu blatfform cydnaws os nad oes gennych gyfrif ar yr un hwn.",
-  "interaction_modal.title.favourite": "Hoffi post {name}",
+  "interaction_modal.title.favourite": "Hoffi postiad {name}",
   "interaction_modal.title.follow": "Dilyn {name}",
-  "interaction_modal.title.reblog": "Hybu post {name}",
-  "interaction_modal.title.reply": "Ymateb i bost {name}",
+  "interaction_modal.title.reblog": "Hybu postiad {name}",
+  "interaction_modal.title.reply": "Ymateb i bostiad {name}",
   "intervals.full.days": "{number, plural, one {# dydd} two {# ddydd} other {# o ddyddiau}}",
   "intervals.full.hours": "{number, plural, one {# awr} other {# o oriau}}",
   "intervals.full.minutes": "{number, plural, one {# funud} other {# o funudau}}",
-  "keyboard_shortcuts.back": "i lywio nôl",
+  "keyboard_shortcuts.back": "Llywio nôl",
   "keyboard_shortcuts.blocked": "i agor rhestr defnyddwyr a flociwyd",
-  "keyboard_shortcuts.boost": "Hybu post",
+  "keyboard_shortcuts.boost": "Hybu postiad",
   "keyboard_shortcuts.column": "Ffocysu colofn",
-  "keyboard_shortcuts.compose": "i ffocysu yr ardal cyfansoddi testun",
+  "keyboard_shortcuts.compose": "Ffocysu ar ardal cyfansoddi testun",
   "keyboard_shortcuts.description": "Disgrifiad",
   "keyboard_shortcuts.direct": "i agor colofn negeseuon preifat",
-  "keyboard_shortcuts.down": "i symud lawr yn y rhestr",
+  "keyboard_shortcuts.down": "Symud lawr yn y rhestr",
   "keyboard_shortcuts.enter": "Agor post",
-  "keyboard_shortcuts.favourite": "i hoffi",
-  "keyboard_shortcuts.favourites": "i agor rhestr hoffi",
+  "keyboard_shortcuts.favourite": "Hoffi postiad",
+  "keyboard_shortcuts.favourites": "Agor rhestr ffefrynnau",
   "keyboard_shortcuts.federated": "Agor ffrwd y ffederasiwn",
   "keyboard_shortcuts.heading": "Bysellau brys",
-  "keyboard_shortcuts.home": "i agor ffrwd cartref",
-  "keyboard_shortcuts.hotkey": "Bysell brys",
-  "keyboard_shortcuts.legend": "i ddangos y rhestr hon",
+  "keyboard_shortcuts.home": "Agor ffrwd cartref",
+  "keyboard_shortcuts.hotkey": "Bysell boeth",
+  "keyboard_shortcuts.legend": "Dangos y rhestr hon",
   "keyboard_shortcuts.local": "Agor ffrwd lleol",
-  "keyboard_shortcuts.mention": "i grybwyll yr awdur",
-  "keyboard_shortcuts.muted": "Agor rhestr defnyddwyr rydych wedi anwybyddu",
-  "keyboard_shortcuts.my_profile": "i agor eich proffil",
-  "keyboard_shortcuts.notifications": "i agor colofn hysbysiadau",
-  "keyboard_shortcuts.open_media": "i agor cyfryngau",
+  "keyboard_shortcuts.mention": "Crybwyll yr awdur",
+  "keyboard_shortcuts.muted": "Agor rhestr defnyddwyr rydych wedi'u tewi",
+  "keyboard_shortcuts.my_profile": "Agor eich proffil",
+  "keyboard_shortcuts.notifications": "Agor colofn hysbysiadau",
+  "keyboard_shortcuts.open_media": "Agor cyfryngau",
   "keyboard_shortcuts.pinned": "Agor rhestr postiadau wedi'u pinio",
-  "keyboard_shortcuts.profile": "i agor proffil yr awdur",
-  "keyboard_shortcuts.reply": "i ateb",
-  "keyboard_shortcuts.requests": "i agor rhestr ceisiadau dilyn",
-  "keyboard_shortcuts.search": "i ffocysu chwilio",
-  "keyboard_shortcuts.spoilers": "i ddangos/cuddio'r maes CW",
-  "keyboard_shortcuts.start": "i agor colofn \"dechrau arni\"",
-  "keyboard_shortcuts.toggle_hidden": "i ddangos/cuddio testun tu ôl i CW",
-  "keyboard_shortcuts.toggle_sensitivity": "i ddangos/gyddio cyfryngau",
+  "keyboard_shortcuts.profile": "Agor proffil yr awdur",
+  "keyboard_shortcuts.reply": "Ateb i bostiad",
+  "keyboard_shortcuts.requests": "Agor rhestr ceisiadau dilyn",
+  "keyboard_shortcuts.search": "Ffocysu ar y bar chwilio",
+  "keyboard_shortcuts.spoilers": "Dangos/cuddio'r maes CW",
+  "keyboard_shortcuts.start": "Agor colofn \"dechrau arni\"",
+  "keyboard_shortcuts.toggle_hidden": "Dangos/cuddio testun tu ôl i CW",
+  "keyboard_shortcuts.toggle_sensitivity": "Dangos/cuddio cyfryngau",
   "keyboard_shortcuts.toot": "Dechrau post newydd",
-  "keyboard_shortcuts.unfocus": "i ddad-ffocysu ardal cyfansoddi testun/chwilio",
-  "keyboard_shortcuts.up": "i symud yn uwch yn y rhestr",
+  "keyboard_shortcuts.unfocus": "Dad-ffocysu ardal cyfansoddi testun/chwilio",
+  "keyboard_shortcuts.up": "Symud yn uwch yn y rhestr",
   "lightbox.close": "Cau",
   "lightbox.compress": "Cywasgu blwch gweld delwedd",
   "lightbox.expand": "Ehangu blwch gweld delwedd",
   "lightbox.next": "Nesaf",
   "lightbox.previous": "Blaenorol",
   "limited_account_hint.action": "Dangos y proffil beth bynnag",
-  "limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan arolygwyr {domain}.",
-  "lists.account.add": "Ychwanegwch at restr",
-  "lists.account.remove": "Dileu o'r rhestr",
+  "limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan gymedrolwyr {domain}.",
+  "lists.account.add": "Ychwanegu at restr",
+  "lists.account.remove": "Tynnu o'r rhestr",
   "lists.delete": "Dileu rhestr",
-  "lists.edit": "Golygwch rhestr",
+  "lists.edit": "Golygu rhestr",
   "lists.edit.submit": "Newid teitl",
   "lists.new.create": "Ychwanegu rhestr",
   "lists.new.title_placeholder": "Teitl rhestr newydd",
-  "lists.replies_policy.followed": "Unrhyw ddefnyddiwr a ddilynir",
+  "lists.replies_policy.followed": "Unrhyw ddefnyddiwr sy'n cael ei ddilyn",
   "lists.replies_policy.list": "Aelodau'r rhestr",
   "lists.replies_policy.none": "Neb",
-  "lists.replies_policy.title": "Dangos ymatebion i:",
-  "lists.search": "Chwilio ymysg pobl yr ydych yn eu dilyn",
+  "lists.replies_policy.title": "Dangos atebion i:",
+  "lists.search": "Chwilio ymysg pobl rydych yn eu dilyn",
   "lists.subheading": "Eich rhestrau",
-  "load_pending": "{count, plural, one {# eitem newydd} other {# eitemau newydd}}",
+  "load_pending": "{count, plural, one {# eitem newydd} other {# eitem newydd}}",
   "loading_indicator.label": "Llwytho...",
-  "media_gallery.toggle_visible": "Toglo gwelededd",
+  "media_gallery.toggle_visible": "{number, plural, one {Cuddio delwedd} other {Cuddio delwedd}}",
   "missing_indicator.label": "Heb ei ganfod",
-  "missing_indicator.sublabel": "Ni ellid canfod yr adnodd hwn",
-  "moved_to_account_banner.text": "Mae eich cyfrif {disabledAccount} wedi ei analluogi ar hyn y bryd am i chi symud i {movedToAccount}.",
+  "missing_indicator.sublabel": "Nid oes modd canfod yr adnodd hwn",
+  "moved_to_account_banner.text": "Ar hyn y bryd, mae eich cyfrif {disabledAccount} wedi ei analluogi am i chi symud i {movedToAccount}.",
   "mute_modal.duration": "Hyd",
   "mute_modal.hide_notifications": "Cuddio hysbysiadau gan y defnyddiwr hwn?",
   "mute_modal.indefinite": "Parhaus",
   "navigation_bar.about": "Ynghylch",
   "navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
-  "navigation_bar.bookmarks": "Tudalnodau",
+  "navigation_bar.bookmarks": "Nodau tudalen",
   "navigation_bar.community_timeline": "Ffrwd leol",
   "navigation_bar.compose": "Cyfansoddi post newydd",
   "navigation_bar.direct": "Negeseuon preifat",
   "navigation_bar.discover": "Darganfod",
-  "navigation_bar.domain_blocks": "Parthau cuddiedig",
+  "navigation_bar.domain_blocks": "Parthau wedi'u blocio",
   "navigation_bar.edit_profile": "Golygu proffil",
   "navigation_bar.explore": "Archwilio",
   "navigation_bar.favourites": "Ffefrynnau",
-  "navigation_bar.filters": "Geiriau ag anwybyddwyd",
+  "navigation_bar.filters": "Geiriau wedi'u tewi",
   "navigation_bar.follow_requests": "Ceisiadau dilyn",
-  "navigation_bar.follows_and_followers": "Dilynion a ddilynwyr",
+  "navigation_bar.follows_and_followers": "Yn dilyn a dilynwyr",
   "navigation_bar.lists": "Rhestrau",
   "navigation_bar.logout": "Allgofnodi",
-  "navigation_bar.mutes": "Defnyddwyr ag anwybyddwyd",
+  "navigation_bar.mutes": "Defnyddwyr wedi'u tewi",
   "navigation_bar.personal": "Personol",
   "navigation_bar.pins": "Postiadau wedi eu pinio",
   "navigation_bar.preferences": "Dewisiadau",
@@ -385,25 +385,25 @@
   "navigation_bar.search": "Chwilio",
   "navigation_bar.security": "Diogelwch",
   "not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.",
-  "notification.admin.report": "Adroddodd {name} {target}",
+  "notification.admin.report": "Adroddwyd ar {name} {target}",
   "notification.admin.sign_up": "Cofrestrodd {name}",
   "notification.favourite": "Hoffodd {name} eich post",
   "notification.follow": "Dilynodd {name} chi",
   "notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn",
-  "notification.mention": "Soniodd {name} amdanoch chi",
-  "notification.own_poll": "Mae eich pôl wedi diweddu",
+  "notification.mention": "Crybwyllodd {name} amdanoch chi",
+  "notification.own_poll": "Mae eich pleidlais wedi dod i ben",
   "notification.poll": "Mae pleidlais rydych wedi pleidleisio ynddi wedi dod i ben",
   "notification.reblog": "Hybodd {name} eich post",
   "notification.status": "{name} newydd ei bostio",
-  "notification.update": "Golygodd {name} bost",
+  "notification.update": "Golygodd {name} bostiad",
   "notifications.clear": "Clirio hysbysiadau",
-  "notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?",
+  "notifications.clear_confirmation": "Ydych chi'n siŵr eich bod am glirio'ch holl hysbysiadau am byth?",
   "notifications.column_settings.admin.report": "Adroddiadau newydd:",
   "notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:",
   "notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith",
   "notifications.column_settings.favourite": "Ffefrynnau:",
   "notifications.column_settings.filter_bar.advanced": "Dangos pob categori",
-  "notifications.column_settings.filter_bar.category": "Bar hidlo",
+  "notifications.column_settings.filter_bar.category": "Bar hidlo cyflym",
   "notifications.column_settings.filter_bar.show_bar": "Dangos y bar hidlo",
   "notifications.column_settings.follow": "Dilynwyr newydd:",
   "notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:",
@@ -413,7 +413,7 @@
   "notifications.column_settings.reblog": "Hybiau:",
   "notifications.column_settings.show": "Dangos yn y golofn",
   "notifications.column_settings.sound": "Chwarae sain",
-  "notifications.column_settings.status": "New toots:",
+  "notifications.column_settings.status": "Postiadau newydd:",
   "notifications.column_settings.unread_notifications.category": "Hysbysiadau heb eu darllen",
   "notifications.column_settings.unread_notifications.highlight": "Amlygu hysbysiadau heb eu darllen",
   "notifications.column_settings.update": "Golygiadau:",
@@ -425,28 +425,28 @@
   "notifications.filter.polls": "Canlyniadau polau",
   "notifications.filter.statuses": "Diweddariadau gan bobl rydych chi'n eu dilyn",
   "notifications.grant_permission": "Caniatáu.",
-  "notifications.group": "{count} o hysbysiadau",
-  "notifications.mark_as_read": "Marciwch bob hysbysiad fel y'i darllenwyd",
+  "notifications.group": "{count} hysbysiad",
+  "notifications.mark_as_read": "Marciwch bob hysbysiad wedi'i ddarllen",
   "notifications.permission_denied": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd cais am ganiatâd porwr a wrthodwyd yn flaenorol",
-  "notifications.permission_denied_alert": "Ni ellir galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen",
+  "notifications.permission_denied_alert": "Nid oes modd galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen",
   "notifications.permission_required": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd na roddwyd y caniatâd gofynnol.",
   "notifications_permission_banner.enable": "Galluogi hysbysiadau bwrdd gwaith",
-  "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogi hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithio sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddant wedi'u galluogi.",
-  "notifications_permission_banner.title": "Peidiwch byth â cholli peth",
+  "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddant wedi'u galluogi.",
+  "notifications_permission_banner.title": "Peidiwch colli dim",
   "picture_in_picture.restore": "Rhowch ef yn ôl",
   "poll.closed": "Ar gau",
   "poll.refresh": "Adnewyddu",
-  "poll.total_people": "{count, plural, one {# berson} other {# o bobl}}",
-  "poll.total_votes": "{count, plural, one {# bleidlais} other {# o bleidleisiau}}",
+  "poll.total_people": "{count, plural, one {# person} other {# person}}",
+  "poll.total_votes": "{count, plural, one {# bleidlais} other {# pleidlais}}",
   "poll.vote": "Pleidleisio",
-  "poll.voted": "Pleidleisioch chi am yr ateb hon",
-  "poll.votes": "{votes, plural, one {# bleidlais} other {# o bleidleisiau}}",
+  "poll.voted": "Fe wnaethoch chi bleidleisio dros yr ateb hwn",
+  "poll.votes": "{votes, plural, one {# pleidlais} other {# pleidlais}}",
   "poll_button.add_poll": "Ychwanegu pleidlais",
   "poll_button.remove_poll": "Tynnu pleidlais",
   "privacy.change": "Addasu preifatrwdd y post",
-  "privacy.direct.long": "Cyhoeddi i'r defnyddwyr sy'n cael eu crybwyll yn unig",
-  "privacy.direct.short": "Pobl sy wedi'u crybwyll yn unig",
-  "privacy.private.long": "Cyhoeddi i ddilynwyr yn unig",
+  "privacy.direct.long": "Dim ond yn weladwy i ddefnyddwyr a grybwyllwyd",
+  "privacy.direct.short": "Dim ond pobl sy wedi'u crybwyll",
+  "privacy.private.long": "Dim ond pobl sy'n ddilynwyrl",
   "privacy.private.short": "Dilynwyr yn unig",
   "privacy.public.long": "Gweladwy i bawb",
   "privacy.public.short": "Cyhoeddus",
@@ -458,11 +458,11 @@
   "regeneration_indicator.label": "Llwytho…",
   "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!",
   "relative_time.days": "{number}d",
-  "relative_time.full.days": "{number, plural, one {# dydd} other {# o ddyddiau}} yn ôl",
-  "relative_time.full.hours": "{number, plural, one {# awr} other {# o oriau}} yn ôl",
-  "relative_time.full.just_now": "jyst nawr",
-  "relative_time.full.minutes": "{number, plural, one {# funud} other {# o funudau}} yn ôl",
-  "relative_time.full.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} yn ôl",
+  "relative_time.full.days": "{number, plural, one {# diwrnod} other {# diwrnod}} yn ôl",
+  "relative_time.full.hours": "{number, plural, one {# awr} other {# awr}} yn ôl",
+  "relative_time.full.just_now": "newydd ddigwydd",
+  "relative_time.full.minutes": "{number, plural, one {# munud} other {# munud}} yn ôl",
+  "relative_time.full.seconds": "{number, plural, one {# eiliad} other {# eiliad}} yn ôl",
   "relative_time.hours": "{number} awr",
   "relative_time.just_now": "nawr",
   "relative_time.minutes": "{number} munud",
@@ -474,15 +474,15 @@
   "report.categories.other": "Arall",
   "report.categories.spam": "Sbam",
   "report.categories.violation": "Mae cynnwys yn torri un neu fwy o reolau'r gweinydd",
-  "report.category.subtitle": "Dewiswch yr ateb gorau",
-  "report.category.title": "Beth sy'n bod â'r {type} hwn?",
+  "report.category.subtitle": "Dewiswch y gyfatebiaeth gorau",
+  "report.category.title": "Beth sy'n digwydd gyda'r {type} yma?",
   "report.category.title_account": "proffil",
   "report.category.title_status": "post",
   "report.close": "Iawn",
   "report.comment.title": "Oes unrhyw beth arall y dylem ei wybod yn eich barn chi?",
   "report.forward": "Ymlaen i {target}",
   "report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?",
-  "report.mute": "Anwybyddu",
+  "report.mute": "Tewi",
   "report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u mudo.",
   "report.next": "Nesaf",
   "report.placeholder": "Sylwadau ychwanegol",
@@ -490,7 +490,7 @@
   "report.reasons.dislike_description": "Nid yw'n rhywbeth yr ydych am ei weld",
   "report.reasons.other": "Mae'n rhywbeth arall",
   "report.reasons.other_description": "Nid yw'r mater yn ffitio i gategorïau eraill",
-  "report.reasons.spam": "Sothach yw e",
+  "report.reasons.spam": "Sbam yw e",
   "report.reasons.spam_description": "Dolenni maleisus, ymgysylltu ffug, neu ymatebion ailadroddus",
   "report.reasons.violation": "Mae'n torri rheolau'r gweinydd",
   "report.reasons.violation_description": "Rydych yn ymwybodol ei fod yn torri rheolau penodol",
@@ -499,14 +499,14 @@
   "report.statuses.subtitle": "Dewiswch bob un sy'n berthnasol",
   "report.statuses.title": "Oes postiadau eraill sy'n cefnogi'r adroddiad hwn?",
   "report.submit": "Cyflwyno",
-  "report.target": "Cwyno am {target}",
-  "report.thanks.take_action": "Dyma'ch opsiynau ar gyfer rheoli'r hyn a welwch ar Mastodon:",
-  "report.thanks.take_action_actionable": "Tra byddwn yn edrych ar hyn, gallwch gymryd camau yn erbyn @{name}:",
+  "report.target": "Adrodd am {target}",
+  "report.thanks.take_action": "Dyma'ch dewisiadau i reoli'r hyn a welwch ar Mastodon:",
+  "report.thanks.take_action_actionable": "Tra byddwn yn adolygu hyn, gallwch gymryd camau yn erbyn @{name}:",
   "report.thanks.title": "Ddim eisiau gweld hwn?",
   "report.thanks.title_actionable": "Diolch am adrodd, byddwn yn ymchwilio i hyn.",
   "report.unfollow": "Dad-ddilyn @{name}",
   "report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich porthiant cartref mwyach, dad-ddilynwch nhw.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} post} arall {{count} posts}} atodwyd",
+  "report_notification.attached_statuses": "{count, plural, one {{count} postiad} arall {{count} postiad}} atodwyd",
   "report_notification.categories.other": "Arall",
   "report_notification.categories.spam": "Sbam",
   "report_notification.categories.violation": "Torri rheol",
@@ -517,7 +517,7 @@
   "search_popout.tips.full_text": "Mae testun syml yn dychwelyd postiadau yr ydych wedi ysgrifennu, hoffi, wedi'u hybio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
   "search_popout.tips.hashtag": "hashnod",
   "search_popout.tips.status": "post",
-  "search_popout.tips.text": "Mae testun syml yn dychwelyd enwau arddangos, enwau defnyddwyr a hashnodau sy'n cyfateb",
+  "search_popout.tips.text": "Mae testun syml yn dychwelyd enwau dangos, enwau defnyddwyr a hashnodau sy'n cyfateb",
   "search_popout.tips.user": "defnyddiwr",
   "search_results.accounts": "Pobl",
   "search_results.all": "Popeth",
@@ -526,56 +526,56 @@
   "search_results.statuses": "Postiadau",
   "search_results.statuses_fts_disabled": "Nid yw chwilio postiadau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.",
   "search_results.title": "Chwilio am {q}",
-  "search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {o ganlyniadau}}",
+  "search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {canlyniad}}",
   "server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)",
   "server_banner.active_users": "defnyddwyr gweithredol",
-  "server_banner.administered_by": "Gweinyddir gan:",
+  "server_banner.administered_by": "Yn cael ei weinyddu gan:",
   "server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig a bwerir gan {mastodon}.",
   "server_banner.learn_more": "Dysgu mwy",
   "server_banner.server_stats": "Ystagedau'r gweinydd:",
   "sign_in_banner.create_account": "Creu cyfrif",
   "sign_in_banner.sign_in": "Mewngofnodi",
   "sign_in_banner.text": "Mewngofnodwch i ddilyn proffiliau neu hashnodau, ffefrynnau, rhannu ac ymateb i bostiadau, neu ryngweithio o'ch cyfrif ar weinydd gwahanol.",
-  "status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}",
+  "status.admin_account": "Agor rhyngwyneb cymedroli ar gyfer @{name}",
   "status.admin_status": "Agor y post hwn yn y rhyngwyneb goruwchwylio",
   "status.block": "Blocio @{name}",
-  "status.bookmark": "Tudalnodi",
+  "status.bookmark": "Nod Tudalen",
   "status.cancel_reblog_private": "Dadhybu",
-  "status.cannot_reblog": "Ni ellir hybu'r post hwn",
+  "status.cannot_reblog": "Nid oes modd hybu'r postiad hwn",
   "status.copy": "Copïo dolen i'r post",
   "status.delete": "Dileu",
   "status.detailed_status": "Golwg manwl o'r sgwrs",
   "status.direct": "Neges breifat @{name}",
   "status.edit": "Golygu",
   "status.edited": "Golygwyd {date}",
-  "status.edited_x_times": "Golygwyd {count, plural, one {unwaith} two {dwywaith} other {{count} gwaith}}",
+  "status.edited_x_times": "Golygwyd {count, plural, one {waith} two {waith} other {{count} gwaith}}",
   "status.embed": "Mewnblannu",
-  "status.favourite": "Hoffi",
-  "status.filter": "Hidlo'r post hwn",
+  "status.favourite": "Ffefryn",
+  "status.filter": "Hidlo'r postiad hwn",
   "status.filtered": "Wedi'i hidlo",
-  "status.hide": "Cuddio'r post",
-  "status.history.created": "{name} greuodd {date}",
-  "status.history.edited": "{name} olygodd {date}",
-  "status.load_more": "Llwythwch mwy",
+  "status.hide": "Cuddio postiad",
+  "status.history.created": "Crëwyd gan {name} {date}",
+  "status.history.edited": "Golygwyd gan {name} {date}",
+  "status.load_more": "Llwythwch ragor",
   "status.media_hidden": "Cyfryngau wedi'u cuddio",
   "status.mention": "Crybwyll @{name}",
-  "status.more": "Mwy",
-  "status.mute": "Anwybyddu @{name}",
-  "status.mute_conversation": "Anwybyddu sgwrs",
+  "status.more": "Rhagor",
+  "status.mute": "Tewi @{name}",
+  "status.mute_conversation": "Tewi sgwrs",
   "status.open": "Ehangu'r post hwn",
   "status.pin": "Pinio ar y proffil",
   "status.pinned": "Post wedi'i binio",
-  "status.read_more": "Darllen mwy",
+  "status.read_more": "Darllen rhagor",
   "status.reblog": "Hybu",
   "status.reblog_private": "Hybu i'r gynulleidfa wreiddiol",
   "status.reblogged_by": "Hybodd {name}",
   "status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
   "status.redraft": "Dileu ac ailddrafftio",
-  "status.remove_bookmark": "Tynnu'r tudalnod",
-  "status.replied_to": "Wedi ymateb i {name}",
+  "status.remove_bookmark": "Tynnu Nod Tudalen",
+  "status.replied_to": "Wedi ateb {name}",
   "status.reply": "Ateb",
   "status.replyAll": "Ateb i edefyn",
-  "status.report": "Adrodd @{name}",
+  "status.report": "Adrodd ar @{name}",
   "status.sensitive_warning": "Cynnwys sensitif",
   "status.share": "Rhannu",
   "status.show_filter_reason": "Dangos beth bynnag",
@@ -587,63 +587,63 @@
   "status.translate": "Cyfieithu",
   "status.translated_from_with": "Cyfieithwyd o {lang} gan ddefnyddio {provider}",
   "status.uncached_media_warning": "Dim ar gael",
-  "status.unmute_conversation": "Dad-anwybyddu sgwrs",
+  "status.unmute_conversation": "Dad-dewi sgwrs",
   "status.unpin": "Dadbinio o'r proffil",
-  "subscribed_languages.lead": "Dim ond postiadau mewn ieithoedd dethol fydd yn ymddangos yn eich ffrydiau ar ôl y newid. Dewiswch ddim byd i dderbyn postiadau ym mhob iaith.",
+  "subscribed_languages.lead": "Dim ond postiadau mewn ieithoedd penodol fydd yn ymddangos yn eich ffrydiau ar ôl y newid. Dewiswch ddim byd i dderbyn postiadau ym mhob iaith.",
   "subscribed_languages.save": "Cadw'r newidiadau",
   "subscribed_languages.target": "Newid ieithoedd tanysgrifio {target}",
-  "suggestions.dismiss": "Diswyddo",
+  "suggestions.dismiss": "Diystyru'r awgrym",
   "suggestions.header": "Efallai y bydd gennych ddiddordeb mewn…",
-  "tabs_bar.federated_timeline": "Ffederasiwn",
-  "tabs_bar.home": "Hafan",
+  "tabs_bar.federated_timeline": "Ffedereiddiwyd",
+  "tabs_bar.home": "Cartref",
   "tabs_bar.local_timeline": "Lleol",
   "tabs_bar.notifications": "Hysbysiadau",
-  "time_remaining.days": "{number, plural, one {# ddydd} other {# o ddyddiau}} ar ôl",
-  "time_remaining.hours": "{number, plural, one {# awr} other {# o oriau}} ar ôl",
-  "time_remaining.minutes": "{number, plural, one {# funud} other {# o funudau}} ar ôl",
-  "time_remaining.moments": "Munudau ar ôl",
-  "time_remaining.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} ar ôl",
-  "timeline_hint.remote_resource_not_displayed": "ni chaiff {resource} o gweinyddion eraill ei ddangos.",
+  "time_remaining.days": "{number, plural, one {# diwrnod} other {# diwrnod}} ar ôl",
+  "time_remaining.hours": "{number, plural, one {# awr} other {# awr}} ar ôl",
+  "time_remaining.minutes": "{number, plural, one {# munud} other {# munud}} ar ôl",
+  "time_remaining.moments": "Munudau yn weddill",
+  "time_remaining.seconds": "{number, plural, one {# eiliad} other {# eiliad}} ar ôl",
+  "timeline_hint.remote_resource_not_displayed": "Nid yw {resource} o weinyddion eraill yn cael ei ddangos.",
   "timeline_hint.resources.followers": "Dilynwyr",
   "timeline_hint.resources.follows": "Yn dilyn",
   "timeline_hint.resources.statuses": "Postiadau hŷn",
   "trends.counter_by_accounts": "{count, plural, zero {neb} one {{counter} person} two {{counter} berson} few {{counter} pherson} other {{counter} o bobl}} yn y {days, plural, one {diwrnod diwethaf} two {ddeuddydd diwethaf} other {{days} diwrnod diwethaf}}",
-  "trends.trending_now": "Pynciau llosg",
-  "ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.",
+  "trends.trending_now": "Yn trendio nawr",
+  "ui.beforeunload": "Byddwch yn colli eich drafft os byddwch yn gadael Mastodon.",
   "units.short.billion": "{count}biliwn",
   "units.short.million": "{count}miliwn",
   "units.short.thousand": "{count}mil",
   "upload_area.title": "Llusgwch a gollwng i lwytho",
   "upload_button.label": "Ychwanegwch gyfryngau (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Wedi mynd heibio'r uchafswm terfyn uwchlwytho.",
-  "upload_error.poll": "Nid oes modd uwchlwytho ffeiliau â phleidleisiau.",
+  "upload_error.poll": "Nid oes modd llwytho ffeiliau â phleidleisiau.",
   "upload_form.audio_description": "Disgrifio ar gyfer pobl sydd â cholled clyw",
   "upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
   "upload_form.description_missing": "Dim disgrifiad wedi'i ychwanegu",
   "upload_form.edit": "Golygu",
-  "upload_form.thumbnail": "Newid mân-lun",
+  "upload_form.thumbnail": "Newid llun bach",
   "upload_form.undo": "Dileu",
   "upload_form.video_description": "Disgrifio ar gyfer pobl sydd â cholled clyw neu amhariad golwg",
-  "upload_modal.analyzing_picture": "Dadansoddi llun…",
-  "upload_modal.apply": "Gweithredu",
-  "upload_modal.applying": "Gweithio…",
+  "upload_modal.analyzing_picture": "Yn dadansoddi llun…",
+  "upload_modal.apply": "Gosod",
+  "upload_modal.applying": "Yn gosod…",
   "upload_modal.choose_image": "Dewis delwedd",
   "upload_modal.description_placeholder": "Mae ei phen bach llawn jocs, 'run peth a fy nghot golff, rhai dyddiau",
   "upload_modal.detect_text": "Canfod testun o'r llun",
   "upload_modal.edit_media": "Golygu cyfryngau",
-  "upload_modal.hint": "Cliciwch neu llusgwch y cylch ar y rhagolwg i ddewis y canolbwynt a fydd bob amser i'w weld ar bob mân-lunau.",
-  "upload_modal.preparing_ocr": "Paratoi OCR…",
+  "upload_modal.hint": "Cliciwch neu llusgwch y cylch ar y rhagolwg i ddewis y canolbwynt a fydd bob amser i'w weld ar bob llun bach.",
+  "upload_modal.preparing_ocr": "Yn paratoi OCR…",
   "upload_modal.preview_label": "Rhagolwg ({ratio})",
-  "upload_progress.label": "Uwchlwytho...",
+  "upload_progress.label": "Yn llwytho...",
   "upload_progress.processing": "Wrthi'n prosesu…",
   "video.close": "Cau fideo",
-  "video.download": "Lawrlwytho ffeil",
+  "video.download": "Llwytho ffeil i lawr",
   "video.exit_fullscreen": "Gadael sgrin llawn",
   "video.expand": "Ymestyn fideo",
   "video.fullscreen": "Sgrin llawn",
   "video.hide": "Cuddio fideo",
-  "video.mute": "Diffodd sain",
+  "video.mute": "Tewi sain",
   "video.pause": "Oedi",
   "video.play": "Chwarae",
-  "video.unmute": "Dad-ddiffodd sain"
+  "video.unmute": "Dad-dewi sain"
 }
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index e61130cb8..684f308a6 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -4,22 +4,22 @@
   "about.disclaimer": "Mastodon er gratis, open-source software og et varemærke tilhørende Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Begrundelse ikke tilgængelig",
   "about.domain_blocks.preamble": "Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.",
-  "about.domain_blocks.silenced.explanation": "Man vil generelt ikke se profiler og indhold fra denne server, medmindre man udtrykkeligt slå den op eller vælger den ved at følge.",
+  "about.domain_blocks.silenced.explanation": "Du vil generelt ikke se profiler og indhold fra denne server, medmindre du udtrykkeligt slår den op eller vælger den ved at følge.",
   "about.domain_blocks.silenced.title": "Begrænset",
   "about.domain_blocks.suspended.explanation": "Data fra denne server hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra denne server.",
   "about.domain_blocks.suspended.title": "Udelukket",
   "about.not_available": "Denne information er ikke blevet gjort tilgængelig på denne server.",
   "about.powered_by": "Decentraliserede sociale medier drevet af {mastodon}",
   "about.rules": "Serverregler",
-  "account.account_note_header": "Notat",
+  "account.account_note_header": "Note",
   "account.add_or_remove_from_list": "Tilføj eller fjern fra lister",
   "account.badges.bot": "Bot",
   "account.badges.group": "Gruppe",
   "account.block": "Blokér @{name}",
   "account.block_domain": "Blokér domænet {domain}",
   "account.blocked": "Blokeret",
-  "account.browse_more_on_origin_server": "Tjek mere ud på den oprindelige profil",
-  "account.cancel_follow_request": "Annullér følg-anmodning",
+  "account.browse_more_on_origin_server": "Se mere på den oprindelige profil",
+  "account.cancel_follow_request": "Annullér anmodning om at følge",
   "account.direct": "Direkte besked til @{name}",
   "account.disable_notifications": "Advisér mig ikke længere, når @{name} poster",
   "account.domain_blocked": "Domæne blokeret",
@@ -66,8 +66,8 @@
   "account.unmute_notifications": "Slå notifikationer om @{name} til igen",
   "account.unmute_short": "Vis igen (unmute)",
   "account_note.placeholder": "Klik for at tilføje notat",
-  "admin.dashboard.daily_retention": "Brugerfastholdelsesrate efter dag efter tilmelding",
-  "admin.dashboard.monthly_retention": "Brugerfastholdelsesrate efter måned efter tilmelding",
+  "admin.dashboard.daily_retention": "Brugerfastholdelsesrate per dag efter tilmelding",
+  "admin.dashboard.monthly_retention": "Brugerfastholdelsesrate per måned efter tilmelding",
   "admin.dashboard.retention.average": "Gennemsnitlig",
   "admin.dashboard.retention.cohort": "Tilmeldingsmåned",
   "admin.dashboard.retention.cohort_size": "Nye brugere",
@@ -79,7 +79,7 @@
   "attachments_list.unprocessed": "(ubehandlet)",
   "audio.hide": "Skjul lyd",
   "autosuggest_hashtag.per_week": "{count} pr. uge",
-  "boost_modal.combo": "Du kan trykke på {combo} for at overspringe dette næste gang",
+  "boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang",
   "bundle_column_error.copy_stacktrace": "Kopiér fejlrapport",
   "bundle_column_error.error.body": "Den anmodede side kunne ikke gengives. Dette kan skyldes flere typer fejl.",
   "bundle_column_error.error.title": "Åh nej!",
@@ -87,7 +87,7 @@
   "bundle_column_error.network.title": "Netværksfejl",
   "bundle_column_error.retry": "Forsøg igen",
   "bundle_column_error.return": "Retur til hjem",
-  "bundle_column_error.routing.body": "Den anmodede side kunne ikke findes. Sikker på, at URL'en er korrekt?",
+  "bundle_column_error.routing.body": "Den anmodede side kunne ikke findes. Er du sikker på, at URL'en er korrekt?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Luk",
   "bundle_modal_error.message": "Noget gik galt under indlæsningen af denne komponent.",
@@ -95,7 +95,7 @@
   "closed_registrations.other_server_instructions": "Da Mastodon er decentraliseret, kan du oprette en konto på en anden server og stadig interagere med denne.",
   "closed_registrations_modal.description": "Oprettelse af en konto på {domain} er i øjeblikket ikke muligt, men husk på, at du ikke behøver en konto specifikt på {domain} for at bruge Mastodon.",
   "closed_registrations_modal.find_another_server": "Find en anden server",
-  "closed_registrations_modal.preamble": "Mastodon er decentraliseret, så uanset hvor du opretter din konto, vil du være i stand til at følge og interagere med nogen på denne server. Du kan endda selv være vært for den!",
+  "closed_registrations_modal.preamble": "Mastodon er decentraliseret, så uanset hvor du opretter din konto, vil du være i stand til at følge og interagere med hvem som helst på denne server. Du kan endda selv være vært for den!",
   "closed_registrations_modal.title": "Oprettelse på Mastodon",
   "column.about": "Om",
   "column.blocks": "Blokerede brugere",
@@ -150,38 +150,38 @@
   "confirmation_modal.cancel": "Afbryd",
   "confirmations.block.block_and_report": "Blokér og Anmeld",
   "confirmations.block.confirm": "Blokér",
-  "confirmations.block.message": "Sikker på, at du vil blokere {name}?",
+  "confirmations.block.message": "Er du sikker på, at du vil blokere {name}?",
   "confirmations.cancel_follow_request.confirm": "Annullér anmodning",
-  "confirmations.cancel_follow_request.message": "Sikker på, at anmodningen om at følge {name} skal annulleres?",
+  "confirmations.cancel_follow_request.message": "Er du sikker på, at anmodningen om at følge {name} skal annulleres?",
   "confirmations.delete.confirm": "Slet",
-  "confirmations.delete.message": "Sikker på, at du vil slette dette indlæg?",
+  "confirmations.delete.message": "Er du sikker på, at du vil slette dette indlæg?",
   "confirmations.delete_list.confirm": "Slet",
-  "confirmations.delete_list.message": "Sikker på, at du vil slette denne liste permanent?",
+  "confirmations.delete_list.message": "Er du sikker på, at du vil slette denne liste permanent?",
   "confirmations.discard_edit_media.confirm": "Kassér",
   "confirmations.discard_edit_media.message": "Der er ugemte ændringer i mediebeskrivelsen eller forhåndsvisningen, kassér dem alligevel?",
   "confirmations.domain_block.confirm": "Blokér hele domænet",
-  "confirmations.domain_block.message": "Fuldstændig sikker på, at du vil blokere hele {domain}-domænet? Oftest vil nogle få målrettede blokeringer eller tavsgørelser være tilstrækkelige og at foretrække. Du vil ikke se indhold fra dette domæne i nogle offentlige tidslinjer eller i dine notifikationer, og dine følgere herfra fjernes ligeledes.",
+  "confirmations.domain_block.message": "Er du fuldstændig sikker på, at du vil blokere hele {domain}-domænet? Oftest vil nogle få målrettede blokeringer eller skjulninger være tilstrækkelige og at foretrække. Du vil ikke se indhold fra dette domæne i nogle offentlige tidslinjer eller i dine notifikationer, og dine følgere herfra fjernes ligeledes.",
   "confirmations.logout.confirm": "Log ud",
-  "confirmations.logout.message": "Log ud, sikker?",
+  "confirmations.logout.message": "Er du sikker på, at du vil logge ud?",
   "confirmations.mute.confirm": "Skjul (mute)",
   "confirmations.mute.explanation": "Dette skjuler indlæg fra (og om) dem, men lader dem fortsat se dine indlæg og følge dig.",
-  "confirmations.mute.message": "Er du sikker på, du vil skjule {name}?",
+  "confirmations.mute.message": "Er du sikker på, at du vil skjule {name}?",
   "confirmations.redraft.confirm": "Slet og omformulér",
-  "confirmations.redraft.message": "Sikker på, at du vil slette dette indlæg for at omskrive det? Favoritter og boosts går tabt, og svar til det oprindelige indlæg afassocieres.",
+  "confirmations.redraft.message": "Er du sikker på, at du vil slette dette indlæg for at omskrive det? Favoritter og boosts går tabt, og svar til det oprindelige indlæg afassocieres.",
   "confirmations.reply.confirm": "Svar",
-  "confirmations.reply.message": "At svare nu vil overskrive den besked, du er ved at skrive. Fortsæt alligevel?",
+  "confirmations.reply.message": "Hvis du svarer nu, vil det overskrive den besked, du er ved at skrive. Fortsæt alligevel?",
   "confirmations.unfollow.confirm": "Følg ikke længere",
-  "confirmations.unfollow.message": "Sikker på, at du ikke længere vil følge {name}?",
+  "confirmations.unfollow.message": "Er du sikker på, at du ikke længere vil følge {name}?",
   "conversation.delete": "Slet samtale",
   "conversation.mark_as_read": "Markér som læst",
-  "conversation.open": "Vis konversation",
+  "conversation.open": "Vis samtale",
   "conversation.with": "Med {names}",
   "copypaste.copied": "Kopieret",
   "copypaste.copy": "Kopiér",
   "directory.federated": "Fra kendt fedivers",
   "directory.local": "Kun fra {domain}",
   "directory.new_arrivals": "Nye ankomster",
-  "directory.recently_active": "Nyligt aktive",
+  "directory.recently_active": "Aktive for nyligt",
   "disabled_account_banner.account_settings": "Kontoindstillinger",
   "disabled_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret.",
   "dismissable_banner.community_timeline": "Disse er de seneste offentlige indlæg fra personer med konti hostes af {domain}.",
@@ -215,10 +215,10 @@
   "empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at sætte tingene i gang!",
   "empty_column.direct": "Der er endnu ingen direkte beskeder. Når en sendes eller modtages, dukker den op hér.",
   "empty_column.domain_blocks": "Ingen blokerede domæner endnu.",
-  "empty_column.explore_statuses": "Ingen nye tendensen pt. Tjek igen senere!",
+  "empty_column.explore_statuses": "Ingen nye tendenser lige nu. Tjek igen senere!",
   "empty_column.favourited_statuses": "Du har endnu ingen favoritindlæg. Når du favoritmarkerer ét, vil det dukke op hér.",
   "empty_column.favourites": "Ingen har endnu gjort dette indlæg til favorit. Når nogen gør dét, vil det dukke op hér.",
-  "empty_column.follow_recommendations": "Ser ud til, at der ikke kunne genereres forslag til dig. Du kan prøve med Søg for at lede efter personer, du måske kender, eller udforske hashtags.",
+  "empty_column.follow_recommendations": "Det ser ud til, at der ikke kunne genereres forslag til dig. Du kan prøve med Søg for at lede efter personer, du måske kender, eller udforske hashtags.",
   "empty_column.follow_requests": "Du har endnu ingen følgeanmodninger. Når du modtager én, vil den dukke op hér.",
   "empty_column.hashtag": "Der er intet med dette hashtag endnu.",
   "empty_column.home": "Din hjemmetidslinje er tom! Følg nogle personer, for at udfylde den. {suggestions}",
@@ -284,8 +284,8 @@
   "home.hide_announcements": "Skjul bekendtgørelser",
   "home.show_announcements": "Vis bekendtgørelser",
   "interaction_modal.description.favourite": "Med en konto på Mastodon kan dette indlæg gøres til favorit for at lade forfatteren vide, at det værdsættes, samt gemme det til senere.",
-  "interaction_modal.description.follow": "Med en konto på Mastodon kan du {name} følges for at modtage vedkommendes indlæg i hjemmefeed'et.",
-  "interaction_modal.description.reblog": "Med en konto på Mastodon kan dette indlæg boostes for at dele det med egne følgere.",
+  "interaction_modal.description.follow": "Med en konto på Mastodon kan du følge {name} for at modtage vedkommendes indlæg i dit hjemmefeed.",
+  "interaction_modal.description.reblog": "Med en konto på Mastodon kan dette indlæg fremhæves så det deles med egne følgere.",
   "interaction_modal.description.reply": "Med en konto på Mastodon kan dette indlæg besvares.",
   "interaction_modal.on_another_server": "På en anden server",
   "interaction_modal.on_this_server": "På denne server",
@@ -299,7 +299,7 @@
   "intervals.full.hours": "{number, plural, one {# time} other {# timer}}",
   "intervals.full.minutes": "{number, plural, one {# minut} other {# minutter}}",
   "keyboard_shortcuts.back": "Gå tilbage",
-  "keyboard_shortcuts.blocked": "Åbn Blokerede brugere-listen",
+  "keyboard_shortcuts.blocked": "Åbn listen over blokerede brugere",
   "keyboard_shortcuts.boost": "Boost indlæg",
   "keyboard_shortcuts.column": "Fokusér kolonne",
   "keyboard_shortcuts.compose": "Fokusér skriveområdet",
@@ -330,11 +330,11 @@
   "keyboard_shortcuts.toggle_hidden": "Vis/skjul tekst bag CW",
   "keyboard_shortcuts.toggle_sensitivity": "Vis/skjul medier",
   "keyboard_shortcuts.toot": "Påbegynd nyt indlæg",
-  "keyboard_shortcuts.unfocus": "Fjern fokus fra teksskrivningsområde/søgning",
+  "keyboard_shortcuts.unfocus": "Fjern fokus fra tekstskrivningsområde/søgning",
   "keyboard_shortcuts.up": "Flyt opad på listen",
   "lightbox.close": "Luk",
   "lightbox.compress": "Komprimér billedvisningsfelt",
-  "lightbox.expand": "Udvid billedevisningsfelt",
+  "lightbox.expand": "Udvid billedvisningsfelt",
   "lightbox.next": "Næste",
   "lightbox.previous": "Forrige",
   "limited_account_hint.action": "Vis profil alligevel",
@@ -397,7 +397,7 @@
   "notification.status": "{name} har netop postet",
   "notification.update": "{name} redigerede et indlæg",
   "notifications.clear": "Ryd notifikationer",
-  "notifications.clear_confirmation": "Sikker på, at du vil rydde alle dine notifikationer permanent?",
+  "notifications.clear_confirmation": "Er du sikker på, at du vil rydde alle dine notifikationer permanent?",
   "notifications.column_settings.admin.report": "Nye anmeldelser:",
   "notifications.column_settings.admin.sign_up": "Nye tilmeldinger:",
   "notifications.column_settings.alert": "Computernotifikationer",
@@ -470,7 +470,7 @@
   "relative_time.today": "i dag",
   "reply_indicator.cancel": "Afbryd",
   "report.block": "Blokér",
-  "report.block_explanation": "Du vil ikke se vedkommendes indlæg, og vedkommende vil ikke kunne se dine eller følge dig. Vedkommende vil være bekendt med blokeringen.",
+  "report.block_explanation": "Du vil ikke se vedkommendes indlæg. Vedkommende vil ikke kunne se dine indlæg eller følge dig. Vedkommende vil kunne se, at de er blokeret.",
   "report.categories.other": "Andre",
   "report.categories.spam": "Spam",
   "report.categories.violation": "Indhold overtræder en eller flere serverregler",
@@ -481,12 +481,12 @@
   "report.close": "Udført",
   "report.comment.title": "Er der andet, som vi bør vide?",
   "report.forward": "Videresend til {target}",
-  "report.forward_hint": "Kontoen er fra en anden server. Send også en anonymiseret anmeldelseskopi dertil?",
+  "report.forward_hint": "Kontoen er fra en anden server. Send også en anonymiseret kopi af anmeldelsen dertil?",
   "report.mute": "Skjul (mute)",
-  "report.mute_explanation": "Du vil ikke se vedkommendes indlæg, men vedkommende kan stadig se dine og følge dig. Vedkommende vil ikke være bekendt med tavsgørelsen.",
+  "report.mute_explanation": "Du vil ikke se vedkommendes indlæg. Vedkommende kan stadig se dine indlæg og følge dig. Vedkommende vil ikke kunne se, at de er blevet skjult.",
   "report.next": "Næste",
   "report.placeholder": "Yderligere kommentarer",
-  "report.reasons.dislike": "Synes ikke om den/dem",
+  "report.reasons.dislike": "Jeg bryder mig ikke om det",
   "report.reasons.dislike_description": "Det er ikke noget, man ønsker at se",
   "report.reasons.other": "Det er noget andet",
   "report.reasons.other_description": "Problemet passer ikke ind i andre kategorier",
@@ -500,12 +500,12 @@
   "report.statuses.title": "Er der indlæg, som kan bekræfte denne anmeldelse?",
   "report.submit": "Indsend",
   "report.target": "Anmelder {target}",
-  "report.thanks.take_action": "Dette er mulighederne for styring af, hvad man ses på Mastodon:",
+  "report.thanks.take_action": "Her er mulighederne for at styre, hvad du ser på Mastodon:",
   "report.thanks.take_action_actionable": "Mens dette gennemgås, kan der skrides til handling mod @{name}:",
   "report.thanks.title": "Ønsker ikke at se dette?",
   "report.thanks.title_actionable": "Tak for anmeldelsen, der vil blive set nærmere på dette.",
   "report.unfollow": "Følg ikke længere @{name}",
-  "report.unfollow_explanation": "Denne konto følges. For at ophøre med at se vedkommendes indlæg på hjemmetidslinjen, vælg Følg ikke længere.",
+  "report.unfollow_explanation": "Du følger denne konto. For ikke længere at se vedkommendes indlæg i dit hjemmefeed, kan du stoppe med at følge dem.",
   "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} poster}} vedhæftet",
   "report_notification.categories.other": "Andre",
   "report_notification.categories.spam": "Spam",
@@ -514,7 +514,7 @@
   "search.placeholder": "Søg",
   "search.search_or_paste": "Søg efter eller angiv URL",
   "search_popout.search_format": "Avanceret søgeformat",
-  "search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, favoritmarkeret, boostet eller som er nævnt i/matcher bruger- og profilnavne samt hashtags.",
+  "search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, gjort til favorit, boostet eller er nævnt i, såvel som matchende bruger- og profilnavne samt hashtags.",
   "search_popout.tips.hashtag": "hashtag",
   "search_popout.tips.status": "indlæg",
   "search_popout.tips.text": "Simpel tekst returnerer matchende visnings- og brugernavne samt hashtags",
@@ -535,13 +535,13 @@
   "server_banner.server_stats": "Serverstatstik:",
   "sign_in_banner.create_account": "Opret konto",
   "sign_in_banner.sign_in": "Log ind",
-  "sign_in_banner.text": "Log ind for at følge profiler eller hashtags, dele og svar på indlæg eller interagere fra kontoen på en anden server.",
+  "sign_in_banner.text": "Log ind for at følge profiler eller hashtags, markere som favorit, dele og svare på indlæg eller interagere fra din konto på en anden server.",
   "status.admin_account": "Åbn modereringsbrugerflade for @{name}",
   "status.admin_status": "Åbn dette indlæg i modereringsbrugerfladen",
   "status.block": "Blokér @{name}",
   "status.bookmark": "Bogmærk",
-  "status.cancel_reblog_private": "Fjern fremhævning",
-  "status.cannot_reblog": "Dette indlæg kan ikke boostes",
+  "status.cancel_reblog_private": "Fjern boost",
+  "status.cannot_reblog": "Dette indlæg kan ikke fremhæves",
   "status.copy": "Kopiér link til indlæg",
   "status.delete": "Slet",
   "status.detailed_status": "Detaljeret samtalevisning",
@@ -568,8 +568,8 @@
   "status.read_more": "Læs mere",
   "status.reblog": "Boost",
   "status.reblog_private": "Boost med oprindelig synlighed",
-  "status.reblogged_by": "{name} boostede",
-  "status.reblogs.empty": "Ingen har endnu boostet dette indlæg. Når nogen gør, vil det fremgå hér.",
+  "status.reblogged_by": "{name} fremhævede",
+  "status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.",
   "status.redraft": "Slet og omformulér",
   "status.remove_bookmark": "Fjern bogmærke",
   "status.replied_to": "Besvarede {name}",
@@ -589,11 +589,11 @@
   "status.uncached_media_warning": "Utilgængelig",
   "status.unmute_conversation": "Genaktivér samtale",
   "status.unpin": "Frigør fra profil",
-  "subscribed_languages.lead": "Kun indlæg på udvalgte sprog vil fremgå på Hjem og listetidslinjer efter ændringen. Vælg ingen for at modtage indlæg på alle sprog.",
+  "subscribed_languages.lead": "Kun indlæg på udvalgte sprog vil fremgå på dine hjemme- og listetidslinjer efter ændringen. Vælg ingen for at modtage indlæg på alle sprog.",
   "subscribed_languages.save": "Gem ændringer",
   "subscribed_languages.target": "Skift abonnementssprog for {target}",
-  "suggestions.dismiss": "Afvis foreslag",
-  "suggestions.header": "Du er måske interesseret i …",
+  "suggestions.dismiss": "Afvis forslag",
+  "suggestions.header": "Du er måske interesseret i…",
   "tabs_bar.federated_timeline": "Fælles",
   "tabs_bar.home": "Hjem",
   "tabs_bar.local_timeline": "Lokal",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 1f015a790..8e3a6c65d 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -57,9 +57,9 @@
   "account.share": "Profil von @{name} teilen",
   "account.show_reblogs": "Geteilte Beiträge von @{name} wieder anzeigen",
   "account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}",
-  "account.unblock": "@{name} entblocken",
-  "account.unblock_domain": "Entblocken von {domain}",
-  "account.unblock_short": "Blockierung aufheben",
+  "account.unblock": "@{name} entsperren",
+  "account.unblock_domain": "Sperre von {domain} aufheben",
+  "account.unblock_short": "Sperre aufheben",
   "account.unendorse": "Im Profil nicht mehr empfehlen",
   "account.unfollow": "Entfolgen",
   "account.unmute": "Stummschaltung von @{name} aufheben",
@@ -77,7 +77,7 @@
   "alert.unexpected.title": "Ups!",
   "announcement.announcement": "Ankündigung",
   "attachments_list.unprocessed": "(ausstehend)",
-  "audio.hide": "Audio stummschalten",
+  "audio.hide": "Audio verbergen",
   "autosuggest_hashtag.per_week": "{count} pro Woche",
   "boost_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt",
   "bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren",
@@ -90,7 +90,7 @@
   "bundle_column_error.routing.body": "Die angeforderte Seite konnte nicht gefunden werden. Bist du dir sicher, dass die URL in der Adressleiste korrekt ist?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Schließen",
-  "bundle_modal_error.message": "Etwas ist beim Laden schiefgelaufen.",
+  "bundle_modal_error.message": "Beim Laden dieser Komponente ist etwas schiefgelaufen.",
   "bundle_modal_error.retry": "Erneut versuchen",
   "closed_registrations.other_server_instructions": "Da Mastodon dezentralisiert ist, kannst du ein Konto auf einem anderen Server erstellen und trotzdem mit diesem Server interagieren.",
   "closed_registrations_modal.description": "Das Anlegen eines Kontos auf {domain} ist derzeit nicht möglich, aber bedenke, dass du kein extra Konto auf {domain} benötigst, um Mastodon nutzen zu können.",
@@ -98,12 +98,12 @@
   "closed_registrations_modal.preamble": "Mastodon ist dezentralisiert, das heißt, unabhängig davon, wo du dein Konto erstellt hast, kannst du jedem Profil auf diesem Server folgen und mit ihm interagieren. Du kannst sogar deinen eigenen Server hosten!",
   "closed_registrations_modal.title": "Bei Mastodon registrieren",
   "column.about": "Über",
-  "column.blocks": "Blockierte Profile",
+  "column.blocks": "Gesperrte Profile",
   "column.bookmarks": "Lesezeichen",
   "column.community": "Lokale Timeline",
   "column.direct": "Direktnachrichten",
   "column.directory": "Profile durchsuchen",
-  "column.domain_blocks": "Blockierte Domains",
+  "column.domain_blocks": "Gesperrte Domains",
   "column.favourites": "Favoriten",
   "column.follow_requests": "Follower-Anfragen",
   "column.home": "Startseite",
@@ -148,19 +148,19 @@
   "compose_form.spoiler.unmarked": "Inhaltswarnung hinzufügen",
   "compose_form.spoiler_placeholder": "Inhaltswarnung",
   "confirmation_modal.cancel": "Abbrechen",
-  "confirmations.block.block_and_report": "Blockieren und melden",
-  "confirmations.block.confirm": "Blockieren",
-  "confirmations.block.message": "Bist du dir sicher, dass du {name} blockieren möchtest?",
+  "confirmations.block.block_and_report": "Sperren und melden",
+  "confirmations.block.confirm": "Sperren",
+  "confirmations.block.message": "Bist du dir sicher, dass du {name} sperren möchtest?",
   "confirmations.cancel_follow_request.confirm": "Anfrage zurückziehen",
   "confirmations.cancel_follow_request.message": "Möchtest du deine Anfrage, {name} zu folgen, wirklich zurückziehen?",
   "confirmations.delete.confirm": "Löschen",
   "confirmations.delete.message": "Bist du dir sicher, dass du diesen Beitrag löschen möchtest?",
   "confirmations.delete_list.confirm": "Löschen",
-  "confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste permanent löschen möchtest?",
+  "confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste endgültig löschen möchtest?",
   "confirmations.discard_edit_media.confirm": "Verwerfen",
-  "confirmations.discard_edit_media.message": "Du hast ungespeicherte Änderungen an der Medienbeschreibung oder der Medienvorschau. Trotzdem verwerfen?",
-  "confirmations.domain_block.confirm": "Blocke die ganze Domain",
-  "confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.",
+  "confirmations.discard_edit_media.message": "Du hast Änderungen an der Medienbeschreibung oder -vorschau vorgenommen, die noch nicht gespeichert sind. Trotzdem verwerfen?",
+  "confirmations.domain_block.confirm": "Domain sperren",
+  "confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} sperren willst? In den meisten Fällen reichen ein paar gezielte Sperren oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.",
   "confirmations.logout.confirm": "Abmelden",
   "confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?",
   "confirmations.mute.confirm": "Stummschalten",
@@ -169,7 +169,7 @@
   "confirmations.redraft.confirm": "Löschen und neu erstellen",
   "confirmations.redraft.message": "Bist du dir sicher, dass du diesen Beitrag löschen und auf Basis deines vorherigen neu erstellen möchtest? Favoriten und geteilte Beiträge gehen verloren. Vorhandene Antworten von dir und anderen Nutzer*innen auf diesen Beitrag werden zwar nicht gelöscht, aber die Verknüpfungen gehen verloren.",
   "confirmations.reply.confirm": "Antworten",
-  "confirmations.reply.message": "Wenn du jetzt antwortest wird die gesamte Nachricht verworfen, die du gerade schreibst. Möchtest du wirklich fortfahren?",
+  "confirmations.reply.message": "Wenn du jetzt darauf antwortest, wird der andere Beitrag, an dem du gerade geschrieben hast, verworfen. Möchtest du wirklich fortfahren?",
   "confirmations.unfollow.confirm": "Entfolgen",
   "confirmations.unfollow.message": "Bist du dir sicher, dass du {name} entfolgen möchtest?",
   "conversation.delete": "Unterhaltung löschen",
@@ -178,7 +178,7 @@
   "conversation.with": "Mit {names}",
   "copypaste.copied": "Kopiert",
   "copypaste.copy": "Kopieren",
-  "directory.federated": "Aus dem Fediverse",
+  "directory.federated": "Aus bekanntem Fediverse",
   "directory.local": "Nur von der Domain {domain}",
   "directory.new_arrivals": "Neue Profile",
   "directory.recently_active": "Kürzlich aktiv",
@@ -189,7 +189,7 @@
   "dismissable_banner.explore_links": "Diese Nachrichten werden gerade von Leuten auf diesem und anderen Servern des dezentralen Netzwerks besprochen.",
   "dismissable_banner.explore_statuses": "Diese Beiträge von diesem und anderen Servern im dezentralen Netzwerk gewinnen gerade an Reichweite auf diesem Server.",
   "dismissable_banner.explore_tags": "Diese Hashtags gewinnen gerade unter den Leuten auf diesem und anderen Servern des dezentralen Netzwerkes an Reichweite.",
-  "dismissable_banner.public_timeline": "Dies sind die neuesten öffentlichen Beiträge von Personen auf diesem und anderen Servern des dezentralen Netzwerks, die dieser Server kennt.",
+  "dismissable_banner.public_timeline": "Dies sind die neuesten öffentlichen Beiträge von Profilen auf dieser Mastodon-Instanz und auf anderen Servern des dezentralen Netzwerks, von denen dieser Server Kenntnis hat.",
   "embed.instructions": "Du kannst diesen Beitrag außerhalb des Fediverse (z. B. auf deiner Website) einbetten, indem du diesen iFrame-Code einfügst.",
   "embed.preview": "Vorschau:",
   "emoji_button.activity": "Aktivitäten",
@@ -203,18 +203,18 @@
   "emoji_button.objects": "Gegenstände",
   "emoji_button.people": "Personen",
   "emoji_button.recent": "Häufig benutzte Emojis",
-  "emoji_button.search": "Suchen …",
+  "emoji_button.search": "Suchen …",
   "emoji_button.search_results": "Suchergebnisse",
   "emoji_button.symbols": "Symbole",
   "emoji_button.travel": "Reisen & Orte",
   "empty_column.account_suspended": "Konto gesperrt",
   "empty_column.account_timeline": "Keine Beiträge vorhanden!",
   "empty_column.account_unavailable": "Profil nicht verfügbar",
-  "empty_column.blocks": "Du hast bisher keine Profile blockiert.",
+  "empty_column.blocks": "Du hast bisher keine Profile gesperrt.",
   "empty_column.bookmarked_statuses": "Du hast bisher keine Beiträge als Lesezeichen abgelegt. Sobald du einen Beitrag als Lesezeichen speicherst, wird er hier erscheinen.",
   "empty_column.community": "Die lokale Timeline ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!",
-  "empty_column.direct": "Du hast noch keine Direktnachrichten. Sobald du eine sendest oder empfängst, wird sie hier zu sehen sein.",
-  "empty_column.domain_blocks": "Du hast noch keine Domains blockiert.",
+  "empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Sobald du eine private Nachricht sendest oder empfängst, wird sie hier zu sehen sein.",
+  "empty_column.domain_blocks": "Du hast noch keine Domains gesperrt.",
   "empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!",
   "empty_column.favourited_statuses": "Du hast noch keine Beiträge favorisiert. Sobald du einen favorisierst, wird er hier erscheinen.",
   "empty_column.favourites": "Noch niemand hat diesen Beitrag favorisiert. Sobald es jemand tut, wird das hier angezeigt.",
@@ -228,34 +228,34 @@
   "empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
   "empty_column.notifications": "Du hast noch keine Mitteilungen. Sobald du mit anderen Personen interagierst, wirst du hier darüber benachrichtigt.",
   "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Timeline aufzufüllen",
-  "error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browser-Inkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
+  "error.unexpected_crash.explanation": "Wegen eines Fehlers in unserem Code oder aufgrund einer Browser-Inkompatibilität kann diese Seite nicht korrekt angezeigt werden.",
   "error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.",
-  "error.unexpected_crash.next_steps": "Versuche, die Seite zu aktualisieren. Wenn das nicht hilft, kannst du Mastodon über einen anderen Browser oder eine native App verwenden.",
-  "error.unexpected_crash.next_steps_addons": "Versuche, sie zu deaktivieren, und lade dann die Seite neu. Wenn das Problem weiterhin besteht, solltest du Mastodon über einen anderen Browser oder eine native App nutzen.",
-  "errors.unexpected_crash.copy_stacktrace": "Fehlerlog in die Zwischenablage kopieren",
-  "errors.unexpected_crash.report_issue": "Problem melden",
+  "error.unexpected_crash.next_steps": "Versuche, diese Seite zu aktualisieren. Wenn das nicht helfen sollte, kannst du das Webinterface von Mastodon vermutlich über einen anderen Browser erreichen – oder du nutzt eine mobile (native) App.",
+  "error.unexpected_crash.next_steps_addons": "Versuche, die Seite zu deaktivieren und lade sie dann neu. Sollte das Problem weiter bestehen, kannst du das Webinterface von Mastodon vermutlich über einen anderen Browser erreichen – oder du nutzt eine mobile (native) App.",
+  "errors.unexpected_crash.copy_stacktrace": "Fehlerdiagnose in die Zwischenablage kopieren",
+  "errors.unexpected_crash.report_issue": "Fehler melden",
   "explore.search_results": "Suchergebnisse",
   "explore.title": "Entdecken",
   "filter_modal.added.context_mismatch_explanation": "Diese Filterkategorie gilt nicht für den Kontext, in welchem du auf diesen Beitrag zugegriffen hast. Wenn der Beitrag auch in diesem Kontext gefiltert werden soll, musst du den Filter bearbeiten.",
   "filter_modal.added.context_mismatch_title": "Kontext stimmt nicht überein!",
-  "filter_modal.added.expired_explanation": "Diese Filterkategrie ist abgelaufen, du musst das Ablaufdatum für diese Kategorie ändern.",
+  "filter_modal.added.expired_explanation": "Diese Filterkategorie ist abgelaufen. Du musst das Ablaufdatum für diese Kategorie ändern.",
   "filter_modal.added.expired_title": "Abgelaufener Filter!",
-  "filter_modal.added.review_and_configure": "Um diese Filterkategorie zu überprüfen und weiter zu konfigurieren, gehe zu {settings_link}.",
+  "filter_modal.added.review_and_configure": "Um diesen Filter zu überprüfen oder noch weiter zu konfigurieren, rufe die {settings_link} auf.",
   "filter_modal.added.review_and_configure_title": "Filtereinstellungen",
-  "filter_modal.added.settings_link": "Einstellungsseite",
+  "filter_modal.added.settings_link": "Einstellungen",
   "filter_modal.added.short_explanation": "Dieser Post wurde folgender Filterkategorie hinzugefügt: {title}.",
   "filter_modal.added.title": "Filter hinzugefügt!",
   "filter_modal.select_filter.context_mismatch": "gilt nicht für diesen Kontext",
   "filter_modal.select_filter.expired": "abgelaufen",
   "filter_modal.select_filter.prompt_new": "Neue Kategorie: {name}",
-  "filter_modal.select_filter.search": "Suchen oder erstellen",
-  "filter_modal.select_filter.subtitle": "Eine existierende Kategorie benutzen oder eine erstellen",
+  "filter_modal.select_filter.search": "Suchen oder Erstellen",
+  "filter_modal.select_filter.subtitle": "Einem vorhandenen Filter hinzufügen oder einen neuen erstellen",
   "filter_modal.select_filter.title": "Diesen Beitrag filtern",
-  "filter_modal.title.status": "Einen Beitrag filtern",
+  "filter_modal.title.status": "Beitrag filtern",
   "follow_recommendations.done": "Fertig",
   "follow_recommendations.heading": "Folge Leuten, deren Beiträge du sehen möchtest! Hier sind einige Vorschläge.",
   "follow_recommendations.lead": "Beiträge von Personen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Hab keine Angst, Fehler zu machen, du kannst den Leuten jederzeit wieder entfolgen!",
-  "follow_request.authorize": "Erlauben",
+  "follow_request.authorize": "Genehmigen",
   "follow_request.reject": "Ablehnen",
   "follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.",
   "footer.about": "Über",
@@ -271,7 +271,7 @@
   "hashtag.column_header.tag_mode.any": "oder {additional}",
   "hashtag.column_header.tag_mode.none": "ohne {additional}",
   "hashtag.column_settings.select.no_options_message": "Keine Vorschläge gefunden",
-  "hashtag.column_settings.select.placeholder": "Hashtags eintragen…",
+  "hashtag.column_settings.select.placeholder": "Hashtags eingeben …",
   "hashtag.column_settings.tag_mode.all": "All diese",
   "hashtag.column_settings.tag_mode.any": "Eines von diesen",
   "hashtag.column_settings.tag_mode.none": "Keines von diesen",
@@ -291,51 +291,51 @@
   "interaction_modal.on_this_server": "Auf diesem Server",
   "interaction_modal.other_server_instructions": "Kopiere diese URL und füge sie in das Suchfeld deiner bevorzugten Mastodon-App oder im Webinterface deiner Mastodon-Instanz ein.",
   "interaction_modal.preamble": "Da Mastodon dezentralisiert ist, kannst du dein bestehendes Konto auf einem anderen Mastodon-Server oder einer kompatiblen Plattform nutzen, wenn du kein Konto auf dieser Plattform hast.",
-  "interaction_modal.title.favourite": "Lieblingsbeitrag von {name}",
+  "interaction_modal.title.favourite": "Beitrag von {name} favorisieren",
   "interaction_modal.title.follow": "Folge {name}",
   "interaction_modal.title.reblog": "Beitrag von {name} teilen",
-  "interaction_modal.title.reply": "Antworte auf den Post von {name}",
+  "interaction_modal.title.reply": "Auf Beitrag von {name} antworten",
   "intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}",
   "intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}",
   "intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}",
-  "keyboard_shortcuts.back": "Zurück navigieren",
-  "keyboard_shortcuts.blocked": "Liste blockierter Profile öffnen",
+  "keyboard_shortcuts.back": "zurücknavigieren",
+  "keyboard_shortcuts.blocked": "Liste gesperrter Profile öffnen",
   "keyboard_shortcuts.boost": "Beitrag teilen",
-  "keyboard_shortcuts.column": "einen Beitrag in einer der Spalten fokussieren",
-  "keyboard_shortcuts.compose": "fokussiere das Eingabefeld",
+  "keyboard_shortcuts.column": "Spalte fokussieren",
+  "keyboard_shortcuts.compose": "Eingabefeld fokussieren",
   "keyboard_shortcuts.description": "Beschreibung",
-  "keyboard_shortcuts.direct": "um die Spalte mit den Direktnachrichten zu öffnen",
-  "keyboard_shortcuts.down": "In der Liste nach unten bewegen",
+  "keyboard_shortcuts.direct": "Direktnachrichten öffnen",
+  "keyboard_shortcuts.down": "sich in der Liste nach unten bewegen",
   "keyboard_shortcuts.enter": "Beitrag öffnen",
   "keyboard_shortcuts.favourite": "favorisieren",
-  "keyboard_shortcuts.favourites": "Favoriten-Liste öffnen",
+  "keyboard_shortcuts.favourites": "Favoritenliste öffnen",
   "keyboard_shortcuts.federated": "Föderierte Timeline öffnen",
   "keyboard_shortcuts.heading": "Tastenkombinationen",
   "keyboard_shortcuts.home": "Startseite öffnen",
   "keyboard_shortcuts.hotkey": "Tastenkürzel",
-  "keyboard_shortcuts.legend": "diese Übersicht anzeigen",
-  "keyboard_shortcuts.local": "Lokale Timeline öffnen",
+  "keyboard_shortcuts.legend": "diese Tastenkombinationen anzeigen",
+  "keyboard_shortcuts.local": "lokale Timeline öffnen",
   "keyboard_shortcuts.mention": "Profil erwähnen",
   "keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen",
-  "keyboard_shortcuts.my_profile": "Dein Profil öffnen",
-  "keyboard_shortcuts.notifications": "Benachrichtigungsspalte öffnen",
+  "keyboard_shortcuts.my_profile": "dein eigenes Profil öffnen",
+  "keyboard_shortcuts.notifications": "Mitteilungen aufrufen",
   "keyboard_shortcuts.open_media": "Medien-Datei öffnen",
   "keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen",
-  "keyboard_shortcuts.profile": "Profil des Autors öffnen",
-  "keyboard_shortcuts.reply": "antworten",
+  "keyboard_shortcuts.profile": "Profil öffnen",
+  "keyboard_shortcuts.reply": "auf Beitrag antworten",
   "keyboard_shortcuts.requests": "Liste der Follower-Anfragen öffnen",
-  "keyboard_shortcuts.search": "Suche fokussieren",
-  "keyboard_shortcuts.spoilers": "Schaltfläche für Inhaltswarnung anzeigen/verbergen",
-  "keyboard_shortcuts.start": "\"Erste Schritte\"-Spalte öffnen",
+  "keyboard_shortcuts.search": "Suchleiste fokussieren",
+  "keyboard_shortcuts.spoilers": "Inhaltswarnung anzeigen/verbergen",
+  "keyboard_shortcuts.start": "„Erste Schritte“-Spalte öffnen",
   "keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung anzeigen/verbergen",
   "keyboard_shortcuts.toggle_sensitivity": "Medien anzeigen/verbergen",
-  "keyboard_shortcuts.toot": "Neuen Beitrag erstellen",
-  "keyboard_shortcuts.unfocus": "Textfeld/die Suche nicht mehr fokussieren",
-  "keyboard_shortcuts.up": "sich in der Liste hinauf bewegen",
+  "keyboard_shortcuts.toot": "neuen Beitrag erstellen",
+  "keyboard_shortcuts.unfocus": "Eingabefeld/Suche nicht mehr fokussieren",
+  "keyboard_shortcuts.up": "sich in der Liste hinaufbewegen",
   "lightbox.close": "Schließen",
   "lightbox.compress": "Bildansicht komprimieren",
   "lightbox.expand": "Bildansicht erweitern",
-  "lightbox.next": "Weiter",
+  "lightbox.next": "Vor",
   "lightbox.previous": "Zurück",
   "limited_account_hint.action": "Profil trotzdem anzeigen",
   "limited_account_hint.title": "Dieses Profil wurde von den Moderator*innen der Mastodon-Instanz {domain} ausgeblendet.",
@@ -344,11 +344,11 @@
   "lists.delete": "Liste löschen",
   "lists.edit": "Liste bearbeiten",
   "lists.edit.submit": "Titel ändern",
-  "lists.new.create": "Liste hinzufügen",
-  "lists.new.title_placeholder": "Neuer Titel der Liste",
+  "lists.new.create": "Neue Liste erstellen",
+  "lists.new.title_placeholder": "Titel der neuen Liste",
   "lists.replies_policy.followed": "Alle folgenden Profile",
   "lists.replies_policy.list": "Mitglieder der Liste",
-  "lists.replies_policy.none": "Niemand",
+  "lists.replies_policy.none": "Niemandem",
   "lists.replies_policy.title": "Antworten anzeigen für:",
   "lists.search": "Suche nach Leuten, denen du folgst",
   "lists.subheading": "Deine Listen",
@@ -356,19 +356,19 @@
   "loading_indicator.label": "Wird geladen …",
   "media_gallery.toggle_visible": "{number, plural, one {Bild verbergen} other {Bilder verbergen}}",
   "missing_indicator.label": "Nicht gefunden",
-  "missing_indicator.sublabel": "Die Ressource konnte nicht gefunden werden",
+  "missing_indicator.sublabel": "Der Inhalt konnte nicht gefunden werden",
   "moved_to_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert, weil du zu {movedToAccount} umgezogen bist.",
   "mute_modal.duration": "Dauer",
-  "mute_modal.hide_notifications": "Benachrichtigungen von diesem Profil verbergen?",
-  "mute_modal.indefinite": "Unbestimmt",
+  "mute_modal.hide_notifications": "Benachrichtigungen dieses Profils verbergen?",
+  "mute_modal.indefinite": "Unbegrenzt",
   "navigation_bar.about": "Über",
-  "navigation_bar.blocks": "Blockierte Profile",
+  "navigation_bar.blocks": "Gesperrte Profile",
   "navigation_bar.bookmarks": "Lesezeichen",
   "navigation_bar.community_timeline": "Lokale Timeline",
   "navigation_bar.compose": "Neuen Beitrag verfassen",
   "navigation_bar.direct": "Direktnachrichten",
   "navigation_bar.discover": "Entdecken",
-  "navigation_bar.domain_blocks": "Blockierte Domains",
+  "navigation_bar.domain_blocks": "Gesperrte Domains",
   "navigation_bar.edit_profile": "Profil bearbeiten",
   "navigation_bar.explore": "Entdecken",
   "navigation_bar.favourites": "Favoriten",
@@ -384,40 +384,40 @@
   "navigation_bar.public_timeline": "Föderierte Timeline",
   "navigation_bar.search": "Suche",
   "navigation_bar.security": "Sicherheit",
-  "not_signed_in_indicator.not_signed_in": "Sie müssen sich anmelden, um diese Funktion zu nutzen.",
+  "not_signed_in_indicator.not_signed_in": "Du musst dich anmelden, um auf diesen Inhalt zugreifen zu können.",
   "notification.admin.report": "{target} wurde von {name} gemeldet",
-  "notification.admin.sign_up": "{name} hat sich registriert",
+  "notification.admin.sign_up": "{name} registrierte sich",
   "notification.favourite": "{name} hat deinen Beitrag favorisiert",
   "notification.follow": "{name} folgt dir jetzt",
   "notification.follow_request": "{name} möchte dir folgen",
-  "notification.mention": "{name} hat dich erwähnt",
+  "notification.mention": "{name} erwähnte dich",
   "notification.own_poll": "Deine Umfrage ist beendet",
   "notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
-  "notification.reblog": "{name} hat deinen Beitrag geteilt",
+  "notification.reblog": "{name} teilte deinen Beitrag",
   "notification.status": "{name} hat etwas mitgeteilt",
   "notification.update": "{name} bearbeitete einen Beitrag",
   "notifications.clear": "Mitteilungen löschen",
-  "notifications.clear_confirmation": "Bist du dir sicher, dass du alle Mitteilungen löschen möchtest?",
+  "notifications.clear_confirmation": "Bist du dir sicher, dass du diese Mitteilungen für immer löschen möchtest?",
   "notifications.column_settings.admin.report": "Neue Meldungen:",
   "notifications.column_settings.admin.sign_up": "Neue Registrierungen:",
   "notifications.column_settings.alert": "Desktop-Benachrichtigungen",
   "notifications.column_settings.favourite": "Favorisierungen:",
-  "notifications.column_settings.filter_bar.advanced": "Zeige alle Kategorien an",
-  "notifications.column_settings.filter_bar.category": "Schnellfilterleiste",
+  "notifications.column_settings.filter_bar.advanced": "Erweiterte Filterleiste aktivieren",
+  "notifications.column_settings.filter_bar.category": "Filterleiste:",
   "notifications.column_settings.filter_bar.show_bar": "Filterleiste anzeigen",
   "notifications.column_settings.follow": "Neue Follower:",
   "notifications.column_settings.follow_request": "Neue Follower-Anfragen:",
   "notifications.column_settings.mention": "Erwähnungen:",
-  "notifications.column_settings.poll": "Ergebnisse von Umfragen:",
+  "notifications.column_settings.poll": "Umfrageergebnisse:",
   "notifications.column_settings.push": "Push-Benachrichtigungen",
   "notifications.column_settings.reblog": "Geteilte Beiträge:",
-  "notifications.column_settings.show": "In der Timeline „Mitteilungen“ anzeigen",
+  "notifications.column_settings.show": "In diesem Feed anzeigen",
   "notifications.column_settings.sound": "Ton abspielen",
   "notifications.column_settings.status": "Neue Beiträge:",
-  "notifications.column_settings.unread_notifications.category": "Ungelesene Benachrichtigungen",
-  "notifications.column_settings.unread_notifications.highlight": "Ungelesene Benachrichtigungen hervorheben",
-  "notifications.column_settings.update": "Bearbeitungen:",
-  "notifications.filter.all": "Alle",
+  "notifications.column_settings.unread_notifications.category": "Ungelesene Mitteilungen:",
+  "notifications.column_settings.unread_notifications.highlight": "Ungelesene Mitteilungen markieren",
+  "notifications.column_settings.update": "Bearbeitete Beiträge:",
+  "notifications.filter.all": "Alles",
   "notifications.filter.boosts": "Geteilte Beiträge",
   "notifications.filter.favourites": "Favorisierungen",
   "notifications.filter.follows": "Neue Follower",
@@ -436,12 +436,12 @@
   "picture_in_picture.restore": "Zurücksetzen",
   "poll.closed": "Beendet",
   "poll.refresh": "Aktualisieren",
-  "poll.total_people": "{count, plural, one {# Person} other {# Personen}}",
+  "poll.total_people": "{count, plural, one {# Profil} other {# Profile}}",
   "poll.total_votes": "{count, plural, one {# Stimme} other {# Stimmen}}",
   "poll.vote": "Abstimmen",
   "poll.voted": "Du hast für diese Auswahl gestimmt",
   "poll.votes": "{votes, plural, one {# Stimme} other {# Stimmen}}",
-  "poll_button.add_poll": "Eine Umfrage erstellen",
+  "poll_button.add_poll": "Umfrage erstellen",
   "poll_button.remove_poll": "Umfrage entfernen",
   "privacy.change": "Sichtbarkeit des Beitrags anpassen",
   "privacy.direct.long": "Nur für die genannten Profile sichtbar",
@@ -455,25 +455,25 @@
   "privacy_policy.last_updated": "Zuletzt aktualisiert am {date}",
   "privacy_policy.title": "Datenschutzerklärung",
   "refresh": "Aktualisieren",
-  "regeneration_indicator.label": "Laden…",
+  "regeneration_indicator.label": "Wird geladen …",
   "regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!",
   "relative_time.days": "{number}T",
   "relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}",
   "relative_time.full.hours": "vor {number, plural, one {# Stunde} other {# Stunden}}",
-  "relative_time.full.just_now": "gerade eben",
+  "relative_time.full.just_now": "soeben",
   "relative_time.full.minutes": "vor {number, plural, one {# Minute} other {# Minuten}}",
   "relative_time.full.seconds": "vor {number, plural, one {1 Sekunde} other {# Sekunden}}",
-  "relative_time.hours": "{number}h",
+  "relative_time.hours": "{number} Std",
   "relative_time.just_now": "jetzt",
-  "relative_time.minutes": "{number}m",
-  "relative_time.seconds": "{number}s",
+  "relative_time.minutes": "{number} min",
+  "relative_time.seconds": "{number} sek",
   "relative_time.today": "heute",
   "reply_indicator.cancel": "Abbrechen",
-  "report.block": "Blockieren",
-  "report.block_explanation": "Du wirst die Beiträge von diesem Konto nicht sehen. Das Konto wird nicht in der Lage sein, deine Beiträge zu sehen oder dir zu folgen. Die Person hinter dem Konto wird wissen, dass du das Konto blockiert hast.",
+  "report.block": "Sperren",
+  "report.block_explanation": "Dir wird es nicht länger möglich sein, die Beiträge dieses Konto zu sehen. Das gesperrte Profil wird nicht mehr in der Lage sein, deine Beiträge zu sehen oder dir zu folgen. Die Person hinter dem Konto wird mitbekommen, dass du ihr Konto gesperrt hast.",
   "report.categories.other": "Andere",
   "report.categories.spam": "Spam",
-  "report.categories.violation": "Der Inhalt verletzt eine oder mehrere Server-Regeln",
+  "report.categories.violation": "Der Inhalt verletzt eine oder mehrere Serverregeln",
   "report.category.subtitle": "Wähle die passendste Kategorie",
   "report.category.title": "Sag uns, was das Problem mit diesem {type} ist",
   "report.category.title_account": "Profil",
@@ -485,31 +485,31 @@
   "report.mute": "Stummschalten",
   "report.mute_explanation": "Du wirst die Beiträge vom Konto nicht mehr sehen. Das Konto kann dir immer noch folgen, und die Person hinter dem Konto wird deine Beiträge sehen können und nicht wissen, dass du sie stummgeschaltet hast.",
   "report.next": "Weiter",
-  "report.placeholder": "Zusätzliche Kommentare",
+  "report.placeholder": "Ergänzende Hinweise",
   "report.reasons.dislike": "Das gefällt mir nicht",
   "report.reasons.dislike_description": "Es ist etwas, das du nicht sehen willst",
-  "report.reasons.other": "Es geht um etwas anderes",
-  "report.reasons.other_description": "Das Problem passt nicht in die Kategorien",
+  "report.reasons.other": "Es ist etwas anderes",
+  "report.reasons.other_description": "Der Vorfall passt zu keiner dieser Kategorien",
   "report.reasons.spam": "Das ist Spam",
   "report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten",
   "report.reasons.violation": "Es verstößt gegen Serverregeln",
   "report.reasons.violation_description": "Du weißt, welche Regeln verletzt werden",
-  "report.rules.subtitle": "Alles Zutreffende auswählen",
+  "report.rules.subtitle": "Wähle alle zutreffenden Inhalte aus",
   "report.rules.title": "Welche Regeln werden verletzt?",
-  "report.statuses.subtitle": "Alles Zutreffende auswählen",
+  "report.statuses.subtitle": "Wähle alle zutreffenden Inhalte aus",
   "report.statuses.title": "Gibt es Beiträge, die diesen Bericht unterstützen?",
-  "report.submit": "Absenden",
+  "report.submit": "Abschicken",
   "report.target": "{target} melden",
   "report.thanks.take_action": "Das sind deine Möglichkeiten zu bestimmen, was du auf Mastodon sehen möchtest:",
-  "report.thanks.take_action_actionable": "Während wir dies überprüfen, kannst du gegen @{name} vorgehen:",
-  "report.thanks.title": "Möchtest du das nicht sehen?",
+  "report.thanks.take_action_actionable": "Während wir den Vorfall überprüfen, kannst du gegen @{name} weitere Maßnahmen ergreifen:",
+  "report.thanks.title": "Möchtest du das nicht mehr sehen?",
   "report.thanks.title_actionable": "Vielen Dank für die Meldung, wir werden uns das ansehen.",
   "report.unfollow": "@{name} entfolgen",
   "report.unfollow_explanation": "Du folgst diesem Konto. Um die Beiträge nicht mehr auf deiner Startseite zu sehen, entfolge dem Konto.",
   "report_notification.attached_statuses": "{count, plural, one {{count} angehangener Beitrag} other {{count} angehängte Beiträge}}",
-  "report_notification.categories.other": "Nicht Aufgelistet",
+  "report_notification.categories.other": "Nicht aufgeführt",
   "report_notification.categories.spam": "Spam",
-  "report_notification.categories.violation": "Regelbruch",
+  "report_notification.categories.violation": "Regelverstoß",
   "report_notification.open": "Meldung öffnen",
   "search.placeholder": "Suche",
   "search.search_or_paste": "Suchen oder URL einfügen",
@@ -520,7 +520,7 @@
   "search_popout.tips.text": "Einfache Texteingabe gibt Anzeigenamen, Benutzernamen und Hashtags zurück",
   "search_popout.tips.user": "Profil",
   "search_results.accounts": "Profile",
-  "search_results.all": "Alle",
+  "search_results.all": "Alles",
   "search_results.hashtags": "Hashtags",
   "search_results.nothing_found": "Nichts für diese Suchbegriffe gefunden",
   "search_results.statuses": "Beiträge",
@@ -539,7 +539,7 @@
   "status.admin_account": "Moderationsoberfläche für @{name} öffnen",
   "status.admin_status": "Diesen Beitrag in der Moderationsoberfläche öffnen",
   "status.block": "@{name} blockieren",
-  "status.bookmark": "Lesezeichen setzen",
+  "status.bookmark": "Beitrag als Lesezeichen setzen",
   "status.cancel_reblog_private": "Teilen des Beitrags rückgängig machen",
   "status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
   "status.copy": "Link zum Beitrag kopieren",
@@ -551,18 +551,18 @@
   "status.edited_x_times": "{count, plural, one {{count} mal} other {{count} mal}} bearbeitet",
   "status.embed": "Beitrag per iFrame einbetten",
   "status.favourite": "Favorisieren",
-  "status.filter": "Diesen Beitrag filtern",
+  "status.filter": "Beitrag filtern",
   "status.filtered": "Gefiltert",
   "status.hide": "Beitrag verbergen",
   "status.history.created": "{name} erstellte {date}",
   "status.history.edited": "{name} bearbeitete {date}",
   "status.load_more": "Weitere laden",
   "status.media_hidden": "Medien versteckt",
-  "status.mention": "@{name} erwähnen",
+  "status.mention": "@{name} im Beitrag erwähnen",
   "status.more": "Mehr",
   "status.mute": "@{name} stummschalten",
   "status.mute_conversation": "Unterhaltung stummschalten",
-  "status.open": "Diesen Beitrag öffnen",
+  "status.open": "Beitrag öffnen",
   "status.pin": "Im Profil anheften",
   "status.pinned": "Angehefteter Beitrag",
   "status.read_more": "Gesamten Beitrag anschauen",
@@ -583,7 +583,7 @@
   "status.show_less_all": "Alle Inhaltswarnungen zuklappen",
   "status.show_more": "Mehr anzeigen",
   "status.show_more_all": "Alle Inhaltswarnungen aufklappen",
-  "status.show_original": "Original anzeigen",
+  "status.show_original": "Ursprünglichen Beitrag anzeigen",
   "status.translate": "Übersetzen",
   "status.translated_from_with": "Aus {lang} mittels {provider} übersetzt",
   "status.uncached_media_warning": "Nicht verfügbar",
@@ -592,47 +592,47 @@
   "subscribed_languages.lead": "Nach der Änderung werden nur noch Beiträge in den ausgewählten Sprachen in den Timelines deiner Startseite und deiner Listen angezeigt. Wähle keine Sprache aus, um alle Beiträge zu sehen.",
   "subscribed_languages.save": "Änderungen speichern",
   "subscribed_languages.target": "Abonnierte Sprachen für {target} ändern",
-  "suggestions.dismiss": "Empfehlung ausblenden",
-  "suggestions.header": "Du bist vielleicht interessiert an…",
+  "suggestions.dismiss": "Vorschlag ablehnen",
+  "suggestions.header": "Du bist möglicherweise interessiert an …",
   "tabs_bar.federated_timeline": "Föderiert",
   "tabs_bar.home": "Startseite",
   "tabs_bar.local_timeline": "Lokal",
   "tabs_bar.notifications": "Mitteilungen",
-  "time_remaining.days": "{number, plural, one {# Tag} other {# Tage}} verbleibend",
-  "time_remaining.hours": "{number, plural, one {# Stunde} other {# Stunden}} verbleibend",
-  "time_remaining.minutes": "{number, plural, one {# Minute} other {# Minuten}} verbleibend",
-  "time_remaining.moments": "Schließt in Kürze",
-  "time_remaining.seconds": "{number, plural, one {# Sekunde} other {# Sekunden}} verbleibend",
+  "time_remaining.days": "noch {number, plural, one {# Tag} other {# Tage}}",
+  "time_remaining.hours": "noch {number, plural, one {# Stunde} other {# Stunden}}",
+  "time_remaining.minutes": "noch {number, plural, one {# Minute} other {# Minuten}}",
+  "time_remaining.moments": "Wird gleich beendet",
+  "time_remaining.seconds": "noch {number, plural, one {# Sekunde} other {# Sekunden}}",
   "timeline_hint.remote_resource_not_displayed": "{resource} von anderen Servern werden nicht angezeigt.",
   "timeline_hint.resources.followers": "Follower",
   "timeline_hint.resources.follows": "Folge ich",
   "timeline_hint.resources.statuses": "Ältere Beiträge",
-  "trends.counter_by_accounts": "{count, plural, one {{count} Person} other {{count} Personen}} {days, plural, one {am vergangenen Tag} other {in den vergangenen {days} Tagen}}",
-  "trends.trending_now": "In den Trends",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} Profil} other {{counter} Profile}} {days, plural, one {seit gestern} other {in {days} Tagen}}",
+  "trends.trending_now": "Aktuelle Trends",
   "ui.beforeunload": "Dein Entwurf geht verloren, wenn du Mastodon verlässt.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
+  "units.short.billion": "{count} Mrd",
+  "units.short.million": "{count} Mio",
+  "units.short.thousand": "{count} Tsd",
   "upload_area.title": "Zum Hochladen hereinziehen",
-  "upload_button.label": "Mediendatei hinzufügen",
-  "upload_error.limit": "Dateiupload-Limit erreicht.",
-  "upload_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.",
-  "upload_form.audio_description": "Beschreibe die Audiodatei für Menschen mit Hörschädigungen",
+  "upload_button.label": "Bilder, Videos oder Audios hinzufügen",
+  "upload_error.limit": "Dateiupload-Limit überschritten.",
+  "upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.",
+  "upload_form.audio_description": "Beschreibung für Gehörlose und hörbehinderte Menschen",
   "upload_form.description": "Bildbeschreibung für blinde und sehbehinderte Menschen",
   "upload_form.description_missing": "Keine Beschreibung hinzugefügt",
   "upload_form.edit": "Beschreiben",
   "upload_form.thumbnail": "Vorschaubild ändern",
   "upload_form.undo": "Löschen",
   "upload_form.video_description": "Beschreibe das Video für Menschen mit einer Hör- oder Sehbehinderung",
-  "upload_modal.analyzing_picture": "Analysiere Bild…",
+  "upload_modal.analyzing_picture": "Bild wird analysiert …",
   "upload_modal.apply": "Übernehmen",
-  "upload_modal.applying": "Anwenden…",
+  "upload_modal.applying": "Wird angewendet …",
   "upload_modal.choose_image": "Bild auswählen",
   "upload_modal.description_placeholder": "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich",
   "upload_modal.detect_text": "Text aus Bild erkennen",
   "upload_modal.edit_media": "Medien bearbeiten",
   "upload_modal.hint": "Ziehe den Kreis auf die Stelle Deines Bildes, die bei Vorschaugrafiken in der Mitte stehen soll.",
-  "upload_modal.preparing_ocr": "Vorbereitung von OCR…",
+  "upload_modal.preparing_ocr": "Texterkennung wird vorbereitet …",
   "upload_modal.preview_label": "Vorschau ({ratio})",
   "upload_progress.label": "Wird hochgeladen …",
   "upload_progress.processing": "Wird verarbeitet…",
diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json
index 36f3cba0a..265466695 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -3976,12 +3976,12 @@
         "id": "compose_form.publish_form"
       },
       {
-        "defaultMessage": "Sign in",
-        "id": "sign_in_banner.sign_in"
-      },
-      {
         "defaultMessage": "Create account",
         "id": "sign_in_banner.create_account"
+      },
+      {
+        "defaultMessage": "Sign in",
+        "id": "sign_in_banner.sign_in"
       }
     ],
     "path": "app/javascript/mastodon/features/ui/components/header.json"
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 16f32c7ac..8026e6cdb 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -530,12 +530,12 @@
   "server_banner.about_active_users": "Άτομα που χρησιμοποιούν αυτόν τον διακομιστή κατά τις τελευταίες 30 ημέρες (Μηνιαία Ενεργοί Χρήστες)",
   "server_banner.active_users": "ενεργοί χρήστες",
   "server_banner.administered_by": "Διαχειριστής:",
-  "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
+  "server_banner.introduction": "Το {domain} είναι μέρος του αποκεντρωμένου κοινωνικού δικτύου που τρέχει σε {mastodon}.",
   "server_banner.learn_more": "Μάθετε περισσότερα",
   "server_banner.server_stats": "Στατιστικά διακομιστή:",
   "sign_in_banner.create_account": "Δημιουργία λογαριασμού",
   "sign_in_banner.sign_in": "Σύνδεση",
-  "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
+  "sign_in_banner.text": "Συνδεθείτε για να ακολουθήσετε προφίλ ή ταμπέλες, αγαπημένα, να μοιραστείτε και να απαντήσετε σε δημοσιεύσεις ή να αλληλεπιδράσετε από το λογαριασμό σας σε διαφορετικό διακομιστή.",
   "status.admin_account": "Άνοιγμα λειτουργίας διαμεσολάβησης για τον/την @{name}",
   "status.admin_status": "Άνοιγμα αυτής της δημοσίευσης στη λειτουργία διαμεσολάβησης",
   "status.block": "Αποκλεισμός @{name}",
@@ -548,7 +548,7 @@
   "status.direct": "Προσωπικό μήνυμα προς @{name}",
   "status.edit": "Επεξεργασία",
   "status.edited": "Επεξεργάστηκε στις {date}",
-  "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
+  "status.edited_x_times": "Επεξεργάστηκε {count, plural, one {{count} φορά} other {{count} φορές}}",
   "status.embed": "Ενσωμάτωσε",
   "status.favourite": "Σημείωσε ως αγαπημένο",
   "status.filter": "Φίλτρο...",
@@ -585,13 +585,13 @@
   "status.show_more_all": "Δείξε περισσότερα για όλα",
   "status.show_original": "Εμφάνιση αρχικού",
   "status.translate": "Μετάφραση",
-  "status.translated_from_with": "Translated from {lang} using {provider}",
+  "status.translated_from_with": "Μεταφράστηκε από {lang} χρησιμοποιώντας {provider}",
   "status.uncached_media_warning": "Μη διαθέσιμα",
   "status.unmute_conversation": "Διέκοψε την αποσιώπηση της συζήτησης",
   "status.unpin": "Ξεκαρφίτσωσε από το προφίλ",
   "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
   "subscribed_languages.save": "Αποθήκευση αλλαγών",
-  "subscribed_languages.target": "Change subscribed languages for {target}",
+  "subscribed_languages.target": "Αλλαγή εγγεγραμμένων γλωσσών για {target}",
   "suggestions.dismiss": "Απόρριψη πρότασης",
   "suggestions.header": "Ίσως να ενδιαφέρεσαι για…",
   "tabs_bar.federated_timeline": "Ομοσπονδιακή",
diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json
index dcf96600f..666ac0e4c 100644
--- a/app/javascript/mastodon/locales/en-GB.json
+++ b/app/javascript/mastodon/locales/en-GB.json
@@ -159,7 +159,7 @@
   "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
   "confirmations.discard_edit_media.confirm": "Discard",
   "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
-  "confirmations.domain_block.confirm": "Hide entire domain",
+  "confirmations.domain_block.confirm": "Block entire domain",
   "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
   "confirmations.logout.confirm": "Log out",
   "confirmations.logout.message": "Are you sure you want to log out?",
@@ -167,7 +167,7 @@
   "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
   "confirmations.mute.message": "Are you sure you want to mute {name}?",
   "confirmations.redraft.confirm": "Delete & redraft",
-  "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
+  "confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
   "confirmations.reply.confirm": "Reply",
   "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
   "confirmations.unfollow.confirm": "Unfollow",
@@ -186,11 +186,11 @@
   "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
   "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
   "dismissable_banner.dismiss": "Dismiss",
-  "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
-  "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
-  "embed.instructions": "Embed this status on your website by copying the code below.",
+  "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralised network right now.",
+  "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralised network are gaining traction on this server right now.",
+  "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralised network right now.",
+  "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralised network that this server knows about.",
+  "embed.instructions": "Embed this post on your website by copying the code below.",
   "embed.preview": "Here is what it will look like:",
   "emoji_button.activity": "Activity",
   "emoji_button.clear": "Clear",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index cd6277950..0c8857a69 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -9,8 +9,8 @@
   "about.domain_blocks.suspended.explanation": "Neniuj datumoj el tiu servilo estos prilaboritaj, konservitaj, aŭ interŝanĝitaj, do neeblas interagi aŭ komuniki kun uzantoj de tiu servilo.",
   "about.domain_blocks.suspended.title": "Suspendita",
   "about.not_available": "Ĉi tiu informo ne estas disponebla ĉe ĉi tiu servilo.",
-  "about.powered_by": "Malcentralizita socia reto pere de {mastodon}",
-  "about.rules": "Reguloj de la servilo",
+  "about.powered_by": "Malcentrigita socia retejo pere de {mastodon}",
+  "about.rules": "Regularo de la servilo",
   "account.account_note_header": "Noto",
   "account.add_or_remove_from_list": "Aldoni al aŭ forigi el listoj",
   "account.badges.bot": "Roboto",
@@ -40,20 +40,20 @@
   "account.go_to_profile": "Iri al profilo",
   "account.hide_reblogs": "Kaŝi diskonigojn de @{name}",
   "account.joined_short": "Aliĝis",
-  "account.languages": "Agordi lingvofiltron",
+  "account.languages": "Ŝanĝi la abonitajn lingvojn",
   "account.link_verified_on": "Propreco de tiu ligilo estis konfirmita je {date}",
   "account.locked_info": "Tiu konto estas privatigita. La posedanto mane akceptas tiun, kiu povas sekvi rin.",
   "account.media": "Aŭdovidaĵoj",
   "account.mention": "Mencii @{name}",
   "account.moved_to": "{name} indikis, ke ria nova konto estas nun:",
   "account.mute": "Silentigi @{name}",
-  "account.mute_notifications": "Silentigi sciigojn de @{name}",
+  "account.mute_notifications": "Silentigi la sciigojn de @{name}",
   "account.muted": "Silentigita",
-  "account.open_original_page": "Malfermi originan paĝon",
+  "account.open_original_page": "Malfermi la originalan paĝon",
   "account.posts": "Afiŝoj",
   "account.posts_with_replies": "Mesaĝoj kaj respondoj",
   "account.report": "Raporti @{name}",
-  "account.requested": "Atendo de aprobo. Alklaku por nuligi peton de sekvado",
+  "account.requested": "Atendo de aprobo. Klaku por nuligi la peton por sekvado",
   "account.share": "Diskonigi la profilon de @{name}",
   "account.show_reblogs": "Montri diskonigojn de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Afiŝo} other {{counter} Afiŝoj}}",
@@ -85,7 +85,7 @@
   "bundle_column_error.error.title": "Ho, ve!",
   "bundle_column_error.network.body": "Okazis eraro dum ŝarĝado de ĉi tiu paĝo. Tion povas kaŭzi portempa problemo pri via retkonektado aŭ pri ĉi tiu servilo.",
   "bundle_column_error.network.title": "Eraro de reto",
-  "bundle_column_error.retry": "Bonvolu reprovi",
+  "bundle_column_error.retry": "Provu refoje",
   "bundle_column_error.return": "Reiri hejmen",
   "bundle_column_error.routing.body": "La celita paĝo ne troveblas. Ĉu vi certas, ke la retadreso (URL) en via retfoliumilo estas ĝusta?",
   "bundle_column_error.routing.title": "404",
@@ -116,9 +116,9 @@
   "column_header.hide_settings": "Kaŝi la agordojn",
   "column_header.moveLeft_settings": "Movi kolumnon maldekstren",
   "column_header.moveRight_settings": "Movi kolumnon dekstren",
-  "column_header.pin": "Alpingli",
+  "column_header.pin": "Fiksi",
   "column_header.show_settings": "Montri la agordojn",
-  "column_header.unpin": "Depingli",
+  "column_header.unpin": "Malfiksi",
   "column_subheading.settings": "Agordoj",
   "community.column_settings.local_only": "Nur loka",
   "community.column_settings.media_only": "Nur aŭdovidaĵoj",
@@ -140,7 +140,7 @@
   "compose_form.publish": "Hup",
   "compose_form.publish_form": "Hup",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Konservi la ŝanĝojn",
+  "compose_form.save_changes": "Konservi ŝanĝojn",
   "compose_form.sensitive.hide": "{count, plural, one {Marki la aŭdovidaĵon kiel tikla} other {Marki la aŭdovidaĵojn kiel tikla}}",
   "compose_form.sensitive.marked": "{count, plural, one {La aŭdovidaĵo estas markita kiel tikla} other {La aŭdovidaĵoj estas markitaj kiel tikla}}",
   "compose_form.sensitive.unmarked": "{count, plural, one {La aŭdovidaĵo ne estas markita kiel tikla} other {La aŭdovidaĵoj ne estas markitaj kiel tikla}}",
@@ -158,7 +158,7 @@
   "confirmations.delete_list.confirm": "Forigi",
   "confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?",
   "confirmations.discard_edit_media.confirm": "Forĵeti",
-  "confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ de la antaŭmontro de la aŭdovidaĵo, ĉu vi forlasu ilin ĉiuokaze?",
+  "confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭmontro de la aŭdovidaĵo, ĉu forĵetu ilin malgraŭe?",
   "confirmations.domain_block.confirm": "Bloki la tutan domajnon",
   "confirmations.domain_block.message": "Ĉu vi vere, vere certas, ke vi volas tute bloki {domain}? Plej ofte, trafa blokado kaj silentigado sufiĉas kaj preferindas. Vi ne vidos enhavon de tiu domajno en publika templinio aŭ en viaj sciigoj. Viaj sekvantoj de tiu domajno estos forigitaj.",
   "confirmations.logout.confirm": "Adiaŭi",
@@ -283,9 +283,9 @@
   "home.column_settings.show_replies": "Montri respondojn",
   "home.hide_announcements": "Kaŝi la anoncojn",
   "home.show_announcements": "Montri anoncojn",
-  "interaction_modal.description.favourite": "Kun konto ĉe Mastodon, vi povos stelumi ĉi tiun mesaĝon por konservi ĝin kaj por sciigi al la afiŝinto, ke vi estimas ĝin.",
+  "interaction_modal.description.favourite": "Kun konto de Mastodon, vi povos stelumi ĉi tiun mesaĝon por konservi ĝin kaj por sciigi al la afiŝinto, ke vi estimas ĝin.",
   "interaction_modal.description.follow": "Kun konto ĉe Mastodon, vi povos sekvi {name} por vidi ties mesaĝojn en via hejmo.",
-  "interaction_modal.description.reblog": "Kun konto ĉe Mastodon, vi povos diskonigi ĉi tiun mesaĝon por ke viaj propraj sekvantoj vidu ĝin.",
+  "interaction_modal.description.reblog": "Kun konto de Mastodon, vi povas diskonigi ĉi tiun mesaĝon, por ke viaj propraj sekvantoj vidu ĝin.",
   "interaction_modal.description.reply": "Kun konto ĉe Mastodon, vi povos respondi al ĉi tiu mesaĝo.",
   "interaction_modal.on_another_server": "En alia servilo",
   "interaction_modal.on_this_server": "En ĉi tiu servilo",
@@ -293,7 +293,7 @@
   "interaction_modal.preamble": "Ĉar Mastodon estas malcentraliza, vi povas uzi jam ekzistantan konton, gastigatan de alia servilo Mastodon aŭ konforma platformo, se vi ne havas konton ĉe tiu ĉi.",
   "interaction_modal.title.favourite": "Stelumi la afiŝon de {name}",
   "interaction_modal.title.follow": "Sekvi {name}",
-  "interaction_modal.title.reblog": "Suprenigi la afiŝon de {name}",
+  "interaction_modal.title.reblog": "Akceli la afiŝon de {name}",
   "interaction_modal.title.reply": "Respondi al la afiŝo de {name}",
   "intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}",
   "intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}",
@@ -323,7 +323,7 @@
   "keyboard_shortcuts.pinned": "malfermi la liston de alpinglitaj mesaĝoj",
   "keyboard_shortcuts.profile": "malfermi la profilon de la aŭtoro",
   "keyboard_shortcuts.reply": "respondi",
-  "keyboard_shortcuts.requests": "malfermi la liston de petoj de sekvado",
+  "keyboard_shortcuts.requests": "Malfermi la liston de petoj por sekvado",
   "keyboard_shortcuts.search": "enfokusigi la serĉilon",
   "keyboard_shortcuts.spoilers": "Montri/kaŝi la kampon de averto de enhavo (\"CW\")",
   "keyboard_shortcuts.start": "malfermi la kolumnon «por komenci»",
@@ -384,7 +384,7 @@
   "navigation_bar.public_timeline": "Fratara templinio",
   "navigation_bar.search": "Serĉi",
   "navigation_bar.security": "Sekureco",
-  "not_signed_in_indicator.not_signed_in": "Necesas ensaluti, por atingi tion risurcon.",
+  "not_signed_in_indicator.not_signed_in": "Necesas saluti por aliri tiun rimedon.",
   "notification.admin.report": "{name} raportis {target}",
   "notification.admin.sign_up": "{name} kreis konton",
   "notification.favourite": "{name} stelumis vian mesaĝon",
@@ -430,7 +430,7 @@
   "notifications.permission_denied": "Labortablaj sciigoj ne disponeblas pro peto antaŭe rifuzita de retumiloj",
   "notifications.permission_denied_alert": "Labortablaj sciigoj ne povas esti ebligitaj, ĉar retumilpermeso antaŭe estis rifuzita",
   "notifications.permission_required": "Labortablaj sciigoj ne disponeblas ĉar la bezonata permeso ne estis donita.",
-  "notifications_permission_banner.enable": "Ebligi retumilajn sciigojn",
+  "notifications_permission_banner.enable": "Ŝalti retumilajn sciigojn",
   "notifications_permission_banner.how_to_control": "Por ricevi sciigojn kiam Mastodon ne estas malfermita, ebligu labortablajn sciigojn. Vi povas regi precize kiuj specoj de interagoj generas labortablajn sciigojn per la supra butono {icon} post kiam ili estas ebligitaj.",
   "notifications_permission_banner.title": "Neniam preterlasas iun ajn",
   "picture_in_picture.restore": "Remetu ĝin",
@@ -450,7 +450,7 @@
   "privacy.private.short": "Nur abonantoj",
   "privacy.public.long": "Videbla por ĉiuj",
   "privacy.public.short": "Publika",
-  "privacy.unlisted.long": "Videbla por ĉiuj, sed ekskluzive de la funkcio de esploro",
+  "privacy.unlisted.long": "Videbla por ĉiuj, sed ekskluzive el la funkcio de esploro",
   "privacy.unlisted.short": "Nelistigita",
   "privacy_policy.last_updated": "Laste ĝisdatigita sur {date}",
   "privacy_policy.title": "Politiko de privateco",
@@ -492,7 +492,7 @@
   "report.reasons.other_description": "La problemo ne taŭgas en aliaj kategorioj",
   "report.reasons.spam": "Ĝi estas trudaĵo",
   "report.reasons.spam_description": "Trompaj ligiloj, falsa/artefarita aktiveco, aŭ ripetaj respondoj",
-  "report.reasons.violation": "Ĝi malobservas la regulojn de la servilo",
+  "report.reasons.violation": "Ĝi malobservas la regularon de la servilo",
   "report.reasons.violation_description": "Vi scias ke ĝi malobeas specifan regulon",
   "report.rules.subtitle": "Elektu ĉiujn, kiuj validas",
   "report.rules.title": "Kiuj reguloj estas malobservataj?",
@@ -527,16 +527,16 @@
   "search_results.statuses_fts_disabled": "Serĉi mesaĝojn laŭ enhavo ne estas ebligita en ĉi tiu Mastodon-servilo.",
   "search_results.title": "Serĉ-rezultoj por {q}",
   "search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
-  "server_banner.about_active_users": "Homoj uzantaj ĉi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)",
+  "server_banner.about_active_users": "Personoj uzantaj ĉi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)",
   "server_banner.active_users": "aktivaj uzantoj",
   "server_banner.administered_by": "Administrata de:",
   "server_banner.introduction": "{domain} apartenas al la malcentra socia retejo povigita de {mastodon}.",
   "server_banner.learn_more": "Lernu pli",
   "server_banner.server_stats": "Statistikoj de la servilo:",
   "sign_in_banner.create_account": "Krei konton",
-  "sign_in_banner.sign_in": "Ensalutu",
+  "sign_in_banner.sign_in": "Saluti",
   "sign_in_banner.text": "Ensalutu por sekvi profilojn aŭ kradvortojn, stelumi, kunhavigi kaj respondi afiŝojn aŭ interagi per via konto de alia servilo.",
-  "status.admin_account": "Malfermi la kontrolan interfacon por @{name}",
+  "status.admin_account": "Malfermi fasadon de moderigado por @{name}",
   "status.admin_status": "Malfermi ĉi tiun mesaĝon en la kontrola interfaco",
   "status.block": "Bloki @{name}",
   "status.bookmark": "Aldoni al la legosignoj",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index 9866ec684..4540ab5d0 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -222,7 +222,7 @@
   "empty_column.follow_requests": "Todavía no tenés ninguna solicitud de seguimiento. Cuando recibás una, se mostrará acá.",
   "empty_column.hashtag": "Todavía no hay nada con esta etiqueta.",
   "empty_column.home": "¡Tu línea temporal principal está vacía! Seguí a más cuentas para llenarla. {suggestions}",
-  "empty_column.home.suggestions": "Mirá algunas sugerencias",
+  "empty_column.home.suggestions": "Mirá algunas sugerencias.",
   "empty_column.list": "Todavía no hay nada en esta lista. Cuando miembros de esta lista envíen nuevos mensaje, se mostrarán acá.",
   "empty_column.lists": "Todavía no tenés ninguna lista. Cuando creés una, se mostrará acá.",
   "empty_column.mutes": "Todavía no silenciaste a ningún usuario.",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index 5982f41cd..c5ec5d098 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -1,7 +1,7 @@
 {
   "about.blocks": "Servidores moderados",
   "about.contact": "Contacto:",
-  "about.disclaimer": "Mastodon es gratuito, software de código abierto y una marca registrada de Mastodon gGmbH.",
+  "about.disclaimer": "Mastodon es software libre de código abierto, y una marca comercial de Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Razón no disponible",
   "about.domain_blocks.preamble": "Mastodon generalmente te permite ver contenido e interactuar con usuarios de cualquier otro servidor del fediverso. Estas son las excepciones que se han hecho en este servidor en particular.",
   "about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explicitamente o vayas a el siguiendo alguna cuenta.",
@@ -20,7 +20,7 @@
   "account.blocked": "Bloqueado",
   "account.browse_more_on_origin_server": "Ver más en el perfil original",
   "account.cancel_follow_request": "Retirar solicitud de seguimiento",
-  "account.direct": "Mensaje directo a @{name}",
+  "account.direct": "Mensaje a @{name}",
   "account.disable_notifications": "Dejar de notificarme cuando @{name} publique algo",
   "account.domain_blocked": "Dominio oculto",
   "account.edit_profile": "Editar perfil",
@@ -44,7 +44,7 @@
   "account.link_verified_on": "El proprietario de este link fue comprobado 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": "Multimedia",
-  "account.mention": "Mencionar @{name}",
+  "account.mention": "Mencionar a @{name}",
   "account.moved_to": "{name} ha indicado que su nueva cuenta es ahora:",
   "account.mute": "Silenciar a @{name}",
   "account.mute_notifications": "Silenciar notificaciones de @{name}",
@@ -52,7 +52,7 @@
   "account.open_original_page": "Abrir página original",
   "account.posts": "Publicaciones",
   "account.posts_with_replies": "Publicaciones y respuestas",
-  "account.report": "Reportar a @{name}",
+  "account.report": "Denunciar a @{name}",
   "account.requested": "Esperando aprobación. Haga clic para cancelar la solicitud de seguimiento",
   "account.share": "Compartir el perfil de @{name}",
   "account.show_reblogs": "Mostrar retoots de @{name}",
@@ -101,7 +101,7 @@
   "column.blocks": "Usuarios bloqueados",
   "column.bookmarks": "Marcadores",
   "column.community": "Línea de tiempo local",
-  "column.direct": "Mensajes directos",
+  "column.direct": "Mensajes",
   "column.directory": "Buscar perfiles",
   "column.domain_blocks": "Dominios ocultados",
   "column.favourites": "Favoritos",
@@ -118,7 +118,7 @@
   "column_header.moveRight_settings": "Mover columna a la derecha",
   "column_header.pin": "Fijar",
   "column_header.show_settings": "Mostrar ajustes",
-  "column_header.unpin": "Dejar de fijar",
+  "column_header.unpin": "Desfijar",
   "column_subheading.settings": "Ajustes",
   "community.column_settings.local_only": "Solo local",
   "community.column_settings.media_only": "Solo media",
@@ -148,9 +148,9 @@
   "compose_form.spoiler.unmarked": "Texto no oculto",
   "compose_form.spoiler_placeholder": "Advertencia de contenido",
   "confirmation_modal.cancel": "Cancelar",
-  "confirmations.block.block_and_report": "Bloquear y Reportar",
+  "confirmations.block.block_and_report": "Bloquear y Denunciar",
   "confirmations.block.confirm": "Bloquear",
-  "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?",
+  "confirmations.block.message": "¿Estás seguro de querer bloquear a {name}?",
   "confirmations.cancel_follow_request.confirm": "Retirar solicitud",
   "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?",
   "confirmations.delete.confirm": "Eliminar",
@@ -184,7 +184,7 @@
   "directory.recently_active": "Recientemente activo",
   "disabled_account_banner.account_settings": "Ajustes de la cuenta",
   "disabled_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada.",
-  "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.",
+  "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de las personas cuyas cuentas están alojadas en {domain}.",
   "dismissable_banner.dismiss": "Descartar",
   "dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.",
   "dismissable_banner.explore_statuses": "Estas publicaciones de este y otros servidores en la red descentralizada están ganando popularidad en este servidor en este momento.",
@@ -193,13 +193,13 @@
   "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.",
   "embed.preview": "Así es como se verá:",
   "emoji_button.activity": "Actividad",
-  "emoji_button.clear": "Limpiar",
+  "emoji_button.clear": "Borrar",
   "emoji_button.custom": "Personalizado",
   "emoji_button.flags": "Marcas",
   "emoji_button.food": "Comida y bebida",
   "emoji_button.label": "Insertar emoji",
   "emoji_button.nature": "Naturaleza",
-  "emoji_button.not_found": "No hay emojis!! ¯\\_(ツ)_/¯",
+  "emoji_button.not_found": "Sin emojis coincidentes",
   "emoji_button.objects": "Objetos",
   "emoji_button.people": "Gente",
   "emoji_button.recent": "Usados frecuentemente",
@@ -213,7 +213,7 @@
   "empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
   "empty_column.bookmarked_statuses": "Aún no tienes ningún toot guardado como marcador. Cuando guardes uno, se mostrará aquí.",
   "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í.",
+  "empty_column.direct": "Aún no tienes ningún mensaje. Cuando envíes o recibas uno, se mostrará aquí.",
   "empty_column.domain_blocks": "Todavía no hay dominios ocultos.",
   "empty_column.explore_statuses": "Nada es tendencia en este momento. ¡Revisa más tarde!",
   "empty_column.favourited_statuses": "Aún no tienes toots preferidos. Cuando marques uno como favorito, aparecerá aquí.",
@@ -233,12 +233,12 @@
   "error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, es posible que puedas usar Mastodon a través de otro navegador o aplicación nativa.",
   "error.unexpected_crash.next_steps_addons": "Intenta deshabilitarlos y recarga la página. Si eso no ayuda, podrías usar Mastodon a través de un navegador web diferente o aplicación nativa.",
   "errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles",
-  "errors.unexpected_crash.report_issue": "Informar de un problema/error",
+  "errors.unexpected_crash.report_issue": "Informar problema",
   "explore.search_results": "Resultados de búsqueda",
   "explore.title": "Descubrir",
-  "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que ha accedido a esta publlicación. Si quieres que la publicación sea filtrada también en este contexto, tendrás que editar el filtro.",
+  "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que has accedido a esta publlicación. Si quieres que la publicación sea filtrada también en este contexto, tendrás que editar el filtro.",
   "filter_modal.added.context_mismatch_title": "¡El contexto no coincide!",
-  "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, necesitará cambiar la fecha de caducidad para que se aplique.",
+  "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, necesitaras cambiar la fecha de caducidad para que se aplique.",
   "filter_modal.added.expired_title": "¡Filtro expirado!",
   "filter_modal.added.review_and_configure": "Para revisar y configurar esta categoría de filtros, vaya a {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Ajustes de filtro",
@@ -261,7 +261,7 @@
   "footer.about": "Acerca de",
   "footer.directory": "Directorio de perfiles",
   "footer.get_app": "Obtener la aplicación",
-  "footer.invite": "Invitar gente",
+  "footer.invite": "Invitar personas",
   "footer.keyboard_shortcuts": "Atajos de teclado",
   "footer.privacy_policy": "Política de privacidad",
   "footer.source_code": "Ver código fuente",
@@ -271,7 +271,7 @@
   "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.select.placeholder": "Introducir etiquetas…",
   "hashtag.column_settings.tag_mode.all": "Todos estos",
   "hashtag.column_settings.tag_mode.any": "Cualquiera de estos",
   "hashtag.column_settings.tag_mode.none": "Ninguno de estos",
@@ -304,7 +304,7 @@
   "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": "Descripción",
-  "keyboard_shortcuts.direct": "para abrir la columna de mensajes directos",
+  "keyboard_shortcuts.direct": "abrir la columna de mensajes",
   "keyboard_shortcuts.down": "mover hacia abajo en la lista",
   "keyboard_shortcuts.enter": "abrir estado",
   "keyboard_shortcuts.favourite": "añadir a favoritos",
@@ -366,7 +366,7 @@
   "navigation_bar.bookmarks": "Marcadores",
   "navigation_bar.community_timeline": "Historia local",
   "navigation_bar.compose": "Escribir un nuevo toot",
-  "navigation_bar.direct": "Mensajes directos",
+  "navigation_bar.direct": "Mensajes",
   "navigation_bar.discover": "Descubrir",
   "navigation_bar.domain_blocks": "Dominios ocultos",
   "navigation_bar.edit_profile": "Editar perfil",
@@ -385,7 +385,7 @@
   "navigation_bar.search": "Buscar",
   "navigation_bar.security": "Seguridad",
   "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.",
-  "notification.admin.report": "{name} informó {target}",
+  "notification.admin.report": "{name} denunció a {target}",
   "notification.admin.sign_up": "{name} se unio",
   "notification.favourite": "{name} marcó tu estado como favorito",
   "notification.follow": "{name} te empezó a seguir",
@@ -397,8 +397,8 @@
   "notification.status": "{name} acaba de publicar",
   "notification.update": "{name} editó una publicación",
   "notifications.clear": "Limpiar notificaciones",
-  "notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
-  "notifications.column_settings.admin.report": "Nuevos informes:",
+  "notifications.clear_confirmation": "¿Seguro de querer borrar permanentemente todas tus notificaciones?",
+  "notifications.column_settings.admin.report": "Nuevas denuncias:",
   "notifications.column_settings.admin.sign_up": "Registros nuevos:",
   "notifications.column_settings.alert": "Notificaciones de escritorio",
   "notifications.column_settings.favourite": "Favoritos:",
@@ -413,7 +413,7 @@
   "notifications.column_settings.reblog": "Retoots:",
   "notifications.column_settings.show": "Mostrar en columna",
   "notifications.column_settings.sound": "Reproducir sonido",
-  "notifications.column_settings.status": "Nuevos toots:",
+  "notifications.column_settings.status": "Nuevas publicaciones:",
   "notifications.column_settings.unread_notifications.category": "Notificaciones sin leer",
   "notifications.column_settings.unread_notifications.highlight": "Destacar notificaciones no leídas",
   "notifications.column_settings.update": "Ediciones:",
@@ -445,14 +445,14 @@
   "poll_button.remove_poll": "Eliminar encuesta",
   "privacy.change": "Ajustar privacidad",
   "privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
-  "privacy.direct.short": "Sólo cuentas mencionadas",
+  "privacy.direct.short": "Solo personas mencionadas",
   "privacy.private.long": "Sólo mostrar a seguidores",
   "privacy.private.short": "Solo seguidores",
   "privacy.public.long": "Visible para todos",
   "privacy.public.short": "Público",
   "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
   "privacy.unlisted.short": "No listado",
-  "privacy_policy.last_updated": "Ultima vez actualizado {date}",
+  "privacy_policy.last_updated": "Actualizado por última vez {date}",
   "privacy_policy.title": "Política de Privacidad",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "Cargando…",
@@ -487,55 +487,55 @@
   "report.next": "Siguiente",
   "report.placeholder": "Comentarios adicionales",
   "report.reasons.dislike": "No me gusta",
-  "report.reasons.dislike_description": "No es algo que desee ver",
+  "report.reasons.dislike_description": "No es algo que quieres ver",
   "report.reasons.other": "Es algo más",
   "report.reasons.other_description": "El problema no encaja en otras categorías",
   "report.reasons.spam": "Es spam",
-  "report.reasons.spam_description": "Enlaces maliciosos, Interacciones falsas, o respuestas repetitivas",
-  "report.reasons.violation": "Viola las reglas del servidor",
-  "report.reasons.violation_description": "Es consciente de que infringe normas específicas",
-  "report.rules.subtitle": "Selecciona todos los que apliquen",
-  "report.rules.title": "¿Qué reglas se están violando?",
-  "report.statuses.subtitle": "Seleccione todos lo que aplican",
-  "report.statuses.title": "¿Hay alguna publicación que respalde este informe?",
-  "report.submit": "Publicar",
-  "report.target": "Reportando",
-  "report.thanks.take_action": "Aqui hay algunas opciones para controlar lo que ves en Mastodon:",
+  "report.reasons.spam_description": "Enlaces maliciosos, interacciones falsas, o respuestas repetitivas",
+  "report.reasons.violation": "Infringe las reglas del servidor",
+  "report.reasons.violation_description": "Eres consciente de que infringe normas específicas",
+  "report.rules.subtitle": "Selecciona todas las que apliquen",
+  "report.rules.title": "¿Cuáles reglas se están infringiendo?",
+  "report.statuses.subtitle": "Seleccione todas las que apliquen",
+  "report.statuses.title": "¿Hay alguna publicación que respalde esta denuncia?",
+  "report.submit": "Enviar",
+  "report.target": "Denunciando a {target}",
+  "report.thanks.take_action": "Aquí están tus opciones para controlar lo que ves en Mastodon:",
   "report.thanks.take_action_actionable": "Mientras revisamos esto, puedes tomar medidas contra @{name}:",
   "report.thanks.title": "¿No quieres ver esto?",
-  "report.thanks.title_actionable": "Gracias por informar, estudiaremos esto.",
+  "report.thanks.title_actionable": "Gracias por denunciar, revisaremos esto.",
   "report.unfollow": "Dejar de seguir @{name}",
-  "report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu sección de noticias, deja de seguirlo.",
+  "report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu inicio, deja de seguirla.",
   "report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)",
-  "report_notification.categories.other": "Otros",
+  "report_notification.categories.other": "Otro",
   "report_notification.categories.spam": "Spam",
   "report_notification.categories.violation": "Infracción de regla",
-  "report_notification.open": "Abrir informe",
+  "report_notification.open": "Abrir denuncia",
   "search.placeholder": "Buscar",
   "search.search_or_paste": "Buscar o pegar URL",
   "search_popout.search_format": "Formato de búsqueda avanzada",
   "search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.",
   "search_popout.tips.hashtag": "etiqueta",
-  "search_popout.tips.status": "status",
-  "search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, usuario y hashtag",
+  "search_popout.tips.status": "publicación",
+  "search_popout.tips.text": "El texto simple devuelve nombres, usuarios y etiquetas coincidentes",
   "search_popout.tips.user": "usuario",
   "search_results.accounts": "Gente",
   "search_results.all": "Todos",
   "search_results.hashtags": "Etiquetas",
-  "search_results.nothing_found": "No se pudo encontrar nada para estos términos de busqueda",
-  "search_results.statuses": "Toots",
-  "search_results.statuses_fts_disabled": "Buscar toots por su contenido no está disponible en este servidor de Mastodon.",
+  "search_results.nothing_found": "No se pudo encontrar nada para estos términos de búsqueda",
+  "search_results.statuses": "Publicaciones",
+  "search_results.statuses_fts_disabled": "La búsqueda de publicaciones por su contenido no está disponible en este servidor de Mastodon.",
   "search_results.title": "Buscar {q}",
   "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
-  "server_banner.about_active_users": "Usuarios activos en el servidor durante los últimos 30 días (Usuarios Activos Mensuales)",
+  "server_banner.about_active_users": "Personas utilizando este servidor durante los últimos 30 días (Usuarios Activos Mensuales)",
   "server_banner.active_users": "usuarios activos",
   "server_banner.administered_by": "Administrado por:",
-  "server_banner.introduction": "{domain} es parte de la red social descentralizada liderada por {mastodon}.",
+  "server_banner.introduction": "{domain} es parte de la red social descentralizada gestionada por {mastodon}.",
   "server_banner.learn_more": "Saber más",
   "server_banner.server_stats": "Estadísticas del servidor:",
   "sign_in_banner.create_account": "Crear cuenta",
   "sign_in_banner.sign_in": "Iniciar sesión",
-  "sign_in_banner.text": "Inicia sesión en este servidor para seguir perfiles o etiquetas, guardar, compartir y responder a mensajes. También puedes interactuar desde otra cuenta en un servidor diferente.",
+  "sign_in_banner.text": "Inicia sesión para seguir perfiles o etiquetas, marcar favorito, compartir y responder a publicaciones, o interactua desde tu cuenta en un servidor diferente.",
   "status.admin_account": "Abrir interfaz de moderación para @{name}",
   "status.admin_status": "Abrir este estado en la interfaz de moderación",
   "status.block": "Bloquear a @{name}",
@@ -545,7 +545,7 @@
   "status.copy": "Copiar enlace al estado",
   "status.delete": "Borrar",
   "status.detailed_status": "Vista de conversación detallada",
-  "status.direct": "Mensaje directo a @{name}",
+  "status.direct": "Enviar mensaje a @{name}",
   "status.edit": "Editar",
   "status.edited": "Editado {date}",
   "status.edited_x_times": "Editado {count, plural, one {{count} time} other {{count} veces}}",
@@ -553,7 +553,7 @@
   "status.favourite": "Favorito",
   "status.filter": "Filtrar esta publicación",
   "status.filtered": "Filtrado",
-  "status.hide": "Ocultar publicación",
+  "status.hide": "Ocultar toot",
   "status.history.created": "{name} creó {date}",
   "status.history.edited": "{name} editado {date}",
   "status.load_more": "Cargar más",
@@ -585,11 +585,11 @@
   "status.show_more_all": "Mostrar más para todo",
   "status.show_original": "Mostrar original",
   "status.translate": "Traducir",
-  "status.translated_from_with": "Traducido de {lang} usando {provider}",
+  "status.translated_from_with": "Traducido del {lang} usando {provider}",
   "status.uncached_media_warning": "No disponible",
   "status.unmute_conversation": "Dejar de silenciar conversación",
   "status.unpin": "Dejar de fijar",
-  "subscribed_languages.lead": "Sólo los mensajes en los idiomas seleccionados aparecerán en su inicio y otras líneas de tiempo después del cambio. Seleccione ninguno para recibir mensajes en todos los idiomas.",
+  "subscribed_languages.lead": "Solo las publicaciones en los idiomas seleccionados aparecerán en tu inicio y enlistará las líneas de tiempo después del cambio. Selecciona ninguno para recibir publicaciones en todos los idiomas.",
   "subscribed_languages.save": "Guardar cambios",
   "subscribed_languages.target": "Cambiar idiomas suscritos para {target}",
   "suggestions.dismiss": "Descartar sugerencia",
@@ -619,7 +619,7 @@
   "upload_error.poll": "Subida de archivos no permitida con encuestas.",
   "upload_form.audio_description": "Describir para personas con problemas auditivos",
   "upload_form.description": "Describir para los usuarios con dificultad visual",
-  "upload_form.description_missing": "Ninguna descripción añadida",
+  "upload_form.description_missing": "Sin descripción añadida",
   "upload_form.edit": "Editar",
   "upload_form.thumbnail": "Cambiar miniatura",
   "upload_form.undo": "Borrar",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 3a73e1a0d..53dd4c387 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -38,7 +38,7 @@
   "account.follows.empty": "Este usuario todavía no sigue a nadie.",
   "account.follows_you": "Te sigue",
   "account.go_to_profile": "Ir al perfil",
-  "account.hide_reblogs": "Ocultar retuts de @{name}",
+  "account.hide_reblogs": "Ocultar impulsos de @{name}",
   "account.joined_short": "Se unió",
   "account.languages": "Cambiar idiomas suscritos",
   "account.link_verified_on": "La propiedad de este enlace fue verificada el {date}",
@@ -55,7 +55,7 @@
   "account.report": "Reportar a @{name}",
   "account.requested": "Esperando aprobación. Clica para cancelar la solicitud de seguimiento",
   "account.share": "Compartir el perfil de @{name}",
-  "account.show_reblogs": "Mostrar retuts de @{name}",
+  "account.show_reblogs": "Mostrar impulsos de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Publicación} other {{counter} Publicaciones}}",
   "account.unblock": "Desbloquear a @{name}",
   "account.unblock_domain": "Mostrar {domain}",
@@ -64,7 +64,7 @@
   "account.unfollow": "Dejar de seguir",
   "account.unmute": "Dejar de silenciar a @{name}",
   "account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
-  "account.unmute_short": "Dejar de silenciar",
+  "account.unmute_short": "Desilenciar",
   "account_note.placeholder": "Clic para añadir nota",
   "admin.dashboard.daily_retention": "Tasa de retención de usuarios por día después del registro",
   "admin.dashboard.monthly_retention": "Tasa de retención de usuarios por mes después del registro",
@@ -100,7 +100,7 @@
   "column.about": "Acerca de",
   "column.blocks": "Usuarios bloqueados",
   "column.bookmarks": "Marcadores",
-  "column.community": "Línea local",
+  "column.community": "Cronología local",
   "column.direct": "Mensajes directos",
   "column.directory": "Buscar perfiles",
   "column.domain_blocks": "Dominios bloqueados",
@@ -111,7 +111,7 @@
   "column.mutes": "Usuarios silenciados",
   "column.notifications": "Notificaciones",
   "column.pins": "Publicaciones fijadas",
-  "column.public": "Línea federada",
+  "column.public": "Cronología federada",
   "column_back_button.label": "Atrás",
   "column_header.hide_settings": "Ocultar configuración",
   "column_header.moveLeft_settings": "Mover columna a la izquierda",
@@ -145,8 +145,8 @@
   "compose_form.sensitive.marked": "{count, plural, one {Material marcado como sensible} other {Material marcado como sensible}}",
   "compose_form.sensitive.unmarked": "{count, plural, one {Material no marcado como sensible} other {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",
+  "compose_form.spoiler.unmarked": "Añadir advertencia de contenido",
+  "compose_form.spoiler_placeholder": "Escribe aquí tu advertencia",
   "confirmation_modal.cancel": "Cancelar",
   "confirmations.block.block_and_report": "Bloquear y Reportar",
   "confirmations.block.confirm": "Bloquear",
@@ -275,11 +275,11 @@
   "hashtag.column_settings.tag_mode.all": "Cualquiera de estos",
   "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",
+  "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionales en esta columna",
   "hashtag.follow": "Seguir etiqueta",
   "hashtag.unfollow": "Dejar de seguir etiqueta",
   "home.column_settings.basic": "Básico",
-  "home.column_settings.show_reblogs": "Mostrar retoots",
+  "home.column_settings.show_reblogs": "Mostrar impulsos",
   "home.column_settings.show_replies": "Mostrar respuestas",
   "home.hide_announcements": "Ocultar anuncios",
   "home.show_announcements": "Mostrar anuncios",
@@ -309,13 +309,13 @@
   "keyboard_shortcuts.enter": "abrir estado",
   "keyboard_shortcuts.favourite": "añadir a favoritos",
   "keyboard_shortcuts.favourites": "abrir la lista de favoritos",
-  "keyboard_shortcuts.federated": "Abrir la línea de tiempo federada",
+  "keyboard_shortcuts.federated": "Abrir la cronología federada",
   "keyboard_shortcuts.heading": "Keyboard Shortcuts",
-  "keyboard_shortcuts.home": "Abrir línea de tiempo",
-  "keyboard_shortcuts.hotkey": "Tecla caliente",
-  "keyboard_shortcuts.legend": "para mostrar esta leyenda",
-  "keyboard_shortcuts.local": "Abrir línea de tiempo local",
-  "keyboard_shortcuts.mention": "para mencionar al autor",
+  "keyboard_shortcuts.home": "Abrir cronología principal",
+  "keyboard_shortcuts.hotkey": "Tecla rápida",
+  "keyboard_shortcuts.legend": "Mostrar esta leyenda",
+  "keyboard_shortcuts.local": "Abrir cronología local",
+  "keyboard_shortcuts.mention": "mencionar al autor",
   "keyboard_shortcuts.muted": "abrir la lista de usuarios silenciados",
   "keyboard_shortcuts.my_profile": "abrir tu perfil",
   "keyboard_shortcuts.notifications": "abrir la columna de notificaciones",
@@ -364,7 +364,7 @@
   "navigation_bar.about": "Acerca de",
   "navigation_bar.blocks": "Usuarios bloqueados",
   "navigation_bar.bookmarks": "Marcadores",
-  "navigation_bar.community_timeline": "Línea de tiempo local",
+  "navigation_bar.community_timeline": "Cronología local",
   "navigation_bar.compose": "Escribir nueva publicación",
   "navigation_bar.direct": "Mensajes directos",
   "navigation_bar.discover": "Descubrir",
@@ -381,7 +381,7 @@
   "navigation_bar.personal": "Personal",
   "navigation_bar.pins": "Publicaciones fijadas",
   "navigation_bar.preferences": "Preferencias",
-  "navigation_bar.public_timeline": "Línea de tiempo federada",
+  "navigation_bar.public_timeline": "Cronología federada",
   "navigation_bar.search": "Buscar",
   "navigation_bar.security": "Seguridad",
   "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.",
@@ -393,7 +393,7 @@
   "notification.mention": "{name} te ha mencionado",
   "notification.own_poll": "Tu encuesta ha terminado",
   "notification.poll": "Una encuesta en la que has votado ha terminado",
-  "notification.reblog": "{name} ha retooteado tu publicación",
+  "notification.reblog": "{name} ha impulsado tu publicación",
   "notification.status": "{name} acaba de publicar",
   "notification.update": "{name} editó una publicación",
   "notifications.clear": "Limpiar notificaciones",
@@ -418,7 +418,7 @@
   "notifications.column_settings.unread_notifications.highlight": "Destacar notificaciones no leídas",
   "notifications.column_settings.update": "Ediciones:",
   "notifications.filter.all": "Todos",
-  "notifications.filter.boosts": "Retoots",
+  "notifications.filter.boosts": "Impulsos",
   "notifications.filter.favourites": "Favoritos",
   "notifications.filter.follows": "Seguidores",
   "notifications.filter.mentions": "Menciones",
@@ -444,7 +444,7 @@
   "poll_button.add_poll": "Añadir una encuesta",
   "poll_button.remove_poll": "Eliminar encuesta",
   "privacy.change": "Ajustar privacidad",
-  "privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
+  "privacy.direct.long": "Visible solo para usuarios mencionados",
   "privacy.direct.short": "Sólo cuentas mencionadas",
   "privacy.private.long": "Sólo mostrar a seguidores",
   "privacy.private.short": "Solo seguidores",
@@ -452,7 +452,7 @@
   "privacy.public.short": "Público",
   "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
   "privacy.unlisted.short": "No listado",
-  "privacy_policy.last_updated": "Ultima vez actualizado {date}",
+  "privacy_policy.last_updated": "Actualizado por última vez {date}",
   "privacy_policy.title": "Política de Privacidad",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "Cargando…",
@@ -540,8 +540,8 @@
   "status.admin_status": "Abrir este estado en la interfaz de moderación",
   "status.block": "Bloquear a @{name}",
   "status.bookmark": "Añadir marcador",
-  "status.cancel_reblog_private": "Deshacer retoot",
-  "status.cannot_reblog": "Esta publicación no puede retootearse",
+  "status.cancel_reblog_private": "Deshacer impulso",
+  "status.cannot_reblog": "Esta publicación no se puede impulsar",
   "status.copy": "Copiar enlace al estado",
   "status.delete": "Borrar",
   "status.detailed_status": "Vista de conversación detallada",
@@ -616,13 +616,13 @@
   "upload_area.title": "Arrastra y suelta para subir",
   "upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
   "upload_error.limit": "Límite de subida de archivos excedido.",
-  "upload_error.poll": "Subida de archivos no permitida con encuestas.",
+  "upload_error.poll": "No se permite la subida de archivos con encuestas.",
   "upload_form.audio_description": "Describir para personas con problemas auditivos",
-  "upload_form.description": "Describir para los usuarios con dificultad visual",
-  "upload_form.description_missing": "Ninguna descripción añadida",
+  "upload_form.description": "Describir para personas con discapacidad visual",
+  "upload_form.description_missing": "No se ha añadido ninguna descripción",
   "upload_form.edit": "Describir",
   "upload_form.thumbnail": "Cambiar miniatura",
-  "upload_form.undo": "Borrar",
+  "upload_form.undo": "Eliminar",
   "upload_form.video_description": "Describir para personas con problemas auditivos o visuales",
   "upload_modal.analyzing_picture": "Analizando imagen…",
   "upload_modal.apply": "Aplicar",
@@ -645,5 +645,5 @@
   "video.mute": "Silenciar sonido",
   "video.pause": "Pausar",
   "video.play": "Reproducir",
-  "video.unmute": "Dejar de silenciar sonido"
+  "video.unmute": "Desilenciar sonido"
 }
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index 81d325c48..19064ec04 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -61,7 +61,7 @@
   "account.unblock_domain": "Tee {domain} nähtavaks",
   "account.unblock_short": "Eemalda blokeering",
   "account.unendorse": "Ära kuva profiilil",
-  "account.unfollow": "Ära jälgi",
+  "account.unfollow": "Jälgid",
   "account.unmute": "Ära vaigista @{name}",
   "account.unmute_notifications": "Ära vaigista teateid kasutajalt @{name}",
   "account.unmute_short": "Lõpeta vaigistus",
@@ -125,7 +125,7 @@
   "community.column_settings.remote_only": "Ainult kaug",
   "compose.language.change": "Muuda keelt",
   "compose.language.search": "Otsi keeli...",
-  "compose_form.direct_message_warning_learn_more": "Vaata veel",
+  "compose_form.direct_message_warning_learn_more": "Vaata täpsemalt",
   "compose_form.encryption_warning": "Postitused Mastodonis ei ole otsast-otsani krüpteeritud. Ärge jagage mingeid delikaatseid andmeid Mastodoni kaudu.",
   "compose_form.hashtag_warning": "Seda postitust ei kuvata ühegi sildi all, sest see ei ole leitav avastustoimingute kaudu. Ainult avalikud postitused on sildi järgi otsitavad.",
   "compose_form.lock_disclaimer": "Teie konto ei ole {locked}. Igaüks saab teid jälgida ja näha teie ainult-jälgijatele postitusi.",
@@ -137,15 +137,15 @@
   "compose_form.poll.remove_option": "Eemalda see valik",
   "compose_form.poll.switch_to_multiple": "Muuda küsitlust lubamaks mitut valikut",
   "compose_form.poll.switch_to_single": "Muuda küsitlust lubamaks ainult ühte valikut",
-  "compose_form.publish": "Avalda",
-  "compose_form.publish_form": "Avalda",
+  "compose_form.publish": "Postita",
+  "compose_form.publish_form": "Postita",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.save_changes": "Salvesta muudatused",
   "compose_form.sensitive.hide": "Märgista meedia tundlikuks",
   "compose_form.sensitive.marked": "Meedia on sensitiivseks märgitud",
   "compose_form.sensitive.unmarked": "Meedia ei ole sensitiivseks märgitud",
   "compose_form.spoiler.marked": "Tekst on hoiatuse taha peidetud",
-  "compose_form.spoiler.unmarked": "Tekst ei ole peidetud",
+  "compose_form.spoiler.unmarked": "Märgi sisu tundlikuks",
   "compose_form.spoiler_placeholder": "Kirjutage oma hoiatus siia",
   "confirmation_modal.cancel": "Katkesta",
   "confirmations.block.block_and_report": "Blokeeri ja teata",
@@ -178,7 +178,7 @@
   "conversation.with": "Koos {names}",
   "copypaste.copied": "Kopeeritud",
   "copypaste.copy": "Kopeeri",
-  "directory.federated": "Teatud fediversumist",
+  "directory.federated": "Tuntud födiversumist",
   "directory.local": "Ainult domeenilt {domain}",
   "directory.new_arrivals": "Uustulijad",
   "directory.recently_active": "Hiljuti aktiivne",
@@ -197,7 +197,7 @@
   "emoji_button.custom": "Mugandatud",
   "emoji_button.flags": "Lipud",
   "emoji_button.food": "Toit & jook",
-  "emoji_button.label": "Sisesta emoji",
+  "emoji_button.label": "Lisa emoji",
   "emoji_button.nature": "Loodus",
   "emoji_button.not_found": "Ei ole emojosi!! (╯°□°)╯︵ ┻━┻",
   "emoji_button.objects": "Objektid",
@@ -234,7 +234,7 @@
   "error.unexpected_crash.next_steps_addons": "Proovige need välja lülitada ja leht uuesti laadida. Kui sellest pole abi, võib olla võimalik Mastodoni kasutada mingi teise brauseri või rakendusega.",
   "errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale",
   "errors.unexpected_crash.report_issue": "Teavita veast",
-  "explore.search_results": "Otsingutulemused",
+  "explore.search_results": "Otsitulemused",
   "explore.title": "Avasta",
   "filter_modal.added.context_mismatch_explanation": "See filtrikategooria ei rakendu selles kontekstis, kuidas te postitusele jõudsite. Kui tahate postitust ka selles kontekstis filtreerida, võite muuta filtrit.",
   "filter_modal.added.context_mismatch_title": "Konteksti mittesobivus!",
@@ -251,7 +251,7 @@
   "filter_modal.select_filter.search": "Otsi või loo",
   "filter_modal.select_filter.subtitle": "Kasuta olemasolevat kategooriat või loo uus",
   "filter_modal.select_filter.title": "Filtreeri seda postitust",
-  "filter_modal.title.status": "Filtreeri postitust",
+  "filter_modal.title.status": "Postituse filtreerimine",
   "follow_recommendations.done": "Valmis",
   "follow_recommendations.heading": "Jälgi inimesi, kelle postituse tahaksite näha! Mõned soovitused on siin.",
   "follow_recommendations.lead": "Postitused inimestelt, keda te jälgite ilmuvad ajalises järjekorras teie kodu ajajoonel. Ärge kartke eksida, alati saate inimeste jälgimist ka lõpetada!",
@@ -261,10 +261,10 @@
   "footer.about": "Teave",
   "footer.directory": "Profiilikataloog",
   "footer.get_app": "Tõmba äpp",
-  "footer.invite": "Kutsu inimesi",
+  "footer.invite": "Liituma kutsumine",
   "footer.keyboard_shortcuts": "Klaviatuuri otseteed",
-  "footer.privacy_policy": "Privaatsuspoliitika",
-  "footer.source_code": "Vaata lähtekoodi",
+  "footer.privacy_policy": "Isikuandmete kaitse",
+  "footer.source_code": "Lähtekood",
   "generic.saved": "Salvestatud",
   "getting_started.heading": "Alustamine",
   "hashtag.column_header.tag_mode.all": "ja {additional}",
@@ -374,7 +374,7 @@
   "navigation_bar.favourites": "Lemmikud",
   "navigation_bar.filters": "Vaigistatud sõnad",
   "navigation_bar.follow_requests": "Jälgimistaotlused",
-  "navigation_bar.follows_and_followers": "Jälgitud ja jälgijad",
+  "navigation_bar.follows_and_followers": "Jälgitavad ja jälgijad",
   "navigation_bar.lists": "Nimistud",
   "navigation_bar.logout": "Logi välja",
   "navigation_bar.mutes": "Vaigistatud kasutajad",
@@ -453,7 +453,7 @@
   "privacy.unlisted.long": "Kõgile nähtav, aga ei ilmu avastamise vaadetes",
   "privacy.unlisted.short": "Määramata",
   "privacy_policy.last_updated": "Viimati uuendatud {date}",
-  "privacy_policy.title": "Privaatsuspoliitika",
+  "privacy_policy.title": "Isikuandmete kaitse",
   "refresh": "Värskenda",
   "regeneration_indicator.label": "Laeb…",
   "regeneration_indicator.sublabel": "Teie kodu voog on ettevalmistamisel!",
@@ -522,8 +522,8 @@
   "search_results.accounts": "Inimesed",
   "search_results.all": "Kõik",
   "search_results.hashtags": "Sildid",
-  "search_results.nothing_found": "Ei leidnud midagi nende otsinguterminitega",
-  "search_results.statuses": "Tuudid",
+  "search_results.nothing_found": "Otsisõnadele vastavat sisu ei leitud",
+  "search_results.statuses": "Postitused",
   "search_results.statuses_fts_disabled": "Postituste otsimine nende sisu järgi ei ole sellel Mastodoni serveril sisse lülitatud.",
   "search_results.title": "{q} otsing",
   "search_results.total": "{count, number} {count, plural, one {tulemus} other {tulemust}}",
@@ -531,13 +531,13 @@
   "server_banner.active_users": "aktiivsed kasutajad",
   "server_banner.administered_by": "Administraator:",
   "server_banner.introduction": "{domain} on osa detsentraliseeritud sotsiaalvõrgustikust, mida võimaldab {mastodon}.",
-  "server_banner.learn_more": "Vaata veel",
+  "server_banner.learn_more": "Vaata täpsemalt",
   "server_banner.server_stats": "Serveri statistika:",
   "sign_in_banner.create_account": "Loo konto",
   "sign_in_banner.sign_in": "Logi sisse",
   "sign_in_banner.text": "Logi sisse, et jälgida profiile või silte, märkida lemmikuks, jagada ja vastata postitustele või kasutada suhtlemiseks kontot teises serveris.",
-  "status.admin_account": "Ava moderaatoriliides kasutajale @{name}",
-  "status.admin_status": "Ava see staatus moderaatoriliites",
+  "status.admin_account": "Ava @{name} moderaatorivaates",
+  "status.admin_status": "Ava postitus moderaatorivaates",
   "status.block": "Blokeeri @{name}",
   "status.bookmark": "Järjehoidja",
   "status.cancel_reblog_private": "Lõpeta jagamine",
@@ -546,10 +546,10 @@
   "status.delete": "Kustuta",
   "status.detailed_status": "Detailne vestluskuva",
   "status.direct": "Saada otsesõnum @{name}'ile",
-  "status.edit": "Redigeeri",
+  "status.edit": "Muuda",
   "status.edited": "{date} muudetud",
   "status.edited_x_times": "Muudetud {count, plural, one{{count} kord} other {{count} korda}}",
-  "status.embed": "Sängita",
+  "status.embed": "Manustamine",
   "status.favourite": "Lemmik",
   "status.filter": "Filtreeri seda postitust",
   "status.filtered": "Filtreeritud",
@@ -603,12 +603,12 @@
   "time_remaining.minutes": "{number, plural, one {# minut} other {# minutit}} jäänud",
   "time_remaining.moments": "Hetked jäänud",
   "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekundit}} jäänud",
-  "timeline_hint.remote_resource_not_displayed": "{resource} teisest serveritest ei kuvata.",
+  "timeline_hint.remote_resource_not_displayed": "{resource} teistest serveritest ei kuvata.",
   "timeline_hint.resources.followers": "Jälgijaid",
-  "timeline_hint.resources.follows": "Jälgib",
-  "timeline_hint.resources.statuses": "Vanemad postitused",
+  "timeline_hint.resources.follows": "Jälgimisi",
+  "timeline_hint.resources.statuses": "Eelnevaid postitusi",
   "trends.counter_by_accounts": "{count, plural, one {{counter} inimene} other {{counter} inimest}} viimase {days, plural, one {päeva} other {{days} päeva}} jooksul",
-  "trends.trending_now": "Vestluste suunad",
+  "trends.trending_now": "Hetkel populaarne",
   "ui.beforeunload": "Teie mustand läheb kaotsi, kui lahkute Mastodonist.",
   "units.short.billion": "{count} mld",
   "units.short.million": "{count} mln",
@@ -620,7 +620,7 @@
   "upload_form.audio_description": "Kirjelda kuulmispuudega inimeste jaoks",
   "upload_form.description": "Kirjelda vaegnägijatele",
   "upload_form.description_missing": "Kirjeldus puudub",
-  "upload_form.edit": "Redigeeri",
+  "upload_form.edit": "Muuda",
   "upload_form.thumbnail": "Muuda pisipilti",
   "upload_form.undo": "Kustuta",
   "upload_form.video_description": "Kirjelda kuulmis- või nägemispuudega inimeste jaoks",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 6ead03c3d..13382d67a 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -4,7 +4,7 @@
   "about.disclaimer": "ماستودون نرم‌افزار آزاد، متن باز و یک شرکت غیر انتفاعی با مسئولیت محدود طبق قوانین آلمان است.",
   "about.domain_blocks.no_reason_available": "دلیلی موجود نیست",
   "about.domain_blocks.preamble": "ماستودون عموماً می‌گذارد محتوا را از از هر کارساز دیگری در دنیای شبکه‌های اجتماعی غیرمتمرکز دیده و با آنان برهم‌کنش داشته باشید. این‌ها استثناهایی هستند که روی این کارساز خاص وضع شده‌اند.",
-  "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
+  "about.domain_blocks.silenced.explanation": "عموماً نمایه‌ها و محتوا از این کارساز را نمی‌بینید، مگر این که به طور خاص دنبالشان گشته یا با پی گیری، داوطلب دیدنشان شوید.",
   "about.domain_blocks.silenced.title": "محدود",
   "about.domain_blocks.suspended.explanation": "هیچ داده‌ای از این کارساز پردازش، ذخیره یا مبادله نخواهد شد، که هرگونه برهم‌کنش یا ارتباط با کاربران این کارساز را غیرممکن خواهد کرد.",
   "about.domain_blocks.suspended.title": "معلق",
@@ -81,9 +81,9 @@
   "autosuggest_hashtag.per_week": "{count} در هفته",
   "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
   "bundle_column_error.copy_stacktrace": "رونوشت از گزارش خطا",
-  "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
+  "bundle_column_error.error.body": "صفحهٔ درخواستی نتوانست پرداخت شود. ممکن است به خاطر اشکالی در کدمان یا مشکل سازگاری مرورگر باشد.",
   "bundle_column_error.error.title": "وای، نه!",
-  "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
+  "bundle_column_error.network.body": "هنگام تلاش برای بار کردن این صفحه خطایی رخ داد. ممکن است مشکلی موقّتی در این کارساز یا اینترنتتان باشد.",
   "bundle_column_error.network.title": "خطای شبکه",
   "bundle_column_error.retry": "تلاش دوباره",
   "bundle_column_error.return": "بازگشت به خانه",
@@ -236,14 +236,14 @@
   "errors.unexpected_crash.report_issue": "گزارش مشکل",
   "explore.search_results": "نتایج جست‌وجو",
   "explore.title": "کاوش",
-  "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
+  "filter_modal.added.context_mismatch_explanation": "این دستهٔ پالایه به بافتاری که در آن به این فرسته دسترسی دارید اعمال نمی‌شود. اگر می‌خواهید فرسته در این بافتار هم پالوده شود، باید پالایه را ویرایش کنید.",
   "filter_modal.added.context_mismatch_title": "بافتار نامطابق!",
-  "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
+  "filter_modal.added.expired_explanation": "این دستهٔ پالایه منقضی شده است. برای اعمالش باید تاریخ انقضا را عوض کنید.",
   "filter_modal.added.expired_title": "پالایهٔ منقضی!",
-  "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
+  "filter_modal.added.review_and_configure": "برای بازبینی و پیکربندی بیش‌تر این دستهٔ پالایه، به {settings_link} بروید.",
   "filter_modal.added.review_and_configure_title": "تنظیمات پالایه",
   "filter_modal.added.settings_link": "صفحهٔ تنظیمات",
-  "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
+  "filter_modal.added.short_explanation": "این فرسته به دستهٔ پالایهٔ زیر افزوده شد: {title}.",
   "filter_modal.added.title": "پالایه افزوده شد!",
   "filter_modal.select_filter.context_mismatch": "به این بافتار اعمال نمی‌شود",
   "filter_modal.select_filter.expired": "منقضی‌شده",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 883adf211..91a2bbbfd 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -2,7 +2,7 @@
   "about.blocks": "Moderoidut palvelimet",
   "about.contact": "Yhteystiedot:",
   "about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
-  "about.domain_blocks.no_reason_available": "Syy ei saatavilla",
+  "about.domain_blocks.no_reason_available": "Syytä ei ole ilmoitettu",
   "about.domain_blocks.preamble": "Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle.",
   "about.domain_blocks.silenced.explanation": "Et yleensä näe profiileja ja sisältöä tältä palvelimelta, ellet nimenomaisesti etsi tai valitse sitä seuraamalla.",
   "about.domain_blocks.silenced.title": "Rajoitettu",
@@ -22,7 +22,7 @@
   "account.cancel_follow_request": "Peruuta seurantapyyntö",
   "account.direct": "Yksityisviesti käyttäjälle @{name}",
   "account.disable_notifications": "Lopeta @{name}:n julkaisuista ilmoittaminen",
-  "account.domain_blocked": "Verkko-osoite piilotettu",
+  "account.domain_blocked": "Verkko-osoite estetty",
   "account.edit_profile": "Muokkaa profiilia",
   "account.enable_notifications": "Ilmoita @{name}:n julkaisuista",
   "account.endorse": "Suosittele profiilissasi",
@@ -37,26 +37,26 @@
   "account.following_counter": "{count, plural, one {{counter} seurattu} other {{counter} seurattua}}",
   "account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.",
   "account.follows_you": "Seuraa sinua",
-  "account.go_to_profile": "Mene profiiliin",
-  "account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}",
+  "account.go_to_profile": "Avaa profiili",
+  "account.hide_reblogs": "Piilota käyttäjän @{name} buustaukset",
   "account.joined_short": "Liittynyt",
   "account.languages": "Vaihda tilattuja kieliä",
-  "account.link_verified_on": "Tämän linkin omistaja tarkistettiin {date}",
-  "account.locked_info": "Tämän tilin yksityisyyden tila on asetettu lukituksi. Omistaja arvioi manuaalisesti, kuka voi seurata niitä.",
+  "account.link_verified_on": "Linkin omistus tarkistettiin {date}",
+  "account.locked_info": "Tilin yksityisyystilaksi on määritetty lukittu ja tilin omistaja arvioi erikseen, kuka voi seurata häntä.",
   "account.media": "Media",
   "account.mention": "Mainitse @{name}",
   "account.moved_to": "{name} on ilmoittanut uudeksi tilikseen",
   "account.mute": "Mykistä @{name}",
-  "account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}",
+  "account.mute_notifications": "Mykistä käyttäjän @{name} ilmoitukset",
   "account.muted": "Mykistetty",
   "account.open_original_page": "Avaa alkuperäinen sivu",
   "account.posts": "Viestit",
   "account.posts_with_replies": "Viestit ja vastaukset",
-  "account.report": "Raportoi @{name}",
+  "account.report": "Ilmoita käyttäjästä @{name}",
   "account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö klikkaamalla",
   "account.share": "Jaa käyttäjän @{name} profiili",
   "account.show_reblogs": "Näytä buustaukset käyttäjältä @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.statuses_counter": "{count, plural, one {{counter} viesti} other {{counter} viestiä}}",
   "account.unblock": "Salli @{name}",
   "account.unblock_domain": "Salli {domain}",
   "account.unblock_short": "Poista esto",
@@ -90,7 +90,7 @@
   "bundle_column_error.routing.body": "Pyydettyä sivua ei löytynyt. Oletko varma, että osoitepalkin URL-osoite on oikein?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Sulje",
-  "bundle_modal_error.message": "Jokin meni vikaan komponenttia ladattaessa.",
+  "bundle_modal_error.message": "Jotain meni pieleen komponenttia ladattaessa.",
   "bundle_modal_error.retry": "Yritä uudelleen",
   "closed_registrations.other_server_instructions": "Koska Mastodon on hajautettu, voit luoda tilin toiselle palvelimelle ja silti olla vuorovaikutuksessa tämän kanssa.",
   "closed_registrations_modal.description": "Tilin luominen palvelimeen {domain} ei ole tällä hetkellä mahdollista, mutta huomioi, että et tarvitse tiliä erityisesti palvelimeen {domain} käyttääksesi Mastodonia.",
@@ -103,14 +103,14 @@
   "column.community": "Paikallinen aikajana",
   "column.direct": "Yksityisviestit",
   "column.directory": "Selaa profiileja",
-  "column.domain_blocks": "Piilotetut verkkotunnukset",
+  "column.domain_blocks": "Estetytr verkkotunnukset",
   "column.favourites": "Suosikit",
   "column.follow_requests": "Seuraamispyynnöt",
   "column.home": "Koti",
   "column.lists": "Listat",
   "column.mutes": "Mykistetyt käyttäjät",
   "column.notifications": "Ilmoitukset",
-  "column.pins": "Kiinnitetyt julkaisut",
+  "column.pins": "Kiinnitetyt viestit",
   "column.public": "Yleinen aikajana",
   "column_back_button.label": "Takaisin",
   "column_header.hide_settings": "Piilota asetukset",
@@ -141,9 +141,9 @@
   "compose_form.publish_form": "Julkaise",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.save_changes": "Tallenna muutokset",
-  "compose_form.sensitive.hide": "{count, plural, one {Merkitse media arkaluontoiseksi} other {Merkitse media arkaluontoiseksi}}",
-  "compose_form.sensitive.marked": "{count, plural, one {Media on merkitty arkaluontoiseksi} other {Media on merkitty arkaluontoiseksi}}",
-  "compose_form.sensitive.unmarked": "{count, plural, one {Mediaa ei ole merkitty arkaluontoiseksi} other {Mediaa ei ole merkitty arkaluontoiseksi}}",
+  "compose_form.sensitive.hide": "{count, plural, one {Merkitse media arkaluontoiseksi} other {Merkitse mediat arkaluontoiseksi}}",
+  "compose_form.sensitive.marked": "{count, plural, one {Media on merkitty arkaluontoiseksi} other {Mediat on merkitty arkaluontoiseksi}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Mediaa ei ole merkitty arkaluontoiseksi} other {Medioja ei ole merkitty arkaluontoiseksi}}",
   "compose_form.spoiler.marked": "Poista sisältövaroitus",
   "compose_form.spoiler.unmarked": "Lisää sisältövaroitus",
   "compose_form.spoiler_placeholder": "Kirjoita varoituksesi tähän",
@@ -210,11 +210,11 @@
   "empty_column.account_suspended": "Tilin käyttäminen keskeytetty",
   "empty_column.account_timeline": "Ei viestejä täällä.",
   "empty_column.account_unavailable": "Profiilia ei löydy",
-  "empty_column.blocks": "Et ole vielä estänyt yhtään käyttäjää.",
+  "empty_column.blocks": "Et ole vielä estänyt käyttäjiä.",
   "empty_column.bookmarked_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
   "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!",
   "empty_column.direct": "Sinulla ei ole vielä yksityisviestejä. Kun lähetät tai vastaanotat sellaisen, se näkyy tässä.",
-  "empty_column.domain_blocks": "Yhtään verkko-osoitetta ei ole vielä estetty.",
+  "empty_column.domain_blocks": "Verkkotunnuksia ei ole vielä estetty.",
   "empty_column.explore_statuses": "Mikään ei ole nyt trendi. Tarkista myöhemmin!",
   "empty_column.favourited_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
   "empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä viestiä suosikkeihinsa. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
@@ -230,7 +230,7 @@
   "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti tai manuaalisesti seuraa muiden palvelimien käyttäjiä niin saat sisältöä",
   "error.unexpected_crash.explanation": "Sivua ei voi näyttää oikein, johtuen bugista tai ongelmasta selaimen yhteensopivuudessa.",
   "error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.",
-  "error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos tämä ei auta, saatat yhä pystyä käyttämään Mastodonia toisen selaimen tai sovelluksen kautta.",
+  "error.unexpected_crash.next_steps": "Kokeile sivun päivitystä. Jos se ei auta, voi Mastodonin käyttö silti olla mahdollista eri selaimella tai natiivilla sovelluksella.",
   "error.unexpected_crash.next_steps_addons": "Yritä poistaa ne käytöstä ja päivittää sivu. Jos se ei auta, voit silti käyttää Mastodonia eri selaimen tai sovelluksen kautta.",
   "errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle",
   "errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",
@@ -257,7 +257,7 @@
   "follow_recommendations.lead": "Seuraamiesi julkaisut näkyvät aikajärjestyksessä kotisyötteessä. Älä pelkää seurata vahingossa, voit lopettaa seuraamisen yhtä helposti!",
   "follow_request.authorize": "Valtuuta",
   "follow_request.reject": "Hylkää",
-  "follow_requests.unlocked_explanation": "Vaikka tiliäsi ei ole lukittu, {domain}:n ylläpitäjien mielestä saatat haluta tarkistaa nämä seurauspyynnöt manuaalisesti.",
+  "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelun {domain} ylläpito on arvioinut, että voi olla halukas tarkistamaan nämä seurauspyynnöt erikseen.",
   "footer.about": "Tietoja",
   "footer.directory": "Profiilihakemisto",
   "footer.get_app": "Hanki sovellus",
@@ -294,7 +294,7 @@
   "interaction_modal.title.favourite": "Suosikin {name} viesti",
   "interaction_modal.title.follow": "Seuraa {name}",
   "interaction_modal.title.reblog": "Tehosta {name} viestiä",
-  "interaction_modal.title.reply": "Vastaa {name} viestiin",
+  "interaction_modal.title.reply": "Vastaa käyttäjän {name} viestiin",
   "intervals.full.days": "{number, plural, one {# päivä} other {# päivää}}",
   "intervals.full.hours": "{number, plural, one {# tunti} other {# tuntia}}",
   "intervals.full.minutes": "{number, plural, one {# minuutti} other {# minuuttia}}",
@@ -310,7 +310,7 @@
   "keyboard_shortcuts.favourite": "Lisää suosikkeihin",
   "keyboard_shortcuts.favourites": "Avaa lista suosikeista",
   "keyboard_shortcuts.federated": "Avaa yleinen aikajana",
-  "keyboard_shortcuts.heading": "Näppäinkomennot",
+  "keyboard_shortcuts.heading": "Pikanäppäimet",
   "keyboard_shortcuts.home": "Avaa kotiaikajana",
   "keyboard_shortcuts.hotkey": "Pikanäppäin",
   "keyboard_shortcuts.legend": "Näytä tämä selite",
@@ -352,7 +352,7 @@
   "lists.replies_policy.title": "Näytä vastaukset:",
   "lists.search": "Etsi seuraamistasi henkilöistä",
   "lists.subheading": "Omat listasi",
-  "load_pending": "{count, plural, one {# uusi kappale} other {# uutta kappaletta}}",
+  "load_pending": "{count, plural, one {# uusi kohde} other {# uutta kohdetta}}",
   "loading_indicator.label": "Ladataan...",
   "media_gallery.toggle_visible": "{number, plural, one {Piilota kuva} other {Piilota kuvat}}",
   "missing_indicator.label": "Ei löytynyt",
@@ -413,7 +413,7 @@
   "notifications.column_settings.reblog": "Buustit:",
   "notifications.column_settings.show": "Näytä sarakkeessa",
   "notifications.column_settings.sound": "Äänimerkki",
-  "notifications.column_settings.status": "Uudet julkaisut:",
+  "notifications.column_settings.status": "Uudet viestit:",
   "notifications.column_settings.unread_notifications.category": "Lukemattomat ilmoitukset",
   "notifications.column_settings.unread_notifications.highlight": "Korosta lukemattomat ilmoitukset",
   "notifications.column_settings.update": "Muokkaukset:",
@@ -470,7 +470,7 @@
   "relative_time.today": "tänään",
   "reply_indicator.cancel": "Peruuta",
   "report.block": "Estä",
-  "report.block_explanation": "Et näe heidän viestejään. He eivät voi nähdä viestejäsi tai seurata sinua. He voivat kertoa, että heidät on estetty.",
+  "report.block_explanation": "Et näe heidän viestejään, eivätkä he voi nähdä viestejäsi tai seurata sinua. He näkevät, että heidät on estetty.",
   "report.categories.other": "Muu",
   "report.categories.spam": "Roskaposti",
   "report.categories.violation": "Sisältö rikkoo yhden tai useamman palvelimen sääntöjä",
@@ -501,12 +501,12 @@
   "report.submit": "Lähetä",
   "report.target": "Raportoidaan {target}",
   "report.thanks.take_action": "Tässä on vaihtoehtosi hallita näkemääsi Mastodonissa:",
-  "report.thanks.take_action_actionable": "Kun tarkistamme tämän, voit ryhtyä toimiin @{name} vastaan:",
+  "report.thanks.take_action_actionable": "Sillä välin kun tarkistamme tätä, voit ryhtyä toimenpiteisiin käyttäjää @{name} vastaan:",
   "report.thanks.title": "Etkö halua nähdä tätä?",
   "report.thanks.title_actionable": "Kiitos raportista, tutkimme asiaa.",
   "report.unfollow": "Lopeta seuraaminen @{name}",
   "report.unfollow_explanation": "Seuraat tätä tiliä. Jotta et enää näkisi heidän kirjoituksiaan, lopeta niiden seuraaminen.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} viestiä}} liitteenä",
+  "report_notification.attached_statuses": "{count, plural, one {{count} viesti} other {{count} viestiä}} liitteenä",
   "report_notification.categories.other": "Muu",
   "report_notification.categories.spam": "Roskaposti",
   "report_notification.categories.violation": "Sääntöjen rikkominen",
@@ -526,7 +526,7 @@
   "search_results.statuses": "Viestit",
   "search_results.statuses_fts_disabled": "Viestien haku sisällön perusteella ei ole käytössä tällä Mastodon-palvelimella.",
   "search_results.title": "Etsi {q}",
-  "search_results.total": "{count, number} {count, plural, one {tulos} other {tulokset}}",
+  "search_results.total": "{count, number} {count, plural, one {tulos} other {tulosta}}",
   "server_banner.about_active_users": "Palvelinta käyttäneet ihmiset viimeisen 30 päivän aikana (kuukauden aktiiviset käyttäjät)",
   "server_banner.active_users": "aktiiviset käyttäjät",
   "server_banner.administered_by": "Ylläpitäjä:",
@@ -548,9 +548,9 @@
   "status.direct": "Yksityisviesti käyttäjälle @{name}",
   "status.edit": "Muokkaa",
   "status.edited": "Muokattu {date}",
-  "status.edited_x_times": "Muokattu {count, plural, one {{count} aika} other {{count} kertaa}}",
+  "status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}",
   "status.embed": "Upota",
-  "status.favourite": "Tykkää",
+  "status.favourite": "Lisää suosikkeihin",
   "status.filter": "Suodata tämä viesti",
   "status.filtered": "Suodatettu",
   "status.hide": "Piilota toot",
@@ -572,7 +572,7 @@
   "status.reblogs.empty": "Kukaan ei ole vielä buustannut tätä viestiä. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
   "status.redraft": "Poista ja palauta muokattavaksi",
   "status.remove_bookmark": "Poista kirjanmerkki",
-  "status.replied_to": "Vastaus käyttäjälle {name}",
+  "status.replied_to": "Vastasit käyttäjälle {name}",
   "status.reply": "Vastaa",
   "status.replyAll": "Vastaa ketjuun",
   "status.report": "Raportoi @{name}",
@@ -607,7 +607,7 @@
   "timeline_hint.resources.followers": "Seuraajat",
   "timeline_hint.resources.follows": "seurattua",
   "timeline_hint.resources.statuses": "Vanhemmat julkaisut",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} viimeinen {days, plural, one {päivä} other {{days} päivää}}",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} viimeisten {days, plural, one {päivän} other {{days} päivän}}",
   "trends.trending_now": "Suosittua nyt",
   "ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.",
   "units.short.billion": "{count} mrd.",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 02691e029..bc4231bf8 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -3,7 +3,7 @@
   "about.contact": "Contact :",
   "about.disclaimer": "Mastodon est un logiciel libre, open-source et une marque déposée de Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Raison non disponible",
-  "about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateurs de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.",
+  "about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateur⋅rice⋅s de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.",
   "about.domain_blocks.silenced.explanation": "Vous ne verrez généralement pas les profils et le contenu de ce serveur, à moins que vous ne les recherchiez explicitement ou que vous ne choisissiez de les suivre.",
   "about.domain_blocks.silenced.title": "Limité",
   "about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les utilisateurs de ce serveur.",
@@ -72,7 +72,7 @@
   "admin.dashboard.retention.cohort": "Mois d'inscription",
   "admin.dashboard.retention.cohort_size": "Nouveaux utilisateurs",
   "alert.rate_limited.message": "Veuillez réessayer après {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Débit limité",
+  "alert.rate_limited.title": "Nombre de requêtes limité",
   "alert.unexpected.message": "Une erreur inattendue s’est produite.",
   "alert.unexpected.title": "Oups !",
   "announcement.announcement": "Annonce",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index dfafb89d5..8aa06ffe7 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -304,7 +304,7 @@
   "keyboard_shortcuts.column": "Cuir am fòcas air colbh",
   "keyboard_shortcuts.compose": "Cuir am fòcas air raon teacsa an sgrìobhaidh",
   "keyboard_shortcuts.description": "Tuairisgeul",
-  "keyboard_shortcuts.direct": "a dh’fhosgladh colbh nan teachdaireachdan dìreach",
+  "keyboard_shortcuts.direct": "Fosgail colbh nan teachdaireachdan dìreach",
   "keyboard_shortcuts.down": "Gluais sìos air an liosta",
   "keyboard_shortcuts.enter": "Fosgail post",
   "keyboard_shortcuts.favourite": "Cuir post ris na h-annsachdan",
@@ -385,7 +385,7 @@
   "navigation_bar.search": "Lorg",
   "navigation_bar.security": "Tèarainteachd",
   "not_signed_in_indicator.not_signed_in": "Feumaidh tu clàradh a-steach mus fhaigh thu cothrom air a’ ghoireas seo.",
-  "notification.admin.report": "Rinn {name} mu {target}",
+  "notification.admin.report": "Rinn {name} gearan mu {target}",
   "notification.admin.sign_up": "Chlàraich {name}",
   "notification.favourite": "Is annsa le {name} am post agad",
   "notification.follow": "Tha {name} ’gad leantainn a-nis",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 05f5229f3..2e1f4684f 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -104,7 +104,7 @@
   "column.direct": "Mensaxes directas",
   "column.directory": "Procurar perfís",
   "column.domain_blocks": "Dominios agochados",
-  "column.favourites": "Favoritos",
+  "column.favourites": "Favoritas",
   "column.follow_requests": "Peticións de seguimento",
   "column.home": "Inicio",
   "column.lists": "Listaxes",
@@ -125,7 +125,7 @@
   "community.column_settings.remote_only": "Só remoto",
   "compose.language.change": "Elixe o idioma",
   "compose.language.search": "Buscar idiomas...",
-  "compose_form.direct_message_warning_learn_more": "Coñecer máis",
+  "compose_form.direct_message_warning_learn_more": "Saber máis",
   "compose_form.encryption_warning": "As publicacións en Mastodon non están cifradas de extremo-a-extremo. Non compartas información sensible en Mastodon.",
   "compose_form.hashtag_warning": "Esta publicación non aparecerá baixo ningún cancelo (hashtag) porque non está listada. Só se poden procurar publicacións públicas por cancelos.",
   "compose_form.lock_disclaimer": "A túa conta non está {locked}. Todas poden seguirte para ollar os teus toots só para seguidoras.",
@@ -136,7 +136,7 @@
   "compose_form.poll.option_placeholder": "Opción {number}",
   "compose_form.poll.remove_option": "Eliminar esta opción",
   "compose_form.poll.switch_to_multiple": "Mudar a enquisa para permitir múltiples escollas",
-  "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa escolla",
+  "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa opción",
   "compose_form.publish": "Publicar",
   "compose_form.publish_form": "Publicar",
   "compose_form.publish_loud": "{publish}!",
@@ -167,7 +167,7 @@
   "confirmations.mute.explanation": "Isto agochará as súas publicacións ou as que a mencionen, mais poderá ler as túas publicacións e ser seguidora túa.",
   "confirmations.mute.message": "Tes a certeza de querer acalar a {name}?",
   "confirmations.redraft.confirm": "Eliminar e reescribir",
-  "confirmations.redraft.message": "Tes a certeza de querer eliminar esta publicación e reescribila? Perderás os compartidos e favoritos, e as respostas á publicación orixinal ficarán orfas.",
+  "confirmations.redraft.message": "Tes a certeza de querer eliminar esta publicación e reescribila? Perderás as comparticións e favoritas, e as respostas á publicación orixinal ficarán orfas.",
   "confirmations.reply.confirm": "Responder",
   "confirmations.reply.message": "Ao responder sobrescribirás a mensaxe que estás a compor. Tes a certeza de que queres continuar?",
   "confirmations.unfollow.confirm": "Deixar de seguir",
@@ -291,7 +291,7 @@
   "interaction_modal.on_this_server": "Neste servidor",
   "interaction_modal.other_server_instructions": "Copia e pega este URL no campo de busca da túa app Mastodon favorita ou na interface web do teu servidor Mastodon.",
   "interaction_modal.preamble": "Como Mastodon é descentralizado, é posible usar unha conta existente noutro servidor Mastodon, ou nunha plataforma compatible, se non dispós dunha conta neste servidor.",
-  "interaction_modal.title.favourite": "Marcar coma favorito a publicación de {name}",
+  "interaction_modal.title.favourite": "Marcar coma favorita a publicación de {name}",
   "interaction_modal.title.follow": "Seguir a {name}",
   "interaction_modal.title.reblog": "Promover a publicación de {name}",
   "interaction_modal.title.reply": "Responder á publicación de {name}",
@@ -307,8 +307,8 @@
   "keyboard_shortcuts.direct": "para abrir a columna de mensaxes directas",
   "keyboard_shortcuts.down": "Para mover cara abaixo na listaxe",
   "keyboard_shortcuts.enter": "Para abrir publicación",
-  "keyboard_shortcuts.favourite": "Para engadir a favoritos",
-  "keyboard_shortcuts.favourites": "Para abrir a listaxe dos favoritos",
+  "keyboard_shortcuts.favourite": "Marcar como favorita",
+  "keyboard_shortcuts.favourites": "Para abrir a listaxe das favoritas",
   "keyboard_shortcuts.federated": "Para abrir a cronoloxía federada",
   "keyboard_shortcuts.heading": "Atallos do teclado",
   "keyboard_shortcuts.home": "Para abrir a cronoloxía inicial",
@@ -371,7 +371,7 @@
   "navigation_bar.domain_blocks": "Dominios agochados",
   "navigation_bar.edit_profile": "Editar perfil",
   "navigation_bar.explore": "Descubrir",
-  "navigation_bar.favourites": "Favoritos",
+  "navigation_bar.favourites": "Favoritas",
   "navigation_bar.filters": "Palabras silenciadas",
   "navigation_bar.follow_requests": "Peticións de seguimento",
   "navigation_bar.follows_and_followers": "Seguindo e seguidoras",
@@ -401,7 +401,7 @@
   "notifications.column_settings.admin.report": "Novas denuncias:",
   "notifications.column_settings.admin.sign_up": "Novas usuarias:",
   "notifications.column_settings.alert": "Notificacións de escritorio",
-  "notifications.column_settings.favourite": "Favoritos:",
+  "notifications.column_settings.favourite": "Favoritas:",
   "notifications.column_settings.filter_bar.advanced": "Amosar todas as categorías",
   "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido",
   "notifications.column_settings.filter_bar.show_bar": "Amosar barra de filtros",
@@ -419,7 +419,7 @@
   "notifications.column_settings.update": "Edicións:",
   "notifications.filter.all": "Todo",
   "notifications.filter.boosts": "Compartidos",
-  "notifications.filter.favourites": "Favoritos",
+  "notifications.filter.favourites": "Favoritas",
   "notifications.filter.follows": "Seguimentos",
   "notifications.filter.mentions": "Mencións",
   "notifications.filter.polls": "Resultados da enquisa",
@@ -514,7 +514,7 @@
   "search.placeholder": "Procurar",
   "search.search_or_paste": "Busca ou insire URL",
   "search_popout.search_format": "Formato de procura avanzada",
-  "search_popout.tips.full_text": "Texto simple devolve toots que ti escribiches, promoviches, marcaches favoritos, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e cancelos.",
+  "search_popout.tips.full_text": "Texto simple devolve publicacións que ti escribiches, promoveches, marcaches como favoritas, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e cancelos.",
   "search_popout.tips.hashtag": "cancelo",
   "search_popout.tips.status": "publicación",
   "search_popout.tips.text": "Texto simple devolve coincidencias con nomes públicos, nomes de usuaria e cancelos",
@@ -535,7 +535,7 @@
   "server_banner.server_stats": "Estatísticas do servidor:",
   "sign_in_banner.create_account": "Crear conta",
   "sign_in_banner.sign_in": "Acceder",
-  "sign_in_banner.text": "Inicia sesión para seguir perfís ou etiquetas, marcar como favorito, responder a publicacións ou interactuar con outro servidor desde a túa conta.",
+  "sign_in_banner.text": "Inicia sesión para seguir perfís ou etiquetas, marcar como favorita, responder a publicacións ou interactuar con outro servidor desde a túa conta.",
   "status.admin_account": "Abrir interface de moderación para @{name}",
   "status.admin_status": "Abrir esta publicación na interface de moderación",
   "status.block": "Bloquear a @{name}",
@@ -550,7 +550,7 @@
   "status.edited": "Editado {date}",
   "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}",
   "status.embed": "Incrustar",
-  "status.favourite": "Favorito",
+  "status.favourite": "Favorita",
   "status.filter": "Filtrar esta publicación",
   "status.filtered": "Filtrado",
   "status.hide": "Agochar publicación",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index 2ab83fd37..c8e23e399 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -237,35 +237,35 @@
   "explore.search_results": "सर्च रिजल्ट्स",
   "explore.title": "एक्स्प्लोर",
   "filter_modal.added.context_mismatch_explanation": "यह फ़िल्टर श्रेणी उस संदर्भ पर लागू नहीं होती जिसमें आपने इस पोस्ट को एक्सेस किया है। यदि आप चाहते हैं कि इस संदर्भ में भी पोस्ट को फ़िल्टर किया जाए, तो आपको फ़िल्टर को एडिट करना होगा।",
-  "filter_modal.added.context_mismatch_title": "Context mismatch!",
-  "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
-  "filter_modal.added.expired_title": "Expired filter!",
-  "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
-  "filter_modal.added.review_and_configure_title": "Filter settings",
-  "filter_modal.added.settings_link": "settings page",
-  "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
-  "filter_modal.added.title": "Filter added!",
-  "filter_modal.select_filter.context_mismatch": "does not apply to this context",
-  "filter_modal.select_filter.expired": "expired",
-  "filter_modal.select_filter.prompt_new": "New category: {name}",
-  "filter_modal.select_filter.search": "Search or create",
-  "filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
-  "filter_modal.select_filter.title": "Filter this post",
-  "filter_modal.title.status": "Filter a post",
-  "follow_recommendations.done": "Done",
-  "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
-  "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
+  "filter_modal.added.context_mismatch_title": "कंटेंट मिसमैच!",
+  "filter_modal.added.expired_explanation": "यह फ़िल्टर श्रेणी समाप्त हो गई है, इसे लागू करने के लिए आपको समाप्ति तिथि बदलनी होगी।",
+  "filter_modal.added.expired_title": "एक्सपीरेड फ़िल्टर!",
+  "filter_modal.added.review_and_configure": "इस फ़िल्टर श्रेणी की समीक्षा करने और आगे कॉन्फ़िगर करने के लिए,{settings_link} पर जाएँ",
+  "filter_modal.added.review_and_configure_title": "फ़िल्टर सेटिंग्स",
+  "filter_modal.added.settings_link": "सेटिंग्स पेज",
+  "filter_modal.added.short_explanation": "इस पोस्ट को निम्न फ़िल्टर श्रेणी में जोड़ा गया है:{title}",
+  "filter_modal.added.title": "फ़िल्टर एडेड",
+  "filter_modal.select_filter.context_mismatch": "इस संदर्भ में लागू नहीं होता",
+  "filter_modal.select_filter.expired": "एक्सपीरेड",
+  "filter_modal.select_filter.prompt_new": "नई श्रेणी:{name}",
+  "filter_modal.select_filter.search": "खोजें या बनाएं",
+  "filter_modal.select_filter.subtitle": "किसी मौजूदा श्रेणी का उपयोग करें या एक नया बनाएं",
+  "filter_modal.select_filter.title": "इस पोस्ट को फ़िल्टर करें",
+  "filter_modal.title.status": "किसी पोस्ट को फ़िल्टर करें",
+  "follow_recommendations.done": "पूर्ण",
+  "follow_recommendations.heading": "उन लोगों का अनुसरण करें जिनकी पोस्ट आप देखना चाहते हैं! यहाँ कुछ सुझाव हैं।",
+  "follow_recommendations.lead": "आपके द्वारा फ़ॉलो किए जाने वाले लोगों के पोस्ट आपके होम फ़ीड पर कालानुक्रमिक क्रम में दिखाई देंगे। गलतियाँ करने से न डरें, आप किसी भी समय लोगों को उतनी ही आसानी से अनफ़ॉलो कर सकते हैं!",
   "follow_request.authorize": "अधिकार दें",
   "follow_request.reject": "अस्वीकार करें",
   "follow_requests.unlocked_explanation": "हालाँकि आपका खाता लॉक नहीं है, फिर भी {domain} डोमेन स्टाफ ने सोचा कि आप इन खातों के मैन्युअल अनुरोधों की समीक्षा करना चाहते हैं।",
-  "footer.about": "About",
-  "footer.directory": "Profiles directory",
-  "footer.get_app": "Get the app",
+  "footer.about": "अबाउट",
+  "footer.directory": "प्रोफाइल्स डायरेक्टरी",
+  "footer.get_app": "अप्प प्राप्त करें",
   "footer.invite": "लोगों को आमंत्रित करें",
-  "footer.keyboard_shortcuts": "Keyboard shortcuts",
-  "footer.privacy_policy": "Privacy policy",
-  "footer.source_code": "View source code",
-  "generic.saved": "Saved",
+  "footer.keyboard_shortcuts": "कीबोर्ड शॉर्टकट",
+  "footer.privacy_policy": "प्राइवेसी पालिसी",
+  "footer.source_code": "सोर्स कोड देखें",
+  "generic.saved": "सेव्ड",
   "getting_started.heading": "पहले कदम रखें",
   "hashtag.column_header.tag_mode.all": "और {additional}",
   "hashtag.column_header.tag_mode.any": "या {additional}",
@@ -276,25 +276,25 @@
   "hashtag.column_settings.tag_mode.any": "इनमें से कोई भी",
   "hashtag.column_settings.tag_mode.none": "इनमें से कोई भी नहीं",
   "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
-  "hashtag.follow": "Follow hashtag",
-  "hashtag.unfollow": "Unfollow hashtag",
+  "hashtag.follow": "हैशटैग को फॉलो करें",
+  "hashtag.unfollow": "हैशटैग को उनफ़ोल्लोव करें",
   "home.column_settings.basic": "बुनियादी",
   "home.column_settings.show_reblogs": "बूस्ट दिखाए",
   "home.column_settings.show_replies": "जवाबों को दिखाए",
   "home.hide_announcements": "घोषणाएँ छिपाएँ",
   "home.show_announcements": "घोषणाएं दिखाएं",
-  "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
-  "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
-  "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
-  "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
-  "interaction_modal.on_another_server": "On a different server",
+  "interaction_modal.description.favourite": "मास्टोडन पर एक अकाउंट के साथ, आप इस पोस्ट को पसंदीदा बना सकते हैं ताकि लेखक को यह पता चल सके कि आप इसकी सराहना करते हैं और इसे बाद के लिए सहेज सकते हैं।",
+  "interaction_modal.description.follow": "मास्टोडन पर एक अकाउंट के साथ, आप अपने होम फीड में उनकी पोस्ट प्राप्त करने के लिए {name} का अनुसरण कर सकते हैं",
+  "interaction_modal.description.reblog": "मास्टोडन पर एक अकाउंट के साथ, आप इस पोस्ट को अपने फोल्लोवेर्स के साथ साझा करने के लिए बढ़ा सकते हैं।",
+  "interaction_modal.description.reply": "मास्टोडन पर एक अकाउंट के साथ, आप इस पोस्ट का जवाब दे सकते हैं।",
+  "interaction_modal.on_another_server": "एक अलग सर्वर पर",
   "interaction_modal.on_this_server": "इस सर्वर पे",
-  "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
-  "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
-  "interaction_modal.title.favourite": "Favourite {name}'s post",
-  "interaction_modal.title.follow": "Follow {name}",
-  "interaction_modal.title.reblog": "Boost {name}'s post",
-  "interaction_modal.title.reply": "Reply to {name}'s post",
+  "interaction_modal.other_server_instructions": "इस URL को अपने पसंदीदा Mastodon ऐप या अपने Mastodon सर्वर के वेब इंटरफ़ेस के खोज फ़ील्ड में कॉपी और पेस्ट करें।",
+  "interaction_modal.preamble": "चूंकि मास्टोडन डेसेंट्रलीसेड है, यदि आपके पास इस पर कोई अकाउंट नहीं है, तो आप किसी अन्य मास्टोडन सर्वर या संगत प्लेटफ़ॉर्म द्वारा होस्ट किए गए अपने मौजूदा अकाउंट का उपयोग कर सकते हैं।",
+  "interaction_modal.title.favourite": "पसंदीदा {name} की पोस्ट",
+  "interaction_modal.title.follow": "फॉलो {name}",
+  "interaction_modal.title.reblog": "बूस्ट {name} की पोस्ट",
+  "interaction_modal.title.reply": "{name} की पोस्ट पे रिप्लाई करें",
   "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}}",
@@ -304,7 +304,7 @@
   "keyboard_shortcuts.column": "to focus a status in one of the columns",
   "keyboard_shortcuts.compose": "कंपोज़ टेक्स्ट-एरिया पर ध्यान केंद्रित करने के लिए",
   "keyboard_shortcuts.description": "विवरण",
-  "keyboard_shortcuts.direct": "to open direct messages column",
+  "keyboard_shortcuts.direct": "डायरेक्ट मैसेज कॉलम खोलने के लिए",
   "keyboard_shortcuts.down": "सूची में शामिल करने के लिए",
   "keyboard_shortcuts.enter": "स्टेटस खोलने के लिए",
   "keyboard_shortcuts.favourite": "पसंदीदा के लिए",
@@ -333,21 +333,21 @@
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
   "keyboard_shortcuts.up": "to move up in the list",
   "lightbox.close": "बंद करें",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
+  "lightbox.compress": "कंप्रेस इमेज व्यू बॉक्स",
+  "lightbox.expand": "एक्सपैंड इमेज व्यू बॉक्स",
   "lightbox.next": "अगला",
   "lightbox.previous": "पिछला",
-  "limited_account_hint.action": "Show profile anyway",
-  "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
-  "lists.account.add": "Add to list",
+  "limited_account_hint.action": "फिर भी प्रोफाइल दिखाओ",
+  "limited_account_hint.title": "यह प्रोफ़ाइल {domain} के मॉडरेटर द्वारा छिपाई गई है.",
+  "lists.account.add": "ऐड तो लिस्ट",
   "lists.account.remove": "सूची से निकालें",
   "lists.delete": "सूची हटाएँ",
   "lists.edit": "सूची संपादित करें",
-  "lists.edit.submit": "Change title",
+  "lists.edit.submit": "शीर्षक बदलें",
   "lists.new.create": "सूची जोड़ें",
   "lists.new.title_placeholder": "नये सूची का शीर्षक",
-  "lists.replies_policy.followed": "Any followed user",
-  "lists.replies_policy.list": "Members of the list",
+  "lists.replies_policy.followed": "अन्य फोल्लोवेद यूजर",
+  "lists.replies_policy.list": "सूची के सदस्य",
   "lists.replies_policy.none": "कोई नहीं",
   "lists.replies_policy.title": "Show replies to:",
   "lists.search": "Search among people you follow",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index fdd3b8fc7..74211279a 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -7,7 +7,7 @@
   "about.domain_blocks.silenced.explanation": "Þú munt almennt ekki sjá notandasnið og efni af þessum netþjóni nema þú flettir því upp sérstaklega eða veljir að fylgjast með því.",
   "about.domain_blocks.silenced.title": "Takmarkað",
   "about.domain_blocks.suspended.explanation": "Engin gögn frá þessum vefþjóni verða unnin, geymd eða skipst á, sem gerir samskipti við notendur frá þessum vefþjóni ómöguleg.",
-  "about.domain_blocks.suspended.title": "Í bið",
+  "about.domain_blocks.suspended.title": "Í frysti",
   "about.not_available": "Þessar upplýsingar hafa ekki verið gerðar aðgengilegar á þessum netþjóni.",
   "about.powered_by": "Dreifhýstur samskiptamiðill keyrður með {mastodon}",
   "about.rules": "Reglur netþjónsins",
@@ -32,9 +32,9 @@
   "account.follow": "Fylgjast með",
   "account.followers": "Fylgjendur",
   "account.followers.empty": "Ennþá fylgist enginn með þessum notanda.",
-  "account.followers_counter": "{count, plural, one {{counter} fylgjandi} other {{counter} fylgjendur}}",
+  "account.followers_counter": "{count, plural, one {Fylgjandi: {counter}} other {Fylgjendur: {counter}}}",
   "account.following": "Fylgist með",
-  "account.following_counter": "{count, plural, one {{counter} fylgist með} other {{counter} fylgjast með}}",
+  "account.following_counter": "{count, plural, one {Fylgist með: {counter}} other {Fylgist með: {counter}}}",
   "account.follows.empty": "Þessi notandi fylgist ennþá ekki með neinum.",
   "account.follows_you": "Fylgir þér",
   "account.go_to_profile": "Fara í notandasnið",
@@ -56,7 +56,7 @@
   "account.requested": "Bíður eftir samþykki. Smelltu til að hætta við beiðni um að fylgjast með",
   "account.share": "Deila notandasniði fyrir @{name}",
   "account.show_reblogs": "Sýna endurbirtingar frá @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} færsla} other {{counter} færslur}}",
+  "account.statuses_counter": "{count, plural, one {Færsla: {counter}} other {Færslur: {counter}}}",
   "account.unblock": "Aflétta útilokun af @{name}",
   "account.unblock_domain": "Aflétta útilokun lénsins {domain}",
   "account.unblock_short": "Hætta að loka á",
@@ -207,7 +207,7 @@
   "emoji_button.search_results": "Leitarniðurstöður",
   "emoji_button.symbols": "Tákn",
   "emoji_button.travel": "Ferðalög og staðir",
-  "empty_column.account_suspended": "Notandaaðgangur í bið",
+  "empty_column.account_suspended": "Notandaaðgangur í frysti",
   "empty_column.account_timeline": "Engar færslur hér!",
   "empty_column.account_unavailable": "Notandasnið ekki tiltækt",
   "empty_column.blocks": "Þú hefur ekki ennþá útilokað neina notendur.",
@@ -258,7 +258,7 @@
   "follow_request.authorize": "Heimila",
   "follow_request.reject": "Hafna",
   "follow_requests.unlocked_explanation": "Jafnvel þótt aðgangurinn þinn sé ekki læstur, hafa umsjónarmenn {domain} ímyndað sér að þú gætir viljað yfirfara handvirkt fylgjendabeiðnir frá þessum notendum.",
-  "footer.about": "Um hugbúnaðinn",
+  "footer.about": "Nánari upplýsingar",
   "footer.directory": "Notandasniðamappa",
   "footer.get_app": "Ná í forritið",
   "footer.invite": "Bjóða fólki",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index b4f6fa120..e3b2a436c 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -1,6 +1,6 @@
 {
-  "about.blocks": "Moderated servers",
-  "about.contact": "Contact:",
+  "about.blocks": "Модерацияланған серверлер",
+  "about.contact": "Байланыс:",
   "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Reason not available",
   "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index a0566376d..30a1bfe94 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -191,7 +191,7 @@
   "dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.",
   "dismissable_banner.public_timeline": "이 게시물들은 이 서버와 이 서버가 알고있는 분산화된 네트워크의 다른 서버에서 사람들이 게시한 최근 공개 게시물들입니다.",
   "embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.",
-  "embed.preview": "다음과 같이 표시됩니다:",
+  "embed.preview": "이렇게 표시됩니다:",
   "emoji_button.activity": "활동",
   "emoji_button.clear": "지우기",
   "emoji_button.custom": "사용자 지정",
@@ -212,18 +212,18 @@
   "empty_column.account_unavailable": "프로필 사용 불가",
   "empty_column.blocks": "아직 아무도 차단하지 않았습니다.",
   "empty_column.bookmarked_statuses": "아직 북마크에 저장한 게시물이 없습니다. 게시물을 북마크 지정하면 여기에 나타납니다.",
-  "empty_column.community": "로컬 타임라인에 아무 것도 없습니다. 아무거나 적어 보세요!",
+  "empty_column.community": "로컬 타임라인에 아무것도 없습니다. 아무거나 적어 보세요!",
   "empty_column.direct": "아직 다이렉트 메시지가 없습니다. 다이렉트 메시지를 보내거나 받은 경우, 여기에 표시 됩니다.",
   "empty_column.domain_blocks": "아직 차단한 도메인이 없습니다.",
   "empty_column.explore_statuses": "아직 유행하는 것이 없습니다. 나중에 다시 확인하세요!",
   "empty_column.favourited_statuses": "아직 마음에 들어한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.",
   "empty_column.favourites": "아직 아무도 이 게시물을 마음에 들어하지 않았습니다. 누군가 좋아요를 하면 여기에 나타납니다.",
-  "empty_column.follow_recommendations": "당신을 위한 제안이 생성될 수 없는 것 같습니다. 알 수도 있는 사람을 검색하거나 유행하는 해시태그를 둘러볼 수 있습니다.",
+  "empty_column.follow_recommendations": "나를 위한 추천을 만들 수 없는 것 같습니다. 알 수도 있는 사람을 검색하거나 유행하는 해시태그를 둘러볼 수 있습니다.",
   "empty_column.follow_requests": "아직 팔로우 요청이 없습니다. 요청을 받았을 때 여기에 나타납니다.",
   "empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.",
   "empty_column.home": "당신의 홈 타임라인은 비어있습니다! 더 많은 사람들을 팔로우 하여 채워보세요. {suggestions}",
   "empty_column.home.suggestions": "몇몇의 제안 보기",
-  "empty_column.list": "리스트에 아직 아무 것도 없습니다.",
+  "empty_column.list": "리스트에 아직 아무것도 없습니다. 리스트의 누군가가 게시물을 올리면 여기에 나타납니다.",
   "empty_column.lists": "아직 리스트가 없습니다. 리스트를 만들면 여기에 나타납니다.",
   "empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.",
   "empty_column.notifications": "아직 알림이 없습니다. 다른 사람들이 당신에게 반응했을 때, 여기에서 볼 수 있습니다.",
@@ -231,7 +231,7 @@
   "error.unexpected_crash.explanation": "버그 혹은 브라우저 호환성 문제로 이 페이지를 올바르게 표시할 수 없습니다.",
   "error.unexpected_crash.explanation_addons": "이 페이지는 올바르게 보여질 수 없습니다. 브라우저 애드온이나 자동 번역 도구 등으로 인해 발생된 에러일 수 있습니다.",
   "error.unexpected_crash.next_steps": "페이지를 새로고침 해보세요. 그래도 해결되지 않는 경우, 다른 브라우저나 네이티브 앱으로도 마스토돈을 이용하실 수 있습니다.",
-  "error.unexpected_crash.next_steps_addons": "그것들을 끄고 페이지를 새로고침 해보세요. 그래도 해결되지 않는 경우, 다른 브라우저나 네이티브 앱으로도 마스토돈을 이용하실 수 있습니다.",
+  "error.unexpected_crash.next_steps_addons": "그걸 끄고 페이지를 새로고침 해보세요. 그래도 해결되지 않으면, 다른 브라우저나 네이티브 앱으로 마스토돈을 이용해 보실 수 있습니다.",
   "errors.unexpected_crash.copy_stacktrace": "에러 내용을 클립보드에 복사",
   "errors.unexpected_crash.report_issue": "문제 신고",
   "explore.search_results": "검색 결과",
@@ -257,7 +257,7 @@
   "follow_recommendations.lead": "당신이 팔로우 하는 사람들의 게시물이 시간순으로 정렬되어 당신의 홈 피드에 표시될 것입니다. 실수를 두려워 하지 마세요, 언제든지 쉽게 팔로우 취소를 할 수 있습니다!",
   "follow_request.authorize": "허가",
   "follow_request.reject": "거부",
-  "follow_requests.unlocked_explanation": "당신의 계정이 잠기지 않았다고 할 지라도, {domain}의 스탭은 당신이 이 계정들로부터의 팔로우 요청을 수동으로 확인하길 원한다고 생각했습니다.",
+  "follow_requests.unlocked_explanation": "귀하의 계정이 잠긴 계정이 아닐지라도, {domain} 스태프는 이 계정들의 팔로우 요청을 수동으로 처리해 주시면 좋겠다고 생각했습니다.",
   "footer.about": "정보",
   "footer.directory": "프로필 책자",
   "footer.get_app": "앱 다운로드하기",
diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json
index ad0b6f814..02ac43d57 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -131,7 +131,7 @@
   "compose_form.lock_disclaimer": "Ajimêrê te ne {locked}. Herkes dikare te bişopîne da ku şandiyên te yên tenê ji şopînerên re têne xuyakirin bibînin.",
   "compose_form.lock_disclaimer.lock": "girtî ye",
   "compose_form.placeholder": "Çi di hişê te derbas dibe?",
-  "compose_form.poll.add_option": "Hilbijarekî tevlî bike",
+  "compose_form.poll.add_option": "Hilbijartinekî tevlî bike",
   "compose_form.poll.duration": "Dema rapirsî yê",
   "compose_form.poll.option_placeholder": "{number} Hilbijêre",
   "compose_form.poll.remove_option": "Vê hilbijarê rake",
@@ -167,7 +167,7 @@
   "confirmations.mute.explanation": "Ev ê şandinên ji wan tê û şandinên ku behsa wan dike veşêre, lê hê jî maf dide ku ew şandinên te bibînin û te bişopînin.",
   "confirmations.mute.message": "Bi rastî tu dixwazî {name} bêdeng bikî?",
   "confirmations.redraft.confirm": "Jê bibe & ji nû ve serrast bike",
-  "confirmations.redraft.message": "Bi rastî tu dixwazî şandî ye jê bibî û nûve reşnivîsek çê bikî? Bijarte û şandî wê wenda bibin û bersivên ji bo şandiyê resen wê sêwî bimînin.",
+  "confirmations.redraft.message": "Bi rastî tu dixwazî şandî ye jê bibî û ji nû ve reşnivîsek çê bikî? Bijarte û şandî wê wenda bibin û bersivên ji bo şandiyê resen wê sêwî bimînin.",
   "confirmations.reply.confirm": "Bersivê bide",
   "confirmations.reply.message": "Bersiva niha li ser peyama ku tu niha berhev dikî dê binivsîne. Ma pê bawer î ku tu dixwazî bidomînî?",
   "confirmations.unfollow.confirm": "Neşopîne",
@@ -195,7 +195,7 @@
   "emoji_button.activity": "Çalakî",
   "emoji_button.clear": "Pak bike",
   "emoji_button.custom": "Kesanekirî",
-  "emoji_button.flags": "Nîşankirî",
+  "emoji_button.flags": "Al",
   "emoji_button.food": "Xwarin û vexwarin",
   "emoji_button.label": "Emoji têxe",
   "emoji_button.nature": "Sirûştî",
@@ -216,7 +216,7 @@
   "empty_column.direct": "Hîn peyamên te yên rasterast tune ne. Dema ku tu yekî bişînî an jî wergirî, ew ê li vir xuya bibe.",
   "empty_column.domain_blocks": "Hîn tu navperên ku hatine astengkirin tune ne.",
   "empty_column.explore_statuses": "Tiştek niha di rojevê de tune. Paşê vegere!",
-  "empty_column.favourited_statuses": "Hîn tu peyamên te yên bijarte tune ne. Dema ku te yekî bijart, ew ê li vir xuya bibe.",
+  "empty_column.favourited_statuses": "Hîn tu peyamên te yên bijare tunene. Gava ku te yekî bijart, ew ê li vir xûya bike.",
   "empty_column.favourites": "Hîn tu kes vê peyamê nebijartiye. Gava ku hin kes bijartin, ew ê li vir xûya bikin.",
   "empty_column.follow_recommendations": "Wusa dixuye ku ji bo we tu pêşniyar nehatine çêkirin. Hûn dikarin lêgerînê bikarbînin da ku li kesên ku hûn nas dikin bigerin an hashtagên trendî bigerin.",
   "empty_column.follow_requests": "Hê jî daxwaza şopandinê tunne ye. Dema daxwazek hat, yê li vir were nîşan kirin.",
@@ -230,8 +230,8 @@
   "empty_column.public": "Li vir tiştekî tuneye! Ji raya giştî re tiştekî binivîsîne, an ji bo tijîkirinê ji rajekerên din bikarhêneran bi destan bişopînin",
   "error.unexpected_crash.explanation": "Ji ber xeletîyeke di koda me da an jî ji ber mijara lihevhatina gerokan, ev rûpel rast nehat nîşandan.",
   "error.unexpected_crash.explanation_addons": "Ev rûpel bi awayekî rast nehat nîşandan. Ev çewtî mimkûn e ji ber lêzêdekirina gerokan an jî amûrên wergera xweberî pêk tê.",
-  "error.unexpected_crash.next_steps": "Nûkirina rûpelê biceribîne. Heke ev bi kêr neyê, dibe ku te hîn jî bi rêya gerokeke cuda an jî sepana xwecîhê Mastodonê bi kar bîne.",
-  "error.unexpected_crash.next_steps_addons": "Ne çalak kirin û nûkirina rûpelê biceribîne. Heke ev bi kêr neyê, dibe ku te hîn jî bi rêya gerokeke cuda an jî sepana xwecîhê Mastodonê bi kar bîne.",
+  "error.unexpected_crash.next_steps": "Nûkirina rûpelê biceribîne. Heke ev bi kêr neyê, dibe ku te hîn jî bi riya gerokeke cuda an jî sepana xwecîhê Mastodonê bi kar bîne.",
+  "error.unexpected_crash.next_steps_addons": "Ne çalak kirin û nûkirina rûpelê biceribîne. Heke ev bi kêr neyê, dibe ku te hîn jî bi riya gerokeke cuda an jî sepana xwecîhê Mastodonê bi kar bîne.",
   "errors.unexpected_crash.copy_stacktrace": "Şopa gemara (stacktrace) tûrikê ra jê bigire",
   "errors.unexpected_crash.report_issue": "Pirsgirêkekê ragihîne",
   "explore.search_results": "Encamên lêgerînê",
@@ -289,7 +289,7 @@
   "interaction_modal.description.reply": "Bi ajimêrekê li ser Mastodon, tu dikarî bersiva vê şandiyê bidî.",
   "interaction_modal.on_another_server": "Li ser rajekareke cuda",
   "interaction_modal.on_this_server": "Li ser ev rajekar",
-  "interaction_modal.other_server_instructions": "Vê girêdanê jê bigire û pêve bike di zeviya lêgerînê de ji sepana xwe ya Mastodon a bijarte yan jî navrûyê bikarhêneriyê ya tevnê ji rajekarê Mastodon.",
+  "interaction_modal.other_server_instructions": "Vê girêdanê jê bigire û pêve bike di zeviya lêgerînê de ji sepana xwe ya Mastodon a bijartekirî yan jî navrûyê bikarhêneriyê ya tevnê ji rajekarê Mastodon.",
   "interaction_modal.preamble": "Ji ber ku Mastodon nenavendî ye, tu dikarî ajimêrê xwe ya heyî ku ji aliyê rajekarek din a Mastodon an platformek lihevhatî ve hatî pêşkêşkirin bi kar bînî ku ajimêrê te li ser vê yekê tune be.",
   "interaction_modal.title.favourite": "Şandiyê {name} bijarte bike",
   "interaction_modal.title.follow": "{name} bişopîne",
@@ -308,7 +308,7 @@
   "keyboard_shortcuts.down": "Di lîsteyê de dakêşe jêr",
   "keyboard_shortcuts.enter": "Şandiyê veke",
   "keyboard_shortcuts.favourite": "Şandiya bijarte",
-  "keyboard_shortcuts.favourites": "Lîsteyên bijarte veke",
+  "keyboard_shortcuts.favourites": "Rêzokê bijarteyan veke",
   "keyboard_shortcuts.federated": "Demnameya giştî veke",
   "keyboard_shortcuts.heading": "Kurterêyên klavyeyê",
   "keyboard_shortcuts.home": "Demnameyê veke",
@@ -535,7 +535,7 @@
   "server_banner.server_stats": "Amarên rajekar:",
   "sign_in_banner.create_account": "Ajimêr biafirîne",
   "sign_in_banner.sign_in": "Têkeve",
-  "sign_in_banner.text": "Têkeve ji bo şopandina profîlan an hashtagan, bijarte, parvekirin û bersivdana şandiyan, an ji ajimêrê xwe li ser rajekarek cuda têkilî deyine.",
+  "sign_in_banner.text": "Têkeve ji bo şopandina profîlan an hashtagan, bijartekirin, parvekirin û bersivdana şandiyan, an ji ajimêrê xwe li ser rajekarek cuda têkilî deyine.",
   "status.admin_account": "Ji bo @{name} navrûya venihêrtinê veke",
   "status.admin_status": "Vê şandîyê di navrûya venihêrtinê de veke",
   "status.block": "@{name} asteng bike",
@@ -550,7 +550,7 @@
   "status.edited": "Di {date} de hate serrastkirin",
   "status.edited_x_times": "{count, plural, one {{count} car} other {{count} car}} hate serrastkirin",
   "status.embed": "Hedimandî",
-  "status.favourite": "Bijarte",
+  "status.favourite": "Bijarte bike",
   "status.filter": "Vê şandiyê parzûn bike",
   "status.filtered": "Parzûnkirî",
   "status.hide": "Şandiyê veşêre",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index f8c8f2f42..bff4aaedd 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -36,35 +36,35 @@
   "account.following": "Following",
   "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
   "account.follows.empty": "This user doesn't follow anyone yet.",
-  "account.follows_you": "Follows you",
-  "account.go_to_profile": "Go to profile",
+  "account.follows_you": "Seka jus",
+  "account.go_to_profile": "Eiti į profilį",
   "account.hide_reblogs": "Hide boosts from @{name}",
-  "account.joined_short": "Joined",
+  "account.joined_short": "Prisijungė",
   "account.languages": "Change subscribed languages",
   "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.media": "Media",
   "account.mention": "Mention @{name}",
   "account.moved_to": "{name} has indicated that their new account is now:",
-  "account.mute": "Mute @{name}",
-  "account.mute_notifications": "Mute notifications from @{name}",
+  "account.mute": "Užtildyti @{name}",
+  "account.mute_notifications": "Užtildyti žinutes iš @{name}",
   "account.muted": "Užtildytas",
   "account.open_original_page": "Open original page",
   "account.posts": "Toots",
   "account.posts_with_replies": "Toots and replies",
-  "account.report": "Report @{name}",
+  "account.report": "Pranešti apie @{name}",
   "account.requested": "Awaiting approval",
   "account.share": "Share @{name}'s profile",
   "account.show_reblogs": "Show boosts from @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
   "account.unblock": "Unblock @{name}",
   "account.unblock_domain": "Unhide {domain}",
-  "account.unblock_short": "Unblock",
+  "account.unblock_short": "Atblokuoti",
   "account.unendorse": "Don't feature on profile",
   "account.unfollow": "Nebesekti",
   "account.unmute": "Unmute @{name}",
   "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account.unmute_short": "Unmute",
+  "account.unmute_short": "Atitildyti",
   "account_note.placeholder": "Click to add a note",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index f96b648ad..3949654f5 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -2,7 +2,7 @@
   "about.blocks": "Moderētie serveri",
   "about.contact": "Kontakts:",
   "about.disclaimer": "Mastodon ir bezmaksas atvērtā pirmkoda programmatūra un Mastodon gGmbH preču zīme.",
-  "about.domain_blocks.no_reason_available": "Iemesls nav pieejams",
+  "about.domain_blocks.no_reason_available": "Iemesls nav norādīts",
   "about.domain_blocks.preamble": "Mastodon parasti ļauj apskatīt saturu un mijiedarboties ar lietotājiem no jebkura cita federācijas servera. Šie ir izņēmumi, kas veikti šajā konkrētajā serverī.",
   "about.domain_blocks.silenced.explanation": "Parasti tu neredzēsi profilus un saturu no šī servera, ja vien tu nepārprotami izvēlēsies to pārskatīt vai sekot.",
   "about.domain_blocks.silenced.title": "Ierobežotās",
@@ -23,55 +23,55 @@
   "account.direct": "Privāta ziņa @{name}",
   "account.disable_notifications": "Pārtraukt man paziņot, kad @{name} publicē ierakstu",
   "account.domain_blocked": "Domēns ir bloķēts",
-  "account.edit_profile": "Labot profilu",
+  "account.edit_profile": "Rediģēt profilu",
   "account.enable_notifications": "Paziņot man, kad @{name} publicē ierakstu",
-  "account.endorse": "Izcelts profilā",
+  "account.endorse": "Izcelt profilā",
   "account.featured_tags.last_status_at": "Beidzamā ziņa {date}",
-  "account.featured_tags.last_status_never": "Publikāciju nav",
-  "account.featured_tags.title": "{name} piedāvātie haštagi",
+  "account.featured_tags.last_status_never": "Ierakstu nav",
+  "account.featured_tags.title": "{name} izceltie tēmturi",
   "account.follow": "Sekot",
   "account.followers": "Sekotāji",
   "account.followers.empty": "Šim lietotājam vēl nav sekotāju.",
-  "account.followers_counter": "{count, plural, one {{counter} Sekotājs} other {{counter} Sekotāji}}",
+  "account.followers_counter": "{count, plural, zero {{counter} sekotāju} one {{counter} sekotājs} other {{counter} sekotāji}}",
   "account.following": "Seko",
   "account.following_counter": "{count, plural, one {{counter} Sekojamais} other {{counter} Sekojamie}}",
   "account.follows.empty": "Šis lietotājs pagaidām nevienam neseko.",
   "account.follows_you": "Seko tev",
-  "account.go_to_profile": "Dodieties uz profilu",
+  "account.go_to_profile": "Doties uz profilu",
   "account.hide_reblogs": "Paslēpt pastiprinātos ierakstus no lietotāja @{name}",
   "account.joined_short": "Pievienojās",
   "account.languages": "Mainīt abonētās valodas",
   "account.link_verified_on": "Šīs saites piederība ir pārbaudīta {date}",
   "account.locked_info": "Šī konta privātuma statuss ir slēgts. Īpašnieks izskatīs, kurš viņam drīkst sekot.",
   "account.media": "Multivide",
-  "account.mention": "Piemin @{name}",
+  "account.mention": "Pieminēt @{name}",
   "account.moved_to": "{name} norādīja, ka viņu jaunais konts tagad ir:",
   "account.mute": "Apklusināt @{name}",
   "account.mute_notifications": "Nerādīt paziņojumus no @{name}",
-  "account.muted": "Noklusināts",
+  "account.muted": "Apklusināts",
   "account.open_original_page": "Atvērt oriģinālo lapu",
-  "account.posts": "Ziņas",
-  "account.posts_with_replies": "Ziņas un atbildes",
-  "account.report": "Ziņot par lietotāju @{name}",
+  "account.posts": "Ieraksti",
+  "account.posts_with_replies": "Ieraksti un atbildes",
+  "account.report": "Sūdzēties par @{name}",
   "account.requested": "Gaidām apstiprinājumu. Nospied lai atceltu sekošanas pieparasījumu",
   "account.share": "Dalīties ar @{name} profilu",
   "account.show_reblogs": "Parādīt @{name} pastiprinātos ierakstus",
-  "account.statuses_counter": "{count, plural, one {{counter} ziņa} other {{counter} ziņas}}",
+  "account.statuses_counter": "{count, plural, zero {{counter} ierakstu} one {{counter} ieraksts} other {{counter} ieraksti}}",
   "account.unblock": "Atbloķēt lietotāju @{name}",
   "account.unblock_domain": "Atbloķēt domēnu {domain}",
   "account.unblock_short": "Atbloķēt",
-  "account.unendorse": "Neattēlot profilā",
+  "account.unendorse": "Neizcelt profilā",
   "account.unfollow": "Pārstāt sekot",
   "account.unmute": "Noņemt apklusinājumu @{name}",
-  "account.unmute_notifications": "Rādīt paziņojumus no lietotāja @{name}",
-  "account.unmute_short": "Ieslēgt skaņu",
+  "account.unmute_notifications": "Rādīt paziņojumus no @{name}",
+  "account.unmute_short": "Noņemt apklusinājumu",
   "account_note.placeholder": "Noklikšķiniet, lai pievienotu piezīmi",
   "admin.dashboard.daily_retention": "Lietotāju saglabāšanas rādītājs dienā pēc reģistrēšanās",
   "admin.dashboard.monthly_retention": "Lietotāju saglabāšanas rādītājs mēnesī pēc reģistrēšanās",
   "admin.dashboard.retention.average": "Vidēji",
   "admin.dashboard.retention.cohort": "Reģistrēšanās mēnesis",
   "admin.dashboard.retention.cohort_size": "Jauni lietotāji",
-  "alert.rate_limited.message": "Lūdzu, mēģini vēlreiz pāc {retry_time, time, medium}.",
+  "alert.rate_limited.message": "Lūdzu, mēģini vēlreiz pēc {retry_time, time, medium}.",
   "alert.rate_limited.title": "Biežums ierobežots",
   "alert.unexpected.message": "Radās negaidīta kļūda.",
   "alert.unexpected.title": "Ups!",
@@ -81,26 +81,26 @@
   "autosuggest_hashtag.per_week": "{count} nedēļā",
   "boost_modal.combo": "Nospied {combo}, lai nākamreiz šo izlaistu",
   "bundle_column_error.copy_stacktrace": "Kopēt kļūdu ziņojumu",
-  "bundle_column_error.error.body": "Pieprasīto lapu nevarēja atveidot. Tas varētu būt saistīts ar kļūdu mūsu kodā vai pārlūkprogrammas saderības problēma.",
-  "bundle_column_error.error.title": "Ak, nē!",
+  "bundle_column_error.error.body": "Pieprasīto lapu nevarēja atveidot. Tas varētu būt saistīts ar kļūdu mūsu kodā, vai tā ir pārlūkprogrammas saderības problēma.",
+  "bundle_column_error.error.title": "Ak vai!",
   "bundle_column_error.network.body": "Mēģinot ielādēt šo lapu, radās kļūda. Tas varētu būt saistīts ar īslaicīgu interneta savienojuma vai šī servera problēmu.",
   "bundle_column_error.network.title": "Tīkla kļūda",
-  "bundle_column_error.retry": "Mēģini vēlreiz",
+  "bundle_column_error.retry": "Mēģināt vēlreiz",
   "bundle_column_error.return": "Atgriezties",
   "bundle_column_error.routing.body": "Pieprasīto lapu nevarēja atrast. Vai esi pārliecināts, ka URL adreses joslā ir pareizs?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Aizvērt",
   "bundle_modal_error.message": "Kaut kas nogāja greizi, ielādējot šo komponenti.",
-  "bundle_modal_error.retry": "Mēģini vēlreiz",
+  "bundle_modal_error.retry": "Mēģināt vēlreiz",
   "closed_registrations.other_server_instructions": "Tā kā Mastodon ir decentralizēts, tu vari izveidot kontu citā serverī un joprojām mijiedarboties ar šo.",
-  "closed_registrations_modal.description": "Pašlaik nav iespējams izveidot kontu domēnā {domain}, taču, lūdzu, ņem vērā, ka, lai izmantotu Mastodon, tev nav nepieciešams konts tieši domēnā {domain}.",
+  "closed_registrations_modal.description": "Pašlaik nav iespējams izveidot kontu domēnā {domain}, taču ņem vērā, ka tev nav nepieciešams konts tieši domēnā {domain}, lai izmantotu Mastodon.",
   "closed_registrations_modal.find_another_server": "Atrast citu serveri",
-  "closed_registrations_modal.preamble": "Mastodon ir decentralizēts, tāpēc neatkarīgi no tā, kur tu izveido savu kontu, varēsit sekot līdzi un sazināties ar ikvienu šajā serverī. Tu pat vari vadīt to pats!",
+  "closed_registrations_modal.preamble": "Mastodon ir decentralizēts, tāpēc neatkarīgi no tā, kur tu izveido savu kontu, varēsi sekot līdzi un sazināties ar ikvienu šajā serverī. Tu pat vari vadīt to pats!",
   "closed_registrations_modal.title": "Reģistrēšanās Mastodon",
   "column.about": "Par",
   "column.blocks": "Bloķētie lietotāji",
   "column.bookmarks": "Grāmatzīmes",
-  "column.community": "Vietējā ziņu līnija",
+  "column.community": "Vietējā laika līnija",
   "column.direct": "Privātie ziņojumi",
   "column.directory": "Pārlūkot profilus",
   "column.domain_blocks": "Bloķētie domēni",
@@ -111,11 +111,11 @@
   "column.mutes": "Apklusinātie lietotāji",
   "column.notifications": "Paziņojumi",
   "column.pins": "Piespraustie ziņojumi",
-  "column.public": "Apvienotā ziņu lenta",
+  "column.public": "Apvienotā laika līnija",
   "column_back_button.label": "Atpakaļ",
   "column_header.hide_settings": "Paslēpt iestatījumus",
-  "column_header.moveLeft_settings": "Pārvietot kolonu pa kreisi",
-  "column_header.moveRight_settings": "Pārvietot kolonu pa labi",
+  "column_header.moveLeft_settings": "Pārvietot kolonnu pa kreisi",
+  "column_header.moveRight_settings": "Pārvietot kolonnu pa labi",
   "column_header.pin": "Piespraust",
   "column_header.show_settings": "Rādīt iestatījumus",
   "column_header.unpin": "Atspraust",
@@ -127,7 +127,7 @@
   "compose.language.search": "Meklēt valodas...",
   "compose_form.direct_message_warning_learn_more": "Uzzināt vairāk",
   "compose_form.encryption_warning": "Ziņas vietnē Mastodon nav pilnībā šifrētas. Nedalies ar sensitīvu informāciju caur Mastodon.",
-  "compose_form.hashtag_warning": "Ziņojumu nebūs iespējams atrast zem haštagiem jo tas nav publisks. Tikai publiskos ziņojumus ir iespējams meklēt pēc tiem.",
+  "compose_form.hashtag_warning": "Šo ziņu nebūs iespējams atrast tēmturos, jo tā ir nerindota. Tēmturos ir redzamas tikai publiskas ziņas.",
   "compose_form.lock_disclaimer": "Tavs konts nav {locked}. Ikviens var Tev sekot lai apskatītu tikai sekotājiem paredzētos ziņojumus.",
   "compose_form.lock_disclaimer.lock": "slēgts",
   "compose_form.placeholder": "Kas tev padomā?",
@@ -135,41 +135,41 @@
   "compose_form.poll.duration": "Aptaujas ilgums",
   "compose_form.poll.option_placeholder": "Izvēle Nr. {number}",
   "compose_form.poll.remove_option": "Noņemt šo izvēli",
-  "compose_form.poll.switch_to_multiple": "Maini aptaujas veidu, lai atļautu vairākas izvēles",
-  "compose_form.poll.switch_to_single": "Maini aptaujas veidu, lai atļautu vienu izvēli",
+  "compose_form.poll.switch_to_multiple": "Mainīt aptaujas veidu, lai atļautu vairākas izvēles",
+  "compose_form.poll.switch_to_single": "Mainīt aptaujas veidu, lai atļautu vienu izvēli",
   "compose_form.publish": "Publicēt",
   "compose_form.publish_form": "Publicēt",
   "compose_form.publish_loud": "{publish}!",
   "compose_form.save_changes": "Saglabāt izmaiņas",
   "compose_form.sensitive.hide": "{count, plural, one {Atzīmēt multividi kā sensitīvu} other {Atzīmēt multivides kā sensitīvas}}",
   "compose_form.sensitive.marked": "{count, plural, one {Multivide ir atzīmēta kā sensitīva} other {Multivides ir atzīmētas kā sensitīvas}}",
-  "compose_form.sensitive.unmarked": "{count, plural, one {Multivide nav atzīmēts kā sensitīva} other {Multivides nav atzīmētas kā sensitīvas}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Multivide nav atzīmēta kā sensitīva} other {Multivides nav atzīmētas kā sensitīvas}}",
   "compose_form.spoiler.marked": "Noņemt satura brīdinājumu",
   "compose_form.spoiler.unmarked": "Pievienot satura brīdinājumu",
   "compose_form.spoiler_placeholder": "Ieraksti savu brīdinājumu šeit",
   "confirmation_modal.cancel": "Atcelt",
-  "confirmations.block.block_and_report": "Bloķēt un ziņot",
+  "confirmations.block.block_and_report": "Bloķēt un sūdzēties",
   "confirmations.block.confirm": "Bloķēt",
-  "confirmations.block.message": "Vai tiešām vēlies bloķēt lietotāju {name}?",
+  "confirmations.block.message": "Vai tiešām vēlies bloķēt {name}?",
   "confirmations.cancel_follow_request.confirm": "Atsaukt pieprasījumu",
   "confirmations.cancel_follow_request.message": "Vai tiešām vēlies atsaukt pieprasījumu sekot {name}?",
   "confirmations.delete.confirm": "Dzēst",
-  "confirmations.delete.message": "Vai tiešām vēlaties dzēst šo ziņu?",
+  "confirmations.delete.message": "Vai tiešām vēlies dzēst šo ziņu?",
   "confirmations.delete_list.confirm": "Dzēst",
   "confirmations.delete_list.message": "Vai tiešam vēlies neatgriezeniski dzēst šo sarakstu?",
-  "confirmations.discard_edit_media.confirm": "Izmest",
-  "confirmations.discard_edit_media.message": "Vai tev ir nesaglabātas izmaiņas multivides aprakstā vai priekšskatījumā, vai tomēr atmest tās?",
+  "confirmations.discard_edit_media.confirm": "Atmest",
+  "confirmations.discard_edit_media.message": "Tev ir nesaglabātas izmaiņas multivides aprakstā vai priekšskatījumā. Vēlies tās atmest?",
   "confirmations.domain_block.confirm": "Bloķēt visu domēnu",
-  "confirmations.domain_block.message": "Vai tu tiešām, tiešam vēlies bloķēt visu domēnu {domain}? Lielākajā daļā gadījumu pietiek ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.",
+  "confirmations.domain_block.message": "Vai tu tiešām vēlies bloķēt visu domēnu {domain}? Parasti pietiek, ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.",
   "confirmations.logout.confirm": "Iziet",
   "confirmations.logout.message": "Vai tiešām vēlies izrakstīties?",
   "confirmations.mute.confirm": "Apklusināt",
   "confirmations.mute.explanation": "Šādi no viņiem tiks slēptas ziņas un ziņas, kurās viņi tiek pieminēti, taču viņi joprojām varēs redzēt tavas ziņas un sekot tev.",
   "confirmations.mute.message": "Vai tiešām vēlies apklusināt {name}?",
   "confirmations.redraft.confirm": "Dzēst un pārrakstīt",
-  "confirmations.redraft.message": "Vai tiešām vēlies dzēst un pārrakstīt šo ierakstu? Favorīti un paceltie ieraksti tiks dzēsti, kā arī atbildes tiks atsaistītas no šī ieraksta.",
+  "confirmations.redraft.message": "Vai tiešām vēlies dzēst un pārrakstīt šo ierakstu? Favorīti un pastiprinātie ieraksti tiks dzēsti, un atbildes tiks atsaistītas no šī ieraksta.",
   "confirmations.reply.confirm": "Atbildēt",
-  "confirmations.reply.message": "Atbildot tagad tava ziņa ko šobrīd raksti tiks pārrakstīta. Vai tiešām vēlies turpināt?",
+  "confirmations.reply.message": "Ja tagad atbildēsi, tavs ziņas uzmetums tiks dzēsts. Vai tiešām vēlies turpināt?",
   "confirmations.unfollow.confirm": "Pārstāt sekot",
   "confirmations.unfollow.message": "Vai tiešam vairs nevēlies sekot lietotājam {name}?",
   "conversation.delete": "Dzēst sarunu",
@@ -181,16 +181,16 @@
   "directory.federated": "No pazīstamas federācijas",
   "directory.local": "Tikai no {domain}",
   "directory.new_arrivals": "Jaunpienācēji",
-  "directory.recently_active": "Nesen aktīvs",
+  "directory.recently_active": "Nesen aktīvie",
   "disabled_account_banner.account_settings": "Konta iestatījumi",
-  "disabled_account_banner.text": "Jūsu konts {disabledAccount} pašlaik ir atspējots.",
+  "disabled_account_banner.text": "Tavs konts {disabledAccount} pašlaik ir atspējots.",
   "dismissable_banner.community_timeline": "Šīs ir jaunākās publiskās ziņas no personām, kuru kontus mitina {domain}.",
   "dismissable_banner.dismiss": "Atcelt",
   "dismissable_banner.explore_links": "Par šiem jaunumiem šobrīd runā cilvēki šajā un citos decentralizētā tīkla serveros.",
   "dismissable_banner.explore_statuses": "Šīs ziņas no šī un citiem decentralizētajā tīkla serveriem šobrīd gūst panākumus šajā serverī.",
   "dismissable_banner.explore_tags": "Šie tēmturi šobrīd kļūst arvien populārāki cilvēku vidū šajā un citos decentralizētā tīkla serveros.",
   "dismissable_banner.public_timeline": "Šīs ir jaunākās publiskās ziņas no cilvēkiem šajā un citos decentralizētā tīkla serveros, par kuriem šis serveris zina.",
-  "embed.instructions": "Iestrādā šo ziņu savā mājaslapā, kopējot zemāk redzmo kodu.",
+  "embed.instructions": "Iestrādā šo ziņu savā mājaslapā, kopējot zemāk redzamo kodu.",
   "embed.preview": "Tas izskatīsies šādi:",
   "emoji_button.activity": "Aktivitāte",
   "emoji_button.clear": "Notīrīt",
@@ -210,24 +210,24 @@
   "empty_column.account_suspended": "Konta darbība ir apturēta",
   "empty_column.account_timeline": "Šeit ziņojumu nav!",
   "empty_column.account_unavailable": "Profils nav pieejams",
-  "empty_column.blocks": "Patreiz tu neesi nevienu bloķējis.",
-  "empty_column.bookmarked_statuses": "Patreiz tev nav neviena grāmatzīmēm pievienota ieraksta. Kad tādu pievienosi, tas parādīsies šeit.",
-  "empty_column.community": "Vietējā ziņu lenta ir tukša. Uzraksti kaut ko publiski, lai viss notiktu!",
-  "empty_column.direct": "Patrez tev nav privātu ziņu. Tiklīdz tādu nosūtīsi vai saņemsi, tās parādīsies šeit.",
+  "empty_column.blocks": "Pašreiz tu neesi nevienu bloķējis.",
+  "empty_column.bookmarked_statuses": "Pašreiz tev nav neviena grāmatzīmēm pievienota ieraksta. Kad tādu pievienosi, tas parādīsies šeit.",
+  "empty_column.community": "Vietējā laika līnija ir tukša. Uzraksti kaut ko publiski, lai viss notiktu!",
+  "empty_column.direct": "Pašreiz tev nav privātu ziņu. Tiklīdz tādu nosūtīsi vai saņemsi, tās parādīsies šeit.",
   "empty_column.domain_blocks": "Vēl nav neviena bloķēta domēna.",
   "empty_column.explore_statuses": "Pašlaik nekā aktuāla nav. Pārbaudi vēlāk!",
   "empty_column.favourited_statuses": "Patreiz tev nav neviena izceltā ieraksta. Kad kādu izcelsi, tas parādīsies šeit.",
-  "empty_column.favourites": "Neviens šo ziņojumu vel nav izcēlis. Kad būs, tie parādīsies šeit.",
-  "empty_column.follow_recommendations": "Šķiet, ka tev nevarēja ģenerēt ieteikumus. Vari mēģināt izmantot meklēšanu, lai meklētu cilvēkus, kurus tu varētu pazīt, vai izpētīt populārākās atsauces.",
+  "empty_column.favourites": "Neviens šo ziņojumu vel nav izcēlis. Kad kāds to izdarīs, tas parādīsies šeit.",
+  "empty_column.follow_recommendations": "Neizdevās ģenerēt tev pielāgotus ieteikumus. Vari mēģināt izmantot meklēšanu, lai meklētu cilvēkus, kurus tu varētu pazīt, vai izpētīt populārākos tēmturus.",
   "empty_column.follow_requests": "Šobrīd neviens nav pieteicies tev sekot. Kad kāds pieteiksies tas parādīsies šeit.",
   "empty_column.hashtag": "Ar šo tēmturi nekas nav atrodams.",
-  "empty_column.home": "Tava vietējā ziņu lenta ir tukša! Lai to aizpildītu, piesekojies vairāk cilvēkiem. {suggestions}",
+  "empty_column.home": "Tava mājas laika līnija ir tukša! Lai to aizpildītu, pieseko vairāk cilvēkiem. {suggestions}",
   "empty_column.home.suggestions": "Apskatīt dažus ieteikumus",
-  "empty_column.list": "Šis saraksts patreiz ir tukšs. Kad šī saraksta dalībnieki publicēs jaunas ziņas, tās parādīsies šeit.",
-  "empty_column.lists": "Patreiz tev nav neviena saraksta. Kad tādu izveidosi, tas parādīsies šeit.",
+  "empty_column.list": "Šis saraksts pašreiz ir tukšs. Kad šī saraksta dalībnieki publicēs jaunas ziņas, tās parādīsies šeit.",
+  "empty_column.lists": "Pašreiz tev nav neviena saraksta. Kad tādu izveidosi, tas parādīsies šeit.",
   "empty_column.mutes": "Neviens lietotājs vēl nav apklusināts.",
   "empty_column.notifications": "Tev vēl nav paziņojumu. Kad citi cilvēki ar tevi mijiedarbosies, tu to redzēsi šeit.",
-  "empty_column.public": "Šeit vēl nekā nav! Ieraksti ko publiski vai sāc sekot lietotājiem no citiem serveriem, lai veidotu saturu",
+  "empty_column.public": "Šeit vēl nekā nav! Ieraksti ko publiski vai pieseko lietotājiem no citiem serveriem",
   "error.unexpected_crash.explanation": "Koda kļūdas vai pārlūkprogrammas saderības problēmas dēļ šo lapu nevarēja parādīt pareizi.",
   "error.unexpected_crash.explanation_addons": "Šo lapu nevarēja parādīt pareizi. Šo kļūdu, iespējams, izraisīja pārlūkprogrammas papildinājums vai automātiskās tulkošanas rīki.",
   "error.unexpected_crash.next_steps": "Mēģini atsvaidzināt lapu. Ja tas nepalīdz, iespējams, varēsi lietot Mastodon, izmantojot citu pārlūkprogrammu vai vietējo lietotni.",
@@ -242,7 +242,7 @@
   "filter_modal.added.expired_title": "Filtrs beidzies!",
   "filter_modal.added.review_and_configure": "Lai pārskatītu un tālāk konfigurētu šo filtru kategoriju, dodies uz {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Filtra iestatījumi",
-  "filter_modal.added.settings_link": "iestatījumu lapa",
+  "filter_modal.added.settings_link": "iestatījumu lapu",
   "filter_modal.added.short_explanation": "Šī ziņa ir pievienota šai filtra kategorijai: {title}.",
   "filter_modal.added.title": "Filtrs pievienots!",
   "filter_modal.select_filter.context_mismatch": "neattiecas uz šo kontekstu",
@@ -252,7 +252,7 @@
   "filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu",
   "filter_modal.select_filter.title": "Filtrēt šo ziņu",
   "filter_modal.title.status": "Filtrēt ziņu",
-  "follow_recommendations.done": "Izpildīts",
+  "follow_recommendations.done": "Darīts",
   "follow_recommendations.heading": "Seko cilvēkiem, no kuriem vēlies redzēt ziņas! Šeit ir daži ieteikumi.",
   "follow_recommendations.lead": "Ziņas no cilvēkiem, kuriem seko, mājas plūsmā tiks parādītas hronoloģiskā secībā. Nebaidies kļūdīties, tu tikpat viegli vari pārtraukt sekot cilvēkiem jebkurā laikā!",
   "follow_request.authorize": "Autorizēt",
@@ -275,18 +275,18 @@
   "hashtag.column_settings.tag_mode.all": "Visi no šiem",
   "hashtag.column_settings.tag_mode.any": "Kāds no šiem",
   "hashtag.column_settings.tag_mode.none": "Neviens no šiem",
-  "hashtag.column_settings.tag_toggle": "Iekļaut šai kolonnai papildu tagus",
-  "hashtag.follow": "Seko mirkļbirkai",
-  "hashtag.unfollow": "Pārstāj sekot mirkļbirkai",
+  "hashtag.column_settings.tag_toggle": "Pievienot kolonnai papildu tēmturus",
+  "hashtag.follow": "Sekot tēmturim",
+  "hashtag.unfollow": "Pārstāt sekot tēmturim",
   "home.column_settings.basic": "Pamata",
   "home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus",
   "home.column_settings.show_replies": "Rādīt atbildes",
   "home.hide_announcements": "Slēpt paziņojumus",
   "home.show_announcements": "Rādīt paziņojumus",
-  "interaction_modal.description.favourite": "Izmantojot kontu pakalpojumā Mastodon, vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē un saglabā vēlākai lasīšanai.",
-  "interaction_modal.description.follow": "Izmantojot Mastodon kontu, tu vari sekot lietotājam {name}, lai saņemtu viņa ziņas savā mājas plūsmā.",
-  "interaction_modal.description.reblog": "Izmantojot Mastodon kontu, tu vari pastiprināt šo ierakstu, lai kopīgotu to ar saviem sekotājiem.",
-  "interaction_modal.description.reply": "Izmantojot kontu Mastodon, tu vari atbildēt uz šo ziņu.",
+  "interaction_modal.description.favourite": "Ar Mastodon kontu tu vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē, un saglabātu to vēlākai lasīšanai.",
+  "interaction_modal.description.follow": "Ar Mastodon kontu tu vari sekot {name}, lai saņemtu viņu ziņas savā mājas plūsmā.",
+  "interaction_modal.description.reblog": "Ar Mastodon kontu tu vari pastiprināt šo ierakstu, lai kopīgotu to ar saviem sekotājiem.",
+  "interaction_modal.description.reply": "Ar Mastodon kontu tu vari atbildēt uz šo ziņu.",
   "interaction_modal.on_another_server": "Citā serverī",
   "interaction_modal.on_this_server": "Šajā serverī",
   "interaction_modal.other_server_instructions": "Nokopē un ielīmē šo URL savas Mastodon lietotnes vai Mastodon tīmekļa vietnes meklēšanas laukā.",
@@ -309,12 +309,12 @@
   "keyboard_shortcuts.enter": "Atvērt ziņu",
   "keyboard_shortcuts.favourite": "Pievienot izlasei",
   "keyboard_shortcuts.favourites": "Atvērt izlašu sarakstu",
-  "keyboard_shortcuts.federated": "Atvērt apvienoto ziņu lenti",
-  "keyboard_shortcuts.heading": "Klaviatūras saīsnes",
-  "keyboard_shortcuts.home": "Atvērt vietējo ziņu lenti",
+  "keyboard_shortcuts.federated": "Atvērt apvienoto laika līniju",
+  "keyboard_shortcuts.heading": "Īsinājumtaustiņi",
+  "keyboard_shortcuts.home": "Atvērt mājas laika līniju",
   "keyboard_shortcuts.hotkey": "Ātrais taustiņš",
   "keyboard_shortcuts.legend": "Parādīt šo leģendu",
-  "keyboard_shortcuts.local": "Atvērt vietējo ziņu lenti",
+  "keyboard_shortcuts.local": "Atvērt vietējo laika līniju",
   "keyboard_shortcuts.mention": "Pieminēt autoru",
   "keyboard_shortcuts.muted": "Atvērt apklusināto lietotāju sarakstu",
   "keyboard_shortcuts.my_profile": "Atvērt savu profilu",
@@ -325,17 +325,17 @@
   "keyboard_shortcuts.reply": "Atbildēt",
   "keyboard_shortcuts.requests": "Atvērt sekošanas pieprasījumu sarakstu",
   "keyboard_shortcuts.search": "Fokusēt meklēšanas joslu",
-  "keyboard_shortcuts.spoilers": "Rādīt/slēpt CW lauku",
+  "keyboard_shortcuts.spoilers": "Rādīt/slēpt satura brīdinājumu lauku",
   "keyboard_shortcuts.start": "Atvērt kolonnu “Darba sākšana”",
-  "keyboard_shortcuts.toggle_hidden": "Rādīt/slēpt tekstu aiz CW",
+  "keyboard_shortcuts.toggle_hidden": "Rādīt/slēpt tekstu aiz satura brīdinājuma",
   "keyboard_shortcuts.toggle_sensitivity": "Rādīt/slēpt multividi",
-  "keyboard_shortcuts.toot": "Sāc jaunu ziņu",
-  "keyboard_shortcuts.unfocus": "Atfokusēt teksta veidošanu/meklēšanu",
+  "keyboard_shortcuts.toot": "Sākt jaunu ziņu",
+  "keyboard_shortcuts.unfocus": "Atfokusēt veidojamā teksta/meklēšanas lauku",
   "keyboard_shortcuts.up": "Pārvietot sarakstā uz augšu",
   "lightbox.close": "Aizvērt",
   "lightbox.compress": "Saspiest attēla skata lodziņu",
   "lightbox.expand": "Izvērst attēla skata lodziņu",
-  "lightbox.next": "Tālāk",
+  "lightbox.next": "Nākamais",
   "lightbox.previous": "Iepriekšējais",
   "limited_account_hint.action": "Tik un tā rādīt profilu",
   "limited_account_hint.title": "{domain} moderatori ir paslēpuši šo profilu.",
@@ -346,25 +346,25 @@
   "lists.edit.submit": "Mainīt virsrakstu",
   "lists.new.create": "Pievienot sarakstu",
   "lists.new.title_placeholder": "Jaunais saraksta nosaukums",
-  "lists.replies_policy.followed": "Jebkurš sekots lietotājs",
-  "lists.replies_policy.list": "Saraksta dalībnieki",
+  "lists.replies_policy.followed": "Jebkuram sekotajam lietotājam",
+  "lists.replies_policy.list": "Saraksta dalībniekiem",
   "lists.replies_policy.none": "Nevienam",
-  "lists.replies_policy.title": "Rādīt atbildes uz:",
+  "lists.replies_policy.title": "Rādīt atbildes:",
   "lists.search": "Meklēt starp cilvēkiem, kuriem tu seko",
   "lists.subheading": "Tavi saraksti",
   "load_pending": "{count, plural, one {# jauna lieta} other {# jaunas lietas}}",
   "loading_indicator.label": "Ielādē...",
-  "media_gallery.toggle_visible": "{number, plural, one {Slēpt # attēlu} other {Slēpt # attēlus}}",
+  "media_gallery.toggle_visible": "{number, plural, one {Slēpt attēlu} other {Slēpt attēlus}}",
   "missing_indicator.label": "Nav atrasts",
   "missing_indicator.sublabel": "Šo resursu nevarēja atrast",
-  "moved_to_account_banner.text": "Jūsu konts {disabledAccount} pašlaik ir atspējots, jo esat pārcēlies uz kontu {movedToAccount}.",
+  "moved_to_account_banner.text": "Tavs konts {disabledAccount} pašlaik ir atspējots, jo pārcēlies uz kontu {movedToAccount}.",
   "mute_modal.duration": "Ilgums",
   "mute_modal.hide_notifications": "Slēpt paziņojumus no šī lietotāja?",
-  "mute_modal.indefinite": "Nenoteikts",
+  "mute_modal.indefinite": "Beztermiņa",
   "navigation_bar.about": "Par",
   "navigation_bar.blocks": "Bloķētie lietotāji",
   "navigation_bar.bookmarks": "Grāmatzīmes",
-  "navigation_bar.community_timeline": "Vietējā ziņu lenta",
+  "navigation_bar.community_timeline": "Vietējā laika līnija",
   "navigation_bar.compose": "Veidot jaunu ziņu",
   "navigation_bar.direct": "Privātie ziņojumi",
   "navigation_bar.discover": "Atklāt",
@@ -372,33 +372,33 @@
   "navigation_bar.edit_profile": "Rediģēt profilu",
   "navigation_bar.explore": "Pārlūkot",
   "navigation_bar.favourites": "Izlases",
-  "navigation_bar.filters": "Klusināti vārdi",
+  "navigation_bar.filters": "Apklusinātie vārdi",
   "navigation_bar.follow_requests": "Sekošanas pieprasījumi",
   "navigation_bar.follows_and_followers": "Sekojamie un sekotāji",
   "navigation_bar.lists": "Saraksti",
   "navigation_bar.logout": "Iziet",
   "navigation_bar.mutes": "Apklusinātie lietotāji",
-  "navigation_bar.personal": "Personīgi",
+  "navigation_bar.personal": "Personīgie",
   "navigation_bar.pins": "Piespraustās ziņas",
   "navigation_bar.preferences": "Iestatījumi",
-  "navigation_bar.public_timeline": "Apvienotā ziņu lenta",
+  "navigation_bar.public_timeline": "Apvienotā laika līnija",
   "navigation_bar.search": "Meklēt",
   "navigation_bar.security": "Drošība",
   "not_signed_in_indicator.not_signed_in": "Lai piekļūtu šim resursam, tev ir jāpierakstās.",
-  "notification.admin.report": "{name} ziņoja par {target}",
-  "notification.admin.sign_up": "{name} ir pierakstījies",
-  "notification.favourite": "{name} izcēla tavu ziņu",
+  "notification.admin.report": "{name} sūdzējās par {target}",
+  "notification.admin.sign_up": "{name} pierakstījās",
+  "notification.favourite": "{name} patika tava ziņa",
   "notification.follow": "{name} uzsāka tev sekot",
-  "notification.follow_request": "{name} vēlas tev sekot",
+  "notification.follow_request": "{name} nosūtīja tev sekošanas pieprasījumu",
   "notification.mention": "{name} pieminēja tevi",
-  "notification.own_poll": "Tava aptauja ir pabeigta",
-  "notification.poll": "Aprauja, kurā tu piedalījies, ir pabeigta",
+  "notification.own_poll": "Tava aptauja ir noslēgusies",
+  "notification.poll": "Aptauja, kurā tu piedalījies, ir noslēgusies",
   "notification.reblog": "{name} pastiprināja tavu ierakstu",
   "notification.status": "{name} tikko publicēja",
-  "notification.update": "{name} ir rediģējis rakstu",
+  "notification.update": "{name} rediģēja ierakstu",
   "notifications.clear": "Notīrīt paziņojumus",
   "notifications.clear_confirmation": "Vai tiešām vēlies neatgriezeniski notīrīt visus savus paziņojumus?",
-  "notifications.column_settings.admin.report": "Jauni ziņojumi:",
+  "notifications.column_settings.admin.report": "Jaunas sūdzības:",
   "notifications.column_settings.admin.sign_up": "Jaunas pierakstīšanās:",
   "notifications.column_settings.alert": "Darbvirsmas paziņojumi",
   "notifications.column_settings.favourite": "Izlases:",
@@ -406,14 +406,14 @@
   "notifications.column_settings.filter_bar.category": "Ātro filtru josla",
   "notifications.column_settings.filter_bar.show_bar": "Rādīt filtru joslu",
   "notifications.column_settings.follow": "Jauni sekotāji:",
-  "notifications.column_settings.follow_request": "Jauni sekotāju pieprasījumi:",
+  "notifications.column_settings.follow_request": "Jauni sekošanas pieprasījumi:",
   "notifications.column_settings.mention": "Pieminējumi:",
   "notifications.column_settings.poll": "Aptaujas rezultāti:",
   "notifications.column_settings.push": "Uznirstošie paziņojumi",
   "notifications.column_settings.reblog": "Pastiprinātie ieraksti:",
   "notifications.column_settings.show": "Rādīt kolonnā",
   "notifications.column_settings.sound": "Atskaņot skaņu",
-  "notifications.column_settings.status": "Jaunas ziņas:",
+  "notifications.column_settings.status": "Jauni ieraksti:",
   "notifications.column_settings.unread_notifications.category": "Nelasītie paziņojumi",
   "notifications.column_settings.unread_notifications.highlight": "Iezīmēt nelasītos paziņojumus",
   "notifications.column_settings.update": "Labojumi:",
@@ -431,19 +431,19 @@
   "notifications.permission_denied_alert": "Darbvirsmas paziņojumus nevar iespējot, jo pārlūkprogrammai atļauja tika iepriekš atteikta",
   "notifications.permission_required": "Darbvirsmas paziņojumi nav pieejami, jo nav piešķirta nepieciešamā atļauja.",
   "notifications_permission_banner.enable": "Iespējot darbvirsmas paziņojumus",
-  "notifications_permission_banner.how_to_control": "Lai saņemtu paziņojumus, kad Mastodon nav atvērts, iespējo darbvirsmas paziņojumus. Vari precīzi kontrolēt, kāda veida mijiedarbības ģenerē darbvirsmas paziņojumus, izmantojot iepriekš redzamo pogu {icon}, ja tie ir iespējoti.",
+  "notifications_permission_banner.how_to_control": "Lai saņemtu paziņojumus, kad Mastodon nav atvērts, iespējo darbvirsmas paziņojumus. Vari precīzi kontrolēt, kāda veida mijiedarbības ģenerē darbvirsmas paziņojumus, izmantojot augstāk redzamo pogu {icon}, kad tie būs iespējoti.",
   "notifications_permission_banner.title": "Nekad nepalaid neko garām",
-  "picture_in_picture.restore": "Novietot apakšā",
+  "picture_in_picture.restore": "Novietot atpakaļ",
   "poll.closed": "Pabeigta",
   "poll.refresh": "Atsvaidzināt",
-  "poll.total_people": "{count, plural, one {# persona} other {# cilvēki}}",
-  "poll.total_votes": "{count, plural, one {# balsojums} other {# balsojumi}}",
+  "poll.total_people": "{count, plural, zero {# cilvēku} one {# persona} other {# cilvēki}}",
+  "poll.total_votes": "{count, plural, zero {# balsojumu} one {# balsojums} other {# balsojumi}}",
   "poll.vote": "Balsot",
   "poll.voted": "Tu balsoji par šo atbildi",
-  "poll.votes": "{votes, plural, one {# balss} other {# balsis}}",
+  "poll.votes": "{votes, plural, zero {# balsu} one {# balss} other {# balsis}}",
   "poll_button.add_poll": "Pievienot aptauju",
   "poll_button.remove_poll": "Noņemt aptauju",
-  "privacy.change": "Mainīt ziņas privātumu",
+  "privacy.change": "Mainīt ieraksta privātumu",
   "privacy.direct.long": "Redzama tikai pieminētajiem lietotājiem",
   "privacy.direct.short": "Tikai minētie cilvēki",
   "privacy.private.long": "Redzama tikai sekotājiem",
@@ -453,7 +453,7 @@
   "privacy.unlisted.long": "Redzama visiem, bet izslēgta no satura atklāšanas funkcijām",
   "privacy.unlisted.short": "Nerindota",
   "privacy_policy.last_updated": "Pēdējo reizi atjaunināta {date}",
-  "privacy_policy.title": "Privātuma Politika",
+  "privacy_policy.title": "Privātuma politika",
   "refresh": "Atsvaidzināt",
   "regeneration_indicator.label": "Ielādē…",
   "regeneration_indicator.sublabel": "Tiek gatavota tava plūsma!",
@@ -470,63 +470,63 @@
   "relative_time.today": "šodien",
   "reply_indicator.cancel": "Atcelt",
   "report.block": "Bloķēt",
-  "report.block_explanation": "Tu neredzēsi viņu ziņas. Viņi nevarēs redzēt tavas ziņas vai sekot tev. Viņi varēs pateikt, ka ir bloķēti.",
+  "report.block_explanation": "Tu neredzēsi viņu ziņas. Viņi nevarēs redzēt tavas ziņas vai sekot tev. Viņi varēs saprast, ka ir bloķēti.",
   "report.categories.other": "Citi",
   "report.categories.spam": "Spams",
   "report.categories.violation": "Saturs pārkāpj vienu vai vairākus servera noteikumus",
   "report.category.subtitle": "Izvēlieties labāko atbilstību",
   "report.category.title": "Pastāsti mums, kas notiek ar šo {type}",
-  "report.category.title_account": "profils",
-  "report.category.title_status": "ziņa",
-  "report.close": "Izpildīts",
-  "report.comment.title": "Vai ir vēl kas, tavuprāt, mums būtu jāzina?",
+  "report.category.title_account": "profilu",
+  "report.category.title_status": "ierakstu",
+  "report.close": "Darīts",
+  "report.comment.title": "Vai, tavuprāt, mums vēl būtu kas jāzina?",
   "report.forward": "Pārsūtīt {target}",
-  "report.forward_hint": "Konts ir no cita servera. Vai nosūtīt anonimizētu ziņojuma kopiju arī tam?",
+  "report.forward_hint": "Konts ir no cita servera. Vai nosūtīt anonimizētu sūdzības kopiju arī tam?",
   "report.mute": "Apklusināt",
-  "report.mute_explanation": "Tu neredzēsi viņu ziņas. Viņi joprojām var tev sekot un redzēt tavas ziņas un nezinās, ka viņiem ir izslēgta skaņa.",
-  "report.next": "Nākamais",
+  "report.mute_explanation": "Tu neredzēsi viņu ziņas. Viņi joprojām var tev sekot un redzēt tavas ziņas un nezinās, ka viņi ir apklusināti.",
+  "report.next": "Tālāk",
   "report.placeholder": "Papildu komentāri",
   "report.reasons.dislike": "Man tas nepatīk",
   "report.reasons.dislike_description": "Tas nav kaut kas, ko tu vēlies redzēt",
   "report.reasons.other": "Tas ir kaut kas cits",
-  "report.reasons.other_description": "Šis jautājums neietilpst citās kategorijās",
+  "report.reasons.other_description": "Šī sūdzība neatbilst pārējām kategorijām",
   "report.reasons.spam": "Tas ir spams",
   "report.reasons.spam_description": "Ļaunprātīgas saites, viltus iesaistīšana vai atkārtotas atbildes",
   "report.reasons.violation": "Tas pārkāpj servera noteikumus",
-  "report.reasons.violation_description": "Tu zini, ka tas pārkāpj īpašus noteikumus",
+  "report.reasons.violation_description": "Tu zini, ka tas pārkāpj konkrētus noteikumus",
   "report.rules.subtitle": "Atlasi visus atbilstošos",
   "report.rules.title": "Kuri noteikumi tiek pārkāpti?",
   "report.statuses.subtitle": "Atlasi visus atbilstošos",
-  "report.statuses.title": "Vai ir kādas ziņas, kas atbalsta šo ziņojumu?",
+  "report.statuses.title": "Vai ir kādas ziņas, kas atbalsta šo sūdzību?",
   "report.submit": "Iesniegt",
-  "report.target": "Ziņošana par: {target}",
+  "report.target": "Sūdzība par {target}",
   "report.thanks.take_action": "Tālāk ir norādītas iespējas, kā kontrolēt Mastodon redzamo saturu:",
   "report.thanks.take_action_actionable": "Kamēr mēs to izskatām, tu vari veikt darbības pret @{name}:",
   "report.thanks.title": "Vai nevēlies to redzēt?",
   "report.thanks.title_actionable": "Paldies, ka ziņoji, mēs to izskatīsim.",
   "report.unfollow": "Pārtraukt sekošanu @{name}",
-  "report.unfollow_explanation": "Tu seko šim kontam. Lai vairs neredzētu viņu ziņas savā ziņu plūsmā, pārtrauc viņiem sekot.",
-  "report_notification.attached_statuses": "Pievienoti {count, plural,one {{count} sūtījums} other {{count} sūtījumi}}",
+  "report.unfollow_explanation": "Tu seko šim kontam. Lai vairs neredzētu viņu ziņas savā mājas plūsmā, pārtrauc viņiem sekot.",
+  "report_notification.attached_statuses": "{count, plural, zero {Pievienota {count} ierakstu} one {Pievienots {count} ieraksts} other {Pievienoti {count} ieraksti}}",
   "report_notification.categories.other": "Cita",
   "report_notification.categories.spam": "Spams",
   "report_notification.categories.violation": "Noteikumu pārkāpums",
-  "report_notification.open": "Atvērt ziņojumu",
+  "report_notification.open": "Atvērt sūdzību",
   "search.placeholder": "Meklēšana",
-  "search.search_or_paste": "Meklēt vai iekopēt URL",
+  "search.search_or_paste": "Meklē vai iekopē URL",
   "search_popout.search_format": "Paplašināts meklēšanas formāts",
-  "search_popout.tips.full_text": "Vienkāršs teksts atgriež ziņas, kuras esi rakstījis, atzīmējis kā favorītus, pastiprinājis vai pieminējis, kā arī atbilstošie lietotājvārdi, parādāmie vārdi un tēmturi.",
-  "search_popout.tips.hashtag": "mirkļbirka",
-  "search_popout.tips.status": "ziņa",
-  "search_popout.tips.text": "Vienkāršs teksts atgriež atbilstošus parādāmos vārdus, lietotājvārdus un mirkļbirkas",
+  "search_popout.tips.full_text": "Vienkāršs teksts atgriež ierakstus, kurus rakstīji, atzīmēji kā favorītus, pastiprināji vai pieminēji, kā arī atbilstošus lietotājvārdus, parādāmos vārdus un tēmturus.",
+  "search_popout.tips.hashtag": "tēmturis",
+  "search_popout.tips.status": "ieraksts",
+  "search_popout.tips.text": "Vienkāršs teksts atgriež atbilstošus parādāmos vārdus, lietotājvārdus un tēmturus",
   "search_popout.tips.user": "lietotājs",
   "search_results.accounts": "Cilvēki",
   "search_results.all": "Visi",
   "search_results.hashtags": "Tēmturi",
   "search_results.nothing_found": "Nevarēja atrast neko šiem meklēšanas vienumiem",
-  "search_results.statuses": "Ziņas",
+  "search_results.statuses": "Ieraksti",
   "search_results.statuses_fts_disabled": "Šajā Mastodon serverī nav iespējota ziņu meklēšana pēc to satura.",
   "search_results.title": "Meklēt {q}",
-  "search_results.total": "{count, number} {count, plural, one {rezultāts} other {rezultāti}}",
+  "search_results.total": "{count, number} {count, plural, zero {rezultātu} one {rezultāts} other {rezultāti}}",
   "server_banner.about_active_users": "Cilvēki, kas izmantojuši šo serveri pēdējo 30 dienu laikā (aktīvie lietotāji mēnesī)",
   "server_banner.active_users": "aktīvie lietotāji",
   "server_banner.administered_by": "Administrē:",
@@ -535,12 +535,12 @@
   "server_banner.server_stats": "Servera statistika:",
   "sign_in_banner.create_account": "Izveidot kontu",
   "sign_in_banner.sign_in": "Pierakstīties",
-  "sign_in_banner.text": "Pieraksties, lai sekotu profiliem vai atsaucēm, pievienotu izlasei, kopīgotu ziņas un atbildētu uz tām vai mijiedarbotos no sava konta citā serverī.",
+  "sign_in_banner.text": "Pieraksties, lai sekotu profiliem vai atsaucēm, pievienotu ziņas izlasei, kopīgotu ziņas un atbildētu uz tām vai mijiedarbotos no sava konta citā serverī.",
   "status.admin_account": "Atvērt @{name} moderēšanas saskarni",
   "status.admin_status": "Atvērt šo ziņu moderācijas saskarnē",
   "status.block": "Bloķēt @{name}",
   "status.bookmark": "Grāmatzīme",
-  "status.cancel_reblog_private": "Nepastiprināt",
+  "status.cancel_reblog_private": "Noņemt pastiprinājumu",
   "status.cannot_reblog": "Nevar pastiprināt šo ierakstu",
   "status.copy": "Kopēt saiti uz ziņu",
   "status.delete": "Dzēst",
@@ -548,14 +548,14 @@
   "status.direct": "Privāta ziņa @{name}",
   "status.edit": "Rediģēt",
   "status.edited": "Rediģēts {date}",
-  "status.edited_x_times": "Rediģēts {count, plural, one {{count} reize} other {{count} reizes}}",
+  "status.edited_x_times": "Rediģēts {count, plural, one {{count} reizi} other {{count} reizes}}",
   "status.embed": "Iestrādāt",
   "status.favourite": "Patīk",
   "status.filter": "Filtrē šo ziņu",
   "status.filtered": "Filtrēts",
-  "status.hide": "Slēpt",
-  "status.history.created": "{name} izveidots {date}",
-  "status.history.edited": "{name} rediģēts {date}",
+  "status.hide": "Slēpt ierakstu",
+  "status.history.created": "{name} izveidoja {date}",
+  "status.history.edited": "{name} rediģēja {date}",
   "status.load_more": "Ielādēt vairāk",
   "status.media_hidden": "Medijs ir paslēpts",
   "status.mention": "Pieminēt @{name}",
@@ -575,7 +575,7 @@
   "status.replied_to": "Atbildēja {name}",
   "status.reply": "Atbildēt",
   "status.replyAll": "Atbildēt uz tematu",
-  "status.report": "Ziņot par @{name}",
+  "status.report": "Sūdzēties par @{name}",
   "status.sensitive_warning": "Sensitīvs saturs",
   "status.share": "Kopīgot",
   "status.show_filter_reason": "Tomēr rādīt",
@@ -585,53 +585,53 @@
   "status.show_more_all": "Rādīt vairāk visiem",
   "status.show_original": "Rādīt oriģinālu",
   "status.translate": "Tulkot",
-  "status.translated_from_with": "Tulkots no {lang} izmantojot {provider}",
+  "status.translated_from_with": "Tulkots no {lang}, izmantojot {provider}",
   "status.uncached_media_warning": "Nav pieejams",
-  "status.unmute_conversation": "Atvērt sarunu",
+  "status.unmute_conversation": "Noņemt sarunas apklusinājumu",
   "status.unpin": "Noņemt no profila",
-  "subscribed_languages.lead": "Pēc izmaiņu veikšanas tavā mājas lapā un saraksta laika skalās tiks rādītas tikai ziņas atlasītajās valodās. Neatlasi nevienu, lai saņemtu ziņas visās valodās.",
+  "subscribed_languages.lead": "Pēc izmaiņu veikšanas tavā mājas un sarakstu laika līnijā tiks rādītas tikai ziņas atlasītajās valodās. Neatlasi nevienu, lai saņemtu ziņas visās valodās.",
   "subscribed_languages.save": "Saglabāt izmaiņas",
   "subscribed_languages.target": "Mainīt abonētās valodas priekš {target}",
   "suggestions.dismiss": "Noraidīt ieteikumu",
   "suggestions.header": "Jūs varētu interesēt arī…",
-  "tabs_bar.federated_timeline": "Federētā",
+  "tabs_bar.federated_timeline": "Apvienotā",
   "tabs_bar.home": "Sākums",
   "tabs_bar.local_timeline": "Vietējā",
   "tabs_bar.notifications": "Paziņojumi",
-  "time_remaining.days": "Atlikušas {number, plural, one {# diena} other {# dienas}}",
-  "time_remaining.hours": "Atlikušas {number, plural, one {# stunda} other {# stundas}}",
-  "time_remaining.minutes": "Atlikušas {number, plural, one {# minūte} other {# minūtes}}",
+  "time_remaining.days": "{number, plural, one {Atlikusi # diena} other {Atlikušas # dienas}}",
+  "time_remaining.hours": "{number, plural, one {Atlikusi # stunda} other {Atlikušas # stundas}}",
+  "time_remaining.minutes": "{number, plural, one {Atlikusi # minūte} other {Atlikušas # minūtes}}",
   "time_remaining.moments": "Atlikuši daži mirkļi",
-  "time_remaining.seconds": "Atlikušas {number, plural, one {# sekunde} other {# sekundes}}",
+  "time_remaining.seconds": "{number, plural, one {Atlikusi # sekunde} other {Atlikušas # sekundes}}",
   "timeline_hint.remote_resource_not_displayed": "{resource} no citiem serveriem nav parādīti.",
   "timeline_hint.resources.followers": "Sekotāji",
-  "timeline_hint.resources.follows": "Seko",
-  "timeline_hint.resources.statuses": "Vecākas ziņas",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} cilvēki}} par {days, plural, one {dienu} other {{days} dienām}}",
-  "trends.trending_now": "Šobrīd tendences",
-  "ui.beforeunload": "Ja pametīsit Mastodonu, jūsu melnraksts tiks zaudēts.",
-  "units.short.billion": "{count}M",
-  "units.short.million": "{count}M",
+  "timeline_hint.resources.follows": "Sekojošie",
+  "timeline_hint.resources.statuses": "Vecāki ieraksti",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} cilvēki}} par {days, plural, one {# dienu} other {{days} dienām}}",
+  "trends.trending_now": "Aktuālās tendences",
+  "ui.beforeunload": "Ja pametīsiet Mastodon, jūsu melnraksts tiks zaudēts.",
+  "units.short.billion": "{count}Mjd",
+  "units.short.million": "{count}Mjn",
   "units.short.thousand": "{count}Tk",
   "upload_area.title": "Velc un nomet, lai augšupielādētu",
   "upload_button.label": "Pievienot bildi, video vai audio datni",
   "upload_error.limit": "Sasniegts datņu augšupielādes ierobežojums.",
   "upload_error.poll": "Datņu augšupielādes aptaujās nav atļautas.",
-  "upload_form.audio_description": "Aprakstiet cilvēkiem ar dzirdes zudumu",
-  "upload_form.description": "Aprakstiet vājredzīgajiem",
+  "upload_form.audio_description": "Pievieno aprakstu cilvēkiem ar dzirdes zudumu",
+  "upload_form.description": "Pievieno aprakstu vājredzīgajiem",
   "upload_form.description_missing": "Apraksts nav pievienots",
   "upload_form.edit": "Rediģēt",
   "upload_form.thumbnail": "Nomainīt sīktēlu",
   "upload_form.undo": "Dzēst",
-  "upload_form.video_description": "Aprakstiet cilvēkiem ar dzirdes vai redzes traucējumiem",
+  "upload_form.video_description": "Pievieno aprakstu cilvēkiem ar dzirdes vai redzes traucējumiem",
   "upload_modal.analyzing_picture": "Analizē attēlu…",
-  "upload_modal.apply": "Apstiprināt",
+  "upload_modal.apply": "Pielietot",
   "upload_modal.applying": "Pielieto…",
   "upload_modal.choose_image": "Izvēlēties attēlu",
-  "upload_modal.description_placeholder": "Raibais runcis rīgā ratu rumbā rūc",
+  "upload_modal.description_placeholder": "Raibais runcis Rīgā ratu rumbā rūc",
   "upload_modal.detect_text": "Noteikt tekstu no attēla",
   "upload_modal.edit_media": "Rediģēt mediju",
-  "upload_modal.hint": "Noklikšķiniet vai velciet apli priekšskatījumā, lai izvēlētos fokusa punktu, kas vienmēr būs redzams visos sīktēlos.",
+  "upload_modal.hint": "Noklikšķini vai velc apli priekšskatījumā, lai izvēlētos fokusa punktu, kas vienmēr būs redzams visos sīktēlos.",
   "upload_modal.preparing_ocr": "Sagatavo OCR…",
   "upload_modal.preview_label": "Priekšskatīt ({ratio})",
   "upload_progress.label": "Augšupielādē...",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index 3bcd5280f..a936c8dba 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -5,9 +5,9 @@
   "about.domain_blocks.no_reason_available": "കാരണം ലഭ്യമല്",
   "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
   "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
-  "about.domain_blocks.silenced.title": "Limited",
+  "about.domain_blocks.silenced.title": "പരിമിതമായത്",
   "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
-  "about.domain_blocks.suspended.title": "Suspended",
+  "about.domain_blocks.suspended.title": "താൽക്കാലികമായി നിർത്തിവെച്ചിരിക്കുന്നു",
   "about.not_available": "This information has not been made available on this server.",
   "about.powered_by": "Decentralized social media powered by {mastodon}",
   "about.rules": "സെർവ്വർ നിയമങ്ങൾ",
@@ -33,14 +33,14 @@
   "account.followers": "പിന്തുടരുന്നവർ",
   "account.followers.empty": "ഈ ഉപയോക്താവിനെ ആരും ഇതുവരെ പിന്തുടരുന്നില്ല.",
   "account.followers_counter": "{count, plural, one {{counter} പിന്തുടരുന്നവർ} other {{counter} പിന്തുടരുന്നവർ}}",
-  "account.following": "Following",
+  "account.following": "പിന്തുടരുന്നു",
   "account.following_counter": "{count, plural, one {{counter} പിന്തുടരുന്നു} other {{counter} പിന്തുടരുന്നു}}",
   "account.follows.empty": "ഈ ഉപയോക്താവ് ആരേയും ഇതുവരെ പിന്തുടരുന്നില്ല.",
   "account.follows_you": "നിങ്ങളെ പിന്തുടരുന്നു",
-  "account.go_to_profile": "Go to profile",
+  "account.go_to_profile": "പ്രൊഫൈലിലേക്ക് പോകാം",
   "account.hide_reblogs": "@{name} ബൂസ്റ്റ് ചെയ്തവ മറയ്കുക",
-  "account.joined_short": "Joined",
-  "account.languages": "Change subscribed languages",
+  "account.joined_short": "ജോയിൻ ചെയ്‌തിരിക്കുന്നു",
+  "account.languages": "സബ്‌സ്‌ക്രൈബ് ചെയ്‌ത ഭാഷകൾ മാറ്റുക",
   "account.link_verified_on": "ഈ ലിങ്കിന്റെ ഉടമസ്തത {date} ഇൽ ഉറപ്പാക്കിയതാണ്",
   "account.locked_info": "ഈ അംഗത്വത്തിന്റെ സ്വകാര്യതാ നിലപാട് അനുസരിച്ച് പിന്തുടരുന്നവരെ തിരഞ്ഞെടുക്കാനുള്ള വിവേചനാധികാരം ഉടമസ്ഥനിൽ നിഷിപ്തമായിരിക്കുന്നു.",
   "account.media": "മീഡിയ",
@@ -59,12 +59,12 @@
   "account.statuses_counter": "{count, plural, one {{counter} ടൂട്ട്} other {{counter} ടൂട്ടുകൾ}}",
   "account.unblock": "@{name} തടഞ്ഞത് മാറ്റുക",
   "account.unblock_domain": "{domain} എന്ന മേഖല വെളിപ്പെടുത്തുക",
-  "account.unblock_short": "Unblock",
+  "account.unblock_short": "അൺബ്ലോക്കു ചെയ്യുക",
   "account.unendorse": "പ്രൊഫൈലിൽ പ്രകടമാക്കരുത്",
   "account.unfollow": "പിന്തുടരുന്നത് നിര്‍ത്തുക",
   "account.unmute": "നിശ്ശബ്ദമാക്കുന്നത് നിർത്തുക @{name}",
   "account.unmute_notifications": "@{name} യിൽ നിന്നുള്ള അറിയിപ്പുകൾ പ്രസിദ്ധപ്പെടുത്തുക",
-  "account.unmute_short": "Unmute",
+  "account.unmute_short": "അൺമ്യൂട്ട് ചെയ്യുക",
   "account_note.placeholder": "കുറിപ്പ് ചേർക്കാൻ ക്ലിക്കുചെയ്യുക",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
@@ -76,8 +76,8 @@
   "alert.unexpected.message": "അപ്രതീക്ഷിതമായി എന്തോ സംഭവിച്ചു.",
   "alert.unexpected.title": "ശ്ശോ!",
   "announcement.announcement": "അറിയിപ്പ്",
-  "attachments_list.unprocessed": "(unprocessed)",
-  "audio.hide": "Hide audio",
+  "attachments_list.unprocessed": "(പ്രോസസ്സ് ചെയ്യാത്തത്)",
+  "audio.hide": "ശബ്ദം ഒഴിവാക്കുക",
   "autosuggest_hashtag.per_week": "ആഴ്ച തോറും {count}",
   "boost_modal.combo": "അടുത്ത തവണ ഇത് ഒഴിവാക്കുവാൻ {combo} ഞെക്കാവുന്നതാണ്",
   "bundle_column_error.copy_stacktrace": "Copy error report",
@@ -92,9 +92,9 @@
   "bundle_modal_error.close": "അടയ്ക്കുക",
   "bundle_modal_error.message": "ഈ വെബ്പേജ് പ്രദർശിപ്പിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു.",
   "bundle_modal_error.retry": "വീണ്ടും ശ്രമിക്കുക",
-  "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
-  "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
-  "closed_registrations_modal.find_another_server": "Find another server",
+  "closed_registrations.other_server_instructions": "Mastodon വികേന്ദ്രീകൃത സംവിധാനം ആയതിനാൽ, നിങ്ങൾക്ക് മറ്റൊരു സെർവറിൽ ഒരു അക്കൗണ്ട് ഉണ്ടാക്കിയും ഇതുമായി ആശയവിനിമയം നടത്താൻ സാധിക്കുന്നതാണ്.",
+  "closed_registrations_modal.description": "{domain} ഇൽ ഇപ്പോൾ അക്കൗണ്ട് ഉണ്ടാക്കാൻ സാധിക്കുന്നതല്ല, Mastodon ഉപയോഗിക്കുന്നതിനായി നിങ്ങൾക്ക് {domain}-ൽ പ്രത്യേകമായി ഒരു അക്കൗണ്ട് ആവശ്യമില്ല എന്നത് ദയവായി ഓർക്കുക.",
+  "closed_registrations_modal.find_another_server": "മറ്റൊരു സെർവർ കണ്ടെത്തുക",
   "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
   "closed_registrations_modal.title": "Signing up on Mastodon",
   "column.about": "അപ്ലിക്കേഷനെക്കുറിച്ച്",
@@ -124,9 +124,9 @@
   "community.column_settings.media_only": "മാധ്യമങ്ങൾ മാത്രം",
   "community.column_settings.remote_only": "Remote only",
   "compose.language.change": "ഭാഷ മാറ്റുക",
-  "compose.language.search": "Search languages...",
+  "compose.language.search": "ഭാഷകൾ തിരയുക...",
   "compose_form.direct_message_warning_learn_more": "കൂടുതൽ പഠിക്കുക",
-  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
+  "compose_form.encryption_warning": "Mastodon-ലെ പോസ്റ്റുകൾ എൻഡ്-ടു-എൻഡ് എൻക്രിപ്റ്റ് ചെയ്തവയല്ല. അതിനാൽ Mastodon-ൽ പ്രധാനപ്പെട്ട വിവരങ്ങളൊന്നും പങ്കിടരുത്.",
   "compose_form.hashtag_warning": "ഈ ടൂട്ട് പട്ടികയിൽ ഇല്ലാത്തതിനാൽ ഒരു ചർച്ചാവിഷയത്തിന്റെ പട്ടികയിലും പെടുകയില്ല. പരസ്യമായ ടൂട്ടുകൾ മാത്രമേ ചർച്ചാവിഷയം അടിസ്ഥാനമാക്കി തിരയുവാൻ സാധിക്കുകയുള്ളു.",
   "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
   "compose_form.lock_disclaimer.lock": "ലോക്കുചെയ്തു",
@@ -176,14 +176,14 @@
   "conversation.mark_as_read": "വായിച്ചതായി അടയാളപ്പെടുത്തുക",
   "conversation.open": "സംഭാഷണം കാണുക",
   "conversation.with": "{names} കൂടെ",
-  "copypaste.copied": "Copied",
-  "copypaste.copy": "Copy",
+  "copypaste.copied": "പകർത്തി",
+  "copypaste.copy": "പകര്‍ത്തുക",
   "directory.federated": "അറിയപ്പെടുന്ന ഫെഡിവേഴ്‌സ്ൽ നിന്ന്",
   "directory.local": "{domain} ൽ നിന്ന് മാത്രം",
   "directory.new_arrivals": "പുതിയ വരവുകൾ",
   "directory.recently_active": "അടുത്തിടെയായി സജീവമായ",
   "disabled_account_banner.account_settings": "Account settings",
-  "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
+  "disabled_account_banner.text": "നിങ്ങളുടെ {disabledAccount} എന്ന അക്കൗണ്ട് ഇപ്പോൾ പ്രവർത്തനരഹിതമാണ്.",
   "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
   "dismissable_banner.dismiss": "Dismiss",
   "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
@@ -222,10 +222,10 @@
   "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
   "empty_column.hashtag": "ഈ ഹാഷ്‌ടാഗിൽ ഇതുവരെ ഒന്നുമില്ല.",
   "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
-  "empty_column.home.suggestions": "See some suggestions",
+  "empty_column.home.suggestions": "ചില നിർദ്ദേശങ്ങൾ കാണുക",
   "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
   "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.mutes": "നിങ്ങൾ ഇതുവരെ ഒരു ഉപയോക്താക്കളെയും തടഞ്ഞിട്ടില്ല.",
   "empty_column.notifications": "നിങ്ങൾക്ക് ഇതുവരെ ഒരു അറിയിപ്പുകളും ഇല്ല. മറ്റുള്ളവരുമായി ഇടപെട്ട് സംഭാഷണത്തിന് തുടക്കം കുറിക്കു.",
   "empty_column.public": "ഇവിടെ ഒന്നുമില്ലല്ലോ! ഇവിടെ നിറയ്ക്കാൻ എന്തെങ്കിലും പരസ്യമായി എഴുതുകയോ മറ്റ് ഉപഭോക്താക്കളെ പിന്തുടരുകയോ ചെയ്യുക",
   "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
@@ -235,7 +235,7 @@
   "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
   "errors.unexpected_crash.report_issue": "പ്രശ്നം അറിയിക്കുക",
   "explore.search_results": "Search results",
-  "explore.title": "Explore",
+  "explore.title": "പര്യവേക്ഷണം നടത്തുക",
   "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
   "filter_modal.added.context_mismatch_title": "Context mismatch!",
   "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
@@ -247,7 +247,7 @@
   "filter_modal.added.title": "Filter added!",
   "filter_modal.select_filter.context_mismatch": "does not apply to this context",
   "filter_modal.select_filter.expired": "expired",
-  "filter_modal.select_filter.prompt_new": "New category: {name}",
+  "filter_modal.select_filter.prompt_new": "പുതിയ വിഭാഗം: {name}",
   "filter_modal.select_filter.search": "Search or create",
   "filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
   "filter_modal.select_filter.title": "Filter this post",
@@ -288,7 +288,7 @@
   "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
   "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
   "interaction_modal.on_another_server": "On a different server",
-  "interaction_modal.on_this_server": "On this server",
+  "interaction_modal.on_this_server": "ഈ സെർവറീൽ",
   "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
   "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
   "interaction_modal.title.favourite": "Favourite {name}'s post",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 528726c13..e3dcf46a1 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -1,15 +1,15 @@
 {
-  "about.blocks": "Pelayan yang dimoderasi",
+  "about.blocks": "Pelayan yang disederhanakan",
   "about.contact": "Hubungi:",
   "about.disclaimer": "Mastodon ialah perisian sumber terbuka percuma, dan merupakan tanda dagangan Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Sebab tidak tersedia",
   "about.domain_blocks.preamble": "Secara amnya, Mastodon membenarkan anda melihat kandungan daripada dan berinteraksi dengan pengguna daripada mana-mana pelayan dalam dunia persekutuan. Berikut ialah pengecualian yang telah dibuat pada pelayan ini secara khususnya.",
   "about.domain_blocks.silenced.explanation": "Secara amnya, anda tidak akan melihat profil dan kandungan daripada pelayan ini, kecuali anda mencarinya secara khusus atau ikut serta dengan mengikutinya.",
   "about.domain_blocks.silenced.title": "Terhad",
-  "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
-  "about.domain_blocks.suspended.title": "Digantungkan",
+  "about.domain_blocks.suspended.explanation": "Tiada data daripada pelayan ini yang akan diproses, disimpan atau ditukar, menjadikan sebarang interaksi atau perhubungan dengan pengguna daripada pelayan ini adalah mustahil.",
+  "about.domain_blocks.suspended.title": "Digantung",
   "about.not_available": "Maklumat ini belum tersedia pada pelayan ini.",
-  "about.powered_by": "Media sosial terpencar dikuasakan oleh {mastodon}",
+  "about.powered_by": "Media sosial terpencar yang dikuasakan oleh {mastodon}",
   "about.rules": "Peraturan pelayan",
   "account.account_note_header": "Catatan",
   "account.add_or_remove_from_list": "Tambah atau Buang dari senarai",
@@ -21,25 +21,25 @@
   "account.browse_more_on_origin_server": "Layari selebihnya di profil asal",
   "account.cancel_follow_request": "Menarik balik permintaan mengikut",
   "account.direct": "Mesej terus @{name}",
-  "account.disable_notifications": "Berhenti memaklumi saya apabila @{name} mengirim hantaran",
+  "account.disable_notifications": "Berhenti maklumkan saya apabila @{name} mengirim hantaran",
   "account.domain_blocked": "Domain disekat",
   "account.edit_profile": "Sunting profil",
   "account.enable_notifications": "Maklumi saya apabila @{name} mengirim hantaran",
   "account.endorse": "Tampilkan di profil",
   "account.featured_tags.last_status_at": "Hantaran terakhir pada {date}",
   "account.featured_tags.last_status_never": "Tiada hantaran",
-  "account.featured_tags.title": "Tanda pagar terpilih {name}",
+  "account.featured_tags.title": "Tanda pagar pilihan {name}",
   "account.follow": "Ikuti",
   "account.followers": "Pengikut",
   "account.followers.empty": "Belum ada yang mengikuti pengguna ini.",
   "account.followers_counter": "{count, plural, one {{counter} Pengikut} other {{counter} Pengikut}}",
-  "account.following": "Following",
+  "account.following": "Mengikuti",
   "account.following_counter": "{count, plural, one {{counter} Diikuti} other {{counter} Diikuti}}",
   "account.follows.empty": "Pengguna ini belum mengikuti sesiapa.",
   "account.follows_you": "Mengikuti anda",
   "account.go_to_profile": "Pergi ke profil",
   "account.hide_reblogs": "Sembunyikan galakan daripada @{name}",
-  "account.joined_short": "Joined",
+  "account.joined_short": "Menyertai",
   "account.languages": "Tukar bahasa yang dilanggan",
   "account.link_verified_on": "Pemilikan pautan ini telah disemak pada {date}",
   "account.locked_info": "Status privasi akaun ini dikunci. Pemiliknya menyaring sendiri siapa yang boleh mengikutinya.",
@@ -53,10 +53,10 @@
   "account.posts": "Hantaran",
   "account.posts_with_replies": "Hantaran dan balasan",
   "account.report": "Laporkan @{name}",
-  "account.requested": "Menunggu kelulusan. Klik untuk batalkan permintaan ikutan",
+  "account.requested": "Menunggu kelulusan. Klik untuk batalkan permintaan ikut",
   "account.share": "Kongsi profil @{name}",
   "account.show_reblogs": "Tunjukkan galakan daripada @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Hantaran} other {{counter} Hantaran}}",
+  "account.statuses_counter": "{count, plural, other {{counter} kiriman}}",
   "account.unblock": "Nyahsekat @{name}",
   "account.unblock_domain": "Nyahsekat domain {domain}",
   "account.unblock_short": "Nyahsekat",
@@ -64,12 +64,12 @@
   "account.unfollow": "Nyahikut",
   "account.unmute": "Nyahbisukan @{name}",
   "account.unmute_notifications": "Nyahbisukan pemberitahuan daripada @{name}",
-  "account.unmute_short": "Buka suara",
-  "account_note.placeholder": "Klik untuk tambah catatan",
-  "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
-  "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
+  "account.unmute_short": "Nyahbisu",
+  "account_note.placeholder": "Klik untuk menambah catatan",
+  "admin.dashboard.daily_retention": "Kadar pengekalan pengguna mengikut hari selepas mendaftar",
+  "admin.dashboard.monthly_retention": "Kadar pengekalan pengguna mengikut bulan selepas mendaftar",
   "admin.dashboard.retention.average": "Purata",
-  "admin.dashboard.retention.cohort": "Sign-up month",
+  "admin.dashboard.retention.cohort": "Bulan pendaftaran",
   "admin.dashboard.retention.cohort_size": "Pengguna baru",
   "alert.rate_limited.message": "Sila cuba semula selepas {retry_time, time, medium}.",
   "alert.rate_limited.title": "Kadar terhad",
@@ -83,7 +83,7 @@
   "bundle_column_error.copy_stacktrace": "Salin laporan ralat",
   "bundle_column_error.error.body": "Halaman yang diminta gagal dipaparkan. Ini mungkin disebabkan oleh pepijat dalam kod kami, atau masalah keserasian pelayar.",
   "bundle_column_error.error.title": "Alamak!",
-  "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
+  "bundle_column_error.network.body": "Terdapat suatu ralat apabila cuba memuatkan halaman ini. Keadaan ini mungkin berlaku disebabkan oleh masalah pada sambungan internet anda atau pelayan ini.",
   "bundle_column_error.network.title": "Ralat rangkaian",
   "bundle_column_error.retry": "Cuba lagi",
   "bundle_column_error.return": "Kembali ke halaman utama",
@@ -158,7 +158,7 @@
   "confirmations.delete_list.confirm": "Padam",
   "confirmations.delete_list.message": "Adakah anda pasti anda ingin memadam senarai ini secara kekal?",
   "confirmations.discard_edit_media.confirm": "Singkir",
-  "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
+  "confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?",
   "confirmations.domain_block.confirm": "Sekat keseluruhan domain",
   "confirmations.domain_block.message": "Adakah anda betul-betul, sungguh-sungguh pasti anda ingin menyekat keseluruhan {domain}? Selalunya, beberapa sekatan atau pembisuan tersasar sudah memadai dan lebih diutamakan. Anda tidak akan nampak kandungan daripada domain tersebut di mana-mana garis masa awam mahupun pemberitahuan anda. Pengikut anda daripada domain tersebut juga akan dibuang.",
   "confirmations.logout.confirm": "Log keluar",
@@ -440,7 +440,7 @@
   "poll.total_votes": "{count, plural, other {# undian}}",
   "poll.vote": "Undi",
   "poll.voted": "Anda mengundi jawapan ini",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, other {# undi}}",
   "poll_button.add_poll": "Tambah undian",
   "poll_button.remove_poll": "Buang undian",
   "privacy.change": "Ubah privasi hantaran",
@@ -458,11 +458,11 @@
   "regeneration_indicator.label": "Memuatkan…",
   "regeneration_indicator.sublabel": "Suapan rumah anda sedang disediakan!",
   "relative_time.days": "{number}h",
-  "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
-  "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
+  "relative_time.full.days": "{number, plural, other {# hari}} yang lalu",
+  "relative_time.full.hours": "{number, plural, other {# jam}} yang lalu",
   "relative_time.full.just_now": "sebentar tadi",
-  "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
+  "relative_time.full.minutes": "{number, plural, other {# minit}} yang lalu",
+  "relative_time.full.seconds": "{number, plural, other {# saat}} yang lalu",
   "relative_time.hours": "{number}j",
   "relative_time.just_now": "sekarang",
   "relative_time.minutes": "{number}m",
@@ -491,7 +491,7 @@
   "report.reasons.other": "Inilah sesuatu yang lain",
   "report.reasons.other_description": "Isu ini tidak sesuai untuk kategori lain",
   "report.reasons.spam": "Inilah spam",
-  "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
+  "report.reasons.spam_description": "Pautan berbahaya, keterlibatan palsu atau balasan berulang",
   "report.reasons.violation": "Ini melanggar peraturan pelayan",
   "report.reasons.violation_description": "Anda menyedari bahawa ini melanggar peraturan yang tertentu",
   "report.rules.subtitle": "Pilih semua yang berkenaan",
@@ -506,7 +506,7 @@
   "report.thanks.title_actionable": "Terima kasih untuk laporan anda, kami akan menyemaknya.",
   "report.unfollow": "Nyahikut @{name}",
   "report.unfollow_explanation": "Anda sedang mengikuti akaun ini. Untuk memadam siaran mereka daripada suapan berita anda, nyahikutkan mereka.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
+  "report_notification.attached_statuses": "{count, plural, other {{count} hantaran}} dilampirkan",
   "report_notification.categories.other": "Lain-lain",
   "report_notification.categories.spam": "Spam",
   "report_notification.categories.violation": "Langgaran peraturan",
@@ -548,7 +548,7 @@
   "status.direct": "Mesej terus @{name}",
   "status.edit": "Sunting",
   "status.edited": "Disunting {date}",
-  "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
+  "status.edited_x_times": "Disunting {count, plural, other {{count} kali}}",
   "status.embed": "Benaman",
   "status.favourite": "Kegemaran",
   "status.filter": "Tapiskan hantaran ini",
@@ -607,7 +607,7 @@
   "timeline_hint.resources.followers": "Pengikut",
   "timeline_hint.resources.follows": "Ikutan",
   "timeline_hint.resources.statuses": "Hantaran lebih lama",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
+  "trends.counter_by_accounts": "{count, plural, other {{counter} orang}} dalam {days, plural, other {{days} hari}} yang lalu",
   "trends.trending_now": "Sohor kini",
   "ui.beforeunload": "Rangka anda akan terhapus jika anda meninggalkan Mastodon.",
   "units.short.billion": "{count}B",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index ac76f1b82..446e0cd22 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -126,7 +126,7 @@
   "compose.language.change": "Cambiar de lenga",
   "compose.language.search": "Recercar de lengas...",
   "compose_form.direct_message_warning_learn_more": "Ne saber mai",
-  "compose_form.encryption_warning": "Las pubicacions sus Mastodon son pas chifradas del cap a la fin. Partegetz pas d’informacions sensiblas sus Mastodon.",
+  "compose_form.encryption_warning": "Las publicacions sus Mastodon son pas chifradas del cap a la fin. Partegetz pas d’informacions sensiblas sus Mastodon.",
   "compose_form.hashtag_warning": "Aqueste tut serà pas ligat a cap d’etiqueta estant qu’es pas listat. Òm pòt pas cercar que los tuts publics per etiqueta.",
   "compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo mond pòt vos sègre e veire los estatuts reservats als seguidors.",
   "compose_form.lock_disclaimer.lock": "clavat",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 4a4c2f159..69ab4fb9b 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -236,7 +236,7 @@
   "errors.unexpected_crash.report_issue": "Raportează o problemă",
   "explore.search_results": "Rezultatele căutării",
   "explore.title": "Explorează",
-  "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
+  "filter_modal.added.context_mismatch_explanation": "Această categorie de filtre nu se aplică în contextul în care ați accesat acestă postare. Dacă doriți ca postarea să fie filtrată și în acest context, va trebui să editați filtrul.",
   "filter_modal.added.context_mismatch_title": "Nepotrivire contextuală!",
   "filter_modal.added.expired_explanation": "Această categorie de filtre a expirat, va trebui să modifici data de expirare pentru ca aceasta să se aplice.",
   "filter_modal.added.expired_title": "Filtru expirat!",
@@ -450,7 +450,7 @@
   "privacy.private.short": "Doar abonați",
   "privacy.public.long": "Vizibil pentru toți",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Vizibil pentru toți dar fără funcții de descoperire",
   "privacy.unlisted.short": "Nelistat",
   "privacy_policy.last_updated": "Ultima actualizare în data de {date}",
   "privacy_policy.title": "Politică de confidențialitate",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 011c2d9ba..506622e7f 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -607,7 +607,7 @@
   "timeline_hint.resources.followers": "подписчиков",
   "timeline_hint.resources.follows": "подписки",
   "timeline_hint.resources.statuses": "прошлые посты",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} человек} few {{counter} человека} many {{counter} человек} other {{counter} человека}} на протяжении {days, plural, =1 {последнего дня} one {последнего {days} дня} few {последних {days} дней} many {последних {days} дней} other {последних {days} дней}}",
+  "trends.counter_by_accounts": "{count, plural, few {{counter} человека} other {{counter} человек}} за {days, plural, one {последний день} few {последние {days} дня} other {последние {days} дней}}",
   "trends.trending_now": "Самое актуальное",
   "ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.",
   "units.short.billion": "{count} млрд",
diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json
index ae464a50f..deb2aca76 100644
--- a/app/javascript/mastodon/locales/sco.json
+++ b/app/javascript/mastodon/locales/sco.json
@@ -3,10 +3,10 @@
   "about.contact": "Contack:",
   "about.disclaimer": "Mastodon is free, open-soorced saftware, an a trademairk o Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Raison no available",
-  "about.domain_blocks.preamble": "Mastodon generally alloos ye tae view content fae an interact wi uisers fae onie ither server in the fediverse.",
-  "about.domain_blocks.silenced.explanation": "Ye'll generally no see profiles an content fae this server, unless ye explicitly luik it up or opt intae it bi follaein.",
+  "about.domain_blocks.preamble": "On the hail, Mastodon lats ye view content frae an interack wi uisers fae onie ither server in the fediverse.",
+  "about.domain_blocks.silenced.explanation": "Ye'll generally no see profiles an content frae this server, unless ye explicitly luik it up or opt intae it bi follaein.",
   "about.domain_blocks.silenced.title": "Limitit",
-  "about.domain_blocks.suspended.explanation": "Nae data fae this server wull bi processed, stored or exchynged, makkin onie interaction or communication wi uisers fae this server no possible.",
+  "about.domain_blocks.suspended.explanation": "Nae data frae this server wull bi processed, stored or exchynged, makkin onie interaction or communication wi uisers frae this server no possible.",
   "about.domain_blocks.suspended.title": "Suspendit",
   "about.not_available": "This information haesnae been made available on this server.",
   "about.powered_by": "Decentralised social media pooert bi {mastodon}",
@@ -15,15 +15,15 @@
   "account.add_or_remove_from_list": "Add or Remuive frae lists",
   "account.badges.bot": "Bot",
   "account.badges.group": "Group",
-  "account.block": "Block @{name}",
-  "account.block_domain": "Block domain {domain}",
-  "account.blocked": "Blockit",
-  "account.browse_more_on_origin_server": "Brouse mair oan the oreeginal profile",
+  "account.block": "Dingie @{name}",
+  "account.block_domain": "Dingie domain {domain}",
+  "account.blocked": "Dingied",
+  "account.browse_more_on_origin_server": "Luik mair oan the oreeginal profile",
   "account.cancel_follow_request": "Resile follae requeest",
-  "account.direct": "Direct message @{name}",
+  "account.direct": "Direck message @{name}",
   "account.disable_notifications": "Stap notifyin me whan @{name} posts",
-  "account.domain_blocked": "Domain blockit",
-  "account.edit_profile": "Eedit profile",
+  "account.domain_blocked": "Domain dingied",
+  "account.edit_profile": "Edit profile",
   "account.enable_notifications": "Notify me whan @{name} posts",
   "account.endorse": "Shaw oan profile",
   "account.featured_tags.last_status_at": "Last post oan {date}",
@@ -31,13 +31,13 @@
   "account.featured_tags.title": "{name}'s hielichtit hashtags",
   "account.follow": "Follae",
   "account.followers": "Follaers",
-  "account.followers.empty": "Naebdy follaes this uiser yet.",
+  "account.followers.empty": "Naebody follaes this uiser yit.",
   "account.followers_counter": "{count, plural, one {{counter} Follaer} other {{counter} Follaers}}",
   "account.following": "Follaein",
   "account.following_counter": "{count, plural, one {{counter} Follaein} other {{counter} Follaein}}",
   "account.follows.empty": "This uiser disnae follae oniebody yit.",
   "account.follows_you": "Follaes ye",
-  "account.go_to_profile": "Gan tae profile",
+  "account.go_to_profile": "Gang tae profile",
   "account.hide_reblogs": "Dinnae shaw heezes fae @{name}",
   "account.joined_short": "Jynt",
   "account.languages": "Chynge subscribed leids",
@@ -47,7 +47,7 @@
   "account.mention": "Menshie@{name}",
   "account.moved_to": "{name} haes sayed thit their new accoont is noo:",
   "account.mute": "Wheesht@{name}",
-  "account.mute_notifications": "Wheesht notifications fae @{name}",
+  "account.mute_notifications": "Wheesht notifications frae @{name}",
   "account.muted": "Whesht",
   "account.open_original_page": "Open the furst page",
   "account.posts": "Posts",
@@ -55,7 +55,7 @@
   "account.report": "Clype @{name}",
   "account.requested": "Haudin fir approval. Chap tae cancel follae request",
   "account.share": "Share @{name}'s profile",
-  "account.show_reblogs": "Shaw boosts fae @{name}",
+  "account.show_reblogs": "Shaw heezes frae @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}",
   "account.unblock": "Undingie @{name}",
   "account.unblock_domain": "Undingie domain {domain}",
@@ -63,22 +63,22 @@
   "account.unendorse": "Dinnae pit on profile",
   "account.unfollow": "Unfollae",
   "account.unmute": "Unwheesht @{name}",
-  "account.unmute_notifications": "Unwheesht notes fae @{name}",
+  "account.unmute_notifications": "Unwheesht notes frae @{name}",
   "account.unmute_short": "Unwheesht",
   "account_note.placeholder": "Chap tae eik note",
   "admin.dashboard.daily_retention": "Uiser retention rate bi day efter signin-up",
-  "admin.dashboard.monthly_retention": "Uiser restention rate bi month efter signin-up",
+  "admin.dashboard.monthly_retention": "Uiser retention rate bi month efter signin-up",
   "admin.dashboard.retention.average": "Average",
   "admin.dashboard.retention.cohort": "Signin-up month",
   "admin.dashboard.retention.cohort_size": "New uisers",
   "alert.rate_limited.message": "Please hae anither shot efter {retry_time, time, medium}.",
   "alert.rate_limited.title": "Rate limitit",
   "alert.unexpected.message": "A error thit wisnae expectit happent.",
-  "alert.unexpected.title": "Crivens!",
+  "alert.unexpected.title": "Crivvens!",
   "announcement.announcement": "Annooncement",
   "attachments_list.unprocessed": "(No processed)",
   "audio.hide": "Stow audio",
-  "autosuggest_hashtag.per_week": "{count} per week",
+  "autosuggest_hashtag.per_week": "{count} a week",
   "boost_modal.combo": "Ye kin chap {combo} tae dingie this neist tim",
   "bundle_column_error.copy_stacktrace": "Copy error report",
   "bundle_column_error.error.body": "The requestit page cuidnae be rennert. Hit cuid be doon tae a bug in wir code, or a brooser compatability issue.",
@@ -95,7 +95,7 @@
   "closed_registrations.other_server_instructions": "Seein Mastodon is decentralized ye kin mak a accoont on anither server an stull interact wi this ane.",
   "closed_registrations_modal.description": "Makkin a accoont on {domain} isnae possible the noo, but mind ye dinnae need a accoont on {domain} specific for tae uise Mastodon.",
   "closed_registrations_modal.find_another_server": "Fin anither server",
-  "closed_registrations_modal.preamble": "Mastodon is decentralized, sae nae maitter whaur ye mak yer accoont, ye'll be able tae follae an interact wi oniebody on this server. Ye kin even sel-host it!",
+  "closed_registrations_modal.preamble": "Mastodon is decentralized, sae nae maitter whaur ye mak yer accoont, ye'll can follae an interack wi oniebody on this server. Ye kin even sel-host it!",
   "closed_registrations_modal.title": "Signin up on Mastodon",
   "column.about": "Aboot",
   "column.blocks": "Dingied uisers",
@@ -115,7 +115,7 @@
   "column_back_button.label": "Back",
   "column_header.hide_settings": "Hide settins",
   "column_header.moveLeft_settings": "Shift column tae the left",
-  "column_header.moveRight_settings": "Shift coloumn tae the richt",
+  "column_header.moveRight_settings": "Shift column tae the richt",
   "column_header.pin": "Preen",
   "column_header.show_settings": "Shaw settins",
   "column_header.unpin": "Unpreen",
@@ -126,9 +126,9 @@
   "compose.language.change": "Chynge Leid",
   "compose.language.search": "Seirch leids...",
   "compose_form.direct_message_warning_learn_more": "Lairn mair",
-  "compose_form.encryption_warning": "Posts on Mastodon urnae en-tae-en encryptit. Dinnae share onie sensitive information ower Mastodon.",
+  "compose_form.encryption_warning": "Posts on Mastodon isnae en-tae-en encryptit. Dinnae share onie sensitive information ower Mastodon.",
   "compose_form.hashtag_warning": "This post wulnae be listit unner onie hashtag seein it is no listit. Ainly public posts kin be seirchit oot bi hashtag.",
-  "compose_form.lock_disclaimer": "Yer accoont isnae {locked}. Awbody kin follae ye folir tae luik at yer follaer-ainly posts.",
+  "compose_form.lock_disclaimer": "Yer accoont isnae {locked}. Awbody kin follae ye for tae luik at yer follaer-ainly posts.",
   "compose_form.lock_disclaimer.lock": "lockit",
   "compose_form.placeholder": "Whit's on yer mind?",
   "compose_form.poll.add_option": "Pit in a chyce",
@@ -167,11 +167,11 @@
   "confirmations.mute.explanation": "This'll hide posts fae them an posts mentionin them, but it'll stull alloo them tae see yer posts an follae ye.",
   "confirmations.mute.message": "Ye sure thit ye'r wantin tae wheesht {name}?",
   "confirmations.redraft.confirm": "Delete an stert anew",
-  "confirmations.redraft.message": "Ye sure thit ye'r wantin tae delete this post an stert again? Favourites an boosts'll be lost, an the replies tae the original post'll be orphant.",
+  "confirmations.redraft.message": "Ye shuir thit ye'r wantin tae delete this post an stert again? Favourites an boosts'll be lost, an the replies tae the original post'll be orphant.",
   "confirmations.reply.confirm": "Reply",
   "confirmations.reply.message": "Replyin noo'll owerwrite the message ye'r screivin the noo. Ur ye sure thit ye'r wantin tae dae that?",
   "confirmations.unfollow.confirm": "Unfollae",
-  "confirmations.unfollow.message": "Ye sure thit ye'r wantin tae unfollae {name}?",
+  "confirmations.unfollow.message": "Ye shuir thit ye'r wantin tae unfollae {name}?",
   "conversation.delete": "Delete the conversation",
   "conversation.mark_as_read": "Mairk as seen",
   "conversation.open": "Luik at conversation",
@@ -184,7 +184,7 @@
   "directory.recently_active": "Active recent",
   "disabled_account_banner.account_settings": "Accoont settins",
   "disabled_account_banner.text": "Yer accoont {disabledAccount} is disabilt the noo.",
-  "dismissable_banner.community_timeline": "Here the maist recent public posts fae fowk thit's accoonts ur hostit bi {domain}.",
+  "dismissable_banner.community_timeline": "Here the maist recent public posts fae fowk thit's accoonts is hostit bi {domain}.",
   "dismissable_banner.dismiss": "Pit awa",
   "dismissable_banner.explore_links": "Thir news stories is bein talked aboot bi fowk on this an ither servers o the decentralized netwirk richt noo.",
   "dismissable_banner.explore_statuses": "Thir posts fae this an ither servers in this decentralized netwirk ur gainin traction on this server richt noo.",
@@ -226,12 +226,12 @@
   "empty_column.list": "There naethin in this list yit. Whan memmers o this list publish new posts, ye'll see them here.",
   "empty_column.lists": "Ye dinnae hae onie lists yit. Ance ye mak ane, it'll shaw up here.",
   "empty_column.mutes": "Ye'v no wheesht onie uisers yit.",
-  "empty_column.notifications": "Ye dinnae hae onie notes yit. Whan ither fowk interack wi ye, ye'll see it here.",
+  "empty_column.notifications": "Ye dinnae hae onie notes yit. Whan ither fowk interacks wi ye, ye'll see it here.",
   "empty_column.public": "There naethin here! Scrieve socht public, or follae uisers fae ither servers fir tae full it up",
   "error.unexpected_crash.explanation": "Doon tae a bug in wir code or a brooser compatibility maitter, this page cuidnae get displayed richt.",
   "error.unexpected_crash.explanation_addons": "This page cannae be displayit richt. This error is maist lik tae be doon tae a brooser add-on or autimatic owersettin tools.",
   "error.unexpected_crash.next_steps": "Gie refreshin the page a shot. Gin thon disnae help ye, ye kin mibbie stull be able tae uise Mastodon throu anither brooser or native app.",
-  "error.unexpected_crash.next_steps_addons": "Try oot pittin them aff an rejiggin the page. Gin thonndisnae wirk, ye kin mibbie be able tae uise Mastodon on a different brooser or native app.",
+  "error.unexpected_crash.next_steps_addons": "Try oot pittin them aff an rejiggin the page. Gin thon disnae wirk, ye kin mibbie uise Mastodon on a different brooser or native app.",
   "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace tae yer clipboord",
   "errors.unexpected_crash.report_issue": "Sen in a issue",
   "explore.search_results": "Seirch finnins",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 7b026e4d5..2dc44367d 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -158,7 +158,7 @@
   "confirmations.delete_list.confirm": "Vymaž",
   "confirmations.delete_list.message": "Si si istý/á, že chceš natrvalo vymazať tento zoznam?",
   "confirmations.discard_edit_media.confirm": "Zahoď",
-  "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
+  "confirmations.discard_edit_media.message": "Máte neuložené zmeny v popise alebo náhľade média, zahodiť ich aj tak?",
   "confirmations.domain_block.confirm": "Skry celú doménu",
   "confirmations.domain_block.message": "Si si naozaj istý/á, že chceš blokovať celú doménu {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať pár konkrétnych užívateľov, čo sa doporučuje. Neuvidíš obsah z tejto domény v žiadnej verejnej časovej osi, ani v oznámeniach. Tvoji následovníci pochádzajúci z tejto domény budú odstránení.",
   "confirmations.logout.confirm": "Odhlás sa",
@@ -183,13 +183,13 @@
   "directory.new_arrivals": "Nové príchody",
   "directory.recently_active": "Nedávno aktívne",
   "disabled_account_banner.account_settings": "Nastavenia účtu",
-  "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
-  "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
-  "dismissable_banner.dismiss": "Dismiss",
-  "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
-  "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
+  "disabled_account_banner.text": "Vaše konto {disabledAccount} je momentálne vypnuté.",
+  "dismissable_banner.community_timeline": "Toto sú najnovšie verejné príspevky od ľudí, ktorých účty sú hostované na {domain}.",
+  "dismissable_banner.dismiss": "Zrušiť",
+  "dismissable_banner.explore_links": "O týchto správach práve teraz hovoria ľudia na tomto a ďalších serveroch decentralizovanej siete.",
+  "dismissable_banner.explore_statuses": "Tieto príspevky z tohto a ďalších serverov v decentralizovanej sieti získavajú na tomto serveri práve teraz na sile.",
+  "dismissable_banner.explore_tags": "Tieto hashtagy práve teraz získavajú popularitu medzi ľuďmi na tomto a ďalších serveroch decentralizovanej siete.",
+  "dismissable_banner.public_timeline": "Toto sú najnovšie verejné príspevky od ľudí z tohto a ďalších serverov decentralizovanej siete, o ktorých tento server vie.",
   "embed.instructions": "Umiestni kód uvedený nižšie pre pridanie tohto statusu na tvoju web stránku.",
   "embed.preview": "Tu je ako to bude vyzerať:",
   "emoji_button.activity": "Aktivita",
@@ -215,7 +215,7 @@
   "empty_column.community": "Lokálna časová os je prázdna. Napíšte niečo, aby sa to tu začalo hýbať!",
   "empty_column.direct": "Ešte nemáš žiadne priame správy. Keď nejakú pošleš, alebo dostaneš, ukáže sa tu.",
   "empty_column.domain_blocks": "Žiadne domény ešte niesú skryté.",
-  "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
+  "empty_column.explore_statuses": "Momentálne nie je nič trendové. Pozrite sa neskôr!",
   "empty_column.favourited_statuses": "Nemáš obľúbené ešte žiadne príspevky. Keď si nejaký obľúbiš, bude zobrazený práve tu.",
   "empty_column.favourites": "Tento toot si ešte nikto neobľúbil. Ten kto si ho obľúbi, bude zobrazený tu.",
   "empty_column.follow_recommendations": "Zdá sa že pre Vás nemohli byť vygenerované žiadne návrhy. Môžete skúsiť použiť vyhľadávanie aby ste našli ľudi ktorých poznáte, alebo preskúmať trendujúce heštegy.",
@@ -236,22 +236,22 @@
   "errors.unexpected_crash.report_issue": "Nahlás problém",
   "explore.search_results": "Výsledky hľadania",
   "explore.title": "Objavuj",
-  "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
-  "filter_modal.added.context_mismatch_title": "Context mismatch!",
-  "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
-  "filter_modal.added.expired_title": "Expired filter!",
-  "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
+  "filter_modal.added.context_mismatch_explanation": "Táto kategória filtrov sa nevzťahuje na kontext, v ktorom ste získali prístup k tomuto príspevku. Ak chcete, aby sa príspevok filtroval aj v tomto kontexte, budete musieť filter upraviť.",
+  "filter_modal.added.context_mismatch_title": "Nesúlad kontextu!",
+  "filter_modal.added.expired_explanation": "Platnosť tejto kategórie filtra vypršala, aby sa použila, je potrebné zmeniť dátum vypršania platnosti.",
+  "filter_modal.added.expired_title": "Vypršala platnosť filtra!",
+  "filter_modal.added.review_and_configure": "Ak chcete skontrolovať a ďalej konfigurovať túto kategóriu filtrov, prejdite na odkaz {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Nastavenie triedenia",
-  "filter_modal.added.settings_link": "settings page",
-  "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
+  "filter_modal.added.settings_link": "stránka s nastaveniami",
+  "filter_modal.added.short_explanation": "Tento príspevok bol pridaný do nasledujúcej kategórie filtrov: {title}.",
   "filter_modal.added.title": "Triedenie pridané!",
-  "filter_modal.select_filter.context_mismatch": "does not apply to this context",
+  "filter_modal.select_filter.context_mismatch": "sa na tento kontext nevzťahuje",
   "filter_modal.select_filter.expired": "vypršalo",
-  "filter_modal.select_filter.prompt_new": "New category: {name}",
-  "filter_modal.select_filter.search": "Search or create",
-  "filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
-  "filter_modal.select_filter.title": "Filter this post",
-  "filter_modal.title.status": "Filter a post",
+  "filter_modal.select_filter.prompt_new": "Nová kategória: {name}",
+  "filter_modal.select_filter.search": "Vyhľadávať alebo vytvoriť",
+  "filter_modal.select_filter.subtitle": "Použite existujúcu kategóriu alebo vytvorte novú",
+  "filter_modal.select_filter.title": "Filtrovanie tohto príspevku",
+  "filter_modal.title.status": "Filtrovanie príspevku",
   "follow_recommendations.done": "Hotovo",
   "follow_recommendations.heading": "Následuj ľudí od ktorých by si chcel/a vidieť príspevky! Tu sú nejaké návrhy.",
   "follow_recommendations.lead": "Príspevky od ľudi ktorých sledujete sa zobrazia v chronologickom poradí na Vašej nástenke. Nebojte sa spraviť chyby, vždy môžete zrušiť sledovanie konkrétnych ľudí!",
@@ -259,8 +259,8 @@
   "follow_request.reject": "Odmietni",
   "follow_requests.unlocked_explanation": "Síce Váš učet nie je uzamknutý, ale {domain} tím si myslel že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.",
   "footer.about": "O",
-  "footer.directory": "Profiles directory",
-  "footer.get_app": "Get the app",
+  "footer.directory": "Adresár profilov",
+  "footer.get_app": "Stiahnuť aplikáciu",
   "footer.invite": "Pozvi ľudí",
   "footer.keyboard_shortcuts": "Klávesové skratky",
   "footer.privacy_policy": "Zásady súkromia",
@@ -283,14 +283,14 @@
   "home.column_settings.show_replies": "Ukáž odpovede",
   "home.hide_announcements": "Skry oboznámenia",
   "home.show_announcements": "Ukáž oboznámenia",
-  "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
-  "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
-  "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
-  "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
+  "interaction_modal.description.favourite": "S účtom na Mastodone môžete tento príspevok obľúbiť, aby ste dali autorovi vedieť, že ho oceňujete, a uložiť si ho na neskôr.",
+  "interaction_modal.description.follow": "Ak máte konto na Mastodone, môžete sledovať {name} a dostávať príspevky do svojho domovského kanála.",
+  "interaction_modal.description.reblog": "Ak máte účet na Mastodone, môžete tento príspevok posilniť a zdieľať ho s vlastnými sledovateľmi.",
+  "interaction_modal.description.reply": "Ak máte účet na Mastodone, môžete reagovať na tento príspevok.",
   "interaction_modal.on_another_server": "Na inom serveri",
   "interaction_modal.on_this_server": "Na tomto serveri",
-  "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
-  "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
+  "interaction_modal.other_server_instructions": "Skopírujte a vložte túto adresu URL do vyhľadávacieho poľa vašej obľúbenej aplikácie Mastodon alebo do webového rozhrania vášho servera Mastodon.",
+  "interaction_modal.preamble": "Keďže Mastodon je decentralizovaný, ak nemáte účet na tomto serveri, môžete použiť svoj existujúci účet hostovaný na inom serveri Mastodon alebo kompatibilnej platforme.",
   "interaction_modal.title.favourite": "Obľúbiť si {name}ov/in príspevok",
   "interaction_modal.title.follow": "Nasleduj {name}",
   "interaction_modal.title.reblog": "Vyzdvihni {name}ov/in príspevok",
@@ -338,7 +338,7 @@
   "lightbox.next": "Ďalšie",
   "lightbox.previous": "Predchádzajúci",
   "limited_account_hint.action": "Ukáž profil aj tak",
-  "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
+  "limited_account_hint.title": "Tento profil bol skrytý moderátormi stránky {domain}.",
   "lists.account.add": "Pridaj do zoznamu",
   "lists.account.remove": "Odober zo zoznamu",
   "lists.delete": "Vymaž list",
@@ -357,7 +357,7 @@
   "media_gallery.toggle_visible": "Zapni/Vypni viditeľnosť",
   "missing_indicator.label": "Nenájdené",
   "missing_indicator.sublabel": "Tento zdroj sa ešte nepodarilo nájsť",
-  "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
+  "moved_to_account_banner.text": "Vaše konto {disabledAccount} je momentálne zablokované, pretože ste sa presunuli na {movedToAccount}.",
   "mute_modal.duration": "Trvanie",
   "mute_modal.hide_notifications": "Skry oznámenia od tohto používateľa?",
   "mute_modal.indefinite": "Bez obmedzenia",
@@ -384,7 +384,7 @@
   "navigation_bar.public_timeline": "Federovaná časová os",
   "navigation_bar.search": "Hľadaj",
   "navigation_bar.security": "Zabezbečenie",
-  "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
+  "not_signed_in_indicator.not_signed_in": "Ak chcete získať prístup k tomuto zdroju, musíte sa prihlásiť.",
   "notification.admin.report": "{name} nahlásil/a {target}",
   "notification.admin.sign_up": "{name} sa zaregistroval/a",
   "notification.favourite": "{name} si obľúbil/a tvoj príspevok",
@@ -431,7 +431,7 @@
   "notifications.permission_denied_alert": "Oboznámenia na ploche nemôžu byť zapnuté, pretože požiadavka prehliadača o to, bola už skôr zamietnutá",
   "notifications.permission_required": "Oboznámenia na ploche sú nedostupné, pretože potrebné povolenia neboli udelené.",
   "notifications_permission_banner.enable": "Povoliť oboznámenia na plochu",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
+  "notifications_permission_banner.how_to_control": "Ak chcete dostávať upozornenia, keď Mastodon nie je otvorený, povoľte upozornenia na ploche. Po ich zapnutí môžete presne kontrolovať, ktoré typy interakcií generujú upozornenia na ploche, a to prostredníctvom tlačidla {icon} vyššie.",
   "notifications_permission_banner.title": "Nikdy nezmeškaj jedinú vec",
   "picture_in_picture.restore": "Vrátiť späť",
   "poll.closed": "Uzatvorená",
@@ -450,7 +450,7 @@
   "privacy.private.short": "Iba pre sledujúcich",
   "privacy.public.long": "Viditeľné pre všetkých",
   "privacy.public.short": "Verejné",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Viditeľné pre všetkých, ale odmietnuté funkcie zisťovania",
   "privacy.unlisted.short": "Verejne, ale nezobraziť v osi",
   "privacy_policy.last_updated": "Posledná úprava {date}",
   "privacy_policy.title": "Zásady súkromia",
@@ -470,33 +470,33 @@
   "relative_time.today": "dnes",
   "reply_indicator.cancel": "Zrušiť",
   "report.block": "Blokuj",
-  "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
+  "report.block_explanation": "Ich príspevky neuvidíte. Nebudú môcť vidieť vaše príspevky ani vás sledovať. Budú môcť zistiť, že sú zablokovaní.",
   "report.categories.other": "Ostatné",
   "report.categories.spam": "Spam",
-  "report.categories.violation": "Content violates one or more server rules",
-  "report.category.subtitle": "Choose the best match",
-  "report.category.title": "Tell us what's going on with this {type}",
+  "report.categories.violation": "Obsah porušuje jedno alebo viacero pravidiel servera",
+  "report.category.subtitle": "Vyberte si najlepšiu voľbu",
+  "report.category.title": "Povedzte nám, čo sa deje s týmto {type}",
   "report.category.title_account": "profilom",
   "report.category.title_status": "príspevkom",
   "report.close": "Hotovo",
-  "report.comment.title": "Is there anything else you think we should know?",
+  "report.comment.title": "Je ešte niečo, čo by sme podľa vás mali vedieť?",
   "report.forward": "Posuň ku {target}",
   "report.forward_hint": "Tento účet je z iného serveru. Chceš poslať anonymnú kópiu hlásenia aj tam?",
   "report.mute": "Nevšímaj si",
-  "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
+  "report.mute_explanation": "Ich príspevky neuvidíte. Stále vás môžu sledovať a vidieť vaše príspevky a nebudú vedieť, že sú stlmené.",
   "report.next": "Ďalej",
   "report.placeholder": "Ďalšie komentáre",
   "report.reasons.dislike": "Nepáči sa mi",
   "report.reasons.dislike_description": "Nieje to niečo, čo chceš vidieť",
   "report.reasons.other": "Je to niečo iné",
-  "report.reasons.other_description": "The issue does not fit into other categories",
+  "report.reasons.other_description": "Tento problém nepatrí do iných kategórií",
   "report.reasons.spam": "Je to spam",
-  "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
+  "report.reasons.spam_description": "Škodlivé odkazy, falošné zapojenie alebo opakované odpovede",
   "report.reasons.violation": "Porušuje pravidlá servera",
-  "report.reasons.violation_description": "You are aware that it breaks specific rules",
-  "report.rules.subtitle": "Select all that apply",
-  "report.rules.title": "Which rules are being violated?",
-  "report.statuses.subtitle": "Select all that apply",
+  "report.reasons.violation_description": "Ste si vedomí, že porušuje špecifické pravidlá",
+  "report.rules.subtitle": "Vyberte všetky, ktoré sa vzťahujú",
+  "report.rules.title": "Ktoré pravidlá sa porušujú?",
+  "report.statuses.subtitle": "Vyberte všetky, ktoré sa vzťahujú",
   "report.statuses.title": "Are there any posts that back up this report?",
   "report.submit": "Odošli",
   "report.target": "Nahlás {target}",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index ea23d2ad3..bb9b4ee0f 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -1,649 +1,649 @@
 {
-  "about.blocks": "Moderated servers",
-  "about.contact": "Contact:",
-  "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
-  "about.domain_blocks.no_reason_available": "Reason not available",
-  "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
-  "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
-  "about.domain_blocks.silenced.title": "Limited",
-  "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
-  "about.domain_blocks.suspended.title": "Suspended",
-  "about.not_available": "This information has not been made available on this server.",
-  "about.powered_by": "Decentralized social media powered by {mastodon}",
-  "about.rules": "Server rules",
-  "account.account_note_header": "Note",
-  "account.add_or_remove_from_list": "Add or Remove from lists",
+  "about.blocks": "Moderirani serveri",
+  "about.contact": "Kontakt:",
+  "about.disclaimer": "Mastodon je besplatan softver otvorenog koda i zaštićeni znak kompanije Mastodon gGmbH.",
+  "about.domain_blocks.no_reason_available": "Razlog nije naveden",
+  "about.domain_blocks.preamble": "Mastodon vam generalno omogućava da vidite sadržaj i komunicirate sa korisnicima sa bilo kog drugog servera u fediverzumu. Ovo su izuzeci koji su napravljeni na ovom serveru.",
+  "about.domain_blocks.silenced.explanation": "U načelu nećete videti profile i sadržaj sa ovog servera, osim ako ga eksplicitno ne potražite ili se uključite tako što ćete ga pratiti.",
+  "about.domain_blocks.silenced.title": "Ograničen",
+  "about.domain_blocks.suspended.explanation": "Podaci sa ovog servera neće se obrađivati, čuvati ili razmenjivati, što onemogućava bilo kakvu interakciju ili komunikaciju sa korisnicima sa ovog servera.",
+  "about.domain_blocks.suspended.title": "Suspendovan",
+  "about.not_available": "Ove informacije nisu dostupne na ovom serveru.",
+  "about.powered_by": "Decentralizovana društvena medija koju pokreće {mastodon}",
+  "about.rules": "Pravila servera",
+  "account.account_note_header": "Napomena",
+  "account.add_or_remove_from_list": "Dodaj ili ukloni sa lista",
   "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
-  "account.block": "Blokiraj korisnika @{name}",
-  "account.block_domain": "Sakrij sve sa domena {domain}",
-  "account.blocked": "Blocked",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
-  "account.cancel_follow_request": "Withdraw follow request",
-  "account.direct": "Direct Message @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Domain hidden",
-  "account.edit_profile": "Izmeni profil",
-  "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Feature on profile",
-  "account.featured_tags.last_status_at": "Last post on {date}",
-  "account.featured_tags.last_status_never": "No posts",
-  "account.featured_tags.title": "{name}'s featured hashtags",
-  "account.follow": "Zaprati",
-  "account.followers": "Pratioca",
-  "account.followers.empty": "No one follows this user yet.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following": "Following",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
-  "account.follows.empty": "This user doesn't follow anyone yet.",
-  "account.follows_you": "Prati Vas",
-  "account.go_to_profile": "Go to profile",
-  "account.hide_reblogs": "Sakrij podrške koje daje korisnika @{name}",
-  "account.joined_short": "Joined",
-  "account.languages": "Change subscribed languages",
-  "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.media": "Mediji",
+  "account.badges.group": "Grupa",
+  "account.block": "Blokiraj @{name}",
+  "account.block_domain": "Blokiraj domen {domain}",
+  "account.blocked": "Blokiran",
+  "account.browse_more_on_origin_server": "Pregledajte još na originalnom profilu",
+  "account.cancel_follow_request": "Povuci zahtev za praćenje",
+  "account.direct": "Direktna poruka @{name}",
+  "account.disable_notifications": "Zaustavi obaveštavanje za objave korisnika @{name}",
+  "account.domain_blocked": "Domen je blokiran",
+  "account.edit_profile": "Uredi profil",
+  "account.enable_notifications": "Obavesti me kada @{name} objavi",
+  "account.endorse": "Istakni na profilu",
+  "account.featured_tags.last_status_at": "Poslednja objava {date}",
+  "account.featured_tags.last_status_never": "Nema objava",
+  "account.featured_tags.title": "Istaknute heš oznake korisnika {name}",
+  "account.follow": "Prati",
+  "account.followers": "Pratioci",
+  "account.followers.empty": "Još uvek niko ne prati ovog korisnika.",
+  "account.followers_counter": "{count, plural, one {{counter} pratilac} few {{counter} pratioca} other {{counter} pratilaca}}",
+  "account.following": "Prati",
+  "account.following_counter": "{count, plural, one {{counter} prati} few {{counter} prati} other {{counter} prati}}",
+  "account.follows.empty": "Ovaj korisnik još uvek nikog ne prati.",
+  "account.follows_you": "Prati vas",
+  "account.go_to_profile": "Idi na profil",
+  "account.hide_reblogs": "Sakrij podržavanja od @{name}",
+  "account.joined_short": "Pridružio se",
+  "account.languages": "Promeni pretplaćene jezike",
+  "account.link_verified_on": "Vlasništvo nad ovom vezom je provereno {date}",
+  "account.locked_info": "Status privatnosti ovog naloga je podešen na zaključano. Vlasnik ručno pregleda ko ga može pratiti.",
+  "account.media": "Multimedija",
   "account.mention": "Pomeni korisnika @{name}",
-  "account.moved_to": "{name} has indicated that their new account is now:",
-  "account.mute": "Ućutkaj korisnika @{name}",
-  "account.mute_notifications": "Isključi obaveštenja od korisnika @{name}",
-  "account.muted": "Muted",
-  "account.open_original_page": "Open original page",
-  "account.posts": "Statusa",
-  "account.posts_with_replies": "Toots with replies",
+  "account.moved_to": "Korisnik {name} je naznačio da je njegov novi nalog sada:",
+  "account.mute": "Ignoriši korisnika @{name}",
+  "account.mute_notifications": "Ignoriši obaveštenja od @{name}",
+  "account.muted": "Ignorisan",
+  "account.open_original_page": "Otvori originalnu stranicu",
+  "account.posts": "Objave",
+  "account.posts_with_replies": "Objave i odgovori",
   "account.report": "Prijavi @{name}",
-  "account.requested": "Čekam odobrenje. Kliknite da poništite zahtev za praćenje",
+  "account.requested": "Čekanje odobrenja. Kliknite za otkazivanje zahteva za praćenje",
   "account.share": "Podeli profil korisnika @{name}",
-  "account.show_reblogs": "Prikaži podrške od korisnika @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
+  "account.show_reblogs": "Prikaži podržavanja od korisnika @{name}",
+  "account.statuses_counter": "{count, plural, one {{counter} objavio} few {{counter} objavio} other {{counter} objavio}}",
   "account.unblock": "Odblokiraj korisnika @{name}",
   "account.unblock_domain": "Odblokiraj domen {domain}",
-  "account.unblock_short": "Unblock",
-  "account.unendorse": "Don't feature on profile",
+  "account.unblock_short": "Odblokiraj",
+  "account.unendorse": "Ne ističi na profilu",
   "account.unfollow": "Otprati",
-  "account.unmute": "Ukloni ućutkavanje korisniku @{name}",
-  "account.unmute_notifications": "Uključi nazad obaveštenja od korisnika @{name}",
-  "account.unmute_short": "Unmute",
-  "account_note.placeholder": "Click to add a note",
-  "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
-  "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
-  "admin.dashboard.retention.average": "Average",
-  "admin.dashboard.retention.cohort": "Sign-up month",
-  "admin.dashboard.retention.cohort_size": "New users",
-  "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Rate limited",
-  "alert.unexpected.message": "An unexpected error occurred.",
-  "alert.unexpected.title": "Oops!",
-  "announcement.announcement": "Announcement",
-  "attachments_list.unprocessed": "(unprocessed)",
-  "audio.hide": "Hide audio",
-  "autosuggest_hashtag.per_week": "{count} per week",
+  "account.unmute": "Ne ignoriši @{name}",
+  "account.unmute_notifications": "Ne ignoriši obaveštenja od @{name}",
+  "account.unmute_short": "Ne ignoriši",
+  "account_note.placeholder": "Kliknite da dodate napomenu",
+  "admin.dashboard.daily_retention": "Stopa zadržavanja korisnika po danima nakon registracije",
+  "admin.dashboard.monthly_retention": "Stopa zadržavanja korisnika po mesecima nakon registracije",
+  "admin.dashboard.retention.average": "Prosek",
+  "admin.dashboard.retention.cohort": "Mesec pristupanja",
+  "admin.dashboard.retention.cohort_size": "Novi korisnici",
+  "alert.rate_limited.message": "Pokušajte ponovo posle {retry_time, time, medium}.",
+  "alert.rate_limited.title": "Ograničenje zahteva",
+  "alert.unexpected.message": "Došlo je do neočekivane greške.",
+  "alert.unexpected.title": "Ups!",
+  "announcement.announcement": "Najava",
+  "attachments_list.unprocessed": "(neobrađeno)",
+  "audio.hide": "Sakrij audio",
+  "autosuggest_hashtag.per_week": "{count} nedeljno",
   "boost_modal.combo": "Možete pritisnuti {combo} da preskočite ovo sledeći put",
-  "bundle_column_error.copy_stacktrace": "Copy error report",
-  "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
-  "bundle_column_error.error.title": "Oh, no!",
-  "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
-  "bundle_column_error.network.title": "Network error",
+  "bundle_column_error.copy_stacktrace": "Kopiraj izveštaj o grešci",
+  "bundle_column_error.error.body": "Nije moguće prikazati traženu stranicu. Razlog može biti greška u našem kodu ili problem sa kompatibilnošću pretraživača.",
+  "bundle_column_error.error.title": "O, ne!",
+  "bundle_column_error.network.body": "Došlo je do greške pri pokušaju učitavanja ove stranice. Razlog može biti trenutni problem sa vašom internet vezom ili sa ovim serverom.",
+  "bundle_column_error.network.title": "Greška na mreži",
   "bundle_column_error.retry": "Pokušajte ponovo",
-  "bundle_column_error.return": "Go back home",
-  "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?",
+  "bundle_column_error.return": "Idi na početak",
+  "bundle_column_error.routing.body": "Nije moguće pronaći traženu stranicu. Da li ste sigurni da je URL u adresnom polju ispravan?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Zatvori",
   "bundle_modal_error.message": "Nešto nije bilo u redu pri učitavanju ove komponente.",
   "bundle_modal_error.retry": "Pokušajte ponovo",
-  "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
-  "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
-  "closed_registrations_modal.find_another_server": "Find another server",
-  "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
-  "closed_registrations_modal.title": "Signing up on Mastodon",
-  "column.about": "About",
+  "closed_registrations.other_server_instructions": "Pošto je Mastodon decentralizovan, možete napraviti nalog na drugom serveru ali i dalje komunicirati sa ovim.",
+  "closed_registrations_modal.description": "Kreiranje naloga na {domain} trenutno nije moguće, ali imajte u vidu da vam ne treba nalog zasebno na {domain} da biste koristili Mastodon.",
+  "closed_registrations_modal.find_another_server": "Pronađite drugi server",
+  "closed_registrations_modal.preamble": "Mastodon je decentralizovan, tako da bez obzira gde kreirate svoj nalog, moći ćete da pratite i komunicirate sa bilo kim na ovom serveru. Možete čak i sami da ga hostujete!",
+  "closed_registrations_modal.title": "Registracija za Mastodon",
+  "column.about": "Osnovni podaci",
   "column.blocks": "Blokirani korisnici",
-  "column.bookmarks": "Bookmarks",
-  "column.community": "Lokalna lajna",
-  "column.direct": "Direct messages",
-  "column.directory": "Browse profiles",
-  "column.domain_blocks": "Hidden domains",
-  "column.favourites": "Omiljeni",
+  "column.bookmarks": "Obeleživači",
+  "column.community": "Lokalna vremenska linija",
+  "column.direct": "Direktne poruke",
+  "column.directory": "Pregledaj profile",
+  "column.domain_blocks": "Blokirani domeni",
+  "column.favourites": "Omiljeno",
   "column.follow_requests": "Zahtevi za praćenje",
   "column.home": "Početna",
   "column.lists": "Liste",
-  "column.mutes": "Ućutkani korisnici",
+  "column.mutes": "Ignorisani korisnici",
   "column.notifications": "Obaveštenja",
-  "column.pins": "Prikačeni tutovi",
-  "column.public": "Federisana lajna",
+  "column.pins": "Zakačene objave",
+  "column.public": "Združena vremenska linija",
   "column_back_button.label": "Nazad",
-  "column_header.hide_settings": "Sakrij postavke",
-  "column_header.moveLeft_settings": "Pomeri kolonu ulevo",
-  "column_header.moveRight_settings": "Pomeri kolonu udesno",
-  "column_header.pin": "Prikači",
-  "column_header.show_settings": "Prikaži postavke",
+  "column_header.hide_settings": "Sakrij podešavanja",
+  "column_header.moveLeft_settings": "Premesti kolonu ulevo",
+  "column_header.moveRight_settings": "Premesti kolonu udesno",
+  "column_header.pin": "Zakači",
+  "column_header.show_settings": "Prikaži podešavanja",
   "column_header.unpin": "Otkači",
-  "column_subheading.settings": "Postavke",
-  "community.column_settings.local_only": "Local only",
-  "community.column_settings.media_only": "Media only",
-  "community.column_settings.remote_only": "Remote only",
-  "compose.language.change": "Change language",
-  "compose.language.search": "Search languages...",
-  "compose_form.direct_message_warning_learn_more": "Learn more",
-  "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
-  "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": "Vaš nalog nije {locked}. Svako može da Vas zaprati i da vidi objave namenjene samo Vašim pratiocima.",
+  "column_subheading.settings": "Podešavanja",
+  "community.column_settings.local_only": "Samo lokalno",
+  "community.column_settings.media_only": "Samo multimedija",
+  "community.column_settings.remote_only": "Samo udaljeno",
+  "compose.language.change": "Promeni jezik",
+  "compose.language.search": "Pretraga jezika...",
+  "compose_form.direct_message_warning_learn_more": "Saznajte više",
+  "compose_form.encryption_warning": "Objave na Mastodon-u nisu potpuno šifrovane. Nemojte deliti nikakve osetljive informacije preko Mastodon-a.",
+  "compose_form.hashtag_warning": "Ova objava neće biti navedena ni pod jednom heš oznakom jer je nenavedena. Samo javne objave mogu se pretraživati po heš oznakama.",
+  "compose_form.lock_disclaimer": "Vaš nalog nije {locked}. Svako može da vas prati i da vidi vaše objave namenjene samo za vaše pratioce.",
   "compose_form.lock_disclaimer.lock": "zaključan",
-  "compose_form.placeholder": "Šta Vam je na umu?",
-  "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.switch_to_multiple": "Change poll to allow multiple choices",
-  "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
-  "compose_form.publish": "Publish",
-  "compose_form.publish_form": "Publish",
+  "compose_form.placeholder": "O čemu razmišljate?",
+  "compose_form.poll.add_option": "Dodajte izbor",
+  "compose_form.poll.duration": "Trajanje ankete",
+  "compose_form.poll.option_placeholder": "Izbor {number}",
+  "compose_form.poll.remove_option": "Ukloni ovaj izbor",
+  "compose_form.poll.switch_to_multiple": "Promenite anketu da biste omogućili više izbora",
+  "compose_form.poll.switch_to_single": "Promenite anketu da biste omogućili jedan izbor",
+  "compose_form.publish": "Objavi",
+  "compose_form.publish_form": "Objavi",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Save changes",
-  "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
-  "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
-  "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {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": "Ovde upišite upozorenje",
-  "confirmation_modal.cancel": "Poništi",
-  "confirmations.block.block_and_report": "Block & Report",
+  "compose_form.save_changes": "Sačuvaj promene",
+  "compose_form.sensitive.hide": "{count, plural, one {Označi multimediju kao osetljivu} few {Označi multimediju kao osetljivu} other {Označi multimediju kao osetljivu}}",
+  "compose_form.sensitive.marked": "{count, plural, one {Multimedija je označena kao osetljiva} few {Multimedija je označena kao osetljiva} other {Multimedija je označena kao osetljiva}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Multimedija nije označena kao osetljiva} few {Multimedija nije označena kao osetljiva} other {Multimedija nije označena kao osetljiva}}",
+  "compose_form.spoiler.marked": "Ukloni upozorenje o sadržaju",
+  "compose_form.spoiler.unmarked": "Dodaj upozorenje o sadržaju",
+  "compose_form.spoiler_placeholder": "Ovde napišite upozorenje",
+  "confirmation_modal.cancel": "Otkaži",
+  "confirmations.block.block_and_report": "Blokiraj i prijavi",
   "confirmations.block.confirm": "Blokiraj",
   "confirmations.block.message": "Da li ste sigurni da želite da blokirate korisnika {name}?",
-  "confirmations.cancel_follow_request.confirm": "Withdraw request",
-  "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
-  "confirmations.delete.confirm": "Obriši",
-  "confirmations.delete.message": "Da li ste sigurni da želite obrišete ovaj status?",
-  "confirmations.delete_list.confirm": "Obriši",
-  "confirmations.delete_list.message": "Da li ste sigurni da želite da bespovratno obrišete ovu listu?",
-  "confirmations.discard_edit_media.confirm": "Discard",
-  "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
-  "confirmations.domain_block.confirm": "Sakrij ceo domen",
-  "confirmations.domain_block.message": "Da li ste stvarno, stvarno sigurno da želite da blokirate ceo domen {domain}? U većini slučajeva, par dobrih blokiranja ili ućutkavanja su dovoljna i preporučljiva.",
-  "confirmations.logout.confirm": "Log out",
-  "confirmations.logout.message": "Are you sure you want to log out?",
-  "confirmations.mute.confirm": "Ućutkaj",
-  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
-  "confirmations.mute.message": "Da li stvarno želite da ućutkate korisnika {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?",
+  "confirmations.cancel_follow_request.confirm": "Povuci zahtev",
+  "confirmations.cancel_follow_request.message": "Da li ste sigurni da želite da povučete zahtev da pratite {name}?",
+  "confirmations.delete.confirm": "Izbriši",
+  "confirmations.delete.message": "Da li ste sigurni da želite izrišete ovu objavu?",
+  "confirmations.delete_list.confirm": "Izbriši",
+  "confirmations.delete_list.message": "Da li ste sigurni da želite da trajno izbrišete ovu listu?",
+  "confirmations.discard_edit_media.confirm": "Odbaci",
+  "confirmations.discard_edit_media.message": "Imate nesačuvane promene u opisu ili pregledu medija, da li ipak hoćete da ih odbacite?",
+  "confirmations.domain_block.confirm": "Blokiraj ceo domen",
+  "confirmations.domain_block.message": "Da li ste zaista sigurni da želite da blokirate ceo domen {domain}? U većini slučajeva, dovoljno je i poželjno nekoliko ciljanih blokiranja ili ignorisanja. Nećete videti sadržaj sa tog domena ni u jednoj javnoj vremenskoj liniji ili u vašim obaveštenjima. Vaši pratioci sa tog domena će biti uklonjeni.",
+  "confirmations.logout.confirm": "Odjavi se",
+  "confirmations.logout.message": "Da li se sigurni da želite da se odjavite?",
+  "confirmations.mute.confirm": "Ignoriši",
+  "confirmations.mute.explanation": "Ovo će sakriti objave od korisnika i objave koje ga pominju, ali će mu i dalje biti dozvoljeno da vidi vaše objave i da vas prati.",
+  "confirmations.mute.message": "Da li stvarno želite da ignorišete korisnika {name}?",
+  "confirmations.redraft.confirm": "Izbriši i prepravi",
+  "confirmations.redraft.message": "Da li ste sigurni da želite da izbrišete ovu objavu i da je prepravite? Podržavanja i oznake kao omiljenih će biti izgubljeni, a odgovori će ostati bez originalne objave.",
+  "confirmations.reply.confirm": "Odgovori",
+  "confirmations.reply.message": "Odgovaranjem ćete obrisati poruku koju sastavljate. Da li sigurni da želite da nastavite?",
   "confirmations.unfollow.confirm": "Otprati",
   "confirmations.unfollow.message": "Da li ste sigurni da želite da otpratite korisnika {name}?",
-  "conversation.delete": "Delete conversation",
-  "conversation.mark_as_read": "Mark as read",
-  "conversation.open": "View conversation",
-  "conversation.with": "With {names}",
-  "copypaste.copied": "Copied",
-  "copypaste.copy": "Copy",
-  "directory.federated": "From known fediverse",
-  "directory.local": "From {domain} only",
-  "directory.new_arrivals": "New arrivals",
-  "directory.recently_active": "Recently active",
-  "disabled_account_banner.account_settings": "Account settings",
-  "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
-  "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
-  "dismissable_banner.dismiss": "Dismiss",
-  "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
-  "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
-  "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
-  "embed.instructions": "Ugradi ovaj status na Vaš veb sajt kopiranjem koda ispod.",
-  "embed.preview": "Ovako će da izgleda:",
+  "conversation.delete": "Izbriši razgovor",
+  "conversation.mark_as_read": "Označi kao pročitano",
+  "conversation.open": "Prikaži razgovor",
+  "conversation.with": "Sa {names}",
+  "copypaste.copied": "Kopirano",
+  "copypaste.copy": "Kopiraj",
+  "directory.federated": "Sa znanog fideverzuma",
+  "directory.local": "Samo sa {domain}",
+  "directory.new_arrivals": "Novopridošli",
+  "directory.recently_active": "Nedavno aktivni",
+  "disabled_account_banner.account_settings": "Podešavanja naloga",
+  "disabled_account_banner.text": "Vaš nalog {disabledAccount} je trenutno onemogućen.",
+  "dismissable_banner.community_timeline": "Ovo su najnovije javne objave ljudi čije naloge hostuje {domain}.",
+  "dismissable_banner.dismiss": "Odbaci",
+  "dismissable_banner.explore_links": "O ovim vestima upravo sada razgovaraju ljudi na ovom i drugim serverima decentralizovane mreže.",
+  "dismissable_banner.explore_statuses": "Ove objave sa ovog i drugih servera u decentralizovanoj mreži postaju sve popularnije na ovom serveru.",
+  "dismissable_banner.explore_tags": "Ove heš oznake postaju sve popularnije među ljudima na ovom i drugim serverima decentralizovane mreže.",
+  "dismissable_banner.public_timeline": "Ovo su najnovije javne objave ljudi na ovom i drugim serverima decentralizovane mreže za koje ovaj server zna.",
+  "embed.instructions": "Ugradite ovu objavu na svoj veb sajt kopiranjem koda ispod.",
+  "embed.preview": "Evo kako će to izgledati:",
   "emoji_button.activity": "Aktivnost",
-  "emoji_button.clear": "Clear",
-  "emoji_button.custom": "Proizvoljno",
-  "emoji_button.flags": "Zastave",
-  "emoji_button.food": "Hrana & piće",
-  "emoji_button.label": "Ubaci smajli",
+  "emoji_button.clear": "Obriši",
+  "emoji_button.custom": "Prilagođeno",
+  "emoji_button.flags": "Zastavice",
+  "emoji_button.food": "Hrana i piće",
+  "emoji_button.label": "Ubaci emodži",
   "emoji_button.nature": "Priroda",
-  "emoji_button.not_found": "Nema smajlija!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "Nema pronađih odgovarajućih emodžija",
   "emoji_button.objects": "Objekti",
   "emoji_button.people": "Ljudi",
   "emoji_button.recent": "Najčešće korišćeni",
   "emoji_button.search": "Pretraga...",
   "emoji_button.search_results": "Rezultati pretrage",
   "emoji_button.symbols": "Simboli",
-  "emoji_button.travel": "Putovanja & mesta",
-  "empty_column.account_suspended": "Account suspended",
-  "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.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
-  "empty_column.community": "Lokalna lajna je prazna. Napišite nešto javno da lajna produva!",
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
-  "empty_column.domain_blocks": "There are no hidden domains yet.",
-  "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
-  "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_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
-  "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
-  "empty_column.hashtag": "Trenutno nema ništa na ovom heštegu.",
-  "empty_column.home": "Vaša lajna je prazna! Posetite {public} ili koristite pretragu da počnete i upoznajete nove ljude.",
-  "empty_column.home.suggestions": "See some suggestions",
-  "empty_column.list": "U ovoj listi još nema ničega. Kada članovi liste objave nove statuse, oni će se pojavljivati ovde.",
-  "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": "Trenutno nemate obaveštenja. Družite se malo da započnete razgovore.",
-  "empty_column.public": "Ovde nema ničega! Napišite nešto javno, ili nađite korisnike sa drugih instanci koje ćete zapratiti da popunite ovu prazninu",
-  "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
-  "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
-  "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
-  "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
-  "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
-  "errors.unexpected_crash.report_issue": "Report issue",
-  "explore.search_results": "Search results",
-  "explore.title": "Explore",
-  "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
-  "filter_modal.added.context_mismatch_title": "Context mismatch!",
-  "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
-  "filter_modal.added.expired_title": "Expired filter!",
-  "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
-  "filter_modal.added.review_and_configure_title": "Filter settings",
-  "filter_modal.added.settings_link": "settings page",
-  "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
-  "filter_modal.added.title": "Filter added!",
-  "filter_modal.select_filter.context_mismatch": "does not apply to this context",
-  "filter_modal.select_filter.expired": "expired",
-  "filter_modal.select_filter.prompt_new": "New category: {name}",
-  "filter_modal.select_filter.search": "Search or create",
-  "filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
-  "filter_modal.select_filter.title": "Filter this post",
-  "filter_modal.title.status": "Filter a post",
-  "follow_recommendations.done": "Done",
-  "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
-  "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
+  "emoji_button.travel": "Putovanja i mesta",
+  "empty_column.account_suspended": "Nalog je suspendovan",
+  "empty_column.account_timeline": "Nema objava ovde!",
+  "empty_column.account_unavailable": "Profil je nedostupan",
+  "empty_column.blocks": "Još uvek niste blokirali nijednog korisnika.",
+  "empty_column.bookmarked_statuses": "Još uvek nemate objava dodanih u obeleživače. Kada dodate neku, pojaviće se ovde.",
+  "empty_column.community": "Lokalna vremenska linija je prazna. Napišite nešto javno da započnete!",
+  "empty_column.direct": "Još uvek nemate nijednu direktnu poruku. Kada pošaljete ili primite neku, pojaviće se ovde.",
+  "empty_column.domain_blocks": "Još uvek nema blokiranih domena.",
+  "empty_column.explore_statuses": "Trenutno ništa nije u trendu. Proverite ponovo kasnije!",
+  "empty_column.favourited_statuses": "Još uvek nemate objava označenih kao omiljene. Kada označite neku, pojaviće se ovde.",
+  "empty_column.favourites": "Niko još nije označio ovu objavu kao omiljenu. Kada neko to uradi, pojaviće se ovde.",
+  "empty_column.follow_recommendations": "Izgleda da ne mogu da se generišu bilo kakvi predlozi za vas. Možete pokušati da koristite pretragu kako biste potražili ljude koje možda poznajete ili istražili popularne heš oznake.",
+  "empty_column.follow_requests": "Još uvek nemate zahteva za praćenje. Kada primite zahtev, pojaviće se ovde.",
+  "empty_column.hashtag": "Još uvek nema ničega u ovoj heš oznaci.",
+  "empty_column.home": "Vaša početna vremenska linija je prazna! Pratite više ljudi da biste je popunili. {suggestions}",
+  "empty_column.home.suggestions": "Pogledajte neke predloge",
+  "empty_column.list": "U ovoj listi još nema ničega. Kada članovi ove liste objave nešto novo, pojaviće se ovde.",
+  "empty_column.lists": "Još uvek nemate nijednu listu. Kada napravite jednu, pojaviće se ovde.",
+  "empty_column.mutes": "Još uvek ne ignorišete nijednog korisnika.",
+  "empty_column.notifications": "Još uvek nemate nikakva obaveštenja. Kada drugi ljudi budu u interakciji sa vama, videćete to ovde.",
+  "empty_column.public": "Ovde nema ničega! Napišite nešto javno ili ručno pratite korisnike sa drugih servera da biste ovo popunili",
+  "error.unexpected_crash.explanation": "Zbog greške u našem kodu ili problema sa kompatibilnošću pregledača, ova stranica se nije mogla pravilno prikazati.",
+  "error.unexpected_crash.explanation_addons": "Ova stranica se nije mogla pravilno prikazati. Ovu grešku verovatno uzrokuju dodaci pregledača ili alati za automatsko prevođenje.",
+  "error.unexpected_crash.next_steps": "Pokušajte da osvežite stranicu. Ako to ne pomogne, možda ćete i dalje moći da koristite Mastodon putem drugog pregledača ili matične aplikacije.",
+  "error.unexpected_crash.next_steps_addons": "Pokušajte da ih onemogućite i osvežite stranicu. Ako to ne pomogne, možda ćete i dalje moći da koristite Mastodon preko drugog pregledača ili matične aplikacije.",
+  "errors.unexpected_crash.copy_stacktrace": "Kopiraj „stacktrace” u klipbord",
+  "errors.unexpected_crash.report_issue": "Prijavi problem",
+  "explore.search_results": "Rezultati pretrage",
+  "explore.title": "Istraži",
+  "filter_modal.added.context_mismatch_explanation": "Ova kategorija filtera se ne odnosi na kontekst u kojem ste pristupili ovoj objavi. Ako želite da se objava filtrira i u ovom kontekstu, morate urediti filter.",
+  "filter_modal.added.context_mismatch_title": "Kontekst se ne podudara!",
+  "filter_modal.added.expired_explanation": "Ova kategorija filtera je istekla, morate promeniti datum isteka da bi se primenjivala.",
+  "filter_modal.added.expired_title": "Filter je istekao!",
+  "filter_modal.added.review_and_configure": "Za pregled i dalju konfiguraciju ove kategorije filtera, idite na {settings_link}.",
+  "filter_modal.added.review_and_configure_title": "Podešavanja filtera",
+  "filter_modal.added.settings_link": "stranica podešavanja",
+  "filter_modal.added.short_explanation": "Ova objava je dodata u sledeću kategoriju filtera: {title}.",
+  "filter_modal.added.title": "Filter je dodat!",
+  "filter_modal.select_filter.context_mismatch": "ne odnosi se na ovaj kontekst",
+  "filter_modal.select_filter.expired": "isteklo",
+  "filter_modal.select_filter.prompt_new": "Nova kategorija: {name}",
+  "filter_modal.select_filter.search": "Pretraži ili kreiraj",
+  "filter_modal.select_filter.subtitle": "Koristite postojeću kategoriju ili kreirajte novu",
+  "filter_modal.select_filter.title": "Filtriraj ovu objavu",
+  "filter_modal.title.status": "Filtriraj objavu",
+  "follow_recommendations.done": "Gotovo",
+  "follow_recommendations.heading": "Pratite ljude čije objave želite da vidite! Evo nekih predloga.",
+  "follow_recommendations.lead": "Objave korisnika koje pratite će se pojavljivati hronološkim redosledom na početnoj stranici. Ne plašite se grešaka, možete otpratiti korisnike u bilo kom trenutku!",
   "follow_request.authorize": "Odobri",
   "follow_request.reject": "Odbij",
-  "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
-  "footer.about": "About",
-  "footer.directory": "Profiles directory",
-  "footer.get_app": "Get the app",
-  "footer.invite": "Invite people",
-  "footer.keyboard_shortcuts": "Keyboard shortcuts",
-  "footer.privacy_policy": "Privacy policy",
-  "footer.source_code": "View source code",
-  "generic.saved": "Saved",
-  "getting_started.heading": "Da počnete",
-  "hashtag.column_header.tag_mode.all": "and {additional}",
-  "hashtag.column_header.tag_mode.any": "or {additional}",
-  "hashtag.column_header.tag_mode.none": "without {additional}",
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
-  "hashtag.column_settings.tag_mode.all": "All of these",
-  "hashtag.column_settings.tag_mode.any": "Any of these",
-  "hashtag.column_settings.tag_mode.none": "None of these",
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
-  "hashtag.follow": "Follow hashtag",
-  "hashtag.unfollow": "Unfollow hashtag",
+  "follow_requests.unlocked_explanation": "Iako vaš nalog nije zaključan, osoblje {domain} smatra da biste možda želeli da ručno pregledate zahteve za praćenje sa ovih naloga.",
+  "footer.about": "Osnovni podaci",
+  "footer.directory": "Direktorijum profila",
+  "footer.get_app": "Preuzmite aplikaciju",
+  "footer.invite": "Pozovi osobe",
+  "footer.keyboard_shortcuts": "Tasterske prečice",
+  "footer.privacy_policy": "Politika privatnosti",
+  "footer.source_code": "Prikaži izvorni kod",
+  "generic.saved": "Sačuvano",
+  "getting_started.heading": "Prvi koraci",
+  "hashtag.column_header.tag_mode.all": "i {additional}",
+  "hashtag.column_header.tag_mode.any": "ili {additional}",
+  "hashtag.column_header.tag_mode.none": "bez {additional}",
+  "hashtag.column_settings.select.no_options_message": "Nisu pronađeni predlozi",
+  "hashtag.column_settings.select.placeholder": "Unesite heš oznake…",
+  "hashtag.column_settings.tag_mode.all": "Sve ove",
+  "hashtag.column_settings.tag_mode.any": "Bilo koje od ovih",
+  "hashtag.column_settings.tag_mode.none": "Nijedan od ovih",
+  "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovu kolonu",
+  "hashtag.follow": "Prati heš oznaku",
+  "hashtag.unfollow": "Otprati heš oznaku",
   "home.column_settings.basic": "Osnovno",
-  "home.column_settings.show_reblogs": "Prikaži i podržavanja",
+  "home.column_settings.show_reblogs": "Prikaži podržavanja",
   "home.column_settings.show_replies": "Prikaži odgovore",
-  "home.hide_announcements": "Hide announcements",
-  "home.show_announcements": "Show announcements",
-  "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
-  "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
-  "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
-  "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
-  "interaction_modal.on_another_server": "On a different server",
-  "interaction_modal.on_this_server": "On this server",
-  "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
-  "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
-  "interaction_modal.title.favourite": "Favourite {name}'s post",
-  "interaction_modal.title.follow": "Follow {name}",
-  "interaction_modal.title.reblog": "Boost {name}'s post",
-  "interaction_modal.title.reply": "Reply to {name}'s post",
-  "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}}",
-  "keyboard_shortcuts.back": "da odete nazad",
-  "keyboard_shortcuts.blocked": "to open blocked users list",
-  "keyboard_shortcuts.boost": "da podržite",
-  "keyboard_shortcuts.column": "da se prebacite na status u jednoj od kolona",
-  "keyboard_shortcuts.compose": "da se prebacite na pisanje novog tuta",
+  "home.hide_announcements": "Sakrij najave",
+  "home.show_announcements": "Prijaži najave",
+  "interaction_modal.description.favourite": "Sa nalogom na Mastodon-u, možete označiti ovu objavu kao omiljenu kako biste dali do znanja autoru da vam se sviđa i sačuvali je za kasnije.",
+  "interaction_modal.description.follow": "Sa nalogom na Mastodon-u, možete pratiti korisnika {name} kako biste primali njegove objave na početnoj stranici.",
+  "interaction_modal.description.reblog": "Sa nalogom na Mastodon-u, možete podržati ovu objavu kako bite je podelili sa svojim pratiocima.",
+  "interaction_modal.description.reply": "Sa nalogom na Mastodon-u, možete odgovoriti na ovu objavu.",
+  "interaction_modal.on_another_server": "Na drugom serveru",
+  "interaction_modal.on_this_server": "Na ovom serveru",
+  "interaction_modal.other_server_instructions": "Kopirajte i nalepite ovu URL adresu u polje pretrage svoje omiljene Mastodon aplikacije ili veb okruženje svog Mastodon servera.",
+  "interaction_modal.preamble": "Pošto je Mastodon decentralizovan, možete koristiti svoj postojeći nalog koji hostuje drugi Mastodon server ili kompatibilna platforma ako nemate nalog na ovom.",
+  "interaction_modal.title.favourite": "Označi objavu korisnika {name} kao omiljenu",
+  "interaction_modal.title.follow": "Prati {name}",
+  "interaction_modal.title.reblog": "Podrži objavu korisnika {name}",
+  "interaction_modal.title.reply": "Odgovori na objavu korisnika {name}",
+  "intervals.full.days": "{number, plural, one {# dan} few {# dana} other {# dana}}",
+  "intervals.full.hours": "{number, plural, one {# sat} few {# sata} other {# sati}}",
+  "intervals.full.minutes": "{number, plural, one {# minut} few {# minuta} other {# minuta}}",
+  "keyboard_shortcuts.back": "Idi nazad",
+  "keyboard_shortcuts.blocked": "Otvori listu blokiranih korisnika",
+  "keyboard_shortcuts.boost": "Podrži objavu",
+  "keyboard_shortcuts.column": "Fokusiraj kolonu",
+  "keyboard_shortcuts.compose": "Fokusiraj polje za sastavljanje objave",
   "keyboard_shortcuts.description": "Opis",
-  "keyboard_shortcuts.direct": "to open direct messages column",
-  "keyboard_shortcuts.down": "da se pomerite na dole u listi",
-  "keyboard_shortcuts.enter": "da otvorite status",
-  "keyboard_shortcuts.favourite": "da označite kao omiljeno",
-  "keyboard_shortcuts.favourites": "to open favourites list",
-  "keyboard_shortcuts.federated": "to open federated timeline",
-  "keyboard_shortcuts.heading": "Prečice na tastaturi",
-  "keyboard_shortcuts.home": "to open home timeline",
+  "keyboard_shortcuts.direct": "za otvaranje kolone direktnih poruka",
+  "keyboard_shortcuts.down": "Premesti nadole u listi",
+  "keyboard_shortcuts.enter": "Otvori objavu",
+  "keyboard_shortcuts.favourite": "Označi objavu kao omiljenu",
+  "keyboard_shortcuts.favourites": "Otvori listu omiljenih",
+  "keyboard_shortcuts.federated": "Otvori združenu vremensku liniju",
+  "keyboard_shortcuts.heading": "Tasterske prečice",
+  "keyboard_shortcuts.home": "Otvori početnu vremensku liniju",
   "keyboard_shortcuts.hotkey": "Prečica",
-  "keyboard_shortcuts.legend": "da prikažete ovaj podsetnik",
-  "keyboard_shortcuts.local": "to open local timeline",
-  "keyboard_shortcuts.mention": "da pomenete autora",
-  "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.open_media": "to open media",
-  "keyboard_shortcuts.pinned": "to open pinned toots list",
-  "keyboard_shortcuts.profile": "to open author's profile",
-  "keyboard_shortcuts.reply": "da odgovorite",
-  "keyboard_shortcuts.requests": "to open follow requests list",
-  "keyboard_shortcuts.search": "da se prebacite na pretragu",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
-  "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": "da započnete skroz novi tut",
-  "keyboard_shortcuts.unfocus": "da ne budete više na pretrazi/pravljenju novog tuta",
-  "keyboard_shortcuts.up": "da se pomerite na gore u listi",
+  "keyboard_shortcuts.legend": "Prikaži ovu legendu",
+  "keyboard_shortcuts.local": "Otvori lokalnu vremensku liniju",
+  "keyboard_shortcuts.mention": "Pomeni autora",
+  "keyboard_shortcuts.muted": "Otvori listu ignorisanih korisnika",
+  "keyboard_shortcuts.my_profile": "Otvorite svoj profil",
+  "keyboard_shortcuts.notifications": "Otvori kolonu obaveštenja",
+  "keyboard_shortcuts.open_media": "Otvori multimediju",
+  "keyboard_shortcuts.pinned": "Otvori listu zakačenih objava",
+  "keyboard_shortcuts.profile": "Otvori profil autora",
+  "keyboard_shortcuts.reply": "Odgovori na objavu",
+  "keyboard_shortcuts.requests": "Otvori listu zahteva za praćenje",
+  "keyboard_shortcuts.search": "Fokusiraj traku pretrage",
+  "keyboard_shortcuts.spoilers": "Prikaži/sakrij polje teksta upozorenja o sadržaju (CW)",
+  "keyboard_shortcuts.start": "Otvori kolonu „prvi koraci”",
+  "keyboard_shortcuts.toggle_hidden": "Prikaži/sakrij tekst iza CW-a",
+  "keyboard_shortcuts.toggle_sensitivity": "Prikaži/sakrij multimediju",
+  "keyboard_shortcuts.toot": "Započni novu objavu",
+  "keyboard_shortcuts.unfocus": "Ukloni fokus sa polja za unos teksta/pretrage",
+  "keyboard_shortcuts.up": "Premesti nagore u listi",
   "lightbox.close": "Zatvori",
-  "lightbox.compress": "Compress image view box",
-  "lightbox.expand": "Expand image view box",
-  "lightbox.next": "Sledeći",
-  "lightbox.previous": "Prethodni",
-  "limited_account_hint.action": "Show profile anyway",
-  "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
+  "lightbox.compress": "Komprimuj okvir za prikaz slike",
+  "lightbox.expand": "Proširi okvir za prikaz slike",
+  "lightbox.next": "Sledeće",
+  "lightbox.previous": "Prethodno",
+  "limited_account_hint.action": "Ipak prikaži profil",
+  "limited_account_hint.title": "Ovaj profil su sakrili moderatori {domain}.",
   "lists.account.add": "Dodaj na listu",
   "lists.account.remove": "Ukloni sa liste",
-  "lists.delete": "Obriši listu",
-  "lists.edit": "Izmeni listu",
-  "lists.edit.submit": "Change title",
+  "lists.delete": "Izbriši listu",
+  "lists.edit": "Uredi listu",
+  "lists.edit.submit": "Promeni naslov",
   "lists.new.create": "Dodaj listu",
   "lists.new.title_placeholder": "Naslov nove liste",
-  "lists.replies_policy.followed": "Any followed user",
-  "lists.replies_policy.list": "Members of the list",
-  "lists.replies_policy.none": "No one",
-  "lists.replies_policy.title": "Show replies to:",
+  "lists.replies_policy.followed": "Svaki praćeni korisnik",
+  "lists.replies_policy.list": "Članovi liste",
+  "lists.replies_policy.none": "Niko",
+  "lists.replies_policy.title": "Prikaži odgovore na:",
   "lists.search": "Pretraži među ljudima koje pratite",
   "lists.subheading": "Vaše liste",
-  "load_pending": "{count, plural, one {# new item} other {# new items}}",
-  "loading_indicator.label": "Učitavam...",
-  "media_gallery.toggle_visible": "Uključi/isključi vidljivost",
+  "load_pending": "{count, plural, one {# nova stavka} few {# nove stavke} other {# novih stavki}}",
+  "loading_indicator.label": "Učitavanje...",
+  "media_gallery.toggle_visible": "{number, plural, one {Sakrij sliku} few {Sakrij slike} other {Sakrij slike}}",
   "missing_indicator.label": "Nije pronađeno",
-  "missing_indicator.sublabel": "This resource could not be found",
-  "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
-  "mute_modal.duration": "Duration",
-  "mute_modal.hide_notifications": "Sakrij obaveštenja od ovog korisnika?",
-  "mute_modal.indefinite": "Indefinite",
-  "navigation_bar.about": "About",
+  "missing_indicator.sublabel": "Ovaj resurs nije moguće pronaći",
+  "moved_to_account_banner.text": "Vaš nalog {disabledAccount} je trenutno onemogućen jer ste prešli na {movedToAccount}.",
+  "mute_modal.duration": "Trajanje",
+  "mute_modal.hide_notifications": "Sakriti obaveštenja od ovog korisnika?",
+  "mute_modal.indefinite": "Neodređen",
+  "navigation_bar.about": "Osnovni podaci",
   "navigation_bar.blocks": "Blokirani korisnici",
-  "navigation_bar.bookmarks": "Bookmarks",
-  "navigation_bar.community_timeline": "Lokalna lajna",
-  "navigation_bar.compose": "Compose new toot",
-  "navigation_bar.direct": "Direct messages",
-  "navigation_bar.discover": "Discover",
-  "navigation_bar.domain_blocks": "Hidden domains",
-  "navigation_bar.edit_profile": "Izmeni profil",
-  "navigation_bar.explore": "Explore",
-  "navigation_bar.favourites": "Omiljeni",
-  "navigation_bar.filters": "Muted words",
+  "navigation_bar.bookmarks": "Obeleživači",
+  "navigation_bar.community_timeline": "Lokalna vremenska linija",
+  "navigation_bar.compose": "Sastavi novu objavu",
+  "navigation_bar.direct": "Direktne poruke",
+  "navigation_bar.discover": "Otkrij",
+  "navigation_bar.domain_blocks": "Blokirani domeni",
+  "navigation_bar.edit_profile": "Uredi profil",
+  "navigation_bar.explore": "Istraži",
+  "navigation_bar.favourites": "Omiljeno",
+  "navigation_bar.filters": "Ignorisane reči",
   "navigation_bar.follow_requests": "Zahtevi za praćenje",
-  "navigation_bar.follows_and_followers": "Follows and followers",
+  "navigation_bar.follows_and_followers": "Praćenja i pratioci",
   "navigation_bar.lists": "Liste",
   "navigation_bar.logout": "Odjava",
-  "navigation_bar.mutes": "Ućutkani korisnici",
-  "navigation_bar.personal": "Personal",
-  "navigation_bar.pins": "Prikačeni tutovi",
+  "navigation_bar.mutes": "Ignorisani korisnici",
+  "navigation_bar.personal": "Lično",
+  "navigation_bar.pins": "Zakačene objave",
   "navigation_bar.preferences": "Podešavanja",
-  "navigation_bar.public_timeline": "Federisana lajna",
-  "navigation_bar.search": "Search",
-  "navigation_bar.security": "Security",
-  "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
-  "notification.admin.report": "{name} reported {target}",
-  "notification.admin.sign_up": "{name} signed up",
-  "notification.favourite": "{name} je stavio Vaš status kao omiljeni",
-  "notification.follow": "{name} Vas je zapratio",
-  "notification.follow_request": "{name} has requested to follow you",
-  "notification.mention": "{name} Vas je pomenuo",
-  "notification.own_poll": "Your poll has ended",
-  "notification.poll": "A poll you have voted in has ended",
-  "notification.reblog": "{name} je podržao(la) Vaš status",
-  "notification.status": "{name} just posted",
-  "notification.update": "{name} edited a post",
-  "notifications.clear": "Očisti obaveštenja",
-  "notifications.clear_confirmation": "Da li ste sigurno da trajno želite da očistite Vaša obaveštenja?",
-  "notifications.column_settings.admin.report": "New reports:",
-  "notifications.column_settings.admin.sign_up": "New sign-ups:",
+  "navigation_bar.public_timeline": "Združena vremenska linija",
+  "navigation_bar.search": "Pretraga",
+  "navigation_bar.security": "Bezbednost",
+  "not_signed_in_indicator.not_signed_in": "Morate da se prijavite da pristupite ovom resursu.",
+  "notification.admin.report": "{name} je prijavio {target}",
+  "notification.admin.sign_up": "{name} se registrovao",
+  "notification.favourite": "{name} je označio vašu objavu kao omiljenu",
+  "notification.follow": "{name} vas je zapratio",
+  "notification.follow_request": "{name} je zatražio da vas prati",
+  "notification.mention": "{name} vas je pomenuo",
+  "notification.own_poll": "Vaša anketa je završena",
+  "notification.poll": "Završena je anketa u kojoj ste glasali",
+  "notification.reblog": "{name} je podržao vašu objavu",
+  "notification.status": "{name} je upravo objavio",
+  "notification.update": "{name} je uredio objavu",
+  "notifications.clear": "Obriši obaveštenja",
+  "notifications.clear_confirmation": "Da li ste sigurni da želite trajno da obrišete sva vaša obaveštenja?",
+  "notifications.column_settings.admin.report": "Nove prijave:",
+  "notifications.column_settings.admin.sign_up": "Nove ragistracije:",
   "notifications.column_settings.alert": "Obaveštenja na radnoj površini",
   "notifications.column_settings.favourite": "Omiljeni:",
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
-  "notifications.column_settings.filter_bar.show_bar": "Show filter bar",
+  "notifications.column_settings.filter_bar.advanced": "Prikaži sve kategorije",
+  "notifications.column_settings.filter_bar.category": "Traka za brzi filter",
+  "notifications.column_settings.filter_bar.show_bar": "Prikaži traku sa filterima",
   "notifications.column_settings.follow": "Novi pratioci:",
-  "notifications.column_settings.follow_request": "New follow requests:",
+  "notifications.column_settings.follow_request": "Novi zahtevi za praćenje:",
   "notifications.column_settings.mention": "Pominjanja:",
-  "notifications.column_settings.poll": "Poll results:",
-  "notifications.column_settings.push": "Guraj obaveštenja",
-  "notifications.column_settings.reblog": "Podrški:",
+  "notifications.column_settings.poll": "Rezultati ankete:",
+  "notifications.column_settings.push": "Prosleđena obaveštenja",
+  "notifications.column_settings.reblog": "Podržavanja:",
   "notifications.column_settings.show": "Prikaži u koloni",
-  "notifications.column_settings.sound": "Puštaj zvuk",
-  "notifications.column_settings.status": "New toots:",
-  "notifications.column_settings.unread_notifications.category": "Unread notifications",
-  "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
-  "notifications.column_settings.update": "Edits:",
-  "notifications.filter.all": "All",
-  "notifications.filter.boosts": "Boosts",
-  "notifications.filter.favourites": "Favourites",
-  "notifications.filter.follows": "Follows",
-  "notifications.filter.mentions": "Mentions",
-  "notifications.filter.polls": "Poll results",
-  "notifications.filter.statuses": "Updates from people you follow",
-  "notifications.grant_permission": "Grant permission.",
-  "notifications.group": "{count} notifications",
-  "notifications.mark_as_read": "Mark every notification as read",
-  "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
-  "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
-  "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
-  "notifications_permission_banner.enable": "Enable desktop notifications",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Never miss a thing",
-  "picture_in_picture.restore": "Put it back",
-  "poll.closed": "Closed",
-  "poll.refresh": "Refresh",
-  "poll.total_people": "{count, plural, one {# person} other {# people}}",
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
-  "poll.vote": "Vote",
-  "poll.voted": "You voted for this answer",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
-  "poll_button.add_poll": "Add a poll",
-  "poll_button.remove_poll": "Remove poll",
-  "privacy.change": "Podesi status privatnosti",
-  "privacy.direct.long": "Objavi samo korisnicima koji su pomenuti",
-  "privacy.direct.short": "Direct",
-  "privacy.private.long": "Objavi samo pratiocima",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all",
+  "notifications.column_settings.sound": "Reprodukuj zvuk",
+  "notifications.column_settings.status": "Nove objave:",
+  "notifications.column_settings.unread_notifications.category": "Nepročitana obaveštenja",
+  "notifications.column_settings.unread_notifications.highlight": "Istakni nepročitana obaveštenja",
+  "notifications.column_settings.update": "Uređivanja:",
+  "notifications.filter.all": "Sve",
+  "notifications.filter.boosts": "Podržavanja",
+  "notifications.filter.favourites": "Omiljeno",
+  "notifications.filter.follows": "Praćenja",
+  "notifications.filter.mentions": "Pominjanja",
+  "notifications.filter.polls": "Rezultati ankete",
+  "notifications.filter.statuses": "Ažuriranja od ljudi koje pratite",
+  "notifications.grant_permission": "Odobri dozvolu.",
+  "notifications.group": "{count} obaveštenja",
+  "notifications.mark_as_read": "Označi svako obaveštenje kao pročitano",
+  "notifications.permission_denied": "Obaveštenja na radnoj površini nisu dostupna zbog prethodno odbijenog zahteva za dozvolom pregledača",
+  "notifications.permission_denied_alert": "Obaveštenja na radnoj površini ne mogu biti omogućena, jer je dozvola pregledača ranije bila odbijena",
+  "notifications.permission_required": "Obaveštenja na radnoj površini nisu dostupna jer potrebna dozvola nije dodeljena.",
+  "notifications_permission_banner.enable": "Omogućiti obaveštenja na radnoj površini",
+  "notifications_permission_banner.how_to_control": "Da biste primali obaveštenja kada Mastodon nije otvoren, omogućite obaveštenja na radnoj površini. Kada su obaveštenja na radnoj površini omogućena vrste interakcija koje ona generišu mogu se podešavati pomoću dugmeta {icon}.",
+  "notifications_permission_banner.title": "Nikada ništa ne propustite",
+  "picture_in_picture.restore": "Vrati to nazad",
+  "poll.closed": "Zatvoreno",
+  "poll.refresh": "Osveži",
+  "poll.total_people": "{count, plural, one {# osoba} few {# osobe} other {# osoba}}",
+  "poll.total_votes": "{count, plural, one {# glas} few {# glasa} other {# glasova}}",
+  "poll.vote": "Glasajte",
+  "poll.voted": "Glasali ste za ovaj odgovor",
+  "poll.votes": "{votes, plural, one {# glas} few {# glasa} other {# glasova}}",
+  "poll_button.add_poll": "Dodaj anketu",
+  "poll_button.remove_poll": "Ukloni anketu",
+  "privacy.change": "Promeni privatnost objave",
+  "privacy.direct.long": "Vidljivo samo za pomenute korisnike",
+  "privacy.direct.short": "Samo pomenute osobe",
+  "privacy.private.long": "Vidljivo samo za pratioce",
+  "privacy.private.short": "Samo pratioci",
+  "privacy.public.long": "Vidljivo za sve",
   "privacy.public.short": "Javno",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Vidljivo za sve, ali isključeno iz funkcije otkrivanja",
   "privacy.unlisted.short": "Neizlistano",
-  "privacy_policy.last_updated": "Last updated {date}",
-  "privacy_policy.title": "Privacy Policy",
-  "refresh": "Refresh",
-  "regeneration_indicator.label": "Loading…",
-  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
-  "relative_time.days": "{number}d",
-  "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
-  "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
-  "relative_time.full.just_now": "just now",
-  "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
-  "relative_time.hours": "{number}h",
+  "privacy_policy.last_updated": "Poslednje ažuriranje {date}",
+  "privacy_policy.title": "Politika privatnosti",
+  "refresh": "Osveži",
+  "regeneration_indicator.label": "Učitavanje…",
+  "regeneration_indicator.sublabel": "Vaša početna stranica se priprema!",
+  "relative_time.days": "{number} dan.",
+  "relative_time.full.days": "Pre {number, plural, one {# dan} few {# dana} other {# dana}}",
+  "relative_time.full.hours": "pre {number, plural, one {# sat} few {# sata} other {# sati}}",
+  "relative_time.full.just_now": "upravo sad",
+  "relative_time.full.minutes": "pre {number, plural, one {# minut} few {# minuta} other {# minuta}}",
+  "relative_time.full.seconds": "pre {number, plural, one {# sekundu} few {# sekunde} other {# sekundi}}",
+  "relative_time.hours": "{number} čas.",
   "relative_time.just_now": "sada",
-  "relative_time.minutes": "{number}m",
-  "relative_time.seconds": "{number}s",
-  "relative_time.today": "today",
-  "reply_indicator.cancel": "Poništi",
-  "report.block": "Block",
-  "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
-  "report.categories.other": "Other",
+  "relative_time.minutes": "{number} min.",
+  "relative_time.seconds": "{number} sek.",
+  "relative_time.today": "danas",
+  "reply_indicator.cancel": "Otkaži",
+  "report.block": "Blokiraj",
+  "report.block_explanation": "Nećete videti objave korisnika. Ni on neće videti vaše objave niti će moći da vas prati. Takođe može da zna da je blokiran.",
+  "report.categories.other": "Ostalo",
   "report.categories.spam": "Spam",
-  "report.categories.violation": "Content violates one or more server rules",
-  "report.category.subtitle": "Choose the best match",
-  "report.category.title": "Tell us what's going on with this {type}",
-  "report.category.title_account": "profile",
-  "report.category.title_status": "post",
-  "report.close": "Done",
-  "report.comment.title": "Is there anything else you think we should know?",
-  "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.mute": "Mute",
-  "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
-  "report.next": "Next",
+  "report.categories.violation": "Sadržaj krši jedno ili više pravila servera",
+  "report.category.subtitle": "Odaberite najpribližnije",
+  "report.category.title": "Recite nam šta je problem sa ovim {type}",
+  "report.category.title_account": "profilom",
+  "report.category.title_status": "objavom",
+  "report.close": "Gotovo",
+  "report.comment.title": "Da li ima nešto dodatno što treba da znamo?",
+  "report.forward": "Proslediti {target}",
+  "report.forward_hint": "Nalog je sa drugog servera. Poslati anonimnu kopiju prijave i tamo?",
+  "report.mute": "Ignoriši",
+  "report.mute_explanation": "Nećete videti objave korisnika. On i i dalje može da vas prati i vidi vaše objave i neće znati da je ignorisan.",
+  "report.next": "Sledeće",
   "report.placeholder": "Dodatni komentari",
-  "report.reasons.dislike": "I don't like it",
-  "report.reasons.dislike_description": "It is not something you want to see",
-  "report.reasons.other": "It's something else",
-  "report.reasons.other_description": "The issue does not fit into other categories",
-  "report.reasons.spam": "It's spam",
-  "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
-  "report.reasons.violation": "It violates server rules",
-  "report.reasons.violation_description": "You are aware that it breaks specific rules",
-  "report.rules.subtitle": "Select all that apply",
-  "report.rules.title": "Which rules are being violated?",
-  "report.statuses.subtitle": "Select all that apply",
-  "report.statuses.title": "Are there any posts that back up this report?",
+  "report.reasons.dislike": "Ne sviđa mi se",
+  "report.reasons.dislike_description": "Ovo nije nešto što želiš da vidite",
+  "report.reasons.other": "Nešto drugo",
+  "report.reasons.other_description": "Problem se ne uklapa u druge kategorije",
+  "report.reasons.spam": "Ovo je spam",
+  "report.reasons.spam_description": "Zlonamerne veze, lažno angažovanje ili odgovori koji se ponavljaju",
+  "report.reasons.violation": "Krši pravila servera",
+  "report.reasons.violation_description": "Svesni ste da krši neka određena pravila",
+  "report.rules.subtitle": "Izaberi sve što važi",
+  "report.rules.title": "Koja pravila su prekršena?",
+  "report.statuses.subtitle": "Izaberi sve što važi",
+  "report.statuses.title": "Da li postoje bilo kakve objave koje podržavaju ovu prijavu?",
   "report.submit": "Pošalji",
   "report.target": "Prijavljujem {target}",
-  "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
-  "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
-  "report.thanks.title": "Don't want to see this?",
-  "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
-  "report.unfollow": "Unfollow @{name}",
-  "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
-  "report_notification.categories.other": "Other",
+  "report.thanks.take_action": "Ovo su Vaše opcije da kontrolišete šta vidite na Mastodon-u:",
+  "report.thanks.take_action_actionable": "Dok mi pregledamo ovo, možete primeniti sledeće radnje protiv @{name}:",
+  "report.thanks.title": "Ne želite da vidite ovo?",
+  "report.thanks.title_actionable": "Hvala na prijavi, pregledaćemo je.",
+  "report.unfollow": "Otprati @{name}",
+  "report.unfollow_explanation": "Pratite ovaj nalog. Da ne biste više videli njegove objave na početnoj stranici, otpratite ga.",
+  "report_notification.attached_statuses": "{count, plural, one {{count} objava} few {{count} objave} other {{count} objava}} u prilogu",
+  "report_notification.categories.other": "Ostalo",
   "report_notification.categories.spam": "Spam",
-  "report_notification.categories.violation": "Rule violation",
-  "report_notification.open": "Open report",
+  "report_notification.categories.violation": "Kršenje pravila",
+  "report_notification.open": "Otvori prijavu",
   "search.placeholder": "Pretraga",
-  "search.search_or_paste": "Search or paste URL",
+  "search.search_or_paste": "Pretražite ili unesite adresu",
   "search_popout.search_format": "Napredni format pretrage",
-  "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
-  "search_popout.tips.hashtag": "hešteg",
-  "search_popout.tips.status": "status",
-  "search_popout.tips.text": "Traženjem običnog teksta ćete dobiti sva pronađena imena, sva korisnička imena i sve nađene heštegove",
+  "search_popout.tips.full_text": "Jednostavan tekst vraća objave koje ste napisali, dodali u omiljene, podržali ili u kojima ste bili pomenuti, kao i podudaranje korisničkih imena, prikazana imena i heš oznake.",
+  "search_popout.tips.hashtag": "heš oznaka",
+  "search_popout.tips.status": "objava",
+  "search_popout.tips.text": "Jednostavan tekst vraća podudaranje imena za prikaz, korisnička imena i heš oznake",
   "search_popout.tips.user": "korisnik",
-  "search_results.accounts": "People",
-  "search_results.all": "All",
-  "search_results.hashtags": "Hashtags",
-  "search_results.nothing_found": "Could not find anything for these search terms",
-  "search_results.statuses": "Toots",
-  "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
-  "search_results.title": "Search for {q}",
+  "search_results.accounts": "Ljudi",
+  "search_results.all": "Sve",
+  "search_results.hashtags": "Heš oznake",
+  "search_results.nothing_found": "Nije moguće pronaći ništa za ove termine za pretragu",
+  "search_results.statuses": "Objave",
+  "search_results.statuses_fts_disabled": "Pretraga objava po sadržaju nije omogućena na ovom Mastodon serveru.",
+  "search_results.title": "Pretraži {q}",
   "search_results.total": "{count, number} {count, plural, one {rezultat} few {rezultata} other {rezultata}}",
-  "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
-  "server_banner.active_users": "active users",
-  "server_banner.administered_by": "Administered by:",
-  "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
-  "server_banner.learn_more": "Learn more",
-  "server_banner.server_stats": "Server stats:",
-  "sign_in_banner.create_account": "Create account",
-  "sign_in_banner.sign_in": "Sign in",
-  "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.",
-  "status.admin_account": "Open moderation interface for @{name}",
-  "status.admin_status": "Open this status in the moderation interface",
-  "status.block": "Block @{name}",
-  "status.bookmark": "Bookmark",
-  "status.cancel_reblog_private": "Unboost",
-  "status.cannot_reblog": "Ovaj status ne može da se podrži",
-  "status.copy": "Copy link to status",
-  "status.delete": "Obriši",
-  "status.detailed_status": "Detailed conversation view",
-  "status.direct": "Direct message @{name}",
-  "status.edit": "Edit",
-  "status.edited": "Edited {date}",
-  "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
-  "status.embed": "Ugradi na sajt",
+  "server_banner.about_active_users": "Ljudi koji su koristili ovaj server u prethodnih 30 dana (mesečno aktivnih korisnika)",
+  "server_banner.active_users": "aktivnih korisnika",
+  "server_banner.administered_by": "Administrirano od strane:",
+  "server_banner.introduction": "{domain} je deo decentralizovane društvene mreže koju pokreće {mastodon}.",
+  "server_banner.learn_more": "Saznajte više",
+  "server_banner.server_stats": "Statistike servera:",
+  "sign_in_banner.create_account": "Napravi nalog",
+  "sign_in_banner.sign_in": "Prijavi se",
+  "sign_in_banner.text": "Prijavite se da pratite profile ili heštegove, stavite objave kao omiljene, delite i odgovarate na njih ili komunicirate sa svog naloga sa drugog servera.",
+  "status.admin_account": "Otvori moderatorsko okruženje za @{name}",
+  "status.admin_status": "Otvori ovu objavu u moderatorskom okruženju",
+  "status.block": "Blokiraj @{name}",
+  "status.bookmark": "Dodaj u obeleživače",
+  "status.cancel_reblog_private": "Ukloni podršku",
+  "status.cannot_reblog": "Ova objava se ne može podržati",
+  "status.copy": "Kopiraj vezu u objavu",
+  "status.delete": "Izbriši",
+  "status.detailed_status": "Detaljan prikaz razgovora",
+  "status.direct": "Direktna poruka @{name}",
+  "status.edit": "Uredi",
+  "status.edited": "Uređeno {date}",
+  "status.edited_x_times": "Uređeno {count, plural, one {{count} put} other {{count} puta}}",
+  "status.embed": "Ugradi",
   "status.favourite": "Omiljeno",
-  "status.filter": "Filter this post",
-  "status.filtered": "Filtered",
-  "status.hide": "Hide toot",
-  "status.history.created": "{name} created {date}",
-  "status.history.edited": "{name} edited {date}",
+  "status.filter": "Filtriraj ovu objavu",
+  "status.filtered": "Filtrirano",
+  "status.hide": "Sakrij objavu",
+  "status.history.created": "{name} napisao/la {date}",
+  "status.history.edited": "{name} uredio/la {date}",
   "status.load_more": "Učitaj još",
   "status.media_hidden": "Multimedija sakrivena",
-  "status.mention": "Pomeni korisnika @{name}",
+  "status.mention": "Pomeni @{name}",
   "status.more": "Još",
-  "status.mute": "Mute @{name}",
-  "status.mute_conversation": "Ućutkaj prepisku",
-  "status.open": "Proširi ovaj status",
-  "status.pin": "Prikači na profil",
-  "status.pinned": "Pinned toot",
-  "status.read_more": "Read more",
+  "status.mute": "Ignoriši @{name}",
+  "status.mute_conversation": "Ignoriši razgovor",
+  "status.open": "Proširi ovu objavu",
+  "status.pin": "Zakači na profil",
+  "status.pinned": "Zakačene objave",
+  "status.read_more": "Pročitajte više",
   "status.reblog": "Podrži",
-  "status.reblog_private": "Boost with original visibility",
-  "status.reblogged_by": "{name} podržao(la)",
-  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
-  "status.redraft": "Delete & re-draft",
-  "status.remove_bookmark": "Remove bookmark",
-  "status.replied_to": "Replied to {name}",
+  "status.reblog_private": "Podrži sa originalnom vidljivošću",
+  "status.reblogged_by": "{name} je podržao/la",
+  "status.reblogs.empty": "Još uvek niko nije podržao ovu objavu. Kada bude podržana, pojaviće se ovde.",
+  "status.redraft": "Izbriši i preoblikuj",
+  "status.remove_bookmark": "Ukloni obeleživač",
+  "status.replied_to": "Odgovor za {name}",
   "status.reply": "Odgovori",
   "status.replyAll": "Odgovori na diskusiju",
-  "status.report": "Prijavi korisnika @{name}",
+  "status.report": "Prijavi @{name}",
   "status.sensitive_warning": "Osetljiv sadržaj",
   "status.share": "Podeli",
-  "status.show_filter_reason": "Show anyway",
+  "status.show_filter_reason": "Ipak prikaži",
   "status.show_less": "Prikaži manje",
-  "status.show_less_all": "Show less for all",
+  "status.show_less_all": "Prikaži manje za sve",
   "status.show_more": "Prikaži više",
-  "status.show_more_all": "Show more for all",
-  "status.show_original": "Show original",
-  "status.translate": "Translate",
-  "status.translated_from_with": "Translated from {lang} using {provider}",
-  "status.uncached_media_warning": "Not available",
-  "status.unmute_conversation": "Uključi prepisku",
+  "status.show_more_all": "Prikaži više za sve",
+  "status.show_original": "Prikaži orginal",
+  "status.translate": "Prevedi",
+  "status.translated_from_with": "Prevedeno sa {lang} koristeći {provider}",
+  "status.uncached_media_warning": "Nije dostupno",
+  "status.unmute_conversation": "Ne ignoriši razgovor",
   "status.unpin": "Otkači sa profila",
-  "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
-  "subscribed_languages.save": "Save changes",
-  "subscribed_languages.target": "Change subscribed languages for {target}",
-  "suggestions.dismiss": "Dismiss suggestion",
-  "suggestions.header": "You might be interested in…",
-  "tabs_bar.federated_timeline": "Federisano",
+  "subscribed_languages.lead": "Samo objave na označenim jezicima će se pojavljivati na početnoj liniji i na listama posle ove izmene. Odaberite ništa da primate objave na svim jezicima.",
+  "subscribed_languages.save": "Sačuvaj izmene",
+  "subscribed_languages.target": "Promeni jezike na koje je {target} prijavljen",
+  "suggestions.dismiss": "Odbaci predlog",
+  "suggestions.header": "Možda će vas zanimati…",
+  "tabs_bar.federated_timeline": "Združeno",
   "tabs_bar.home": "Početna",
   "tabs_bar.local_timeline": "Lokalno",
   "tabs_bar.notifications": "Obaveštenja",
-  "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",
-  "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
-  "timeline_hint.resources.follows": "Follows",
-  "timeline_hint.resources.statuses": "Older toots",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
-  "trends.trending_now": "Trending now",
-  "ui.beforeunload": "Ako napustite Mastodont, izgubićete napisani nacrt.",
-  "units.short.billion": "{count}B",
-  "units.short.million": "{count}M",
-  "units.short.thousand": "{count}K",
-  "upload_area.title": "Prevucite ovde da otpremite",
-  "upload_button.label": "Dodaj multimediju",
-  "upload_error.limit": "File upload limit exceeded.",
-  "upload_error.poll": "File upload not allowed with polls.",
-  "upload_form.audio_description": "Describe for people with hearing loss",
-  "upload_form.description": "Opiši za slabovide osobe",
-  "upload_form.description_missing": "No description added",
-  "upload_form.edit": "Edit",
-  "upload_form.thumbnail": "Change thumbnail",
-  "upload_form.undo": "Opozovi",
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
-  "upload_modal.analyzing_picture": "Analyzing picture…",
-  "upload_modal.apply": "Apply",
-  "upload_modal.applying": "Applying…",
-  "upload_modal.choose_image": "Choose image",
-  "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
-  "upload_modal.detect_text": "Detect text from picture",
-  "upload_modal.edit_media": "Edit media",
-  "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
-  "upload_modal.preparing_ocr": "Preparing OCR…",
-  "upload_modal.preview_label": "Preview ({ratio})",
-  "upload_progress.label": "Otpremam...",
-  "upload_progress.processing": "Processing…",
+  "time_remaining.days": "Ostalo {number, plural, one {# dan} few {# dana} other {# dana}}",
+  "time_remaining.hours": "Ostalo {number, plural, one {# sat} few {# sata} other {# sati}}",
+  "time_remaining.minutes": "Ostalo {number, plural, one {# minut} few {# minuta} other {# minuta}}",
+  "time_remaining.moments": "Još nekoliko trenutaka",
+  "time_remaining.seconds": "Ostalo {number, plural, one {# sekund} few {# sekunde} other {# sekundi}}",
+  "timeline_hint.remote_resource_not_displayed": "{resource} sa drugih servera se ne prikazuju.",
+  "timeline_hint.resources.followers": "Pratioci",
+  "timeline_hint.resources.follows": "Praćeni",
+  "timeline_hint.resources.statuses": "Starije objave",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} osoba} few {{counter} osobe} other {{counter} osoba}} u proteklih {days, plural, one {dan} few {{days} dana} other {{days} dana}}",
+  "trends.trending_now": "U trendu sada",
+  "ui.beforeunload": "Vaš nacrt će biti izgubljen ako napustite Mastodon.",
+  "units.short.billion": "{count} mlrd.",
+  "units.short.million": "{count} mil.",
+  "units.short.thousand": "{count} hilj.",
+  "upload_area.title": "Prevucite i otpustite za otpremanje",
+  "upload_button.label": "Dodaj slike, video ili audio datoteku",
+  "upload_error.limit": "Dostignuto je ograničenje za otpremanje datoteka.",
+  "upload_error.poll": "Otpremanje datoteka nije dozvoljeno sa anketama.",
+  "upload_form.audio_description": "Opišite za osobe sa oštećenim sluhom",
+  "upload_form.description": "Opišite za osobe sa oštećenim vidom",
+  "upload_form.description_missing": "Nema dodatog opisa",
+  "upload_form.edit": "Uredi",
+  "upload_form.thumbnail": "Promeni sličicu",
+  "upload_form.undo": "Izbriši",
+  "upload_form.video_description": "Opišite za osobe sa oštećenim sluhom ili vidom",
+  "upload_modal.analyzing_picture": "Analiziranje slike…",
+  "upload_modal.apply": "Primeni",
+  "upload_modal.applying": "Primena…",
+  "upload_modal.choose_image": "Odaberite sliku",
+  "upload_modal.description_placeholder": "Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos",
+  "upload_modal.detect_text": "Otkrij tekst sa slike",
+  "upload_modal.edit_media": "Uredi miltimediju",
+  "upload_modal.hint": "Kliknite ili prevucite kružić na pregledu za izbor tačke fokusa koja će uvek biti vidljiva na svim sličicama.",
+  "upload_modal.preparing_ocr": "Priprema OCR-a…",
+  "upload_modal.preview_label": "Pregled ({ratio})",
+  "upload_progress.label": "Otpremanje...",
+  "upload_progress.processing": "Obrada…",
   "video.close": "Zatvori video",
-  "video.download": "Download file",
-  "video.exit_fullscreen": "Napusti ceo ekran",
+  "video.download": "Preuzimanje datoteke",
+  "video.exit_fullscreen": "Izađi iz režima celog ekrana",
   "video.expand": "Proširi video",
   "video.fullscreen": "Ceo ekran",
   "video.hide": "Sakrij video",
-  "video.mute": "Ugasi zvuk",
+  "video.mute": "Isključi zvuk",
   "video.pause": "Pauziraj",
-  "video.play": "Pusti",
-  "video.unmute": "Vrati zvuk"
+  "video.play": "Reprodukuj",
+  "video.unmute": "Uključi zvuk"
 }
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 4f7c95066..5660c94ac 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -1,9 +1,9 @@
 {
   "about.blocks": "Модерирани сервери",
   "about.contact": "Контакт:",
-  "about.disclaimer": "Мастодон је беслатан софтвер отвореног кода и заштићени знак компаније Mastodon gGmbH.",
+  "about.disclaimer": "Mastodon је бесплатан софтвер отвореног кода и заштићени знак компаније Mastodon gGmbH.",
   "about.domain_blocks.no_reason_available": "Разлог није наведен",
-  "about.domain_blocks.preamble": "Мастодон Вам дозвољава да видите и комуницирате са корисницима са других сервера у федиверсу. Ово су изузеци који су направљени на овом серверу.",
+  "about.domain_blocks.preamble": "Мастодон вам генерално омогућава да видите садржај и комуницирате са корисницима са било ког другог сервера у федиверзуму. Ово су изузеци који су направљени на овом серверу.",
   "about.domain_blocks.silenced.explanation": "У начелу нећете видети профиле и садржај са овог сервера, осим ако га експлицитно не потражите или се укључите тако што ћете га пратити.",
   "about.domain_blocks.silenced.title": "Ограничен",
   "about.domain_blocks.suspended.explanation": "Подаци са овог сервера неће се обрађивати, чувати или размењивати, што онемогућава било какву интеракцију или комуникацију са корисницима са овог сервера.",
@@ -16,64 +16,64 @@
   "account.badges.bot": "Бот",
   "account.badges.group": "Група",
   "account.block": "Блокирај @{name}",
-  "account.block_domain": "Сакриј све са домена {domain}",
+  "account.block_domain": "Блокирај домен {domain}",
   "account.blocked": "Блокиран",
-  "account.browse_more_on_origin_server": "Погледајте још на оригиналном профилу",
+  "account.browse_more_on_origin_server": "Прегледајте још на оригиналном профилу",
   "account.cancel_follow_request": "Повуци захтев за праћење",
   "account.direct": "Директна порука @{name}",
-  "account.disable_notifications": "Прекини обавештавање за објаве корисника @{name}",
-  "account.domain_blocked": "Домен блокиран",
+  "account.disable_notifications": "Заустави обавештавање за објаве корисника @{name}",
+  "account.domain_blocked": "Домен је блокиран",
   "account.edit_profile": "Уреди профил",
   "account.enable_notifications": "Обавести ме када @{name} објави",
-  "account.endorse": "Истакнуто на профилу",
+  "account.endorse": "Истакни на профилу",
   "account.featured_tags.last_status_at": "Последња објава {date}",
   "account.featured_tags.last_status_never": "Нема објава",
-  "account.featured_tags.title": "Истакнути хештегови корисника {name}",
-  "account.follow": "Запрати",
+  "account.featured_tags.title": "Истакнуте хеш ознаке корисника {name}",
+  "account.follow": "Прати",
   "account.followers": "Пратиоци",
-  "account.followers.empty": "Тренутно нико не прати овог корисника.",
+  "account.followers.empty": "Још увек нико не прати овог корисника.",
   "account.followers_counter": "{count, plural, one {{counter} пратилац} few {{counter} пратиоца} other {{counter} пратилаца}}",
-  "account.following": "Праћени",
+  "account.following": "Прати",
   "account.following_counter": "{count, plural, one {{counter} прати} few {{counter} прати} other {{counter} прати}}",
-  "account.follows.empty": "Корисник тренутно не прати никога.",
-  "account.follows_you": "Прати Вас",
+  "account.follows.empty": "Овај корисник још увек никог не прати.",
+  "account.follows_you": "Прати вас",
   "account.go_to_profile": "Иди на профил",
-  "account.hide_reblogs": "Сакриј подршке корисника @{name}",
+  "account.hide_reblogs": "Сакриј подржавања од @{name}",
   "account.joined_short": "Придружио се",
   "account.languages": "Промени претплаћене језике",
   "account.link_verified_on": "Власништво над овом везом је проверено {date}",
   "account.locked_info": "Статус приватности овог налога је подешен на закључано. Власник ручно прегледа ко га може пратити.",
-  "account.media": "Медији",
+  "account.media": "Мултимедија",
   "account.mention": "Помени корисника @{name}",
   "account.moved_to": "Корисник {name} је назначио да је његов нови налог сада:",
-  "account.mute": "Ућуткај корисника @{name}",
-  "account.mute_notifications": "Искључи обавештења од корисника @{name}",
-  "account.muted": "Ућуткан",
+  "account.mute": "Игнориши корисника @{name}",
+  "account.mute_notifications": "Игнориши обавештења од @{name}",
+  "account.muted": "Игнорисан",
   "account.open_original_page": "Отвори оригиналну страницу",
   "account.posts": "Објаве",
   "account.posts_with_replies": "Објаве и одговори",
   "account.report": "Пријави @{name}",
-  "account.requested": "Чекам одобрење. Кликните да поништите захтев за праћење",
+  "account.requested": "Чекање одобрења. Кликните за отказивање захтева за праћење",
   "account.share": "Подели профил корисника @{name}",
-  "account.show_reblogs": "Прикажи подршке од корисника @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} објава} few {{counter} објаве} other {{counter} објава}}",
+  "account.show_reblogs": "Прикажи подржавања од корисника @{name}",
+  "account.statuses_counter": "{count, plural, one {{counter} објавио} few {{counter} објавио} other {{counter} објавио}}",
   "account.unblock": "Одблокирај корисника @{name}",
   "account.unblock_domain": "Одблокирај домен {domain}",
   "account.unblock_short": "Одблокирај",
   "account.unendorse": "Не истичи на профилу",
   "account.unfollow": "Отпрати",
-  "account.unmute": "Уклони ућуткавање кориснику @{name}",
-  "account.unmute_notifications": "Укључи назад обавештења од корисника @{name}",
-  "account.unmute_short": "Искључи ућуткивање",
+  "account.unmute": "Не игнориши @{name}",
+  "account.unmute_notifications": "Не игнориши обавештења од @{name}",
+  "account.unmute_short": "Не игнориши",
   "account_note.placeholder": "Кликните да додате напомену",
   "admin.dashboard.daily_retention": "Стопа задржавања корисника по данима након регистрације",
   "admin.dashboard.monthly_retention": "Стопа задржавања корисника по месецима након регистрације",
   "admin.dashboard.retention.average": "Просек",
   "admin.dashboard.retention.cohort": "Месец приступања",
   "admin.dashboard.retention.cohort_size": "Нови корисници",
-  "alert.rate_limited.message": "Молимо покушајте поново после {retry_time, time, medium}.",
-  "alert.rate_limited.title": "Ограничена брзина",
-  "alert.unexpected.message": "Појавила се неочекивана грешка.",
+  "alert.rate_limited.message": "Покушајте поново после {retry_time, time, medium}.",
+  "alert.rate_limited.title": "Ограничење захтева",
+  "alert.unexpected.message": "Дошло је до неочекиване грешке.",
   "alert.unexpected.title": "Упс!",
   "announcement.announcement": "Најава",
   "attachments_list.unprocessed": "(необрађено)",
@@ -81,125 +81,125 @@
   "autosuggest_hashtag.per_week": "{count} недељно",
   "boost_modal.combo": "Можете притиснути {combo} да прескочите ово следећи пут",
   "bundle_column_error.copy_stacktrace": "Копирај извештај о грешци",
-  "bundle_column_error.error.body": "Тражена страница није могла да буде приказана. Разлог може бити грешка у нашем коду или проблем са компатибилношћу претраживача.",
+  "bundle_column_error.error.body": "Није могуће приказати тражену страницу. Разлог може бити грешка у нашем коду или проблем са компатибилношћу претраживача.",
   "bundle_column_error.error.title": "О, не!",
-  "bundle_column_error.network.body": "Дошло је до грешке при покушају учитавања ове странице. Разлог може бити тренутни проблем са Вашом интернет везом или са овим сервером.",
+  "bundle_column_error.network.body": "Дошло је до грешке при покушају учитавања ове странице. Разлог може бити тренутни проблем са вашом интернет везом или са овим сервером.",
   "bundle_column_error.network.title": "Грешка на мрежи",
   "bundle_column_error.retry": "Покушајте поново",
   "bundle_column_error.return": "Иди на почетак",
-  "bundle_column_error.routing.body": "Тражена страница није пронађена. Да ли сте сигурни да је УРЛ у пољу за адресу исправан?",
+  "bundle_column_error.routing.body": "Није могуће пронаћи тражену страницу. Да ли сте сигурни да је URL у адресном пољу исправан?",
   "bundle_column_error.routing.title": "404",
   "bundle_modal_error.close": "Затвори",
   "bundle_modal_error.message": "Нешто није било у реду при учитавању ове компоненте.",
   "bundle_modal_error.retry": "Покушајте поново",
-  "closed_registrations.other_server_instructions": "Пошто је Мастодон децентрализован, можете направити налог на другом серверу али и даље комуницирати са овим.",
-  "closed_registrations_modal.description": "Прављење налога на {domain} тренутно није могуће, али имајте у виду да Вам не треба налог засебно на {domain} да бисте користили Мастодон.",
+  "closed_registrations.other_server_instructions": "Пошто је Mastodon децентрализован, можете направити налог на другом серверу али и даље комуницирати са овим.",
+  "closed_registrations_modal.description": "Креирање налога на {domain} тренутно није могуће, али имајте у виду да вам не треба налог засебно на {domain} да бисте користили Mastodon.",
   "closed_registrations_modal.find_another_server": "Пронађите други сервер",
-  "closed_registrations_modal.preamble": "Мастодон је децентрализован, тако да без обзира где креирате свој налог, моћи ћете да пратите и комуницирате са било ким на овом серверу. Можете чак и сами да га хостујете!",
-  "closed_registrations_modal.title": "Пријављивање на Мастодон",
-  "column.about": "О",
+  "closed_registrations_modal.preamble": "Mastodon је децентрализован, тако да без обзира где креирате свој налог, моћи ћете да пратите и комуницирате са било ким на овом серверу. Можете чак и сами да га хостујете!",
+  "closed_registrations_modal.title": "Регистрација за Mastodon",
+  "column.about": "Основни подаци",
   "column.blocks": "Блокирани корисници",
   "column.bookmarks": "Обележивачи",
   "column.community": "Локална временска линија",
   "column.direct": "Директне поруке",
-  "column.directory": "Претражи профиле",
-  "column.domain_blocks": "Скривени домени",
-  "column.favourites": "Омиљене",
+  "column.directory": "Прегледај профиле",
+  "column.domain_blocks": "Блокирани домени",
+  "column.favourites": "Омиљено",
   "column.follow_requests": "Захтеви за праћење",
   "column.home": "Почетна",
   "column.lists": "Листе",
-  "column.mutes": "Ућуткани корисници",
+  "column.mutes": "Игнорисани корисници",
   "column.notifications": "Обавештења",
-  "column.pins": "Прикачене трубе",
+  "column.pins": "Закачене објаве",
   "column.public": "Здружена временска линија",
   "column_back_button.label": "Назад",
-  "column_header.hide_settings": "Сакриј поставке",
-  "column_header.moveLeft_settings": "Помери колону улево",
-  "column_header.moveRight_settings": "Помери колону удесно",
-  "column_header.pin": "Прикачи",
-  "column_header.show_settings": "Прикажи поставке",
+  "column_header.hide_settings": "Сакриј подешавања",
+  "column_header.moveLeft_settings": "Премести колону улево",
+  "column_header.moveRight_settings": "Премести колону удесно",
+  "column_header.pin": "Закачи",
+  "column_header.show_settings": "Прикажи подешавања",
   "column_header.unpin": "Откачи",
-  "column_subheading.settings": "Поставке",
+  "column_subheading.settings": "Подешавања",
   "community.column_settings.local_only": "Само локално",
-  "community.column_settings.media_only": "Само Медији",
+  "community.column_settings.media_only": "Само мултимедија",
   "community.column_settings.remote_only": "Само удаљено",
   "compose.language.change": "Промени језик",
   "compose.language.search": "Претрага језика...",
   "compose_form.direct_message_warning_learn_more": "Сазнајте више",
-  "compose_form.encryption_warning": "Објаве на Мастодону нису end-to-end енкриптоване. Немојте делити никакве осетљиве информације преко Мастодона.",
-  "compose_form.hashtag_warning": "Ова труба неће бити излистана под било којом тарабом јер је сакривена. Само јавне трубе могу бити претражене тарабом.",
-  "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да Вас запрати и да види објаве намењене само Вашим пратиоцима.",
+  "compose_form.encryption_warning": "Објаве на Mastodon-у нису потпуно шифроване. Немојте делити никакве осетљиве информације преко Mastodon-а.",
+  "compose_form.hashtag_warning": "Ова објава неће бити наведена ни под једном хеш ознаком јер је ненаведена. Само јавне објаве могу се претраживати по хеш ознакама.",
+  "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да вас прати и да види ваше објаве намењене само за ваше пратиоце.",
   "compose_form.lock_disclaimer.lock": "закључан",
-  "compose_form.placeholder": "Шта Вам је на уму?",
+  "compose_form.placeholder": "О чему размишљате?",
   "compose_form.poll.add_option": "Додајте избор",
   "compose_form.poll.duration": "Трајање анкете",
   "compose_form.poll.option_placeholder": "Избор {number}",
-  "compose_form.poll.remove_option": "Одстрани овај избор",
+  "compose_form.poll.remove_option": "Уклони овај избор",
   "compose_form.poll.switch_to_multiple": "Промените анкету да бисте омогућили више избора",
   "compose_form.poll.switch_to_single": "Промените анкету да бисте омогућили један избор",
   "compose_form.publish": "Објави",
   "compose_form.publish_form": "Објави",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Сачувај измене",
-  "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": "Блокирај и Пријави",
+  "compose_form.save_changes": "Сачувај промене",
+  "compose_form.sensitive.hide": "{count, plural, one {Означи мултимедију као осетљиву} few {Означи мултимедију као осетљиву} other {Означи мултимедију као осетљиву}}",
+  "compose_form.sensitive.marked": "{count, plural, one {Мултимедија је означена као осетљива} few {Мултимедија је означена као осетљива} other {Мултимедија је означена као осетљива}}",
+  "compose_form.sensitive.unmarked": "{count, plural, one {Мултимедија није означена као осетљива} few {Мултимедија није означена као осетљива} other {Мултимедија није означена као осетљива}}",
+  "compose_form.spoiler.marked": "Уклони упозорење о садржају",
+  "compose_form.spoiler.unmarked": "Додај упозорење о садржају",
+  "compose_form.spoiler_placeholder": "Овде напишите упозорење",
+  "confirmation_modal.cancel": "Откажи",
+  "confirmations.block.block_and_report": "Блокирај и пријави",
   "confirmations.block.confirm": "Блокирај",
   "confirmations.block.message": "Да ли сте сигурни да желите да блокирате корисника {name}?",
   "confirmations.cancel_follow_request.confirm": "Повуци захтев",
   "confirmations.cancel_follow_request.message": "Да ли сте сигурни да желите да повучете захтев да пратите {name}?",
-  "confirmations.delete.confirm": "Обриши",
-  "confirmations.delete.message": "Да ли сте сигурни да желите обришете овај статус?",
-  "confirmations.delete_list.confirm": "Обриши",
-  "confirmations.delete_list.message": "Да ли сте сигурни да желите да бесповратно обришете ову листу?",
+  "confirmations.delete.confirm": "Избриши",
+  "confirmations.delete.message": "Да ли сте сигурни да желите изришете ову објаву?",
+  "confirmations.delete_list.confirm": "Избриши",
+  "confirmations.delete_list.message": "Да ли сте сигурни да желите да трајно избришете ову листу?",
   "confirmations.discard_edit_media.confirm": "Одбаци",
-  "confirmations.discard_edit_media.message": "Имате несачуване промене у опису или предпрегледу медија, да ли ипак хоћете да их одбаците?",
-  "confirmations.domain_block.confirm": "Сакриј цео домен",
-  "confirmations.domain_block.message": "Да ли сте заиста сигурни да желите да блокирате цео домен {domain}? У већини случајева, неколико добро промишљених блокирања или ућуткавања су довољна и препоручљива.",
+  "confirmations.discard_edit_media.message": "Имате несачуване промене у опису или прегледу медија, да ли ипак хоћете да их одбаците?",
+  "confirmations.domain_block.confirm": "Блокирај цео домен",
+  "confirmations.domain_block.message": "Да ли сте заиста сигурни да желите да блокирате цео домен {domain}? У већини случајева, довољно је и пожељно неколико циљаних блокирања или игнорисања. Нећете видети садржај са тог домена ни у једној јавној временској линији или у вашим обавештењима. Ваши пратиоци са тог домена ће бити уклоњени.",
   "confirmations.logout.confirm": "Одјави се",
   "confirmations.logout.message": "Да ли се сигурни да желите да се одјавите?",
-  "confirmations.mute.confirm": "Ућуткај",
-  "confirmations.mute.explanation": "Ово ће сакрити објаве од њих и објаве које их помињу, али ће им и даље дозволити да виде ваше постове и да вас запрате.",
-  "confirmations.mute.message": "Да ли стварно желите да ућуткате корисника {name}?",
+  "confirmations.mute.confirm": "Игнориши",
+  "confirmations.mute.explanation": "Ово ће сакрити објаве од корисника и објаве које га помињу, али ће му и даље бити дозвољено да види ваше објаве и да вас прати.",
+  "confirmations.mute.message": "Да ли стварно желите да игноришете корисника {name}?",
   "confirmations.redraft.confirm": "Избриши и преправи",
-  "confirmations.redraft.message": "Да ли сте сигурни да желите да избришете овај статус и да га преправите? Сва стављања у омиљене трубе, као и подршке ће бити изгубљене, а одговори на оригинални пост ће бити поништени.",
+  "confirmations.redraft.message": "Да ли сте сигурни да желите да избришете ову објаву и да је преправите? Подржавања и ознаке као омиљених ће бити изгубљени, а одговори ће остати без оригиналне објаве.",
   "confirmations.reply.confirm": "Одговори",
-  "confirmations.reply.message": "Одговарањем ћете обрисати поруку коју састављате. Јесте ли сигурни да желите да наставите?",
+  "confirmations.reply.message": "Одговарањем ћете обрисати поруку коју састављате. Да ли сигурни да желите да наставите?",
   "confirmations.unfollow.confirm": "Отпрати",
   "confirmations.unfollow.message": "Да ли сте сигурни да желите да отпратите корисника {name}?",
-  "conversation.delete": "Обриши преписку",
+  "conversation.delete": "Избриши разговор",
   "conversation.mark_as_read": "Означи као прочитано",
-  "conversation.open": "Прикажи преписку",
+  "conversation.open": "Прикажи разговор",
   "conversation.with": "Са {names}",
   "copypaste.copied": "Копирано",
   "copypaste.copy": "Копирај",
-  "directory.federated": "Са знаних здружених инстанци",
+  "directory.federated": "Са знаног фидеверзума",
   "directory.local": "Само са {domain}",
   "directory.new_arrivals": "Новопридошли",
   "directory.recently_active": "Недавно активни",
   "disabled_account_banner.account_settings": "Подешавања налога",
   "disabled_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен.",
-  "dismissable_banner.community_timeline": "Ово су најновије јавне објаве корисника чије налоге хостује {domain}.",
+  "dismissable_banner.community_timeline": "Ово су најновије јавне објаве људи чије налоге хостује {domain}.",
   "dismissable_banner.dismiss": "Одбаци",
   "dismissable_banner.explore_links": "О овим вестима управо сада разговарају људи на овом и другим серверима децентрализоване мреже.",
-  "dismissable_banner.explore_statuses": "Ове објаве са овог и других сервера у децентрализованој мрежи постају све популарнији на овом серверу.",
-  "dismissable_banner.explore_tags": "Ови хештагови постају све популарнији међу корисницима на овом и другим серверима децентрализоване мреже.",
-  "dismissable_banner.public_timeline": "Ово су најновије јавне објаве корисника на овом и другим серверима децентрализоване мреже који су овом серверу познати.",
-  "embed.instructions": "Угради овај статус на Ваш веб сајт копирањем кода испод.",
-  "embed.preview": "Овако ће да изгледа:",
+  "dismissable_banner.explore_statuses": "Ове објаве са овог и других сервера у децентрализованој мрежи постају све популарније на овом серверу.",
+  "dismissable_banner.explore_tags": "Ове хеш ознаке постају све популарније међу људима на овом и другим серверима децентрализоване мреже.",
+  "dismissable_banner.public_timeline": "Ово су најновије јавне објаве људи на овом и другим серверима децентрализоване мреже за које овај сервер зна.",
+  "embed.instructions": "Уградите ову објаву на свој веб сајт копирањем кода испод.",
+  "embed.preview": "Ево како ће то изгледати:",
   "emoji_button.activity": "Активност",
-  "emoji_button.clear": "Очисти",
-  "emoji_button.custom": "Произвољно",
-  "emoji_button.flags": "Заставе",
+  "emoji_button.clear": "Обриши",
+  "emoji_button.custom": "Прилагођено",
+  "emoji_button.flags": "Заставице",
   "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": "Најчешће коришћени",
@@ -207,142 +207,142 @@
   "emoji_button.search_results": "Резултати претраге",
   "emoji_button.symbols": "Симболи",
   "emoji_button.travel": "Путовања и места",
-  "empty_column.account_suspended": "Налог суспендован",
-  "empty_column.account_timeline": "Овде нема труба!",
+  "empty_column.account_suspended": "Налог је суспендован",
+  "empty_column.account_timeline": "Нема објава овде!",
   "empty_column.account_unavailable": "Профил је недоступан",
-  "empty_column.blocks": "Још увек немате блокираних корисника.",
-  "empty_column.bookmarked_statuses": "Још увек немате обележене трубе. Када их обележите, појавиће се овде.",
+  "empty_column.blocks": "Још увек нисте блокирали ниједног корисника.",
+  "empty_column.bookmarked_statuses": "Још увек немате објава доданих у обележиваче. Када додате неку, појавиће се овде.",
   "empty_column.community": "Локална временска линија је празна. Напишите нешто јавно да започнете!",
-  "empty_column.direct": "Још увек немаш ниједну директну поруку. Када је пошаљеш или примиш, она ће се појавити овде.",
-  "empty_column.domain_blocks": "Још увек нема сакривених домена.",
-  "empty_column.explore_statuses": "Тренутно ништа није у тренду. Провери поново касније!",
-  "empty_column.favourited_statuses": "Још увек немате труба које су вам се свиделе. Када вам се једна свиди, појавиће се овде.",
-  "empty_column.favourites": "Још увек се никоме није свидела ова труба. Када се некоме свиди, појавиће се овде.",
-  "empty_column.follow_recommendations": "Изгледа да не може да се генерише било какав предлог за тебе. Можеш да покушаш да користиш претрагу да пронађеш особе које можда познајеш или истражиш популарне хештегове.",
+  "empty_column.direct": "Још увек немате ниједну директну поруку. Када пошаљете или примите неку, појавиће се овде.",
+  "empty_column.domain_blocks": "Још увек нема блокираних домена.",
+  "empty_column.explore_statuses": "Тренутно ништа није у тренду. Проверите поново касније!",
+  "empty_column.favourited_statuses": "Још увек немате објава означених као омиљене. Када означите неку, појавиће се овде.",
+  "empty_column.favourites": "Нико још није означио ову објаву као омиљену. Када неко то уради, појавиће се овде.",
+  "empty_column.follow_recommendations": "Изгледа да не могу да се генеришу било какви предлози за вас. Можете покушати да користите претрагу како бисте потражили људе које можда познајете или истражили популарне хеш ознаке.",
   "empty_column.follow_requests": "Још увек немате захтева за праћење. Када примите захтев, појавиће се овде.",
-  "empty_column.hashtag": "Тренутно нема ништа на овој означеној тараби.",
-  "empty_column.home": "Ваша временска линија је празна! Посетите {public} или користите претрагу да почнете и да упознате нове људе.",
+  "empty_column.hashtag": "Још увек нема ничега у овој хеш ознаци.",
+  "empty_column.home": "Ваша почетна временска линија је празна! Пратите више људи да бисте је попунили. {suggestions}",
   "empty_column.home.suggestions": "Погледајте неке предлоге",
-  "empty_column.list": "У овој листи још нема ничега. Када чланови листе објаве нове статусе, они ће се појавити овде.",
+  "empty_column.list": "У овој листи још нема ничега. Када чланови ове листе објаве нешто ново, појавиће се овде.",
   "empty_column.lists": "Још увек немате ниједну листу. Када направите једну, појавиће се овде.",
-  "empty_column.mutes": "Још увек немате ућутканих корисника.",
-  "empty_column.notifications": "Тренутно немате обавештења. Дружите се мало да започнете разговор.",
-  "empty_column.public": "Овде нема ничега! Напишите нешто јавно, или нађите кориснике са других инстанци које ћете запратити да попуните ову празнину",
+  "empty_column.mutes": "Још увек не игноришете ниједног корисника.",
+  "empty_column.notifications": "Још увек немате никаква обавештења. Када други људи буду у интеракцији са вама, видећете то овде.",
+  "empty_column.public": "Овде нема ничега! Напишите нешто јавно или ручно пратите кориснике са других сервера да бисте ово попунили",
   "error.unexpected_crash.explanation": "Због грешке у нашем коду или проблема са компатибилношћу прегледача, ова страница се није могла правилно приказати.",
   "error.unexpected_crash.explanation_addons": "Ова страница се није могла правилно приказати. Ову грешку вероватно узрокују додаци прегледача или алати за аутоматско превођење.",
-  "error.unexpected_crash.next_steps": "Покушајте да освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Мастодон путем другог прегледача или матичне апликације.",
+  "error.unexpected_crash.next_steps": "Покушајте да освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Mastodon путем другог прегледача или матичне апликације.",
   "error.unexpected_crash.next_steps_addons": "Покушајте да их онемогућите и освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Mastodon преко другог прегледача или матичне апликације.",
-  "errors.unexpected_crash.copy_stacktrace": "Копирај \"stacktrace\" у клипборд",
+  "errors.unexpected_crash.copy_stacktrace": "Копирај „stacktrace” у клипборд",
   "errors.unexpected_crash.report_issue": "Пријави проблем",
   "explore.search_results": "Резултати претраге",
   "explore.title": "Истражи",
-  "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
-  "filter_modal.added.context_mismatch_title": "Context mismatch!",
-  "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
-  "filter_modal.added.expired_title": "Expired filter!",
-  "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
+  "filter_modal.added.context_mismatch_explanation": "Ова категорија филтера се не односи на контекст у којем сте приступили овој објави. Ако желите да се објава филтрира и у овом контексту, морате уредити филтер.",
+  "filter_modal.added.context_mismatch_title": "Контекст се не подудара!",
+  "filter_modal.added.expired_explanation": "Ова категорија филтера је истекла, морате променити датум истека да би се примењивала.",
+  "filter_modal.added.expired_title": "Филтер је истекао!",
+  "filter_modal.added.review_and_configure": "За преглед и даљу конфигурацију ове категорије филтера, идите на {settings_link}.",
   "filter_modal.added.review_and_configure_title": "Подешавања филтера",
-  "filter_modal.added.settings_link": "settings page",
-  "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
-  "filter_modal.added.title": "Filter added!",
-  "filter_modal.select_filter.context_mismatch": "does not apply to this context",
+  "filter_modal.added.settings_link": "страница подешавања",
+  "filter_modal.added.short_explanation": "Ова објава је додата у следећу категорију филтера: {title}.",
+  "filter_modal.added.title": "Филтер је додат!",
+  "filter_modal.select_filter.context_mismatch": "не односи се на овај контекст",
   "filter_modal.select_filter.expired": "истекло",
-  "filter_modal.select_filter.prompt_new": "New category: {name}",
-  "filter_modal.select_filter.search": "Search or create",
-  "filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
+  "filter_modal.select_filter.prompt_new": "Нова категорија: {name}",
+  "filter_modal.select_filter.search": "Претражи или креирај",
+  "filter_modal.select_filter.subtitle": "Користите постојећу категорију или креирајте нову",
   "filter_modal.select_filter.title": "Филтрирај ову објаву",
   "filter_modal.title.status": "Филтрирај објаву",
-  "follow_recommendations.done": "Завршено",
-  "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
-  "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
+  "follow_recommendations.done": "Готово",
+  "follow_recommendations.heading": "Пратите људе чије објаве желите да видите! Ево неких предлога.",
+  "follow_recommendations.lead": "Објаве корисника које пратите ће се појављивати хронолошким редоследом на почетној страници. Не плашите се грешака, можете отпратити кориснике у било ком тренутку!",
   "follow_request.authorize": "Одобри",
   "follow_request.reject": "Одбиј",
-  "follow_requests.unlocked_explanation": "Иако ваш налог није закључан, особље {domain} је помислило да бисте можда желели ручно да прегледате захтеве за праћење са ових налога.",
-  "footer.about": "О",
+  "follow_requests.unlocked_explanation": "Иако ваш налог није закључан, особље {domain} сматра да бисте можда желели да ручно прегледате захтеве за праћење са ових налога.",
+  "footer.about": "Основни подаци",
   "footer.directory": "Директоријум профила",
   "footer.get_app": "Преузмите апликацију",
-  "footer.invite": "Pozovite korisnike",
-  "footer.keyboard_shortcuts": "Пречице на тастатури",
+  "footer.invite": "Позови особе",
+  "footer.keyboard_shortcuts": "Тастерске пречице",
   "footer.privacy_policy": "Политика приватности",
-  "footer.source_code": "View source code",
+  "footer.source_code": "Прикажи изворни код",
   "generic.saved": "Сачувано",
-  "getting_started.heading": "Да почнете",
+  "getting_started.heading": "Први кораци",
   "hashtag.column_header.tag_mode.all": "и {additional}",
   "hashtag.column_header.tag_mode.any": "или {additional}",
   "hashtag.column_header.tag_mode.none": "без {additional}",
   "hashtag.column_settings.select.no_options_message": "Нису пронађени предлози",
-  "hashtag.column_settings.select.placeholder": "Унеси хештег…",
+  "hashtag.column_settings.select.placeholder": "Унесите хеш ознаке…",
   "hashtag.column_settings.tag_mode.all": "Све оve",
   "hashtag.column_settings.tag_mode.any": "Било које од ових",
-  "hashtag.column_settings.tag_mode.none": "Ништа од ових",
-  "hashtag.column_settings.tag_toggle": "Укључи и додатне ознаке за ову колону",
-  "hashtag.follow": "Follow hashtag",
-  "hashtag.unfollow": "Unfollow hashtag",
+  "hashtag.column_settings.tag_mode.none": "Ниједан од ових",
+  "hashtag.column_settings.tag_toggle": "Укључи додатне ознаке за ову колону",
+  "hashtag.follow": "Прати хеш ознаку",
+  "hashtag.unfollow": "Отпрати хеш ознаку",
   "home.column_settings.basic": "Основно",
-  "home.column_settings.show_reblogs": "Прикажи и подржавања",
+  "home.column_settings.show_reblogs": "Прикажи подржавања",
   "home.column_settings.show_replies": "Прикажи одговоре",
   "home.hide_announcements": "Сакриј најаве",
   "home.show_announcements": "Пријажи најаве",
-  "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.",
-  "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.",
-  "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.",
-  "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
-  "interaction_modal.on_another_server": "On a different server",
-  "interaction_modal.on_this_server": "On this server",
-  "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
-  "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
-  "interaction_modal.title.favourite": "Favourite {name}'s post",
-  "interaction_modal.title.follow": "Follow {name}",
-  "interaction_modal.title.reblog": "Boost {name}'s post",
-  "interaction_modal.title.reply": "Reply to {name}'s post",
-  "intervals.full.days": "{number, plural, one {# дан} other {# дана}}",
-  "intervals.full.hours": "{number, plural, one {# сат} other {# сати}}",
-  "intervals.full.minutes": "{number, plural, one {# минут} other {# минута}}",
-  "keyboard_shortcuts.back": "да одете назад",
-  "keyboard_shortcuts.blocked": "да отворите листу блокираних корисника",
-  "keyboard_shortcuts.boost": "да подржите",
-  "keyboard_shortcuts.column": "да се пребаците на статус у једној од колона",
-  "keyboard_shortcuts.compose": "да се пребаците на писање новог тута",
+  "interaction_modal.description.favourite": "Са налогом на Mastodon-у, можете означити ову објаву као омиљену како бисте дали до знања аутору да вам се свиђа и сачували је за касније.",
+  "interaction_modal.description.follow": "Са налогом на Mastodon-у, можете пратити корисника {name} како бисте примали његове објаве на почетној страници.",
+  "interaction_modal.description.reblog": "Са налогом на Mastodon-у, можете подржати ову објаву како бите је поделили са својим пратиоцима.",
+  "interaction_modal.description.reply": "Са налогом на Mastodon-у, можете одговорити на ову објаву.",
+  "interaction_modal.on_another_server": "На другом серверу",
+  "interaction_modal.on_this_server": "На овом серверу",
+  "interaction_modal.other_server_instructions": "Копирајте и налепите ову URL адресу у поље претраге своје омиљене Mastodon апликације или веб окружење свог Mastodon сервера.",
+  "interaction_modal.preamble": "Пошто је Mastodon децентрализован, можете користити свој постојећи налог који хостује други Mastodon сервер или компатибилна платформа ако немате налог на овом.",
+  "interaction_modal.title.favourite": "Означи објаву корисника {name} као омиљену",
+  "interaction_modal.title.follow": "Прати {name}",
+  "interaction_modal.title.reblog": "Подржи објаву корисника {name}",
+  "interaction_modal.title.reply": "Одговори на објаву корисника {name}",
+  "intervals.full.days": "{number, plural, one {# дан} few {# дана} other {# дана}}",
+  "intervals.full.hours": "{number, plural, one {# сат} few {# сата} other {# сати}}",
+  "intervals.full.minutes": "{number, plural, one {# минут} few {# минута} other {# минута}}",
+  "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": "да се померите на доле у листи",
-  "keyboard_shortcuts.enter": "да отворите статус",
-  "keyboard_shortcuts.favourite": "да означите као омиљено",
-  "keyboard_shortcuts.favourites": "да отворите листу фаворита",
-  "keyboard_shortcuts.federated": "да отворите здружену временску линију",
-  "keyboard_shortcuts.heading": "Пречице на тастатури",
-  "keyboard_shortcuts.home": "да отворите временску линију почетне",
+  "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": "да прикажете овај подсетник",
-  "keyboard_shortcuts.local": "да отворите локалну временску линију",
-  "keyboard_shortcuts.mention": "да поменете аутора",
-  "keyboard_shortcuts.muted": "да отворите листу ућутканих корисника",
-  "keyboard_shortcuts.my_profile": "Погледајте ваш профил",
-  "keyboard_shortcuts.notifications": "да отворите колону обавештења",
-  "keyboard_shortcuts.open_media": "за отварање медија",
-  "keyboard_shortcuts.pinned": "да отворите листу закачених труба",
-  "keyboard_shortcuts.profile": "Погледајте профил аутора",
-  "keyboard_shortcuts.reply": "да одговорите",
-  "keyboard_shortcuts.requests": "да отворите листу примљених захтева за праћење",
-  "keyboard_shortcuts.search": "да се пребаците на претрагу",
-  "keyboard_shortcuts.spoilers": "to show/hide CW field",
-  "keyboard_shortcuts.start": "да отворите колону \"почнимо\"",
-  "keyboard_shortcuts.toggle_hidden": "да прикажете/сакријте текст иза CW-а",
-  "keyboard_shortcuts.toggle_sensitivity": "за приказивање/сакривање медија",
+  "keyboard_shortcuts.legend": "Прикажи ову легенду",
+  "keyboard_shortcuts.local": "Отвори локалну временску линију",
+  "keyboard_shortcuts.mention": "Помени аутора",
+  "keyboard_shortcuts.muted": "Отвори листу игнорисаних корисника",
+  "keyboard_shortcuts.my_profile": "Отворите свој профил",
+  "keyboard_shortcuts.notifications": "Отвори колону обавештења",
+  "keyboard_shortcuts.open_media": "Отвори мултимедију",
+  "keyboard_shortcuts.pinned": "Отвори листу закачених објава",
+  "keyboard_shortcuts.profile": "Отвори профил аутора",
+  "keyboard_shortcuts.reply": "Одговори на објаву",
+  "keyboard_shortcuts.requests": "Отвори листу захтева за праћење",
+  "keyboard_shortcuts.search": "Фокусирај траку претраге",
+  "keyboard_shortcuts.spoilers": "Прикажи/сакриј поље текста упозорења о садржају (CW)",
+  "keyboard_shortcuts.start": "Отвори колону „први кораци”",
+  "keyboard_shortcuts.toggle_hidden": "Прикажи/сакриј текст иза CW-а",
+  "keyboard_shortcuts.toggle_sensitivity": "Прикажи/сакриј мултимедију",
   "keyboard_shortcuts.toot": "Започни нову објаву",
-  "keyboard_shortcuts.unfocus": "да одфокусирате/не будете више на претрази/прављењу нове трубе",
-  "keyboard_shortcuts.up": "да се померите на горе у листи",
+  "keyboard_shortcuts.unfocus": "Уклони фокус са поља за унос текста/претраге",
+  "keyboard_shortcuts.up": "Премести нагоре у листи",
   "lightbox.close": "Затвори",
-  "lightbox.compress": "Умањи преглед слике",
-  "lightbox.expand": "Увећај преглед слике",
-  "lightbox.next": "Следећи",
-  "lightbox.previous": "Претходни",
+  "lightbox.compress": "Компримуј оквир за приказ слике",
+  "lightbox.expand": "Прошири оквир за приказ слике",
+  "lightbox.next": "Следеће",
+  "lightbox.previous": "Претходно",
   "limited_account_hint.action": "Ипак прикажи профил",
   "limited_account_hint.title": "Овај профил су сакрили модератори {domain}.",
   "lists.account.add": "Додај на листу",
   "lists.account.remove": "Уклони са листе",
-  "lists.delete": "Обриши листу",
-  "lists.edit": "Измени листу",
+  "lists.delete": "Избриши листу",
+  "lists.edit": "Уреди листу",
   "lists.edit.submit": "Промени наслов",
   "lists.new.create": "Додај листу",
   "lists.new.title_placeholder": "Наслов нове листе",
@@ -353,33 +353,33 @@
   "lists.search": "Претражи међу људима које пратите",
   "lists.subheading": "Ваше листе",
   "load_pending": "{count, plural, one {# нова ставка} few {# нове ставке} other {# нових ставки}}",
-  "loading_indicator.label": "Учитавам...",
-  "media_gallery.toggle_visible": "Укључи/искључи видљивост",
+  "loading_indicator.label": "Учитавање...",
+  "media_gallery.toggle_visible": "{number, plural, one {Сакриј слику} few {Сакриј слике} other {Сакриј слике}}",
   "missing_indicator.label": "Није пронађено",
-  "missing_indicator.sublabel": "Овај ресурс није пронађен",
-  "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
+  "missing_indicator.sublabel": "Овај ресурс није могуће пронаћи",
+  "moved_to_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен јер сте прешли на {movedToAccount}.",
   "mute_modal.duration": "Трајање",
-  "mute_modal.hide_notifications": "Сакриј обавештења од овог корисника?",
+  "mute_modal.hide_notifications": "Сакрити обавештења од овог корисника?",
   "mute_modal.indefinite": "Неодређен",
-  "navigation_bar.about": "О",
+  "navigation_bar.about": "Основни подаци",
   "navigation_bar.blocks": "Блокирани корисници",
-  "navigation_bar.bookmarks": "Маркери",
+  "navigation_bar.bookmarks": "Обележивачи",
   "navigation_bar.community_timeline": "Локална временска линија",
-  "navigation_bar.compose": "Саставите нову трубу",
+  "navigation_bar.compose": "Састави нову објаву",
   "navigation_bar.direct": "Директне поруке",
   "navigation_bar.discover": "Откриј",
-  "navigation_bar.domain_blocks": "Сакривени домени",
+  "navigation_bar.domain_blocks": "Блокирани домени",
   "navigation_bar.edit_profile": "Уреди профил",
   "navigation_bar.explore": "Истражи",
-  "navigation_bar.favourites": "Омиљене",
-  "navigation_bar.filters": "Пригушене речи",
+  "navigation_bar.favourites": "Омиљено",
+  "navigation_bar.filters": "Игнорисане речи",
   "navigation_bar.follow_requests": "Захтеви за праћење",
   "navigation_bar.follows_and_followers": "Праћења и пратиоци",
   "navigation_bar.lists": "Листе",
   "navigation_bar.logout": "Одјава",
-  "navigation_bar.mutes": "Ућуткани корисници",
+  "navigation_bar.mutes": "Игнорисани корисници",
   "navigation_bar.personal": "Лично",
-  "navigation_bar.pins": "Прикачене трубе",
+  "navigation_bar.pins": "Закачене објаве",
   "navigation_bar.preferences": "Подешавања",
   "navigation_bar.public_timeline": "Здружена временска линија",
   "navigation_bar.search": "Претрага",
@@ -387,19 +387,19 @@
   "not_signed_in_indicator.not_signed_in": "Морате да се пријавите да приступите овом ресурсу.",
   "notification.admin.report": "{name} је пријавио {target}",
   "notification.admin.sign_up": "{name} се регистровао",
-  "notification.favourite": "{name} је ставио/ла Ваш статус као омиљени",
-  "notification.follow": "{name} Вас је запратио/ла",
-  "notification.follow_request": "{name} је затражио да Вас запрати",
-  "notification.mention": "{name} Вас је поменуо/ла",
+  "notification.favourite": "{name} је означио вашу објаву као омиљену",
+  "notification.follow": "{name} вас је запратио",
+  "notification.follow_request": "{name} је затражио да вас прати",
+  "notification.mention": "{name} вас је поменуо",
   "notification.own_poll": "Ваша анкета је завршена",
   "notification.poll": "Завршена је анкета у којој сте гласали",
-  "notification.reblog": "{name} је подржао/ла Ваш статус",
-  "notification.status": "{name} управо објавио",
-  "notification.update": "{name} је изменио објаву",
-  "notifications.clear": "Очисти обавештења",
-  "notifications.clear_confirmation": "Да ли сте сигурно да трајно желите да очистите Ваша обавештења?",
+  "notification.reblog": "{name} је подржао вашу објаву",
+  "notification.status": "{name} је управо објавио",
+  "notification.update": "{name} је уредио објаву",
+  "notifications.clear": "Обриши обавештења",
+  "notifications.clear_confirmation": "Да ли сте сигурни да желите трајно да обришете сва ваша обавештења?",
   "notifications.column_settings.admin.report": "Нове пријаве:",
-  "notifications.column_settings.admin.sign_up": "Нове пријаве:",
+  "notifications.column_settings.admin.sign_up": "Нове рагистрације:",
   "notifications.column_settings.alert": "Обавештења на радној површини",
   "notifications.column_settings.favourite": "Омиљени:",
   "notifications.column_settings.filter_bar.advanced": "Прикажи све категорије",
@@ -409,18 +409,18 @@
   "notifications.column_settings.follow_request": "Нови захтеви за праћење:",
   "notifications.column_settings.mention": "Помињања:",
   "notifications.column_settings.poll": "Резултати анкете:",
-  "notifications.column_settings.push": "Гурај обавештења",
-  "notifications.column_settings.reblog": "Подршки:",
+  "notifications.column_settings.push": "Прослеђена обавештења",
+  "notifications.column_settings.reblog": "Подржавања:",
   "notifications.column_settings.show": "Прикажи у колони",
-  "notifications.column_settings.sound": "Пуштај звук",
-  "notifications.column_settings.status": "Нови тутови:",
+  "notifications.column_settings.sound": "Репродукуј звук",
+  "notifications.column_settings.status": "Нове објаве:",
   "notifications.column_settings.unread_notifications.category": "Непрочитана обавештења",
   "notifications.column_settings.unread_notifications.highlight": "Истакни непрочитана обавештења",
-  "notifications.column_settings.update": "Измене:",
+  "notifications.column_settings.update": "Уређивања:",
   "notifications.filter.all": "Све",
-  "notifications.filter.boosts": "Подршки",
-  "notifications.filter.favourites": "Омиљене",
-  "notifications.filter.follows": "Праћени",
+  "notifications.filter.boosts": "Подржавања",
+  "notifications.filter.favourites": "Омиљено",
+  "notifications.filter.follows": "Праћења",
   "notifications.filter.mentions": "Помињања",
   "notifications.filter.polls": "Резултати анкете",
   "notifications.filter.statuses": "Ажурирања од људи које пратите",
@@ -431,82 +431,82 @@
   "notifications.permission_denied_alert": "Обавештења на радној површини не могу бити омогућена, јер је дозвола прегледача раније била одбијена",
   "notifications.permission_required": "Обавештења на радној површини нису доступна јер потребна дозвола није додељена.",
   "notifications_permission_banner.enable": "Омогућити обавештења на радној површини",
-  "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
-  "notifications_permission_banner.title": "Ништа не пропустите",
+  "notifications_permission_banner.how_to_control": "Да бисте примали обавештења када Mastodon није отворен, омогућите обавештења на радној површини. Kада су обавештења на радној површини омогућена врсте интеракција које она генеришу могу се подешавати помоћу дугмета {icon}.",
+  "notifications_permission_banner.title": "Никада ништа не пропустите",
   "picture_in_picture.restore": "Врати то назад",
   "poll.closed": "Затворено",
   "poll.refresh": "Освежи",
   "poll.total_people": "{count, plural, one {# особа} few {# особе} other {# особа}}",
-  "poll.total_votes": "{count, plural, one {# гласање} few {# гласања} other {# гласања}}",
+  "poll.total_votes": "{count, plural, one {# глас} few {# гласа} other {# гласова}}",
   "poll.vote": "Гласајте",
   "poll.voted": "Гласали сте за овај одговор",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, one {# глас} few {# гласа} other {# гласова}}",
   "poll_button.add_poll": "Додај анкету",
   "poll_button.remove_poll": "Уклони анкету",
-  "privacy.change": "Подеси статус приватности",
-  "privacy.direct.long": "Објави само корисницима који су поменути",
-  "privacy.direct.short": "Само за поменуте",
-  "privacy.private.long": "Објави само пратиоцима",
+  "privacy.change": "Промени приватност објаве",
+  "privacy.direct.long": "Видљиво само за поменуте кориснике",
+  "privacy.direct.short": "Само поменуте особе",
+  "privacy.private.long": "Видљиво само за пратиоце",
   "privacy.private.short": "Само пратиоци",
-  "privacy.public.long": "Видљиво свима",
+  "privacy.public.long": "Видљиво за све",
   "privacy.public.short": "Јавно",
-  "privacy.unlisted.long": "Видљиво свима, али искључено из могућности откривања",
+  "privacy.unlisted.long": "Видљиво за све, али искључено из функције откривања",
   "privacy.unlisted.short": "Неизлистано",
-  "privacy_policy.last_updated": "Последња измена {date}",
+  "privacy_policy.last_updated": "Последње ажурирање {date}",
   "privacy_policy.title": "Политика приватности",
   "refresh": "Освежи",
   "regeneration_indicator.label": "Учитавање…",
   "regeneration_indicator.sublabel": "Ваша почетна страница се припрема!",
-  "relative_time.days": "{number}д",
-  "relative_time.full.days": "пре {number, plural, one {# дана} other {# дана}}",
-  "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
+  "relative_time.days": "{number} дан.",
+  "relative_time.full.days": "Пре {number, plural, one {# дан} few {# дана} other {# дана}}",
+  "relative_time.full.hours": "пре {number, plural, one {# сат} few {# сата} other {# сати}}",
   "relative_time.full.just_now": "управо сад",
-  "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
-  "relative_time.hours": "{number}х",
+  "relative_time.full.minutes": "пре {number, plural, one {# минут} few {# минута} other {# минута}}",
+  "relative_time.full.seconds": "пре {number, plural, one {# секунду} few {# секунде} other {# секунди}}",
+  "relative_time.hours": "{number} час.",
   "relative_time.just_now": "сада",
-  "relative_time.minutes": "{number}м",
-  "relative_time.seconds": "{number}с",
+  "relative_time.minutes": "{number} мин.",
+  "relative_time.seconds": "{number} сек.",
   "relative_time.today": "данас",
-  "reply_indicator.cancel": "Поништи",
+  "reply_indicator.cancel": "Откажи",
   "report.block": "Блокирај",
-  "report.block_explanation": "Нећете видети његове/њене објаве. Ни он/она неће видети Ваше објаве нити ће моћи да Вас прате. Такође може да зна да је блокиран(а).",
+  "report.block_explanation": "Нећете видети објаве корисника. Ни он неће видети ваше објаве нити ће моћи да вас прати. Такође може да зна да је блокиран.",
   "report.categories.other": "Остало",
   "report.categories.spam": "Спам",
   "report.categories.violation": "Садржај крши једно или више правила сервера",
   "report.category.subtitle": "Одаберите најприближније",
   "report.category.title": "Реците нам шта је проблем са овим {type}",
   "report.category.title_account": "профилом",
-  "report.category.title_status": "постом",
+  "report.category.title_status": "објавом",
   "report.close": "Готово",
   "report.comment.title": "Да ли има нешто додатно што треба да знамо?",
   "report.forward": "Проследити {target}",
   "report.forward_hint": "Налог је са другог сервера. Послати анонимну копију пријаве и тамо?",
-  "report.mute": "Ућуткај",
-  "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
-  "report.next": "Next",
+  "report.mute": "Игнориши",
+  "report.mute_explanation": "Нећете видети објаве корисника. Он и и даље може да вас прати и види ваше објаве и неће знати да је игнорисан.",
+  "report.next": "Следеће",
   "report.placeholder": "Додатни коментари",
-  "report.reasons.dislike": "I don't like it",
-  "report.reasons.dislike_description": "It is not something you want to see",
-  "report.reasons.other": "It's something else",
-  "report.reasons.other_description": "The issue does not fit into other categories",
+  "report.reasons.dislike": "Не свиђа ми се",
+  "report.reasons.dislike_description": "Ово није нешто што желиш да видите",
+  "report.reasons.other": "Нешто друго",
+  "report.reasons.other_description": "Проблем се не уклапа у друге категорије",
   "report.reasons.spam": "Ово је спам",
-  "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
+  "report.reasons.spam_description": "Злонамерне везе, лажно ангажовање или одговори који се понављају",
   "report.reasons.violation": "Крши правила сервера",
   "report.reasons.violation_description": "Свесни сте да крши нека одређена правила",
-  "report.rules.subtitle": "Select all that apply",
-  "report.rules.title": "Which rules are being violated?",
-  "report.statuses.subtitle": "Select all that apply",
+  "report.rules.subtitle": "Изабери све што важи",
+  "report.rules.title": "Која правила су прекршена?",
+  "report.statuses.subtitle": "Изабери све што важи",
   "report.statuses.title": "Да ли постоје било какве објаве које подржавају ову пријаву?",
   "report.submit": "Пошаљи",
   "report.target": "Пријављујем {target}",
-  "report.thanks.take_action": "Ово су Ваше опције да контролишете шта видите на Мастодону:",
-  "report.thanks.take_action_actionable": "Док ми гледамо, можете применити следеће радње против @{name}:",
+  "report.thanks.take_action": "Ово су Ваше опције да контролишете шта видите на Mastodon-у:",
+  "report.thanks.take_action_actionable": "Док ми прегледамо ово, можете применити следеће радње против @{name}:",
   "report.thanks.title": "Не желите да видите ово?",
   "report.thanks.title_actionable": "Хвала на пријави, прегледаћемо је.",
   "report.unfollow": "Отпрати @{name}",
-  "report.unfollow_explanation": "Пратиш овај налог. Да не би више видео њихове објаве у својом основном низу објава, престани да их пратиш.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} објава} other {{count} објаве}} у прилогу",
+  "report.unfollow_explanation": "Пратите овај налог. Да не бисте више видели његове објаве на почетној страници, отпратите га.",
+  "report_notification.attached_statuses": "{count, plural, one {{count} објава} few {{count} објаве} other {{count} објава}} у прилогу",
   "report_notification.categories.other": "Остало",
   "report_notification.categories.spam": "Спам",
   "report_notification.categories.violation": "Кршење правила",
@@ -514,68 +514,68 @@
   "search.placeholder": "Претрага",
   "search.search_or_paste": "Претражите или унесите адресу",
   "search_popout.search_format": "Напредни формат претраге",
-  "search_popout.tips.full_text": "Једноставан текст враћа статусе које сте написали, фаворизовали, подржали или били поменути, као и подударање корисничких имена, приказаних имена, и тараба.",
-  "search_popout.tips.hashtag": "хештег",
-  "search_popout.tips.status": "статус",
-  "search_popout.tips.text": "Тражењем обичног текста ћете добити сва пронађена имена, сва корисничка имена и све нађене хештегове",
+  "search_popout.tips.full_text": "Једноставан текст враћа објаве које сте написали, додали у омиљене, подржали или у којима сте били поменути, као и подударање корисничких имена, приказана имена и хеш ознаке.",
+  "search_popout.tips.hashtag": "хеш ознака",
+  "search_popout.tips.status": "објава",
+  "search_popout.tips.text": "Једноставан текст враћа подударање имена за приказ, корисничка имена и хеш ознаке",
   "search_popout.tips.user": "корисник",
   "search_results.accounts": "Људи",
   "search_results.all": "Све",
-  "search_results.hashtags": "Тарабе",
-  "search_results.nothing_found": "Нема ништа за овај термин претраге",
-  "search_results.statuses": "Трубе",
-  "search_results.statuses_fts_disabled": "Претрага објава по садржају није омогућена на овом Мастодон серверу.",
+  "search_results.hashtags": "Хеш ознаке",
+  "search_results.nothing_found": "Није могуће пронаћи ништа за ове термине за претрагу",
+  "search_results.statuses": "Објаве",
+  "search_results.statuses_fts_disabled": "Претрага објава по садржају није омогућена на овом Mastodon серверу.",
   "search_results.title": "Претражи {q}",
   "search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}",
   "server_banner.about_active_users": "Људи који су користили овај сервер у претходних 30 дана (месечно активних корисника)",
   "server_banner.active_users": "активних корисника",
   "server_banner.administered_by": "Администрирано од стране:",
-  "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
+  "server_banner.introduction": "{domain} је део децентрализоване друштвене мреже коју покреће {mastodon}.",
   "server_banner.learn_more": "Сазнајте више",
   "server_banner.server_stats": "Статистике сервера:",
   "sign_in_banner.create_account": "Направи налог",
   "sign_in_banner.sign_in": "Пријави се",
   "sign_in_banner.text": "Пријавите се да пратите профиле или хештегове, ставите објаве као омиљене, делите и одговарате на њих или комуницирате са свог налога са другог сервера.",
-  "status.admin_account": "Отвори модераторски интерфејс за @{name}",
-  "status.admin_status": "Отвори овај статус у модераторском интерфејсу",
+  "status.admin_account": "Отвори модераторско окружење за @{name}",
+  "status.admin_status": "Отвори ову објаву у модераторском окружењу",
   "status.block": "Блокирај @{name}",
-  "status.bookmark": "Обележи",
+  "status.bookmark": "Додај у обележиваче",
   "status.cancel_reblog_private": "Уклони подршку",
-  "status.cannot_reblog": "Овај статус не може да се подржи",
-  "status.copy": "Копирај везу на статус",
-  "status.delete": "Обриши",
-  "status.detailed_status": "Детаљни преглед разговора",
+  "status.cannot_reblog": "Ова објава се не може подржати",
+  "status.copy": "Копирај везу у објаву",
+  "status.delete": "Избриши",
+  "status.detailed_status": "Детаљан приказ разговора",
   "status.direct": "Директна порука @{name}",
-  "status.edit": "Измени",
-  "status.edited": "Измењено {date}",
-  "status.edited_x_times": "Измењено {count, plural, one {{count} пут} other {{count} пута}}",
-  "status.embed": "Угради на сајт",
+  "status.edit": "Уреди",
+  "status.edited": "Уређено {date}",
+  "status.edited_x_times": "Уређено {count, plural, one {{count} пут} other {{count} пута}}",
+  "status.embed": "Угради",
   "status.favourite": "Омиљено",
   "status.filter": "Филтрирај ову објаву",
   "status.filtered": "Филтрирано",
-  "status.hide": "Сакриј тут",
+  "status.hide": "Сакриј објаву",
   "status.history.created": "{name} написао/ла {date}",
-  "status.history.edited": "{name} изменио/ла {date}",
+  "status.history.edited": "{name} уредио/ла {date}",
   "status.load_more": "Учитај још",
   "status.media_hidden": "Мултимедија сакривена",
-  "status.mention": "Помени корисника @{name}",
+  "status.mention": "Помени @{name}",
   "status.more": "Још",
-  "status.mute": "Ућуткај @{name}",
-  "status.mute_conversation": "Ућуткај преписку",
-  "status.open": "Прошири овај статус",
+  "status.mute": "Игнориши @{name}",
+  "status.mute_conversation": "Игнориши разговор",
+  "status.open": "Прошири ову објаву",
   "status.pin": "Закачи на профил",
-  "status.pinned": "Закачена труба",
+  "status.pinned": "Закачене објаве",
   "status.read_more": "Прочитајте више",
   "status.reblog": "Подржи",
-  "status.reblog_private": "Подржи да види првобитна публика",
-  "status.reblogged_by": "{name} подржао/ла",
-  "status.reblogs.empty": "Још увек нико није подржао ову трубу. Када буде подржана, појавиће се овде.",
-  "status.redraft": "Избриши и преправи",
+  "status.reblog_private": "Подржи са оригиналном видљивошћу",
+  "status.reblogged_by": "{name} је подржао/ла",
+  "status.reblogs.empty": "Још увек нико није подржао ову објаву. Када буде подржана, појавиће се овде.",
+  "status.redraft": "Избриши и преобликуј",
   "status.remove_bookmark": "Уклони обележивач",
   "status.replied_to": "Одговор за {name}",
   "status.reply": "Одговори",
   "status.replyAll": "Одговори на дискусију",
-  "status.report": "Пријави корисника @{name}",
+  "status.report": "Пријави @{name}",
   "status.sensitive_warning": "Осетљив садржај",
   "status.share": "Подели",
   "status.show_filter_reason": "Ипак прикажи",
@@ -587,63 +587,63 @@
   "status.translate": "Преведи",
   "status.translated_from_with": "Преведено са {lang} користећи {provider}",
   "status.uncached_media_warning": "Није доступно",
-  "status.unmute_conversation": "Укључи преписку",
+  "status.unmute_conversation": "Не игнориши разговор",
   "status.unpin": "Откачи са профила",
   "subscribed_languages.lead": "Само објаве на означеним језицима ће се појављивати на почетној линији и на листама после ове измене. Одаберите ништа да примате објаве на свим језицима.",
   "subscribed_languages.save": "Сачувај измене",
   "subscribed_languages.target": "Промени језике на које је {target} пријављен",
   "suggestions.dismiss": "Одбаци предлог",
-  "suggestions.header": "Можда ће Вас занимати…",
-  "tabs_bar.federated_timeline": "Федерисано",
+  "suggestions.header": "Можда ће вас занимати…",
+  "tabs_bar.federated_timeline": "Здружено",
   "tabs_bar.home": "Почетна",
   "tabs_bar.local_timeline": "Локално",
   "tabs_bar.notifications": "Обавештења",
   "time_remaining.days": "Остало {number, plural, one {# дан} few {# дана} other {# дана}}",
   "time_remaining.hours": "Остало {number, plural, one {# сат} few {# сата} other {# сати}}",
   "time_remaining.minutes": "Остало {number, plural, one {# минут} few {# минута} other {# минута}}",
-  "time_remaining.moments": "Преостао тренутак",
+  "time_remaining.moments": "Још неколико тренутака",
   "time_remaining.seconds": "Остало {number, plural, one {# секунд} few {# секунде} other {# секунди}}",
   "timeline_hint.remote_resource_not_displayed": "{resource} са других сервера се не приказују.",
   "timeline_hint.resources.followers": "Пратиоци",
   "timeline_hint.resources.follows": "Праћени",
-  "timeline_hint.resources.statuses": "Старији тут",
-  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
+  "timeline_hint.resources.statuses": "Старије објаве",
+  "trends.counter_by_accounts": "{count, plural, one {{counter} особа} few {{counter} особе} other {{counter} особа}} у протеклих {days, plural, one {дан} few {{days} дана} other {{days} дана}}",
   "trends.trending_now": "У тренду сада",
-  "ui.beforeunload": "Ако напустите Мастодон, изгубићете написани нацрт.",
-  "units.short.billion": "{count}Б",
-  "units.short.million": "{count}М",
-  "units.short.thousand": "{count}К",
-  "upload_area.title": "Превуците овде да отпремите",
-  "upload_button.label": "Додај мултимедију (JPEG, PNG, GIF, WebM, MP4, MOV)",
-  "upload_error.limit": "Достигнуто ограничење величине за отпремање.",
+  "ui.beforeunload": "Ваш нацрт ће бити изгубљен ако напустите Mastodon.",
+  "units.short.billion": "{count} млрд.",
+  "units.short.million": "{count} мил.",
+  "units.short.thousand": "{count} хиљ.",
+  "upload_area.title": "Превуците и отпустите за отпремање",
+  "upload_button.label": "Додај слике, видео или аудио датотеку",
+  "upload_error.limit": "Достигнуто је ограничење за отпремање датотека.",
   "upload_error.poll": "Отпремање датотека није дозвољено са анкетама.",
-  "upload_form.audio_description": "Опишите за људе са оштећењем слуха",
+  "upload_form.audio_description": "Опишите за особе са оштећеним слухом",
   "upload_form.description": "Опишите за особе са оштећеним видом",
-  "upload_form.description_missing": "Нема описа",
+  "upload_form.description_missing": "Нема додатог описа",
   "upload_form.edit": "Уреди",
-  "upload_form.thumbnail": "Промени приказ слика",
-  "upload_form.undo": "Обриши",
-  "upload_form.video_description": "Опишите за људе са оштећењем слуха или вида",
-  "upload_modal.analyzing_picture": "Анализа слике…",
+  "upload_form.thumbnail": "Промени сличицу",
+  "upload_form.undo": "Избриши",
+  "upload_form.video_description": "Опишите за особе са оштећеним слухом или видом",
+  "upload_modal.analyzing_picture": "Анализирање слике…",
   "upload_modal.apply": "Примени",
-  "upload_modal.applying": "Примењујем…",
-  "upload_modal.choose_image": "Изабери слику",
+  "upload_modal.applying": "Примена…",
+  "upload_modal.choose_image": "Одаберите слику",
   "upload_modal.description_placeholder": "Љубазни фењерџија чађавог лица хоће да ми покаже штос",
   "upload_modal.detect_text": "Откриј текст са слике",
-  "upload_modal.edit_media": "Уреди милтимедијум",
-  "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
+  "upload_modal.edit_media": "Уреди милтимедију",
+  "upload_modal.hint": "Кликните или превуците кружић на прегледу за избор тачке фокуса која ће увек бити видљива на свим сличицама.",
   "upload_modal.preparing_ocr": "Припрема OCR-а…",
   "upload_modal.preview_label": "Преглед ({ratio})",
-  "upload_progress.label": "Отпремам...",
+  "upload_progress.label": "Отпремање...",
   "upload_progress.processing": "Обрада…",
   "video.close": "Затвори видео",
   "video.download": "Преузимање датотеке",
-  "video.exit_fullscreen": "Напусти цео екран",
+  "video.exit_fullscreen": "Изађи из режима целог екрана",
   "video.expand": "Прошири видео",
   "video.fullscreen": "Цео екран",
   "video.hide": "Сакриј видео",
-  "video.mute": "Угаси звук",
+  "video.mute": "Искључи звук",
   "video.pause": "Паузирај",
-  "video.play": "Пусти",
-  "video.unmute": "Врати звук"
+  "video.play": "Репродукуј",
+  "video.unmute": "Укључи звук"
 }
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index ea69b1e39..6c3788d51 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -95,7 +95,7 @@
   "closed_registrations.other_server_instructions": "เนื่องจาก Mastodon เป็นแบบกระจายศูนย์ คุณสามารถสร้างบัญชีในเซิร์ฟเวอร์อื่นและยังคงโต้ตอบกับเซิร์ฟเวอร์นี้",
   "closed_registrations_modal.description": "ไม่สามารถสร้างบัญชีใน {domain} ได้ในปัจจุบัน แต่โปรดจำไว้ว่าคุณไม่จำเป็นต้องมีบัญชีใน {domain} โดยเฉพาะเพื่อใช้ Mastodon",
   "closed_registrations_modal.find_another_server": "ค้นหาเซิร์ฟเวอร์อื่น",
-  "closed_registrations_modal.preamble": "Mastodon เป็นแบบกระจายศูนย์ ดังนั้นไม่ว่าคุณจะสร้างบัญชีของคุณที่ใด คุณจะสามารถติดตามและโต้ตอบกับใครก็ได้ในเซิร์ฟเวอร์นี้ คุณยังสามารถโฮสต์เซิร์ฟเวอร์ด้วยตนเองได้อีกด้วย!",
+  "closed_registrations_modal.preamble": "Mastodon เป็นแบบกระจายศูนย์ ดังนั้นไม่ว่าคุณจะสร้างบัญชีของคุณที่ใด คุณจะสามารถติดตามและโต้ตอบกับใครก็ตามในเซิร์ฟเวอร์นี้ คุณยังสามารถโฮสต์บัญชีด้วยตนเองได้อีกด้วย!",
   "closed_registrations_modal.title": "การลงทะเบียนใน Mastodon",
   "column.about": "เกี่ยวกับ",
   "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
@@ -184,12 +184,12 @@
   "directory.recently_active": "ใช้งานล่าสุด",
   "disabled_account_banner.account_settings": "การตั้งค่าบัญชี",
   "disabled_account_banner.text": "มีการปิดใช้งานบัญชีของคุณ {disabledAccount} ในปัจจุบัน",
-  "dismissable_banner.community_timeline": "ด้านล่างนี้เป็นโพสต์สาธารณะล่าสุดจากผู้คนที่มีบัญชีอยู่บน {domain}",
+  "dismissable_banner.community_timeline": "นี่คือโพสต์สาธารณะล่าสุดจากผู้คนที่บัญชีได้รับการโฮสต์โดย {domain}",
   "dismissable_banner.dismiss": "ปิด",
   "dismissable_banner.explore_links": "เรื่องข่าวเหล่านี้กำลังได้รับการพูดถึงโดยผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ในตอนนี้",
   "dismissable_banner.explore_statuses": "โพสต์เหล่านี้จากเซิร์ฟเวอร์นี้และอื่น ๆ ในเครือข่ายแบบกระจายศูนย์กำลังได้รับความสนใจในเซิร์ฟเวอร์นี้ในตอนนี้",
   "dismissable_banner.explore_tags": "แฮชแท็กเหล่านี้กำลังได้รับความสนใจในหมู่ผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ในตอนนี้",
-  "dismissable_banner.public_timeline": "ด้านล่างนี้เป็นโพสต์สาธารณะล่าสุดจากผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ที่เซิร์ฟเวอร์นี้รู้จัก",
+  "dismissable_banner.public_timeline": "นี่คือโพสต์สาธารณะล่าสุดจากผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ที่เซิร์ฟเวอร์นี้ทราบเกี่ยวกับ",
   "embed.instructions": "ฝังโพสต์นี้ในเว็บไซต์ของคุณโดยคัดลอกโค้ดด้านล่าง",
   "embed.preview": "นี่คือลักษณะที่จะปรากฏ:",
   "emoji_button.activity": "กิจกรรม",
@@ -230,8 +230,8 @@
   "empty_column.public": "ไม่มีสิ่งใดที่นี่! เขียนบางอย่างเป็นสาธารณะ หรือติดตามผู้ใช้จากเซิร์ฟเวอร์อื่น ๆ ด้วยตนเองเพื่อเติมเส้นเวลาให้เต็ม",
   "error.unexpected_crash.explanation": "เนื่องจากข้อบกพร่องในโค้ดของเราหรือปัญหาความเข้ากันได้ของเบราว์เซอร์ จึงไม่สามารถแสดงหน้านี้ได้อย่างถูกต้อง",
   "error.unexpected_crash.explanation_addons": "ไม่สามารถแสดงหน้านี้ได้อย่างถูกต้อง ข้อผิดพลาดนี้เป็นไปได้ว่าเกิดจากส่วนเสริมของเบราว์เซอร์หรือเครื่องมือการแปลอัตโนมัติ",
-  "error.unexpected_crash.next_steps": "ลองรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ได้ผ่านเบราว์เซอร์อื่นหรือแอป",
-  "error.unexpected_crash.next_steps_addons": "ลองปิดใช้งานส่วนเสริมหรือเครื่องมือแล้วรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ได้ผ่านเบราว์เซอร์อื่นหรือแอป",
+  "error.unexpected_crash.next_steps": "ลองรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ได้ผ่านเบราว์เซอร์อื่นหรือแอปเนทีฟ",
+  "error.unexpected_crash.next_steps_addons": "ลองปิดใช้งานส่วนเสริมหรือเครื่องมือแล้วรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ได้ผ่านเบราว์เซอร์อื่นหรือแอปเนทีฟ",
   "errors.unexpected_crash.copy_stacktrace": "คัดลอกการติดตามสแตกไปยังคลิปบอร์ด",
   "errors.unexpected_crash.report_issue": "รายงานปัญหา",
   "explore.search_results": "ผลลัพธ์การค้นหา",
@@ -475,7 +475,7 @@
   "report.categories.spam": "สแปม",
   "report.categories.violation": "เนื้อหาละเมิดหนึ่งกฎของเซิร์ฟเวอร์หรือมากกว่า",
   "report.category.subtitle": "เลือกที่ตรงกันที่สุด",
-  "report.category.title": "บอกเราว่าเกิดอะไรขึ้นกับ {type} นี้",
+  "report.category.title": "บอกเราถึงสิ่งที่กำลังเกิดขึ้นกับ {type} นี้",
   "report.category.title_account": "โปรไฟล์",
   "report.category.title_status": "โพสต์",
   "report.close": "เสร็จสิ้น",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index d52537e2c..ed1e1ad75 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -36,7 +36,7 @@
   "account.following": "Ви стежите",
   "account.following_counter": "{count, plural, one {{counter} підписка} few {{counter} підписки} many {{counter} підписок} other {{counter} підписки}}",
   "account.follows.empty": "Цей користувач ще ні на кого не підписався.",
-  "account.follows_you": "Підписані на вас",
+  "account.follows_you": "Підписується на вас",
   "account.go_to_profile": "Перейти до профілю",
   "account.hide_reblogs": "Сховати поширення від @{name}",
   "account.joined_short": "Дата приєднання",
@@ -48,7 +48,7 @@
   "account.moved_to": "{name} вказує, що їхній новий обліковий запис тепер:",
   "account.mute": "Приховати @{name}",
   "account.mute_notifications": "Не показувати сповіщення від @{name}",
-  "account.muted": "Нехтується",
+  "account.muted": "Приховується",
   "account.open_original_page": "Відкрити оригінальну сторінку",
   "account.posts": "Дописи",
   "account.posts_with_replies": "Дописи й відповіді",
@@ -108,7 +108,7 @@
   "column.follow_requests": "Запити на підписку",
   "column.home": "Головна",
   "column.lists": "Списки",
-  "column.mutes": "Нехтувані користувачі",
+  "column.mutes": "Приховані користувачі",
   "column.notifications": "Сповіщення",
   "column.pins": "Закріплені дописи",
   "column.public": "Глобальна стрічка",
@@ -163,7 +163,7 @@
   "confirmations.domain_block.message": "Ви точно, точно впевнені, що хочете заблокувати весь домен {domain}? У більшості випадків для нормальної роботи краще заблокувати або приховати лише деяких користувачів. Ви не зможете бачити контент з цього домену у будь-яких стрічках або ваших сповіщеннях. Ваші підписники з цього домену будуть відписані від вас.",
   "confirmations.logout.confirm": "Вийти",
   "confirmations.logout.message": "Ви впевнені, що хочете вийти?",
-  "confirmations.mute.confirm": "Нехтувати",
+  "confirmations.mute.confirm": "Приховати",
   "confirmations.mute.explanation": "Це сховає дописи від них і дописи зі згадками про них, проте вони все одно матимуть змогу бачити ваші дописи й підписуватися на вас.",
   "confirmations.mute.message": "Ви впевнені, що хочете приховати {name}?",
   "confirmations.redraft.confirm": "Видалити та виправити",
@@ -225,7 +225,7 @@
   "empty_column.home.suggestions": "Переглянути пропозиції",
   "empty_column.list": "Цей список порожній. Коли його учасники додадуть нові дописи, вони з'являться тут.",
   "empty_column.lists": "У вас ще немає списків. Коли ви їх створите, вони з'являться тут.",
-  "empty_column.mutes": "Ви ще не нехтуєте жодного користувача.",
+  "empty_column.mutes": "Ви ще не приховали жодного користувача.",
   "empty_column.notifications": "У вас ще немає сповіщень. Переписуйтесь з іншими користувачами, щоб почати розмову.",
   "empty_column.public": "Тут поки нічого немає! Опублікуйте щось, або вручну підпишіться на користувачів інших серверів, щоб заповнити стрічку",
   "error.unexpected_crash.explanation": "Через помилку у нашому коді або несумісність браузера, ця сторінка не може бути зображена коректно.",
@@ -316,7 +316,7 @@
   "keyboard_shortcuts.legend": "Показати легенду",
   "keyboard_shortcuts.local": "Відкрити локальну стрічку",
   "keyboard_shortcuts.mention": "Згадати автора",
-  "keyboard_shortcuts.muted": "Відкрити список нехтуваних користувачів",
+  "keyboard_shortcuts.muted": "Відкрити список прихованих користувачів",
   "keyboard_shortcuts.my_profile": "Відкрити ваш профіль",
   "keyboard_shortcuts.notifications": "Відкрити колонку сповіщень",
   "keyboard_shortcuts.open_media": "Відкрити медіа",
@@ -359,8 +359,8 @@
   "missing_indicator.sublabel": "Ресурс не знайдено",
   "moved_to_account_banner.text": "Ваш обліковий запис {disabledAccount} наразі вимкнений, оскільки вас перенесено до {movedToAccount}.",
   "mute_modal.duration": "Тривалість",
-  "mute_modal.hide_notifications": "Сховати сповіщення від користувача?",
-  "mute_modal.indefinite": "Не визначено",
+  "mute_modal.hide_notifications": "Сховати сповіщення цього користувача?",
+  "mute_modal.indefinite": "Назавжди",
   "navigation_bar.about": "Про застосунок",
   "navigation_bar.blocks": "Заблоковані користувачі",
   "navigation_bar.bookmarks": "Закладки",
@@ -377,7 +377,7 @@
   "navigation_bar.follows_and_followers": "Підписки та підписники",
   "navigation_bar.lists": "Списки",
   "navigation_bar.logout": "Вийти",
-  "navigation_bar.mutes": "Нехтувані користувачі",
+  "navigation_bar.mutes": "Приховані користувачі",
   "navigation_bar.personal": "Особисте",
   "navigation_bar.pins": "Закріплені дописи",
   "navigation_bar.preferences": "Налаштування",
@@ -387,7 +387,7 @@
   "not_signed_in_indicator.not_signed_in": "Для доступу до цього ресурсу вам потрібно увійти.",
   "notification.admin.report": "Скарга від {name} на {target}",
   "notification.admin.sign_up": "{name} приєдналися",
-  "notification.favourite": "{name} вподобали ваш допис",
+  "notification.favourite": "Ваш допис подобається {name}",
   "notification.follow": "{name} підписалися на вас",
   "notification.follow_request": "{name} відправили запит на підписку",
   "notification.mention": "{name} згадали вас",
@@ -483,7 +483,7 @@
   "report.forward": "Надіслати до {target}",
   "report.forward_hint": "Це обліковий запис з іншого сервера. Відправити анонімізовану копію скарги й туди?",
   "report.mute": "Приховати",
-  "report.mute_explanation": "Ви не побачите їхніх дописів. Вони все ще можуть стежити за вами, бачити ваші дописи та не знатимуть про нехтування.",
+  "report.mute_explanation": "Ви не побачите їхніх дописів. Вони все ще можуть стежити за вами, бачити ваші дописи, але не знатимуть що їх приховано.",
   "report.next": "Далі",
   "report.placeholder": "Додаткові коментарі",
   "report.reasons.dislike": "Мені це не подобається",
@@ -506,7 +506,7 @@
   "report.thanks.title_actionable": "Дякуємо за скаргу, ми розглянемо її.",
   "report.unfollow": "Відписатися від @{name}",
   "report.unfollow_explanation": "Ви підписані на цього користувача. Щоб більше не бачити їхні дописи у вашій стрічці, відпишіться від них.",
-  "report_notification.attached_statuses": "{count, plural, one {{count} допис} few {{count} дописи} other {{counter} дописів}} прикріплено",
+  "report_notification.attached_statuses": "{count, plural, one {{count} допис} few {{count} дописи} many {{count} дописів} other {{count} дописи}} прикріплено",
   "report_notification.categories.other": "Інше",
   "report_notification.categories.spam": "Спам",
   "report_notification.categories.violation": "Порушення правил",
@@ -539,7 +539,7 @@
   "status.admin_account": "Відкрити інтерфейс модерації для @{name}",
   "status.admin_status": "Відкрити цей допис в інтерфейсі модерації",
   "status.block": "Заблокувати @{name}",
-  "status.bookmark": "Додати в закладки",
+  "status.bookmark": "Додати до закладок",
   "status.cancel_reblog_private": "Скасувати поширення",
   "status.cannot_reblog": "Цей допис не може бути поширений",
   "status.copy": "Копіювати посилання на допис",
@@ -561,14 +561,14 @@
   "status.mention": "Згадати @{name}",
   "status.more": "Більше",
   "status.mute": "Приховати @{name}",
-  "status.mute_conversation": "Ігнорувати діалог",
+  "status.mute_conversation": "Ігнорувати розмову",
   "status.open": "Розгорнути допис",
   "status.pin": "Закріпити у профілі",
   "status.pinned": "Закріплений допис",
   "status.read_more": "Дізнатися більше",
   "status.reblog": "Поширити",
   "status.reblog_private": "Поширити для початкової аудиторії",
-  "status.reblogged_by": "{name} поширив",
+  "status.reblogged_by": "{name} поширює",
   "status.reblogs.empty": "Ніхто ще не поширив цей допис. Коли хтось це зроблять, вони будуть зображені тут.",
   "status.redraft": "Видалити та виправити",
   "status.remove_bookmark": "Видалити закладку",
@@ -587,7 +587,7 @@
   "status.translate": "Перекласти",
   "status.translated_from_with": "Перекладено з {lang} за допомогою {provider}",
   "status.uncached_media_warning": "Недоступно",
-  "status.unmute_conversation": "Не ігнорувати діалог",
+  "status.unmute_conversation": "Не ігнорувати розмову",
   "status.unpin": "Відкріпити від профілю",
   "subscribed_languages.lead": "Лише дописи вибраними мовами з'являтимуться на вашій домівці та у списку стрічок після змін. Виберіть «none», щоб отримувати повідомлення всіма мовами.",
   "subscribed_languages.save": "Зберегти зміни",
diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json
index ad048dccb..d9881abeb 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -1,13 +1,13 @@
 {
-  "about.blocks": "Moderated servers",
-  "about.contact": "Contact:",
+  "about.blocks": "معتدل سرورز",
+  "about.contact": "رابطہ:",
   "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
-  "about.domain_blocks.no_reason_available": "Reason not available",
+  "about.domain_blocks.no_reason_available": "وجوہات نہیں دستیاب",
   "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
   "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
-  "about.domain_blocks.silenced.title": "Limited",
+  "about.domain_blocks.silenced.title": "محدود",
   "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
-  "about.domain_blocks.suspended.title": "Suspended",
+  "about.domain_blocks.suspended.title": "معطل شدہ",
   "about.not_available": "This information has not been made available on this server.",
   "about.powered_by": "Decentralized social media powered by {mastodon}",
   "about.rules": "Server rules",
@@ -27,7 +27,7 @@
   "account.enable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع کریں",
   "account.endorse": "مشکص پر نمایاں کریں",
   "account.featured_tags.last_status_at": "Last post on {date}",
-  "account.featured_tags.last_status_never": "No posts",
+  "account.featured_tags.last_status_never": "کوئی مراسلہ نہیں",
   "account.featured_tags.title": "{name}'s featured hashtags",
   "account.follow": "پیروی کریں",
   "account.followers": "پیروکار",
@@ -39,7 +39,7 @@
   "account.follows_you": "آپ کا پیروکار ہے",
   "account.go_to_profile": "Go to profile",
   "account.hide_reblogs": "@{name} سے فروغ چھپائیں",
-  "account.joined_short": "Joined",
+  "account.joined_short": "شمولیت",
   "account.languages": "Change subscribed languages",
   "account.link_verified_on": "اس لنک کی ملکیت کی توثیق {date} پر کی گئی تھی",
   "account.locked_info": "اس اکاونٹ کا اخفائی ضابطہ مقفل ہے۔ صارف کی پیروی کون کر سکتا ہے اس کا جائزہ وہ خود لیتا ہے.",
@@ -97,11 +97,11 @@
   "closed_registrations_modal.find_another_server": "Find another server",
   "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
   "closed_registrations_modal.title": "Signing up on Mastodon",
-  "column.about": "About",
+  "column.about": "متعلق",
   "column.blocks": "مسدود صارفین",
   "column.bookmarks": "بُک مارکس",
   "column.community": "مقامی زمانی جدول",
-  "column.direct": "Direct messages",
+  "column.direct": "براہ راست پیغامات",
   "column.directory": "مشخصات کا مطالعہ کریں",
   "column.domain_blocks": "پوشیدہ ڈومین",
   "column.favourites": "پسندیدہ",
@@ -123,8 +123,8 @@
   "community.column_settings.local_only": "صرف مقامی",
   "community.column_settings.media_only": "وسائل فقط",
   "community.column_settings.remote_only": "صرف خارجی",
-  "compose.language.change": "Change language",
-  "compose.language.search": "Search languages...",
+  "compose.language.change": "زبان تبدیل کریں",
+  "compose.language.search": "زبان تلاش کریں...",
   "compose_form.direct_message_warning_learn_more": "مزید جانیں",
   "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
   "compose_form.hashtag_warning": "چونکہ یہ ٹوٹ غیر مندرجہ ہے لہذا یہ کسی بھی ہیش ٹیگ کے تحت درج نہیں کیا جائے گا. ہیش ٹیگ کے تحت صرف \nعمومی ٹوٹ تلاش کئے جا سکتے ہیں.",
@@ -137,10 +137,10 @@
   "compose_form.poll.remove_option": "یہ انتخاب ہٹا دیں",
   "compose_form.poll.switch_to_multiple": "متعدد انتخاب کی اجازت دینے کے لیے پول تبدیل کریں",
   "compose_form.poll.switch_to_single": "کسی ایک انتخاب کے لیے پول تبدیل کریں",
-  "compose_form.publish": "Publish",
-  "compose_form.publish_form": "Publish",
+  "compose_form.publish": "اشاعت کردہ",
+  "compose_form.publish_form": "اشاعت کریں",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Save changes",
+  "compose_form.save_changes": "تبدیلیاں محفوظ کریں",
   "compose_form.sensitive.hide": "وسائل کو حساس نشاندہ کریں",
   "compose_form.sensitive.marked": "وسائل حساس نشاندہ ہے",
   "compose_form.sensitive.unmarked": "{count, plural, one {میڈیا کو حساس کے طور پر نشان زد نہیں کیا گیا ہے} other {میڈیا کو حساس کے طور پر نشان زد نہیں کیا گیا ہے}}",
@@ -177,7 +177,7 @@
   "conversation.open": "گفتگو دیکھیں",
   "conversation.with": "{names} کے ساتھ",
   "copypaste.copied": "Copied",
-  "copypaste.copy": "Copy",
+  "copypaste.copy": "کاپی کریں",
   "directory.federated": "معروف فیڈی ورس سے",
   "directory.local": "صرف {domain} سے",
   "directory.new_arrivals": "نئے آنے والے",
@@ -185,7 +185,7 @@
   "disabled_account_banner.account_settings": "Account settings",
   "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
   "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
-  "dismissable_banner.dismiss": "Dismiss",
+  "dismissable_banner.dismiss": "برخاست کریں",
   "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
   "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
   "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index ac3dbae5e..1b9b34454 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -554,8 +554,8 @@
   "status.filter": "Lọc tút này",
   "status.filtered": "Bộ lọc",
   "status.hide": "Ẩn tút",
-  "status.history.created": "{name} tạo lúc {date}",
-  "status.history.edited": "{name} sửa lúc {date}",
+  "status.history.created": "{name} tạo vào {date}",
+  "status.history.edited": "{name} sửa vào {date}",
   "status.load_more": "Tải thêm",
   "status.media_hidden": "Đã ẩn",
   "status.mention": "Nhắc đến @{name}",
@@ -572,7 +572,7 @@
   "status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.",
   "status.redraft": "Xóa và viết lại",
   "status.remove_bookmark": "Bỏ lưu",
-  "status.replied_to": "Trả lời đến {name}",
+  "status.replied_to": "{name} viết tiếp",
   "status.reply": "Trả lời",
   "status.replyAll": "Trả lời người đăng tút",
   "status.report": "Báo cáo @{name}",
diff --git a/app/javascript/mastodon/locales/whitelist_de.json b/app/javascript/mastodon/locales/whitelist_de.json
index 448cc9e77..c311ad048 100644
--- a/app/javascript/mastodon/locales/whitelist_de.json
+++ b/app/javascript/mastodon/locales/whitelist_de.json
@@ -1,7 +1,4 @@
 [
-  "relative_time.seconds",
-  "relative_time.minutes",
-  "relative_time.hours",
   "account.badges.bot",
   "compose_form.publish_loud",
   "search_results.hashtags"
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index a07d622e6..3d9c0ee1a 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -372,7 +372,7 @@
   "navigation_bar.edit_profile": "修改个人资料",
   "navigation_bar.explore": "探索",
   "navigation_bar.favourites": "喜欢",
-  "navigation_bar.filters": "隐藏关键词",
+  "navigation_bar.filters": "忽略的关键词",
   "navigation_bar.follow_requests": "关注请求",
   "navigation_bar.follows_and_followers": "关注管理",
   "navigation_bar.lists": "列表",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 0b6fc762f..6c967f414 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -27,7 +27,7 @@
   "account.enable_notifications": "當 @{name} 發文時通知我",
   "account.endorse": "在個人檔案中推薦對方",
   "account.featured_tags.last_status_at": "上次帖文於 {date}",
-  "account.featured_tags.last_status_never": "沒有帖文",
+  "account.featured_tags.last_status_never": "暫無文章",
   "account.featured_tags.title": "{name} 的精選標籤",
   "account.follow": "關注",
   "account.followers": "追蹤者",
@@ -42,7 +42,7 @@
   "account.joined_short": "加入於",
   "account.languages": "變更訂閱語言",
   "account.link_verified_on": "已於 {date} 檢查此連結的所有權",
-  "account.locked_info": "此帳號的隱私狀態被設為鎖定。該擁有者會手動審核追蹤者。",
+  "account.locked_info": "這位使用者將私隱設定為「不公開」,會手動審批誰能關注他/她。",
   "account.media": "媒體",
   "account.mention": "提及 @{name}",
   "account.moved_to": "{name} 表示現在的新帳號是:",
@@ -74,14 +74,14 @@
   "alert.rate_limited.message": "請在 {retry_time, time, medium} 後重試",
   "alert.rate_limited.title": "已限速",
   "alert.unexpected.message": "發生意外錯誤。",
-  "alert.unexpected.title": "噢!",
+  "alert.unexpected.title": "失敗!",
   "announcement.announcement": "公告",
   "attachments_list.unprocessed": "(未處理)",
   "audio.hide": "隱藏音訊",
   "autosuggest_hashtag.per_week": "每週 {count} 次",
   "boost_modal.combo": "你下次可以按 {combo} 來跳過",
   "bundle_column_error.copy_stacktrace": "複製錯誤報告",
-  "bundle_column_error.error.body": "無法提供請求的頁面。這可能是因為代碼出現錯誤或瀏覽器出現相容問題。",
+  "bundle_column_error.error.body": "無法提供請求的頁面。這可能是因為代碼出現錯誤或瀏覽器出現兼容問題。",
   "bundle_column_error.error.title": "大鑊!",
   "bundle_column_error.network.body": "嘗試載入此頁面時發生錯誤。這可能是因為您的網路連線或此伺服器暫時出現問題。",
   "bundle_column_error.network.title": "網絡錯誤",
@@ -263,7 +263,7 @@
   "footer.get_app": "取得應用程式",
   "footer.invite": "邀請他人",
   "footer.keyboard_shortcuts": "鍵盤快速鍵",
-  "footer.privacy_policy": "隱私權政策",
+  "footer.privacy_policy": "私隱政策",
   "footer.source_code": "查看原始碼",
   "generic.saved": "已儲存",
   "getting_started.heading": "開始使用",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index aa5a0512a..a8d6cb25e 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -211,22 +211,22 @@
   "empty_column.account_timeline": "這裡還沒有嘟文!",
   "empty_column.account_unavailable": "無法取得個人檔案",
   "empty_column.blocks": "您還沒有封鎖任何使用者。",
-  "empty_column.bookmarked_statuses": "您還沒建立任何書籤。當您建立書籤時,它將於此顯示。",
+  "empty_column.bookmarked_statuses": "您還沒有建立任何書籤。當您建立書籤時,它將於此顯示。",
   "empty_column.community": "本站時間軸是空的。快公開嘟些文搶頭香啊!",
   "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。",
   "empty_column.domain_blocks": "尚未封鎖任何網域。",
   "empty_column.explore_statuses": "目前沒有熱門討論,請稍候再回來看看!",
-  "empty_column.favourited_statuses": "您還沒加過任何嘟文至最愛。當您收藏嘟文時,它將於此顯示。",
+  "empty_column.favourited_statuses": "您還沒有加過任何嘟文至最愛。當您收藏嘟文時,它將於此顯示。",
   "empty_column.favourites": "還沒有人加過這則嘟文至最愛。當有人收藏嘟文時,它將於此顯示。",
   "empty_column.follow_recommendations": "似乎未能為您產生任何建議。您可以嘗試使用搜尋來尋找您可能認識的人,或是探索熱門主題標籤。",
-  "empty_column.follow_requests": "您尚未收到任何跟隨請求。這裡將會顯示收到的跟隨請求。",
+  "empty_column.follow_requests": "您還沒有收到任何跟隨請求。這裡將會顯示收到的跟隨請求。",
   "empty_column.hashtag": "這個主題標籤下什麼也沒有。",
   "empty_column.home": "您的首頁時間軸是空的!前往 {suggestions} 或使用搜尋功能來認識其他人。",
   "empty_column.home.suggestions": "檢視部份建議",
   "empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出了新的嘟文時,它們就會顯示於此。",
   "empty_column.lists": "您還沒有建立任何列表。當您建立列表時,它將於此顯示。",
   "empty_column.mutes": "您尚未靜音任何使用者。",
-  "empty_column.notifications": "您尚未收到任何通知,和別人互動開啟對話吧。",
+  "empty_column.notifications": "您還沒有收到任何通知,當您和別人開始互動時,它將於此顯示。",
   "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己跟隨其他伺服器的使用者後就會有嘟文出現了",
   "error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。",
   "error.unexpected_crash.explanation_addons": "此頁面無法被正常顯示,這可能是由瀏覽器附加元件或網頁自動翻譯工具造成的。",
diff --git a/app/javascript/mastodon/reducers/status_lists.js b/app/javascript/mastodon/reducers/status_lists.js
index a7c56cc19..106f64d32 100644
--- a/app/javascript/mastodon/reducers/status_lists.js
+++ b/app/javascript/mastodon/reducers/status_lists.js
@@ -25,7 +25,7 @@ import {
   TRENDS_STATUSES_EXPAND_SUCCESS,
   TRENDS_STATUSES_EXPAND_FAIL,
 } from '../actions/trends';
-import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
 import {
   FAVOURITE_SUCCESS,
   UNFAVOURITE_SUCCESS,
@@ -43,22 +43,22 @@ const initialState = ImmutableMap({
   favourites: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   bookmarks: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   pins: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
   trending: ImmutableMap({
     next: null,
     loaded: false,
-    items: ImmutableList(),
+    items: ImmutableOrderedSet(),
   }),
 });
 
@@ -67,7 +67,7 @@ const normalizeList = (state, listType, statuses, next) => {
     map.set('next', next);
     map.set('loaded', true);
     map.set('isLoading', false);
-    map.set('items', ImmutableList(statuses.map(item => item.id)));
+    map.set('items', ImmutableOrderedSet(statuses.map(item => item.id)));
   }));
 };
 
@@ -75,20 +75,22 @@ const appendToList = (state, listType, statuses, next) => {
   return state.update(listType, listMap => listMap.withMutations(map => {
     map.set('next', next);
     map.set('isLoading', false);
-    map.set('items', map.get('items').concat(statuses.map(item => item.id)));
+    map.set('items', map.get('items').union(statuses.map(item => item.id)));
   }));
 };
 
 const prependOneToList = (state, listType, status) => {
-  return state.update(listType, listMap => listMap.withMutations(map => {
-    map.set('items', map.get('items').unshift(status.get('id')));
-  }));
+  return state.updateIn([listType, 'items'], (list) => {
+    if (list.includes(status.get('id'))) {
+      return list;
+    } else {
+      return ImmutableOrderedSet([status.get('id')]).union(list);
+    }
+  });
 };
 
 const removeOneFromList = (state, listType, status) => {
-  return state.update(listType, listMap => listMap.withMutations(map => {
-    map.set('items', map.get('items').filter(item => item !== status.get('id')));
-  }));
+  return state.updateIn([listType, 'items'], (list) => list.delete(status.get('id')));
 };
 
 export default function statusLists(state = initialState, action) {
@@ -139,7 +141,7 @@ export default function statusLists(state = initialState, action) {
     return removeOneFromList(state, 'pins', action.status);
   case ACCOUNT_BLOCK_SUCCESS:
   case ACCOUNT_MUTE_SUCCESS:
-    return state.updateIn(['trending', 'items'], ImmutableList(), list => list.filterNot(statusId => action.statuses.getIn([statusId, 'account']) === action.relationship.id));
+    return state.updateIn(['trending', 'items'], ImmutableOrderedSet(), list => list.filterNot(statusId => action.statuses.getIn([statusId, 'account']) === action.relationship.id));
   default:
     return state;
   }
diff --git a/app/javascript/mastodon/reducers/user_lists.js b/app/javascript/mastodon/reducers/user_lists.js
index f19c1e2e9..88b51fb63 100644
--- a/app/javascript/mastodon/reducers/user_lists.js
+++ b/app/javascript/mastodon/reducers/user_lists.js
@@ -22,7 +22,7 @@ import {
   FOLLOW_REQUESTS_EXPAND_FAIL,
   FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
   FOLLOW_REQUEST_REJECT_SUCCESS,
-  } from '../actions/accounts';
+} from '../actions/accounts';
 import {
   REBLOGS_FETCH_SUCCESS,
   FAVOURITES_FETCH_SUCCESS,
diff --git a/app/javascript/skins/glitch/contrast/names.yml b/app/javascript/skins/glitch/contrast/names.yml
index 570e30d3b..5e7357439 100644
--- a/app/javascript/skins/glitch/contrast/names.yml
+++ b/app/javascript/skins/glitch/contrast/names.yml
@@ -2,6 +2,10 @@ en:
   skins:
     glitch:
       contrast: High contrast
+cs:
+  skins:
+    glitch:
+      contrast: Vysoký kontrast
 es:
   skins:
     glitch:
diff --git a/app/javascript/skins/glitch/mastodon-light/names.yml b/app/javascript/skins/glitch/mastodon-light/names.yml
index 891271e6e..a2c20548f 100644
--- a/app/javascript/skins/glitch/mastodon-light/names.yml
+++ b/app/javascript/skins/glitch/mastodon-light/names.yml
@@ -2,6 +2,10 @@ en:
   skins:
     glitch:
       mastodon-light: Mastodon (light)
+cs:
+  skins:
+    glitch:
+      mastodon-light: Mastodon (světlý)
 es:
   skins:
     glitch:
diff --git a/app/javascript/skins/vanilla/contrast/names.yml b/app/javascript/skins/vanilla/contrast/names.yml
index da8974742..51d23f72d 100644
--- a/app/javascript/skins/vanilla/contrast/names.yml
+++ b/app/javascript/skins/vanilla/contrast/names.yml
@@ -2,6 +2,10 @@ en:
   skins:
     vanilla:
       contrast: High contrast
+cs:
+  skins:
+    vanilla:
+      contrast: Vysoký kontrast
 es:
   skins:
     vanilla:
diff --git a/app/javascript/skins/vanilla/mastodon-light/names.yml b/app/javascript/skins/vanilla/mastodon-light/names.yml
index 5e41d1051..fc6721e15 100644
--- a/app/javascript/skins/vanilla/mastodon-light/names.yml
+++ b/app/javascript/skins/vanilla/mastodon-light/names.yml
@@ -2,6 +2,10 @@ en:
   skins:
     vanilla:
       mastodon-light: Mastodon (light)
+cs:
+  skins:
+    vanilla:
+      mastodon-light: Mastodon (světlý)
 es:
   skins:
     glitch:
diff --git a/app/javascript/skins/vanilla/win95/names.yml b/app/javascript/skins/vanilla/win95/names.yml
index 2083084a2..53b771c5e 100644
--- a/app/javascript/skins/vanilla/win95/names.yml
+++ b/app/javascript/skins/vanilla/win95/names.yml
@@ -2,3 +2,7 @@ en:
   skins:
     vanilla:
       win95: Masto95
+cs:
+  skins:
+    vanilla:
+      win95: Windows 95
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 8a2f64526..3650e3ec8 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -2217,6 +2217,7 @@ $ui-header-height: 55px;
   z-index: 2;
   justify-content: space-between;
   align-items: center;
+  overflow: hidden;
 
   &__logo {
     display: inline-flex;
@@ -2233,10 +2234,15 @@ $ui-header-height: 55px;
     align-items: center;
     gap: 10px;
     padding: 0 10px;
+    overflow: hidden;
 
     .button {
       flex: 0 0 auto;
     }
+
+    .button-tertiary {
+      flex-shrink: 1;
+    }
   }
 }
 
@@ -7138,10 +7144,12 @@ noscript {
 
       .verified {
         border: 1px solid rgba($valid-value-color, 0.5);
+        margin-top: -1px;
 
         &:first-child {
           border-top-left-radius: 4px;
           border-top-right-radius: 4px;
+          margin-top: 0;
         }
 
         &:last-child {
@@ -7973,7 +7981,8 @@ noscript {
   width: 600px;
   background: $ui-base-color;
   border-radius: 8px;
-  overflow: hidden;
+  overflow-x: hidden;
+  overflow-y: auto;
   position: relative;
   display: block;
   padding: 20px;
diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb
index ebae12973..4dfbfc665 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -222,7 +222,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
     return if tag['href'].blank?
 
     account = account_from_uri(tag['href'])
-    account = ActivityPub::FetchRemoteAccountService.new.call(tag['href']) if account.nil?
+    account = ActivityPub::FetchRemoteAccountService.new.call(tag['href'], request_id: @options[:request_id]) if account.nil?
 
     return if account.nil?
 
diff --git a/app/lib/activitypub/activity/update.rb b/app/lib/activitypub/activity/update.rb
index 5b3238ece..e7c3bc9bf 100644
--- a/app/lib/activitypub/activity/update.rb
+++ b/app/lib/activitypub/activity/update.rb
@@ -18,7 +18,7 @@ class ActivityPub::Activity::Update < ActivityPub::Activity
   def update_account
     return reject_payload! if @account.uri != object_uri
 
-    ActivityPub::ProcessAccountService.new.call(@account.username, @account.domain, @object, signed_with_known_key: true)
+    ActivityPub::ProcessAccountService.new.call(@account.username, @account.domain, @object, signed_with_known_key: true, request_id: @options[:request_id])
   end
 
   def update_status
@@ -28,6 +28,6 @@ class ActivityPub::Activity::Update < ActivityPub::Activity
 
     return if @status.nil?
 
-    ActivityPub::ProcessStatusUpdateService.new.call(@status, @object)
+    ActivityPub::ProcessStatusUpdateService.new.call(@status, @object, request_id: @options[:request_id])
   end
 end
diff --git a/app/lib/advanced_text_formatter.rb b/app/lib/advanced_text_formatter.rb
index dcaf34b91..21e81d4d1 100644
--- a/app/lib/advanced_text_formatter.rb
+++ b/app/lib/advanced_text_formatter.rb
@@ -19,6 +19,8 @@ class AdvancedTextFormatter < TextFormatter
     end
   end
 
+  attr_reader :content_type
+
   # @param [String] text
   # @param [Hash] options
   # @option options [Boolean] :multiline
@@ -27,7 +29,7 @@ class AdvancedTextFormatter < TextFormatter
   # @option options [Array<Account>] :preloaded_accounts
   # @option options [String] :content_type
   def initialize(text, options = {})
-    content_type = options.delete(:content_type)
+    @content_type = options.delete(:content_type)
     super(text, options)
 
     @text = format_markdown(text) if content_type == 'text/markdown'
@@ -50,50 +52,50 @@ class AdvancedTextFormatter < TextFormatter
     html.html_safe # rubocop:disable Rails/OutputSafety
   end
 
-  # Differs from `TextFormatter` by skipping HTML tags and entities
-  def entities
-    @entities ||= begin
-      gaps = []
-      total_offset = 0
-
-      escaped = text.gsub(/<[^>]*>|&#[0-9]+;/) do |match|
-        total_offset += match.length - 1
-        end_offset = Regexp.last_match.end(0)
-        gaps << [end_offset - total_offset, total_offset]
-        ' '
-      end
-
-      Extractor.extract_entities_with_indices(escaped, extract_url_without_protocol: false).map do |entity|
-        start_pos, end_pos = entity[:indices]
-        offset_idx = gaps.rindex { |gap| gap.first <= start_pos }
-        offset = offset_idx.nil? ? 0 : gaps[offset_idx].last
-        entity.merge(indices: [start_pos + offset, end_pos + offset])
+  # Differs from TextFormatter by operating on the parsed HTML tree
+  def rewrite
+    if @tree.nil?
+      src = text.gsub(Sanitize::REGEX_UNSUITABLE_CHARS, '')
+      @tree = Nokogiri::HTML5.fragment(src)
+      document = @tree.document
+
+      @tree.xpath('.//text()[not(ancestor::a | ancestor::code)]').each do |text_node|
+        # Iterate over text elements and build up their replacements.
+        content = text_node.content
+        replacement = Nokogiri::XML::NodeSet.new(document)
+        processed_index = 0
+        Extractor.extract_entities_with_indices(
+          content,
+          extract_url_without_protocol: false
+        ) do |entity|
+          # Iterate over entities in this text node.
+          advance = entity[:indices].first - processed_index
+          if advance.positive?
+            # Text node for content which precedes entity.
+            replacement << Nokogiri::XML::Text.new(
+              content[processed_index, advance],
+              document
+            )
+          end
+          replacement << Nokogiri::HTML5.fragment(yield(entity))
+          processed_index = entity[:indices].last
+        end
+        if processed_index < content.size
+          # Text node for remaining content.
+          replacement << Nokogiri::XML::Text.new(
+            content[processed_index, content.size - processed_index],
+            document
+          )
+        end
+        text_node.replace(replacement)
       end
     end
+
+    Sanitize.node!(@tree, Sanitize::Config::MASTODON_OUTGOING).to_html
   end
 
   private
 
-  # Differs from `TextFormatter` in that it keeps HTML; but it sanitizes at the end to remain safe
-  def rewrite
-    entities.sort_by! do |entity|
-      entity[:indices].first
-    end
-
-    result = ''.dup
-
-    last_index = entities.reduce(0) do |index, entity|
-      indices = entity[:indices]
-      result << text[index...indices.first]
-      result << yield(entity)
-      indices.last
-    end
-
-    result << text[last_index..-1]
-
-    Sanitize.fragment(result, Sanitize::Config::MASTODON_OUTGOING)
-  end
-
   def format_markdown(html)
     html = markdown_formatter.render(html)
     html.delete("\r").delete("\n")
diff --git a/app/lib/delivery_failure_tracker.rb b/app/lib/delivery_failure_tracker.rb
index 7c4e28eb7..66c1fd8c0 100644
--- a/app/lib/delivery_failure_tracker.rb
+++ b/app/lib/delivery_failure_tracker.rb
@@ -65,8 +65,13 @@ class DeliveryFailureTracker
       domains - UnavailableDomain.all.pluck(:domain)
     end
 
-    def warning_domains_map
-      warning_domains.index_with { |domain| redis.scard(exhausted_deliveries_key_by(domain)) }
+    def warning_domains_map(domains = nil)
+      if domains.nil?
+        warning_domains.index_with { |domain| redis.scard(exhausted_deliveries_key_by(domain)) }
+      else
+        domains -= UnavailableDomain.where(domain: domains).pluck(:domain)
+        domains.index_with { |domain| redis.scard(exhausted_deliveries_key_by(domain)) }.filter { |_, days| days.positive? }
+      end
     end
 
     private
diff --git a/app/models/account_migration.rb b/app/models/account_migration.rb
index 16276158d..fa8cb6013 100644
--- a/app/models/account_migration.rb
+++ b/app/models/account_migration.rb
@@ -59,7 +59,7 @@ class AccountMigration < ApplicationRecord
 
   def set_target_account
     self.target_account = ResolveAccountService.new.call(acct, skip_cache: true)
-  rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error
+  rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error, Addressable::URI::InvalidURIError
     # Validation will take care of it
   end
 
diff --git a/app/models/concerns/domain_materializable.rb b/app/models/concerns/domain_materializable.rb
index 88337f8c0..0eac6878e 100644
--- a/app/models/concerns/domain_materializable.rb
+++ b/app/models/concerns/domain_materializable.rb
@@ -3,11 +3,24 @@
 module DomainMaterializable
   extend ActiveSupport::Concern
 
+  include Redisable
+
   included do
     after_create_commit :refresh_instances_view
   end
 
   def refresh_instances_view
-    Instance.refresh unless domain.nil? || Instance.where(domain: domain).exists?
+    return if domain.nil? || Instance.exists?(domain: domain)
+
+    Instance.refresh
+    count_unique_subdomains!
+  end
+
+  def count_unique_subdomains!
+    second_and_top_level_domain = PublicSuffix.domain(domain, ignore_private: true)
+    with_redis do |redis|
+      redis.pfadd("unique_subdomains_for:#{second_and_top_level_domain}", domain)
+      redis.expire("unique_subdomains_for:#{second_and_top_level_domain}", 1.minute.seconds)
+    end
   end
 end
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index da2a91493..5a4a974be 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -54,7 +54,7 @@ class CustomFilter < ApplicationRecord
   end
 
   def irreversible=(value)
-    self.action = value ? :hide : :warn
+    self.action = ActiveModel::Type::Boolean.new.cast(value) ? :hide : :warn
   end
 
   def irreversible?
diff --git a/app/models/form/redirect.rb b/app/models/form/redirect.rb
index 795fdd057..3cd5731e6 100644
--- a/app/models/form/redirect.rb
+++ b/app/models/form/redirect.rb
@@ -32,7 +32,7 @@ class Form::Redirect
 
   def set_target_account
     @target_account = ResolveAccountService.new.call(acct, skip_cache: true)
-  rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error
+  rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error, Addressable::URI::InvalidURIError
     # Validation will take care of it
   end
 
diff --git a/app/models/user.rb b/app/models/user.rb
index 0eb975dec..209bfa521 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -525,7 +525,7 @@ class User < ApplicationRecord
   end
 
   def invite_text_required?
-    Setting.require_invite_text && !invited? && !external? && !bypass_invite_request_check?
+    Setting.require_invite_text && !open_registrations? && !invited? && !external? && !bypass_invite_request_check?
   end
 
   def trigger_webhooks
diff --git a/app/services/activitypub/fetch_featured_collection_service.rb b/app/services/activitypub/fetch_featured_collection_service.rb
index 50a187ad9..a746ef4d6 100644
--- a/app/services/activitypub/fetch_featured_collection_service.rb
+++ b/app/services/activitypub/fetch_featured_collection_service.rb
@@ -46,9 +46,9 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
       next unless item.is_a?(String) || item['type'] == 'Note'
 
       uri = value_or_id(item)
-      next if ActivityPub::TagManager.instance.local_uri?(uri)
+      next if ActivityPub::TagManager.instance.local_uri?(uri) || invalid_origin?(uri)
 
-      status = ActivityPub::FetchRemoteStatusService.new.call(uri, on_behalf_of: local_follower)
+      status = ActivityPub::FetchRemoteStatusService.new.call(uri, on_behalf_of: local_follower, expected_actor_uri: @account.uri, request_id: @options[:request_id])
       next unless status&.account_id == @account.id
 
       status.id
diff --git a/app/services/activitypub/fetch_remote_account_service.rb b/app/services/activitypub/fetch_remote_account_service.rb
index ca7a8c6ca..7aba8269e 100644
--- a/app/services/activitypub/fetch_remote_account_service.rb
+++ b/app/services/activitypub/fetch_remote_account_service.rb
@@ -2,7 +2,7 @@
 
 class ActivityPub::FetchRemoteAccountService < ActivityPub::FetchRemoteActorService
   # Does a WebFinger roundtrip on each call, unless `only_key` is true
-  def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true)
+  def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil)
     actor = super
     return actor if actor.nil? || actor.is_a?(Account)
 
diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb
index db09c38d8..a25fa54c4 100644
--- a/app/services/activitypub/fetch_remote_actor_service.rb
+++ b/app/services/activitypub/fetch_remote_actor_service.rb
@@ -10,7 +10,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
   SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze
 
   # Does a WebFinger roundtrip on each call, unless `only_key` is true
-  def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true)
+  def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil)
     return if domain_not_allowed?(uri)
     return ActivityPub::TagManager.instance.uri_to_actor(uri) if ActivityPub::TagManager.instance.local_uri?(uri)
 
@@ -35,7 +35,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
 
     check_webfinger! unless only_key
 
-    ActivityPub::ProcessAccountService.new.call(@username, @domain, @json, only_key: only_key, verified_webfinger: !only_key)
+    ActivityPub::ProcessAccountService.new.call(@username, @domain, @json, only_key: only_key, verified_webfinger: !only_key, request_id: request_id)
   rescue Error => e
     Rails.logger.debug "Fetching actor #{uri} failed: #{e.message}"
     raise unless suppress_errors
diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb
index 803098245..21b9242f8 100644
--- a/app/services/activitypub/fetch_remote_status_service.rb
+++ b/app/services/activitypub/fetch_remote_status_service.rb
@@ -4,7 +4,8 @@ class ActivityPub::FetchRemoteStatusService < BaseService
   include JsonLdHelper
 
   # Should be called when uri has already been checked for locality
-  def call(uri, id: true, prefetched_body: nil, on_behalf_of: nil)
+  def call(uri, id: true, prefetched_body: nil, on_behalf_of: nil, expected_actor_uri: nil, request_id: nil)
+    @request_id = request_id
     @json = begin
       if prefetched_body.nil?
         fetch_resource(uri, id, on_behalf_of)
@@ -30,6 +31,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
     end
 
     return if activity_json.nil? || object_uri.nil? || !trustworthy_attribution?(@json['id'], actor_uri)
+    return if expected_actor_uri.present? && actor_uri != expected_actor_uri
     return ActivityPub::TagManager.instance.uri_to_resource(object_uri, Status) if ActivityPub::TagManager.instance.local_uri?(object_uri)
 
     actor = account_from_uri(actor_uri)
@@ -40,7 +42,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
     # activity as an update rather than create
     activity_json['type'] = 'Update' if equals_or_includes_any?(activity_json['type'], %w(Create)) && Status.where(uri: object_uri, account_id: actor.id).exists?
 
-    ActivityPub::Activity.factory(activity_json, actor).perform
+    ActivityPub::Activity.factory(activity_json, actor, request_id: request_id).perform
   end
 
   private
@@ -52,7 +54,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
 
   def account_from_uri(uri)
     actor = ActivityPub::TagManager.instance.uri_to_resource(uri, Account)
-    actor = ActivityPub::FetchRemoteAccountService.new.call(uri, id: true) if actor.nil? || actor.possibly_stale?
+    actor = ActivityPub::FetchRemoteAccountService.new.call(uri, id: true, request_id: @request_id) if actor.nil? || actor.possibly_stale?
     actor
   end
 
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 99bcb3835..2da9096c7 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -6,6 +6,9 @@ class ActivityPub::ProcessAccountService < BaseService
   include Redisable
   include Lockable
 
+  SUBDOMAINS_RATELIMIT = 10
+  DISCOVERIES_PER_REQUEST = 400
+
   # Should be called with confirmed valid JSON
   # and WebFinger-resolved username and domain
   def call(username, domain, json, options = {})
@@ -15,9 +18,12 @@ class ActivityPub::ProcessAccountService < BaseService
     @json        = json
     @uri         = @json['id']
     @username    = username
-    @domain      = domain
+    @domain      = TagManager.instance.normalize_domain(domain)
     @collections = {}
 
+    # The key does not need to be unguessable, it just needs to be somewhat unique
+    @options[:request_id] ||= "#{Time.now.utc.to_i}-#{username}@#{domain}"
+
     with_lock("process_account:#{@uri}") do
       @account            = Account.remote.find_by(uri: @uri) if @options[:only_key]
       @account          ||= Account.find_remote(@username, @domain)
@@ -25,7 +31,18 @@ class ActivityPub::ProcessAccountService < BaseService
       @old_protocol       = @account&.protocol
       @suspension_changed = false
 
-      create_account if @account.nil?
+      if @account.nil?
+        with_redis do |redis|
+          return nil if redis.pfcount("unique_subdomains_for:#{PublicSuffix.domain(@domain, ignore_private: true)}") >= SUBDOMAINS_RATELIMIT
+
+          discoveries = redis.incr("discovery_per_request:#{@options[:request_id]}")
+          redis.expire("discovery_per_request:#{@options[:request_id]}", 5.minutes.seconds)
+          return nil if discoveries > DISCOVERIES_PER_REQUEST
+        end
+
+        create_account
+      end
+
       update_account
       process_tags
 
@@ -150,7 +167,7 @@ class ActivityPub::ProcessAccountService < BaseService
   end
 
   def check_featured_collection!
-    ActivityPub::SynchronizeFeaturedCollectionWorker.perform_async(@account.id, { 'hashtag' => @json['featuredTags'].blank? })
+    ActivityPub::SynchronizeFeaturedCollectionWorker.perform_async(@account.id, { 'hashtag' => @json['featuredTags'].blank?, 'request_id' => @options[:request_id] })
   end
 
   def check_featured_tags_collection!
@@ -254,7 +271,7 @@ class ActivityPub::ProcessAccountService < BaseService
 
   def moved_account
     account   = ActivityPub::TagManager.instance.uri_to_resource(@json['movedTo'], Account)
-    account ||= ActivityPub::FetchRemoteAccountService.new.call(@json['movedTo'], id: true, break_on_redirect: true)
+    account ||= ActivityPub::FetchRemoteAccountService.new.call(@json['movedTo'], id: true, break_on_redirect: true, request_id: @options[:request_id])
     account
   end
 
diff --git a/app/services/activitypub/process_status_update_service.rb b/app/services/activitypub/process_status_update_service.rb
index a0605b1a3..fad19f87f 100644
--- a/app/services/activitypub/process_status_update_service.rb
+++ b/app/services/activitypub/process_status_update_service.rb
@@ -5,7 +5,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
   include Redisable
   include Lockable
 
-  def call(status, json)
+  def call(status, json, request_id: nil)
     raise ArgumentError, 'Status has unsaved changes' if status.changed?
 
     @json                      = json
@@ -15,6 +15,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
     @account                   = status.account
     @media_attachments_changed = false
     @poll_changed              = false
+    @request_id                = request_id
 
     # Only native types can be updated at the moment
     return @status if !expected_type? || already_updated_more_recently?
@@ -191,7 +192,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
       next if href.blank?
 
       account   = ActivityPub::TagManager.instance.uri_to_resource(href, Account)
-      account ||= ActivityPub::FetchRemoteAccountService.new.call(href)
+      account ||= ActivityPub::FetchRemoteAccountService.new.call(href, request_id: @request_id)
 
       next if account.nil?
 
diff --git a/app/views/admin/settings/discovery/show.html.haml b/app/views/admin/settings/discovery/show.html.haml
index 3983b563b..25b34acef 100644
--- a/app/views/admin/settings/discovery/show.html.haml
+++ b/app/views/admin/settings/discovery/show.html.haml
@@ -26,6 +26,9 @@
   .fields-group
     = f.input :timeline_preview, as: :boolean, wrapper: :with_label
 
+  .fields-group
+    = f.input :noindex, as: :boolean, wrapper: :with_label, label: t('admin.settings.default_noindex.title'), hint: t('admin.settings.default_noindex.desc_html')
+
   %h4= t('admin.settings.discovery.follow_recommendations')
 
   .fields-group