about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2022-04-25 17:09:32 +0200
committerClaire <claire.github-309c@sitedethib.com>2022-04-25 17:09:32 +0200
commit002d2729fb342ec899d4322bbd64331da7d22a03 (patch)
tree2316623ed73758bd1d61477d94aee3492744933c /app
parentbb12af7250c9368905bae7d91c6ff0b06f3aa400 (diff)
parentf47a9ddc9ffca22258ec9e4b12ca51db8cac1eac (diff)
Merge branch 'main' into glitch-soc/merge-upstream
Diffstat (limited to 'app')
-rw-r--r--app/chewy/statuses_index.rb5
-rw-r--r--app/javascript/mastodon/locales/ar.json14
-rw-r--r--app/javascript/mastodon/locales/ast.json6
-rw-r--r--app/javascript/mastodon/locales/ca.json22
-rw-r--r--app/javascript/mastodon/locales/de.json24
-rw-r--r--app/javascript/mastodon/locales/ga.json176
-rw-r--r--app/javascript/mastodon/locales/ja.json2
-rw-r--r--app/javascript/mastodon/locales/ko.json2
-rw-r--r--app/javascript/mastodon/locales/pt-BR.json2
-rw-r--r--app/javascript/mastodon/locales/tr.json12
-rw-r--r--app/javascript/mastodon/locales/vi.json8
-rw-r--r--app/javascript/mastodon/locales/zh-CN.json6
-rw-r--r--app/models/status.rb2
-rw-r--r--app/serializers/web/notification_serializer.rb2
14 files changed, 145 insertions, 138 deletions
diff --git a/app/chewy/statuses_index.rb b/app/chewy/statuses_index.rb
index 1381a96ed..1304aeedb 100644
--- a/app/chewy/statuses_index.rb
+++ b/app/chewy/statuses_index.rb
@@ -55,6 +55,11 @@ class StatusesIndex < Chewy::Index
     data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
   end
 
+  crutch :votes do |collection|
+    data = ::PollVote.joins(:poll).where(poll: { status_id: collection.map(&:id) }).where(account: Account.local).pluck(:status_id, :account_id)
+    data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
+  end
+
   root date_detection: false do
     field :id, type: 'long'
     field :account_id, type: 'long'
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index b1e6483c7..57d8376a9 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -309,7 +309,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} متابعتك",
@@ -318,7 +318,7 @@
   "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": "التسجيلات الجديدة:",
@@ -408,8 +408,8 @@
   "report.placeholder": "تعليقات إضافية",
   "report.reasons.dislike": "لايعجبني",
   "report.reasons.dislike_description": "ألا ترغب برؤيته",
-  "report.reasons.other": "It's something else",
-  "report.reasons.other_description": "The issue does not fit into other categories",
+  "report.reasons.other": "شيء آخر",
+  "report.reasons.other_description": "لا تندرج هذه المشكلة ضمن فئات أخرى",
   "report.reasons.spam": "إنها رسالة مزعجة",
   "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
   "report.reasons.violation": "ينتهك قواعد الخادم",
@@ -456,8 +456,8 @@
   "status.embed": "إدماج",
   "status.favourite": "أضف إلى المفضلة",
   "status.filtered": "مُصفّى",
-  "status.history.created": "{name} created {date}",
-  "status.history.edited": "{name} edited {date}",
+  "status.history.created": "أنشأه {name} {date}",
+  "status.history.edited": "عدله {name} {date}",
   "status.load_more": "حمّل المزيد",
   "status.media_hidden": "الصورة مستترة",
   "status.mention": "أذكُر @{name}",
@@ -515,7 +515,7 @@
   "upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.",
   "upload_form.audio_description": "وصف للأشخاص ذي قِصر السمع",
   "upload_form.description": "وصف للمعاقين بصريا",
-  "upload_form.description_missing": "No description added",
+  "upload_form.description_missing": "لم يُضف وصف",
   "upload_form.edit": "تعديل",
   "upload_form.thumbnail": "غيّر الصورة المصغرة",
   "upload_form.undo": "حذف",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index fe5c1e569..e7f7248e1 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -404,7 +404,7 @@
   "report.forward_hint": "La cuenta ye d'otru sirvidor. ¿Quies unviar ellí tamién una copia anónima del informe?",
   "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.next": "Siguiente",
   "report.placeholder": "Comentarios adicionales",
   "report.reasons.dislike": "I don't like it",
   "report.reasons.dislike_description": "It is not something you want to see",
@@ -412,7 +412,7 @@
   "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": "Incumple les regles del sirvidor",
   "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?",
@@ -420,7 +420,7 @@
   "report.statuses.title": "Are there any posts that back up this report?",
   "report.submit": "Unviar",
   "report.target": "Report {target}",
-  "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
+  "report.thanks.take_action": "Equí tan les opciones pa controlar qué ver en 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.",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 87bc87712..a325426c3 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -8,10 +8,10 @@
   "account.blocked": "Bloquejat",
   "account.browse_more_on_origin_server": "Navega més en el perfil original",
   "account.cancel_follow_request": "Anul·la la sol·licitud de seguiment",
