about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/api/v1/accounts/lookup_controller.rb2
-rw-r--r--app/javascript/mastodon/components/status_action_bar.js1
-rw-r--r--app/javascript/mastodon/features/account/components/header.js1
-rw-r--r--app/javascript/mastodon/features/direct_timeline/index.js5
-rw-r--r--app/javascript/mastodon/features/getting_started/index.js2
-rw-r--r--app/javascript/mastodon/features/keyboard_shortcuts/index.js2
-rw-r--r--app/javascript/mastodon/features/ui/components/navigation_panel.js2
-rw-r--r--app/javascript/mastodon/locales/cs.json16
-rw-r--r--app/javascript/mastodon/locales/cy.json230
-rw-r--r--app/javascript/mastodon/locales/de.json6
-rw-r--r--app/javascript/mastodon/locales/es.json4
-rw-r--r--app/javascript/mastodon/locales/gd.json12
-rw-r--r--app/javascript/mastodon/locales/gl.json2
-rw-r--r--app/javascript/mastodon/locales/hy.json66
-rw-r--r--app/javascript/mastodon/locales/io.json90
-rw-r--r--app/javascript/mastodon/locales/is.json20
-rw-r--r--app/javascript/mastodon/locales/ja.json68
-rw-r--r--app/javascript/mastodon/locales/pt-PT.json16
-rw-r--r--app/javascript/mastodon/locales/sv.json10
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json122
-rw-r--r--app/javascript/styles/mastodon/components.scss2
-rw-r--r--app/services/activitypub/fetch_featured_collection_service.rb34
-rw-r--r--app/services/resolve_account_service.rb2
23 files changed, 366 insertions, 349 deletions
diff --git a/app/controllers/api/v1/accounts/lookup_controller.rb b/app/controllers/api/v1/accounts/lookup_controller.rb
index aee6be18a..8597f891d 100644
--- a/app/controllers/api/v1/accounts/lookup_controller.rb
+++ b/app/controllers/api/v1/accounts/lookup_controller.rb
@@ -12,5 +12,7 @@ class Api::V1::Accounts::LookupController < Api::BaseController
 
   def set_account
     @account = ResolveAccountService.new.call(params[:acct], skip_webfinger: true) || raise(ActiveRecord::RecordNotFound)
+  rescue Addressable::URI::InvalidURIError
+    raise(ActiveRecord::RecordNotFound)
   end
 end
diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js
index a21b066a5..1d8fe23da 100644
--- a/app/javascript/mastodon/components/status_action_bar.js
+++ b/app/javascript/mastodon/components/status_action_bar.js
@@ -266,6 +266,7 @@ class StatusActionBar extends ImmutablePureComponent {
       menu.push({ text: intl.formatMessage(messages.redraft), action: this.handleRedraftClick });
     } else {
       menu.push({ text: intl.formatMessage(messages.mention, { name: account.get('username') }), action: this.handleMentionClick });
+      menu.push({ text: intl.formatMessage(messages.direct, { name: account.get('username') }), action: this.handleDirectClick });
       menu.push(null);
 
       if (relationship && relationship.get('muting')) {
diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js
index 83dc8d9b8..2830bee29 100644
--- a/app/javascript/mastodon/features/account/components/header.js
+++ b/app/javascript/mastodon/features/account/components/header.js
@@ -177,6 +177,7 @@ class Header extends ImmutablePureComponent {
 
     if (account.get('id') !== me) {
       menu.push({ text: intl.formatMessage(messages.mention, { name: account.get('username') }), action: this.props.onMention });
+      menu.push({ text: intl.formatMessage(messages.direct, { name: account.get('username') }), action: this.props.onDirect });
       menu.push(null);
     }
 
diff --git a/app/javascript/mastodon/features/direct_timeline/index.js b/app/javascript/mastodon/features/direct_timeline/index.js
index 46a56e942..debb2d721 100644
--- a/app/javascript/mastodon/features/direct_timeline/index.js
+++ b/app/javascript/mastodon/features/direct_timeline/index.js
@@ -10,7 +10,7 @@ import { connectDirectStream } from '../../actions/streaming';
 import ConversationsListContainer from './containers/conversations_list_container';
 
 const messages = defineMessages({
-  title: { id: 'column.conversations', defaultMessage: 'Conversations' },
+  title: { id: 'column.direct', defaultMessage: 'Direct messages' },
 });
 
 export default @connect()
@@ -91,7 +91,8 @@ class DirectTimeline extends React.PureComponent {
           scrollKey={`direct_timeline-${columnId}`}
           timelineId='direct'
           onLoadMore={this.handleLoadMore}
-          emptyMessage={<FormattedMessage id='empty_column.conversations' defaultMessage="Once you send or receive a post that's only visible to people mentioned in it, it will show up here." />}
+          prepend={<div className='follow_requests-unlocked_explanation'><span><FormattedMessage id='compose_form.encryption_warning' defaultMessage='Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a></span></div>}
+          emptyMessage={<FormattedMessage id='empty_column.direct' defaultMessage="You don't have any direct messages yet. When you send or receive one, it will show up here." />}
         />
       </Column>
     );
diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.js
index 678fb089c..65cee7498 100644
--- a/app/javascript/mastodon/features/getting_started/index.js
+++ b/app/javascript/mastodon/features/getting_started/index.js
@@ -22,7 +22,7 @@ const messages = defineMessages({
   settings_subheading: { id: 'column_subheading.settings', defaultMessage: 'Settings' },
   community_timeline: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
   explore: { id: 'navigation_bar.explore', defaultMessage: 'Explore' },
-  direct: { id: 'column.conversations', defaultMessage: 'Conversations' },
+  direct: { id: 'navigation_bar.direct', defaultMessage: 'Direct messages' },
   bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' },
   preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
   follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.js
index 5f38e2f4e..8f1631d82 100644
--- a/app/javascript/mastodon/features/keyboard_shortcuts/index.js
+++ b/app/javascript/mastodon/features/keyboard_shortcuts/index.js
@@ -122,7 +122,7 @@ class KeyboardShortcuts extends ImmutablePureComponent {
               </tr>
               <tr>
                 <td><kbd>g</kbd>+<kbd>d</kbd></td>
-                <td><FormattedMessage id='keyboard_shortcuts.conversations' defaultMessage='to open conversations column' /></td>
+                <td><FormattedMessage id='keyboard_shortcuts.direct' defaultMessage='to open direct messages column' /></td>
               </tr>
               <tr>
                 <td><kbd>g</kbd>+<kbd>s</kbd></td>
diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.js b/app/javascript/mastodon/features/ui/components/navigation_panel.js
index 9a3940b5b..fe4ed5d77 100644
--- a/app/javascript/mastodon/features/ui/components/navigation_panel.js
+++ b/app/javascript/mastodon/features/ui/components/navigation_panel.js
@@ -16,7 +16,7 @@ const NavigationPanel = () => (
     <NavLink className='column-link column-link--transparent' to='/explore' data-preview-title-id='explore.title' data-preview-icon='hashtag'><Icon className='column-link__icon' id='hashtag' fixedWidth /><FormattedMessage id='explore.title' defaultMessage='Explore' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/public/local' data-preview-title-id='column.community' data-preview-icon='users' ><Icon className='column-link__icon' id='users' fixedWidth /><FormattedMessage id='tabs_bar.local_timeline' defaultMessage='Local' /></NavLink>
     <NavLink className='column-link column-link--transparent' exact to='/public' data-preview-title-id='column.public' data-preview-icon='globe' ><Icon className='column-link__icon' id='globe' fixedWidth /><FormattedMessage id='tabs_bar.federated_timeline' defaultMessage='Federated' /></NavLink>
-    <NavLink className='column-link column-link--transparent' to='/conversations'><Icon className='column-link__icon' id='at' fixedWidth /><FormattedMessage id='column.conversations' defaultMessage='Conversations' /></NavLink>
+    <NavLink className='column-link column-link--transparent' to='/conversations'><Icon className='column-link__icon' id='at' fixedWidth /><FormattedMessage id='navigation_bar.direct' defaultMessage='Direct messages' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/favourites'><Icon className='column-link__icon' id='star' fixedWidth /><FormattedMessage id='navigation_bar.favourites' defaultMessage='Favourites' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/bookmarks'><Icon className='column-link__icon' id='bookmark' fixedWidth /><FormattedMessage id='navigation_bar.bookmarks' defaultMessage='Bookmarks' /></NavLink>
     <NavLink className='column-link column-link--transparent' to='/lists'><Icon className='column-link__icon' id='list-ul' fixedWidth /><FormattedMessage id='navigation_bar.lists' defaultMessage='Lists' /></NavLink>
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index 6260e2cb8..df1e750b7 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -93,7 +93,7 @@
   "community.column_settings.media_only": "Pouze média",
   "community.column_settings.remote_only": "Pouze vzdálené",
   "compose_form.direct_message_warning_learn_more": "Zjistit více",
-  "compose_form.encryption_warning": "Příspěvky v Mastodonu nejsou šifrovány end-to-end. Nesdílejte žádné nebezpečné informace přes Mastodon.",
+  "compose_form.encryption_warning": "Příspěvky na Mastodonu nejsou end-to-end šifrovány. Nesdílejte přes Mastodon žádné nebezpečné 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.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": "uzamčen",
@@ -166,7 +166,7 @@
   "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.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!",
-  "empty_column.conversations": "Jakmile pošlete nebo obdržíte příspěvek, který je viditelný pouze pro lidi v něm uvedené, zobrazí se zde.",
+  "empty_column.conversations": "Jakmile pošlete nebo obdržíte příspěvek, který je viditelný pouze lidem v něm zmíněným, objeví se tady.",
   "empty_column.domain_blocks": "Ještě nemáte žádné blokované 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.",
@@ -230,7 +230,7 @@
   "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.conversations": "pro otevření sloupce konverzací",
+  "keyboard_shortcuts.conversations": "Otevřít sloupec konverzací",
   "keyboard_shortcuts.description": "Popis",
   "keyboard_shortcuts.down": "Posunout dolů v seznamu",
   "keyboard_shortcuts.enter": "Otevřít příspěvek",
@@ -365,13 +365,13 @@
   "poll_button.add_poll": "Přidat anketu",
   "poll_button.remove_poll": "Odstranit anketu",
   "privacy.change": "Změnit soukromí příspěvku",
-  "privacy.direct.long": "Viditelné pouze pro zmíněné uživatele",
-  "privacy.direct.short": "Pouze lidé, které zmiňuji",
-  "privacy.private.long": "Viditelné pouze pro sledující",
+  "privacy.direct.long": "Viditelný pouze pro zmíněné uživatele",
+  "privacy.direct.short": "Pouze lidé, které zmíním",
+  "privacy.private.long": "Viditelný pouze pro sledující",
   "privacy.private.short": "Pouze sledující",
-  "privacy.public.long": "Viditelné pro všechny",
+  "privacy.public.long": "Viditelný pro všechny",
   "privacy.public.short": "Veřejný",
-  "privacy.unlisted.long": "Viditelné pro všechny, ale bez objevovacích funkcí",
+  "privacy.unlisted.long": "Viditelný pro všechny, ale vyňat z funkcí objevování",
   "privacy.unlisted.short": "Neuvedený",
   "refresh": "Obnovit",
   "regeneration_indicator.label": "Načítání…",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 039379315..7edb1d1cf 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -4,20 +4,20 @@
   "account.badges.bot": "Bot",
   "account.badges.group": "Grŵp",
   "account.block": "Blocio @{name}",
-  "account.block_domain": "Cuddio popeth rhag {domain}",
+  "account.block_domain": "Blocio parth {domain}",
   "account.blocked": "Blociwyd",
   "account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol",
   "account.cancel_follow_request": "Canslo cais dilyn",
   "account.direct": "Neges breifat @{name}",
   "account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio",
-  "account.domain_blocked": "Parth wedi ei guddio",
+  "account.domain_blocked": "Parth wedi ei flocio",
   "account.edit_profile": "Golygu proffil",
   "account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio",
   "account.endorse": "Arddangos ar fy mhroffil",
   "account.follow": "Dilyn",
   "account.followers": "Dilynwyr",
-  "account.followers.empty": "Nid oes neb yn dilyn y defnyddiwr hwn eto.",
-  "account.followers_counter": "{count, plural, one {{counter} Ddilynwr} other {{counter} o Ddilynwyr}}",
+  "account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
+  "account.followers_counter": "{count, plural, one {{counter} Dilynwr} other {{counter} o Ddilynwyr}}",
   "account.following": "Yn dilyn",
   "account.following_counter": "{count, plural, one {{counter} yn Dilyn} other {{counter} yn Dilyn}}",
   "account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.",
@@ -32,8 +32,8 @@
   "account.mute": "Tawelu @{name}",
   "account.mute_notifications": "Cuddio hysbysiadau o @{name}",
   "account.muted": "Distewyd",
-  "account.posts": "Tŵtiau",
-  "account.posts_with_replies": "Tŵtiau ac atebion",
+  "account.posts": "Postiadau",
+  "account.posts_with_replies": "Postiadau ac atebion",
   "account.report": "Adrodd @{name}",
   "account.requested": "Aros am gymeradwyaeth. Cliciwch er mwyn canslo cais dilyn",
   "account.share": "Rhannwch broffil @{name}",
@@ -48,17 +48,17 @@
   "account.unmute_notifications": "Dad-dawelu hysbysiadau o @{name}",
   "account.unmute_short": "Dad-dewi",
   "account_note.placeholder": "Clicio i ychwanegu nodyn",
-  "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.daily_retention": "Cyfradd cadw defnyddwyr fesul diwrnod ar ôl cofrestru",
+  "admin.dashboard.monthly_retention": "Cyfradd cadw defnyddwyr fesul mis ar ôl cofrestru",
   "admin.dashboard.retention.average": "Cyfartaledd",
-  "admin.dashboard.retention.cohort": "Sign-up month",
+  "admin.dashboard.retention.cohort": "Mis cofrestru",
   "admin.dashboard.retention.cohort_size": "Defnyddwyr newydd",
   "alert.rate_limited.message": "Ceisiwch eto ar ôl {retry_time, time, medium}.",
   "alert.rate_limited.title": "Cyfradd gyfyngedig",
   "alert.unexpected.message": "Digwyddodd gwall annisgwyl.",
   "alert.unexpected.title": "Wps!",
   "announcement.announcement": "Cyhoeddiad",
-  "attachments_list.unprocessed": "(unprocessed)",
+  "attachments_list.unprocessed": "(heb eu prosesu)",
   "autosuggest_hashtag.per_week": "{count} yr wythnos",
   "boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa",
   "bundle_column_error.body": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.",
@@ -70,7 +70,7 @@
   "column.blocks": "Defnyddwyr a flociwyd",
   "column.bookmarks": "Tudalnodau",
   "column.community": "Ffrwd lleol",
-  "column.conversations": "Conversations",
+  "column.conversations": "Sgyrsiau",
   "column.directory": "Pori proffiliau",
   "column.domain_blocks": "Parthau cuddiedig",
   "column.favourites": "Ffefrynnau",
@@ -79,7 +79,7 @@
   "column.lists": "Rhestrau",
   "column.mutes": "Defnyddwyr a ddistewyd",
   "column.notifications": "Hysbysiadau",
-  "column.pins": "Tŵtiau wedi eu pinio",
+  "column.pins": "Postiadau wedi eu pinio",
   "column.public": "Ffrwd y ffederasiwn",
   "column_back_button.label": "Nôl",
   "column_header.hide_settings": "Cuddio dewisiadau",
@@ -93,9 +93,9 @@
   "community.column_settings.media_only": "Cyfryngau yn unig",
   "community.column_settings.remote_only": "Anghysbell yn unig",
   "compose_form.direct_message_warning_learn_more": "Dysgu mwy",
-  "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": "Ni fydd y tŵt hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond tŵtiau cyhoeddus gellid chwilota amdanynt drwy hashnod.",
-  "compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich tŵtiau dilynwyr-yn-unig.",
+  "compose_form.encryption_warning": "Dyw postiadau ar Mastodon ddim wedi'u hamgryptio o ben i ben. Peidiwch â rhannu unrhyw wybodaeth beryglus dros Mastodon.",
+  "compose_form.hashtag_warning": "Ni fydd y post hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond postiadau cyhoeddus gellid chwilio amdanynt drwy hashnod.",
+  "compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich postiadau dilynwyr-yn-unig.",
   "compose_form.lock_disclaimer.lock": "wedi ei gloi",
   "compose_form.placeholder": "Beth sydd ar eich meddwl?",
   "compose_form.poll.add_option": "Ychwanegu Dewisiad",
@@ -106,7 +106,7 @@
   "compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis",
   "compose_form.publish": "Tŵt",
   "compose_form.publish_loud": "{publish}!",
-  "compose_form.save_changes": "Save changes",
+  "compose_form.save_changes": "Cadw newidiadau",
   "compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif",
   "compose_form.sensitive.marked": "Cyfryngau wedi'u marcio'n sensitif",
   "compose_form.sensitive.unmarked": "Nid yw'r cyfryngau wedi'u marcio'n sensitif",
@@ -118,11 +118,11 @@
   "confirmations.block.confirm": "Blocio",
   "confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
   "confirmations.delete.confirm": "Dileu",
-  "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y tŵt hwn?",
+  "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
   "confirmations.delete_list.confirm": "Dileu",
   "confirmations.delete_list.message": "Ydych chi'n sicr eich bod eisiau dileu y rhestr hwn am byth?",
   "confirmations.discard_edit_media.confirm": "Gwaredu",
-  "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
+  "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": "Cuddio parth cyfan",
   "confirmations.domain_block.message": "A ydych yn hollol, hollol sicr eich bod am flocio y {domain} cyfan? Yn y nifer helaeth o achosion mae blocio neu tawelu ambell gyfrif yn ddigonol ac yn well. Ni fyddwch yn gweld cynnwys o'r parth hwnnw mewn unrhyw ffrydiau cyhoeddus na chwaith yn eich hysbysiadau. Bydd hyn yn cael gwared o'ch dilynwyr o'r parth hwnnw.",
   "confirmations.logout.confirm": "Allgofnodi",
@@ -131,7 +131,7 @@
   "confirmations.mute.explanation": "Bydd hyn yn cuddio pyst oddi wrthynt a physt sydd yn sôn amdanynt, ond bydd hyn dal yn gadael iddyn nhw gweld eich pyst a'ch dilyn.",
   "confirmations.mute.message": "Ydych chi'n sicr eich bod am ddistewi {name}?",
   "confirmations.redraft.confirm": "Dileu & ailddrafftio",
-  "confirmations.redraft.message": "Ydych chi'n siwr eich bod eisiau dileu y tŵt hwn a'i ailddrafftio? Bydd ffefrynnau a bwstiau'n cael ei colli, a bydd ymatebion i'r tŵt gwreiddiol yn cael eu hamddifadu.",
+  "confirmations.redraft.message": "Ydych chi'n siwr eich bod eisiau dileu y post hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael ei colli, a bydd ymatebion i'r post 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.unfollow.confirm": "Dad-ddilynwch",
@@ -140,11 +140,11 @@
   "conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
   "conversation.open": "Gweld sgwrs",
   "conversation.with": "Gyda {names}",
-  "directory.federated": "O ffedysawd hysbys",
+  "directory.federated": "O'r ffedysawd cyfan",
   "directory.local": "O {domain} yn unig",
   "directory.new_arrivals": "Newydd-ddyfodiaid",
   "directory.recently_active": "Yn weithredol yn ddiweddar",
-  "embed.instructions": "Mewnblannwch y tŵt hwn ar eich gwefan drwy gopïo'r côd isod.",
+  "embed.instructions": "Gosodwch y post hwn ar eich gwefan drwy gopïo'r côd isod.",
   "embed.preview": "Dyma sut olwg fydd arno:",
   "emoji_button.activity": "Gweithgarwch",
   "emoji_button.custom": "Unigryw",
@@ -160,42 +160,42 @@
   "emoji_button.search_results": "Canlyniadau chwilio",
   "emoji_button.symbols": "Symbolau",
   "emoji_button.travel": "Teithio & Llefydd",
-  "empty_column.account_suspended": "Account suspended",
-  "empty_column.account_timeline": "Dim tŵtiau fama!",
+  "empty_column.account_suspended": "Cyfrif wedi'i atal",
+  "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 dwtiau tudalnodiedig eto. Pan y byddwch yn tudalnodi un, mi fydd yn ymddangos yma.",
   "empty_column.community": "Mae'r ffrwd lleol yn wag. Ysgrifenwch rhywbeth yn gyhoeddus i gael dechrau arni!",
-  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+  "empty_column.conversations": "Unwaith y byddwch chi'n anfon neu'n derbyn post sydd ond yn weladwy i'r bobl a grybwyllir ynddo, bydd yn ymddangos yma.",
   "empty_column.domain_blocks": "Nid oes yna unrhyw barthau cuddiedig eto.",
-  "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
+  "empty_column.explore_statuses": "Does dim byd yn trendio ar hyn o bryd. Gwiriwch yn ôl yn nes ymlaen!",
   "empty_column.favourited_statuses": "Nid oes gennych unrhyw hoff dwtiau eto. Pan y byddwch yn hoffi un, mi fydd yn ymddangos yma.",
-  "empty_column.favourites": "Nid oes neb wedi hoffi'r tŵt yma eto. Pan bydd rhywun yn ei hoffi, byddent yn ymddangos yma.",
-  "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.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 dderbyniwch chi un, byddent yn ymddangos yma.",
   "empty_column.hashtag": "Nid oes dim ar yr hashnod hwn eto.",
   "empty_column.home": "Mae eich ffrwd gartref yn wag! Ymwelwch a {public} neu defnyddiwch y chwilotwr i ddechrau arni ac i gwrdd a defnyddwyr eraill.",
-  "empty_column.home.suggestions": "See some suggestions",
+  "empty_column.home.suggestions": "Gweler awgrymiadau",
   "empty_column.list": "Nid oes dim yn y rhestr yma eto. Pan y bydd aelodau'r rhestr yn cyhoeddi statws newydd, mi fydd yn ymddangos yma.",
   "empty_column.lists": "Nid oes gennych unrhyw restrau eto. Pan grëwch chi un, mi fydd yn ymddangos yma.",
   "empty_column.mutes": "Nid ydych wedi tawelu 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",
   "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": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
+  "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.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.",
+  "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": "Search results",
+  "explore.search_results": "Canlyniadau chwilio",
   "explore.suggested_follows": "I chi",
   "explore.title": "Archwilio",
   "explore.trending_links": "Newyddion",
   "explore.trending_statuses": "Postiau",
   "explore.trending_tags": "Hanshnodau",
   "follow_recommendations.done": "Wedi gorffen",
-  "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.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.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.",
@@ -218,7 +218,7 @@
   "hashtag.column_settings.tag_mode.none": "Dim o'r rhain",
   "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
   "home.column_settings.basic": "Syml",
-  "home.column_settings.show_reblogs": "Dangos bŵstiau",
+  "home.column_settings.show_reblogs": "Dangos hybiau",
   "home.column_settings.show_replies": "Dangos ymatebion",
   "home.hide_announcements": "Cuddio cyhoeddiadau",
   "home.show_announcements": "Dangos cyhoeddiadau",
@@ -228,26 +228,26 @@
   "keyboard_shortcuts.back": "i lywio nôl",
   "keyboard_shortcuts.blocked": "i agor rhestr defnyddwyr a flociwyd",
   "keyboard_shortcuts.boost": "i fŵstio",
-  "keyboard_shortcuts.column": "i ffocysu tŵt yn un o'r colofnau",
+  "keyboard_shortcuts.column": "Ffocysu colofn",
   "keyboard_shortcuts.compose": "i ffocysu yr ardal cyfansoddi testun",
-  "keyboard_shortcuts.conversations": "to open conversations column",
+  "keyboard_shortcuts.conversations": "i agor colofn sgyrsiau",
   "keyboard_shortcuts.description": "Disgrifiad",
   "keyboard_shortcuts.down": "i symud lawr yn y rhestr",
-  "keyboard_shortcuts.enter": "i agor tŵt",
+  "keyboard_shortcuts.enter": "Agor post",
   "keyboard_shortcuts.favourite": "i hoffi",
   "keyboard_shortcuts.favourites": "i agor rhestr hoffi",
   "keyboard_shortcuts.federated": "i agor ffrwd y ffederasiwn",
   "keyboard_shortcuts.heading": "Llwybrau byr allweddell",
   "keyboard_shortcuts.home": "i agor ffrwd cartref",
   "keyboard_shortcuts.hotkey": "Bysell brys",
-  "keyboard_shortcuts.legend": "i ddangos yr arwr yma",
+  "keyboard_shortcuts.legend": "i ddangos y rhestr hon",
   "keyboard_shortcuts.local": "i agor ffrwd lleol",
   "keyboard_shortcuts.mention": "i grybwyll yr awdur",
   "keyboard_shortcuts.muted": "i agor rhestr defnyddwyr a dawelwyd",
   "keyboard_shortcuts.my_profile": "i agor eich proffil",
   "keyboard_shortcuts.notifications": "i agor colofn hysbysiadau",
   "keyboard_shortcuts.open_media": "i agor cyfryngau",
-  "keyboard_shortcuts.pinned": "i agor rhestr tŵtiau wedi'i pinio",
+  "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",
@@ -256,7 +256,7 @@
   "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.toot": "i ddechrau tŵt newydd sbon",
+  "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",
   "lightbox.close": "Cau",
@@ -275,7 +275,7 @@
   "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 ei ddilyn",
+  "lists.search": "Chwilio ymysg pobl yr ydych yn eu dilyn",
   "lists.subheading": "Eich rhestrau",
   "load_pending": "{count, plural, one {# eitem newydd} other {# eitemau newydd}}",
   "loading_indicator.label": "Llwytho...",
@@ -289,7 +289,7 @@
   "navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
   "navigation_bar.bookmarks": "Tudalnodau",
   "navigation_bar.community_timeline": "Ffrwd leol",
-  "navigation_bar.compose": "Cyfansoddi tŵt newydd",
+  "navigation_bar.compose": "Cyfansoddi post newydd",
   "navigation_bar.discover": "Darganfod",
   "navigation_bar.domain_blocks": "Parthau cuddiedig",
   "navigation_bar.edit_profile": "Golygu proffil",
@@ -304,28 +304,28 @@
   "navigation_bar.logout": "Allgofnodi",
   "navigation_bar.mutes": "Defnyddwyr a dawelwyd",
   "navigation_bar.personal": "Personol",
-  "navigation_bar.pins": "Tŵtiau wedi eu pinio",
+  "navigation_bar.pins": "Postiadau wedi eu pinio",
   "navigation_bar.preferences": "Dewisiadau",
   "navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
   "navigation_bar.security": "Diogelwch",
-  "notification.admin.sign_up": "{name} signed up",
-  "notification.favourite": "hoffodd {name} eich tŵt",
-  "notification.follow": "dilynodd {name} chi",
+  "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.poll": "Mae pleidlais rydych wedi pleidleisio ynddi wedi dod i ben",
-  "notification.reblog": "Hysbysebodd {name} eich tŵt",
+  "notification.reblog": "Hybodd {name} eich post",
   "notification.status": "{name} newydd ei bostio",
-  "notification.update": "{name} edited a post",
+  "notification.update": "Golygodd {name} bost",
   "notifications.clear": "Clirio hysbysiadau",
   "notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?",
-  "notifications.column_settings.admin.sign_up": "New sign-ups:",
+  "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.show_bar": "Show filter bar",
+  "notifications.column_settings.filter_bar.show_bar": "Dangos bar hidlo",
   "notifications.column_settings.follow": "Dilynwyr newydd:",
   "notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:",
   "notifications.column_settings.mention": "Crybwylliadau:",
@@ -335,10 +335,10 @@
   "notifications.column_settings.show": "Dangos yn y golofn",
   "notifications.column_settings.sound": "Chwarae sain",
   "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.unread_notifications.category": "Hysbysiadau heb eu darllen",
+  "notifications.column_settings.unread_notifications.highlight": "Amlygu hysbysiadau heb eu darllen",
   "notifications.column_settings.update": "Golygiadau:",
-  "notifications.filter.all": "Pob",
+  "notifications.filter.all": "Popeth",
   "notifications.filter.boosts": "Hybiadau",
   "notifications.filter.favourites": "Ffefrynnau",
   "notifications.filter.follows": "Yn dilyn",
@@ -361,116 +361,116 @@
   "poll.total_votes": "{count, plural, one {# bleidlais} other {# o bleidleisiau}}",
   "poll.vote": "Pleidleisio",
   "poll.voted": "Pleidleisioch chi am yr ateb hon",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, one {# bleidlais} other {# o bleidleisiau}}",
   "poll_button.add_poll": "Ychwanegu pleidlais",
   "poll_button.remove_poll": "Tynnu pleidlais",
-  "privacy.change": "Addasu preifatrwdd y tŵt",
+  "privacy.change": "Addasu preifatrwdd y post",
   "privacy.direct.long": "Cyhoeddi i'r defnyddwyr sy'n cael eu crybwyll yn unig",
-  "privacy.direct.short": "Direct",
+  "privacy.direct.short": "Dim ond pobl rwy'n eu crybwyll",
   "privacy.private.long": "Cyhoeddi i ddilynwyr yn unig",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all",
+  "privacy.private.short": "Dilynwyr yn unig",
+  "privacy.public.long": "Gweladwy i bawb",
   "privacy.public.short": "Cyhoeddus",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Gweladwy i bawb, ond wedi optio allan o nodweddion darganfod",
   "privacy.unlisted.short": "Heb ei restru",
   "refresh": "Adnewyddu",
   "regeneration_indicator.label": "Llwytho…",
   "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!",
   "relative_time.days": "{number}dydd",
-  "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, 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 {# minute} other {# minutes}} ago",
-  "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
-  "relative_time.hours": "{number}awr",
+  "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.hours": "{number} awr",
   "relative_time.just_now": "nawr",
-  "relative_time.minutes": "{number}munud",
+  "relative_time.minutes": "{number} munud",
   "relative_time.seconds": "{number}eiliad",
   "relative_time.today": "heddiw",
   "reply_indicator.cancel": "Canslo",
   "report.block": "Blocio",
-  "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": "Ni welwch chi eu postiadau. Ni allan nhw weld eich postiadau na'ch dilyn. Byddan nhw'n gallu gweld eu bod nhw wedi'u rhwystro.",
   "report.categories.other": "Arall",
   "report.categories.spam": "Sbam",
-  "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.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.title_account": "proffil",
   "report.category.title_status": "post",
-  "report.close": "Done",
-  "report.comment.title": "Is there anything else you think we should know?",
+  "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": "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": "Mudo",
+  "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",
-  "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": "Dydw i ddim yn ei hoffi",
+  "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_description": "Cysylltiadau maleisus, ymgysylltu ffug, neu atebion ailadroddus",
+  "report.reasons.violation": "Mae'n torri rheolau'r gweinydd",
+  "report.reasons.violation_description": "Rydych yn ymwybodol ei fod yn torri rheolau penodol",
+  "report.rules.subtitle": "Dewiswch bob un sy'n berthnasol",
+  "report.rules.title": "Pa reolau sy'n cael eu torri?",
+  "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": "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.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.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.",
   "search.placeholder": "Chwilio",
   "search_popout.search_format": "Fformat chwilio uwch",
-  "search_popout.tips.full_text": "Mae testun syml yn dychwelyd tŵtiau yr ydych wedi ysgrifennu, hoffi, wedi'u bŵstio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
+  "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": "tŵt",
+  "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.user": "defnyddiwr",
   "search_results.accounts": "Pobl",
-  "search_results.all": "Pob",
+  "search_results.all": "Popeth",
   "search_results.hashtags": "Hanshnodau",
-  "search_results.nothing_found": "Could not find anything for these search terms",
-  "search_results.statuses": "Tŵtiau",
-  "search_results.statuses_fts_disabled": "Nid yw chwilio Tŵtiau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.",
-  "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
+  "search_results.nothing_found": "Methu dod o hyd i unrhyw beth ar gyfer y termau chwilio hyn",
+  "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.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {o ganlyniadau}}",
   "status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}",
-  "status.admin_status": "Agor y tŵt yn y rhyngwyneb goruwchwylio",
+  "status.admin_status": "Agor y post hwn yn y rhyngwyneb goruwchwylio",
   "status.block": "Blocio @{name}",
   "status.bookmark": "Tudalnodi",
   "status.cancel_reblog_private": "Dadfŵstio",
-  "status.cannot_reblog": "Ni ellir sbarduno'r tŵt hwn",
-  "status.copy": "Copïo cysylltiad i'r tŵt",
+  "status.cannot_reblog": "Ni ellir hybio'r post 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": "Edited {date}",
-  "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
+  "status.edited": "Ymunodd {date}",
+  "status.edited_x_times": "Golygwyd {count, plural, one {unwaith} two {dwywaith} other {{count} gwaith}}",
   "status.embed": "Plannu",
   "status.favourite": "Hoffi",
   "status.filtered": "Wedi'i hidlo",
-  "status.history.created": "{name} created {date}",
-  "status.history.edited": "{name} edited {date}",
+  "status.history.created": "{name} greuodd {date}",
+  "status.history.edited": "{name} olygodd {date}",
   "status.load_more": "Llwythwch mwy",
   "status.media_hidden": "Cyfryngau wedi'u cuddio",
   "status.mention": "Crybwyll @{name}",
   "status.more": "Mwy",
   "status.mute": "Tawelu @{name}",
   "status.mute_conversation": "Tawelu sgwrs",
-  "status.open": "Ehangu'r tŵt hwn",
+  "status.open": "Ehangu'r post hwn",
   "status.pin": "Pinio ar y proffil",
-  "status.pinned": "Pinio tŵt",
+  "status.pinned": "Pinio post",
   "status.read_more": "Darllen mwy",
   "status.reblog": "Hybu",
   "status.reblog_private": "Hybu i'r gynulleidfa wreiddiol",
-  "status.reblogged_by": "Bŵstio {name}",
-  "status.reblogs.empty": "Does neb wedi bŵstio'r tŵt yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.",
+  "status.reblogged_by": "Hybio {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 & ailddrafftio",
   "status.remove_bookmark": "Tynnu'r tudalnod",
   "status.reply": "Ateb",
@@ -501,7 +501,7 @@
   "timeline_hint.remote_resource_not_displayed": "ni chaiff {resource} o gweinyddion eraill ei ddangos.",
   "timeline_hint.resources.followers": "Dilynwyr",
   "timeline_hint.resources.follows": "Yn dilyn",
-  "timeline_hint.resources.statuses": "Tŵtiau henach",
+  "timeline_hint.resources.statuses": "Postiadau hŷn",
   "trends.counter_by_accounts": "{count, plural, one {{counter} berson} other {{counter} o bobl}}",
   "trends.trending_now": "Yn tueddu nawr",
   "ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.",
@@ -514,20 +514,20 @@
   "upload_error.poll": "Nid oes modd uwchlwytho 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": "No description added",
+  "upload_form.description_missing": "Dim disgrifiad wedi'i ychwanegu",
   "upload_form.edit": "Golygu",
   "upload_form.thumbnail": "Newid mân-lun",
   "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": "Applying…",
+  "upload_modal.applying": "Gweithio…",
   "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": "Preparing OCR…",
+  "upload_modal.preparing_ocr": "Paratoi OCR…",
   "upload_modal.preview_label": "Rhagolwg ({ratio})",
   "upload_progress.label": "Uwchlwytho...",
   "video.close": "Cau fideo",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 1bf817c7b..87f2b2017 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -368,10 +368,10 @@
   "privacy.direct.long": "Wird an erwähnte Profile gesendet",
   "privacy.direct.short": "Nur Leute, die ich erwähne",
   "privacy.private.long": "Nur für Folgende sichtbar",
-  "privacy.private.short": "Nur Folgende",
-  "privacy.public.long": "Sichtbar für alle",
+  "privacy.private.short": "Nur Follower",
+  "privacy.public.long": "Für alle sichtbar",
   "privacy.public.short": "Öffentlich",
-  "privacy.unlisted.long": "Sichtbar für alle, aber nicht für Entdeckungsfunktionen",
+  "privacy.unlisted.long": "Sichtbar für alle, aber nicht über Entdeckungsfunktionen",
   "privacy.unlisted.short": "Nicht gelistet",
   "refresh": "Aktualisieren",
   "regeneration_indicator.label": "Laden…",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 723b7d333..83888e634 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -369,9 +369,9 @@
   "privacy.direct.short": "Solo la gente que yo menciono",
   "privacy.private.long": "Sólo mostrar a seguidores",
   "privacy.private.short": "Solo seguidores",
-  "privacy.public.long": "Visible por todos",
+  "privacy.public.long": "Visible para todos",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "Visible para todos, pero excluido de las características de descubrimiento",
+  "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
   "privacy.unlisted.short": "No listado",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "Cargando…",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index 8fec2747c..be1b10025 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -93,7 +93,7 @@
   "community.column_settings.media_only": "Meadhanan a-mhàin",
   "community.column_settings.remote_only": "Feadhainn chèin a-mhàin",
   "compose_form.direct_message_warning_learn_more": "Barrachd fiosrachaidh",
-  "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": "Chan eil crioptachadh ceann gu ceann air postaichean Mhastodon. Na co-roinn fiosrachadh cunnartach idir le Mastodon.",
   "compose_form.hashtag_warning": "Cha nochd am post seo fon taga hais on a tha e falaichte o liostaichean. Cha ghabh ach postaichean poblach a lorg a-rèir an tagaichean hais.",
   "compose_form.lock_disclaimer": "Chan eil an cunntas agad {locked}. ’S urrainn do dhuine sam bith leantainn ort is na postaichean agad a tha ag amas air an luchd-leantainn agad a-mhàin a shealltainn.",
   "compose_form.lock_disclaimer.lock": "glaiste",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Cha do bhac thu cleachdaiche sam bith fhathast.",
   "empty_column.bookmarked_statuses": "Chan eil comharra-lìn ri post agad fhathast. Nuair a nì thu comharra-lìn de dh’fhear, nochdaidh e an-seo.",
   "empty_column.community": "Tha an loidhne-ama ionadail falamh. Sgrìobh rudeigin gu poblach airson toiseach-tòiseachaidh a dhèanamh!",
-  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+  "empty_column.conversations": "Nuair a chuireas no gheibh thu post nach fhaic ach an fheadhainn le iomradh orra ann, nochdaidh e an-seo.",
   "empty_column.domain_blocks": "Cha deach àrainn sam bith a bhacadh fhathast.",
   "empty_column.explore_statuses": "Chan eil dad a’ treandadh an-dràsta fhèin. Thoir sùil a-rithist an ceann greis!",
   "empty_column.favourited_statuses": "Chan eil annsachd air post agad fhathast. Nuair a nì thu annsachd de dh’fhear, nochdaidh e an-seo.",
@@ -230,7 +230,7 @@
   "keyboard_shortcuts.boost": "Brosnaich post",
   "keyboard_shortcuts.column": "Cuir am fòcas air colbh",
   "keyboard_shortcuts.compose": "Cuir am fòcas air raon teacsa an sgrìobhaidh",
-  "keyboard_shortcuts.conversations": "to open conversations column",
+  "keyboard_shortcuts.conversations": "a dh’fhosgladh colbh nan còmhraidhean",
   "keyboard_shortcuts.description": "Tuairisgeul",
   "keyboard_shortcuts.down": "Gluais sìos air an liosta",
   "keyboard_shortcuts.enter": "Fosgail post",
@@ -290,7 +290,7 @@
   "navigation_bar.bookmarks": "Comharran-lìn",
   "navigation_bar.community_timeline": "Loidhne-ama ionadail",
   "navigation_bar.compose": "Sgrìobh post ùr",
-  "navigation_bar.discover": "Fidir",
+  "navigation_bar.discover": "Rùraich",
   "navigation_bar.domain_blocks": "Àrainnean bacte",
   "navigation_bar.edit_profile": "Deasaich a’ phròifil",
   "navigation_bar.explore": "Rùraich",
@@ -369,9 +369,9 @@
   "privacy.direct.short": "Daoine air an dug mi iomradh a-mhàin",
   "privacy.private.long": "Chan fhaic ach na daoine a tha a’ leantainn ort seo",
   "privacy.private.short": "Luchd-leantainn a-mhàin",
-  "privacy.public.long": "Visible for all",
+  "privacy.public.long": "Chì a h-uile duine e",
   "privacy.public.short": "Poblach",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Chì a h-uile duine e ach cha nochd e ann an gleusan rùrachaidh",
   "privacy.unlisted.short": "Falaichte o liostaichean",
   "refresh": "Ath-nuadhaich",
   "regeneration_indicator.label": "’Ga luchdadh…",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 0879afb36..114d90335 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -314,7 +314,7 @@
   "notification.follow_request": "{name} solicitou seguirte",
   "notification.mention": "{name} mencionoute",
   "notification.own_poll": "A túa enquisa rematou",
-  "notification.poll": "Unha enquisa na que votaches rematou",
+  "notification.poll": "Rematou a enquisa na que votaches",
   "notification.reblog": "{name} compartiu a túa publicación",
   "notification.status": "{name} publicou",
   "notification.update": "{name} editou unha publicación",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index ed70d1a21..c7ba3b852 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -18,8 +18,8 @@
   "account.followers": "Հետեւողներ",
   "account.followers.empty": "Այս օգտատիրոջը դեռ ոչ մէկ չի հետեւում։",
   "account.followers_counter": "{count, plural, one {{counter} Հետեւորդ} other {{counter} Հետեւորդ}}",
-  "account.following": "Following",
-  "account.following_counter": "{count, plural, one {{counter} հետեւած} other {{counter} հետեւած}}",
+  "account.following": "Հետեւած",
+  "account.following_counter": "{count, plural, one {{counter} Հետեւած} other {{counter} Հետեւած}}",
   "account.follows.empty": "Այս օգտատէրը դեռ ոչ մէկի չի հետեւում։",
   "account.follows_you": "Հետեւում է քեզ",
   "account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները",
@@ -41,12 +41,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": "Սեղմէ՛ք գրառելու համար\n",
   "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
@@ -70,7 +70,7 @@
   "column.blocks": "Արգելափակուած օգտատէրեր",
   "column.bookmarks": "Էջանիշեր",
   "column.community": "Տեղական հոսք",
-  "column.conversations": "Conversations",
+  "column.conversations": "Զրոյցներ",
   "column.directory": "Զննել անձնական էջերը",
   "column.domain_blocks": "Թաքցուած տիրոյթները",
   "column.favourites": "Հաւանածներ",
@@ -106,7 +106,7 @@
   "compose_form.poll.switch_to_single": "Հարցումը դարձնել եզակի ընտրութեամբ",
   "compose_form.publish": "Հրապարակել",
   "compose_form.publish_loud": "Հրապարակե՜լ",
-  "compose_form.save_changes": "Save changes",
+  "compose_form.save_changes": "Պահպանել փոփոխութիւնները",
   "compose_form.sensitive.hide": "Նշել մեդիան որպէս դիւրազգաց",
   "compose_form.sensitive.marked": "Մեդիան նշուած է որպէս դիւրազգաց",
   "compose_form.sensitive.unmarked": "Մեդիան նշուած չէ որպէս դիւրազգաց",
@@ -189,7 +189,7 @@
   "errors.unexpected_crash.report_issue": "Զեկուցել խնդրի մասին",
   "explore.search_results": "Որոնման արդիւնքներ",
   "explore.suggested_follows": "Ձեզ համար",
-  "explore.title": "Explore",
+  "explore.title": "Բացայայտել",
   "explore.trending_links": "Նորութիւններ",
   "explore.trending_statuses": "Գրառումներ",
   "explore.trending_tags": "Պիտակներ",
@@ -293,7 +293,7 @@
   "navigation_bar.discover": "Բացայայտել",
   "navigation_bar.domain_blocks": "Թաքցուած տիրոյթներ",
   "navigation_bar.edit_profile": "Խմբագրել անձնական էջը",
-  "navigation_bar.explore": "Explore",
+  "navigation_bar.explore": "Բացայայտել",
   "navigation_bar.favourites": "Հաւանածներ",
   "navigation_bar.filters": "Լռեցուած բառեր",
   "navigation_bar.follow_requests": "Հետեւելու հայցեր",
@@ -308,7 +308,7 @@
   "navigation_bar.preferences": "Նախապատուութիւններ",
   "navigation_bar.public_timeline": "Դաշնային հոսք",
   "navigation_bar.security": "Անվտանգութիւն",
-  "notification.admin.sign_up": "{name} signed up",
+  "notification.admin.sign_up": "{name}-ը գրանցուած է",
   "notification.favourite": "{name} հաւանեց գրառումդ",
   "notification.follow": "{name} սկսեց հետեւել քեզ",
   "notification.follow_request": "{name} քեզ հետեւելու հայց է ուղարկել",
@@ -317,10 +317,10 @@
   "notification.poll": "Հարցումը, ուր դու քուէարկել ես, աւարտուեց։",
   "notification.reblog": "{name} տարածեց գրառումդ",
   "notification.status": "{name} հենց նոր գրառում արեց",
-  "notification.update": "{name} edited a post",
+  "notification.update": "{name}-ը փոխել է գրառումը",
   "notifications.clear": "Մաքրել ծանուցումները",
   "notifications.clear_confirmation": "Վստա՞հ ես, որ ուզում ես մշտապէս մաքրել քո բոլոր ծանուցումները։",
-  "notifications.column_settings.admin.sign_up": "New sign-ups:",
+  "notifications.column_settings.admin.sign_up": "Նոր գրանցումներ՝",
   "notifications.column_settings.alert": "Աշխատատիրոյթի ծանուցումներ",
   "notifications.column_settings.favourite": "Հաւանածներից՝",
   "notifications.column_settings.filter_bar.advanced": "Ցուցադրել բոլոր կատեգորիաները",
@@ -337,7 +337,7 @@
   "notifications.column_settings.status": "Նոր գրառումներ։",
   "notifications.column_settings.unread_notifications.category": "Չկարդացուած ծանուցումներ",
   "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
-  "notifications.column_settings.update": "Edits:",
+  "notifications.column_settings.update": "Խմբագրածներ՝",
   "notifications.filter.all": "Բոլորը",
   "notifications.filter.boosts": "Տարածածները",
   "notifications.filter.favourites": "Հաւանածները",
@@ -361,15 +361,15 @@
   "poll.total_votes": "{count, plural, one {# ձայն} other {# ձայն}}",
   "poll.vote": "Քուէարկել",
   "poll.voted": "Դու քուէարկել ես այս տարբերակի համար",
-  "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+  "poll.votes": "{votes, plural, one {# ձայն} other {# ձայն}}",
   "poll_button.add_poll": "Աւելացնել հարցում",
   "poll_button.remove_poll": "Հեռացնել հարցումը",
   "privacy.change": "Կարգաւորել գրառման գաղտնիութիւնը",
   "privacy.direct.long": "Կը տեսնեն միայն նշուած օգտատէրերը",
-  "privacy.direct.short": "Direct",
+  "privacy.direct.short": "Միայն նշածս մարդիկ",
   "privacy.private.long": "Կը տեսնեն միայն հետեւորդները",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all",
+  "privacy.private.short": "Միայն հետեւողները",
+  "privacy.public.long": "Տեսանելի բոլորին",
   "privacy.public.short": "Հրապարակային",
   "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
   "privacy.unlisted.short": "Ծածուկ",
@@ -377,39 +377,39 @@
   "regeneration_indicator.label": "Բեռնւում է…",
   "regeneration_indicator.sublabel": "պատրաստւում է հիմնական հոսքդ",
   "relative_time.days": "{number}օր",
-  "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.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.just_now": "նոր",
   "relative_time.minutes": "{number}ր",
   "relative_time.seconds": "{number}վ",
   "relative_time.today": "Այսօր",
   "reply_indicator.cancel": "Չեղարկել",
-  "report.block": "Block",
+  "report.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",
-  "report.categories.spam": "Spam",
+  "report.categories.other": "Այլ",
+  "report.categories.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.category.title_account": "հաշիւ",
+  "report.category.title_status": "գրառում",
+  "report.close": "Աւարտել",
   "report.comment.title": "Is there anything else you think we should know?",
   "report.forward": "Փոխանցել {target}֊ին",
   "report.forward_hint": "Այս հաշիւ այլ հանգոյցից է։ Ուղարկե՞մ այնտեղ էլ այս բողոքի անոնիմ պատճէնը։",
-  "report.mute": "Mute",
+  "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.next": "Յաջորդ",
   "report.placeholder": "Լրացուցիչ մեկնաբանութիւններ",
-  "report.reasons.dislike": "I don't like it",
+  "report.reasons.dislike": "Ինձ դուր չի գալիս",
   "report.reasons.dislike_description": "It is not something you want to see",
-  "report.reasons.other": "It's something else",
+  "report.reasons.other": "Այլ բան է",
   "report.reasons.other_description": "The issue does not fit into other categories",
-  "report.reasons.spam": "It's spam",
+  "report.reasons.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",
@@ -499,7 +499,7 @@
   "time_remaining.moments": "Մնացել է մի քանի վարկեան",
   "time_remaining.seconds": "{number, plural, one {# վարկեան} other {# վարկեան}} անց",
   "timeline_hint.remote_resource_not_displayed": "{resource} այլ սպասարկիչներից չեն ցուցադրվել:",
-  "timeline_hint.resources.followers": "Հետևորդներ",
+  "timeline_hint.resources.followers": "Հետեւորդ",
   "timeline_hint.resources.follows": "Հետեւել",
   "timeline_hint.resources.statuses": "Հին գրառումներ",
   "trends.counter_by_accounts": "{count, plural, one {{counter} մարդ} other {{counter} մարդիկ}} խօսում են",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 6637e992a..d0ce09335 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -1,72 +1,72 @@
 {
-  "account.account_note_header": "Note",
-  "account.add_or_remove_from_list": "Add or Remove from lists",
-  "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
+  "account.account_note_header": "Noto",
+  "account.add_or_remove_from_list": "Insertez o removez de listi",
+  "account.badges.bot": "Boto",
+  "account.badges.group": "Grupo",
   "account.block": "Blokusar @{name}",
   "account.block_domain": "Hide everything from {domain}",
-  "account.blocked": "Blocked",
-  "account.browse_more_on_origin_server": "Browse more on the original profile",
-  "account.cancel_follow_request": "Cancel follow request",
+  "account.blocked": "Restriktita",
+  "account.browse_more_on_origin_server": "Videz plu che originala profilo",
+  "account.cancel_follow_request": "Removez sequodemando",
   "account.direct": "Direct Message @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
+  "account.disable_notifications": "Cesez avizar me kande @{name} postas",
   "account.domain_blocked": "Domain hidden",
   "account.edit_profile": "Modifikar profilo",
-  "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Feature on profile",
+  "account.enable_notifications": "Avizez me kande @{name} postas",
+  "account.endorse": "Traito di profilo",
   "account.follow": "Sequar",
   "account.followers": "Sequanti",
-  "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.followers.empty": "Nulu sequas ca uzanto til nun.",
+  "account.followers_counter": "{count, plural, one {{counter} Sequanto} other {{counter} Sequanti}}",
+  "account.following": "Sequata",
+  "account.following_counter": "{count, plural, one {{counter} Sequas} other {{counter} Sequanti}}",
+  "account.follows.empty": "Ca uzanto ne sequa irgu til nun.",
   "account.follows_you": "Sequas tu",
-  "account.hide_reblogs": "Hide boosts from @{name}",
-  "account.joined": "Joined {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": "Media",
+  "account.hide_reblogs": "Celez busti de @{name}",
+  "account.joined": "Juntas ye {date}",
+  "account.link_verified_on": "Proprieteso di ca ligilo kontrolesis ye {date}",
+  "account.locked_info": "La privatesostaco di ca konto fixesas quale lokata. Proprietato manue kontrolas personi qui povas sequar.",
+  "account.media": "Medio",
   "account.mention": "Mencionar @{name}",
-  "account.moved_to": "{name} has moved to:",
+  "account.moved_to": "{name} movesis a:",
   "account.mute": "Celar @{name}",
-  "account.mute_notifications": "Mute notifications from @{name}",
-  "account.muted": "Muted",
+  "account.mute_notifications": "Silencigez avizi de @{name}",
+  "account.muted": "Silencigata",
   "account.posts": "Mesaji",
   "account.posts_with_replies": "Toots with replies",
   "account.report": "Denuncar @{name}",
   "account.requested": "Vartante aprobo",
-  "account.share": "Share @{name}'s profile",
-  "account.show_reblogs": "Show boosts from @{name}",
+  "account.share": "Partigez profilo di @{name}",
+  "account.show_reblogs": "Montrez busti de @{name}",
   "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
   "account.unblock": "Desblokusar @{name}",
   "account.unblock_domain": "Unhide {domain}",
-  "account.unblock_short": "Unblock",
-  "account.unendorse": "Don't feature on profile",
+  "account.unblock_short": "Derestriktez",
+  "account.unendorse": "Ne publikigez che profilo",
   "account.unfollow": "Ne plus sequar",
   "account.unmute": "Ne plus celar @{name}",
-  "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account.unmute_short": "Unmute",
+  "account.unmute_notifications": "Desilencigez avizi de @{name}",
+  "account.unmute_short": "Desilencigez",
   "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)",
-  "autosuggest_hashtag.per_week": "{count} per week",
+  "admin.dashboard.retention.average": "Averajo",
+  "admin.dashboard.retention.cohort": "Registromonato",
+  "admin.dashboard.retention.cohort_size": "Nova uzanti",
+  "alert.rate_limited.message": "Riprobez pos {retry_time, time, medium}.",
+  "alert.rate_limited.title": "Limitizita multeso",
+  "alert.unexpected.message": "Neexpektita eroro eventis.",
+  "alert.unexpected.title": "Problemo!",
+  "announcement.announcement": "Anunco",
+  "attachments_list.unprocessed": "(neprocedita)",
+  "autosuggest_hashtag.per_week": "{count} dum singla semano",
   "boost_modal.combo": "Tu povas presar sur {combo} por omisar co en la venonta foyo",
-  "bundle_column_error.body": "Something went wrong while loading this component.",
-  "bundle_column_error.retry": "Try again",
-  "bundle_column_error.title": "Network error",
-  "bundle_modal_error.close": "Close",
-  "bundle_modal_error.message": "Something went wrong while loading this component.",
-  "bundle_modal_error.retry": "Try again",
+  "bundle_column_error.body": "Nulo ne functionis dum chargar ca kompozaj.",
+  "bundle_column_error.retry": "Probez itere",
+  "bundle_column_error.title": "Rederor",
+  "bundle_modal_error.close": "Klozez",
+  "bundle_modal_error.message": "Nulo ne functionis dum chargar ca kompozaj.",
+  "bundle_modal_error.retry": "Probez itere",
   "column.blocks": "Blokusita uzeri",
   "column.bookmarks": "Bookmarks",
   "column.community": "Lokala tempolineo",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 7df325463..053c18fcf 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -1,7 +1,7 @@
 {
   "account.account_note_header": "Minnispunktur",
   "account.add_or_remove_from_list": "Bæta við eða fjarlægja af listum",
-  "account.badges.bot": "Róbót",
+  "account.badges.bot": "Vélmenni",
   "account.badges.group": "Hópur",
   "account.block": "Loka á @{name}",
   "account.block_domain": "Útiloka lénið {domain}",
@@ -71,7 +71,7 @@
   "column.bookmarks": "Bókamerki",
   "column.community": "Staðvær tímalína",
   "column.conversations": "Samtöl",
-  "column.directory": "Skoða notandasnið",
+  "column.directory": "Vafra notandasnið",
   "column.domain_blocks": "Útilokuð lén",
   "column.favourites": "Eftirlæti",
   "column.follow_requests": "Beiðnir um að fylgjast með",
@@ -95,8 +95,8 @@
   "compose_form.direct_message_warning_learn_more": "Kanna nánar",
   "compose_form.encryption_warning": "Færslur á Mastodon eru ekki enda-í-enda dulritaðar. Ekki deila viðkvæmum upplýsingum á Mastodon.",
   "compose_form.hashtag_warning": "Þessi færsla verður ekki talin með undir nokkru myllumerki þar sem það er óskráð. Einungis er hægt að leita að opinberum færslum eftir myllumerkjum.",
-  "compose_form.lock_disclaimer": "Aðgangurinn þinn er ekki {locked}. Hver sem er getur fylgst með þeim færslum þínum sem einungis eru til fylgjenda þinna.",
-  "compose_form.lock_disclaimer.lock": "læst",
+  "compose_form.lock_disclaimer": "Aðgangurinn þinn er ekki {locked}. Hver sem er getur fylgst með þér til að sjá þær færslur sem einungis eru til fylgjenda þinna.",
+  "compose_form.lock_disclaimer.lock": "læstur",
   "compose_form.placeholder": "Hvað varstu að hugsa?",
   "compose_form.poll.add_option": "Bæta við valkosti",
   "compose_form.poll.duration": "Tímalengd könnunar",
@@ -130,7 +130,7 @@
   "confirmations.mute.confirm": "Þagga",
   "confirmations.mute.explanation": "Þetta mun fela færslur frá þeim og þær færslur þar sem minnst er á þau, en það mun samt sem áður gera þeim kleift að sjá færslurnar þínar og að fylgjast með þér.",
   "confirmations.mute.message": "Ertu viss um að þú viljir þagga niður í {name}?",
-  "confirmations.redraft.confirm": "Eyða og enduvinna drög",
+  "confirmations.redraft.confirm": "Eyða og endurvinna drög",
   "confirmations.redraft.message": "Ertu viss um að þú viljir eyða þessari færslu og enduvinna drögin? Eftirlæti og endurbirtingar munu glatast og svör við upprunalegu færslunni munu verða munaðarlaus.",
   "confirmations.reply.confirm": "Svara",
   "confirmations.reply.message": "Ef þú svarar núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?",
@@ -147,7 +147,7 @@
   "embed.instructions": "Felldu þessa færslu inn í vefsvæðið þitt með því að afrita kóðann hér fyrir neðan.",
   "embed.preview": "Svona mun þetta líta út:",
   "emoji_button.activity": "Virkni",
-  "emoji_button.custom": "Sérsniðið",
+  "emoji_button.custom": "Sérsniðin",
   "emoji_button.flags": "Flögg",
   "emoji_button.food": "Matur og drykkur",
   "emoji_button.label": "Setja inn tjáningartákn",
@@ -155,7 +155,7 @@
   "emoji_button.not_found": "Engin samsvarandi tjáningartákn fundust",
   "emoji_button.objects": "Hlutir",
   "emoji_button.people": "Fólk",
-  "emoji_button.recent": "Oft notað",
+  "emoji_button.recent": "Oft notuð",
   "emoji_button.search": "Leita...",
   "emoji_button.search_results": "Leitarniðurstöður",
   "emoji_button.symbols": "Tákn",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Þú hefur ekki ennþá útilokað neina notendur.",
   "empty_column.bookmarked_statuses": "Þú ert ekki ennþá með neinar bókamerktar færslur. Þegar þú bókamerkir færslu, mun það birtast hér.",
   "empty_column.community": "Staðværa tímalínan er tóm. Skrifaðu eitthvað opinberlega til að láta boltann fara að rúlla!",
-  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+  "empty_column.conversations": "Þegar þú hefur sent eða móttekið færslu sem er aðeins sýnileg fólki sem nefnt er í henni þá birtist hún hér.",
   "empty_column.domain_blocks": "Það eru ennþá engin útilokuð lén.",
   "empty_column.explore_statuses": "Ekkert er á uppleið í augnablikinu. Athugaðu aftur síðar!",
   "empty_column.favourited_statuses": "Þú ert ekki ennþá með neinar eftirlætisfærslur. Þegar þú setur færslu í eftirlæti, munu þau birtast hér.",
@@ -371,7 +371,7 @@
   "privacy.private.short": "Einungis fylgjendur",
   "privacy.public.long": "Sýnilegt fyrir alla",
   "privacy.public.short": "Opinbert",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Sýnilegt öllum, en ekki tekið með í uppgötvunareiginleikum",
   "privacy.unlisted.short": "Óskráð",
   "refresh": "Endurlesa",
   "regeneration_indicator.label": "Hleð inn…",
@@ -471,7 +471,7 @@
   "status.reblog_private": "Endurbirta til upphaflegra lesenda",
   "status.reblogged_by": "{name} endurbirti",
   "status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.",
-  "status.redraft": "Eyða og enduvinna drög",
+  "status.redraft": "Eyða og endurvinna drög",
   "status.remove_bookmark": "Fjarlægja bókamerki",
   "status.reply": "Svara",
   "status.replyAll": "Svara þræði",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index aecd3a911..c607e84a5 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -9,10 +9,10 @@
   "account.browse_more_on_origin_server": "リモートで表示",
   "account.cancel_follow_request": "フォローリクエストを取り消す",
   "account.direct": "@{name}さんにダイレクトメッセージ",
-  "account.disable_notifications": "@{name} の投稿時の通知を停止",
+  "account.disable_notifications": "@{name}さんの投稿時の通知を停止",
   "account.domain_blocked": "ドメインブロック中",
   "account.edit_profile": "プロフィール編集",
-  "account.enable_notifications": "@{name} の投稿時に通知",
+  "account.enable_notifications": "@{name}さんの投稿時に通知",
   "account.endorse": "プロフィールで紹介する",
   "account.follow": "フォロー",
   "account.followers": "フォロワー",
@@ -27,7 +27,7 @@
   "account.link_verified_on": "このリンクの所有権は{date}に確認されました",
   "account.locked_info": "このアカウントは承認制アカウントです。相手が承認するまでフォローは完了しません。",
   "account.media": "メディア",
-  "account.mention": "@{name}さんに投稿",
+  "account.mention": "@{name}さんにメンション",
   "account.moved_to": "{name}さんは引っ越しました:",
   "account.mute": "@{name}さんをミュート",
   "account.mute_notifications": "@{name}さんからの通知を受け取らない",
@@ -70,7 +70,7 @@
   "column.blocks": "ブロックしたユーザー",
   "column.bookmarks": "ブックマーク",
   "column.community": "ローカルタイムライン",
-  "column.conversations": "ダイレクトメッセージ",
+  "column.conversations": "会話",
   "column.directory": "ディレクトリ",
   "column.domain_blocks": "ブロックしたドメイン",
   "column.favourites": "お気に入り",
@@ -97,7 +97,7 @@
   "community.column_settings.media_only": "メディアのみ表示",
   "community.column_settings.remote_only": "リモートのみ表示",
   "compose_form.direct_message_warning_learn_more": "もっと詳しく",
-  "compose_form.encryption_warning": "Mastodon の投稿はエンドツーエンド暗号化に対応していません。安全に送受信されるべき情報を Mastodon で共有しないでください。",
+  "compose_form.encryption_warning": "Mastodonの投稿はエンドツーエンド暗号化に対応していません。安全に送受信されるべき情報をMastodonで共有しないでください。",
   "compose_form.hashtag_warning": "この投稿は公開設定ではないのでハッシュタグの一覧に表示されません。公開投稿だけがハッシュタグで検索できます。",
   "compose_form.lock_disclaimer": "あなたのアカウントは{locked}になっていません。誰でもあなたをフォローすることができ、フォロワー限定の投稿を見ることができます。",
   "compose_form.lock_disclaimer.lock": "承認制",
@@ -170,7 +170,7 @@
   "empty_column.blocks": "まだ誰もブロックしていません。",
   "empty_column.bookmarked_statuses": "まだ何もブックマーク登録していません。ブックマーク登録するとここに表示されます。",
   "empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!",
-  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+  "empty_column.conversations": "メンションした相手にだけ表示されるメッセージを一度でも送受信した場合、ここに表示されます。",
   "empty_column.domain_blocks": "ブロックしているドメインはありません。",
   "empty_column.explore_statuses": "まだ何もありません。後で確認してください。",
   "empty_column.favourited_statuses": "まだ何もお気に入り登録していません。お気に入り登録するとここに表示されます。",
@@ -202,18 +202,18 @@
   "follow_recommendations.lead": "あなたがフォローしている人の投稿は、ホームフィードに時系列で表示されます。いつでも簡単に解除できるので、気軽にフォローしてみてください!",
   "follow_request.authorize": "許可",
   "follow_request.reject": "拒否",
-  "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain} のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。",
+  "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain}のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。",
   "generic.saved": "保存しました",
   "getting_started.developers": "開発",
   "getting_started.directory": "ディレクトリ",
   "getting_started.documentation": "ドキュメント",
   "getting_started.heading": "スタート",
   "getting_started.invite": "招待",
-  "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ( {github} ) から開発に参加したり、問題を報告したりできます。",
+  "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ({github}) から開発に参加したり、問題を報告したりできます。",
   "getting_started.security": "アカウント設定",
   "getting_started.terms": "プライバシーポリシー",
-  "hashtag.column_header.tag_mode.all": "と {additional}",
-  "hashtag.column_header.tag_mode.any": "か {additional}",
+  "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": "ハッシュタグを入力してください…",
@@ -234,7 +234,7 @@
   "keyboard_shortcuts.boost": "ブースト",
   "keyboard_shortcuts.column": "左からn番目のカラムの最新に移動",
   "keyboard_shortcuts.compose": "投稿の入力欄に移動",
-  "keyboard_shortcuts.conversations": "to open conversations column",
+  "keyboard_shortcuts.conversations": "会話カラムを開く",
   "keyboard_shortcuts.description": "説明",
   "keyboard_shortcuts.down": "カラム内一つ下に移動",
   "keyboard_shortcuts.enter": "投稿の詳細を表示",
@@ -281,7 +281,7 @@
   "lists.replies_policy.title": "リプライを表示:",
   "lists.search": "フォローしている人の中から検索",
   "lists.subheading": "あなたのリスト",
-  "load_pending": "{count} 件の新着",
+  "load_pending": "{count}件の新着",
   "loading_indicator.label": "読み込み中...",
   "media_gallery.toggle_visible": "メディアを隠す",
   "missing_indicator.label": "見つかりません",
@@ -303,7 +303,7 @@
   "navigation_bar.follow_requests": "フォローリクエスト",
   "navigation_bar.follows_and_followers": "フォロー・フォロワー",
   "navigation_bar.info": "このサーバーについて",
-  "navigation_bar.keyboard_shortcuts": "ホットキー",
+  "navigation_bar.keyboard_shortcuts": "キーボードショートカット",
   "navigation_bar.lists": "リスト",
   "navigation_bar.logout": "ログアウト",
   "navigation_bar.mutes": "ミュートしたユーザー",
@@ -313,16 +313,16 @@
   "navigation_bar.public_timeline": "連合タイムライン",
   "navigation_bar.misc": "その他",
   "navigation_bar.security": "セキュリティ",
-  "notification.admin.sign_up": "{name} がサインアップしました",
+  "notification.admin.sign_up": "{name}さんがサインアップしました",
   "notification.favourite": "{name}さんがあなたの投稿をお気に入りに登録しました",
   "notification.follow": "{name}さんにフォローされました",
-  "notification.follow_request": "{name} さんがあなたにフォローリクエストしました",
+  "notification.follow_request": "{name}さんがあなたにフォローリクエストしました",
   "notification.mention": "{name}さんがあなたに返信しました",
   "notification.own_poll": "アンケートが終了しました",
   "notification.poll": "アンケートが終了しました",
   "notification.reblog": "{name}さんがあなたの投稿をブーストしました",
   "notification.status": "{name}さんが投稿しました",
-  "notification.update": "{name} が投稿を編集しました",
+  "notification.update": "{name}さんが投稿を編集しました",
   "notifications.clear": "通知を消去",
   "notifications.clear_confirmation": "本当に通知を消去しますか?",
   "notifications.column_settings.admin.sign_up": "新規登録:",
@@ -351,13 +351,13 @@
   "notifications.filter.polls": "アンケート結果",
   "notifications.filter.statuses": "フォローしている人の新着情報",
   "notifications.grant_permission": "権限の付与",
-  "notifications.group": "{count} 件の通知",
+  "notifications.group": "{count}件の通知",
   "notifications.mark_as_read": "すべて既読にする",
   "notifications.permission_denied": "ブラウザの通知が拒否されているためデスクトップ通知は利用できません",
   "notifications.permission_denied_alert": "ブラウザの通知が拒否されているためデスクトップ通知を有効にできません",
   "notifications.permission_required": "必要な権限が付与されていないため、デスクトップ通知は利用できません。",
   "notifications_permission_banner.enable": "デスクトップ通知を有効にする",
-  "notifications_permission_banner.how_to_control": "Mastodon を閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {icon} ボタンから通知の内容を細かくカスタマイズできます。",
+  "notifications_permission_banner.how_to_control": "Mastodonを閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {icon} ボタンから通知の内容を細かくカスタマイズできます。",
   "notifications_permission_banner.title": "お見逃しなく",
   "picture_in_picture.restore": "元に戻す",
   "poll.closed": "終了",
@@ -371,7 +371,7 @@
   "poll_button.remove_poll": "アンケートを削除",
   "privacy.change": "公開範囲を変更",
   "privacy.direct.long": "送信した相手のみ閲覧可",
-  "privacy.direct.short": "ダイレクト",
+  "privacy.direct.short": "メンションした相手のみ",
   "privacy.private.long": "フォロワーのみ閲覧可",
   "privacy.private.short": "フォロワーのみ",
   "privacy.public.long": "誰でも閲覧可",
@@ -382,11 +382,11 @@
   "regeneration_indicator.label": "読み込み中…",
   "regeneration_indicator.sublabel": "ホームタイムラインは準備中です!",
   "relative_time.days": "{number}日前",
-  "relative_time.full.days": "{number} 日前",
-  "relative_time.full.hours": "{number} 時間前",
+  "relative_time.full.days": "{number}日前",
+  "relative_time.full.hours": "{number}時間前",
   "relative_time.full.just_now": "今",
-  "relative_time.full.minutes": "{number} 分前",
-  "relative_time.full.seconds": "{number} 秒前",
+  "relative_time.full.minutes": "{number}分前",
+  "relative_time.full.seconds": "{number}秒前",
   "relative_time.hours": "{number}時間前",
   "relative_time.just_now": "今",
   "relative_time.minutes": "{number}分前",
@@ -404,7 +404,7 @@
   "report.category.title_status": "投稿",
   "report.close": "完了",
   "report.comment.title": "その他に私たちに伝えておくべき事はありますか?",
-  "report.forward": "{target} に転送する",
+  "report.forward": "{target}に転送する",
   "report.forward_hint": "このアカウントは別のサーバーに所属しています。通報内容を匿名で転送しますか?",
   "report.mute": "ミュート",
   "report.mute_explanation": "相手の投稿は表示されなくなります。相手は引き続きあなたをフォローして、あなたの投稿を表示することができますが、ミュートされていることはわかりません。",
@@ -425,10 +425,10 @@
   "report.submit": "通報する",
   "report.target": "{target}さんを通報する",
   "report.thanks.take_action": "次のような方法はいかがでしょうか?",
-  "report.thanks.take_action_actionable": "私達が確認している間でも、あなたは @{name} さんに対して対応することが出来ます:",
+  "report.thanks.take_action_actionable": "私達が確認している間でも、あなたは@{name}さんに対して対応することが出来ます:",
   "report.thanks.title": "見えないようにしたいですか?",
   "report.thanks.title_actionable": "ご報告ありがとうございます、追って確認します。",
-  "report.unfollow": "@{name}のフォローを解除",
+  "report.unfollow": "@{name}さんのフォローを解除",
   "report.unfollow_explanation": "このアカウントをフォローしています。ホームフィードに彼らの投稿を表示しないようにするには、彼らのフォローを外してください。",
   "search.placeholder": "検索",
   "search_popout.search_format": "高度な検索フォーマット",
@@ -444,7 +444,7 @@
   "search_results.statuses": "投稿",
   "search_results.statuses_fts_disabled": "このサーバーでは投稿本文の検索は利用できません。",
   "search_results.total": "{count, number}件の結果",
-  "status.admin_account": "@{name} のモデレーション画面を開く",
+  "status.admin_account": "@{name}さんのモデレーション画面を開く",
   "status.admin_status": "この投稿をモデレーション画面で開く",
   "status.block": "@{name}さんをブロック",
   "status.bookmark": "ブックマーク",
@@ -455,13 +455,13 @@
   "status.detailed_status": "詳細な会話ビュー",
   "status.direct": "@{name}さんにダイレクトメッセージ",
   "status.edit": "編集",
-  "status.edited": "{date} 編集済み",
-  "status.edited_x_times": "{count} 回編集",
+  "status.edited": "{date}に編集",
+  "status.edited_x_times": "{count}回編集",
   "status.embed": "埋め込み",
   "status.favourite": "お気に入り",
   "status.filtered": "フィルターされました",
-  "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}さんに投稿",
@@ -507,7 +507,7 @@
   "timeline_hint.resources.followers": "フォロワー",
   "timeline_hint.resources.follows": "フォロー",
   "timeline_hint.resources.statuses": "以前の投稿",
-  "trends.counter_by_accounts": "{counter} 人が投稿",
+  "trends.counter_by_accounts": "{counter}人が投稿",
   "trends.trending_now": "トレンドタグ",
   "ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。",
   "units.short.billion": "{count}B",
@@ -517,7 +517,7 @@
   "upload_button.label": "メディアを追加 (複数の画像または1つの動画か音声ファイル)",
   "upload_error.limit": "アップロードできる上限を超えています。",
   "upload_error.poll": "アンケートではファイルをアップロードできません。",
-  "upload_form.audio_description": "聴取が難しいユーザーへの説明",
+  "upload_form.audio_description": "聴き取りが難しいユーザーへの説明",
   "upload_form.description": "閲覧が難しいユーザーへの説明",
   "upload_form.description_missing": "説明を追加していません",
   "upload_form.edit": "編集",
@@ -532,7 +532,7 @@
   "upload_modal.detect_text": "画像からテキストを検出",
   "upload_modal.edit_media": "メディアを編集",
   "upload_modal.hint": "サムネイルの焦点にしたい場所をクリックするか円形の枠をその場所にドラッグしてください。",
-  "upload_modal.preparing_ocr": "OCR の準備中…",
+  "upload_modal.preparing_ocr": "OCRの準備中…",
   "upload_modal.preview_label": "プレビュー ({ratio})",
   "upload_progress.label": "アップロード中...",
   "video.close": "動画を閉じる",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index 12860d7ab..f36683346 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -70,7 +70,7 @@
   "column.blocks": "Utilizadores Bloqueados",
   "column.bookmarks": "Itens salvos",
   "column.community": "Cronologia local",
-  "column.conversations": "Conversations",
+  "column.conversations": "Conversações",
   "column.directory": "Procurar perfis",
   "column.domain_blocks": "Domínios escondidos",
   "column.favourites": "Favoritos",
@@ -93,7 +93,7 @@
   "community.column_settings.media_only": "Somente media",
   "community.column_settings.remote_only": "Remoto apenas",
   "compose_form.direct_message_warning_learn_more": "Conhecer mais",
-  "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": "As publicações no Mastodon não são criptografadas de ponta a ponta. Não partilhe nenhuma informação sensível através do Mastodon.",
   "compose_form.hashtag_warning": "Este toot não será listado em nenhuma hashtag por ser não listado. Apenas toots públics podem ser pesquisados por hashtag.",
   "compose_form.lock_disclaimer": "A sua conta não é {locked}. Qualquer pessoa pode segui-lo e ver as publicações direcionadas apenas a seguidores.",
   "compose_form.lock_disclaimer.lock": "bloqueado",
@@ -166,7 +166,7 @@
   "empty_column.blocks": "Ainda não bloqueaste qualquer utilizador.",
   "empty_column.bookmarked_statuses": "Ainda não adicionou nenhum toot aos Itens salvos. Quando adicionar, eles serão exibidos aqui.",
   "empty_column.community": "A timeline local está vazia. Escreve algo publicamente para começar!",
-  "empty_column.conversations": "Once you send or receive a post that's only visible to people mentioned in it, it will show up here.",
+  "empty_column.conversations": "Quando enviar ou receber uma publicação que seja visível apenas para as pessoas nela mencionadas, ela aparecerá aqui.",
   "empty_column.domain_blocks": "Ainda não há qualquer domínio escondido.",
   "empty_column.explore_statuses": "Nada em destaque por agora. Volte mais tarde!",
   "empty_column.favourited_statuses": "Ainda não tens quaisquer toots favoritos. Quando tiveres algum, ele irá aparecer aqui.",
@@ -230,7 +230,7 @@
   "keyboard_shortcuts.boost": "para partilhar",
   "keyboard_shortcuts.column": "para focar uma publicação numa das colunas",
   "keyboard_shortcuts.compose": "para focar na área de publicação",
-  "keyboard_shortcuts.conversations": "to open conversations column",
+  "keyboard_shortcuts.conversations": "para abrir a coluna de conversações",
   "keyboard_shortcuts.description": "Descrição",
   "keyboard_shortcuts.down": "para mover para baixo na lista",
   "keyboard_shortcuts.enter": "para expandir uma publicação",
@@ -366,12 +366,12 @@
   "poll_button.remove_poll": "Remover votação",
   "privacy.change": "Ajustar a privacidade da publicação",
   "privacy.direct.long": "Apenas para utilizadores mencionados",
-  "privacy.direct.short": "Direct",
+  "privacy.direct.short": "Apenas pessoas que menciono",
   "privacy.private.long": "Apenas para os seguidores",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Visible for all",
+  "privacy.private.short": "Apenas seguidores",
+  "privacy.public.long": "Visível para todos",
   "privacy.public.short": "Público",
-  "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+  "privacy.unlisted.long": "Visível para todos, mas não incluir em funcionalidades de divulgação",
   "privacy.unlisted.short": "Não listar",
   "refresh": "Actualizar",
   "regeneration_indicator.label": "A carregar…",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index da2a4588c..15d2f7aeb 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -32,8 +32,8 @@
   "account.mute": "Tysta @{name}",
   "account.mute_notifications": "Stäng av notifieringar från @{name}",
   "account.muted": "Tystad",
-  "account.posts": "Tutningar",
-  "account.posts_with_replies": "Tutningar och svar",
+  "account.posts": "Inlägg",
+  "account.posts_with_replies": "Inlägg och svar",
   "account.report": "Rapportera @{name}",
   "account.requested": "Inväntar godkännande. Klicka för att avbryta följarförfrågan",
   "account.share": "Dela @{name}s profil",
@@ -247,7 +247,7 @@
   "keyboard_shortcuts.my_profile": "för att öppna din profil",
   "keyboard_shortcuts.notifications": "för att öppna Meddelanden",
   "keyboard_shortcuts.open_media": "öppna media",
-  "keyboard_shortcuts.pinned": "för att öppna Nålade toots",
+  "keyboard_shortcuts.pinned": "för att öppna nålade inlägg",
   "keyboard_shortcuts.profile": "för att öppna skaparens profil",
   "keyboard_shortcuts.reply": "för att svara",
   "keyboard_shortcuts.requests": "för att öppna Följförfrågningar",
@@ -334,7 +334,7 @@
   "notifications.column_settings.reblog": "Knuffar:",
   "notifications.column_settings.show": "Visa i kolumnen",
   "notifications.column_settings.sound": "Spela upp ljud",
-  "notifications.column_settings.status": "Nya tutor:",
+  "notifications.column_settings.status": "Nya inlägg:",
   "notifications.column_settings.unread_notifications.category": "O-lästa aviseringar",
   "notifications.column_settings.unread_notifications.highlight": "Markera o-lästa aviseringar",
   "notifications.column_settings.update": "Redigeringar:",
@@ -436,7 +436,7 @@
   "search_results.all": "Alla",
   "search_results.hashtags": "Hashtaggar",
   "search_results.nothing_found": "Kunde inte hitta något för dessa sökord",
-  "search_results.statuses": "Tutor",
+  "search_results.statuses": "Inlägg",
   "search_results.statuses_fts_disabled": "Att söka toots med deras innehåll är inte möjligt på denna Mastodon-server.",
   "search_results.total": "{count, number} {count, plural, ett {result} andra {results}}",
   "status.admin_account": "Öppet modereringsgränssnitt för @{name}",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index b38cbc278..0195dee2e 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -13,7 +13,7 @@
   "account.domain_blocked": "域名已屏蔽",
   "account.edit_profile": "修改个人资料",
   "account.enable_notifications": "当 @{name} 发嘟时通知我",
-  "account.endorse": "推荐在个人页上",
+  "account.endorse": "在个人资料中推荐此用户",
   "account.follow": "关注",
   "account.followers": "关注者",
   "account.followers.empty": "目前无人关注此用户。",
@@ -24,8 +24,8 @@
   "account.follows_you": "关注了你",
   "account.hide_reblogs": "隐藏来自 @{name} 的转贴",
   "account.joined": "加入于 {date}",
-  "account.link_verified_on": "此链接的所有权已在 {date} 检查",
-  "account.locked_info": "此账户已锁嘟。账户所有者会手动审核关注者。",
+  "account.link_verified_on": "此链接的所有权已在 {date} 被检查",
+  "account.locked_info": "此账户已锁嘟。账户所有者会手动审核关注申请。",
   "account.media": "媒体",
   "account.mention": "提及 @{name}",
   "account.moved_to": "{name} 已经迁移到:",
@@ -35,8 +35,8 @@
   "account.posts": "帖子",
   "account.posts_with_replies": "帖子和回复",
   "account.report": "举报 @{name}",
-  "account.requested": "正在等待对方同意。点击以取消发送关注请求",
-  "account.share": "分享 @{name} 的个人资料",
+  "account.requested": "正在等待对方通过关注申请。点击以取消发送关注申请",
+  "account.share": "分享 @{name} 的用户简介",
   "account.show_reblogs": "显示来自 @{name} 的转嘟",
   "account.statuses_counter": "{counter} 条嘟文",
   "account.unblock": "取消屏蔽 @{name}",
@@ -68,19 +68,19 @@
   "bundle_modal_error.message": "载入这个组件时发生了错误。",
   "bundle_modal_error.retry": "重试",
   "column.blocks": "已屏蔽的用户",
-  "column.bookmarks": "书签",
+  "column.bookmarks": "收藏夹",
   "column.community": "本站时间轴",
-  "column.conversations": "对话",
+  "column.conversations": "会话",
   "column.directory": "浏览用户资料",
   "column.domain_blocks": "已屏蔽的域名",
-  "column.favourites": "收藏",
-  "column.follow_requests": "关注请求",
+  "column.favourites": "喜欢",
+  "column.follow_requests": "关注申请",
   "column.home": "主页",
   "column.lists": "列表",
   "column.mutes": "已隐藏的用户",
   "column.notifications": "通知",
   "column.pins": "置顶帖子",
-  "column.public": "跨站公共时间轴",
+  "column.public": "跨站时间轴",
   "column_back_button.label": "返回",
   "column_header.hide_settings": "隐藏设置",
   "column_header.moveLeft_settings": "将此栏左移",
@@ -89,16 +89,16 @@
   "column_header.show_settings": "显示设置",
   "column_header.unpin": "取消置顶",
   "column_subheading.settings": "设置",
-  "community.column_settings.local_only": "仅限本站",
+  "community.column_settings.local_only": "仅在本站显示",
   "community.column_settings.media_only": "仅限媒体",
   "community.column_settings.remote_only": "仅限外部",
   "compose_form.direct_message_warning_learn_more": "了解更多",
-  "compose_form.encryption_warning": "Mastodon上的帖子不是端到端加密的。不要在Mastodon上分享敏感信息。",
+  "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.add_option": "添加一个选项",
   "compose_form.poll.duration": "投票持续时间",
   "compose_form.poll.option_placeholder": "选项 {number}",
   "compose_form.poll.remove_option": "移除此选项",
@@ -112,28 +112,28 @@
   "compose_form.sensitive.unmarked": "媒体未被标记为敏感内容",
   "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": "屏蔽",
   "confirmations.block.message": "你确定要屏蔽 {name} 吗?",
   "confirmations.delete.confirm": "删除",
-  "confirmations.delete.message": "你确定要删除这条嘟文吗?",
+  "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.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": "删除对话",
@@ -142,9 +142,9 @@
   "conversation.with": "与 {names}",
   "directory.federated": "来自联邦宇宙的已知部分",
   "directory.local": "仅来自 {domain}",
-  "directory.new_arrivals": "新来者",
+  "directory.new_arrivals": "新用户",
   "directory.recently_active": "最近活跃",
-  "embed.instructions": "复制以下代码在你的网站上嵌入此文章,",
+  "embed.instructions": "要在你的网站上嵌入此嘟文,请复制以下代码。",
   "embed.preview": "它会像这样显示出来:",
   "emoji_button.activity": "活动",
   "emoji_button.custom": "自定义",
@@ -156,31 +156,31 @@
   "emoji_button.objects": "物体",
   "emoji_button.people": "人物",
   "emoji_button.recent": "常用",
-  "emoji_button.search": "搜索…",
+  "emoji_button.search": "搜索……",
   "emoji_button.search_results": "搜索结果",
   "emoji_button.symbols": "符号",
   "emoji_button.travel": "旅行和地点",
   "empty_column.account_suspended": "账户已停用",
   "empty_column.account_timeline": "这里没有帖子!",
-  "empty_column.account_unavailable": "个人资料不可用",
+  "empty_column.account_unavailable": "用户资料不可用",
   "empty_column.blocks": "你还未屏蔽任何用户。",
-  "empty_column.bookmarked_statuses": "你还未将任何帖子加入书签。在你添加书签后,帖子将显示在此。",
-  "empty_column.community": "本站时间轴一片空白,快写点什么让它动起来吧!",
-  "empty_column.conversations": "一旦您发送或接收了一个只对其中提到的人可见的帖子,它就会显示在这里。",
+  "empty_column.bookmarked_statuses": "你还未将任何帖子加入收藏夹。在你加入收藏夹后,帖子将显示在此。",
+  "empty_column.community": "本站时间轴暂时没有内容,快写点什么让它动起来吧!",
+  "empty_column.conversations": "发送或收到仅对提及对象可见的嘟文后,就会显示在这里。",
   "empty_column.domain_blocks": "目前没有被隐藏的站点。",
   "empty_column.explore_statuses": "目前没有热门话题,稍后再来看看吧!",
   "empty_column.favourited_statuses": "你还未喜欢过任何帖子。当你喜欢帖子时,它将显示在此。",
-  "empty_column.favourites": "没有人喜欢过这条嘟文。如果有人喜欢会显示在此。",
+  "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.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": "刷新一下页面试试。如果没用,你可以换个浏览器或者用本地应用。",
@@ -190,7 +190,7 @@
   "explore.search_results": "搜索结果",
   "explore.suggested_follows": "为你推荐",
   "explore.title": "探索",
-  "explore.trending_links": "最新消息",
+  "explore.trending_links": "新闻",
   "explore.trending_statuses": "帖子",
   "explore.trending_tags": "话题标签",
   "follow_recommendations.done": "完成",
@@ -198,7 +198,7 @@
   "follow_recommendations.lead": "你关注的人的帖子将按时间顺序显示在你的主页。 别担心,你可以随时取消关注!",
   "follow_request.authorize": "授权",
   "follow_request.reject": "拒绝",
-  "follow_requests.unlocked_explanation": "虽说你没有锁嘟,但是 {domain} 的工作人员觉得你可能想手工审核这些账号的关注请求。",
+  "follow_requests.unlocked_explanation": "虽然你没有锁嘟,但是 {domain} 的管理人员觉得你可能想人工审核这些账号的关注申请。",
   "generic.saved": "已保存",
   "getting_started.developers": "开发",
   "getting_started.directory": "用户目录",
@@ -212,7 +212,7 @@
   "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": "全部",
   "hashtag.column_settings.tag_mode.any": "任一",
   "hashtag.column_settings.tag_mode.none": "无一",
@@ -226,8 +226,8 @@
   "intervals.full.hours": "{number} 小时",
   "intervals.full.minutes": "{number} 分钟",
   "keyboard_shortcuts.back": "返回上一页",
-  "keyboard_shortcuts.blocked": "打开被屏蔽用户列表",
-  "keyboard_shortcuts.boost": "转贴",
+  "keyboard_shortcuts.blocked": "打开已屏蔽用户列表",
+  "keyboard_shortcuts.boost": "转嘟",
   "keyboard_shortcuts.column": "选择某栏",
   "keyboard_shortcuts.compose": "选择输入框",
   "keyboard_shortcuts.conversations": "打开对话栏",
@@ -250,7 +250,7 @@
   "keyboard_shortcuts.pinned": "打开置顶帖子列表",
   "keyboard_shortcuts.profile": "打开作者的个人资料",
   "keyboard_shortcuts.reply": "回复帖子",
-  "keyboard_shortcuts.requests": "打开关注请求列表",
+  "keyboard_shortcuts.requests": "打开关注申请列表",
   "keyboard_shortcuts.search": "选择搜索框",
   "keyboard_shortcuts.spoilers": "显示或隐藏被折叠的正文",
   "keyboard_shortcuts.start": "打开“开始使用”栏",
@@ -273,21 +273,21 @@
   "lists.new.title_placeholder": "新列表的标题",
   "lists.replies_policy.followed": "任何被关注的用户",
   "lists.replies_policy.list": "列表成员",
-  "lists.replies_policy.none": "没人",
+  "lists.replies_policy.none": "没有人",
   "lists.replies_policy.title": "显示回复给:",
   "lists.search": "搜索你关注的人",
   "lists.subheading": "你的列表",
   "load_pending": "{count} 项",
-  "loading_indicator.label": "加载中…",
+  "loading_indicator.label": "加载中……",
   "media_gallery.toggle_visible": "隐藏图片",
   "missing_indicator.label": "找不到内容",
   "missing_indicator.sublabel": "无法找到此资源",
   "mute_modal.duration": "持续时长",
-  "mute_modal.hide_notifications": "同时隐藏来自这个用户的通知?",
+  "mute_modal.hide_notifications": "是否同时隐藏来自这个用户的通知?",
   "mute_modal.indefinite": "无期限",
   "navigation_bar.apps": "移动应用",
   "navigation_bar.blocks": "已屏蔽的用户",
-  "navigation_bar.bookmarks": "书签",
+  "navigation_bar.bookmarks": "收藏夹",
   "navigation_bar.community_timeline": "本站时间轴",
   "navigation_bar.compose": "撰写新帖子",
   "navigation_bar.discover": "发现",
@@ -296,7 +296,7 @@
   "navigation_bar.explore": "探索",
   "navigation_bar.favourites": "喜欢",
   "navigation_bar.filters": "隐藏关键词",
-  "navigation_bar.follow_requests": "关注请求",
+  "navigation_bar.follow_requests": "关注申请",
   "navigation_bar.follows_and_followers": "关注管理",
   "navigation_bar.info": "关于此服务",
   "navigation_bar.keyboard_shortcuts": "快捷键列表",
@@ -305,17 +305,17 @@
   "navigation_bar.mutes": "已隐藏的用户",
   "navigation_bar.personal": "个人",
   "navigation_bar.pins": "置顶帖子",
-  "navigation_bar.preferences": "首选项",
-  "navigation_bar.public_timeline": "跨站公共时间轴",
-  "navigation_bar.security": "安全性",
-  "notification.admin.sign_up": "{name} 已注册",
+  "navigation_bar.preferences": "偏好",
+  "navigation_bar.public_timeline": "跨站时间轴",
+  "navigation_bar.security": "安全",
+  "notification.admin.sign_up": "{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": "清空通知列表",
@@ -327,19 +327,19 @@
   "notifications.column_settings.filter_bar.category": "快速过滤栏",
   "notifications.column_settings.filter_bar.show_bar": "显示过滤栏",
   "notifications.column_settings.follow": "新关注者:",
-  "notifications.column_settings.follow_request": "新关注请求:",
+  "notifications.column_settings.follow_request": "新关注申请:",
   "notifications.column_settings.mention": "提及:",
   "notifications.column_settings.poll": "投票结果:",
   "notifications.column_settings.push": "推送通知",
-  "notifications.column_settings.reblog": "转贴:",
+  "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.filter.all": "全部",
-  "notifications.filter.boosts": "转贴",
+  "notifications.filter.boosts": "转发",
   "notifications.filter.favourites": "喜欢",
   "notifications.filter.follows": "关注",
   "notifications.filter.mentions": "提及",
@@ -348,9 +348,9 @@
   "notifications.grant_permission": "授予权限",
   "notifications.group": "{count} 条通知",
   "notifications.mark_as_read": "将所有通知标为已读",
-  "notifications.permission_denied": "由于权限被拒绝,无法启用桌面通知。",
+  "notifications.permission_denied": "由于权限不可用,无法启用桌面通知。",
   "notifications.permission_denied_alert": "由于在此之前浏览器权限请求就已被拒绝,所以启用桌面通知失败",
-  "notifications.permission_required": "所需权限未被授予,所以桌面通知不可用",
+  "notifications.permission_required": "未授予所需权限,所以桌面通知不可用",
   "notifications_permission_banner.enable": "启用桌面通知",
   "notifications_permission_banner.how_to_control": "启用桌面通知以在 Mastodon 未打开时接收通知。你可以通过交互通过上面的 {icon} 按钮来精细控制可以发送桌面通知的交互类型。",
   "notifications_permission_banner.title": "精彩不容错过",
@@ -366,15 +366,15 @@
   "poll_button.remove_poll": "移除投票",
   "privacy.change": "设置帖子的可见范围",
   "privacy.direct.long": "只有被提及的用户能看到",
-  "privacy.direct.short": "仅我提到的人",
+  "privacy.direct.short": "仅对提及的人可见",
   "privacy.private.long": "仅关注者可见",
-  "privacy.private.short": "仅关注者",
+  "privacy.private.short": "仅对关注者可见",
   "privacy.public.long": "所有人可见",
   "privacy.public.short": "公开",
-  "privacy.unlisted.long": "对所有人都可见,但关闭发现功能",
-  "privacy.unlisted.short": "不公开",
+  "privacy.unlisted.long": "对所有人可见,但不加入探索功能",
+  "privacy.unlisted.short": "非公开",
   "refresh": "刷新",
-  "regeneration_indicator.label": "加载中…",
+  "regeneration_indicator.label": "加载中……",
   "regeneration_indicator.sublabel": "你的主页动态正在准备中!",
   "relative_time.days": "{number} 天",
   "relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前",
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 9d29f1cb5..694f5e928 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -4053,7 +4053,7 @@ a.status-card.compact:hover {
   }
 
   & > span {
-    max-width: 400px;
+    max-width: 500px;
   }
 
   a {
diff --git a/app/services/activitypub/fetch_featured_collection_service.rb b/app/services/activitypub/fetch_featured_collection_service.rb
index 07a9fe039..37d05e055 100644
--- a/app/services/activitypub/fetch_featured_collection_service.rb
+++ b/app/services/activitypub/fetch_featured_collection_service.rb
@@ -7,19 +7,33 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
     return if account.featured_collection_url.blank? || account.suspended? || account.local?
 
     @account = account
-    @json    = fetch_resource(@account.featured_collection_url, true)
+    @json    = fetch_resource(@account.featured_collection_url, true, local_follower)
 
-    return unless supported_context?
+    return unless supported_context?(@json)
 
-    case @json['type']
+    process_items(collection_items(@json))
+  end
+
+  private
+
+  def collection_items(collection)
+    collection = fetch_collection(collection['first']) if collection['first'].present?
+    return unless collection.is_a?(Hash)
+
+    case collection['type']
     when 'Collection', 'CollectionPage'
-      process_items @json['items']
+      collection['items']
     when 'OrderedCollection', 'OrderedCollectionPage'
-      process_items @json['orderedItems']
+      collection['orderedItems']
     end
   end
 
-  private
+  def fetch_collection(collection_or_uri)
+    return collection_or_uri if collection_or_uri.is_a?(Hash)
+    return if invalid_origin?(collection_or_uri)
+
+    fetch_resource_without_id_validation(collection_or_uri, local_follower, true)
+  end
 
   def process_items(items)
     status_ids = items.filter_map do |item|
@@ -53,11 +67,9 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
     end
   end
 
-  def supported_context?
-    super(@json)
-  end
-
   def local_follower
-    @local_follower ||= @account.followers.local.without_suspended.first
+    return @local_follower if defined?(@local_follower)
+
+    @local_follower = @account.followers.local.without_suspended.first
   end
 end
diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb
index 21332a03e..387e2e09b 100644
--- a/app/services/resolve_account_service.rb
+++ b/app/services/resolve_account_service.rb
@@ -66,7 +66,7 @@ class ResolveAccountService < BaseService
       @username = @account.username
       @domain   = @account.domain
     else
-      @username, @domain = uri.split('@')
+      @username, @domain = uri.strip.gsub(/\A@/, '').split('@')
     end
 
     @domain = begin