-  "account.direct": "Missatge directe @{name}",
+  "account.direct": "Enviar missatge directe a @{name}",
   "account.disable_notifications": "Deixa de notificar-me les publicacions de @{name}",
   "account.domain_blocked": "Domini bloquejat",
-  "account.edit_profile": "Edita el perfil",
+  "account.edit_profile": "Editar el perfil",
   "account.enable_notifications": "Notifica’m les publicacions de @{name}",
   "account.endorse": "Recomana en el teu perfil",
   "account.follow": "Segueix",
@@ -38,7 +38,7 @@
   "account.requested": "Esperant aprovació. Clic per a cancel·lar la petició de seguiment",
   "account.share": "Comparteix el perfil de @{name}",
   "account.show_reblogs": "Mostra els impulsos de @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Tut} other {{counter} Tuts}}",
+  "account.statuses_counter": "{count, plural, one {{counter} Publicació} other {{counter} Publicacions}}",
   "account.unblock": "Desbloqueja @{name}",
   "account.unblock_domain": "Desbloqueja el domini {domain}",
   "account.unblock_short": "Desbloqueja",
@@ -144,7 +144,7 @@
   "directory.local": "Només de {domain}",
   "directory.new_arrivals": "Arribades noves",
   "directory.recently_active": "Recentment actius",
-  "embed.instructions": "Incrusta aquest tut al lloc web copiant el codi a continuació.",
+  "embed.instructions": "Incrusta aquesta publicació a la teva pàgina web copiant el codi següent.",
   "embed.preview": "Aquí està quin aspecte tindrà:",
   "emoji_button.activity": "Activitat",
   "emoji_button.custom": "Personalitzat",
@@ -204,7 +204,7 @@
   "getting_started.directory": "Directori de perfils",
   "getting_started.documentation": "Documentació",
   "getting_started.heading": "Primeres passes",
-  "getting_started.invite": "Convida gent",
+  "getting_started.invite": "Convidar gent",
   "getting_started.open_source_notice": "Mastodon és un programari de codi obert. Pots contribuir-hi o informar de problemes a GitHub a {github}.",
   "getting_started.security": "Configuració del compte",
   "getting_started.terms": "Termes del servei",
@@ -233,7 +233,7 @@
   "keyboard_shortcuts.description": "Descripció",
   "keyboard_shortcuts.direct": "Obre la columna de missatges directes",
   "keyboard_shortcuts.down": "Baixar en la llista",
-  "keyboard_shortcuts.enter": "Obre publicació",
+  "keyboard_shortcuts.enter": "Obrir publicació",
   "keyboard_shortcuts.favourite": "Afavorir publicació",
   "keyboard_shortcuts.favourites": "Obre la llista de favorits",
   "keyboard_shortcuts.federated": "Obre la línia de temps federada",
@@ -247,7 +247,7 @@
   "keyboard_shortcuts.my_profile": "Obre el teu perfil",
   "keyboard_shortcuts.notifications": "Obre la columna de notificacions",
   "keyboard_shortcuts.open_media": "Obre mèdia",
-  "keyboard_shortcuts.pinned": "Obre la llista de publicacions fixades",
+  "keyboard_shortcuts.pinned": "Obrir la llista de publicacions fixades",
   "keyboard_shortcuts.profile": "Obre el perfil de l'autor",
   "keyboard_shortcuts.reply": "Respon publicació",
   "keyboard_shortcuts.requests": "Obre la llista de sol·licituds de seguiment",
@@ -256,7 +256,7 @@
   "keyboard_shortcuts.start": "Obre la columna \"Primeres passes\"",
   "keyboard_shortcuts.toggle_hidden": "Mostra/oculta el text marcat com a sensible",
   "keyboard_shortcuts.toggle_sensitivity": "Mostra/amaga contingut multimèdia",
-  "keyboard_shortcuts.toot": "per a començar un tut nou de trinca",
+  "keyboard_shortcuts.toot": "Iniciar una nova publicació",
   "keyboard_shortcuts.unfocus": "Descentra l'àrea de composició de text/cerca",
   "keyboard_shortcuts.up": "Moure amunt en la llista",
   "lightbox.close": "Tanca",
@@ -289,7 +289,7 @@
   "navigation_bar.blocks": "Usuaris bloquejats",
   "navigation_bar.bookmarks": "Marcadors",
   "navigation_bar.community_timeline": "Línia de temps Local",
-  "navigation_bar.compose": "Redacta una nova publicació",
+  "navigation_bar.compose": "Redactar una nova publicació",
   "navigation_bar.direct": "Missatges directes",
   "navigation_bar.discover": "Descobrir",
   "navigation_bar.domain_blocks": "Dominis bloquejats",
@@ -441,7 +441,7 @@
   "search_results.statuses_fts_disabled": "La cerca de publicacions pel seu contingut no està habilitada en aquest servidor Mastodon.",
   "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}",
   "status.admin_account": "Obre l'interfície de moderació per a @{name}",
-  "status.admin_status": "Obre aquesta publicació a la interfície de moderació",
+  "status.admin_status": "Obrir aquesta publicació a la interfície de moderació",
   "status.block": "Bloqueja @{name}",
   "status.bookmark": "Marcador",
   "status.cancel_reblog_private": "Desfer l'impuls",
@@ -502,7 +502,7 @@
   "timeline_hint.remote_resource_not_displayed": "{resource} dels altres servidors no son mostrats.",
   "timeline_hint.resources.followers": "Seguidors",
   "timeline_hint.resources.follows": "Seguiments",
-  "timeline_hint.resources.statuses": "Tuts més antics",
+  "timeline_hint.resources.statuses": "Publicacions més antigues",
   "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persones}} parlant-hi",
   "trends.trending_now": "Ara en tendència",
   "ui.beforeunload": "El teu esborrany es perdrà si surts de Mastodon.",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 47e3f33c2..c37cc179c 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -13,22 +13,22 @@
   "account.domain_blocked": "Domain versteckt",
   "account.edit_profile": "Profil bearbeiten",
   "account.enable_notifications": "Benachrichtige mich wenn @{name} etwas postet",
-  "account.endorse": "Auf Profil hervorheben",
+  "account.endorse": "Im Profil anzeigen",
   "account.follow": "Folgen",
   "account.followers": "Follower",
-  "account.followers.empty": "Diesem Profil folgt noch niemand.",
+  "account.followers.empty": "Diesem Profil folgt bislang niemand.",
   "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}",
   "account.following": "Folgt",
-  "account.following_counter": "{count, plural, one {{counter} Folgender} other {{counter} Folgende}}",
+  "account.following_counter": "{count, plural, one {{counter} Folgt} other {{counter} Folgt}}",
   "account.follows.empty": "Dieses Profil folgt noch niemandem.",
   "account.follows_you": "Folgt dir",
   "account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen",
   "account.joined": "Beigetreten am {date}",
   "account.link_verified_on": "Besitz dieses Links wurde geprüft am {date}",
-  "account.locked_info": "Der Privatsphärenstatus dieses Accounts wurde auf gesperrt gesetzt. Die Person bestimmt manuell wer ihm/ihr folgen darf.",
+  "account.locked_info": "Der Privatsphärenstatus dieses Accounts wurde auf „gesperrt“ gesetzt. Die Person bestimmt manuell, wer ihm/ihr folgen darf.",
   "account.media": "Medien",
   "account.mention": "@{name} erwähnen",
-  "account.moved_to": "{name} ist umgezogen auf:",
+  "account.moved_to": "{name} ist umgezogen nach:",
   "account.mute": "@{name} stummschalten",
   "account.mute_notifications": "Benachrichtigungen von @{name} stummschalten",
   "account.muted": "Stummgeschaltet",
@@ -39,26 +39,26 @@
   "account.share": "Profil von @{name} teilen",
   "account.show_reblogs": "Von @{name} geteilte Beiträge anzeigen",
   "account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}",
-  "account.unblock": "@{name} entblocken",
+  "account.unblock": "Blockierung von @{name} aufheben",
   "account.unblock_domain": "{domain} wieder anzeigen",
   "account.unblock_short": "Blockierung aufheben",
-  "account.unendorse": "Nicht auf Profil hervorheben",
+  "account.unendorse": "Nicht mehr im Profil anzeigen",
   "account.unfollow": "Entfolgen",
-  "account.unmute": "@{name} nicht mehr stummschalten",
+  "account.unmute": "Stummschaltung von @{name} aufheben",
   "account.unmute_notifications": "Benachrichtigungen von @{name} einschalten",
-  "account.unmute_short": "Nicht mehr stummschalten",
+  "account.unmute_short": "Stummschaltung aufheben",
   "account_note.placeholder": "Notiz durch Klicken hinzufügen",
   "admin.dashboard.daily_retention": "Benutzerverbleibrate nach Tag nach Anmeldung",
   "admin.dashboard.monthly_retention": "Benutzerverbleibrate nach Monat nach Anmeldung",
   "admin.dashboard.retention.average": "Durchschnitt",
-  "admin.dashboard.retention.cohort": "Anmeldemonat",
+  "admin.dashboard.retention.cohort": "Monat der Anmeldung",
   "admin.dashboard.retention.cohort_size": "Neue Benutzer",
-  "alert.rate_limited.message": "Bitte versuche es nach {retry_time, time, medium}.",
+  "alert.rate_limited.message": "Bitte versuche es nach {retry_time, time, medium} erneut.",
   "alert.rate_limited.title": "Anfragelimit überschritten",
   "alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.",
   "alert.unexpected.title": "Hoppla!",
   "announcement.announcement": "Ankündigung",
-  "attachments_list.unprocessed": "(unverarbeitet)",
+  "attachments_list.unprocessed": "(ausstehend)",
   "autosuggest_hashtag.per_week": "{count} pro Woche",
   "boost_modal.combo": "Drücke {combo}, um dieses Fenster zu überspringen",
   "bundle_column_error.body": "Etwas ist beim Laden schiefgelaufen.",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index e72e8bca0..0f59bea92 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -1,54 +1,54 @@
 {
-  "account.account_note_header": "Your note for @{name}",
-  "account.add_or_remove_from_list": "Add or Remove from lists",
-  "account.badges.bot": "Bot",
-  "account.badges.group": "Group",
-  "account.block": "Block @{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.direct": "Direct message @{name}",
-  "account.disable_notifications": "Stop notifying me when @{name} posts",
-  "account.domain_blocked": "Domain hidden",
-  "account.edit_profile": "Edit profile",
-  "account.enable_notifications": "Notify me when @{name} posts",
-  "account.endorse": "Feature on profile",
-  "account.follow": "Follow",
-  "account.followers": "Followers",
-  "account.followers.empty": "No one follows this user yet.",
-  "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
-  "account.following": "Following",
-  "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
-  "account.follows.empty": "This user doesn't follow anyone yet.",
-  "account.follows_you": "Follows you",
-  "account.hide_reblogs": "Hide boosts from @{name}",
-  "account.joined": "Joined {date}",
+  "account.account_note_header": "Nóta",
+  "account.add_or_remove_from_list": "Cuir Le nó Bain De na liostaí",
+  "account.badges.bot": "Bota",
+  "account.badges.group": "Grúpa",
+  "account.block": "Bac @{name}",
+  "account.block_domain": "Bac ainm fearainn {domain}",
+  "account.blocked": "Bactha",
+  "account.browse_more_on_origin_server": "Brabhsáil níos mó ar an phróifíl bhunaidh",
+  "account.cancel_follow_request": "Cealaigh iarratas leanúnaí",
+  "account.direct": "Cuir teachtaireacht dhíreach ar @{name}",
+  "account.disable_notifications": "Éirigh as ag cuir mé in eol nuair bpostálann @{name}",
+  "account.domain_blocked": "Ainm fearainn bactha",
+  "account.edit_profile": "Cuir an phróifíl in eagar",
+  "account.enable_notifications": "Cuir mé in eol nuair bpostálann @{name}",
+  "account.endorse": "Cuir ar an phróifíl mar ghné",
+  "account.follow": "Lean",
+  "account.followers": "Leantóirí",
+  "account.followers.empty": "Ní leanann éinne an t-úsáideoir seo fós.",
+  "account.followers_counter": "{count, plural, one {Leantóir amháin} other {{counter} Leantóir}}",
+  "account.following": "Ag leanúint",
+  "account.following_counter": "{count, plural, one {Ag leanúint cúntas amháin} other {Ag leanúint {counter} cúntas}}",
+  "account.follows.empty": "Ní leanann an t-úsáideoir seo duine ar bith fós.",
+  "account.follows_you": "Do do leanúint",
+  "account.hide_reblogs": "Folaigh athphostálacha ó @{name}",
+  "account.joined": "Ina bhall ó {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.mention": "Mention @{name}",
-  "account.moved_to": "{name} has moved to:",
-  "account.mute": "Mute @{name}",
-  "account.mute_notifications": "Mute notifications from @{name}",
-  "account.muted": "Muted",
-  "account.posts": "Toots",
-  "account.posts_with_replies": "Toots and replies",
-  "account.report": "Report @{name}",
-  "account.requested": "Awaiting approval",
-  "account.share": "Share @{name}'s profile",
-  "account.show_reblogs": "Show boosts from @{name}",
-  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
-  "account.unblock": "Unblock @{name}",
-  "account.unblock_domain": "Unhide {domain}",
-  "account.unblock_short": "Unblock",
-  "account.unendorse": "Don't feature on profile",
-  "account.unfollow": "Unfollow",
-  "account.unmute": "Unmute @{name}",
-  "account.unmute_notifications": "Unmute notifications from @{name}",
-  "account.unmute_short": "Unmute",
-  "account_note.placeholder": "No comment provided",
-  "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
+  "account.locked_info": "Tá an socrú príobháideachais don cuntas seo curtha go 'faoi ghlas'. Déanann an t-úinéir léirmheas ar cén daoine atá ceadaithe an cuntas leanúint.",
+  "account.media": "Ábhair",
+  "account.mention": "Luaigh @{name}",
+  "account.moved_to": "Tá {name} bogtha go:",
+  "account.mute": "Ciúnaigh @{name}",
+  "account.mute_notifications": "Ciúnaigh fógraí ó @{name}",
+  "account.muted": "Ciúnaithe",
+  "account.posts": "Postálacha",
+  "account.posts_with_replies": "Postálacha agus freagraí",
+  "account.report": "Gearán @{name}",
+  "account.requested": "Ag fanacht le ceadú. Cliceáil chun an iarratas leanúnaí a chealú",
+  "account.share": "Roinn próifíl @{name}",
+  "account.show_reblogs": "Taispeáin athphostálacha ó @{name}",
+  "account.statuses_counter": "{count, plural, one {Postáil amháin} other {{counter} Postáil}}",
+  "account.unblock": "Bain bac de @{name}",
+  "account.unblock_domain": "Bain bac den ainm fearainn {domain}",
+  "account.unblock_short": "Bain bac de",
+  "account.unendorse": "Ná chuir ar an phróifíl mar ghné",
+  "account.unfollow": "Ná lean a thuilleadh",
+  "account.unmute": "Díchiúnaigh @{name}",
+  "account.unmute_notifications": "Díchiúnaigh fógraí ó @{name}",
+  "account.unmute_short": "Díchiúnaigh",
+  "account_note.placeholder": "Cliceáil chun nóta a chuir leis",
+  "admin.dashboard.daily_retention": "Ráta coinneála an úsáideora de réir an lae tar éis clárú",
   "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
   "admin.dashboard.retention.average": "Average",
   "admin.dashboard.retention.cohort": "Sign-up month",
@@ -72,7 +72,7 @@
   "column.community": "Local timeline",
   "column.direct": "Direct messages",
   "column.directory": "Browse profiles",
-  "column.domain_blocks": "Hidden domains",
+  "column.domain_blocks": "Blocked domains",
   "column.favourites": "Favourites",
   "column.follow_requests": "Follow requests",
   "column.home": "Home",
@@ -121,8 +121,8 @@
   "confirmations.delete.message": "Are you sure you want to delete this status?",
   "confirmations.delete_list.confirm": "Delete",
   "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
-  "confirmations.discard_edit_media.confirm": "Discard",
-  "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
+  "confirmations.discard_edit_media.confirm": "Faigh réidh de",
+  "confirmations.discard_edit_media.message": "Tá athruithe neamhshlánaithe don tuarascáil gné nó réamhamharc agat, faigh réidh dóibh ar aon nós?",
   "confirmations.domain_block.confirm": "Hide entire domain",
   "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
   "confirmations.logout.confirm": "Log out",
@@ -152,7 +152,7 @@
   "emoji_button.food": "Food & Drink",
   "emoji_button.label": "Insert emoji",
   "emoji_button.nature": "Nature",
-  "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
+  "emoji_button.not_found": "No matching emojis found",
   "emoji_button.objects": "Objects",
   "emoji_button.people": "People",
   "emoji_button.recent": "Frequently used",
@@ -167,19 +167,19 @@
   "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
   "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
-  "empty_column.domain_blocks": "There are no hidden domains yet.",
+  "empty_column.domain_blocks": "There are no blocked domains yet.",
   "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
   "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
   "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
   "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
   "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
   "empty_column.hashtag": "There is nothing in this hashtag yet.",
-  "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
+  "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
   "empty_column.home.suggestions": "See some suggestions",
   "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
   "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
   "empty_column.mutes": "You haven't muted any users yet.",
-  "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
+  "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.",
   "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
   "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
   "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
@@ -267,8 +267,8 @@
   "lists.account.add": "Add to list",
   "lists.account.remove": "Remove from list",
   "lists.delete": "Delete list",
-  "lists.edit": "Edit list",
-  "lists.edit.submit": "Change title",
+  "lists.edit": "Cuir an liosta in eagar",
+  "lists.edit.submit": "Athraigh teideal",
   "lists.new.create": "Add list",
   "lists.new.title_placeholder": "New list title",
   "lists.replies_policy.followed": "Any followed user",
@@ -279,7 +279,7 @@
   "lists.subheading": "Your lists",
   "load_pending": "{count, plural, one {# new item} other {# new items}}",
   "loading_indicator.label": "Loading...",
-  "media_gallery.toggle_visible": "Hide media",
+  "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
   "missing_indicator.label": "Not found",
   "missing_indicator.sublabel": "This resource could not be found",
   "mute_modal.duration": "Duration",
@@ -293,12 +293,12 @@
   "navigation_bar.direct": "Direct messages",
   "navigation_bar.discover": "Discover",
   "navigation_bar.domain_blocks": "Hidden domains",
-  "navigation_bar.edit_profile": "Edit profile",
+  "navigation_bar.edit_profile": "Cuir an phróifíl in eagar",
   "navigation_bar.explore": "Explore",
   "navigation_bar.favourites": "Favourites",
   "navigation_bar.filters": "Muted words",
   "navigation_bar.follow_requests": "Follow requests",
-  "navigation_bar.follows_and_followers": "Follows and followers",
+  "navigation_bar.follows_and_followers": "Ag leanúint agus do do leanúint",
   "navigation_bar.info": "About this server",
   "navigation_bar.keyboard_shortcuts": "Hotkeys",
   "navigation_bar.lists": "Lists",
@@ -311,14 +311,14 @@
   "navigation_bar.security": "Security",
   "notification.admin.sign_up": "{name} signed up",
   "notification.favourite": "{name} favourited your status",
-  "notification.follow": "{name} followed you",
-  "notification.follow_request": "{name} has requested to follow you",
+  "notification.follow": "Lean {name} thú",
+  "notification.follow_request": "D'iarr {name} ort do chuntas a leanúint",
   "notification.mention": "{name} mentioned you",
   "notification.own_poll": "Your poll has ended",
   "notification.poll": "A poll you have voted in has ended",
   "notification.reblog": "{name} boosted your status",
   "notification.status": "{name} just posted",
-  "notification.update": "{name} edited a post",
+  "notification.update": "Chuir {name} postáil in eagar",
   "notifications.clear": "Clear notifications",
   "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
   "notifications.column_settings.admin.sign_up": "New sign-ups:",
@@ -327,8 +327,8 @@
   "notifications.column_settings.filter_bar.advanced": "Display all categories",
   "notifications.column_settings.filter_bar.category": "Quick filter bar",
   "notifications.column_settings.filter_bar.show_bar": "Show filter bar",
-  "notifications.column_settings.follow": "New followers:",
-  "notifications.column_settings.follow_request": "New follow requests:",
+  "notifications.column_settings.follow": "Leantóirí nua:",
+  "notifications.column_settings.follow_request": "Iarratais leanúnaí nua:",
   "notifications.column_settings.mention": "Mentions:",
   "notifications.column_settings.poll": "Poll results:",
   "notifications.column_settings.push": "Push notifications",
@@ -338,7 +338,7 @@
   "notifications.column_settings.status": "New toots:",
   "notifications.column_settings.unread_notifications.category": "Unread notifications",
   "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
-  "notifications.column_settings.update": "Edits:",
+  "notifications.column_settings.update": "Eagair:",
   "notifications.filter.all": "All",
   "notifications.filter.boosts": "Boosts",
   "notifications.filter.favourites": "Favourites",
@@ -366,13 +366,13 @@
   "poll_button.add_poll": "Add a poll",
   "poll_button.remove_poll": "Remove poll",
   "privacy.change": "Adjust status privacy",
-  "privacy.direct.long": "Post to mentioned users only",
+  "privacy.direct.long": "Visible for mentioned users only",
   "privacy.direct.short": "Direct",
-  "privacy.private.long": "Post to followers only",
-  "privacy.private.short": "Followers-only",
-  "privacy.public.long": "Post to public timelines",
+  "privacy.private.long": "Sofheicthe do Leantóirí amháin",
+  "privacy.private.short": "Leantóirí amháin",
+  "privacy.public.long": "Visible for all, shown in public timelines",
   "privacy.public.short": "Public",
-  "privacy.unlisted.long": "Do not show in public timelines",
+  "privacy.unlisted.long": "Visible for all, but not in public timelines",
   "privacy.unlisted.short": "Unlisted",
   "refresh": "Refresh",
   "regeneration_indicator.label": "Loading…",
@@ -405,20 +405,20 @@
   "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.placeholder": "Additional comments",
+  "report.placeholder": "Type or paste additional comments",
   "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 repetetive replies",
+  "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.submit": "Submit",
+  "report.submit": "Submit report",
   "report.target": "Report {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}:",
@@ -450,14 +450,14 @@
   "status.delete": "Delete",
   "status.detailed_status": "Detailed conversation view",
   "status.direct": "Direct message @{name}",
-  "status.edit": "Edit",
-  "status.edited": "Edited {date}",
-  "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
+  "status.edit": "Cuir in eagar",
+  "status.edited": "Curtha in eagar in {date}",
+  "status.edited_x_times": "Curtha in eagar {count, plural, one {{count} uair amháin} two {{count} uair} few {{count} uair} many {{count} uair} other {{count} uair}}",
   "status.embed": "Embed",
   "status.favourite": "Favourite",
   "status.filtered": "Filtered",
   "status.history.created": "{name} created {date}",
-  "status.history.edited": "{name} edited {date}",
+  "status.history.edited": "Curtha in eagar ag {name} in {date}",
   "status.load_more": "Load more",
   "status.media_hidden": "Media hidden",
   "status.mention": "Mention @{name}",
@@ -500,7 +500,7 @@
   "time_remaining.moments": "Moments remaining",
   "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
   "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
-  "timeline_hint.resources.followers": "Followers",
+  "timeline_hint.resources.followers": "Leantóirí",
   "timeline_hint.resources.follows": "Follows",
   "timeline_hint.resources.statuses": "Older toots",
   "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
@@ -510,13 +510,13 @@
   "units.short.million": "{count}M",
   "units.short.thousand": "{count}K",
   "upload_area.title": "Drag & drop to upload",
-  "upload_button.label": "Add media ({formats})",
+  "upload_button.label": "Add images, a video or an audio file",
   "upload_error.limit": "File upload limit exceeded.",
   "upload_error.poll": "File upload not allowed with polls.",
   "upload_form.audio_description": "Describe for people with hearing loss",
   "upload_form.description": "Describe for the visually impaired",
   "upload_form.description_missing": "No description added",
-  "upload_form.edit": "Edit",
+  "upload_form.edit": "Cuir in eagar",
   "upload_form.thumbnail": "Change thumbnail",
   "upload_form.undo": "Delete",
   "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
@@ -526,19 +526,19 @@
   "upload_modal.choose_image": "Choose image",
   "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
   "upload_modal.detect_text": "Detect text from picture",
-  "upload_modal.edit_media": "Edit media",
+  "upload_modal.edit_media": "Cuir gné in eagar",
   "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
   "upload_modal.preparing_ocr": "Preparing OCR…",
   "upload_modal.preview_label": "Preview ({ratio})",
-  "upload_progress.label": "Uploading...",
+  "upload_progress.label": "Uploading…",
   "video.close": "Close video",
   "video.download": "Download file",
   "video.exit_fullscreen": "Exit full screen",
   "video.expand": "Expand video",
   "video.fullscreen": "Full screen",
   "video.hide": "Hide video",
-  "video.mute": "Mute sound",
-  "video.pause": "Pause",
-  "video.play": "Play",
-  "video.unmute": "Unmute sound"
+  "video.mute": "Ciúnaigh fuaim",
+  "video.pause": "Cuir ar sos",
+  "video.play": "Cuir ar siúl",
+  "video.unmute": "Díchiúnaigh fuaim"
 }
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index 3a94c515b..58a48cb1c 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -520,7 +520,7 @@
   "upload_error.poll": "アンケートではファイルをアップロードできません。",
   "upload_form.audio_description": "聴取が難しいユーザーへの説明",
   "upload_form.description": "閲覧が難しいユーザーへの説明",
-  "upload_form.description_missing": "No description added",
+  "upload_form.description_missing": "説明を追加していません",
   "upload_form.edit": "編集",
   "upload_form.thumbnail": "サムネイルを変更",
   "upload_form.undo": "削除",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 86d8d1ef4..b149c5879 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -140,7 +140,7 @@
   "conversation.mark_as_read": "읽은 상태로 표시",
   "conversation.open": "대화 보기",
   "conversation.with": "{names} 님과",
-  "directory.federated": "알려진 별무리로부터",
+  "directory.federated": "알려진 연합우주로부터",
   "directory.local": "{domain}에서만",
   "directory.new_arrivals": "새로운 사람들",
   "directory.recently_active": "최근 활동",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index e6ee77212..9321fe303 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -515,7 +515,7 @@
   "upload_error.poll": "Mídias não podem ser anexadas em toots com enquetes.",
   "upload_form.audio_description": "Descrever para deficientes auditivos",
   "upload_form.description": "Descrever para deficientes visuais",
-  "upload_form.description_missing": "No description added",
+  "upload_form.description_missing": "Nenhuma descrição adicionada",
   "upload_form.edit": "Editar",
   "upload_form.thumbnail": "Alterar miniatura",
   "upload_form.undo": "Excluir",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 1ab3b4427..01de2c8c8 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -9,11 +9,11 @@
   "account.browse_more_on_origin_server": "Orijinal profilde daha fazlasına göz atın",
   "account.cancel_follow_request": "Takip isteğini iptal et",
   "account.direct": "@{name} adlı kişiye mesaj gönder",
-  "account.disable_notifications": "@{name} gönderi atınca bana bildirmeyi durdur",
+  "account.disable_notifications": "@{name} kişisinin gönderi bildirimlerini kapat",
   "account.domain_blocked": "Alan adı engellendi",
   "account.edit_profile": "Profili düzenle",
-  "account.enable_notifications": "@{name} gönderi atınca bana bildir",
-  "account.endorse": "Profildeki özellik",
+  "account.enable_notifications": "@{name} kişisinin gönderi bildirimlerini aç",
+  "account.endorse": "Profilimde öne çıkar",
   "account.follow": "Takip et",
   "account.followers": "Takipçi",
   "account.followers.empty": "Henüz kimse bu kullanıcıyı takip etmiyor.",
@@ -42,7 +42,7 @@
   "account.unblock": "@{name} adlı kişinin engelini kaldır",
   "account.unblock_domain": "{domain} alan adının engelini kaldır",
   "account.unblock_short": "Engeli kaldır",
-  "account.unendorse": "Profilde gösterme",
+  "account.unendorse": "Profilimde öne çıkarma",
   "account.unfollow": "Takibi bırak",
   "account.unmute": "@{name} adlı kişinin sesini aç",
   "account.unmute_notifications": "@{name} adlı kişinin bildirimlerini aç",
@@ -507,8 +507,8 @@
   "trends.trending_now": "Şu an gündemde",
   "ui.beforeunload": "Mastodon'u terk ederseniz taslağınız kaybolacak.",
   "units.short.billion": "{count}Mr",
-  "units.short.million": "{count}Mn",
-  "units.short.thousand": "{count}Mn",
+  "units.short.million": "{count}M",
+  "units.short.thousand": "{count}Bin",
   "upload_area.title": "Karşıya yükleme için sürükle bırak yapınız",
   "upload_button.label": "Resim, video veya ses dosyası ekleyin",
   "upload_error.limit": "Dosya yükleme sınırı aşıldı.",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 9211f6007..9ea6a1e44 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -1,7 +1,7 @@
 {
   "account.account_note_header": "Ghi chú",
   "account.add_or_remove_from_list": "Thêm hoặc Xóa khỏi danh sách",
-  "account.badges.bot": "Bot",
+  "account.badges.bot": "người máy",
   "account.badges.group": "Nhóm",
   "account.block": "Chặn @{name}",
   "account.block_domain": "Ẩn mọi thứ từ {domain}",
@@ -22,7 +22,7 @@
   "account.following_counter": "{count, plural, one {{counter} Theo dõi} other {{counter} Theo dõi}}",
   "account.follows.empty": "Người này chưa theo dõi ai.",
   "account.follows_you": "Đang theo dõi bạn",
-  "account.hide_reblogs": "Ẩn tút do @{name} đăng lại",
+  "account.hide_reblogs": "Ẩn tút @{name} đăng lại",
   "account.joined": "Đã tham gia {date}",
   "account.link_verified_on": "Liên kết này đã được xác thực vào {date}",
   "account.locked_info": "Đây là tài khoản riêng tư. Họ sẽ tự mình xét duyệt các yêu cầu theo dõi.",
@@ -414,9 +414,9 @@
   "report.reasons.spam_description": "Liên kết độc hại, tạo tương tác giả hoặc trả lời lặp đi lặp lại",
   "report.reasons.violation": "Vi phạm quy tắc máy chủ",
   "report.reasons.violation_description": "Bạn nhận thấy nó vi phạm quy tắc máy chủ",
-  "report.rules.subtitle": "Chọn tất cả những áp dụng",
+  "report.rules.subtitle": "Chọn tất cả những gì phù hợp",
   "report.rules.title": "Vi phạm quy tắc nào?",
-  "report.statuses.subtitle": "Chọn tất cả những áp dụng",
+  "report.statuses.subtitle": "Chọn tất cả những gì phù hợp",
   "report.statuses.title": "Bạn muốn gửi tút nào kèm báo cáo này?",
   "report.submit": "Gửi đi",
   "report.target": "Báo cáo {target}",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index d9447a01a..e479c63c6 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -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": "用户目录",
@@ -206,7 +206,7 @@
   "getting_started.heading": "开始使用",
   "getting_started.invite": "邀请用户",
   "getting_started.open_source_notice": "Mastodon 是开源软件。欢迎前往 GitHub({github})贡献代码或反馈问题。",
-  "getting_started.security": "帐户安全",
+  "getting_started.security": "账户安全设置",
   "getting_started.terms": "使用条款",
   "hashtag.column_header.tag_mode.all": "以及 {additional}",
   "hashtag.column_header.tag_mode.any": "或是 {additional}",
@@ -308,7 +308,7 @@
   "navigation_bar.pins": "置顶嘟文",
   "navigation_bar.preferences": "首选项",
   "navigation_bar.public_timeline": "跨站公共时间轴",
-  "navigation_bar.security": "安全",
+  "navigation_bar.security": "安全性",
   "notification.admin.sign_up": "{name} 注册了",
   "notification.favourite": "{name} 喜欢了你的嘟文",
   "notification.follow": "{name} 开始关注你",
diff --git a/app/models/status.rb b/app/models/status.rb
index 9eaf85668..cc7ee568f 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -150,11 +150,13 @@ class Status < ApplicationRecord
       ids += favourites.where(account: Account.local).pluck(:account_id)
       ids += reblogs.where(account: Account.local).pluck(:account_id)
       ids += bookmarks.where(account: Account.local).pluck(:account_id)
+      ids += poll.votes.where(account: Account.local).pluck(:account_id) if poll.present?
     else
       ids += preloaded.mentions[id] || []
       ids += preloaded.favourites[id] || []
       ids += preloaded.reblogs[id] || []
       ids += preloaded.bookmarks[id] || []
+      ids += preloaded.votes[id] || []
     end
 
     ids.uniq
diff --git a/app/serializers/web/notification_serializer.rb b/app/serializers/web/notification_serializer.rb
index ee83ec8b2..c5a908b19 100644
--- a/app/serializers/web/notification_serializer.rb
+++ b/app/serializers/web/notification_serializer.rb
@@ -34,6 +34,6 @@ class Web::NotificationSerializer < ActiveModel::Serializer
 
   def body
     str = strip_tags(object.target_status&.spoiler_text&.presence || object.target_status&.text || object.from_account.note)
-    truncate(HTMLEntities.new.decode(str.to_str), length: 140) # Do not encode entities, since this value will not be used in HTML
+    truncate(HTMLEntities.new.decode(str.to_str), length: 140, escape: false) # Do not encode entities, since this value will not be used in HTML
   end
 end