- {!banner &&
}
{banner &&
diff --git a/app/javascript/mastodon/features/ui/components/notifications_counter_icon.js b/app/javascript/mastodon/features/ui/components/notifications_counter_icon.js
index b3e9950e9..7d59d616d 100644
--- a/app/javascript/mastodon/features/ui/components/notifications_counter_icon.js
+++ b/app/javascript/mastodon/features/ui/components/notifications_counter_icon.js
@@ -1,7 +1,6 @@
import { connect } from 'react-redux';
-import { ReactComponent as NotificationsIcon } from '@material-symbols/svg-600/outlined/notifications-fill.svg';
-
+import NotificationsIcon from '@/material-icons/400-24px/notifications-fill.svg?react';
import { IconWithBadge } from 'mastodon/components/icon_with_badge';
diff --git a/app/javascript/mastodon/features/ui/components/report_modal.jsx b/app/javascript/mastodon/features/ui/components/report_modal.jsx
index 3fd8ff127..658436460 100644
--- a/app/javascript/mastodon/features/ui/components/report_modal.jsx
+++ b/app/javascript/mastodon/features/ui/components/report_modal.jsx
@@ -7,8 +7,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
-import { ReactComponent as CloseIcon } from '@material-symbols/svg-600/outlined/close.svg';
-
+import CloseIcon from '@/material-icons/400-24px/close.svg?react';
import { submitReport } from 'mastodon/actions/reports';
import { fetchServer } from 'mastodon/actions/server';
import { expandAccountTimeline } from 'mastodon/actions/timelines';
diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.jsx b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
index 5e71da9d9..272a3cff0 100644
--- a/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
+++ b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
@@ -3,9 +3,8 @@ import { PureComponent } from 'react';
import { defineMessages, injectIntl } from 'react-intl';
-import { ReactComponent as FullscreenExitIcon } from '@material-symbols/svg-600/outlined/fullscreen_exit.svg';
-import { ReactComponent as RectangleIcon } from '@material-symbols/svg-600/outlined/rectangle.svg';
-
+import FullscreenExitIcon from '@/material-icons/400-24px/fullscreen_exit.svg?react';
+import RectangleIcon from '@/material-icons/400-24px/rectangle.svg?react';
import { IconButton } from 'mastodon/components/icon_button';
const messages = defineMessages({
diff --git a/app/javascript/mastodon/features/ui/containers/status_list_container.js b/app/javascript/mastodon/features/ui/containers/status_list_container.js
index 36a8f58f8..5ffa4353f 100644
--- a/app/javascript/mastodon/features/ui/containers/status_list_container.js
+++ b/app/javascript/mastodon/features/ui/containers/status_list_container.js
@@ -1,6 +1,6 @@
+import { createSelector } from '@reduxjs/toolkit';
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
import { connect } from 'react-redux';
-import { createSelector } from 'reselect';
import { debounce } from 'lodash';
@@ -14,7 +14,7 @@ const makeGetStatusIds = (pending = false) => createSelector([
(state) => state.get('statuses'),
], (columnSettings, statusIds, statuses) => {
return statusIds.filter(id => {
- if (id === null) return true;
+ if (id === null || id === 'inline-follow-suggestions') return true;
const statusForId = statuses.get(id);
let showStatus = true;
diff --git a/app/javascript/mastodon/features/video/index.jsx b/app/javascript/mastodon/features/video/index.jsx
index e908715e9..89a8ba560 100644
--- a/app/javascript/mastodon/features/video/index.jsx
+++ b/app/javascript/mastodon/features/video/index.jsx
@@ -7,16 +7,16 @@ import classNames from 'classnames';
import { is } from 'immutable';
-import { ReactComponent as FullscreenIcon } from '@material-symbols/svg-600/outlined/fullscreen.svg';
-import { ReactComponent as FullscreenExitIcon } from '@material-symbols/svg-600/outlined/fullscreen_exit.svg';
-import { ReactComponent as PauseIcon } from '@material-symbols/svg-600/outlined/pause.svg';
-import { ReactComponent as PlayArrowIcon } from '@material-symbols/svg-600/outlined/play_arrow-fill.svg';
-import { ReactComponent as RectangleIcon } from '@material-symbols/svg-600/outlined/rectangle.svg';
-import { ReactComponent as VisibilityOffIcon } from '@material-symbols/svg-600/outlined/visibility_off.svg';
-import { ReactComponent as VolumeOffIcon } from '@material-symbols/svg-600/outlined/volume_off-fill.svg';
-import { ReactComponent as VolumeUpIcon } from '@material-symbols/svg-600/outlined/volume_up-fill.svg';
import { throttle } from 'lodash';
+import FullscreenIcon from '@/material-icons/400-24px/fullscreen.svg?react';
+import FullscreenExitIcon from '@/material-icons/400-24px/fullscreen_exit.svg?react';
+import PauseIcon from '@/material-icons/400-24px/pause.svg?react';
+import PlayArrowIcon from '@/material-icons/400-24px/play_arrow-fill.svg?react';
+import RectangleIcon from '@/material-icons/400-24px/rectangle.svg?react';
+import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react';
+import VolumeOffIcon from '@/material-icons/400-24px/volume_off-fill.svg?react';
+import VolumeUpIcon from '@/material-icons/400-24px/volume_up-fill.svg?react';
import { Blurhash } from 'mastodon/components/blurhash';
import { Icon } from 'mastodon/components/icon';
import { playerSettings } from 'mastodon/settings';
diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json
index d3cc40c60..d2ac2f8f2 100644
--- a/app/javascript/mastodon/locales/af.json
+++ b/app/javascript/mastodon/locales/af.json
@@ -3,6 +3,7 @@
"about.contact": "Kontak:",
"about.disclaimer": "Mastodon is gratis oopbronsagteware en ân handelsmerk van Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Rede nie beskikbaar nie",
+ "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.silenced.title": "Beperk",
"about.domain_blocks.suspended.title": "Opgeskort",
"about.not_available": "Hierdie inligting is nie op hierdie bediener beskikbaar gestel nie.",
@@ -30,7 +31,6 @@
"account.followers.empty": "Hierdie gebruiker het nog nie volgers nie.",
"account.following": "Volg",
"account.follows.empty": "Die gebruiker volg nog niemand.",
- "account.follows_you": "Volg jou",
"account.go_to_profile": "Gaan na profiel",
"account.hide_reblogs": "Versteek plasings wat deur @{name} aangestuur is",
"account.joined_short": "Aangesluit",
@@ -66,7 +66,6 @@
"alert.unexpected.message": "Iets het skeefgeloop.",
"alert.unexpected.title": "Oeps!",
"announcement.announcement": "Aankondiging",
- "autosuggest_hashtag.per_week": "{count} per week",
"boost_modal.combo": "Druk {combo} om dit volgende keer oor te slaan",
"bundle_column_error.error.title": "Ag nee!",
"bundle_column_error.network.title": "Netwerkfout",
@@ -111,19 +110,12 @@
"compose_form.lock_disclaimer": "Jou rekening is nie {locked} nie. Enigiemand kan jou volg en sien wat jy vir jou volgers plaas.",
"compose_form.lock_disclaimer.lock": "gesluit",
"compose_form.placeholder": "Wat wil jy deel?",
- "compose_form.poll.add_option": "Voeg ân keuse by",
"compose_form.poll.duration": "Duur van peiling",
- "compose_form.poll.option_placeholder": "Keuse {number}",
- "compose_form.poll.remove_option": "Verwyder hierdie keuse",
"compose_form.poll.switch_to_multiple": "Verander peiling om meer as een keuse toe te laat",
"compose_form.poll.switch_to_single": "Verander die peiling om slegs een keuse toe te laat",
- "compose_form.publish": "Publiseer",
"compose_form.publish_form": "Publiseer",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Stoor veranderinge",
"compose_form.spoiler.marked": "Verwyder inhoudswaarskuwing",
"compose_form.spoiler.unmarked": "Voeg inhoudswaarskuwing by",
- "compose_form.spoiler_placeholder": "Skryf jou waarskuwing hier",
"confirmation_modal.cancel": "Kanselleer",
"confirmations.block.block_and_report": "Blokkeer en rapporteer",
"confirmations.block.confirm": "Blokkeer",
@@ -234,7 +226,6 @@
"navigation_bar.community_timeline": "Plaaslike tydlyn",
"navigation_bar.compose": "Skep nuwe plasing",
"navigation_bar.domain_blocks": "Geblokkeerde domeine",
- "navigation_bar.edit_profile": "Redigeer profiel",
"navigation_bar.lists": "Lyste",
"navigation_bar.logout": "Teken uit",
"navigation_bar.personal": "Persoonlik",
@@ -267,14 +258,7 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "Verander privaatheid van plasing",
- "privacy.direct.long": "Slegs sigbaar vir genoemde gebruikers",
- "privacy.direct.short": "Slegs genoemde persone",
- "privacy.private.long": "Slegs sigbaar vir volgelinge",
- "privacy.private.short": "Slegs volgelinge",
- "privacy.public.long": "Sigbaar vir almal",
"privacy.public.short": "Publiek",
- "privacy.unlisted.long": "Sigbaar vir almal, maar onttrek uit verkennings-kenmerke",
- "privacy.unlisted.short": "Ongelys",
"privacy_policy.last_updated": "Laaste bywerking op {date}",
"privacy_policy.title": "Privaatheidsbeleid",
"regeneration_indicator.sublabel": "Jou tuis-voer word voorberei!",
diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json
index b2134551b..e9d609a1c 100644
--- a/app/javascript/mastodon/locales/an.json
+++ b/app/javascript/mastodon/locales/an.json
@@ -35,7 +35,6 @@
"account.following": "Seguindo",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Seguindo}}",
"account.follows.empty": "Este usuario encara no sigue a dengÃēn.",
- "account.follows_you": "Te sigue",
"account.go_to_profile": "Ir ta lo perfil",
"account.hide_reblogs": "Amagar retutz de @{name}",
"account.joined_short": "S'uniÃŗ",
@@ -76,7 +75,6 @@
"announcement.announcement": "Anuncio",
"attachments_list.unprocessed": "(sin procesar)",
"audio.hide": "Amagar audio",
- "autosuggest_hashtag.per_week": "{count} per semana",
"boost_modal.combo": "Puetz fer clic en {combo} pa blincar este aviso la proxima vegada",
"bundle_column_error.copy_stacktrace": "Copiar informe d'error",
"bundle_column_error.error.body": "La pachina solicitada no podiÃŗ estar renderizada. PodrÃa deber-se a una error en o nuestro codigo u a un problema de compatibilidat con o navegador.",
@@ -127,22 +125,12 @@
"compose_form.lock_disclaimer": "La tuya cuenta no ye {locked}. Totz pueden seguir-te pa veyer las tuyas publicacions nomÃĄs pa seguidores.",
"compose_form.lock_disclaimer.lock": "blocau",
"compose_form.placeholder": "En quÊ yes pensando?",
- "compose_form.poll.add_option": "Anyadir una opciÃŗn",
"compose_form.poll.duration": "DuraciÃŗn d'a enqÃŧesta",
- "compose_form.poll.option_placeholder": "ElecciÃŗn {number}",
- "compose_form.poll.remove_option": "Eliminar esta opciÃŗn",
"compose_form.poll.switch_to_multiple": "Modificar enqÃŧesta pa permitir multiples opcions",
"compose_form.poll.switch_to_single": "Modificar enqÃŧesta pa permitir una sola opciÃŗn",
- "compose_form.publish": "Publicar",
"compose_form.publish_form": "Publicar",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Alzar cambios",
- "compose_form.sensitive.hide": "{count, plural, one {Marcar material como sensible} other {Marcar material como sensible}}",
- "compose_form.sensitive.marked": "{count, plural, one {Material marcau como sensible} other {Material marcau como sensible}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Material no marcau como sensible} other {Material no marcau como sensible}}",
"compose_form.spoiler.marked": "Texto amagau dimpuÊs de l'alvertencia",
"compose_form.spoiler.unmarked": "Texto no amagau",
- "compose_form.spoiler_placeholder": "Alvertencia de conteniu",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.block_and_report": "Blocar y Denunciar",
"confirmations.block.confirm": "Blocar",
@@ -346,7 +334,6 @@
"navigation_bar.compose": "Escribir nueva publicaciÃŗn",
"navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios amagaus",
- "navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explorar",
"navigation_bar.filters": "Parolas silenciadas",
"navigation_bar.follow_requests": "Solicitutz pa seguir-te",
@@ -430,14 +417,7 @@
"poll_button.add_poll": "Anyadir una enqÃŧesta",
"poll_button.remove_poll": "Eliminar enqÃŧesta",
"privacy.change": "Achustar privacidat",
- "privacy.direct.long": "NomÃĄs amostrar a los usuarios mencionaus",
- "privacy.direct.short": "NomÃĄs contas mencionadas",
- "privacy.private.long": "NomÃĄs amostrar a seguidores",
- "privacy.private.short": "Solo seguidores",
- "privacy.public.long": "Visible pa totz",
"privacy.public.short": "Publico",
- "privacy.unlisted.long": "Visible pa totz, pero excluyiu d'as funcions d'escubrimiento",
- "privacy.unlisted.short": "No listau",
"privacy_policy.last_updated": "Ultima vegada actualizau {date}",
"privacy_policy.title": "Politica de Privacidat",
"refresh": "Actualizar",
@@ -591,10 +571,8 @@
"upload_error.poll": "Puyada de fichers no permitida con enqÃŧestas.",
"upload_form.audio_description": "Describir pa personas con problemas auditivos",
"upload_form.description": "Describir pa los usuarios con dificultat visual",
- "upload_form.description_missing": "Garra descripciÃŗn anyadida",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura",
- "upload_form.undo": "Borrar",
"upload_form.video_description": "Describir pa personas con problemas auditivos u visuals",
"upload_modal.analyzing_picture": "Analisando imachenâĻ",
"upload_modal.apply": "Aplicar",
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 979bc9a70..5f2d151fa 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -37,7 +37,6 @@
"account.following": "اŲاشØĒØąØ§ŲاØĒ",
"account.following_counter": "{count, plural, zero{Ųا ŲŲØĒابŲØš ØŖØدŲا} one {ŲŲØĒابŲØšŲ ŲاØد} two{ŲŲØĒابŲØšŲ اŲØĢŲاŲ} few{ŲŲØĒابŲØšŲ {counter}} many{ŲŲØĒابŲØšŲ {counter}} other {ŲŲØĒابŲØšŲ {counter}}}",
"account.follows.empty": "Ųا ŲŲØĒابؚ Ųذا اŲŲ
ŲØŗØĒ؎دŲ
Ų ØŖŲŲŲ ØŖØدŲ ØØĒŲ اŲØĸŲ.",
- "account.follows_you": "ŲŲØĒابŲØšŲŲ",
"account.go_to_profile": "اذŲب ØĨŲŲ اŲŲ
ŲŲ اŲØ´ØŽØĩŲ",
"account.hide_reblogs": "ØĨØŽŲØ§ØĄ اŲŲ
ؚاد ŲØ´ØąŲا Ų
ŲŲ @{name}",
"account.in_memoriam": "ŲŲ اŲØ°ŲØąŲ.",
@@ -87,7 +86,6 @@
"announcement.announcement": "ØĨØšŲاŲ",
"attachments_list.unprocessed": "(ØēŲØą Ų
ؚاŲŲØŦ)",
"audio.hide": "ØĨØŽŲØ§ØĄ اŲŲ
ŲØˇØš اŲØĩŲØĒŲ",
- "autosuggest_hashtag.per_week": "{count} ŲŲ اŲØŖØŗبŲØš",
"boost_modal.combo": "ŲŲŲ
ŲŲŲ اŲØļŲØēØˇ ØšŲŲ {combo} ŲØĒØŽØˇŲ Ųذا ŲŲ اŲŲ
ØąØŠ اŲŲ
ŲŲبŲØŠ",
"bundle_column_error.copy_stacktrace": "اŲØŗØŽ ØĒŲØąŲØą اŲØŽØˇØŖ",
"bundle_column_error.error.body": "Ųا ŲŲ
ŲŲ ØĒŲدŲŲ
اŲØĩŲØØŠ اŲŲ
ØˇŲŲب؊. Ųد ŲŲŲŲ بØŗبب ØŽØˇØŖ ŲŲ اŲØĒØšŲŲŲ
اØĒ اŲØ¨ØąŲ
ØŦŲØŠØ ØŖŲ Ų
Ø´ŲŲØŠ ØĒŲاŲŲ اŲŲ
ØĒØĩŲØ.",
@@ -144,22 +142,12 @@
"compose_form.lock_disclaimer": "ØØŗابŲŲ ØēŲØą {locked}. ŲŲŲ
ŲŲ ŲØŖŲ Ø´ØŽØĩ Ų
ŲØĒابؚØĒŲ ŲØąØ¤ŲØŠ (Ų
ŲØ´ŲØąØ§ØĒ اŲŲ
ØĒابؚŲŲ ŲŲØˇ).",
"compose_form.lock_disclaimer.lock": "Ų
ŲŲŲŲŲ",
"compose_form.placeholder": "ŲŲŲŲ
Ų ØĒŲŲŲŲŲØąØ",
- "compose_form.poll.add_option": "ØĨØļاŲØŠ ØŽŲØ§Øą",
"compose_form.poll.duration": "Ų
ŲدŲŲØŠ اŲØŗØĒØˇŲاؚ اŲØąØŖŲ",
- "compose_form.poll.option_placeholder": "اŲØŽŲØ§Øą {number}",
- "compose_form.poll.remove_option": "ØĨØ˛Ø§ŲØŠ Ųذا اŲØŽŲØ§Øą",
"compose_form.poll.switch_to_multiple": "ØĒØēŲŲŲØą اŲاØŗØĒØˇŲاؚ ŲŲØŗŲ
Ø§Ø Ø¨Ø§ŲØŽŲØ§ØąØ§ØĒ Ų
ŲØĒؚدŲŲد؊",
"compose_form.poll.switch_to_single": "ØĒØēŲŲŲØą اŲاØŗØĒØˇŲاؚ ŲŲØŗŲ
Ø§Ø Ø¨Ø§ŲØŽŲØ§Øą ŲاØد ŲŲØˇ",
- "compose_form.publish": "ŲØ´Øą",
"compose_form.publish_form": "Ų
ŲØ´ŲØą ØŦدŲد",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "اØŲظ اŲØĒؚدŲŲاØĒ",
- "compose_form.sensitive.hide": "{count, plural, one {اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲŲØŗØˇ ŲŲ
ŲØØĒŲŲ ØØŗŲاØŗ} two{اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗØˇØ§Ų ŲŲ
ŲØØĒŲŲاŲ ØØŗŲاØŗاŲ} other {اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗاØĻØˇ ŲŲ
ŲØØĒŲŲاØĒ ØØŗŲاØŗØŠ}}",
- "compose_form.sensitive.marked": "{count, plural, one {ØĒŲ
ŲŲ اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗØˇ ŲŲ
ŲØØĒŲŲ ØØŗŲاØŗ} two{ØĒŲ
ŲŲ اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗØˇØ§Ų ŲŲ
ŲØØĒŲŲاŲ ØØŗŲاØŗاŲ} other {ØĒŲ
ŲŲ اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗاØĻØˇ ŲŲ
ŲØØĒŲŲاØĒ ØØŗŲاØŗØŠ}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ŲŲ
ØĒŲØĒŲŲ
Ų اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗØˇ ŲŲ
ŲØØĒŲŲ ØØŗŲاØŗ} two{ŲŲ
ØĒŲØĒŲŲ
Ų اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗØˇØ§Ų ŲŲ
ŲØØĒŲŲاŲ ØØŗŲاØŗاŲ} other {ŲŲ
ØĒŲØĒŲŲ
Ų اŲØĨØ´Ø§ØąØŠ ØĨŲŲ اŲŲØŗاØĻØˇ ŲŲ
ŲØØĒŲŲاØĒ ØØŗŲاØŗØŠ}}",
"compose_form.spoiler.marked": "ØĨØ˛Ø§ŲØŠ ØĒØØ°ŲØą اŲŲ
ØØĒŲŲ",
"compose_form.spoiler.unmarked": "ØĨØļاŲØŠ ØĒØØ°ŲØą ŲŲŲ
ØØĒŲŲ",
- "compose_form.spoiler_placeholder": "اŲŲØĒŲب ØĒØØ°ŲØąŲŲ ŲŲŲا",
"confirmation_modal.cancel": "ØĨŲØēØ§ØĄ",
"confirmations.block.block_and_report": "ØØ¸ØąŲ ŲاŲØĨبŲاØē ØšŲŲ",
"confirmations.block.confirm": "ØØ¸Øą",
@@ -403,7 +391,6 @@
"navigation_bar.direct": "اŲØĨØ´Ø§ØąØ§ØĒ اŲ؎اØĩØŠ",
"navigation_bar.discover": "اŲØĒØ´Ų",
"navigation_bar.domain_blocks": "اŲŲØˇØ§ŲاØĒ اŲŲ
ØظŲØąØŠ",
- "navigation_bar.edit_profile": "ؚدŲŲ اŲŲ
ŲŲ اŲØĒØšØąŲŲŲ",
"navigation_bar.explore": "اØŗØĒŲØ´Ų",
"navigation_bar.favourites": "اŲŲ
ŲØļŲØŠ",
"navigation_bar.filters": "اŲŲŲŲ
اØĒ اŲŲ
ŲØĒŲŲ
ØŠ",
@@ -510,14 +497,7 @@
"poll_button.add_poll": "ØĨØļاŲØŠ اØŗØĒØˇŲاؚ ŲŲØąØŖŲ",
"poll_button.remove_poll": "ØĨØ˛Ø§ŲØŠ اØŗØĒØˇŲاؚ اŲØąØŖŲ",
"privacy.change": "اØļØ¨Øˇ ØŽØĩŲØĩŲØŠ اŲŲ
ŲØ´ŲØą",
- "privacy.direct.long": "Ų
ØąØĻŲ ŲŲŲ
ØŗØĒ؎دŲ
ŲŲ اŲŲ
Ø°ŲŲØąŲŲ ŲŲØˇ",
- "privacy.direct.short": "اŲØŖش؎اØĩ اŲŲ
Ø´Ø§Øą ØĨŲŲŲŲ
ŲŲØˇ",
- "privacy.private.long": "ØŖŲØ´Øą ŲŲ
ØĒابؚŲŲ ŲŲØˇ",
- "privacy.private.short": "ŲŲŲ
ØĒابŲØšŲŲ ŲŲØˇ",
- "privacy.public.long": "Ų
ØąØĻŲ ŲŲŲŲ",
"privacy.public.short": "ŲŲؚاŲ
ØŠ",
- "privacy.unlisted.long": "Ų
ØąØĻŲ ŲŲØŦŲ
ŲØšØ ŲŲŲŲ Ų
ŲŲ دŲŲ Ų
ŲØ˛Ø§ØĒ اŲاŲØĒشاŲ",
- "privacy.unlisted.short": "ØēŲØą Ų
Ø¯ØąØŦ",
"privacy_policy.last_updated": "ØĸØŽØą ØĒØدŲØĢ {date}",
"privacy_policy.title": "ØŗŲاØŗØŠ اŲØŽØĩŲØĩŲØŠ",
"refresh": "ØŖŲØšŲØ´",
@@ -697,10 +677,8 @@
"upload_error.poll": "Ųا ŲŲ
ŲŲ ØĨØ¯ØąØ§ØŦ Ų
ŲŲاØĒ ŲŲ اØŗØĒØˇŲاؚاØĒ اŲØąØŖŲ.",
"upload_form.audio_description": "ŲØĩŲ ŲŲØŖش؎اØĩ Ø°Ų ŲŲØĩØą اŲØŗŲ
Øš",
"upload_form.description": "ŲØĩŲ ŲŲŲ
ؚاŲŲŲ بØĩØąŲا",
- "upload_form.description_missing": "ŲŲ
ŲŲØļŲ ŲØĩŲ",
"upload_form.edit": "ØĒؚدŲŲ",
"upload_form.thumbnail": "ØēŲŲØą اŲØĩŲØąØŠ اŲŲ
ØĩØēØąØŠ",
- "upload_form.undo": "ØØ°Ų",
"upload_form.video_description": "ŲØĩŲ ŲŲŲ
ؚاŲŲŲ بØĩØąŲا ØŖŲ ŲŲØ°Ų ŲŲØĩØą اŲØŗŲ
Øš",
"upload_modal.analyzing_picture": "ØŦØ§ØąŲ ŲØØĩ اŲØĩŲØąØŠâĻ",
"upload_modal.apply": "ØˇØ¨ŲŲ",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index 98f622c29..479c9c924 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -13,14 +13,12 @@
"about.rules": "Normes del sirvidor",
"account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Amestar o quitar de les llistes",
- "account.badges.bot": "AutomatizÃĄu",
"account.badges.group": "Grupu",
"account.block": "Bloquiar a @{name}",
"account.block_domain": "Bloquiar el dominiu {domain}",
"account.block_short": "Bloquiar",
"account.blocked": "Perfil bloquiÃĄu",
"account.browse_more_on_origin_server": "Restolar mÃĄs nel perfil orixinal",
- "account.cancel_follow_request": "Atayar siguimientu",
"account.copy": "Copiar I'enllaz al perfil",
"account.direct": "Mentar a @{name} per privao",
"account.disable_notifications": "Dexar d'avisame cuando @{name} espublice artÃculos",
@@ -28,22 +26,18 @@
"account.edit_profile": "Editar el perfil",
"account.enable_notifications": "Avisame cuando @{name} espublice artÃculos",
"account.endorse": "Destacar nel perfil",
- "account.featured_tags.last_status_at": "Ãltimu estÃĄu en {date}",
- "account.featured_tags.last_status_never": "Sin estaos",
+ "account.featured_tags.last_status_never": "Nun hai nengÃēn artÃculu",
"account.featured_tags.title": "Etiquetes destacaes de: {name}",
"account.follow": "Siguir",
"account.followers": "Siguidores",
"account.followers.empty": "Naide sigue a esti perfil.",
- "account.followers_counter": "{count, plural, one {{counter} SiguÃu} other {{counter} SiguÃos}}",
"account.following": "Siguiendo",
"account.following_counter": "{count, plural,one {Sigue a {counter}} other {Sigue a {counter}}}",
"account.follows.empty": "Esti perfil nun sigue a naide.",
- "account.follows_you": "SÃguete",
"account.go_to_profile": "Dir al perfil",
"account.hide_reblogs": "Anubrir los artÃculos compartÃos de @{name}",
"account.in_memoriam": "N'alcordanza.",
"account.joined_short": "Data de xuniÃŗn",
- "account.languages": "Camudar llingÃŧes suscrites",
"account.link_verified_on": "La propiedÃĄ d'esti enllaz foi comprobada'l {date}",
"account.media": "Multimedia",
"account.mention": "Mentar a @{name}",
@@ -72,7 +66,6 @@
"alert.unexpected.title": "ÂĄMeca!",
"announcement.announcement": "Anunciu",
"attachments_list.unprocessed": "(ensin procesar)",
- "autosuggest_hashtag.per_week": "{count} per selmana",
"bundle_column_error.error.body": "La pÃĄxina solicitada nun se pudo renderizar. Ye posible que seya pola mor d'un fallu nel cÃŗdigu o por un problema de compatibilidÃĄ del restolador.",
"bundle_column_error.error.title": "ÂĄOh, non!",
"bundle_column_error.network.body": "Hebo un error al tentar de cargar esta pÃĄxina. Esto pudo ser pola mor d'un problema temporal cola conexÃŗn a internet o con esti sirvidor.",
@@ -109,19 +102,15 @@
"community.column_settings.remote_only": "NamÃĄs lo remoto",
"compose.language.change": "Camudar la llingua",
"compose.language.search": "Buscar llingÃŧesâĻ",
+ "compose.published.body": "EspublizÃŗse l'artÃculu.",
"compose_form.direct_message_warning_learn_more": "Saber mÃĄs",
"compose_form.encryption_warning": "Los artÃculos de Mastodon nun tÃĄn cifraos de puntu a puntu. Nun compartas nengÃēn tipu d'informaciÃŗn sensible per Mastodon.",
"compose_form.lock_disclaimer": "La to cuenta nun ye {locked}. Cualesquier perfil pue siguite pa ver los artÃculos que son namÃĄs pa siguidores.",
"compose_form.lock_disclaimer.lock": "privada",
"compose_form.placeholder": "ÂŋEn quÊ pienses?",
- "compose_form.poll.add_option": "Amestar una opciÃŗn",
"compose_form.poll.option_placeholder": "OpciÃŗn {number}",
- "compose_form.poll.remove_option": "Quitar esta opciÃŗn",
- "compose_form.publish": "Espublizar",
+ "compose_form.poll.type": "Estilu",
"compose_form.publish_form": "ArtÃculu nuevu",
- "compose_form.publish_loud": "ÂĄ{publish}!",
- "compose_form.save_changes": "Guardar los cambeos",
- "compose_form.spoiler.unmarked": "Text is not hidden",
"confirmation_modal.cancel": "Encaboxar",
"confirmations.block.block_and_report": "Bloquiar ya informar",
"confirmations.block.confirm": "Bloquiar",
@@ -151,6 +140,7 @@
"dismissable_banner.community_timeline": "Esta seiciÃŗn contiÊn los artÃculos pÃēblicos mÃĄs actuales de los perfiles agospiaos nel dominiu {domain}.",
"dismissable_banner.dismiss": "Escartar",
"dismissable_banner.explore_tags": "Esta seiciÃŗn contiÊn les etiquetes del fediversu que tÃĄn ganando popularidÃĄ gÃŧei. Les etiquetes mÃĄs usaes polos perfiles apaecen no cimero.",
+ "dismissable_banner.public_timeline": "Esta seiciÃŗn contiÊn los artÃculos mÃĄs nuevos de les persones na web social que les persones de {domain} siguen.",
"embed.instructions": "Empotra esti artÃculu nel to sitiu web pente la copia del cÃŗdigu d'abaxo.",
"embed.preview": "Va apaecer asina:",
"emoji_button.activity": "ActividÃĄ",
@@ -160,6 +150,7 @@
"emoji_button.not_found": "Nun s'atoparon fustaxes que concasen",
"emoji_button.objects": "Oxetos",
"emoji_button.people": "Persones",
+ "emoji_button.recent": "D'usu frecuente",
"emoji_button.search": "BuscarâĻ",
"emoji_button.search_results": "Resultaos de la busca",
"emoji_button.symbols": "SÃmbolos",
@@ -222,7 +213,6 @@
"hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "ensin {additional}",
"hashtag.column_settings.select.no_options_message": "Nun s'atopÃŗ nenguna suxerencia",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}",
"hashtag.follow": "Siguir a la etiqueta",
"hashtag.unfollow": "Dexar de siguir a la etiqueta",
@@ -264,7 +254,6 @@
"keyboard_shortcuts.reply": "Responder a un artÃculu",
"keyboard_shortcuts.requests": "Abrir la llista de solicitÃēes de siguimientu",
"keyboard_shortcuts.search": "Enfocar la barra de busca",
- "keyboard_shortcuts.spoilers": "to show/hide CW field",
"keyboard_shortcuts.start": "Abrir la columna ÂĢEntamarÂģ",
"keyboard_shortcuts.toggle_sensitivity": "Amosar/anubrir el contenÃu multimedia",
"keyboard_shortcuts.toot": "Comenzar un artÃculu nuevu",
@@ -292,7 +281,6 @@
"navigation_bar.community_timeline": "Llinia de tiempu llocal",
"navigation_bar.direct": "Menciones privaes",
"navigation_bar.domain_blocks": "Dominios bloquiaos",
- "navigation_bar.edit_profile": "Editar el perfil",
"navigation_bar.explore": "EsploraciÃŗn",
"navigation_bar.filters": "Pallabres desactivaes",
"navigation_bar.follow_requests": "SolicitÃēes de siguimientu",
@@ -300,6 +288,7 @@
"navigation_bar.lists": "Llistes",
"navigation_bar.logout": "Zarrar la sesiÃŗn",
"navigation_bar.mutes": "Perfiles colos avisos desactivaos",
+ "navigation_bar.opened_in_classic_interface": "Los artÃculos, les cuentes ya otres pÃĄxines especÃfiques ÃĄbrense por defeutu na interfaz web clÃĄsica.",
"navigation_bar.pins": "ArtÃculos fixaos",
"navigation_bar.preferences": "Preferencies",
"navigation_bar.public_timeline": "Llinia de tiempu federada",
@@ -335,7 +324,7 @@
"notifications.group": "{count} avisos",
"notifications.mark_as_read": "Marcar tolos avisos como lleÃos",
"notifications.permission_required": "Los avisos d'escritoriu nun tÃĄn disponibles porque nun se concediÃŗ'l permisu riquÃu.",
- "onboarding.actions.go_to_explore": "See what's trending",
+ "onboarding.profile.note_hint": "Pues @mentar a otros perfiles o poner #etiquetesâĻ",
"onboarding.start.lead": "XÃĄ yes parte de Mastodon, una plataforma social multimedia descentralizada onde tu ya non un algoritmu, personalices la to esperiencia. Vamos presentate esti llugar social nuevu:",
"onboarding.start.skip": "ÂŋNun precises ayuda pa comenzar?",
"onboarding.steps.follow_people.body": "Mastodon trata namÃĄs de siguir a cuentes interesantes.",
@@ -351,12 +340,7 @@
"poll_button.add_poll": "Amestar una encuesta",
"poll_button.remove_poll": "Quitar la encuesta",
"privacy.change": "Configurar la privacidÃĄ del artÃculu",
- "privacy.direct.long": "ArtÃculu visible namÃĄs pa los perfiles mentaos",
- "privacy.private.long": "ArtÃculu visible namÃĄs pa los perfiles siguidores",
- "privacy.private.short": "NamÃĄs pa siguidores",
- "privacy.public.long": "Tol mundu pue ver l'artÃculu",
"privacy.public.short": "ArtÃculu pÃēblicu",
- "privacy.unlisted.long": "ArtÃculu visible pa tol mundu mas escluyÃu de les funciones de descubrimientu",
"privacy_policy.last_updated": "Data del Ãēltimu anovamientu: {date}",
"privacy_policy.title": "PolÃtica de privacidÃĄ",
"refresh": "Anovar",
@@ -373,6 +357,7 @@
"relative_time.seconds": "{number} s",
"relative_time.today": "gÃŧei",
"reply_indicator.cancel": "Encaboxar",
+ "reply_indicator.poll": "Encuesta",
"report.block": "Bloquiar",
"report.categories.spam": "Spam",
"report.categories.violation": "El contenÃu incumple una o mÃĄs normes del sirvidor",
@@ -416,12 +401,16 @@
"search.quick_action.go_to_hashtag": "Dir a la etiqueta {x}",
"search.quick_action.status_search": "ArtÃculos que concasen con {x}",
"search.search_or_paste": "Busca o apiega una URL",
+ "search_popout.language_code": "cÃŗdigu de llingua ISO",
"search_popout.quick_actions": "Aiciones rÃĄpides",
"search_popout.recent": "Busques de reciÊn",
+ "search_popout.specific_date": "data especÃfica",
+ "search_popout.user": "perfil",
"search_results.accounts": "Perfiles",
"search_results.all": "Too",
"search_results.hashtags": "Etiquetes",
"search_results.nothing_found": "Nun se pudo atopar nada con esos tÊrminos de busca",
+ "search_results.see_all": "Ver too",
"search_results.statuses": "ArtÃculos",
"search_results.title": "Busca de: {q}",
"server_banner.introduction": "{domain} ye parte de la rede social descentralizada que tien la teunoloxÃa de {mastodon}.",
@@ -464,6 +453,7 @@
"status.replied_to": "En rempuesta a {name}",
"status.reply": "Responder",
"status.replyAll": "Responder al filu",
+ "status.report": "Informar de @{name}",
"status.sensitive_warning": "ContenÃu sensible",
"status.show_filter_reason": "Amosar de toes toes",
"status.show_less": "Amosar menos",
@@ -492,9 +482,7 @@
"upload_button.label": "Amestar ficheros multimedia",
"upload_error.poll": "La xuba de ficheros nun ta permitida coles encuestes.",
"upload_form.audio_description": "Describi'l contenÃu pa persones sordes ya/o ciegues",
- "upload_form.description_missing": "Nun s'amestÃŗ la descripciÃŗn",
"upload_form.edit": "Editar",
- "upload_form.undo": "Desaniciar",
"upload_modal.analyzing_picture": "Analizando la semeyaâĻ",
"upload_modal.apply": "Aplicar",
"upload_modal.applying": "AplicandoâĻ",
diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json
index f94a8b79f..e06951510 100644
--- a/app/javascript/mastodon/locales/be.json
+++ b/app/javascript/mastodon/locales/be.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "ĐŅĐŧĐ° Đ´ĐžĐŋŅŅĐ°Ņ",
"account.featured_tags.title": "ĐĸŅĐŗŅ, вŅĐąŅĐ°ĐŊŅŅ {name}",
"account.follow": "ĐĐ°Đ´ĐŋŅŅĐ°ŅŅĐ°",
+ "account.follow_back": "ĐĐ°Đ´ĐŋŅŅĐ°ŅŅĐ° Ņ Đ°Đ´ĐēаС",
"account.followers": "ĐĐ°Đ´ĐŋŅŅŅŅĐēŅ",
"account.followers.empty": "ĐŅŅ
ŅĐž ĐŋĐ°ĐēŅĐģŅ ĐŊĐĩ ĐŋĐ°Đ´ĐŋŅŅĐ°ĐŊŅ ĐŊĐ° ĐŗŅŅĐ°ĐŗĐ° ĐēĐ°ŅŅŅŅĐ°ĐģŅĐŊŅĐēĐ°.",
"account.followers_counter": "{count, plural, one {{counter} ĐŋĐ°Đ´ĐŋŅŅŅŅĐē} few {{counter} ĐŋĐ°Đ´ĐŋŅŅŅŅĐēŅ} many {{counter} ĐŋĐ°Đ´ĐŋŅŅŅŅĐēĐ°Ņ} other {{counter} ĐŋĐ°Đ´ĐŋŅŅŅŅĐēĐ°}}",
"account.following": "ĐĐ°Đ´ĐŋŅŅĐēŅ",
"account.following_counter": "{count, plural, one {{counter} ĐŋĐ°Đ´ĐŋŅŅĐēĐ°} few {{counter} ĐŋĐ°Đ´ĐŋŅŅĐēŅ} many {{counter} ĐŋĐ°Đ´ĐŋŅŅĐ°Đē} other {{counter} ĐŋĐ°Đ´ĐŋŅŅĐēŅ}}",
"account.follows.empty": "ĐĐ°ŅŅŅŅĐ°ĐģŅĐŊŅĐē ĐŊŅ ĐŊĐ° ĐēĐ°ĐŗĐž ĐŊĐĩ ĐŋĐ°Đ´ĐŋŅŅĐ°ĐŊŅ.",
- "account.follows_you": "ĐĐ°Đ´ĐŋŅŅĐ°ĐŊŅ ĐŊĐ° ваŅ",
"account.go_to_profile": "ĐĐĩŅĐ°ĐšŅŅŅ Đ´Đ° ĐŋŅĐžŅŅĐģŅ",
"account.hide_reblogs": "ĐĄŅ
аваŅŅ ĐŋĐ°ŅŅŅŅĐŊĐŊŅ Đ°Đ´ @{name}",
"account.in_memoriam": "ĐŖ ĐŋĐ°ĐŧŅŅŅ.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ĐĐĩ Đ°ĐŋавŅŅŅĐ°ŅŅ",
"account.mute_short": "ĐĐŗĐŊĐ°ŅаваŅŅ",
"account.muted": "ĐĐŗĐŊĐ°ŅŅĐĩŅŅĐ°",
+ "account.mutual": "ĐŖСаĐĩĐŧĐŊŅŅ",
"account.no_bio": "ĐĐŋŅŅĐ°ĐŊĐŊĐĩ Đ°Đ´ŅŅŅĐŊŅŅĐ°Đĩ.",
"account.open_original_page": "ĐĐ´ĐēŅŅŅŅ Đ°ŅŅĐŗŅĐŊĐ°ĐģŅĐŊŅŅ ŅŅĐ°ŅĐžĐŊĐēŅ",
"account.posts": "ĐĐžĐŋŅŅŅ",
@@ -88,7 +89,6 @@
"announcement.announcement": "ĐĐą'Ņва",
"attachments_list.unprocessed": "(ĐŊĐĩĐ°ĐŋŅĐ°ŅаваĐŊŅ)",
"audio.hide": "ĐĄŅ
аваŅŅ Đ°ŅĐ´ŅŅ",
- "autosuggest_hashtag.per_week": "{count} Са ŅŅдСĐĩĐŊŅ",
"boost_modal.combo": "ĐĐ°ŅŅŅĐŊŅŅĐĩ {combo}, ĐēĐ°Đą ĐŋŅĐ°ĐŋŅŅŅŅŅŅ ĐŊĐ°ŅŅŅĐŋĐŊŅĐŧ ŅаСаĐŧ",
"bundle_column_error.copy_stacktrace": "ĐĄĐēĐ°ĐŋŅŅаваŅŅ ŅĐŋŅаваСдаŅŅ ĐŋŅĐ° ĐŋĐ°ĐŧŅĐģĐēŅ",
"bundle_column_error.error.body": "ĐĐ°ĐŋŅŅĐ°ĐŊĐ°Ņ ŅŅĐ°ŅĐžĐŊĐēĐ° ĐŊĐĩ ĐŧĐžĐļĐ° ĐąŅŅŅ Đ°Đ´ĐģŅŅŅŅаваĐŊĐ°Ņ. ĐŅŅĐ° ĐŧĐ°ĐŗĐģĐž ŅŅĐ°ŅŅĐ° ĐŋŅаС Ņ
ŅĐąŅ Ņ ĐŊĐ°ŅŅĐŧ ĐēОдСĐĩ, айО ĐŋŅаС ĐŋĐ°ĐŧŅĐģĐēŅ ŅŅĐŧŅŅŅĐ°ĐģŅĐŊĐ°ŅŅŅ С ĐąŅĐ°ŅСĐĩŅĐ°Đŧ.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "ĐĐ°Ņ ŅĐģŅĐēОвŅ СаĐŋŅŅ ĐŊĐĩ {locked}. ĐŖŅĐĩ ĐŧĐžĐŗŅŅŅ ĐŋĐ°Đ´ĐŋŅŅĐ°ŅŅĐ° ĐŊĐ° ваŅ, ĐēĐ°Đą йаŅŅŅŅ Đ´ĐžĐŋŅŅŅ ŅĐžĐģŅĐēŅ Đ´ĐģŅ ĐŋĐ°Đ´ĐŋŅŅŅŅĐēĐ°Ņ.",
"compose_form.lock_disclaimer.lock": "СаĐēŅŅŅŅ",
"compose_form.placeholder": "ШŅĐž СдаŅŅĐģĐ°ŅŅ?",
- "compose_form.poll.add_option": "ĐĐ°Đ´Đ°ŅŅ ваŅŅŅĐŊŅ",
"compose_form.poll.duration": "ĐŅĐ°ŅŅĐŗĐģĐ°ŅŅŅ Đ°ĐŋŅŅĐ°ĐŊĐŊŅ",
- "compose_form.poll.option_placeholder": "ĐĐ°ŅŅŅĐŊŅ {number}",
- "compose_form.poll.remove_option": "ĐŅĐ´Đ°ĐģŅŅŅ ĐŗŅŅŅ ваŅŅŅĐŊŅ",
"compose_form.poll.switch_to_multiple": "ĐĐŧŅĐŊŅŅĐĩ Đ°ĐŋŅŅĐ°ĐŊĐŊĐĩ, ĐēĐ°Đą даСвОĐģŅŅŅ ĐŊĐĩĐēĐ°ĐģŅĐēŅ ваŅŅŅĐŊŅĐ°Ņ Đ°Đ´ĐēаСŅ",
"compose_form.poll.switch_to_single": "ĐĐŧŅĐŊŅŅĐĩ Đ°ĐŋŅŅĐ°ĐŊĐŊĐĩ, ĐēĐ°Đą даСвОĐģŅŅŅ адСŅĐŊŅ ваŅŅŅĐŊŅ Đ°Đ´ĐēаСŅ",
- "compose_form.publish": "ĐĐŋŅĐąĐģŅĐēаваŅŅ",
"compose_form.publish_form": "ĐĐŋŅĐąĐģŅĐēаваŅŅ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ĐĐ°Ņ
аваŅŅ СĐŧĐĩĐŊŅ",
- "compose_form.sensitive.hide": "{count, plural, one {ĐаСĐŊĐ°ŅŅŅŅ ĐēĐ°ĐŊŅŅĐŊŅ ŅĐē Đ´Đ°ĐģŅĐēĐ°ŅĐŊŅ} other {ĐаСĐŊĐ°ŅŅŅŅ ĐēĐ°ĐŊŅŅĐŊŅ ŅĐē Đ´Đ°ĐģŅĐēĐ°ŅĐŊŅ}}",
- "compose_form.sensitive.marked": "{count, plural, one {ĐĐ°ĐŊŅŅĐŊŅ ĐŋаСĐŊĐ°ŅĐ°ĐŊŅ ŅĐē Đ´Đ°ĐģŅĐēĐ°ŅĐŊŅ} other {ĐĐ°ĐŊŅŅĐŊŅ ĐŋаСĐŊĐ°ŅĐ°ĐŊŅ ŅĐē Đ´Đ°ĐģŅĐēĐ°ŅĐŊŅ}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ĐĐ°ĐŊŅŅĐŊŅ ĐŊĐĩ ĐŋаСĐŊĐ°ŅĐ°ĐŊŅ ŅĐē Đ´Đ°ĐģŅĐēĐ°ŅĐŊŅ} other {ĐĐ°ĐŊŅŅĐŊŅ ĐŊĐĩ ĐŋаСĐŊĐ°ŅĐ°ĐŊŅ ŅĐē Đ´Đ°ĐģŅĐēĐ°ŅĐŊŅ}}",
"compose_form.spoiler.marked": "ĐŅĐ´Đ°ĐģŅŅŅ ĐŋĐ°ĐŋŅŅŅĐ´ĐļĐ°ĐŊĐŊĐĩ Đ°Đą СĐŧĐĩŅŅŅвĐĩ",
"compose_form.spoiler.unmarked": "ĐĐ°Đ´Đ°ŅŅ ĐŋĐ°ĐŋŅŅŅĐ´ĐļĐ°ĐŊĐŊĐĩ Đ°Đą СĐŧĐĩŅŅŅвĐĩ",
- "compose_form.spoiler_placeholder": "ĐĐ°ĐŋŅŅŅŅĐĩ ŅваŅ ĐŋĐ°ĐŋŅŅŅĐ´ĐļĐ°ĐŊĐŊĐĩ ŅŅŅ",
"confirmation_modal.cancel": "ĐĄĐēĐ°ŅаваŅŅ",
"confirmations.block.block_and_report": "ĐĐ°ĐąĐģĐ°ĐēŅŅаваŅŅ Ņ ĐŋĐ°ŅĐēĐ°ŅдСŅŅŅĐ°",
"confirmations.block.confirm": "ĐĐ°ĐąĐģĐ°ĐēŅŅаваŅŅ",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "ĐŅĐ°ĐąŅŅŅŅŅ СĐŗадваĐŊĐŊŅ",
"navigation_bar.discover": "ĐавĐĩĐ´Đ°ĐšŅĐĩŅŅ",
"navigation_bar.domain_blocks": "ĐĐ°ĐąĐģĐ°ĐēŅŅаваĐŊŅŅ Đ´Đ°ĐŧĐĩĐŊŅ",
- "navigation_bar.edit_profile": "Đ ŅĐ´Đ°ĐŗаваŅŅ ĐŋŅĐžŅŅĐģŅ",
"navigation_bar.explore": "ĐĐŗĐģŅĐ´",
"navigation_bar.favourites": "ĐŖĐŋадайаĐŊĐ°Đĩ",
"navigation_bar.filters": "ĐĐŗĐŊĐ°ŅаваĐŊŅŅ ŅĐģОвŅ",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "ĐĐ°Đ´Đ°ŅŅ Đ°ĐŋŅŅĐ°ĐŊĐŊĐĩ",
"poll_button.remove_poll": "ĐŅĐ´Đ°ĐģŅŅŅ Đ°ĐŋŅŅĐ°ĐŊĐŊĐĩ",
"privacy.change": "ĐĐŧŅĐŊŅŅŅ ĐŋŅŅваŅĐŊĐ°ŅŅŅ Đ´ĐžĐŋŅŅŅ",
- "privacy.direct.long": "ĐĐ°ĐēаСаŅŅ ŅĐžĐģŅĐēŅ СĐŗĐ°Đ´Đ°ĐŊŅĐŧ ĐēĐ°ŅŅŅŅĐ°ĐģŅĐŊŅĐēĐ°Đŧ",
- "privacy.direct.short": "ĐĸĐžĐģŅĐēŅ СĐŗĐ°Đ´Đ°ĐŊŅŅ ĐģŅдСŅ",
- "privacy.private.long": "ĐĐ°ĐēаСаŅŅ ŅĐžĐģŅĐēŅ ĐŋĐ°Đ´ĐŋŅŅŅŅĐēĐ°Đŧ",
- "privacy.private.short": "ĐĸĐžĐģŅĐēŅ Đ´ĐģŅ ĐŋĐ°Đ´ĐŋŅŅŅŅĐēĐ°Ņ",
- "privacy.public.long": "ĐĐ°ŅĐŊŅ Đ´ĐģŅ ŅŅŅŅ
",
"privacy.public.short": "ĐŅĐąĐģŅŅĐŊŅ",
- "privacy.unlisted.long": "ĐĐ°ŅĐŊĐ° Đ´ĐģŅ ŅŅŅŅ
, Đ°ĐģĐĩ ĐŊĐĩ ĐŋŅаС ĐŧĐ°ĐŗŅŅĐŧĐ°ŅŅŅ Đ°ĐŗĐģŅĐ´Ņ",
- "privacy.unlisted.short": "ĐĐĩ Ņ ŅŅŅĐļĐēĐ°Ņ
",
"privacy_policy.last_updated": "ĐĐ´ĐŊĐžŅĐģĐĩĐŊĐ° {date}",
"privacy_policy.title": "ĐĐ°ĐģŅŅŅĐēĐ° ĐēĐ°ĐŊŅŅĐ´ŅĐŊŅŅĐšĐŊĐ°ŅŅŅ",
"recommended": "Đ ŅĐēĐ°ĐŧĐĩĐŊĐ´ŅĐĩĐŧ",
@@ -714,10 +696,8 @@
"upload_error.poll": "ĐĐĩĐŧĐ°ĐŗŅŅĐŧĐ° ĐŋŅŅĐŧĐ°ŅаваŅŅ ŅĐ°ĐšĐģ Đ´Đ° Đ°ĐŋŅŅĐ°ĐŊĐŊŅ.",
"upload_form.audio_description": "ĐĐŋŅŅĐ°ĐŊĐŊĐĩ Đ´ĐģŅ ĐģŅдСĐĩĐš С ĐŋĐ°ŅŅŅŅĐŊĐŊŅĐŧŅ ŅĐģŅŅ
Ņ",
"upload_form.description": "ĐĐŋŅŅĐ°ŅŅ Đ´ĐģŅ ĐģŅдСĐĩĐš ŅĐ° ŅĐģĐ°ĐąŅĐŧ СŅĐžĐēĐ°Đŧ",
- "upload_form.description_missing": "ĐĐŋŅŅĐ°ĐŊĐŊĐĩ Đ°Đ´ŅŅŅĐŊŅŅĐ°Đĩ",
"upload_form.edit": "Đ ŅĐ´Đ°ĐŗаваŅŅ",
"upload_form.thumbnail": "ĐĐŧŅĐŊŅŅŅ ĐŧŅĐŊŅŅŅŅŅŅ",
- "upload_form.undo": "ĐŅĐ´Đ°ĐģŅŅŅ",
"upload_form.video_description": "ĐĐŋŅŅĐ°ĐŊĐŊĐĩ Đ´ĐģŅ ĐģŅдСĐĩĐš С ĐŋĐ°ŅŅŅŅĐŊĐŊŅĐŧŅ СŅĐžĐēŅ Ņ ŅĐģŅŅ
Ņ",
"upload_modal.analyzing_picture": "ĐĐŊĐ°ĐģŅС вŅŅвŅâĻ",
"upload_modal.apply": "ĐŖĐļŅŅŅ",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index f57d868c7..213ac090a 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "ĐŅĐŧĐ° ĐŋŅĐąĐģиĐēĐ°Ņии",
"account.featured_tags.title": "ĐĐģавĐŊи Ņ
Đ°ŅŅĐ°ĐŗОвĐĩ ĐŊĐ° {name}",
"account.follow": "ĐĐžŅĐģĐĩдваĐŊĐĩ",
+ "account.follow_back": "ĐĐžŅĐģĐĩдваĐŊĐĩ вСаиĐŧĐŊĐž",
"account.followers": "ĐĐžŅĐģĐĩдОваŅĐĩĐģи",
"account.followers.empty": "ĐŅĐĩ ĐŊиĐēОК ĐŊĐĩ ŅĐģĐĩдва ĐŋĐžŅŅĐĩйиŅĐĩĐģŅ.",
"account.followers_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.go_to_profile": "ĐŅĐŧ ĐŋŅĐžŅиĐģĐ°",
"account.hide_reblogs": "ĐĄĐēŅиваĐŊĐĩ ĐŊĐ° ĐŋОдŅиĐģваĐŊиŅ ĐžŅ @{name}",
"account.in_memoriam": "Đ ĐŋĐ°ĐŧĐĩŅ ĐŊĐ°.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ĐĐ°ĐŗĐģŅŅаваĐŊĐĩ ĐŊĐ° иСвĐĩŅŅиŅŅĐ°",
"account.mute_short": "ĐĐ°ĐŗĐģŅŅаваĐŊĐĩ",
"account.muted": "ĐĐ°ĐŗĐģŅŅĐĩĐŊĐž",
+ "account.mutual": "ĐСаиĐŧĐŊи",
"account.no_bio": "ĐŅĐŧĐ° ĐŋŅĐĩĐ´ŅŅавĐĩĐŊ ĐžĐŋиŅ.",
"account.open_original_page": "ĐŅваŅŅĐŊĐĩ ĐŊĐ° ĐŋŅŅвООйŅаСĐŊĐ°ŅĐ° ŅŅŅĐ°ĐŊиŅĐ°",
"account.posts": "ĐŅĐąĐģиĐēĐ°Ņии",
@@ -88,7 +89,6 @@
"announcement.announcement": "ĐĐŋОвĐĩŅŅŅваĐŊĐĩ",
"attachments_list.unprocessed": "(ĐŊĐĩОйŅайОŅĐĩĐŊĐž)",
"audio.hide": "ĐĄĐēŅиваĐŊĐĩ ĐŊĐ° СвŅĐēĐ°",
- "autosuggest_hashtag.per_week": "{count} ĐŊĐ° ŅĐĩĐ´ĐŧиŅĐ°",
"boost_modal.combo": "ĐĐžĐļĐĩŅĐĩ Đ´Đ° ĐŊĐ°ŅиŅĐŊĐĩŅĐĩ {combo}, Са Đ´Đ° ĐŋŅĐžĐŋŅŅĐŊĐĩŅĐĩ ŅОва ŅĐģĐĩдваŅиŅ ĐŋŅŅ",
"bundle_column_error.copy_stacktrace": "ĐĐžĐŋиŅĐ°ĐŊĐĩ ĐŊĐ° Đ´ĐžĐēĐģĐ°Đ´Đ° Са ĐŗŅĐĩŅĐēĐ°ŅĐ°",
"bundle_column_error.error.body": "ĐĐ°ŅвĐĩĐŊĐ°ŅĐ° ŅŅŅĐ°ĐŊиŅĐ° ĐŊĐĩ ĐŧĐžĐļĐĩ Đ´Đ° ŅĐĩ иСОйŅаСи. ĐĸОва ĐŧĐžĐļĐĩ Đ´Đ° Đĩ СаŅади ĐŗŅĐĩŅĐēĐ° в ĐēОда ĐŊи иĐģи ĐŋŅОйĐģĐĩĐŧ ŅŅŅ ŅŅвĐŧĐĩŅŅиĐŧĐžŅŅŅĐ° ĐŊĐ° ĐąŅĐ°ŅСŅŅĐ°.",
@@ -147,20 +147,20 @@
"compose_form.placeholder": "ĐĐ°ĐēвО ĐŧиŅĐģиŅĐĩ?",
"compose_form.poll.add_option": "ĐОйавŅĐŊĐĩ ĐŊĐ° иСйОŅ",
"compose_form.poll.duration": "ĐŅĐĩĐŧĐĩŅŅĐ°ĐĩĐŊĐĩ ĐŊĐ° Đ°ĐŊĐēĐĩŅĐ°ŅĐ°",
+ "compose_form.poll.multiple": "ĐĐŊĐžĐļĐĩŅŅвĐĩĐŊ иСйОŅ",
"compose_form.poll.option_placeholder": "ĐСйОŅ {number}",
- "compose_form.poll.remove_option": "ĐŅĐĩĐŧĐ°Ņ
ваĐŊĐĩ ĐŊĐ° ŅОСи иСйОŅ",
+ "compose_form.poll.remove_option": "ĐŅĐĩĐŧĐ°Ņ
ваĐŊĐĩ ĐŊĐ° ŅаСи вŅСĐŧĐžĐļĐŊĐžŅŅ",
+ "compose_form.poll.single": "ĐОдйĐĩŅĐĩŅĐĩ ĐŊĐĩŅĐž",
"compose_form.poll.switch_to_multiple": "ĐŅĐžĐŧŅĐŊĐ° ĐŊĐ° Đ°ĐŊĐēĐĩŅĐ°ŅĐ°, Са Đ´Đ° ŅĐĩ ĐŋОСвОĐģŅŅ ĐŧĐŊĐžĐļĐĩŅŅвО вŅСĐŧĐžĐļĐŊи иСйОŅĐ°",
"compose_form.poll.switch_to_single": "ĐŅĐžĐŧŅĐŊĐ° ĐŊĐ° Đ°ĐŊĐēĐĩŅĐ°ŅĐ°, Са Đ´Đ° ŅĐĩ ĐŋОСвОĐģи ĐĩдиĐŊ вŅСĐŧĐžĐļĐĩĐŊ иСйОŅ",
- "compose_form.publish": "ĐŅĐąĐģиĐēŅваĐŊĐĩ",
+ "compose_form.poll.type": "ĐĄŅиĐģ",
+ "compose_form.publish": "ĐŅĐąĐģиĐēĐ°ŅиŅ",
"compose_form.publish_form": "ĐŅĐąĐģиĐēŅваĐŊĐĩ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ĐĐ°ĐŋаСваĐŊĐĩ ĐŊĐ° ĐŋŅĐžĐŧĐĩĐŊиŅĐĩ",
- "compose_form.sensitive.hide": "{count, plural, one {ĐĐ°ŅĐēиŅĐ°ĐŊĐĩ ĐŊĐ° ĐŧŅĐģŅиĐŧĐĩдиŅŅĐ° ĐēĐ°ŅĐž Đ´ĐĩĐģиĐēĐ°ŅĐŊĐ°} other {ĐĐ°ŅĐēиŅĐ°ĐŊĐĩ ĐŊĐ° ĐŧŅĐģŅиĐŧĐĩдииŅĐĩ ĐēĐ°ŅĐž Đ´ĐĩĐģиĐēĐ°ŅĐŊи}}",
- "compose_form.sensitive.marked": "{count, plural, one {ĐŧŅĐģŅиĐŧĐĩдиŅ Đĩ ОСĐŊĐ°ŅĐĩĐŊĐ° ĐēĐ°ŅĐž Đ´ĐĩĐģиĐēĐ°ŅĐŊĐ°} other {ĐŧŅĐģŅиĐŧĐĩдии ŅĐ° ОСĐŊĐ°ŅĐĩĐŊи ĐēĐ°ŅĐž Đ´ĐĩĐģиĐēĐ°ŅĐŊи}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ĐŅĐģŅиĐŧĐĩдиŅŅĐ° ĐŊĐĩ Đĩ ĐŧĐ°ŅĐēиŅĐ°ĐŊĐ° ĐēĐ°ŅĐž Đ´ĐĩĐģиĐēĐ°ŅĐŊĐ°} other {ĐŅĐģŅиĐŧĐĩдииŅĐĩ ĐŊĐĩ ŅĐ° ĐŧĐ°ŅĐēиŅĐ°ĐŊи ĐēĐ°ŅĐž Đ´ĐĩĐģиĐēĐ°ŅĐŊи}}",
+ "compose_form.reply": "ĐŅĐŗОвОŅ",
+ "compose_form.save_changes": "ĐĐąĐŊОвŅваĐŊĐĩ",
"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": "ĐĐģĐžĐēиŅĐ°ĐŊĐĩ",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "ЧаŅŅĐŊи ŅĐŋĐžĐŧĐĩĐŊаваĐŊиŅ",
"navigation_bar.discover": "ĐŅĐēŅиваĐŊĐĩ",
"navigation_bar.domain_blocks": "ĐĐģĐžĐēиŅĐ°ĐŊи Đ´ĐžĐŧĐĩĐšĐŊи",
- "navigation_bar.edit_profile": "Đ ĐĩĐ´Đ°ĐēŅиŅĐ°ĐŊĐĩ ĐŊĐ° ĐŋŅĐžŅиĐģĐ°",
"navigation_bar.explore": "ĐСŅĐģĐĩдваĐŊĐĩ",
"navigation_bar.favourites": "ĐŅйиĐŧи",
"navigation_bar.filters": "ĐĐ°ĐŗĐģŅŅĐĩĐŊи Đ´ŅĐŧи",
@@ -525,14 +524,14 @@
"poll_button.add_poll": "ĐĐŊĐēĐĩŅиŅĐ°ĐŊĐĩ",
"poll_button.remove_poll": "ĐŅĐĩĐŧĐ°Ņ
ваĐŊĐĩ ĐŊĐ° Đ°ĐŊĐēĐĩŅĐ°",
"privacy.change": "ĐŅĐžĐŧŅĐŊĐ° ĐŊĐ° ĐŋОвĐĩŅиŅĐĩĐģĐŊĐžŅŅŅĐ° ĐŊĐ° ĐŋŅĐąĐģиĐēĐ°ŅиŅ",
- "privacy.direct.long": "ĐидиĐŧĐž ŅĐ°ĐŧĐž Са ŅĐŋĐžĐŧĐĩĐŊĐ°ŅиŅĐĩ ĐŋĐžŅŅĐĩйиŅĐĩĐģи",
- "privacy.direct.short": "ĐĄĐ°ĐŧĐž ŅĐŋĐžĐŧĐĩĐŊĐ°ŅиŅĐĩ Ņ
ĐžŅĐ°",
- "privacy.private.long": "ĐидиĐŧĐž ŅĐ°ĐŧĐž Са ĐŋĐžŅĐģĐĩдОваŅĐĩĐģиŅĐĩ",
- "privacy.private.short": "ĐĄĐ°ĐŧĐž ĐŋĐžŅĐģĐĩдОваŅĐĩĐģи",
- "privacy.public.long": "ĐидиĐŧĐž Са вŅиŅĐēи",
+ "privacy.direct.long": "ĐŅĐĩĐēи ŅĐŋĐžĐŧĐĩĐŊĐ°Ņ в ĐŋŅĐąĐģиĐēĐ°ŅиŅŅĐ°",
+ "privacy.direct.short": "ĐĐŋŅĐĩĐ´ĐĩĐģĐĩĐŊи Ņ
ĐžŅĐ°",
+ "privacy.private.long": "ĐĄĐ°ĐŧĐž ĐŋĐžŅĐģĐĩдОваŅĐĩĐģиŅĐĩ ви",
+ "privacy.private.short": "ĐĐžŅĐģĐĩдОваŅĐĩĐģи",
+ "privacy.public.long": "ĐŅĐĩĐēи вŅв и иСвŅĐŊ Mastodon",
"privacy.public.short": "ĐŅĐąĐģиŅĐŊĐž",
- "privacy.unlisted.long": "ĐидиĐŧĐž Са вŅиŅĐēи, ĐŊĐž ĐŊĐĩ ŅŅĐĩС вŅСĐŧĐžĐļĐŊĐžŅŅŅĐ° Са ĐžŅĐēŅиваĐŊĐĩ",
- "privacy.unlisted.short": "ĐĐĩŅĐŋиŅŅŅĐŊĐž",
+ "privacy.unlisted.long": "ĐĐž-ĐŧĐ°ĐģĐēĐž Đ°ĐģĐŗĐžŅиŅĐŧиŅĐŊи ŅĐ°ĐŊŅĐ°Ņи",
+ "privacy.unlisted.short": "ĐĸиŅ
Đ° ĐŋŅĐąĐģиĐēĐ°",
"privacy_policy.last_updated": "ĐĐžŅĐģĐĩĐ´ĐŊĐž ĐžŅŅвŅĐĩĐŧĐĩĐŊŅваĐŊĐĩ ĐŊĐ° {date}",
"privacy_policy.title": "ĐĐžĐģиŅиĐēĐ° Са ĐŋОвĐĩŅиŅĐĩĐģĐŊĐžŅŅ",
"recommended": "ĐŅĐĩĐŋĐžŅŅŅĐ°ĐŊĐž",
@@ -550,7 +549,9 @@
"relative_time.minutes": "{number}Đŧ.",
"relative_time.seconds": "{number}Ņ.",
"relative_time.today": "Đ´ĐŊĐĩŅ",
+ "reply_indicator.attachments": "{count, plural, one {# ĐŋŅиĐēаваĐŊĐĩ} other {# ĐŋŅиĐēĐ°ŅваĐŊиŅ}}",
"reply_indicator.cancel": "ĐŅĐēаС",
+ "reply_indicator.poll": "ĐĐŊĐēĐĩŅĐ°",
"report.block": "ĐĐģĐžĐēиŅĐ°ĐŊĐĩ",
"report.block_explanation": "ĐŅĐŧĐ° Đ´Đ° иĐŧ виĐļĐ´Đ°ŅĐĩ ĐŋŅĐąĐģиĐēĐ°ŅииŅĐĩ. ĐĸĐĩ ĐŊŅĐŧĐ° Đ´Đ° ĐŧĐžĐŗĐ°Ņ Đ´Đ° виĐļĐ´Đ°Ņ ĐŋŅĐąĐģиĐēĐ°ŅииŅĐĩ ви иĐģи Đ´Đ° ви ĐŋĐžŅĐģĐĩдваŅ. ĐĸĐĩ ŅĐĩ ĐŧĐžĐŗĐ°Ņ Đ´Đ° ĐēаСваŅ, ŅĐĩ ŅĐ° йиĐģи ĐąĐģĐžĐēиŅĐ°ĐŊи.",
"report.categories.legal": "ĐŅавĐŊи вŅĐŋŅĐžŅи",
@@ -714,10 +715,8 @@
"upload_error.poll": "ĐĐ°ŅваĐŊĐĩŅĐž ĐŊĐ° ŅĐ°ĐšĐģОвĐĩ ĐŊĐĩ Đĩ ĐŋОСвОĐģĐĩĐŊĐž Ņ Đ°ĐŊĐēĐĩŅи.",
"upload_form.audio_description": "ĐĐŋиŅĐĩŅĐĩ Са Ņ
ĐžŅĐ°, ĐēОиŅĐž ŅĐ° ĐŗĐģŅŅ
и иĐģи ŅŅŅĐ´ĐŊĐž ŅŅваŅ",
"upload_form.description": "ĐĐŋиŅĐĩŅĐĩ Са Ņ
ĐžŅĐ°, ĐēОиŅĐž ŅĐ° ŅĐģĐĩĐŋи иĐģи иĐŧĐ°Ņ ŅĐģайО СŅĐĩĐŊиĐĩ",
- "upload_form.description_missing": "ĐŅĐŧĐ° дОйавĐĩĐŊ ĐžĐŋиŅ",
"upload_form.edit": "Đ ĐĩĐ´Đ°ĐēŅиŅĐ°ĐŊĐĩ",
"upload_form.thumbnail": "ĐŅĐžĐŧŅĐŊĐ° ĐŊĐ° ĐŧиĐŊиОйŅаСа",
- "upload_form.undo": "ĐСŅŅиваĐŊĐĩ",
"upload_form.video_description": "ĐĐŋиŅĐĩŅĐĩ Са Ņ
ĐžŅĐ°, ĐēОиŅĐž ŅĐ° ĐŗĐģŅŅ
и иĐģи ŅŅŅĐ´ĐŊĐž ŅŅваŅ, ŅĐģĐĩĐŋи иĐģи иĐŧĐ°Ņ ŅĐģайО СŅĐĩĐŊиĐĩ",
"upload_modal.analyzing_picture": "ĐĄĐŊиĐŧĐēОв Đ°ĐŊĐ°ĐģиСâĻ",
"upload_modal.apply": "ĐŅиĐģĐ°ĐŗĐ°ĐŊĐĩ",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index b6e4fbb96..508caa2f4 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -37,7 +37,6 @@
"account.following": "āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻā§āĻā§",
"account.following_counter": "{count, plural,one {{counter} āĻāĻ¨āĻā§ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ} other {{counter} āĻāĻ¨āĻā§ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ}}",
"account.follows.empty": "āĻāĻ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻāĻžāĻāĻā§ āĻāĻāĻ¨ā§ āĻĢāĻ˛ā§ āĻāĻ°ā§āĻ¨ āĻ¨āĻž.",
- "account.follows_you": "āĻāĻĒāĻ¨āĻžāĻā§ āĻĢāĻ˛ā§ āĻāĻ°ā§",
"account.go_to_profile": "āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ā§ āĻ¯āĻžāĻ¨",
"account.hide_reblogs": "@{name}'āĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĻā§āĻ˛āĻŋ āĻ˛ā§āĻāĻŋā§ā§ āĻĢā§āĻ˛ā§āĻ¨",
"account.in_memoriam": "āĻ¸ā§āĻŽā§āĻ¤āĻŋāĻ¤ā§.",
@@ -86,7 +85,6 @@
"announcement.announcement": "āĻā§āĻˇāĻŖāĻž",
"attachments_list.unprocessed": "(āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ)",
"audio.hide": "āĻ
āĻĄāĻŋāĻ āĻ˛ā§āĻāĻžāĻ¨",
- "autosuggest_hashtag.per_week": "āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸āĻĒā§āĻ¤āĻžāĻšā§ {count}",
"boost_modal.combo": "āĻĒāĻ°ā§āĻ°āĻŦāĻžāĻ° āĻāĻĒāĻ¨āĻŋ {combo} āĻāĻŋāĻĒāĻ˛ā§ āĻāĻāĻŋ āĻāĻ° āĻāĻ¸āĻŦā§ āĻ¨āĻž",
"bundle_column_error.copy_stacktrace": "āĻāĻ°āĻ° āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻĒāĻŋ āĻāĻ°ā§āĻ¨",
"bundle_column_error.error.body": "āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻž āĻĒā§āĻˇā§āĻ āĻžāĻāĻŋ āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋāĨ¤ āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĄā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ āĻŦāĻž āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤",
@@ -143,22 +141,12 @@
"compose_form.lock_disclaimer": "āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ā§ āĻ¤āĻžāĻ˛āĻž āĻĻā§āĻā§āĻž āĻ¨ā§āĻ, āĻ¯ā§ āĻā§āĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻļāĻžāĻ°āĻāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻāĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĨ¤",
"compose_form.lock_disclaimer.lock": "āĻ¤āĻžāĻ˛āĻž āĻĻā§āĻā§āĻž",
"compose_form.placeholder": "āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻāĻžāĻŦāĻā§āĻ¨ ?",
- "compose_form.poll.add_option": "āĻāĻ°ā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨",
"compose_form.poll.duration": "āĻā§āĻāĻā§āĻ°āĻšāĻ¨ā§āĻ° āĻ¸āĻŽā§",
- "compose_form.poll.option_placeholder": "āĻŦāĻŋāĻāĻ˛ā§āĻĒ {number}",
- "compose_form.poll.remove_option": "āĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻŽā§āĻā§ āĻĢā§āĻ˛ā§āĻ¨",
"compose_form.poll.switch_to_multiple": "āĻāĻāĻžāĻ§āĻŋāĻ āĻĒāĻāĻ¨ā§āĻĻ āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻā§āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨",
"compose_form.poll.switch_to_single": "āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻā§āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨",
- "compose_form.publish": "āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻ¨",
"compose_form.publish_form": "āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻ¨",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛ā§ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻ¨",
- "compose_form.sensitive.hide": "āĻāĻ āĻāĻŦāĻŋ āĻŦāĻž āĻāĻŋāĻĄāĻŋāĻāĻāĻŋ āĻ¸āĻāĻŦā§āĻĻāĻ¨āĻļā§āĻ˛ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻ¤ā§",
- "compose_form.sensitive.marked": "āĻāĻ āĻāĻŦāĻŋ āĻŦāĻž āĻāĻŋāĻĄāĻŋāĻāĻāĻŋ āĻ¸āĻāĻŦā§āĻĻāĻ¨āĻļā§āĻ˛ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻž āĻšā§ā§āĻā§",
- "compose_form.sensitive.unmarked": "āĻāĻ āĻāĻŦāĻŋ āĻŦāĻž āĻāĻŋāĻĄāĻŋāĻāĻāĻŋ āĻ¸āĻāĻŦā§āĻĻāĻ¨āĻļā§āĻ˛ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻž āĻšā§āĻ¨āĻŋ",
"compose_form.spoiler.marked": "āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻžāĻ° āĻĒāĻŋāĻāĻ¨ā§ āĻ˛ā§āĻāĻžāĻ¨āĻāĻŋ āĻ˛ā§āĻāĻžāĻ¨ā§ āĻāĻā§",
"compose_form.spoiler.unmarked": "āĻ˛ā§āĻāĻžāĻāĻŋ āĻ˛ā§āĻāĻžāĻ¨ā§ āĻ¨ā§āĻ",
- "compose_form.spoiler_placeholder": "āĻāĻĒāĻ¨āĻžāĻ° āĻ˛ā§āĻāĻž āĻĻā§āĻāĻžāĻ° āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨āĻŦāĻžāĻŖā§ āĻ˛āĻŋāĻā§āĻ¨",
"confirmation_modal.cancel": "āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻāĻ°ā§āĻ¨",
"confirmations.block.block_and_report": "āĻŦā§āĻ˛āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°ā§āĻ¨",
"confirmations.block.confirm": "āĻŦā§āĻ˛āĻ āĻāĻ°ā§āĻ¨",
@@ -325,7 +313,6 @@
"navigation_bar.compose": "āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ āĻ˛āĻŋāĻā§āĻ¨",
"navigation_bar.discover": "āĻā§āĻ°ā§ āĻĻā§āĻā§āĻ¨",
"navigation_bar.domain_blocks": "āĻ˛ā§āĻāĻžāĻ¨ā§ āĻĄā§āĻŽā§āĻ¨āĻā§āĻ˛āĻŋ",
- "navigation_bar.edit_profile": "āĻ¨āĻŋāĻā§āĻ° āĻĒāĻžāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻ¤ā§",
"navigation_bar.explore": "āĻĒāĻ°āĻŋāĻŦā§āĻ°āĻžāĻāĻ¨",
"navigation_bar.favourites": "āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻŽā§āĻš",
"navigation_bar.filters": "āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻļāĻŦā§āĻĻ",
@@ -396,12 +383,7 @@
"poll_button.add_poll": "āĻāĻāĻāĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§",
"poll_button.remove_poll": "āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¤ā§",
"privacy.change": "āĻ˛ā§āĻāĻžāĻ° āĻā§āĻĒāĻ¨ā§ā§āĻ¤āĻž āĻ
āĻŦāĻ¸ā§āĻĨāĻž āĻ āĻŋāĻ āĻāĻ°āĻ¤ā§",
- "privacy.direct.long": "āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ˛ā§āĻ˛ā§āĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻ˛āĻŋāĻāĻ¤ā§",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒāĻ¨āĻžāĻ° āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ˛āĻŋāĻāĻ¤ā§",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯",
- "privacy.unlisted.short": "āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯ āĻ¨ā§",
"refresh": "āĻ¸āĻ¤ā§āĻ āĻāĻ°āĻž",
"regeneration_indicator.label": "āĻāĻ¸āĻā§âĻ",
"regeneration_indicator.sublabel": "āĻāĻĒāĻ¨āĻžāĻ° āĻŦāĻžā§āĻŋāĻ°-āĻ¸āĻŽā§āĻ°ā§āĻāĻž āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§!",
@@ -507,7 +489,6 @@
"upload_form.description": "āĻ¯āĻžāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžā§āĻ¨āĻž āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§",
"upload_form.edit": "āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨",
"upload_form.thumbnail": "āĻĨāĻžāĻŽā§āĻŦāĻ¨ā§āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨",
- "upload_form.undo": "āĻŽā§āĻā§ āĻĢā§āĻ˛āĻ¤ā§",
"upload_form.video_description": "āĻļā§āĻ°āĻŦāĻŖāĻļāĻā§āĻ¤āĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻŦāĻž āĻāĻžāĻā§āĻˇā§āĻˇ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨",
"upload_modal.analyzing_picture": "āĻāĻŋāĻ¤ā§āĻ° āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻā§āĻā§âĻ",
"upload_modal.apply": "āĻĒā§āĻ°ā§ā§āĻ āĻāĻ°ā§āĻ¨",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index 39cd73241..5e83ab4e6 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -1,5 +1,5 @@
{
- "about.blocks": "ServijerioÚ habaskaet",
+ "about.blocks": "ServijerioÚ evezhiet",
"about.contact": "Darempred :",
"about.disclaimer": "Mastodon zo ur meziant frank, open-source hag ur merk marilhet eus Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Abeg dihegerz",
@@ -21,6 +21,8 @@
"account.blocked": "Stanket",
"account.browse_more_on_origin_server": "Furchal pelloc'h war ar profil orin",
"account.cancel_follow_request": "NullaÃą ar reked heuliaÃą",
+ "account.copy": "EilaÃą al liamm war-zu ho profil",
+ "account.direct": "MenegiÃą @{name} ent-prevez",
"account.disable_notifications": "Paouez d'am c'hemenn pa vez embannet traoÚ gant @{name}",
"account.domain_blocked": "Domani stanket",
"account.edit_profile": "KemmaÃą ar profil",
@@ -28,17 +30,18 @@
"account.endorse": "Lakaat war-wel war ar profil",
"account.featured_tags.last_status_at": "Toud diwezhaÃą : {date}",
"account.featured_tags.last_status_never": "Toud ebet",
- "account.featured_tags.title": "PenngerioÚ-klik {name}",
+ "account.featured_tags.title": "HashtagoÚ pennaÃą {name}",
"account.follow": "HeuliaÃą",
+ "account.follow_back": "HeuliaÃą d'ho tro",
"account.followers": "Tud koumanantet",
"account.followers.empty": "Den na heul an implijer¡ez-maÃą c'hoazh.",
"account.followers_counter": "{count, plural, other{{counter} Heulier¡ez}}",
"account.following": "KoumanantoÚ",
"account.following_counter": "{count, plural, one{{counter} C'houmanant} two{{counter} Goumanant} other {{counter} a Goumanant}}",
"account.follows.empty": "An implijer¡ez-maÃą na heul den ebet.",
- "account.follows_you": "Ho heuilh",
"account.go_to_profile": "Gwelet ar profil",
"account.hide_reblogs": "Kuzh skignadennoÚ gant @{name}",
+ "account.in_memoriam": "E koun.",
"account.joined_short": "AmaÃą abaoe",
"account.languages": "CheÃąch ar yezhoÚ koumanantet",
"account.link_verified_on": "Gwiriet eo bet perc'hennidigezh al liamm d'an deiziad-maÃą : {date}",
@@ -50,11 +53,13 @@
"account.mute_notifications_short": "Kuzhat ar c'hemennoÚ",
"account.mute_short": "Kuzhat",
"account.muted": "Kuzhet",
+ "account.no_bio": "Deskrivadur ebet da gaout.",
"account.open_original_page": "DigeriÃą ar bajenn orin",
- "account.posts": "ToudoÚ",
- "account.posts_with_replies": "ToudoÚ ha respontoÚ",
+ "account.posts": "EmbannadurioÚ",
+ "account.posts_with_replies": "EmbannadurioÚ ha respontoÚ",
"account.report": "DisklÃĒriaÃą @{name}",
"account.requested": "O c'hortoz an asant. Klikit evit nullaÃą ar goulenn heuliaÃą",
+ "account.requested_follow": "Gant {name} eo bet goulennet ho heuliaÃą",
"account.share": "SkignaÃą profil @{name}",
"account.show_reblogs": "Diskouez skignadennoÚ @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Toud} two {{counter} Doud} other {{counter} a DoudoÚ}}",
@@ -64,6 +69,7 @@
"account.unendorse": "Paouez da lakaat war-wel war ar profil",
"account.unfollow": "DiheuliaÃą",
"account.unmute": "Diguzhat @{name}",
+ "account.unmute_notifications_short": "Diguzhat ar c'hemennoÚ",
"account.unmute_short": "Diguzhat",
"account_note.placeholder": "Klikit evit ouzhpennaÃą un notenn",
"admin.dashboard.daily_retention": "Feur azdalc'h an implijerien¡ezed dre zeiz goude bezaÃą lakaet o anv",
@@ -71,6 +77,9 @@
"admin.dashboard.retention.average": "Keidenn",
"admin.dashboard.retention.cohort": "Miz an enrolladur",
"admin.dashboard.retention.cohort_size": "Implijerien.erezed nevez",
+ "admin.impact_report.instance_accounts": "ProfiloÚ kontoÚ a vefe dilamet",
+ "admin.impact_report.instance_followers": "Heulierien a gollfe hon implijerien",
+ "admin.impact_report.instance_follows": "Heulierien a gollfe o implijerien",
"alert.rate_limited.message": "Klaskit en-dro a-benn {retry_time, time, medium}.",
"alert.rate_limited.title": "Feur bevennet",
"alert.unexpected.message": "Ur fazi dic'hortozet zo degouezhet.",
@@ -78,7 +87,6 @@
"announcement.announcement": "Kemennad",
"attachments_list.unprocessed": "(ket meret)",
"audio.hide": "Kuzhat ar c'hleved",
- "autosuggest_hashtag.per_week": "{count} bep sizhun",
"boost_modal.combo": "Ar wezh kentaÃą e c'halliot gwaskaÃą war {combo} evit tremen hebiou",
"bundle_column_error.copy_stacktrace": "EilaÃą an danevell fazi",
"bundle_column_error.error.body": "N'haller ket skrammaÃą ar bajenn goulennet. Gallout a ra bezaÃą abalamour d'ur beug er c'hod pe d'ur gudenn keverlec'hded gant ar merdeer.",
@@ -101,8 +109,10 @@
"column.blocks": "Implijer¡ezed¡ien berzet",
"column.bookmarks": "SinedoÚ",
"column.community": "Red-amzer lec'hel",
+ "column.direct": "MenegoÚ prevez",
"column.directory": "Mont a-dreuz ar profiloÚ",
"column.domain_blocks": "Domani berzet",
+ "column.favourites": "MuiaÃą-karet",
"column.follow_requests": "RekedoÚ heuliaÃą",
"column.home": "Degemer",
"column.lists": "ListennoÚ",
@@ -123,28 +133,21 @@
"community.column_settings.remote_only": "Nemet a-bell",
"compose.language.change": "CheÃąch yezh",
"compose.language.search": "Klask yezhoÚ...",
+ "compose.published.body": "Embannet.",
+ "compose.published.open": "DigeriÃą",
+ "compose.saved.body": "Enrollet.",
"compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h",
"compose_form.encryption_warning": "ToudoÚ war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroÚ kizidik dre Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal ho heuliaÃą evit gwelet ho toudoÚ prevez.",
"compose_form.lock_disclaimer.lock": "prennet",
"compose_form.placeholder": "Petra emaoc'h o soÃąjal e-barzh ?",
- "compose_form.poll.add_option": "OuzhpenniÃą un dibab",
"compose_form.poll.duration": "Pad ar sontadeg",
- "compose_form.poll.option_placeholder": "Dibab {number}",
- "compose_form.poll.remove_option": "Lemel an dibab-maÃą",
"compose_form.poll.switch_to_multiple": "KemmaÃą ar sontadeg evit aotren meur a zibab",
"compose_form.poll.switch_to_single": "KemmaÃą ar sontadeg evit aotren un dibab hepken",
- "compose_form.publish": "Embann",
"compose_form.publish_form": "Embann",
- "compose_form.publish_loud": "{publish} !",
- "compose_form.save_changes": "EnrollaÃą ar cheÃąchamantoÚ",
- "compose_form.sensitive.hide": "MerkaÃą ar media evel kizidik",
- "compose_form.sensitive.marked": "Merket eo ar media evel kizidik",
- "compose_form.sensitive.unmarked": "N'eo ket merket ar media evel kizidik",
"compose_form.spoiler.marked": "Kuzhet eo an destenn a-dreÃąv ur c'hemenn",
"compose_form.spoiler.unmarked": "N'eo ket kuzhet an destenn",
- "compose_form.spoiler_placeholder": "Skrivit ho kemenn diwall amaÃą",
"confirmation_modal.cancel": "NullaÃą",
"confirmations.block.block_and_report": "BerzaÃą ha DisklÃĒriaÃą",
"confirmations.block.confirm": "StankaÃą",
@@ -159,6 +162,7 @@
"confirmations.discard_edit_media.message": "Bez ez eus kemmoÚ n'int ket enrollet e deskrivadur ar media pe ar rakwel, nullaÃą anezho evelato?",
"confirmations.domain_block.confirm": "BerzaÃą an domani a-bezh",
"confirmations.domain_block.message": "Ha sur oc'h e fell deoc'h berzaÃą an {domain} a-bezh? PeurvuiaÃą eo trawalc'h berzaÃą pe mudaÃą un nebeud implijer¡ezed¡ien. Ne welot danvez ebet o tont eus an domani-maÃą. Dilamet e vo ar c'houmanantoÚ war an domani-maÃą.",
+ "confirmations.edit.confirm": "KemmaÃą",
"confirmations.logout.confirm": "DigevreaÃą",
"confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreaÃą ?",
"confirmations.mute.confirm": "Kuzhat",
@@ -173,7 +177,9 @@
"conversation.mark_as_read": "MerkaÃą evel lennet",
"conversation.open": "Gwelout ar gaozeadenn",
"conversation.with": "Gant {names}",
+ "copy_icon_button.copied": "Eilet er golver",
"copypaste.copied": "Eilet",
+ "copypaste.copy_to_clipboard": "EilaÃą er golver",
"directory.federated": "Eus ar fedibed anavezet",
"directory.local": "Eus {domain} hepken",
"directory.new_arrivals": "Degouezhet a-nevez",
@@ -210,7 +216,8 @@
"empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.",
"empty_column.explore_statuses": "N'eus tuadur ebet evit c'hoazh. Distroit diwezhatoc'h !",
"empty_column.follow_requests": "N'ho peus reked heuliaÃą ebet c'hoazh. Pa vo resevet unan e teuio war wel amaÃą.",
- "empty_column.hashtag": "N'eus netra er ger-klik-maÃą c'hoazh.",
+ "empty_column.followed_tags": "N'emaoc'h oc'h heuliaÃą hashtag ebet evit poent. Pa vioc'h e vo d'o gwelet amaÃą.",
+ "empty_column.hashtag": "N'eus netra en hashtag-maÃą c'hoazh.",
"empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniÃą {public} pe implijit ar c'hlask evit kregiÃą ganti ha kejaÃą gant implijer¡ien¡ezed all.",
"empty_column.list": "Goullo eo al listenn-maÃą evit c'hoazh. Pa vo embannet toudoÚ nevez gant e izili e teuint war wel amaÃą.",
"empty_column.lists": "N'ho peus roll ebet c'hoazh. Pa vo krouet unan ganeoc'h e vo diskouezet amaÃą.",
@@ -224,7 +231,11 @@
"errors.unexpected_crash.copy_stacktrace": "EilaÃą ar roudoÚ diveugaÃą er golver",
"errors.unexpected_crash.report_issue": "DanevellaÃą ur fazi",
"explore.search_results": "Disoc'hoÚ an enklask",
+ "explore.suggested_follows": "Tud",
"explore.title": "Furchal",
+ "explore.trending_links": "Keleier",
+ "explore.trending_statuses": "EmbannadurioÚ",
+ "explore.trending_tags": "HashtagoÚ",
"filter_modal.added.context_mismatch_title": "Kenarroud digenglotus !",
"filter_modal.added.expired_title": "Sil deuet d'e dermen !",
"filter_modal.added.review_and_configure_title": "ArventennoÚ ar sil",
@@ -238,9 +249,13 @@
"filter_modal.select_filter.subtitle": "Implijout ur rummad a zo anezhaÃą pe krouiÃą unan nevez",
"filter_modal.select_filter.title": "SilaÃą an toud-maÃą",
"filter_modal.title.status": "SilaÃą un toud",
+ "firehose.all": "Pep tra",
+ "firehose.local": "Ar servijer-maÃą",
+ "firehose.remote": "ServijerioÚ all",
"follow_request.authorize": "Aotren",
"follow_request.reject": "Nac'haÃą",
"follow_requests.unlocked_explanation": "Daoust ma n'eo ket ho kont prennet, skipailh {domain} a soÃąj e fellfe deoc'h gwiriekaat pedadennoÚ heuliaÃą deus ar c'hontoÚ-se diwar-zorn.",
+ "followed_tags": "HashtagoÚ o heuliaÃą",
"footer.about": "Diwar-benn",
"footer.directory": "Kavlec'h ar profiloÚ",
"footer.get_app": "PellgargaÃą an arload",
@@ -248,29 +263,40 @@
"footer.keyboard_shortcuts": "BerradennoÚ klavier",
"footer.privacy_policy": "ReolennoÚ prevezded",
"footer.source_code": "Gwelet kod mammenn",
+ "footer.status": "Statud",
"generic.saved": "Enrollet",
"getting_started.heading": "Loc'haÃą",
- "hashtag.column_header.tag_mode.all": "ha {additional}",
+ "hashtag.column_header.tag_mode.all": "ha(g) {additional}",
"hashtag.column_header.tag_mode.any": "pe {additional}",
"hashtag.column_header.tag_mode.none": "hep {additional}",
"hashtag.column_settings.select.no_options_message": "N'eus bet kavet ali ebet",
- "hashtag.column_settings.select.placeholder": "OuzhpennaÃą gerioÚ-klikâĻ",
- "hashtag.column_settings.tag_mode.all": "An holl elfennoÚ-maÃą",
+ "hashtag.column_settings.select.placeholder": "OuzhpennaÃą hashtagoÚâĻ",
+ "hashtag.column_settings.tag_mode.all": "An holl anezho",
"hashtag.column_settings.tag_mode.any": "Unan e mesk anezho",
"hashtag.column_settings.tag_mode.none": "Hini ebet anezho",
"hashtag.column_settings.tag_toggle": "Endelc'her gerioÚ-alc'hwez ouzhpenn evit ar bannad-maÃą",
+ "hashtag.counter_by_uses": "{count, plural, one {{counter} embannadur} other {{counter} embannadur}}",
+ "hashtag.counter_by_uses_today": "{count, plural, one {{counter} embannadur} other {{counter} embannadur}} hiziv",
"hashtag.follow": "HeuliaÃą ar ger-klik",
- "hashtag.unfollow": "DiheuliaÃą ar ger-klik",
+ "hashtag.unfollow": "Paouez heuliaÃą an hashtag",
+ "hashtags.and_other": "âĻ{count, plural, one {hag # all} other {ha # all}}",
+ "home.actions.go_to_explore": "Gwelet petra zo diouzh ar c'hiz",
+ "home.actions.go_to_suggestions": "Kavout tud da heuliaÃą",
"home.column_settings.basic": "Diazez",
"home.column_settings.show_reblogs": "Diskouez ar skignadennoÚ",
"home.column_settings.show_replies": "Diskouez ar respontoÚ",
+ "home.explore_prompt.title": "HomaÃą eo ho pajenn degemer e-barzh Mastodon.",
"home.hide_announcements": "Kuzhat ar c'hemennoÚ",
+ "home.pending_critical_update.body": "Hizivait ho servijer Mastodon kerkent ha ma c'hallit mar plij!",
+ "home.pending_critical_update.link": "Gwelet an hizivadennoÚ",
"home.show_announcements": "Diskouez ar c'hemennoÚ",
"interaction_modal.description.follow": "Gant ur gont Mastodon e c'hellit heuliaÃą {name} evit resev an toudoÚ a embann war ho red degemer.",
"interaction_modal.description.reblog": "Gant ur gont Mastodon e c'hellit skignaÃą an toud-maÃą evit rannaÃą anezhaÃą gant ho heulierien¡ezed.",
"interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'an toud-maÃą.",
+ "interaction_modal.no_account_yet": "N'eo ket war vMastodon?",
"interaction_modal.on_another_server": "War ur servijer all",
"interaction_modal.on_this_server": "War ar servijer-maÃą",
+ "interaction_modal.title.favourite": "OuzhpennaÃą embannadur {name} d'ar re vuiaÃą-karet",
"interaction_modal.title.follow": "HeuliaÃą {name}",
"interaction_modal.title.reblog": "SkignaÃą toud {name}",
"interaction_modal.title.reply": "Respont da doud {name}",
@@ -286,6 +312,8 @@
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "DiskennaÃą er roll",
"keyboard_shortcuts.enter": "DigeriÃą an toud",
+ "keyboard_shortcuts.favourite": "OuzhpennaÃą an embannadur d'ar re vuiaÃą-karet",
+ "keyboard_shortcuts.favourites": "DigeriÃą roll an embannadurioÚ muiaÃą-karet",
"keyboard_shortcuts.federated": "DigeriÃą ar red-amzer kevredet",
"keyboard_shortcuts.heading": "BerradennoÚ klavier",
"keyboard_shortcuts.home": "DigeriÃą ho red-amzer degemer",
@@ -315,6 +343,8 @@
"lightbox.next": "Da-heul",
"lightbox.previous": "A-raok",
"limited_account_hint.action": "Diskouez an aelad memes tra",
+ "limited_account_hint.title": "Kuzhet eo bet ar profil-maÃą gant an evezhierien eus {domain}.",
+ "link_preview.author": "Gant {name}",
"lists.account.add": "OuzhpennaÃą d'al listenn",
"lists.account.remove": "Lemel kuit eus al listenn",
"lists.delete": "Dilemel al listenn",
@@ -329,6 +359,7 @@
"lists.search": "Klask e-touez tud heuliet ganeoc'h",
"lists.subheading": "Ho listennoÚ",
"load_pending": "{count, plural, one {# dra nevez} other {# dra nevez}}",
+ "loading_indicator.label": "O kargaÃąâĻ",
"media_gallery.toggle_visible": "{number, plural, one {Kuzhat ar skeudenn} other {Kuzhat ar skeudenn}}",
"mute_modal.duration": "Padelezh",
"mute_modal.hide_notifications": "Kuzhat kemenadennoÚ eus an implijer-se ?",
@@ -338,12 +369,14 @@
"navigation_bar.bookmarks": "SinedoÚ",
"navigation_bar.community_timeline": "Red-amzer lec'hel",
"navigation_bar.compose": "SkrivaÃą un toud nevez",
+ "navigation_bar.direct": "MenegoÚ prevez",
"navigation_bar.discover": "DizoleiÃą",
"navigation_bar.domain_blocks": "DomanioÚ kuzhet",
- "navigation_bar.edit_profile": "KemmaÃą ar profil",
"navigation_bar.explore": "Furchal",
+ "navigation_bar.favourites": "MuiaÃą-karet",
"navigation_bar.filters": "GerioÚ kuzhet",
"navigation_bar.follow_requests": "PedadoÚ heuliaÃą",
+ "navigation_bar.followed_tags": "HashtagoÚ o heuliaÃą",
"navigation_bar.follows_and_followers": "HeuliadennoÚ ha heulier¡ezed¡ien",
"navigation_bar.lists": "ListennoÚ",
"navigation_bar.logout": "DigennaskaÃą",
@@ -370,6 +403,7 @@
"notifications.column_settings.admin.report": "DisklÃĒriadurioÚ nevez :",
"notifications.column_settings.admin.sign_up": "EnskrivadurioÚ nevez :",
"notifications.column_settings.alert": "KemennoÚ war ar burev",
+ "notifications.column_settings.favourite": "MuiaÃą-karet:",
"notifications.column_settings.filter_bar.advanced": "SkrammaÃą an-holl rummadoÚ",
"notifications.column_settings.filter_bar.category": "Barrenn siloÚ prim",
"notifications.column_settings.filter_bar.show_bar": "Diskouezh barrenn siloÚ",
@@ -387,6 +421,7 @@
"notifications.column_settings.update": "KemmoÚ :",
"notifications.filter.all": "Pep tra",
"notifications.filter.boosts": "SkignadennoÚ",
+ "notifications.filter.favourites": "MuiaÃą-karet",
"notifications.filter.follows": "HeuliaÃą",
"notifications.filter.mentions": "MenegoÚ",
"notifications.filter.polls": "Disoc'hoÚ ar sontadegoÚ",
@@ -400,22 +435,38 @@
"notifications_permission_banner.enable": "Lezel kemennoÚ war ar burev",
"notifications_permission_banner.how_to_control": "Evit reseviÃą kemennoÚ pa ne vez ket digoret Mastodon, lezelit kemennoÚ war ar burev. Gallout a rit kontrollaÃą peseurt eskemmoÚ a c'henel kemennoÚ war ar burev gant ar {icon} nozelenn a-us kentre ma'z int lezelet.",
"notifications_permission_banner.title": "Na vankit netra morse",
+ "onboarding.action.back": "DistreiÃą",
+ "onboarding.actions.back": "DistreiÃą",
"onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed",
+ "onboarding.compose.template": "Salud #Mastodon!",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting pointâyou can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon",
+ "onboarding.profile.display_name": "Anv diskouezet",
+ "onboarding.profile.display_name_hint": "Hoc'h anv klok pe hoc'h anv fentusâĻ",
+ "onboarding.profile.note": "Berr-ha-berr",
+ "onboarding.profile.note_hint": "Gallout a rit @menegiÃą tud all pe #hashtagoÚâĻ",
+ "onboarding.profile.save_and_continue": "EnrollaÃą ha kenderc'hel",
+ "onboarding.profile.upload_avatar": "EnporzhiaÃą ur skeudenn profil",
+ "onboarding.share.lead": "Roit da c'houzout d'an dud e c'hallont ho kavout war vMastondon!",
+ "onboarding.share.message": "Me a zo {username} war #Mastodon! Heuilhit ac'hanon war {url}",
+ "onboarding.share.title": "SkignaÃą ho profil",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip": "Want to skip right ahead?",
+ "onboarding.start.title": "Deuet oc'h a-benn!",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
"onboarding.steps.publish_status.body": "Say hello to the world.",
+ "onboarding.steps.publish_status.title": "Grit hoc'h embannadur kentaÃą",
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
"onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
+ "password_confirmation.mismatching": "DisheÃąvel eo an daou c'her-termen-se",
"picture_in_picture.restore": "Adlakaat",
"poll.closed": "Serret",
"poll.refresh": "Azbevaat",
+ "poll.reveal": "Gwelet an disoc'hoÚ",
"poll.total_people": "{count, plural, one {# den} other {# a zen}}",
"poll.total_votes": "{count, plural, one {# votadenn} other {# votadenn}}",
"poll.vote": "MouezhiaÃą",
@@ -424,16 +475,10 @@
"poll_button.add_poll": "OuzhpennaÃą ur sontadeg",
"poll_button.remove_poll": "Dilemel ar sontadeg",
"privacy.change": "CheÃąch prevezded an toud",
- "privacy.direct.long": "Embann evit an implijer¡ezed¡ien meneget hepken",
- "privacy.direct.short": "Tud meneget hepken",
- "privacy.private.long": "Embann evit ar re a heuilh ac'hanon hepken",
- "privacy.private.short": "Tud koumanantet hepken",
- "privacy.public.long": "Gwelus d'an holl",
"privacy.public.short": "Publik",
- "privacy.unlisted.long": "Gwelus gant an holl, met hep arc'hweladur dizoleiÃą",
- "privacy.unlisted.short": "Anlistennet",
"privacy_policy.last_updated": "Hizivadenn ziwezhaÃą {date}",
"privacy_policy.title": "ReolennoÚ Prevezded",
+ "recommended": "Erbedet",
"refresh": "Freskaat",
"regeneration_indicator.label": "O kargaÃąâĻ",
"regeneration_indicator.sublabel": "War brientiÃą emaÃą ho red degemer!",
@@ -451,6 +496,7 @@
"reply_indicator.cancel": "NullaÃą",
"report.block": "StankaÃą",
"report.block_explanation": "Ne vo ket gwelet toudoÚ ar gont-se ken. Ne welo ket ho toudoÚ ha ne c'hello ket ho heuliaÃą ken. Gouzout a raio eo bet stanket ganeoc'h.",
+ "report.categories.legal": "Lezennel",
"report.categories.other": "All",
"report.categories.spam": "Spam",
"report.categories.violation": "Torret e vez gant an endalc'had unan pe meur a reolenn",
@@ -468,6 +514,7 @@
"report.placeholder": "AskelennoÚ ouzhpenn",
"report.reasons.dislike": "Ne blij ket din",
"report.reasons.dislike_description": "An dra-se na fell ket deoc'h gwelet",
+ "report.reasons.legal": "Enep al lezenn eo",
"report.reasons.other": "Un abeg all eo",
"report.reasons.other_description": "Ar gudenn na glot ket gant ar rummadoÚ all",
"report.reasons.spam": "Spam eo",
@@ -483,16 +530,32 @@
"report.thanks.title": "Ne fell ket deoc'h gwelet an dra-se ?",
"report.thanks.title_actionable": "Trugarez evit bezaÃą disklÃĒriet, emaomp o vont da glask pelloc'h.",
"report.unfollow": "DiheuliaÃą @{name}",
- "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
+ "report_notification.attached_statuses": "{count, plural, one {{count} embannadur} other {{count} embannadur}} stag",
+ "report_notification.categories.legal": "Lezennel",
"report_notification.categories.other": "All",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Torradur da reolennoÚ ar servijer",
"report_notification.open": "DigeriÃą an disklÃĒriadur",
+ "search.no_recent_searches": "Klask nevez ebet",
"search.placeholder": "Klask",
+ "search.quick_action.account_search": "ProfiloÚ a glot gant {x}",
+ "search.quick_action.go_to_account": "Mont d'ar profil {x}",
+ "search.quick_action.go_to_hashtag": "Mont d'an hashtag {x}",
+ "search.quick_action.open_url": "DigeriÃą an URL e-barzh Mastodon",
+ "search.quick_action.status_search": "EmbannadurioÚ a glot gant {x}",
"search.search_or_paste": "Klask pe pegaÃą un URL",
+ "search_popout.full_text_search_disabled_message": "N'eo ket da gaout war {domain}.",
+ "search_popout.language_code": "Kod yezh ISO",
+ "search_popout.options": "DibarzhioÚ klask",
+ "search_popout.quick_actions": "OberoÚ prim",
+ "search_popout.recent": "KlaskoÚ nevesaÃą",
+ "search_popout.specific_date": "deiziad resis",
+ "search_popout.user": "implijer¡ez",
+ "search_results.accounts": "ProfiloÚ",
"search_results.all": "Pep tra",
- "search_results.hashtags": "GerioÚ-klik",
+ "search_results.hashtags": "HashtagoÚ",
"search_results.nothing_found": "Disoc'h ebet gant ar gerioÚ-se",
+ "search_results.see_all": "Gwelet pep tra",
"search_results.statuses": "ToudoÚ",
"search_results.title": "Klask {q}",
"server_banner.active_users": "implijerien¡ezed oberiant",
@@ -501,8 +564,10 @@
"server_banner.server_stats": "StadegoÚ ar servijer :",
"sign_in_banner.create_account": "KrouiÃą ur gont",
"sign_in_banner.sign_in": "KevreaÃą",
- "status.admin_account": "DigeriÃą etrefas evezherezh evit @{name}",
- "status.admin_status": "DigeriÃą an toud e-barzh an etrefas evezherezh",
+ "sign_in_banner.sso_redirect": "KennaskaÃą pe lakaat hoc'h anv",
+ "status.admin_account": "DigeriÃą etrefas evezhiaÃą evit @{name}",
+ "status.admin_domain": "DigeriÃą an etrefas evezhiaÃą evit {domain}",
+ "status.admin_status": "DigeriÃą an embannadenn e-barzh an etrefas evezhiaÃą",
"status.block": "BerzaÃą @{name}",
"status.bookmark": "OuzhpennaÃą d'ar sinedoÚ",
"status.cancel_reblog_private": "Nac'haÃą ar skignadenn",
@@ -510,15 +575,21 @@
"status.copy": "EilaÃą liamm ar c'hannad",
"status.delete": "Dilemel",
"status.detailed_status": "Gwel kaozeadenn munudek",
+ "status.direct": "MenegiÃą @{name} ent-prevez",
+ "status.direct_indicator": "Meneg prevez",
"status.edit": "KemmaÃą",
"status.edited": "Aozet {date}",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
"status.embed": "EnframmaÃą",
+ "status.favourite": "MuiaÃą-karet",
"status.filter": "SilaÃą ar c'hannad-maÃą",
"status.filtered": "Silet",
+ "status.hide": "Kuzhat an embannadur",
"status.history.created": "Krouet gant {name} {date}",
"status.history.edited": "Kemmet gant {name} {date}",
"status.load_more": "KargaÃą muioc'h",
+ "status.media.open": "Klikit evit digeriÃą",
+ "status.media.show": "Klikit evit diskouez",
"status.media_hidden": "Media kuzhet",
"status.mention": "MenegiÃą @{name}",
"status.more": "Muioc'h",
@@ -549,6 +620,7 @@
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.translate": "TreiÃą",
"status.translated_from_with": "Troet diwar {lang} gant {provider}",
+ "status.uncached_media_warning": "Rakwel n'eo ket da gaout",
"status.unmute_conversation": "Diguzhat ar gaozeadenn",
"status.unpin": "DispilhennaÃą eus ar profil",
"subscribed_languages.save": "EnrollaÃą ar cheÃąchamantoÚ",
@@ -576,10 +648,8 @@
"upload_error.poll": "PellgargaÃą restroÚ n'eo ket aotreet gant sontadegoÚ.",
"upload_form.audio_description": "DiskrivaÃą evit tud a zo kollet o c'hlev",
"upload_form.description": "DiskrivaÃą evit tud a zo kollet o gweled",
- "upload_form.description_missing": "Deskrivadur diank",
"upload_form.edit": "KemmaÃą",
"upload_form.thumbnail": "KemmaÃą ar velvenn",
- "upload_form.undo": "Dilemel",
"upload_form.video_description": "DiskrivaÃą evit tud a zo kollet o gweled pe o c'hlev",
"upload_modal.analyzing_picture": "O tielfennaÃą ar skeudennâĻ",
"upload_modal.apply": "ArloaÃą",
@@ -593,6 +663,7 @@
"upload_modal.preview_label": "Rakwel ({ratio})",
"upload_progress.label": "O pellgargaÃą...",
"upload_progress.processing": "War oberâĻ",
+ "username.taken": "Tapet eo an anv implijer-maÃą dija. Klaskit skrivaÃą unan all",
"video.close": "SerriÃą ar video",
"video.download": "PellgargaÃą ar restr",
"video.exit_fullscreen": "Kuitaat ar mod skramm leun",
diff --git a/app/javascript/mastodon/locales/bs.json b/app/javascript/mastodon/locales/bs.json
index 9b6b49c3d..c978a8b01 100644
--- a/app/javascript/mastodon/locales/bs.json
+++ b/app/javascript/mastodon/locales/bs.json
@@ -66,8 +66,6 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "Adjust status privacy",
- "privacy.direct.short": "Direct",
- "privacy.private.short": "Followers-only",
"report.placeholder": "Type or paste additional comments",
"report.submit": "Submit report",
"report.target": "Report {target}",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 5ae49325f..0d089bf8b 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "No hi ha tuts",
"account.featured_tags.title": "etiquetes destacades de {name}",
"account.follow": "Segueix",
+ "account.follow_back": "Segueix tu tambÊ",
"account.followers": "Seguidors",
"account.followers.empty": "A aquest usuari encara no el segueix ningÃē.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} Seguidors}}",
"account.following": "Seguint",
"account.following_counter": "{count, plural, other {{counter} Seguint-ne}}",
"account.follows.empty": "Aquest usuari encara no segueix ningÃē.",
- "account.follows_you": "Et segueix",
"account.go_to_profile": "VÊs al perfil",
"account.hide_reblogs": "Amaga els impulsos de @{name}",
"account.in_memoriam": "En MemÃ˛ria.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silencia les notificacions",
"account.mute_short": "Silencia",
"account.muted": "Silenciat",
+ "account.mutual": "Mutu",
"account.no_bio": "No s'ha proporcionat cap descripciÃŗ.",
"account.open_original_page": "Obre la pà gina original",
"account.posts": "Tuts",
@@ -88,7 +89,6 @@
"announcement.announcement": "Anunci",
"attachments_list.unprocessed": "(sense processar)",
"audio.hide": "Amaga l'Ã udio",
- "autosuggest_hashtag.per_week": "{count} per setmana",
"boost_modal.combo": "Pots prÊmer {combo} per a evitar-ho el prÃ˛xim cop",
"bundle_column_error.copy_stacktrace": "Copia l'informe d'error",
"bundle_column_error.error.body": "No s'ha pogut renderitzar la pà gina sol¡licitada. Podria ser per un error en el nostre codi o per un problema de compatibilitat del navegador.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure els tuts de nomÊs per a seguidors.",
"compose_form.lock_disclaimer.lock": "blocat",
"compose_form.placeholder": "Què tens al cap?",
- "compose_form.poll.add_option": "Afegeix una opciÃŗ",
+ "compose_form.poll.add_option": "Afegiu una opciÃŗ",
"compose_form.poll.duration": "Durada de l'enquesta",
+ "compose_form.poll.multiple": "Opcions mÃēltiples",
"compose_form.poll.option_placeholder": "OpciÃŗ {number}",
- "compose_form.poll.remove_option": "Elimina aquesta opciÃŗ",
- "compose_form.poll.switch_to_multiple": "Canvia lâenquesta per a permetre diverses opcions",
+ "compose_form.poll.remove_option": "Treu aquesta opciÃŗ",
+ "compose_form.poll.single": "Trieu-ne una",
+ "compose_form.poll.switch_to_multiple": "Canvia lâenquesta per a permetre mÃēltiples opcions",
"compose_form.poll.switch_to_single": "Canvia lâenquesta per a permetre una Ãēnica opciÃŗ",
- "compose_form.publish": "Tut",
+ "compose_form.poll.type": "Estil",
+ "compose_form.publish": "Publica",
"compose_form.publish_form": "Nou tut",
- "compose_form.publish_loud": "Tut!",
- "compose_form.save_changes": "Desa els canvis",
- "compose_form.sensitive.hide": "{count, plural, one {Marca mèdia com a sensible} other {Marca mèdia com a sensible}}",
- "compose_form.sensitive.marked": "{count, plural, one {Contingut marcat com a sensible} other {Contingut marcat com a sensible}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Contingut no marcat com a sensible} other {Contingut no marcat com a sensible}}",
+ "compose_form.reply": "Responeu",
+ "compose_form.save_changes": "Actualitza",
"compose_form.spoiler.marked": "Elimina l'avÃs de contingut",
"compose_form.spoiler.unmarked": "Afegeix avÃs de contingut",
- "compose_form.spoiler_placeholder": "Escriu l'avÃs aquÃ",
+ "compose_form.spoiler_placeholder": "AvÃs de contingut (opcional)",
"confirmation_modal.cancel": "Cancel¡la",
"confirmations.block.block_and_report": "Bloca i denuncia",
"confirmations.block.confirm": "Bloca",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Mencions privades",
"navigation_bar.discover": "Descobreix",
"navigation_bar.domain_blocks": "Dominis blocats",
- "navigation_bar.edit_profile": "Edita el perfil",
"navigation_bar.explore": "Explora",
"navigation_bar.favourites": "Favorits",
"navigation_bar.filters": "Paraules silenciades",
@@ -520,19 +519,17 @@
"poll.total_people": "{count, plural, one {# persona} other {# persones}}",
"poll.total_votes": "{count, plural, one {# vot} other {# vots}}",
"poll.vote": "Vota",
- "poll.voted": "Vas votar per aquesta resposta",
+ "poll.voted": "Vau votar aquesta resposta",
"poll.votes": "{votes, plural, one {# vot} other {# vots}}",
"poll_button.add_poll": "Afegeix una enquesta",
"poll_button.remove_poll": "Elimina l'enquesta",
"privacy.change": "Canvia la privacitat del tut",
- "privacy.direct.long": "Visible nomÊs per als usuaris esmentats",
- "privacy.direct.short": "NomÊs gent mencionada",
- "privacy.private.long": "Visible nomÊs per als seguidors",
- "privacy.private.short": "NomÊs seguidors",
- "privacy.public.long": "Visible per a tothom",
+ "privacy.direct.long": "Tothom mencionat en aquesta publicaciÃŗ",
+ "privacy.direct.short": "Persones concretes",
+ "privacy.private.long": "NomÊs els vostres seguidors",
+ "privacy.private.short": "Seguidors",
+ "privacy.public.long": "Tothom dins o fora Mastodon",
"privacy.public.short": "PÃēblic",
- "privacy.unlisted.long": "Visible per a tothom perÃ˛ exclosa de les funcions de descobriment",
- "privacy.unlisted.short": "No llistada",
"privacy_policy.last_updated": "Darrera actualitzaciÃŗ {date}",
"privacy_policy.title": "PolÃtica de Privacitat",
"recommended": "Recomanat",
@@ -606,7 +603,7 @@
"search.quick_action.status_search": "Tuts coincidint amb {x}",
"search.search_or_paste": "Cerca o escriu l'URL",
"search_popout.full_text_search_disabled_message": "No disponible a {domain}.",
- "search_popout.full_text_search_logged_out_message": "NomÊs disponible en iniciar la sessiÃŗ.",
+ "search_popout.full_text_search_logged_out_message": "NomÊs disponible amb la sessiÃŗ iniciada.",
"search_popout.language_code": "Codi de llengua ISO",
"search_popout.options": "Opcions de cerca",
"search_popout.quick_actions": "Accions rà pides",
@@ -714,10 +711,8 @@
"upload_error.poll": "No es permet carregar fitxers a les enquestes.",
"upload_form.audio_description": "Descriu-ho per a persones amb problemes d'audiciÃŗ",
"upload_form.description": "Descriu-ho per a persones amb problemes de visiÃŗ",
- "upload_form.description_missing": "No s'hi ha afegit cap descripciÃŗ",
"upload_form.edit": "Edita",
"upload_form.thumbnail": "Canvia la miniatura",
- "upload_form.undo": "Elimina",
"upload_form.video_description": "Descriu-ho per a persones amb problemes de visiÃŗ o audiciÃŗ",
"upload_modal.analyzing_picture": "S'analitza la imatgeâĻ",
"upload_modal.apply": "Aplica",
diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json
index 7e9641832..73910f9b7 100644
--- a/app/javascript/mastodon/locales/ckb.json
+++ b/app/javascript/mastodon/locales/ckb.json
@@ -36,7 +36,6 @@
"account.following": "بÛدŲادا",
"account.following_counter": "{count, plural, one {{counter} Ø´ŲÛŲÚŠÛŲØĒŲŲ} other {{counter} Ø´ŲÛŲÚŠÛŲØĒŲŲ}}",
"account.follows.empty": "ØĻÛŲ
بÛÚŠØ§ØąŲÛŲÛØąÛ ØĒا ØĻÛØŗØĒا Ø´ŲÛŲ ÚŠÛØŗ ŲÛÚŠÛŲØĒŲŲÛ.",
- "account.follows_you": "Ø´ŲÛŲØĒ دÛÚŠÛŲÛØĒ",
"account.go_to_profile": "بÚÛ Ø¨Û ŲžÚÛŲاÛŲÛ",
"account.hide_reblogs": "Ø¯Ø§Ø´Ø§ØąØ¯ŲÛ Ø¨ŲŲØŗØĒÛڊاŲ ŲÛ @{name}",
"account.joined_short": "بÛØ´Ø¯Ø§ØąÛ ÚŠØąØ¯ŲŲÛ",
@@ -77,7 +76,6 @@
"announcement.announcement": "باŲÚ¯ÛŲØ§Ø˛",
"attachments_list.unprocessed": "(unprocessed)",
"audio.hide": "Ø´Ø§ØąØ¯ŲÛŲÛÛ Ø¯ÛŲÚ¯",
- "autosuggest_hashtag.per_week": "{count} ŲÛØąŲÛŲØĒÛ",
"boost_modal.combo": "دÛØĒŲاŲÛØĒ دÛØŗØĒ بŲÛÛ Ø¨Û ØŗÛØą {combo} Ø¨Û Ø¨Ø§Ø˛Ø¯Ø§Ų ŲÛ ØŦØ§ØąÛ Ø¯Ø§ŲاØĒŲŲ",
"bundle_column_error.copy_stacktrace": "ÚاŲžÛØąØĒÛ ŲÛÚĩÛÛ ÚŠÛŲžÛ بڊÛ",
"bundle_column_error.error.body": "ŲاŲžÛÚÛÛ Ø¯Ø§ŲØ§ÚŠØąØ§Ų ŲÛØĒŲاŲØąØ§ ÚÛŲدÛØą Ø¨ÚŠØąÛØĒ. دÛÚŠØąÛØĒ بÛŲÛÛ ŲÛÚĩÛÛÛÚŠÛ ÚŠÛدÛÚŠÛŲ
اŲÛŲÛ Ø¨ÛØĒØ ÛاŲ ÚŠÛØ´ÛÛ Ú¯ŲŲØŦاŲÛ ŲÛبگÛÚ.",
@@ -129,22 +127,12 @@
"compose_form.lock_disclaimer": "ŲÛÚŲ
ÛØąÛÚŠÛÛ ŲÛ ØاÚĩÛØĒÛ {locked}. ŲÛØą ÚŠÛØŗÛÚŠ دÛØĒŲاŲÛØĒ Ø´ŲÛŲØĒ بڊÛŲÛØĒ Ø¨Û ŲžÛشاŲداŲÛ Ø¨Ø§Ø¨ÛØĒÛڊاŲÛ ØĒÛŲŲا دŲاÛØŽÛÛ.",
"compose_form.lock_disclaimer.lock": "ŲŲÚĩ Ø¯ØąØ§ŲÛ",
"compose_form.placeholder": "ÚÛ ŲÛ Ų
ÛØ´ÚŠØĒداÛÛ?",
- "compose_form.poll.add_option": "Ø˛ÛØ§Ø¯ÚŠØąØ¯ŲÛ ŲÛÚĩبÚØ§ØąØ¯ÛÛÛÚŠ",
"compose_form.poll.duration": "Ų
اŲÛÛ ÚاŲžØąØŗÛ",
- "compose_form.poll.option_placeholder": "ŲÛÚĩبÚØ§ØąØ¯Ų {number}",
- "compose_form.poll.remove_option": "ŲØ§Ø¨ØąØ¯ŲÛ ØĻÛŲ
ŲÛÚĩبÚØ§ØąØ¯ÛÛÛ",
"compose_form.poll.switch_to_multiple": "ÚاŲžØąØŗÛ Ø¨Ú¯ÛÚÛ Ø¨Û ÚÛÚ¯ÛداŲ Ø¨Û ÚÛŲد ŲÛÚĩبÚØ§ØąØ¯ŲÛÚŠ",
"compose_form.poll.switch_to_single": "Ú¯ÛÚÛŲÛ ÚاŲžØąØŗÛ Ø¨Û ÚÛÚ¯ÛداŲ Ø¨Û ØĒØ§ÚŠÛ ŲÛÚĩبÚØ§ØąØ¯ŲÛÚŠ",
- "compose_form.publish": "بÚĩاŲÛ Ø¨ÚŠÛŲÛ",
"compose_form.publish_form": "بÚĩاŲÛ Ø¨ÚŠÛŲÛ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ŲžØ§Ø´ÚŠÛŲØĒÛ Ú¯ÛÚاŲÚŠØ§ØąÛÛڊاŲ",
- "compose_form.sensitive.hide": "ŲÛشاŲÚŠØąØ¯ŲÛ Ų
ÛدÛا ŲÛÚŠ ŲÛØŗØĒÛØ§Øą",
- "compose_form.sensitive.marked": "ŲادÛÛ ÚŠÛØĒاÛÛ",
- "compose_form.sensitive.unmarked": "Ų
ÛدÛا ŲÛÚŠ ŲÛØŗØĒÛØ§Øą ŲÛشاŲ ŲÛÚŠØąØ§ŲÛ",
"compose_form.spoiler.marked": "دÛŲ ŲÛ ŲžØ´ØĒ ØĻØ§Ú¯Ø§Ø¯Ø§ØąÛدا Ø´Ø§ØąØ§ŲÛØĒÛŲÛ",
"compose_form.spoiler.unmarked": "دÛŲ Ø´Ø§ØąØ§ŲÛ ŲÛÛÛ",
- "compose_form.spoiler_placeholder": "ØĻØ§Ú¯Ø§Ø¯Ø§ØąÛÛÚŠÛØĒ ŲÛØąÛ Ø¨ŲŲŲØŗÛ",
"confirmation_modal.cancel": "ŲÛÚĩŲÛشاŲدŲÛŲŲ",
"confirmations.block.block_and_report": "بŲÛÚŠ & Ú¯ŲØ˛Ø§ØąØ´ØĒ",
"confirmations.block.confirm": "بŲÛÚŠ",
@@ -355,7 +343,6 @@
"navigation_bar.direct": "ØĻاŲ
اÚÛÛ ØĒاÛبÛØĒ",
"navigation_bar.discover": "دÛØ˛ÛŲÛŲÛ",
"navigation_bar.domain_blocks": "دÛŲ
ÛÛŲÛ Ø¨ŲÛÚŠ ÚŠØąØ§ŲÛڊاŲ",
- "navigation_bar.edit_profile": "دÛØŗØĒÚŠØ§ØąÛ ŲžØąÛŲاÛŲ بڊÛ",
"navigation_bar.explore": "Ú¯ÛÚاŲ",
"navigation_bar.filters": "ŲØ´Û ÚŠŲžÛڊاŲ",
"navigation_bar.follow_requests": "بÛدŲاداÚŲÛ Ø¯Ø§ŲØ§ÚŠØ§ØąÛÛڊاŲ بڊÛ",
@@ -440,14 +427,7 @@
"poll_button.add_poll": "ÚاŲžØąØŗÛÛÛÚŠ Ø˛Ûاد بڊÛ",
"poll_button.remove_poll": "دŲâŲگداŲ بØŗÚŲâŲŲââ",
"privacy.change": "ÚÛÚŠØŽØŗØĒŲÛ ØĒاÛبÛØĒŲ
ÛŲØ¯Û ØĒŲØĒ",
- "privacy.direct.long": "ØĒÛŲÛا Ø¨Û Ø¨ÛÚŠØ§ØąŲÛŲÛØąØ§ŲÛ ŲاŲØ¨ØąØ§Ų",
- "privacy.direct.short": "ØĒÛŲŲا ÚŠÛØŗاŲÛ Ø¨Ø§Øŗ ÚŠØąØ§Ų",
- "privacy.private.long": "بÛŲØąØ§Ų ØĒÛŲŲا Ø¨Û Ø´ŲÛŲÚŠÛŲØĒŲاŲ",
- "privacy.private.short": "ØĒÛŲÛا Ø´ŲÛŲÚŠÛŲØĒŲŲاŲ",
- "privacy.public.long": "Ø¨Û ŲÛŲ
ŲŲاŲ دÛØ§ØąÛ",
"privacy.public.short": "گشØĒÛ",
- "privacy.unlisted.long": "Ø¨Û ŲÛŲ
ŲŲاŲ دÛØ§ØąÛØ Ø¨ÛÚĩاŲ
ŲÛ ØĒاÛبÛØĒŲ
ÛŲدÛÛÛڊاŲÛ Ø¯ÛØ˛ÛŲÛŲÛ Ø¯ÛØąÚŲŲÛ",
- "privacy.unlisted.short": "ŲÛ ŲÛØŗØĒ ŲÛÚŠØąØ§Ų",
"privacy_policy.last_updated": "دŲاÛÛŲ ŲŲÛÚŠØąØ¯ŲÛŲÛ {date}",
"privacy_policy.title": "ØŗÛاØŗÛØĒÛ ØĒاÛبÛØĒÛØĒÛ",
"refresh": "ŲŲÛÚŠØąØ¯ŲÛŲÛ",
@@ -611,10 +591,8 @@
"upload_error.poll": "ŲاÛŲ Ų ÚاŲžØąØŗÛ ŲžÛÚŠÛŲÛ ÚÛŲžÛŲÛØ¯ØąØ§ŲŲ.",
"upload_form.audio_description": "ŲžÛÛاŲ
ÛÚŠÛØĒ Ø¨Û ŲابÛØŗØĒÛڊاŲ",
"upload_form.description": "ŲžÛÛاŲ
ÛÚŠÛØĒ Ø¨Û ŲابÛŲاڊاŲ",
- "upload_form.description_missing": "ŲÛÚ ŲÛØŗŲÛÚŠ Ø˛Ûاد ŲÛÚŠØąØ§ŲÛ",
"upload_form.edit": "دÛØŗØĒÚŠØ§ØąÛ",
"upload_form.thumbnail": "Ú¯ÛÚاŲÛ ŲÛŲÛÚÚŠÛ",
- "upload_form.undo": "بÛØŗÚÛŲÛ",
"upload_form.video_description": "ŲžÛÛاŲ
ÛÚŠÛØĒ Ø¨Û ŲابÛØŗØĒ Ų ŲابÛŲاڊاŲ",
"upload_modal.analyzing_picture": "ŲÛŲÛÚŠÛ Ø´Û Ø¯ÛÚŠØąÛØĒÛŲÛâĻ",
"upload_modal.apply": "بÛØŗÛŲžÛŲÛ",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index d4bb2f82b..9d0b0306c 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -19,7 +19,6 @@
"account.followers_counter": "{count, plural, one {{counter} Abbunatu} other {{counter} Abbunati}}",
"account.following_counter": "{count, plural, one {{counter} Abbunamentu} other {{counter} Abbunamenti}}",
"account.follows.empty": "St'utilizatore Ún seguita nisunu.",
- "account.follows_you": "Vi seguita",
"account.hide_reblogs": "Piattà spartere da @{name}",
"account.link_verified_on": "A prupietà di stu ligame hè stata verificata u {date}",
"account.locked_info": "U statutu di vita privata di u contu hè chjosu. U pruprietariu esamina manualmente e dumande d'abbunamentu.",
@@ -46,7 +45,6 @@
"alert.unexpected.title": "Uups!",
"announcement.announcement": "Annunziu",
"attachments_list.unprocessed": "(micca trattata)",
- "autosuggest_hashtag.per_week": "{count} per settimana",
"boost_modal.combo": "Pudete appughjà nant'à {combo} per saltà quessa a prussima volta",
"bundle_column_error.retry": "Pruvà torna",
"bundle_modal_error.close": "Chjudà ",
@@ -81,20 +79,12 @@
"compose_form.lock_disclaimer": "U vostru contu Ún hè micca {locked}. Tuttu u mondu pÃ˛ seguitavi è vede i vostri statuti privati.",
"compose_form.lock_disclaimer.lock": "privatu",
"compose_form.placeholder": "à chè pensate?",
- "compose_form.poll.add_option": "Aghjunghje scelta",
"compose_form.poll.duration": "Durata di u scandagliu",
- "compose_form.poll.option_placeholder": "Scelta {number}",
- "compose_form.poll.remove_option": "Toglie sta scelta",
"compose_form.poll.switch_to_multiple": "Cambià u scandagliu per accittà parechje scelte",
"compose_form.poll.switch_to_single": "Cambià u scandagliu per Ún accittà ch'una scelta",
"compose_form.publish_form": "Publish",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.sensitive.hide": "{count, plural, one {Indicà u media cum'è sensibile} other {Indicà i media cum'è sensibili}}",
- "compose_form.sensitive.marked": "{count, plural, one {Media indicatu cum'è sensibile} other {Media indicati cum'è sensibili}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Media micca indicatu cum'è sensibile} other {Media micca indicati cum'è sensibili}}",
"compose_form.spoiler.marked": "Testu piattatu daret'Ã un'avertimentu",
"compose_form.spoiler.unmarked": "Testu micca piattatu",
- "compose_form.spoiler_placeholder": "Scrive u vostr'avertimentu quÃŦ",
"confirmation_modal.cancel": "Annullà ",
"confirmations.block.block_and_report": "Bluccà è signalà ",
"confirmations.block.confirm": "Bluccà ",
@@ -246,7 +236,6 @@
"navigation_bar.compose": "Scrive un novu statutu",
"navigation_bar.discover": "Scopre",
"navigation_bar.domain_blocks": "Duminii piattati",
- "navigation_bar.edit_profile": "Mudificà u prufile",
"navigation_bar.filters": "Parolle silenzate",
"navigation_bar.follow_requests": "Dumande d'abbunamentu",
"navigation_bar.follows_and_followers": "Abbunati è abbunamenti",
@@ -319,12 +308,7 @@
"poll_button.add_poll": "Aghjunghje",
"poll_button.remove_poll": "Toglie u scandagliu",
"privacy.change": "Mudificà a cunfidenzialità di u statutu",
- "privacy.direct.long": "Mandà solu à quelli chÃŦ so mintuvati",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Mustrà solu à l'abbunati",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "Pubblicu",
- "privacy.unlisted.short": "Micca listatu",
"refresh": "Attualizà ",
"regeneration_indicator.label": "CaricamentuâĻ",
"regeneration_indicator.sublabel": "Priparazione di a vostra pagina d'accolta!",
@@ -410,7 +394,6 @@
"upload_form.description": "Discrizzione per i malvistosi",
"upload_form.edit": "Mudificà ",
"upload_form.thumbnail": "Cambià vignetta",
- "upload_form.undo": "Sguassà ",
"upload_form.video_description": "Discrizzione per i ciochi o cechi",
"upload_modal.analyzing_picture": "Analisi di u ritrattuâĻ",
"upload_modal.apply": "Affettà ",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index 16bf5020c..7d91670de 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -38,7 +38,6 @@
"account.following": "Sledujete",
"account.following_counter": "{count, plural, one {{counter} SledovanÃŊ} few {{counter} SledovanÃ} many {{counter} SledovanÃŊch} other {{counter} SledovanÃŊch}}",
"account.follows.empty": "Tento uÅživatel zatÃm nikoho nesleduje.",
- "account.follows_you": "Sleduje vÃĄs",
"account.go_to_profile": "PÅejÃt na profil",
"account.hide_reblogs": "SkrÃŊt boosty od @{name}",
"account.in_memoriam": "In Memoriam.",
@@ -88,7 +87,6 @@
"announcement.announcement": "OznÃĄmenÃ",
"attachments_list.unprocessed": "(nezpracovÃĄno)",
"audio.hide": "SkrÃŊt zvuk",
- "autosuggest_hashtag.per_week": "{count} za tÃŊden",
"boost_modal.combo": "PÅÃÅĄtÄ můŞete pro pÅeskoÄenà stisknout {combo}",
"bundle_column_error.copy_stacktrace": "ZkopÃrovat zprÃĄvu o chybÄ",
"bundle_column_error.error.body": "PoÅžadovanou strÃĄnku nelze vykreslit. MůŞe to bÃŊt způsobeno chybou v naÅĄem kÃŗdu nebo problÊmem s kompatibilitou prohlÃÅžeÄe.",
@@ -145,22 +143,12 @@
"compose_form.lock_disclaimer": "VÃĄÅĄ ÃēÄet nenà {locked}. Kdokoliv vÃĄs můŞe sledovat a vidÄt vaÅĄe pÅÃspÄvky uÄenÊ pouze pro sledujÃcÃ.",
"compose_form.lock_disclaimer.lock": "zamÄenÃŊ",
"compose_form.placeholder": "Co se vÃĄm honà hlavou?",
- "compose_form.poll.add_option": "PÅidat volbu",
"compose_form.poll.duration": "Doba trvÃĄnà ankety",
- "compose_form.poll.option_placeholder": "Volba {number}",
- "compose_form.poll.remove_option": "Odebrat tuto volbu",
"compose_form.poll.switch_to_multiple": "Povolit u ankety vÃŊbÄr vÃce voleb",
"compose_form.poll.switch_to_single": "Povolit u ankety vÃŊbÄr pouze jednÊ volby",
- "compose_form.publish": "ZveÅejnit",
"compose_form.publish_form": "ZveÅejnit",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "UloÅžit zmÄny",
- "compose_form.sensitive.hide": "{count, plural, one {OznaÄit mÊdia za citlivÃĄ} few {OznaÄit mÊdia za citlivÃĄ} many {OznaÄit mÊdia za citlivÃĄ} other {OznaÄit mÊdia za citlivÃĄ}}",
- "compose_form.sensitive.marked": "{count, plural, one {MÊdia jsou oznaÄena za citlivÃĄ} few {MÊdia jsou oznaÄena za citlivÃĄ} many {MÊdia jsou oznaÄena za citlivÃĄ} other {MÊdia jsou oznaÄena za citlivÃĄ}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {MÊdia nejsou oznaÄena za citlivÃĄ} few {MÊdia nejsou oznaÄena za citlivÃĄ} many {MÊdia nejsou oznaÄena za citlivÃĄ} other {MÊdia nejsou oznaÄena za citlivÃĄ}}",
"compose_form.spoiler.marked": "Odebrat varovÃĄnà o obsahu",
"compose_form.spoiler.unmarked": "PÅidat varovÃĄnà o obsahu",
- "compose_form.spoiler_placeholder": "Sem napiÅĄte vaÅĄe varovÃĄnÃ",
"confirmation_modal.cancel": "ZruÅĄit",
"confirmations.block.block_and_report": "Blokovat a nahlÃĄsit",
"confirmations.block.confirm": "Blokovat",
@@ -402,7 +390,6 @@
"navigation_bar.direct": "SoukromÊ zmÃnky",
"navigation_bar.discover": "Objevit",
"navigation_bar.domain_blocks": "BlokovanÊ domÊny",
- "navigation_bar.edit_profile": "Upravit profil",
"navigation_bar.explore": "Prozkoumat",
"navigation_bar.favourites": "OblÃbenÊ",
"navigation_bar.filters": "SkrytÃĄ slova",
@@ -509,14 +496,7 @@
"poll_button.add_poll": "PÅidat anketu",
"poll_button.remove_poll": "Odebrat anketu",
"privacy.change": "ZmÄnit soukromà pÅÃspÄvku",
- "privacy.direct.long": "ViditelnÃŊ pouze pro zmÃnÄnÊ uÅživatele",
- "privacy.direct.short": "Pouze zmÃnÄnà lidÊ",
- "privacy.private.long": "ViditelnÃŊ pouze pro sledujÃcÃ",
- "privacy.private.short": "Pouze sledujÃcÃ",
- "privacy.public.long": "ViditelnÃŊ pro vÅĄechny",
"privacy.public.short": "VeÅejnÊ",
- "privacy.unlisted.long": "ViditelnÃŊ pro vÅĄechny, ale vyÅat z funkcà objevovÃĄnÃ",
- "privacy.unlisted.short": "NeveÅejnÃŊ",
"privacy_policy.last_updated": "Naposledy aktualizovÃĄno {date}",
"privacy_policy.title": "ZÃĄsady ochrany osobnÃch Ãēdajů",
"refresh": "Obnovit",
@@ -696,10 +676,8 @@
"upload_error.poll": "NahrÃĄvÃĄnà souborů nenà povoleno s anketami.",
"upload_form.audio_description": "Popis pro sluchovÄ postiÅženÊ",
"upload_form.description": "Popis pro zrakovÄ postiÅženÊ",
- "upload_form.description_missing": "Nebyl pÅidÃĄn popis",
"upload_form.edit": "Upravit",
"upload_form.thumbnail": "ZmÄnit miniaturu",
- "upload_form.undo": "Smazat",
"upload_form.video_description": "Popis pro sluchovÄ Äi zrakovÄ postiÅženÊ",
"upload_modal.analyzing_picture": "Analyzuji obrÃĄzekâĻ",
"upload_modal.apply": "PouÅžÃt",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 4ecf48735..3cd090e18 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -21,6 +21,7 @@
"account.blocked": "Blociwyd",
"account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol",
"account.cancel_follow_request": "Tynnu cais i ddilyn",
+ "account.copy": "Copïo dolen i'r proffil",
"account.direct": "Crybwyll yn breifat @{name}",
"account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio",
"account.domain_blocked": "Parth wedi ei flocio",
@@ -31,13 +32,13 @@
"account.featured_tags.last_status_never": "Dim postiadau",
"account.featured_tags.title": "Prif hashnodau {name}",
"account.follow": "Dilyn",
+ "account.follow_back": "Dilyn yn ôl",
"account.followers": "Dilynwyr",
"account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
"account.followers_counter": "{count, plural, one {Dilynwr: {counter}} other {Dilynwyr: {counter}}}",
"account.following": "Yn dilyn",
"account.following_counter": "{count, plural, one {Yn dilyn: {counter}} other {Yn dilyn: {counter}}}",
"account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.",
- "account.follows_you": "Yn eich dilyn chi",
"account.go_to_profile": "Mynd i'r proffil",
"account.hide_reblogs": "Cuddio hybiau gan @{name}",
"account.in_memoriam": "Er Cof.",
@@ -52,6 +53,7 @@
"account.mute_notifications_short": "Distewi hysbysiadau",
"account.mute_short": "Tewi",
"account.muted": "Wedi anwybyddu",
+ "account.mutual": "Cydgydnabod",
"account.no_bio": "Dim disgrifiad wedi'i gynnig.",
"account.open_original_page": "Agor y dudalen wreiddiol",
"account.posts": "Postiadau",
@@ -87,7 +89,6 @@
"announcement.announcement": "Cyhoeddiad",
"attachments_list.unprocessed": "(heb eu prosesu)",
"audio.hide": "Cuddio sain",
- "autosuggest_hashtag.per_week": "{count} yr wythnos",
"boost_modal.combo": "Mae modd pwyso {combo} er mwyn hepgor hyn tro nesa",
"bundle_column_error.copy_stacktrace": "Copïo'r adroddiad gwall",
"bundle_column_error.error.body": "Nid oedd modd cynhyrchu'r dudalen honno. Gall fod oherwydd gwall yn ein cod neu fater cydnawsedd porwr.",
@@ -144,22 +145,12 @@
"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 dewis",
"compose_form.poll.duration": "Cyfnod pleidlais",
- "compose_form.poll.option_placeholder": "Dewis {number}",
- "compose_form.poll.remove_option": "Tynnu'r dewis",
"compose_form.poll.switch_to_multiple": "Newid pleidlais i adael mwy nag un dewis",
"compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis",
- "compose_form.publish": "Cyhoeddi",
"compose_form.publish_form": "Cyhoeddi",
- "compose_form.publish_loud": "{publish}!",
- "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",
"compose_form.spoiler.marked": "Dileu rhybudd cynnwys",
"compose_form.spoiler.unmarked": "Ychwanegu rhybudd cynnwys",
- "compose_form.spoiler_placeholder": "Ysgrifenwch eich rhybudd yma",
"confirmation_modal.cancel": "Diddymu",
"confirmations.block.block_and_report": "Rhwystro ac Adrodd",
"confirmations.block.confirm": "Blocio",
@@ -169,9 +160,9 @@
"confirmations.delete.confirm": "Dileu",
"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 siÅĩr eich bod eisiau dileu y rhestr hwn am byth?",
+ "confirmations.delete_list.message": "Ydych chi'n siÅĩr eich bod eisiau dileu'r rhestr hwn am byth?",
"confirmations.discard_edit_media.confirm": "Dileu",
- "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg, eu taflu beth bynnag?",
+ "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg - eu dileu beth bynnag?",
"confirmations.domain_block.confirm": "Blocio parth cyfan",
"confirmations.domain_block.message": "Ydych chi wir, wir eisiau blocio'r holl {domain}? Fel arfer, mae blocio neu dewi pobl penodol yn broses mwy effeithiol. Fyddwch chi ddim yn gweld cynnwys o'r parth hwnnw mewn ffrydiau cyhoeddus neu yn eich hysbysiadau. Bydd eich dilynwyr o'r parth hwnnw yn cael eu ddileu.",
"confirmations.edit.confirm": "Golygu",
@@ -406,7 +397,6 @@
"navigation_bar.direct": "Crybwylliadau preifat",
"navigation_bar.discover": "Darganfod",
"navigation_bar.domain_blocks": "Parthau wedi'u blocio",
- "navigation_bar.edit_profile": "Golygu proffil",
"navigation_bar.explore": "Darganfod",
"navigation_bar.favourites": "Ffefrynnau",
"navigation_bar.filters": "Geiriau wedi'u tewi",
@@ -482,12 +472,15 @@
"onboarding.follows.title": "Yn boblogaidd ar Mastodon",
"onboarding.profile.discoverable": "Gwnewch fy mhroffil yn un y gellir ei ddarganfod",
"onboarding.profile.discoverable_hint": "Pan fyddwch yn optio i mewn i ddarganfodadwyedd ar Mastodon, gall eich postiadau ymddangos mewn canlyniadau chwilio a thueddiadau, ac efallai y bydd eich proffil yn cael ei awgrymu i bobl sydd Ãĸ diddordebau tebyg i chi.",
+ "onboarding.profile.display_name": "Enw dangos",
"onboarding.profile.display_name_hint": "Eich enw llawn neu'ch enw hwylâĻ",
+ "onboarding.profile.lead": "Gallwch chi bob amser gwblhau hyn yn ddiweddarach yn y gosodiadau, lle mae hyd yn oed mwy o ddewisiadau cyfaddasu ar gael.",
"onboarding.profile.note": "Bywgraffiad",
"onboarding.profile.note_hint": "Gallwch @grybwyll pobl eraill neu #hashnodauâĻ",
"onboarding.profile.save_and_continue": "Cadw a pharhau",
"onboarding.profile.title": "Gosodiad proffil",
"onboarding.profile.upload_avatar": "Llwytho llun proffil",
+ "onboarding.profile.upload_header": "Llwytho pennyn proffil",
"onboarding.share.lead": "Cofiwch ddweud wrth bobl sut y gallan nhw ddod o hyd i chi ar Mastodon!",
"onboarding.share.message": "Fi yw {username} ar #Mastodon! Dewch i'm dilyn i yn {url}",
"onboarding.share.next_steps": "Camau nesaf posib:",
@@ -521,14 +514,7 @@
"poll_button.add_poll": "Ychwanegu pleidlais",
"poll_button.remove_poll": "Tynnu pleidlais",
"privacy.change": "Addasu preifatrwdd y post",
- "privacy.direct.long": "Dim ond yn weladwy i ddefnyddwyr a grybwyllwyd",
- "privacy.direct.short": "Dim ond pobl sy wedi'u crybwyll",
- "privacy.private.long": "Dim ond pobl sy'n ddilynwyr",
- "privacy.private.short": "Dilynwyr yn unig",
- "privacy.public.long": "Gweladwy i bawb",
"privacy.public.short": "Cyhoeddus",
- "privacy.unlisted.long": "Gweladwy i bawb, ond wedi optio allan o nodweddion darganfod",
- "privacy.unlisted.short": "Heb ei restru",
"privacy_policy.last_updated": "Diweddarwyd ddiwethaf ar {date}",
"privacy_policy.title": "Polisi Preifatrwydd",
"recommended": "Argymhellwyd",
@@ -602,6 +588,7 @@
"search.quick_action.status_search": "Postiadau sy'n cyfateb i {x}",
"search.search_or_paste": "Chwilio neu gludo URL",
"search_popout.full_text_search_disabled_message": "Ddim ar gael ar {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Dim ond ar gael pan wedi mewngofnodi.",
"search_popout.language_code": "Cod iaith ISO",
"search_popout.options": "Dewisiadau chwilio",
"search_popout.quick_actions": "Gweithredoedd cyflym",
@@ -709,10 +696,8 @@
"upload_error.poll": "Nid oes modd llwytho ffeiliau Ãĸ phleidleisiau.",
"upload_form.audio_description": "Disgrifio ar gyfer pobl sydd Ãĸ cholled clyw",
"upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
- "upload_form.description_missing": "Dim disgrifiad wedi'i ychwanegu",
"upload_form.edit": "Golygu",
"upload_form.thumbnail": "Newid llun bach",
- "upload_form.undo": "Dileu",
"upload_form.video_description": "Disgrifio ar gyfer pobl sydd Ãĸ cholled clyw neu amhariad golwg",
"upload_modal.analyzing_picture": "Yn dadansoddi llunâĻ",
"upload_modal.apply": "Gosod",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index 04fc43734..5d6cac69d 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Ingen indlÃĻg",
"account.featured_tags.title": "{name}s fremhÃĻvede hashtags",
"account.follow": "Følg",
+ "account.follow_back": "Følg tilbage",
"account.followers": "Følgere",
"account.followers.empty": "Ingen følger denne bruger endnu.",
"account.followers_counter": "{count, plural, one {{counter} Følger} other {{counter} Følgere}}",
"account.following": "Følger",
"account.following_counter": "{count, plural, one {{counter} Følges} other {{counter} Følges}}",
"account.follows.empty": "Denne bruger følger ikke nogen endnu.",
- "account.follows_you": "Følger dig",
"account.go_to_profile": "GÃĨ til profil",
"account.hide_reblogs": "Skjul boosts fra @{name}",
"account.in_memoriam": "Til minde om.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "SlÃĨ lyden fra for notifikationer",
"account.mute_short": "Skjul (mute)",
"account.muted": "Skjult (muted)",
+ "account.mutual": "FÃĻlles",
"account.no_bio": "Ingen beskrivelse til rÃĨdighed.",
"account.open_original_page": "Ã
bn oprindelig side",
"account.posts": "IndlÃĻg",
@@ -88,7 +89,6 @@
"announcement.announcement": "Bekendtgørelse",
"attachments_list.unprocessed": "(ubehandlet)",
"audio.hide": "Skjul lyd",
- "autosuggest_hashtag.per_week": "{count} pr. uge",
"boost_modal.combo": "Du kan trykke {combo} for at springe dette over nÃĻste gang",
"bundle_column_error.copy_stacktrace": "KopiÊr fejlrapport",
"bundle_column_error.error.body": "Den anmodede side kunne ikke gengives. Dette kan skyldes flere typer fejl.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "Din konto er ikke {locked}. Enhver kan følge dig og se indlÃĻg kun beregnet for følgere.",
"compose_form.lock_disclaimer.lock": "lÃĨst",
"compose_form.placeholder": "Hvad tÃĻnker du pÃĨ?",
- "compose_form.poll.add_option": "Tilføj valgmulighed",
+ "compose_form.poll.add_option": "Tilføj mulighed",
"compose_form.poll.duration": "Afstemningens varighed",
+ "compose_form.poll.multiple": "Multivalg",
"compose_form.poll.option_placeholder": "Valgmulighed {number}",
"compose_form.poll.remove_option": "Fjern denne valgmulighed",
+ "compose_form.poll.single": "VÃĻlg Ên",
"compose_form.poll.switch_to_multiple": "Ãndr afstemning til flervalgstype",
"compose_form.poll.switch_to_single": "Ãndr afstemning til enkeltvalgstype",
- "compose_form.publish": "PublicÊr",
+ "compose_form.poll.type": "Stil",
+ "compose_form.publish": "Indsend",
"compose_form.publish_form": "PublicÊr",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Gem ÃĻndringer",
- "compose_form.sensitive.hide": "{count, plural, one {MarkÊr medie som følsomt} other {MarkÊr medier som følsomme}}",
- "compose_form.sensitive.marked": "{count, plural, one {Medie er markeret som sensitivt} other {Medier er markerede som sensitive}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Medie er ikke market som sensitivt} other {Medier er ikke markerede som sensitive}}",
+ "compose_form.reply": "Svar",
+ "compose_form.save_changes": "OpdatÊr",
"compose_form.spoiler.marked": "Fjern indholdsadvarsel",
"compose_form.spoiler.unmarked": "Tilføj indholdsadvarsel",
- "compose_form.spoiler_placeholder": "Skriv din advarsel hÊr",
+ "compose_form.spoiler_placeholder": "Indholdsadvarsel (valgfri)",
"confirmation_modal.cancel": "Afbryd",
"confirmations.block.block_and_report": "BlokÊr og Anmeld",
"confirmations.block.confirm": "BlokÊr",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Private omtaler",
"navigation_bar.discover": "Opdag",
"navigation_bar.domain_blocks": "Blokerede domÃĻner",
- "navigation_bar.edit_profile": "RedigÊr profil",
"navigation_bar.explore": "Udforsk",
"navigation_bar.favourites": "Favoritter",
"navigation_bar.filters": "Skjulte ord (mutede)",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "Tilføj en afstemning",
"poll_button.remove_poll": "Fjern afstemning",
"privacy.change": "Tilpas indlÃĻgsfortrolighed",
- "privacy.direct.long": "Kun synlig for nÃĻvnte brugere",
- "privacy.direct.short": "Kun omtalte personer",
- "privacy.private.long": "Kun synlig for følgere",
- "privacy.private.short": "Kun følgere",
- "privacy.public.long": "Synlig for alle",
+ "privacy.direct.long": "Alle nÃĻvnt i indlÃĻgget",
+ "privacy.direct.short": "Bestemte personer",
+ "privacy.private.long": "Kun dine følgere",
+ "privacy.private.short": "Følgere",
+ "privacy.public.long": "Alle pÃĨ og udenfor Mastodon",
"privacy.public.short": "Offentlig",
- "privacy.unlisted.long": "Synlig for alle, men med fravalgt visning i opdagelsesfunktioner",
- "privacy.unlisted.short": "Diskret",
+ "privacy.unlisted.additional": "Dette er prÃĻcis som offentlig adfÃĻrd, dog vises indlÃĻgget ikke i live feeds/hashtags, udforsk eller Mastodon-søgning, selv hvis valget gÃĻlder hele kontoen.",
+ "privacy.unlisted.long": "FÃĻrre algoritmiske fanfarer",
+ "privacy.unlisted.short": "Tavsgøre offentligt",
"privacy_policy.last_updated": "Senest opdateret {date}",
"privacy_policy.title": "Privatlivspolitik",
"recommended": "Anbefalet",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "i dag",
+ "reply_indicator.attachments": "{count, plural, one {# vedhÃĻftning} other {# vedhÃĻftninger}}",
"reply_indicator.cancel": "Afbryd",
+ "reply_indicator.poll": "Afstemning",
"report.block": "BlokÊr",
"report.block_explanation": "Du vil ikke se vedkommendes indlÃĻg. Vedkommende vil ikke kunne se dine indlÃĻg eller følge dig. Vedkommende vil kunne se, at de er blokeret.",
"report.categories.legal": "Juridisk",
@@ -714,10 +716,8 @@
"upload_error.poll": "Filupload ikke tilladt for afstemninger.",
"upload_form.audio_description": "Beskrivelse til hørehÃĻmmede",
"upload_form.description": "Beskrivelse til svagtseende",
- "upload_form.description_missing": "Ingen beskrivelse tilføjet",
"upload_form.edit": "RedigÊr",
"upload_form.thumbnail": "Skift miniature",
- "upload_form.undo": "Slet",
"upload_form.video_description": "Beskrivelse for hørehÃĻmmede eller synshandicappede personer",
"upload_modal.analyzing_picture": "Analyserer billedeâĻ",
"upload_modal.apply": "Anvend",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index cf545e48c..a6dd098bb 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Keine Beiträge",
"account.featured_tags.title": "Von {name} vorgestellte Hashtags",
"account.follow": "Folgen",
+ "account.follow_back": "Ebenfalls folgen",
"account.followers": "Follower",
"account.followers.empty": "Diesem Profil folgt noch niemand.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}",
"account.following": "Folge ich",
"account.following_counter": "{count, plural, one {{counter} Folge ich} other {{counter} Folge ich}}",
"account.follows.empty": "Dieses Profil folgt noch niemandem.",
- "account.follows_you": "Folgt dir",
"account.go_to_profile": "Profil aufrufen",
"account.hide_reblogs": "Geteilte Beiträge von @{name} ausblenden",
"account.in_memoriam": "Zum Andenken.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Benachrichtigungen stummschalten",
"account.mute_short": "Stummschalten",
"account.muted": "Stummgeschaltet",
+ "account.mutual": "Gegenseitig",
"account.no_bio": "Keine Beschreibung verfÃŧgbar.",
"account.open_original_page": "UrsprÃŧngliche Seite Ãļffnen",
"account.posts": "Beiträge",
@@ -61,7 +62,7 @@
"account.requested": "Die Genehmigung steht noch aus. Klicke hier, um die Follower-Anfrage zurÃŧckzuziehen",
"account.requested_follow": "{name} mÃļchte dir folgen",
"account.share": "Profil von @{name} teilen",
- "account.show_reblogs": "Geteilte Beiträge von @{name} wieder anzeigen",
+ "account.show_reblogs": "Geteilte Beiträge von @{name} anzeigen",
"account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}",
"account.unblock": "Blockierung von @{name} aufheben",
"account.unblock_domain": "Blockierung von {domain} aufheben",
@@ -88,7 +89,6 @@
"announcement.announcement": "AnkÃŧndigung",
"attachments_list.unprocessed": "(ausstehend)",
"audio.hide": "Audio ausblenden",
- "autosuggest_hashtag.per_week": "{count} pro Woche",
"boost_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt",
"bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren",
"bundle_column_error.error.body": "Die angeforderte Seite konnte nicht dargestellt werden. Dies kÃļnnte auf einen Fehler in unserem Code oder auf ein Browser-Kompatibilitätsproblem zurÃŧckzufÃŧhren sein.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Andere kÃļnnen dir folgen und deine Beiträge sehen, die nur fÃŧr Follower bestimmt sind.",
"compose_form.lock_disclaimer.lock": "geschÃŧtzt",
"compose_form.placeholder": "Was gibtâs Neues?",
- "compose_form.poll.add_option": "Auswahl",
+ "compose_form.poll.add_option": "Auswahl hinzufÃŧgen",
"compose_form.poll.duration": "Umfragedauer",
- "compose_form.poll.option_placeholder": "{number}. Auswahl",
- "compose_form.poll.remove_option": "Auswahlfeld entfernen",
+ "compose_form.poll.multiple": "Mehrfachauswahl",
+ "compose_form.poll.option_placeholder": "{number}. AuswahlmÃļglichkeit",
+ "compose_form.poll.remove_option": "Dieses Auswahlfeld entfernen",
+ "compose_form.poll.single": "Einfachauswahl",
"compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben",
- "compose_form.poll.switch_to_single": "Nur Einzelauswahl erlauben",
+ "compose_form.poll.switch_to_single": "Nur Einfachauswahl erlauben",
+ "compose_form.poll.type": "Art",
"compose_form.publish": "VerÃļffentlichen",
"compose_form.publish_form": "Neuer Beitrag",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Ãnderungen speichern",
- "compose_form.sensitive.hide": "{count, plural, one {Mit einer Inhaltswarnung versehen} other {Mit einer Inhaltswarnung versehen}}",
- "compose_form.sensitive.marked": "{count, plural, one {Medien-Datei ist mit einer Inhaltswarnung versehen} other {Medien-Dateien sind mit einer Inhaltswarnung versehen}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Medien-Datei ist nicht mit einer Inhaltswarnung versehen} other {Medien-Dateien sind nicht mit einer Inhaltswarnung versehen}}",
+ "compose_form.reply": "Antworten",
+ "compose_form.save_changes": "Aktualisieren",
"compose_form.spoiler.marked": "Inhaltswarnung entfernen",
"compose_form.spoiler.unmarked": "Inhaltswarnung hinzufÃŧgen",
- "compose_form.spoiler_placeholder": "Inhaltswarnung",
+ "compose_form.spoiler_placeholder": "Inhaltswarnung (optional)",
"confirmation_modal.cancel": "Abbrechen",
"confirmations.block.block_and_report": "Blockieren und melden",
"confirmations.block.confirm": "Blockieren",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Private Erwähnungen",
"navigation_bar.discover": "Entdecken",
"navigation_bar.domain_blocks": "Blockierte Domains",
- "navigation_bar.edit_profile": "Profil bearbeiten",
"navigation_bar.explore": "Entdecken",
"navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Stummgeschaltete WÃļrter",
@@ -488,7 +487,7 @@
"onboarding.profile.lead": "Du kannst das später in den Einstellungen vervollständigen, wo noch mehr AnpassungsmÃļglichkeiten zur VerfÃŧgung stehen.",
"onboarding.profile.note": "Ãber mich",
"onboarding.profile.note_hint": "Du kannst andere @Profile erwähnen oder #Hashtags verwenden âĻ",
- "onboarding.profile.save_and_continue": "Speichern und fortsetzen",
+ "onboarding.profile.save_and_continue": "Speichern und fortfahren",
"onboarding.profile.title": "Profil einrichten",
"onboarding.profile.upload_avatar": "Profilbild hochladen",
"onboarding.profile.upload_header": "Titelbild hochladen",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "Umfrage erstellen",
"poll_button.remove_poll": "Umfrage entfernen",
"privacy.change": "Sichtbarkeit anpassen",
- "privacy.direct.long": "Nur fÃŧr die erwähnten Profile sichtbar",
- "privacy.direct.short": "Nur erwähnte Profile",
- "privacy.private.long": "Nur fÃŧr deine Follower sichtbar",
- "privacy.private.short": "Nur Follower",
- "privacy.public.long": "FÃŧr alle sichtbar",
+ "privacy.direct.long": "Alle in diesem Beitrag erwähnten Profile",
+ "privacy.direct.short": "Bestimmte Profile",
+ "privacy.private.long": "Nur deine Follower",
+ "privacy.private.short": "Follower",
+ "privacy.public.long": "Alle auf und auÃerhalb von Mastodon",
"privacy.public.short": "Ãffentlich",
- "privacy.unlisted.long": "FÃŧr alle sichtbar, aber nicht Ãŧber die Suche zu finden",
- "privacy.unlisted.short": "Nicht gelistet",
+ "privacy.unlisted.additional": "Das Verhalten ist wie bei âÃffentlichâ, jedoch erscheint dieser Beitrag nicht in âLive-Feedsâ, âErkundenâ, Hashtags oder Ãŧber die Mastodon-Suchfunktion â selbst wenn du das in den Einstellungen aktiviert hast.",
+ "privacy.unlisted.long": "Weniger im Algorithmus berÃŧcksichtigt",
+ "privacy.unlisted.short": "Ãffentlich (eingeschränkt)",
"privacy_policy.last_updated": "Stand: {date}",
"privacy_policy.title": "Datenschutzerklärung",
"recommended": "Empfohlen",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number} Min.",
"relative_time.seconds": "{number} Sek.",
"relative_time.today": "heute",
+ "reply_indicator.attachments": "{count, plural, one {# Anhang} other {# Anhänge}}",
"reply_indicator.cancel": "Abbrechen",
+ "reply_indicator.poll": "Umfrage",
"report.block": "Blockieren",
"report.block_explanation": "Du wirst keine Beiträge mehr von diesem Konto sehen. Das blockierte Konto wird deine Beiträge nicht mehr sehen oder dir folgen kÃļnnen. Die Person kÃļnnte mitbekommen, dass du sie blockiert hast.",
"report.categories.legal": "Rechtlich",
@@ -714,10 +716,8 @@
"upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.",
"upload_form.audio_description": "Beschreibe fÃŧr Menschen mit HÃļrbehinderung",
"upload_form.description": "Beschreibe fÃŧr Menschen mit Sehbehinderung",
- "upload_form.description_missing": "Keine Beschreibung hinzugefÃŧgt",
"upload_form.edit": "Bearbeiten",
"upload_form.thumbnail": "Vorschaubild ändern",
- "upload_form.undo": "LÃļschen",
"upload_form.video_description": "Beschreibe fÃŧr Menschen mit einer HÃļr- oder Sehbehinderung",
"upload_modal.analyzing_picture": "Bild wird analysiert âĻ",
"upload_modal.apply": "Ãbernehmen",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 02ce7120a..068d22890 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -17,9 +17,11 @@
"account.badges.group": "ÎÎŧÎŦδι",
"account.block": "ÎĪÎŋÎēÎģÎĩΚĪÎŧĪĪ @{name}",
"account.block_domain": "ÎĪÎŋÎēÎģÎĩΚĪÎŧĪĪ ĪÎŋÎŧÎÎą {domain}",
+ "account.block_short": "ÎĪÎŋÎēÎģÎĩΚĪÎŧĪĪ",
"account.blocked": "ÎĪÎŋÎēÎģÎĩΚĪÎŧÎÎŊÎŋĪ/Ρ",
"account.browse_more_on_origin_server": "ÎÎĩĪ ĪÎĩĪΚĪĪĪĪÎĩĪÎą ĪĪÎŋ ÎąĪĪΚÎēĪ ĪĪÎŋĪίÎģ",
"account.cancel_follow_request": "ÎĪĪĪĪ
ĪĪΡ ιΚĪÎŽÎŧÎąĪÎŋĪ ĪÎąĪÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
+ "account.copy": "ÎÎŊĪΚÎŗĪÎąĪÎŽ ĪĪ
ÎŊδÎĪÎŧÎŋĪ
ĪĪÎŋĪίÎģ",
"account.direct": "ÎδΚĪĪΚÎēÎŽ ÎąÎŊÎąĪÎŋĪÎŦ @{name}",
"account.disable_notifications": "ÎŖĪÎąÎŧÎŦĪÎą ÎŊÎą ÎŧÎĩ ÎĩΚδÎŋĪÎŋΚÎĩίĪ ĪĪÎąÎŊ δΡÎŧÎŋĪΚÎĩĪÎĩΚ Îŋ @{name}",
"account.domain_blocked": "Î ĪÎŋÎŧÎÎąĪ ÎąĪÎŋÎēÎģÎĩίĪĪΡÎēÎĩ",
@@ -30,13 +32,13 @@
"account.featured_tags.last_status_never": "ÎÎąÎŧÎ¯Îą ÎąÎŊÎŦĪĪΡĪΡ",
"account.featured_tags.title": "ĪĪÎŋβÎĩβÎģΡÎŧÎÎŊÎĩĪ ÎĩĪΚÎēÎĪÎĩĪ ĪÎŋĪ
/ĪΡĪ {name}",
"account.follow": "ÎÎēÎŋÎģÎŋĪθΡĪÎĩ",
+ "account.follow_back": "ÎÎēÎŋÎģÎŋĪθΡĪÎĩ ÎēιΚ ÎĩĪĪ",
"account.followers": "ÎÎēĪÎģÎŋĪ
θÎŋΚ",
"account.followers.empty": "ÎÎąÎŊÎĩίĪ δÎĩÎŊ ÎąÎēÎŋÎģÎŋĪ
θÎĩί ÎąĪ
ĪĪÎŊ ĪÎŋÎŊ ĪĪÎŽĪĪΡ ÎąÎēĪÎŧÎą.",
"account.followers_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.go_to_profile": "ÎÎĩĪÎŦβιĪΡ ĪĪÎŋ ĪĪÎŋĪίÎģ",
"account.hide_reblogs": "ÎĪĪÎēĪĪ
ĪΡ ÎĩÎŊΚĪĪĪĪÎĩĪÎŊ ÎąĪĪ @{name}",
"account.in_memoriam": "ÎΚĪ ÎŧÎŊÎŽÎŧΡÎŊ.",
@@ -48,7 +50,11 @@
"account.mention": "ÎÎŊÎŦĪÎĩĪÎĩ @{name}",
"account.moved_to": "Î/Î {name} ÎĪÎĩΚ Ī
ĪÎŋδÎĩίΞÎĩΚ ĪĪΚ Îŋ ÎŊÎÎŋĪ ÎģÎŋÎŗÎąĪΚιĪÎŧĪĪ ĪÎŋĪ
/ĪΡĪ ÎĩίÎŊιΚ ĪĪĪÎą:",
"account.mute": "ÎŖĪĪÎąĪÎĩ ĪÎŋÎŊ @{name}",
+ "account.mute_notifications_short": "ÎŖίÎŗÎąĪΡ ÎĩΚδÎŋĪÎŋΚΎĪÎĩĪÎŊ",
+ "account.mute_short": "ÎŖίÎŗÎąĪΡ",
"account.muted": "ÎĪÎŋĪΚĪĪΡÎŧÎÎŊÎŋĪ/Ρ",
+ "account.mutual": "ÎÎŧÎŋÎšÎ˛ÎąÎ¯ÎŋΚ",
+ "account.no_bio": "ÎÎĩÎŊ Ī
ĪÎŦĪĪÎĩΚ ĪÎĩĪΚÎŗĪÎąĪÎŽ.",
"account.open_original_page": "ÎÎŊÎŋΚÎēĪĪ",
"account.posts": "ΤÎŋĪ
Ī",
"account.posts_with_replies": "ΤÎŋĪ
Ī ÎēιΚ ÎąĪÎąÎŊĪÎŽĪÎĩΚĪ",
@@ -64,6 +70,7 @@
"account.unendorse": "ÎÎą ÎŧΡÎŊ ĪÎąĪÎĪÎĩĪιΚ ĪĪÎŋ ĪĪÎŋĪίÎģ",
"account.unfollow": "ÎĪĪΡ ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
"account.unmute": "ÎΚιÎēÎŋĪÎŽ ĪίÎŗÎąĪΡĪ @{name}",
+ "account.unmute_notifications_short": "ÎŖίÎŗÎąĪΡ ÎĩΚδÎŋĪÎŋΚΎĪÎĩĪÎŊ",
"account.unmute_short": "ÎÎąĪÎŦĪÎŗΡĪΡ ĪίÎŗÎąĪΡĪ",
"account_note.placeholder": "ÎÎŦÎŊÎĩ ÎēÎģΚÎē ÎŗΚι ÎŊÎą ĪĪÎŋĪθÎĪÎĩΚĪ ĪΡÎŧÎĩίĪĪΡ",
"admin.dashboard.daily_retention": "Î ÎŋĪÎŋĪĪĪ ĪĪΡĪĪĪÎŊ ĪÎŋĪ
ĪÎąĪÎąÎŧÎÎŊÎŋĪ
ÎŊ ÎŧÎĩĪÎŦ ĪΡÎŊ ÎĩÎŗÎŗĪÎąĪÎŽ, ÎąÎŊÎŦ ΡÎŧÎĪÎą",
@@ -78,7 +85,6 @@
"announcement.announcement": "ÎÎŊÎąÎēÎŋίÎŊĪĪΡ",
"attachments_list.unprocessed": "(ÎŧΡ ÎĩĪÎĩΞÎĩĪÎŗÎąĪÎŧÎÎŊÎŋ)",
"audio.hide": "ÎĪĪÎēĪĪ
ĪΡ ÎąĪĪÎĩίÎŋĪ
ÎŽĪÎŋĪ
",
- "autosuggest_hashtag.per_week": "{count} ÎąÎŊÎŦ ÎĩβδÎŋÎŧÎŦδι",
"boost_modal.combo": "ÎĪÎŋĪÎĩίĪ ÎŊÎą ĪÎąĪÎŽĪÎĩΚĪ {combo} ÎŗΚι ÎŊÎą ĪÎŋ ĪĪÎŋĪĪÎĩĪÎŦĪÎĩΚĪ ĪΡÎŊ ÎĩĪĪÎŧÎĩÎŊΡ ĪÎŋĪÎŦ",
"bundle_column_error.copy_stacktrace": "ÎÎŊĪΚÎŗĪÎąĪÎŽ ÎąÎŊÎąĪÎŋĪÎŦĪ ĪĪÎŦÎģÎŧÎąĪÎŋĪ",
"bundle_column_error.error.body": "ÎÎĩÎŊ ÎŽĪÎąÎŊ δĪ
ÎŊÎąĪÎŽ Ρ ÎąĪĪδÎŋĪΡ ĪΡĪ ĪÎĩÎģÎ¯Î´ÎąĪ ĪÎŋĪ
ÎļÎŽĪΡĪÎĩĪ. ÎĪÎŋĪÎĩί ÎŊÎą ÎŋĪÎĩίÎģÎĩĪιΚ ĪÎĩ ĪĪÎŦÎģÎŧÎą ĪĪÎŋÎŊ ÎēĪδΚÎēÎŦ ÎŧÎąĪ ÎŽ ĪÎĩ ĪĪĪβÎģΡÎŧÎą ĪĪ
ÎŧβιĪĪĪΡĪÎąĪ ĪÎŋĪ
ĪĪÎŋÎŗĪÎŦÎŧÎŧÎąĪÎŋĪ ĪÎĩĪΚΎÎŗΡĪΡĪ.",
@@ -104,6 +110,7 @@
"column.direct": "ÎδΚĪĪΚÎēÎĪ ÎąÎŊÎąĪÎŋĪÎĪ",
"column.directory": "Î ÎĩĪΚΎÎŗΡĪΡ ĪĪÎą ĪĪÎŋĪίÎģ",
"column.domain_blocks": "ÎĪÎŋÎēÎģÎĩΚĪÎŧÎÎŊÎŋΚ ĪÎŋÎŧÎĩίĪ",
+ "column.favourites": "ÎÎŗÎąĪΡÎŧÎÎŊÎą",
"column.follow_requests": "ÎΚĪÎŽÎŧÎąĪÎą ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
"column.home": "ÎĪĪΚÎēÎŽ",
"column.lists": "ÎίĪĪÎĩĪ",
@@ -124,6 +131,9 @@
"community.column_settings.remote_only": "ÎĪÎŋÎŧÎąÎēĪĪ
ĪÎŧÎÎŊÎą ÎŧĪÎŊÎŋ",
"compose.language.change": "ÎÎģÎģÎąÎŗÎŽ ÎŗÎģĪĪĪÎąĪ",
"compose.language.search": "ÎÎŊÎąÎļÎŽĪΡĪΡ ÎŗÎģĪĪĪĪÎŊ...",
+ "compose.published.body": "Î ÎąÎŊÎŦĪĪΡĪΡ δΡÎŧÎŋĪΚÎĩĪĪΡÎēÎĩ.",
+ "compose.published.open": "ÎÎŊÎŋΚÎŗÎŧÎą",
+ "compose.saved.body": "Î ÎąÎŊÎŦĪĪΡĪΡ ÎąĪÎŋθΡÎēÎĩĪĪΡÎēÎĩ.",
"compose_form.direct_message_warning_learn_more": "ÎÎŦθÎĩ ĪÎĩĪΚĪĪĪĪÎĩĪÎą",
"compose_form.encryption_warning": "ÎΚ δΡÎŧÎŋĪΚÎĩĪĪÎĩΚĪ ĪĪÎŋ Mastodon δÎĩÎŊ ÎĩίÎŊιΚ ÎēĪĪ
ĪĪÎŋÎŗĪÎąĪΡÎŧÎÎŊÎĩĪ ÎąĪĪ ÎŦÎēĪÎŋ ĪÎĩ ÎŦÎēĪÎŋ. ÎΡ ÎŧÎŋΚĪÎŦÎļÎĩĪιΚ ÎĩĪ
ÎąÎ¯ĪθΡĪÎĩĪ ĪÎģΡĪÎŋĪÎŋĪίÎĩĪ ÎŧÎĪĪ ĪÎŋĪ
Mastodon.",
"compose_form.hashtag_warning": "ÎĪ
ĪÎŽ Ρ δΡÎŧÎŋĪίÎĩĪ
ĪΡ δÎĩÎŊ θι ÎĩÎŧĪÎąÎŊίÎļÎĩĪιΚ ÎēÎŦĪĪ ÎąĪĪ ÎŋĪÎŋΚιδΎĪÎŋĪÎĩ ÎĩĪΚÎēÎĪÎą ÎēιθĪĪ δÎĩÎŊ ÎĩίÎŊιΚ δΡÎŧĪĪΚι. ÎĪÎŊÎŋ ÎŋΚ δΡÎŧĪĪΚÎĩĪ δΡÎŧÎŋĪΚÎĩĪĪÎĩΚĪ ÎŧĪÎŋĪÎŋĪÎŊ ÎŊÎą ÎąÎŊÎąÎļΡĪΡθÎŋĪÎŊ ÎŧÎĩ ÎĩĪΚÎēÎĪÎą.",
@@ -132,20 +142,19 @@
"compose_form.placeholder": "ΤΚ ĪÎēÎĪĪÎĩĪιΚ;",
"compose_form.poll.add_option": "Î ĪÎŋĪθΎÎēΡ ÎĩĪΚÎģÎŋÎŗÎŽĪ",
"compose_form.poll.duration": "ÎΚÎŦĪÎēÎĩΚι δΡÎŧÎŋĪÎēĪĪΡĪΡĪ",
+ "compose_form.poll.multiple": "Î ÎŋÎģÎģÎąĪÎģÎŽ ÎĩĪΚÎģÎŋÎŗÎŽ",
"compose_form.poll.option_placeholder": "ÎĪΚÎģÎŋÎŗÎŽ {number}",
"compose_form.poll.remove_option": "ÎĪÎąÎ¯ĪÎĩĪΡ ÎĩĪΚÎģÎŋÎŗÎŽĪ",
"compose_form.poll.switch_to_multiple": "ÎÎŊΡÎŧÎĪĪĪΡ δΡÎŧÎŋĪÎēĪĪΡĪΡĪ ÎŧÎĩ ĪÎŋÎģÎģÎąĪÎģÎĪ ÎĩĪΚÎģÎŋÎŗÎĪ",
"compose_form.poll.switch_to_single": "ÎÎŊΡÎŧÎĪĪĪΡ δΡÎŧÎŋĪÎēĪĪΡĪΡĪ ÎŧÎĩ ÎŧÎŋÎŊιδΚÎēÎŽ ÎĩĪΚÎģÎŋÎŗÎŽ",
- "compose_form.publish": "ÎΡÎŧÎŋĪίÎĩĪ
ĪΡ",
+ "compose_form.poll.type": "ÎŖĪĪ
Îģ",
+ "compose_form.publish": "ÎÎŊÎŦĪĪΡĪΡ",
"compose_form.publish_form": "ÎΡÎŧÎŋĪίÎĩĪ
ĪΡ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ÎĪÎŋθΎÎēÎĩĪ
ĪΡ ÎąÎģÎģÎąÎŗĪÎŊ",
- "compose_form.sensitive.hide": "{count, plural, one {ÎĪΚĪÎŽÎŧÎąÎŊĪΡ ĪÎŋÎģĪ
ÎŧÎĪÎŋĪ
ĪĪ ÎĩĪ
ÎąÎ¯ĪθΡĪÎŋ} other {ÎĪΚĪÎŽÎŧÎąÎŊĪΡ ĪÎŋÎģĪ
ÎŧÎĪĪÎŊ ĪĪ ÎĩĪ
ÎąÎ¯ĪθΡĪÎą}}",
- "compose_form.sensitive.marked": "{count, plural, one {ΤÎŋ ĪÎŋÎģĪ
ÎŧÎĪÎŋ ÎĪÎĩΚ ĪΡÎŧÎĩΚĪθÎĩί ĪĪ ÎĩĪ
ÎąÎ¯ĪθΡĪÎŋ} other {Τι ĪÎŋÎģĪ
ÎŧÎĪÎą ÎĪÎŋĪ
ÎŊ ĪΡÎŧÎĩΚĪθÎĩί ĪĪ ÎĩĪ
ÎąÎ¯ĪθΡĪÎą}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ΤÎŋ ĪÎŋÎģĪ
ÎŧÎĪÎŋ δÎĩÎŊ ÎĪÎĩΚ ĪΡÎŧÎĩΚĪθÎĩί ĪĪ ÎĩĪ
ÎąÎ¯ĪθΡĪÎŋ} other {Τι ĪÎŋÎģĪ
ÎŧÎĪÎą δÎĩÎŊ ÎĪÎŋĪ
ÎŊ ĪΡÎŧÎĩΚĪθÎĩί ĪĪ ÎĩĪ
ÎąÎ¯ĪθΡĪÎą}}",
+ "compose_form.reply": "ÎĪÎŦÎŊĪΡĪΡ",
+ "compose_form.save_changes": "ÎÎŊΡÎŧÎĪĪĪΡ",
"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": "ÎĪÎŋÎēÎģÎĩΚĪÎŧĪĪ",
@@ -177,6 +186,7 @@
"conversation.mark_as_read": "ÎŖÎŽÎŧÎąÎŊĪΡ ĪĪ ÎąÎŊÎąÎŗÎŊĪĪÎŧÎÎŊÎŋ",
"conversation.open": "Î ĪÎŋβÎŋÎģÎŽ ĪĪ
ÎŊÎŋÎŧΚÎģÎ¯ÎąĪ",
"conversation.with": "ÎÎĩ {names}",
+ "copy_icon_button.copied": "ÎÎŊĪΚÎŗĪÎŦĪΡÎēÎĩ ĪĪÎŋ ĪĪĪĪÎĩΚĪÎŋ",
"copypaste.copied": "ÎÎŊĪΚÎŗĪÎŦĪΡÎēÎĩ",
"copypaste.copy_to_clipboard": "ÎÎŊĪΚÎŗĪÎąĪÎŽ ĪĪÎŋ ĪĪĪĪÎĩΚĪÎŋ",
"directory.federated": "ÎĪĪ ĪÎŋ ÎŗÎŊĪĪĪĪ fediverse",
@@ -253,6 +263,9 @@
"filter_modal.select_filter.subtitle": "ΧĪΡĪΚÎŧÎŋĪÎŋΚΎĪĪÎĩ ÎŧΚι Ī
ĪÎŦĪĪÎŋĪ
ĪÎą ÎēÎąĪΡÎŗÎŋĪÎ¯Îą ÎŽ δΡÎŧΚÎŋĪ
ĪÎŗÎŽĪĪÎĩ ÎŧΚι ÎŊÎÎą",
"filter_modal.select_filter.title": "ÎĻΚÎģĪĪÎŦĪΚĪÎŧÎą ÎąĪ
ĪÎŽĪ ĪΡĪ ÎąÎŊÎŦĪĪΡĪΡĪ",
"filter_modal.title.status": "ÎĻΚÎģĪĪÎŦĪΚĪÎŧÎą ÎŧΚιĪ ÎąÎŊÎŦĪĪΡĪΡĪ",
+ "firehose.all": "ÎÎģÎą",
+ "firehose.local": "ÎĪ
ĪĪĪ Îŋ δΚιÎēÎŋÎŧΚĪĪÎŽĪ",
+ "firehose.remote": "ÎÎģÎģÎŋΚ δΚιÎēÎŋÎŧΚĪĪÎĪ",
"follow_request.authorize": "ÎΞÎŋĪ
ĪΚÎŋδĪĪΡĪÎĩ",
"follow_request.reject": "ÎĪÎĪĪΚĪÎĩ",
"follow_requests.unlocked_explanation": "Î ÎąĪĪÎģÎŋ ĪÎŋĪ
Îŋ ÎģÎŋÎŗÎąĪΚιĪÎŧĪĪ ĪÎŋĪ
δÎĩÎŊ ÎĩίÎŊιΚ ÎēÎģÎĩΚδĪÎŧÎÎŊÎŋĪ, ĪÎŋ ĪĪÎŋĪĪĪΚÎēĪ ĪÎŋĪ
{domain} θÎĩĪĪΡĪÎąÎŊ ĪĪĪ ίĪĪĪ ÎŊÎą θÎÎģÎĩΚĪ ÎŊÎą ÎĩÎģÎÎŗΞÎĩΚĪ ĪÎĩΚĪÎŋÎēίÎŊΡĪÎą ÎąĪ
ĪÎŦ ĪÎą ιΚĪÎŽÎŧÎąĪÎą ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ.",
@@ -278,11 +291,15 @@
"hashtag.column_settings.tag_toggle": "Î ĪÎŋĪθΎÎēΡ ÎĩĪΚĪÎģÎÎŋÎŊ ĪÎąÎŧĪÎĩÎģĪÎŊ ÎŗΚι ĪΡÎŊ ÎēÎŋÎģĪÎŊÎą",
"hashtag.follow": "Î ÎąĪÎąÎēÎŋÎģÎŋĪθΡĪΡ ÎĩĪΚÎēÎĪÎąĪ",
"hashtag.unfollow": "ÎΚιÎēÎŋĪÎŽ ĪÎąĪÎąÎēÎŋÎģÎŋĪθΡĪΡĪ ÎĩĪΚÎēÎĪÎąĪ",
+ "home.actions.go_to_suggestions": "ÎĪÎĩίĪÎĩ ÎŦĪÎŋÎŧÎą ÎŗΚι ÎŊÎą ÎąÎēÎŋÎģÎŋĪ
θΎĪÎĩĪÎĩ",
"home.column_settings.basic": "ÎÎąĪΚÎēÎĪ ĪĪ
θÎŧίĪÎĩΚĪ",
"home.column_settings.show_reblogs": "ÎÎŧĪÎŦÎŊΚĪΡ ĪĪÎŋĪθΎĪÎĩĪÎŊ",
"home.column_settings.show_replies": "ÎÎŧĪÎŦÎŊΚĪΡ ÎąĪÎąÎŊĪÎŽĪÎĩĪÎŊ",
"home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. If that feels too quiet, you may want to:\nÎ ĪĪÎŋĪÎŋδÎŋĪÎ¯Îą ĪΡĪ ÎąĪĪΚÎēÎŽĪ ĪÎĩÎģÎ¯Î´ÎąĪ ĪÎąĪ ÎĩίÎŊιΚ ÎÎŊÎą ÎŧίÎŗÎŧÎą ÎąĪĪ ÎąÎŊÎąĪĪÎŽĪÎĩΚĪ ÎŧÎĩ ĪΚĪ ÎĩĪΚÎēÎĪÎĩĪ ÎēιΚ ĪÎą ÎŦĪÎŋÎŧÎą ĪÎŋĪ
ÎĩĪΚÎģÎΞιĪÎĩ ÎŊÎą ÎąÎēÎŋÎģÎŋĪ
θÎĩίĪÎĩ, ÎēιΚ ĪΚĪ ÎąÎŊÎąĪĪÎŽĪÎĩΚĪ ĪÎŋĪ
ĪĪÎŋĪθÎŋĪÎŊ. ÎÎŦÎŊ ÎąĪ
ĪĪ ĪÎąĪ ĪÎąÎ¯ÎŊÎĩĪιΚ ĪÎŋÎģĪ ÎŽĪĪ
ĪÎŋ, ÎŧĪÎŋĪÎĩί ÎŊÎą θÎÎģÎĩĪÎĩ:",
+ "home.explore_prompt.title": "ÎĪ
ĪĪ ÎĩίÎŊιΚ ĪÎŋ ĪĪίĪΚ ĪÎąĪ ĪĪÎŋ Mastodon.",
"home.hide_announcements": "ÎĪĪÎēĪĪ
ĪΡ ÎąÎŊÎąÎēÎŋΚÎŊĪĪÎĩĪÎŊ",
+ "home.pending_critical_update.link": "ÎÎĩίĪÎĩ ÎĩÎŊΡÎŧÎĩĪĪĪÎĩΚĪ",
+ "home.pending_critical_update.title": "ÎĪίĪΚÎŧΡ ÎĩÎŊΡÎŧÎĪĪĪΡ ÎąĪĪÎąÎģÎĩÎ¯ÎąĪ δΚιθÎĪΚÎŧΡ!",
"home.show_announcements": "ÎÎŧĪÎŦÎŊΚĪΡ ÎąÎŊÎąÎēÎŋΚÎŊĪĪÎĩĪÎŊ",
"interaction_modal.description.follow": "ÎÎĩ ÎÎŊÎąÎŊ ÎģÎŋÎŗÎąĪΚιĪÎŧĪ Mastodon, ÎŧĪÎŋĪÎĩίĪ ÎŊÎą ÎąÎēÎŋÎģÎŋĪ
θΎĪÎĩΚĪ ĪÎŋÎŊ/ĪΡÎŊ {name} ĪĪĪÎĩ ÎŊÎą ÎģÎąÎŧβÎŦÎŊÎĩΚĪ ĪΚĪ ÎąÎŊÎąĪĪÎŽĪÎĩΚĪ ĪÎŋĪ
/ĪΡĪ ĪĪΡ δΚÎēÎŽ ĪÎŋĪ
ĪÎŋÎŽ.",
"interaction_modal.description.reblog": "ÎÎĩ ÎÎŊÎą ÎģÎŋÎŗÎąĪΚιĪÎŧĪ Mastodon, ÎŧĪÎŋĪÎĩίĪ ÎŊÎą ÎĩÎŊΚĪĪĪĪÎĩΚĪ ÎąĪ
ĪÎŽ ĪΡÎŊ ÎąÎŊÎŦĪĪΡĪΡ ÎŗΚι ÎŊÎą ĪΡ ÎŧÎŋΚĪÎąĪĪÎĩίĪ ÎŧÎĩ ĪÎŋĪ
Ī δΚÎēÎŋĪĪ ĪÎŋĪ
ÎąÎēÎŋÎģÎŋĪθÎŋĪ
Ī.",
@@ -307,6 +324,7 @@
"keyboard_shortcuts.direct": "ÎŗΚι ĪÎŋ ÎŦÎŊÎŋΚÎŗÎŧÎą ĪΡĪ ĪĪÎŽÎģΡĪ ΚδΚĪĪΚÎēĪÎŊ ÎĩĪΚĪΡÎŧÎŦÎŊĪÎĩĪÎŊ",
"keyboard_shortcuts.down": "ÎēίÎŊΡĪΡ ĪĪÎŋĪ ĪÎą ÎēÎŦĪĪ ĪĪΡ ÎģίĪĪÎą",
"keyboard_shortcuts.enter": "ÎÎŧĪÎŦÎŊΚĪΡ ÎąÎŊÎŦĪĪΡĪΡĪ",
+ "keyboard_shortcuts.favourite": "ÎÎŗÎąĪΡÎŧÎÎŊΡ δΡÎŧÎŋĪίÎĩĪ
ĪΡ",
"keyboard_shortcuts.federated": "ÎÎŊÎŋΚÎŗÎŧÎą ĪÎŋÎŽĪ ĪĪ
ÎŊÎąÎģÎģÎąÎŗĪÎŊ",
"keyboard_shortcuts.heading": "ÎŖĪ
ÎŊĪÎŋÎŧÎĩĪĪÎĩΚĪ ĪÎģΡÎēĪĪÎŋÎģÎŋÎŗίÎŋĪ
",
"keyboard_shortcuts.home": "ÎÎŊÎŋΚÎŗÎŧÎą ĪÎŋÎŽĪ ÎąĪĪΚÎēÎŽĪ ĪÎĩÎģÎ¯Î´ÎąĪ",
@@ -351,6 +369,7 @@
"lists.search": "ÎÎŊÎąÎļÎŽĪΡĪÎĩ ÎŧÎĩĪιΞĪ ĪĪÎŊ ÎąÎŊθĪĪĪĪÎŊ ĪÎŋĪ
ÎąÎēÎŋĪ
ÎģÎŋĪ
θÎĩίĪ",
"lists.subheading": "ÎΚ ÎģίĪĪÎĩĪ ĪÎŋĪ
",
"load_pending": "{count, plural, one {# ÎŊÎÎŋ ĪĪÎŋΚĪÎĩίÎŋ} other {# ÎŊÎÎą ĪĪÎŋΚĪÎĩÎ¯Îą}}",
+ "loading_indicator.label": "ÎĻĪĪĪĪĪΡâĻ",
"media_gallery.toggle_visible": "{number, plural, one {ÎĪĪÎēĪĪ
ĪΡ ÎĩΚÎēĪÎŊÎąĪ} other {ÎĪĪÎēĪĪ
ĪΡ ÎĩΚÎēĪÎŊĪÎŊ}}",
"moved_to_account_banner.text": "Î ÎģÎŋÎŗÎąĪΚιĪÎŧĪĪ ĪÎŋĪ
{disabledAccount} ÎĩίÎŊιΚ ĪĪÎŋĪĪĪΚÎŊÎŦ ÎąĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚΡÎŧÎÎŊÎŋĪ ÎĩĪÎĩΚδΎ ÎŧÎĩĪÎąĪÎĪθΡÎēÎĩĪ ĪĪÎŋÎŊ {movedToAccount}.",
"mute_modal.duration": "ÎΚÎŦĪÎēÎĩΚι",
@@ -364,7 +383,6 @@
"navigation_bar.direct": "ÎδΚĪĪΚÎēÎĪ ÎĩĪΚĪΡÎŧÎŦÎŊĪÎĩΚĪ",
"navigation_bar.discover": "ÎÎŊÎąÎēÎŦÎģĪ
ĪΡ",
"navigation_bar.domain_blocks": "ÎĪÎŋÎēÎģÎĩΚĪÎŧÎÎŊÎŋΚ ĪÎŋÎŧÎĩίĪ",
- "navigation_bar.edit_profile": "ÎĪÎĩΞÎĩĪÎŗÎąĪÎ¯Îą ĪĪÎŋĪίÎģ",
"navigation_bar.explore": "ÎΞÎĩĪÎĩĪÎŊΡĪΡ",
"navigation_bar.filters": "ÎĪÎŋĪΚĪĪΡÎŧÎÎŊÎĩĪ ÎģÎΞÎĩΚĪ",
"navigation_bar.follow_requests": "ÎΚĪÎŽÎŧÎąĪÎą ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
@@ -373,6 +391,7 @@
"navigation_bar.lists": "ÎίĪĪÎĩĪ",
"navigation_bar.logout": "ÎĪÎŋĪĪÎŊδÎĩĪΡ",
"navigation_bar.mutes": "ÎĪÎŋĪΚĪĪΡÎŧÎÎŊÎŋΚ ĪĪÎŽĪĪÎĩĪ",
+ "navigation_bar.opened_in_classic_interface": "ÎΡÎŧÎŋĪΚÎĩĪĪÎĩΚĪ, ÎģÎŋÎŗÎąĪΚιĪÎŧÎŋί ÎēιΚ ÎŦÎģÎģÎĩĪ ĪĪ
ÎŗÎēÎĩÎēĪΚÎŧÎÎŊÎĩĪ ĪÎĩÎģίδÎĩĪ ÎąÎŊÎŋίÎŗÎŋÎŊĪιΚ ÎąĪĪ ĪĪÎŋÎĩĪΚÎģÎŋÎŗÎŽ ĪĪΡÎŊ ÎēÎģÎąĪΚÎēÎŽ δΚÎĩĪÎąĪÎŽ ΚĪĪÎŋĪ.",
"navigation_bar.personal": "Î ĪÎŋĪĪĪΚÎēÎŦ",
"navigation_bar.pins": "ÎÎąĪĪΚĪĪĪÎŧÎÎŊÎĩĪ ÎąÎŊÎąĪĪÎŽĪÎĩΚĪ",
"navigation_bar.preferences": "Î ĪÎŋĪΚÎŧÎŽĪÎĩΚĪ",
@@ -396,6 +415,7 @@
"notifications.column_settings.admin.report": "ÎÎÎĩĪ ÎąÎŊÎąĪÎŋĪÎĪ:",
"notifications.column_settings.admin.sign_up": "ÎÎÎĩĪ ÎĩÎŗÎŗĪÎąĪÎĪ:",
"notifications.column_settings.alert": "ÎΚδÎŋĪÎŋΚΎĪÎĩΚĪ ÎĩĪΚĪÎŦÎŊÎĩΚιĪ ÎĩĪÎŗÎąĪÎ¯ÎąĪ",
+ "notifications.column_settings.favourite": "ÎÎŗÎąĪΡÎŧÎÎŊÎą:",
"notifications.column_settings.filter_bar.advanced": "ÎÎŧĪÎŦÎŊΚĪΡ ĪÎģĪÎŊ ĪĪÎŊ ÎēÎąĪΡÎŗÎŋĪΚĪÎŊ",
"notifications.column_settings.filter_bar.category": "ÎĪÎŦĪÎą ÎŗĪÎŽÎŗÎŋĪÎŋĪ
ĪίÎģĪĪÎŋĪ
",
"notifications.column_settings.filter_bar.show_bar": "ÎÎŧĪÎŦÎŊΚĪΡ ÎŧĪÎŦĪÎąĪ ĪίÎģĪĪÎŋĪ
",
@@ -432,6 +452,12 @@
"onboarding.actions.go_to_home": "ΠΡÎŗÎąÎ¯ÎŊÎĩĪÎĩ ĪĪΡÎŊ ÎąĪĪΚÎēÎŽ ĪÎąĪ ĪÎŋÎŽ",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting pointâyou can always unfollow them later!",
"onboarding.follows.title": "ÎΡÎŧÎŋĪΚÎģÎŽ ĪĪÎŋ Mastodon",
+ "onboarding.profile.note": "ÎΚÎŋÎŗĪÎąĪΚÎēĪ",
+ "onboarding.profile.note_hint": "ÎĪÎŋĪÎĩίĪÎĩ ÎŊÎą @ÎąÎŊÎąĪÎĪÎĩĪÎĩ ÎŦÎģÎģÎą ÎŦĪÎŋÎŧÎą ÎŽ #hashtagsâĻ",
+ "onboarding.profile.save_and_continue": "ÎĪÎŋθΎÎēÎĩĪ
ĪΡ ÎēιΚ ĪĪ
ÎŊÎĪÎĩΚι",
+ "onboarding.profile.title": "ÎĄĪθÎŧΚĪΡ ĪĪÎŋĪίÎģ",
+ "onboarding.profile.upload_avatar": "ÎÎĩĪÎąĪĪĪĪĪĪΡ ÎĩΚÎēĪÎŊÎąĪ ĪĪÎŋĪίÎģ",
+ "onboarding.profile.upload_header": "ÎÎĩĪÎąĪĪĪĪĪĪΡ ÎēÎĩĪÎąÎģÎ¯Î´ÎąĪ ĪĪÎŋĪίÎģ",
"onboarding.share.lead": "Let people know how they can find you on Mastodon!\nÎÎŊΡÎŧÎĩĪĪĪĪÎĩ ÎŦÎģÎģÎą ÎŦĪÎŋÎŧÎą ĪĪĪ ÎŧĪÎŋĪÎŋĪÎŊ ÎŊÎą ĪÎąĪ βĪÎŋĪ
ÎŊ ĪĪÎŋ Mastodon!",
"onboarding.share.next_steps": "ΠΚθιÎŊÎŦ ÎĩĪĪÎŧÎĩÎŊÎą βΎÎŧÎąĪÎą:",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
@@ -440,6 +466,7 @@
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
"onboarding.steps.publish_status.body": "Say hello to the world.",
+ "onboarding.steps.publish_status.title": "ÎÎŦÎŊĪÎĩ ĪΡÎŊ ĪĪĪĪΡ ĪÎąĪ δΡÎŧÎŋĪίÎĩĪ
ĪΡ",
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
"onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
@@ -449,6 +476,7 @@
"picture_in_picture.restore": "ÎÎŦÎģÎĩ ĪÎŋ ĪίĪĪ",
"poll.closed": "ÎÎģÎĩΚĪĪÎŽ",
"poll.refresh": "ÎÎŊÎąÎŊÎĪĪΡ",
+ "poll.reveal": "ÎÎĩίĪÎĩ ĪÎą ÎąĪÎŋĪÎĩÎģÎĪÎŧÎąĪÎą",
"poll.total_people": "{count, plural, one {# ÎŦĪÎŋÎŧÎŋ} other {# ÎŦĪÎŋÎŧÎą}}",
"poll.total_votes": "{count, plural, one {# ĪÎŽĪÎŋĪ} other {# ĪÎŽĪÎŋΚ}}",
"poll.vote": "ΨΎĪΚĪÎĩ",
@@ -457,16 +485,14 @@
"poll_button.add_poll": "Î ĪÎŋĪθΎÎēΡ δΡÎŧÎŋĪÎēĪĪΡĪΡĪ",
"poll_button.remove_poll": "ÎĪÎąÎ¯ĪÎĩĪΡ δΡÎŧÎŋĪÎēĪĪΡĪΡĪ",
"privacy.change": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ΚδΚĪĪΚÎēĪĪΡĪÎąĪ ÎąÎŊÎŦĪĪΡĪΡĪ",
- "privacy.direct.long": "ÎΡÎŧÎŋĪίÎĩĪ
ĪΡ ÎŧĪÎŊÎŋ ĪÎĩ ĪĪÎŋĪ
Ī ÎĩĪΚĪΡÎŧÎąÎ¯ÎŊÎŋÎŊĪιΚ",
- "privacy.direct.short": "ÎÎŊÎąĪÎĩĪĪÎŧÎĩÎŊÎą ÎŦĪÎŋÎŧÎą ÎŧĪÎŊÎŋ",
- "privacy.private.long": "ÎĪÎąĪĪ ÎŧĪÎŊÎŋ ÎŗΚι ĪÎŋĪ
Ī ÎąÎēÎŋÎģÎŋĪθÎŋĪ
Ī",
- "privacy.private.short": "ÎĪÎŊÎŋ ÎąÎēĪÎģÎŋĪ
θÎŋΚ",
- "privacy.public.long": "ÎĪÎąĪĪ ĪÎĩ ĪÎģÎŋĪ
Ī",
+ "privacy.direct.long": "ÎÎģÎŋΚ ĪĪÎŋΚ ÎąÎŊÎąĪÎĪθΡÎēÎąÎŊ ĪĪΡ δΡÎŧÎŋĪίÎĩĪ
ĪΡ",
+ "privacy.direct.short": "ÎŖĪ
ÎŗÎēÎĩÎēĪΚÎŧÎÎŊÎą ÎŦĪÎŋÎŧÎą",
+ "privacy.private.long": "ÎĪÎŊÎŋ ÎŋΚ ÎąÎēĪÎģÎŋĪ
θÎŋί ĪÎąĪ",
+ "privacy.private.short": "ÎÎēĪÎģÎŋĪ
θÎŋΚ",
"privacy.public.short": "ÎΡÎŧĪĪΚÎŋ",
- "privacy.unlisted.long": "ÎĪÎąĪĪ ÎŗΚι ĪÎģÎŋĪ
Ī, ÎĩÎēĪĪĪ ÎąĪ
ĪĪÎŊ ĪÎŋĪ
δÎĩÎŊ ĪĪ
ÎŧÎŧÎĩĪÎĪÎŋĪ
ÎŊ ĪÎĩ δĪ
ÎŊÎąĪĪĪΡĪÎĩĪ ÎąÎŊÎąÎēÎŦÎģĪ
ĪΡĪ",
- "privacy.unlisted.short": "ÎΡ ÎēÎąĪÎąĪĪĪΡÎŧÎÎŊÎą",
"privacy_policy.last_updated": "ΤÎĩÎģÎĩĪ
ĪÎąÎ¯Îą ÎĩÎŊΡÎŧÎĪĪĪΡ {date}",
"privacy_policy.title": "Î ÎŋÎģΚĪΚÎēÎŽ ÎĪÎŋĪĪÎŽĪÎŋĪ
",
+ "recommended": "Î ĪÎŋĪÎĩΚÎŊĪÎŧÎĩÎŊÎą",
"refresh": "ÎÎŊÎąÎŊÎĪĪΡ",
"regeneration_indicator.label": "ÎĻÎŋĪĪĪÎŊÎĩΚâĻ",
"regeneration_indicator.sublabel": "Î ÎąĪĪΚÎēÎŽ ĪÎŋĪ
ĪÎŋÎŽ ÎĩĪÎŋΚÎŧÎŦÎļÎĩĪιΚ!",
@@ -482,8 +508,10 @@
"relative_time.seconds": "{number}δ",
"relative_time.today": "ĪÎŽÎŧÎĩĪÎą",
"reply_indicator.cancel": "ÎÎēĪ
ĪÎŋ",
+ "reply_indicator.poll": "ÎΡÎŧÎŋĪÎēĪĪΡĪΡ",
"report.block": "ÎĪÎŋÎēÎģÎĩΚĪÎŧĪĪ",
"report.block_explanation": "ÎÎĩÎŊ θι βÎģÎĪÎĩΚĪ ĪΚĪ ÎąÎŊÎąĪĪÎŽĪÎĩΚĪ ĪÎŋĪ
. ÎÎĩÎŊ θι ÎŧĪÎŋĪÎĩί ÎŊÎą δÎĩΚ ĪΚĪ ÎąÎŊÎąĪĪÎŽĪÎĩΚĪ ĪÎŋĪ
ÎŽ ÎŊÎą ĪÎĩ ÎąÎēÎŋÎģÎŋĪ
θΎĪÎĩΚ. ÎÎą ÎŧĪÎŋĪÎĩί ÎŊÎą δÎĩΚ ĪĪΚ ÎĪÎĩΚ ÎąĪÎŋÎēÎģÎĩΚĪĪÎĩί.",
+ "report.categories.legal": "ÎÎŋÎŧΚÎēĪ ĪÎĩĪΚÎĩĪĪÎŧÎĩÎŊÎŋ",
"report.categories.other": "ÎÎģÎģÎĩĪ",
"report.categories.spam": "ÎÎŊÎĩĪΚθĪÎŧΡĪÎą",
"report.categories.violation": "ΤÎŋ ĪÎĩĪΚÎĩĪĪÎŧÎĩÎŊÎŋ ĪÎąĪιβΚÎŦÎļÎĩΚ ÎÎŊÎąÎŊ ÎŽ ĪÎĩĪΚĪĪĪĪÎĩĪÎŋĪ
Ī ÎēÎąÎŊĪÎŊÎĩĪ δΚιÎēÎŋÎŧΚĪĪÎŽ",
@@ -501,6 +529,8 @@
"report.placeholder": "ÎĪΚĪÎģÎÎŋÎŊ ĪĪĪÎģΚι",
"report.reasons.dislike": "ÎÎĩÎŊ ÎŧÎŋĪ
ÎąĪÎĪÎĩΚ",
"report.reasons.dislike_description": "ÎÎĩÎŊ ÎĩίÎŊιΚ ÎēÎŦĪΚ ĪÎŋĪ
θι ΎθÎĩÎģÎĩĪ ÎŊÎą δÎĩΚĪ",
+ "report.reasons.legal": "ÎίÎŊιΚ ĪÎąĪÎŦÎŊÎŋÎŧÎŋ",
+ "report.reasons.legal_description": "ΠΚĪĪÎĩĪÎĩĪÎĩ ĪĪΚ ĪÎąĪιβΚÎŦÎļÎĩΚ ĪÎŋ ÎŊĪÎŧÎŋ ĪΡĪ ĪĪĪÎąĪ ĪÎąĪ ÎŽ ĪΡĪ ĪĪĪÎąĪ ĪÎŋĪ
δΚιÎēÎŋÎŧΚĪĪÎŽ",
"report.reasons.other": "ÎίÎŊιΚ ÎēÎŦĪΚ ÎŦÎģÎģÎŋ",
"report.reasons.other_description": "ΤÎŋ ÎļÎŽĪΡÎŧÎą δÎĩÎŊ ĪιΚĪΚÎŦÎļÎĩΚ ĪÎĩ ÎŦÎģÎģÎĩĪ ÎēÎąĪΡÎŗÎŋĪίÎĩĪ",
"report.reasons.spam": "ÎίÎŊιΚ ĪĪÎąÎŧ",
@@ -534,10 +564,12 @@
"search.search_or_paste": "ÎÎŊÎąÎļÎŽĪΡĪΡ ÎŽ ÎĩΚĪÎąÎŗĪÎŗÎŽ URL",
"search_popout.quick_actions": "ÎĪÎŽÎŗÎŋĪÎĩĪ ÎĩÎŊÎĪÎŗÎĩΚÎĩĪ",
"search_popout.recent": "Î ĪĪĪĪÎąĪÎĩĪ ÎąÎŊÎąÎļΡĪÎŽĪÎĩΚĪ",
+ "search_popout.user": "ĪĪÎŽĪĪΡĪ",
"search_results.accounts": "Î ĪÎŋĪίÎģ",
"search_results.all": "ÎÎģÎą",
"search_results.hashtags": "ÎĪΚÎēÎĪÎĩĪ",
"search_results.nothing_found": "ÎÎĩÎŊ βĪÎθΡÎēÎĩ ĪίĪÎŋĪÎą ÎŧÎĩ ÎąĪ
ĪÎŋĪĪ ĪÎŋĪ
Ī ĪĪÎŋĪ
Ī ÎąÎŊÎąÎļÎŽĪΡĪΡĪ",
+ "search_results.see_all": "ÎÎĩĪ ĪÎą ĪÎģÎą",
"search_results.statuses": "ÎÎŊÎąĪĪÎŽĪÎĩΚĪ",
"search_results.title": "ÎÎŊÎąÎļÎŽĪΡĪΡ ÎŗΚι {q}",
"server_banner.about_active_users": "ÎĪÎŋÎŧÎą ĪÎŋĪ
ĪĪΡĪΚÎŧÎŋĪÎŋΚÎŋĪÎŊ ÎąĪ
ĪĪÎŊ ĪÎŋÎŊ δΚιÎēÎŋÎŧΚĪĪÎŽ ÎēÎąĪÎŦ ĪΚĪ ĪÎĩÎģÎĩĪ
ĪÎąÎ¯ÎĩĪ 30 ΡÎŧÎĪÎĩĪ (ÎΡÎŊÎšÎąÎ¯Îą ÎÎŊÎĩĪÎŗÎŋί ΧĪÎŽĪĪÎĩĪ)",
@@ -548,6 +580,8 @@
"server_banner.server_stats": "ÎŖĪÎąĪΚĪĪΚÎēÎŦ δΚιÎēÎŋÎŧΚĪĪÎŽ:",
"sign_in_banner.create_account": "ÎΡÎŧΚÎŋĪ
ĪÎŗÎ¯Îą ÎģÎŋÎŗÎąĪΚιĪÎŧÎŋĪ",
"sign_in_banner.sign_in": "ÎŖĪÎŊδÎĩĪΡ",
+ "sign_in_banner.sso_redirect": "ÎŖĪ
ÎŊδÎĩθÎĩίĪÎĩ ÎŽ ÎÎŗÎŗĪÎąĪÎĩίĪÎĩ",
+ "sign_in_banner.text": "ÎŖĪ
ÎŊδÎĩθÎĩίĪÎĩ ÎŗΚι ÎŊÎą ÎąÎēÎŋÎģÎŋĪ
θΎĪÎĩĪÎĩ ĪĪÎŋĪίÎģ ÎŽ ÎĩĪΚÎēÎĪÎĩĪ, ÎąÎŗÎąĪÎŽĪĪÎĩ, ÎŧÎŋΚĪÎąĪĪÎĩίĪÎĩ ÎēιΚ ÎąĪÎąÎŊĪÎŽĪĪÎĩ ĪÎĩ δΡÎŧÎŋĪΚÎĩĪĪÎĩΚĪ. ÎĪÎŋĪÎĩίĪÎĩ ÎĩĪίĪΡĪ ÎŊÎą ÎąÎģÎģΡÎģÎĩĪΚδĪÎŦĪÎĩĪÎĩ ÎąĪĪ ĪÎŋÎŊ ÎģÎŋÎŗÎąĪΚιĪÎŧĪ ĪÎąĪ ĪÎĩ δΚιĪÎŋĪÎĩĪΚÎēĪ δΚιÎēÎŋÎŧΚĪĪÎŽ.",
"status.admin_account": "ÎÎŊÎŋΚÎŗÎŧÎą δΚÎĩĪÎąĪÎŽĪ ĪĪ
ÎŊĪÎŋÎŊΚĪÎŧÎŋĪ ÎŗΚι ĪÎŋÎŊ/ĪΡÎŊ @{name}",
"status.admin_domain": "ÎÎŊÎŋΚÎŗÎŧÎą ÎģÎĩΚĪÎŋĪ
ĪÎŗÎ¯ÎąĪ δΚιÎŧÎĩĪÎŋÎģÎŦβΡĪΡĪ ÎŗΚι {domain}",
"status.admin_status": "ÎÎŊÎŋΚÎŗÎŧÎą ÎąĪ
ĪÎŽĪ ĪΡĪ ÎąÎŊÎŦĪĪΡĪΡĪ ĪÎĩ δΚÎĩĪÎąĪÎŽ ĪĪ
ÎŊĪÎŋÎŊΚĪÎŧÎŋĪ",
@@ -564,6 +598,7 @@
"status.edited": "ÎĪÎĩΞÎĩĪÎŗÎŦĪĪΡÎēÎĩ ĪĪΚĪ {date}",
"status.edited_x_times": "ÎĪÎĩΞÎĩĪÎŗÎŦĪĪΡÎēÎĩ {count, plural, one {{count} ĪÎŋĪÎŦ} other {{count} ĪÎŋĪÎĪ}}",
"status.embed": "ÎÎŊĪĪÎŧÎŦĪĪĪÎĩ",
+ "status.favourite": "ÎÎŗÎąĪΡÎŧÎÎŊÎą",
"status.filter": "ÎĻΚÎģĪĪÎŦĪΚĪÎŧÎą ÎąĪ
ĪÎŽĪ ĪΡĪ ÎąÎŊÎŦĪĪΡĪΡĪ",
"status.filtered": "ÎĻΚÎģĪĪÎąĪΚĪÎŧÎÎŊÎą",
"status.hide": "ÎĪĪÎēĪĪ
ĪΡ ÎąÎŊÎŦĪĪΡĪΡĪ",
@@ -628,10 +663,8 @@
"upload_error.poll": "ÎŖĪΚĪ δΡÎŧÎŋĪÎēÎŋĪÎŽĪÎĩΚĪ δÎĩÎŊ ÎĩĪΚĪĪÎĪÎĩĪιΚ Ρ ÎŧÎĩĪÎąĪĪĪĪĪĪΡ ÎąĪĪÎĩίÎŋĪ
.",
"upload_form.audio_description": "Î ÎĩĪΚÎŗĪÎąĪÎŽ ÎŗΚι ÎŦĪÎŋÎŧÎą ÎŧÎĩ ĪĪÎŋβÎģÎŽÎŧÎąĪÎą ÎąÎēÎŋÎŽĪ",
"upload_form.description": "Î ÎĩĪΚÎŗĪÎąĪÎŽ ÎŗΚι ÎŦĪÎŋÎŧÎą ÎŧÎĩ ĪĪÎŋβÎģÎŽÎŧÎąĪÎą ĪĪÎąĪΡĪ",
- "upload_form.description_missing": "ÎÎĩÎŊ ĪĪÎŋĪĪÎθΡÎēÎĩ ĪÎĩĪΚÎŗĪÎąĪÎŽ",
"upload_form.edit": "ÎĪÎĩΞÎĩĪÎŗÎąĪÎ¯Îą",
"upload_form.thumbnail": "ÎÎģÎģÎąÎŗÎŽ ÎŧΚÎēĪÎŋÎŗĪÎąĪÎ¯ÎąĪ",
- "upload_form.undo": "ÎΚιÎŗĪÎąĪÎŽ",
"upload_form.video_description": "Î ÎĩĪΚÎŗĪÎąĪÎŽ ÎŗΚι ÎŦĪÎŋÎŧÎą ÎŧÎĩ ĪĪÎŋβÎģÎŽÎŧÎąĪÎą ÎąÎēÎŋÎŽĪ ÎŽ ĪĪÎąĪΡĪ",
"upload_modal.analyzing_picture": "ÎÎŊÎŦÎģĪ
ĪΡ ÎĩΚÎēĪÎŊÎąĪâĻ",
"upload_modal.apply": "ÎĪÎąĪÎŧÎŋÎŗÎŽ",
diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json
index 1a67fecb6..2cf1b4dba 100644
--- a/app/javascript/mastodon/locales/en-GB.json
+++ b/app/javascript/mastodon/locales/en-GB.json
@@ -38,7 +38,6 @@
"account.following": "Following",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "This user doesn't follow anyone yet.",
- "account.follows_you": "Follows you",
"account.go_to_profile": "Go to profile",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.in_memoriam": "In Memoriam.",
@@ -88,7 +87,6 @@
"announcement.announcement": "Announcement",
"attachments_list.unprocessed": "(unprocessed)",
"audio.hide": "Hide audio",
- "autosuggest_hashtag.per_week": "{count} per week",
"boost_modal.combo": "You can press {combo} to skip this next time",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
@@ -145,22 +143,12 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What's on your mind?",
- "compose_form.poll.add_option": "Add a choice",
"compose_form.poll.duration": "Poll duration",
- "compose_form.poll.option_placeholder": "Choice {number}",
- "compose_form.poll.remove_option": "Remove this choice",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
- "compose_form.publish": "Publish",
"compose_form.publish_form": "New post",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Save changes",
- "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
- "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
"compose_form.spoiler.marked": "Remove content warning",
"compose_form.spoiler.unmarked": "Add content warning",
- "compose_form.spoiler_placeholder": "Write your warning here",
"confirmation_modal.cancel": "Cancel",
"confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
@@ -407,7 +395,6 @@
"navigation_bar.direct": "Private mentions",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Blocked domains",
- "navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
@@ -525,14 +512,7 @@
"poll_button.add_poll": "Add a poll",
"poll_button.remove_poll": "Remove poll",
"privacy.change": "Change post privacy",
- "privacy.direct.long": "Visible for mentioned users only",
- "privacy.direct.short": "Mentioned people only",
- "privacy.private.long": "Visible for followers only",
- "privacy.private.short": "Followers-only",
- "privacy.public.long": "Visible for all",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
- "privacy.unlisted.short": "Unlisted",
"privacy_policy.last_updated": "Last updated {date}",
"privacy_policy.title": "Privacy Policy",
"recommended": "Recommended",
@@ -714,10 +694,8 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people who are deaf or hard of hearing",
"upload_form.description": "Describe for people who are blind or have low vision",
- "upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
- "upload_form.undo": "Delete",
"upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision",
"upload_modal.analyzing_picture": "Analysing pictureâĻ",
"upload_modal.apply": "Apply",
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 05d7d1656..12d0068d6 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "No posts",
"account.featured_tags.title": "{name}'s featured hashtags",
"account.follow": "Follow",
+ "account.follow_back": "Follow back",
"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.go_to_profile": "Go to profile",
"account.hide_reblogs": "Hide boosts from @{name}",
"account.in_memoriam": "In Memoriam.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Mute notifications",
"account.mute_short": "Mute",
"account.muted": "Muted",
+ "account.mutual": "Mutual",
"account.no_bio": "No description provided.",
"account.open_original_page": "Open original page",
"account.posts": "Posts",
@@ -88,7 +89,6 @@
"announcement.announcement": "Announcement",
"attachments_list.unprocessed": "(unprocessed)",
"audio.hide": "Hide audio",
- "autosuggest_hashtag.per_week": "{count} per week",
"boost_modal.combo": "You can press {combo} to skip this next time",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
@@ -145,22 +145,20 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What's on your mind?",
- "compose_form.poll.add_option": "Add a choice",
"compose_form.poll.duration": "Poll duration",
- "compose_form.poll.option_placeholder": "Choice {number}",
- "compose_form.poll.remove_option": "Remove this choice",
+ "compose_form.poll.multiple": "Multiple choice",
+ "compose_form.poll.option_placeholder": "Option {number}",
+ "compose_form.poll.single": "Pick one",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
- "compose_form.publish": "Publish",
+ "compose_form.poll.type": "Style",
+ "compose_form.publish": "Post",
"compose_form.publish_form": "New post",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Save changes",
- "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
- "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
+ "compose_form.reply": "Reply",
+ "compose_form.save_changes": "Update",
"compose_form.spoiler.marked": "Remove content warning",
"compose_form.spoiler.unmarked": "Add content warning",
- "compose_form.spoiler_placeholder": "Write your warning here",
+ "compose_form.spoiler_placeholder": "Content warning (optional)",
"confirmation_modal.cancel": "Cancel",
"confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
@@ -279,6 +277,12 @@
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
+ "follow_suggestions.curated_suggestion": "Editors' Choice",
+ "follow_suggestions.dismiss": "Don't show again",
+ "follow_suggestions.personalized_suggestion": "Personalized suggestion",
+ "follow_suggestions.popular_suggestion": "Popular suggestion",
+ "follow_suggestions.view_all": "View all",
+ "follow_suggestions.who_to_follow": "Who to follow",
"followed_tags": "Followed hashtags",
"footer.about": "About",
"footer.directory": "Profiles directory",
@@ -305,13 +309,9 @@
"hashtag.follow": "Follow hashtag",
"hashtag.unfollow": "Unfollow hashtag",
"hashtags.and_other": "âĻand {count, plural, other {# more}}",
- "home.actions.go_to_explore": "See what's trending",
- "home.actions.go_to_suggestions": "Find people to follow",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
- "home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. If that feels too quiet, you may want to:",
- "home.explore_prompt.title": "This is your home base within Mastodon.",
"home.hide_announcements": "Hide announcements",
"home.pending_critical_update.body": "Please update your Mastodon server as soon as possible!",
"home.pending_critical_update.link": "See updates",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Private mentions",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Blocked domains",
- "navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favorites",
"navigation_bar.filters": "Muted words",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "Add a poll",
"poll_button.remove_poll": "Remove poll",
"privacy.change": "Change post privacy",
- "privacy.direct.long": "Visible for mentioned users only",
- "privacy.direct.short": "Mentioned people only",
- "privacy.private.long": "Visible for followers only",
- "privacy.private.short": "Followers only",
- "privacy.public.long": "Visible for all",
+ "privacy.direct.long": "Everyone mentioned in the post",
+ "privacy.direct.short": "Specific people",
+ "privacy.private.long": "Only your followers",
+ "privacy.private.short": "Followers",
+ "privacy.public.long": "Anyone on and off Mastodon",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
- "privacy.unlisted.short": "Unlisted",
+ "privacy.unlisted.additional": "This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.",
+ "privacy.unlisted.long": "Fewer algorithmic fanfares",
+ "privacy.unlisted.short": "Quiet public",
"privacy_policy.last_updated": "Last updated {date}",
"privacy_policy.title": "Privacy Policy",
"recommended": "Recommended",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "today",
+ "reply_indicator.attachments": "{count, plural, one {# attachment} other {# attachments}}",
"reply_indicator.cancel": "Cancel",
+ "reply_indicator.poll": "Poll",
"report.block": "Block",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.categories.legal": "Legal",
@@ -714,10 +716,8 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people who are deaf or hard of hearing",
"upload_form.description": "Describe for people who are blind or have low vision",
- "upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
- "upload_form.undo": "Delete",
"upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision",
"upload_modal.analyzing_picture": "Analyzing pictureâĻ",
"upload_modal.apply": "Apply",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 2678d83a5..907a918af 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Neniu afiÅo",
"account.featured_tags.title": "Rekomendataj kradvortoj de {name}",
"account.follow": "Sekvi",
+ "account.follow_back": "Sekvu reen",
"account.followers": "Sekvantoj",
"account.followers.empty": "AnkoraÅ neniu sekvas Äi tiun uzanton.",
"account.followers_counter": "{count, plural, one{{counter} Sekvanto} other {{counter} Sekvantoj}}",
"account.following": "Sekvatoj",
"account.following_counter": "{count, plural, one {{counter} Sekvato} other {{counter} Sekvatoj}}",
"account.follows.empty": "La uzanto ankoraÅ ne sekvas iun ajn.",
- "account.follows_you": "Sekvas vin",
"account.go_to_profile": "Iri al profilo",
"account.hide_reblogs": "KaÅi diskonigojn de @{name}",
"account.in_memoriam": "Memore.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silentigu Sciigojn",
"account.mute_short": "Silentigu",
"account.muted": "Silentigita",
+ "account.mutual": "Reciproka",
"account.no_bio": "Neniu priskribo estas provizita.",
"account.open_original_page": "Malfermi la originalan paÄon",
"account.posts": "AfiÅoj",
@@ -88,7 +89,6 @@
"announcement.announcement": "Anoncoj",
"attachments_list.unprocessed": "(neprilaborita)",
"audio.hide": "KaÅi aÅdion",
- "autosuggest_hashtag.per_week": "po {count} por semajno",
"boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje",
"bundle_column_error.copy_stacktrace": "Kopii la eraran raporton",
"bundle_column_error.error.body": "La petita paÄo ne povas redonitis. Eble estas eraro.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "Via konto ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn afiÅojn nur al la sekvantoj.",
"compose_form.lock_disclaimer.lock": "Ålosita",
"compose_form.placeholder": "Kion vi pensas?",
- "compose_form.poll.add_option": "Aldoni elekteblon",
"compose_form.poll.duration": "DaÅro de la balotenketo",
- "compose_form.poll.option_placeholder": "Elekteblo {number}",
- "compose_form.poll.remove_option": "Forigi Äi tiu elekteblon",
"compose_form.poll.switch_to_multiple": "ÅanÄi la balotenketon por permesi multajn elektojn",
"compose_form.poll.switch_to_single": "ÅanÄi la balotenketon por permesi unu solan elekton",
- "compose_form.publish": "AfiÅi",
"compose_form.publish_form": "AfiÅi",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Konservi ÅanÄojn",
- "compose_form.sensitive.hide": "{count, plural, one {Marki la plurmedio kiel tikla} other {Marki la plurmedioj kiel tiklaj}}",
- "compose_form.sensitive.marked": "{count, plural, one {La plurmedio estas markita kiel tikla} other {La plurmedioj estas markitaj kiel tiklaj}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {La plurmedio ne estas markita kiel tikla} other {La plurmedioj ne estas markitaj kiel tiklaj}}",
"compose_form.spoiler.marked": "Forigi la averton de enhavo",
"compose_form.spoiler.unmarked": "Aldoni averton de enhavo",
- "compose_form.spoiler_placeholder": "Skribu vian averton Äi tie",
"confirmation_modal.cancel": "Nuligi",
"confirmations.block.block_and_report": "Bloki kaj raporti",
"confirmations.block.confirm": "Bloki",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "Privataj mencioj",
"navigation_bar.discover": "Esplori",
"navigation_bar.domain_blocks": "Blokitaj domajnoj",
- "navigation_bar.edit_profile": "Redakti profilon",
"navigation_bar.explore": "Esplori",
"navigation_bar.favourites": "Stelumoj",
"navigation_bar.filters": "Silentigitaj vortoj",
@@ -510,6 +499,8 @@
"onboarding.tips.2fa": "
Äu vi scias? Vi povas sekurigi vian konton per efektivigi dufaktora autentigo en via kontoagordoj.",
"onboarding.tips.accounts_from_other_servers": "
Äu vi scias? Äar Mastodon estas sencentra, kelkaj profiloj kiujn vi trovi estas gastigitaj Äe aliaj serviloj kiuj ne estas via.",
"onboarding.tips.migration": "
Äu vi scias? Se vi sentas ke {domain} ne estas bona servilelekto por vi en la estonteco, vi povas translokiÄi al alia servilo de Mastodon sen malgajni viajn sekvantojn.",
+ "onboarding.tips.verification": "
Äu vi sciis? Vi povas kontroli vian konton metante ligilon al via Mastodon-profilo en via propra retejo kaj aldonante la retejon al via profilo. Neniuj kotizoj aÅ dokumentoj necesaj!",
+ "password_confirmation.exceeds_maxlength": "Pasvorto-konfirmo superas la maksimuman pasvortan longon",
"password_confirmation.mismatching": "Pasvorto konfirmo ne kongruas",
"picture_in_picture.restore": "Remetu Äin",
"poll.closed": "Finita",
@@ -523,16 +514,10 @@
"poll_button.add_poll": "Aldoni balotenketon",
"poll_button.remove_poll": "Forigi balotenketon",
"privacy.change": "Agordi mesaÄan privatecon",
- "privacy.direct.long": "Videbla nur al menciitaj uzantoj",
- "privacy.direct.short": "Nur menciitaj personoj",
- "privacy.private.long": "Videbla nur al viaj sekvantoj",
- "privacy.private.short": "Nur abonantoj",
- "privacy.public.long": "Videbla por Äiuj",
"privacy.public.short": "Publika",
- "privacy.unlisted.long": "Videbla por Äiuj, sed ekskluzive el la funkcio de esploro",
- "privacy.unlisted.short": "Nelistigita",
"privacy_policy.last_updated": "Laste Äisdatigita en {date}",
"privacy_policy.title": "Politiko de privateco",
+ "recommended": "Rekomendita",
"refresh": "RefreÅigu",
"regeneration_indicator.label": "ÅargadoâĻ",
"regeneration_indicator.sublabel": "Via abonfluo estas preparata!",
@@ -550,6 +535,7 @@
"reply_indicator.cancel": "Nuligi",
"report.block": "Bloki",
"report.block_explanation": "Vi ne vidos iliajn afiÅojn. Ili ne povos vidi viajn afiÅojn, nek sekvi vin. Ili ne scios, ke vi blokas ilin.",
+ "report.categories.legal": "LaÅleÄa",
"report.categories.other": "Aliaj",
"report.categories.spam": "TrudmesaÄo",
"report.categories.violation": "Enhavo malobservas unu aÅ plurajn servilajn regulojn",
@@ -588,6 +574,7 @@
"report.unfollow": "Malsekvi @{name}",
"report.unfollow_explanation": "Vi sekvas Äi tiun konton. Por ne plu vidi Äiajn afiÅojn en via hejma templinio, Äesu sekvi Äin.",
"report_notification.attached_statuses": "{count, plural, one {{count} afiÅo almetita} other {{count} afiÅoj almetitaj}}",
+ "report_notification.categories.legal": "LaÅleÄa",
"report_notification.categories.other": "Alia",
"report_notification.categories.spam": "TrudmesaÄo",
"report_notification.categories.violation": "Malobservo de la regulo",
@@ -600,13 +587,19 @@
"search.quick_action.open_url": "Malfermi URL en Mastodono",
"search.quick_action.status_search": "AfiÅoj kiuj kongruas kun {x}",
"search.search_or_paste": "SerÄu aÅ algluu URL-on",
+ "search_popout.full_text_search_disabled_message": "Ne havebla sur {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Disponebla nur kiam ensalutinte.",
+ "search_popout.language_code": "ISO-lingva kodo",
+ "search_popout.options": "SerÄaj opcioj",
"search_popout.quick_actions": "Rapidaj agoj",
"search_popout.recent": "Lastaj serÄoj",
+ "search_popout.specific_date": "specifa dato",
"search_popout.user": "uzanto",
"search_results.accounts": "Profiloj",
"search_results.all": "Äiuj",
"search_results.hashtags": "Kradvortoj",
"search_results.nothing_found": "Povis trovi nenion por Äi tiuj serÄaj terminoj",
+ "search_results.see_all": "Vidu Äiujn",
"search_results.statuses": "AfiÅoj",
"search_results.title": "SerÄ-rezultoj por {q}",
"server_banner.about_active_users": "Personoj uzantaj Äi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)",
@@ -617,6 +610,8 @@
"server_banner.server_stats": "Statistikoj de la servilo:",
"sign_in_banner.create_account": "Krei konton",
"sign_in_banner.sign_in": "Saluti",
+ "sign_in_banner.sso_redirect": "Ensalutu aÅ RegistriÄi",
+ "sign_in_banner.text": "Ensalutu por sekvi profilojn aÅ haÅetikedojn, Åatatajn, dividi kaj respondi afiÅojn. Vi ankaÅ povas interagi de via konto sur alia servilo.",
"status.admin_account": "Malfermi fasadon de moderigado por @{name}",
"status.admin_domain": "Malfermu moderigan interfacon por {domain}",
"status.admin_status": "Malfermi Äi tiun mesaÄon en la kontrola interfaco",
@@ -633,6 +628,7 @@
"status.edited": "Redaktita {date}",
"status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}",
"status.embed": "Enkorpigi",
+ "status.favourite": "Åatata",
"status.filter": "Filtri Äi tiun afiÅon",
"status.filtered": "Filtrita",
"status.hide": "KaÅi mesaÄon",
@@ -700,10 +696,8 @@
"upload_error.poll": "AlÅuto de dosiero ne permesita kun balotenketo.",
"upload_form.audio_description": "Priskribi por homoj kiuj malfacile aÅdi",
"upload_form.description": "Priskribi por personoj, kiuj estas blindaj aÅ havas vidmalsufiÄon",
- "upload_form.description_missing": "Neniu priskribo aldonita",
"upload_form.edit": "Redakti",
"upload_form.thumbnail": "ÅanÄi etigita bildo",
- "upload_form.undo": "Forigi",
"upload_form.video_description": "Priskribi por homoj kiuj malfacile aÅdi aÅ vidi",
"upload_modal.analyzing_picture": "Bilda analizadoâĻ",
"upload_modal.apply": "Apliki",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index 4573f4ab9..8816f18af 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Sin mensajes",
"account.featured_tags.title": "Etiquetas destacadas de {name}",
"account.follow": "Seguir",
+ "account.follow_back": "Seguir",
"account.followers": "Seguidores",
"account.followers.empty": "TodavÃa nadie sigue a este usuario.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "Siguiendo",
"account.following_counter": "{count, plural, other {Siguiendo a {counter}}}",
"account.follows.empty": "TodavÃa este usuario no sigue a nadie.",
- "account.follows_you": "Te sigue",
"account.go_to_profile": "Ir al perfil",
"account.hide_reblogs": "Ocultar adhesiones de @{name}",
"account.in_memoriam": "Cuenta conmemorativa.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silenciar notificaciones",
"account.mute_short": "Silenciar",
"account.muted": "Silenciado",
+ "account.mutual": "Seguimiento mutuo",
"account.no_bio": "Sin descripciÃŗn provista.",
"account.open_original_page": "Abrir pÃĄgina original",
"account.posts": "Mensajes",
@@ -88,7 +89,6 @@
"announcement.announcement": "Anuncio",
"attachments_list.unprocessed": "[sin procesar]",
"audio.hide": "Ocultar audio",
- "autosuggest_hashtag.per_week": "{count} por semana",
"boost_modal.combo": "PodÊs hacer clic en {combo} para saltar esto la prÃŗxima vez",
"bundle_column_error.copy_stacktrace": "Copiar informe de error",
"bundle_column_error.error.body": "La pÃĄgina solicitada no pudo ser cargada. PodrÃa deberse a un error de programaciÃŗn en nuestro cÃŗdigo o a un problema de compatibilidad con el navegador web.",
@@ -145,22 +145,21 @@
"compose_form.lock_disclaimer": "Tu cuenta no es {locked}. Todos pueden seguirte para ver tus mensajes marcados como \"SÃŗlo para seguidores\".",
"compose_form.lock_disclaimer.lock": "privada",
"compose_form.placeholder": "ÂŋQuÊ onda?",
- "compose_form.poll.add_option": "AgregÃĄ una opciÃŗn",
"compose_form.poll.duration": "DuraciÃŗn de la encuesta",
+ "compose_form.poll.multiple": "SelecciÃŗn mÃēltiple",
"compose_form.poll.option_placeholder": "OpciÃŗn {number}",
"compose_form.poll.remove_option": "Quitar esta opciÃŗn",
+ "compose_form.poll.single": "Elige uno",
"compose_form.poll.switch_to_multiple": "Cambiar encuesta para permitir opciones mÃēltiples",
"compose_form.poll.switch_to_single": "Cambiar encuesta para permitir una sola opciÃŗn",
+ "compose_form.poll.type": "Estilo",
"compose_form.publish": "Publicar",
"compose_form.publish_form": "Nuevo mensaje",
- "compose_form.publish_loud": "ÂĄ{publish}!",
- "compose_form.save_changes": "Guardar cambios",
- "compose_form.sensitive.hide": "Marcar medio como sensible",
- "compose_form.sensitive.marked": "{count, plural, one {El medio estÃĄ marcado como sensible} other {Los medios estÃĄn marcados como sensibles}}",
- "compose_form.sensitive.unmarked": "El medio no estÃĄ marcado como sensible",
+ "compose_form.reply": "Responder",
+ "compose_form.save_changes": "Actualizar",
"compose_form.spoiler.marked": "Quitar advertencia de contenido",
"compose_form.spoiler.unmarked": "Agregar advertencia de contenido",
- "compose_form.spoiler_placeholder": "Escribà tu advertencia acÃĄ",
+ "compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.block_and_report": "Bloquear y denunciar",
"confirmations.block.confirm": "Bloquear",
@@ -407,7 +406,6 @@
"navigation_bar.direct": "Menciones privadas",
"navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios bloqueados",
- "navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "ExplorÃĄ",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
@@ -525,14 +523,10 @@
"poll_button.add_poll": "Agregar encuesta",
"poll_button.remove_poll": "Quitar encuesta",
"privacy.change": "Configurar privacidad del mensaje",
- "privacy.direct.long": "Visible sÃŗlo para los usuarios mencionados",
- "privacy.direct.short": "SÃŗlo cuentas mencionadas",
- "privacy.private.long": "Visible sÃŗlo para los seguidores",
- "privacy.private.short": "SÃŗlo para seguidores",
- "privacy.public.long": "Visible para todos",
+ "privacy.direct.short": "Personas especÃficas",
+ "privacy.private.long": "Solo tus seguidores",
+ "privacy.private.short": "Seguidores",
"privacy.public.short": "PÃēblico",
- "privacy.unlisted.long": "Visible para todos, pero excluido de las caracterÃsticas de descubrimiento",
- "privacy.unlisted.short": "No listado",
"privacy_policy.last_updated": "Ãltima actualizaciÃŗn: {date}",
"privacy_policy.title": "PolÃtica de privacidad",
"recommended": "OpciÃŗn recomendada",
@@ -714,10 +708,8 @@
"upload_error.poll": "No se permite la subida de archivos en encuestas.",
"upload_form.audio_description": "AgregÃĄ una descripciÃŗn para personas con dificultades auditivas",
"upload_form.description": "AgregÃĄ una descripciÃŗn para personas con dificultades visuales",
- "upload_form.description_missing": "No se agregÃŗ descripciÃŗn",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura",
- "upload_form.undo": "Eliminar",
"upload_form.video_description": "AgregÃĄ una descripciÃŗn para personas con dificultades auditivas o visuales",
"upload_modal.analyzing_picture": "Analizando imagenâĻ",
"upload_modal.apply": "Aplicar",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index 0d26afef2..fdc57ac6d 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Sin publicaciones",
"account.featured_tags.title": "Etiquetas destacadas de {name}",
"account.follow": "Seguir",
+ "account.follow_back": "Seguir tambiÊn",
"account.followers": "Seguidores",
"account.followers.empty": "TodavÃa nadie sigue a este usuario.",
"account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
"account.following": "Siguiendo",
"account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
"account.follows.empty": "Este usuario todavÃa no sigue a nadie.",
- "account.follows_you": "Te sigue",
"account.go_to_profile": "Ir al perfil",
"account.hide_reblogs": "Ocultar retoots de @{name}",
"account.in_memoriam": "En memoria.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silenciar notificaciones",
"account.mute_short": "Silenciar",
"account.muted": "Silenciado",
+ "account.mutual": "Mutuo",
"account.no_bio": "Sin biografÃa.",
"account.open_original_page": "Abrir pÃĄgina original",
"account.posts": "Publicaciones",
@@ -88,7 +89,6 @@
"announcement.announcement": "Anuncio",
"attachments_list.unprocessed": "(sin procesar)",
"audio.hide": "Ocultar audio",
- "autosuggest_hashtag.per_week": "{count} por semana",
"boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la prÃŗxima vez",
"bundle_column_error.copy_stacktrace": "Copiar informe de error",
"bundle_column_error.error.body": "La pÃĄgina solicitada no pudo ser renderizada. PodrÃa deberse a un error en nuestro cÃŗdigo o a un problema de compatibilidad con el navegador.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "Tu cuenta no estÃĄ bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
"compose_form.lock_disclaimer.lock": "bloqueado",
"compose_form.placeholder": "ÂŋEn quÊ estÃĄs pensando?",
- "compose_form.poll.add_option": "AÃąadir una opciÃŗn",
+ "compose_form.poll.add_option": "Agregar opciÃŗn",
"compose_form.poll.duration": "DuraciÃŗn de la encuesta",
- "compose_form.poll.option_placeholder": "ElecciÃŗn {number}",
+ "compose_form.poll.multiple": "SelecciÃŗn mÃēltiple",
+ "compose_form.poll.option_placeholder": "OpciÃŗn {number}",
"compose_form.poll.remove_option": "Eliminar esta opciÃŗn",
+ "compose_form.poll.single": "Seleccione uno",
"compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir mÃēltiples opciones",
"compose_form.poll.switch_to_single": "Modificar encuesta para permitir una Ãēnica opciÃŗn",
- "compose_form.publish": "Publicar",
+ "compose_form.poll.type": "Estilo",
+ "compose_form.publish": "PublicaciÃŗn",
"compose_form.publish_form": "Publicar",
- "compose_form.publish_loud": "ÂĄ{publish}!",
- "compose_form.save_changes": "Guardar cambios",
- "compose_form.sensitive.hide": "Marcar multimedia como sensible",
- "compose_form.sensitive.marked": "Material marcado como sensible",
- "compose_form.sensitive.unmarked": "Material no marcado como sensible",
+ "compose_form.reply": "Respuesta",
+ "compose_form.save_changes": "ActualizaciÃŗn",
"compose_form.spoiler.marked": "Texto oculto tras la advertencia",
"compose_form.spoiler.unmarked": "Texto no oculto",
- "compose_form.spoiler_placeholder": "Advertencia de contenido",
+ "compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.block_and_report": "Bloquear y Denunciar",
"confirmations.block.confirm": "Bloquear",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Menciones privadas",
"navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios ocultos",
- "navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "AÃąadir una encuesta",
"poll_button.remove_poll": "Eliminar encuesta",
"privacy.change": "Ajustar privacidad",
- "privacy.direct.long": "SÃŗlo mostrar a los usuarios mencionados",
- "privacy.direct.short": "Solo personas mencionadas",
- "privacy.private.long": "SÃŗlo mostrar a seguidores",
- "privacy.private.short": "Solo seguidores",
- "privacy.public.long": "Visible para todos",
+ "privacy.direct.long": "Todos los mencionados en la publicaciÃŗn",
+ "privacy.direct.short": "Personas especÃficas",
+ "privacy.private.long": "SÃŗlo tus seguidores",
+ "privacy.private.short": "Seguidores",
+ "privacy.public.long": "Cualquiera dentro y fuera de Mastodon",
"privacy.public.short": "PÃēblico",
- "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
- "privacy.unlisted.short": "No listado",
+ "privacy.unlisted.additional": "Esto se comporta exactamente igual que el pÃēblico, excepto que el post no aparecerÃĄ en las cronologÃas en directo o en los hashtags, la exploraciÃŗn o busquedas en Mastodon, incluso si estÃĄ optado por activar la cuenta de usuario.",
+ "privacy.unlisted.long": "Menos fanfares algorÃtmicos",
+ "privacy.unlisted.short": "PÃēblico silencioso",
"privacy_policy.last_updated": "Actualizado por Ãēltima vez {date}",
"privacy_policy.title": "PolÃtica de Privacidad",
"recommended": "Recomendado",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s",
"relative_time.today": "hoy",
+ "reply_indicator.attachments": "{count, plural, one {# adjunto} other {# adjuntos}}",
"reply_indicator.cancel": "Cancelar",
+ "reply_indicator.poll": "Encuesta",
"report.block": "Bloquear",
"report.block_explanation": "No veras sus publicaciones. No podrÃĄn ver tus publicaciones ni seguirte. PodrÃĄn saber que estÃĄn bloqueados.",
"report.categories.legal": "Legal",
@@ -714,10 +716,8 @@
"upload_error.poll": "Subida de archivos no permitida con encuestas.",
"upload_form.audio_description": "Describir para personas con problemas auditivos",
"upload_form.description": "Describir para los usuarios con dificultad visual",
- "upload_form.description_missing": "Sin descripciÃŗn aÃąadida",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura",
- "upload_form.undo": "Borrar",
"upload_form.video_description": "Describir para personas con problemas auditivos o visuales",
"upload_modal.analyzing_picture": "Analizando imagenâĻ",
"upload_modal.apply": "Aplicar",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index bbc8bcc75..2e4ea9317 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Sin publicaciones",
"account.featured_tags.title": "Etiquetas destacadas de {name}",
"account.follow": "Seguir",
+ "account.follow_back": "Seguir tambiÊn",
"account.followers": "Seguidores",
"account.followers.empty": "TodavÃa nadie sigue a este usuario.",
"account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
"account.following": "Siguiendo",
"account.following_counter": "{count, plural, other {Siguiendo a {counter}}}",
"account.follows.empty": "Este usuario todavÃa no sigue a nadie.",
- "account.follows_you": "Te sigue",
"account.go_to_profile": "Ir al perfil",
"account.hide_reblogs": "Ocultar impulsos de @{name}",
"account.in_memoriam": "Cuenta conmemorativa.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silenciar notificaciones",
"account.mute_short": "Silenciar",
"account.muted": "Silenciado",
+ "account.mutual": "Mutuo",
"account.no_bio": "Sin biografÃa.",
"account.open_original_page": "Abrir pÃĄgina original",
"account.posts": "Publicaciones",
@@ -88,7 +89,6 @@
"announcement.announcement": "Anuncio",
"attachments_list.unprocessed": "(sin procesar)",
"audio.hide": "Ocultar audio",
- "autosuggest_hashtag.per_week": "{count} por semana",
"boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la prÃŗxima vez",
"bundle_column_error.copy_stacktrace": "Copiar informe de error",
"bundle_column_error.error.body": "La pÃĄgina solicitada no pudo ser renderizada. PodrÃa deberse a un error en nuestro cÃŗdigo o a un problema de compatibilidad con el navegador.",
@@ -145,22 +145,21 @@
"compose_form.lock_disclaimer": "Tu cuenta no estÃĄ {locked}. Todos pueden seguirte para ver tus publicaciones solo para seguidores.",
"compose_form.lock_disclaimer.lock": "bloqueado",
"compose_form.placeholder": "ÂŋEn quÊ estÃĄs pensando?",
- "compose_form.poll.add_option": "AÃąadir una opciÃŗn",
"compose_form.poll.duration": "DuraciÃŗn de la encuesta",
- "compose_form.poll.option_placeholder": "ElecciÃŗn {number}",
- "compose_form.poll.remove_option": "Eliminar esta opciÃŗn",
+ "compose_form.poll.multiple": "SelecciÃŗn mÃēltiple",
+ "compose_form.poll.option_placeholder": "OpciÃŗn {number}",
+ "compose_form.poll.remove_option": "Quitar esta opciÃŗn",
+ "compose_form.poll.single": "Elige uno",
"compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir mÃēltiples opciones",
"compose_form.poll.switch_to_single": "Modificar encuesta para permitir una Ãēnica opciÃŗn",
+ "compose_form.poll.type": "Estilo",
"compose_form.publish": "Publicar",
"compose_form.publish_form": "Publicar",
- "compose_form.publish_loud": "ÂĄ{publish}!",
- "compose_form.save_changes": "Guardar cambios",
- "compose_form.sensitive.hide": "{count, plural, one {Marcar material como sensible} other {Marcar material como sensible}}",
- "compose_form.sensitive.marked": "{count, plural, one {Material marcado como sensible} other {Material marcado como sensible}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Material no marcado como sensible} other {Material no marcado como sensible}}",
+ "compose_form.reply": "Responder",
+ "compose_form.save_changes": "Actualizar",
"compose_form.spoiler.marked": "Quitar advertencia de contenido",
"compose_form.spoiler.unmarked": "AÃąadir advertencia de contenido",
- "compose_form.spoiler_placeholder": "Escribe aquà tu advertencia",
+ "compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.block_and_report": "Bloquear y Reportar",
"confirmations.block.confirm": "Bloquear",
@@ -407,7 +406,6 @@
"navigation_bar.direct": "Menciones privadas",
"navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios ocultos",
- "navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
@@ -525,14 +523,10 @@
"poll_button.add_poll": "AÃąadir una encuesta",
"poll_button.remove_poll": "Eliminar encuesta",
"privacy.change": "Ajustar privacidad",
- "privacy.direct.long": "Visible solo para usuarios mencionados",
- "privacy.direct.short": "SÃŗlo cuentas mencionadas",
- "privacy.private.long": "SÃŗlo mostrar a seguidores",
- "privacy.private.short": "Solo seguidores",
- "privacy.public.long": "Visible para todos",
+ "privacy.direct.short": "Personas especÃficas",
+ "privacy.private.long": "Solo tus seguidores",
+ "privacy.private.short": "Seguidores",
"privacy.public.short": "PÃēblico",
- "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento",
- "privacy.unlisted.short": "No listado",
"privacy_policy.last_updated": "Actualizado por Ãēltima vez {date}",
"privacy_policy.title": "PolÃtica de Privacidad",
"recommended": "Recomendado",
@@ -714,10 +708,8 @@
"upload_error.poll": "No se permite la subida de archivos con encuestas.",
"upload_form.audio_description": "Describir para personas con problemas auditivos",
"upload_form.description": "Describir para personas con discapacidad visual",
- "upload_form.description_missing": "No se ha aÃąadido ninguna descripciÃŗn",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura",
- "upload_form.undo": "Eliminar",
"upload_form.video_description": "Describir para personas con problemas auditivos o visuales",
"upload_modal.analyzing_picture": "Analizando imagenâĻ",
"upload_modal.apply": "Aplicar",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index a41aa02f8..5034c2554 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Postitusi pole",
"account.featured_tags.title": "{name} esiletÃĩstetud sildid",
"account.follow": "Jälgi",
+ "account.follow_back": "Jälgi vastu",
"account.followers": "Jälgijad",
"account.followers.empty": "Keegi ei jälgi veel seda kasutajat.",
"account.followers_counter": "{count, plural, one {{counter} jälgija} other {{counter} jälgijat}}",
"account.following": "Jälgib",
"account.following_counter": "{count, plural, one {{counter} jälgitav} other {{counter} jälgitavat}}",
"account.follows.empty": "See kasutaja ei jälgi veel kedagi.",
- "account.follows_you": "Jälgib sind",
"account.go_to_profile": "Mine profiilile",
"account.hide_reblogs": "Peida @{name} jagamised",
"account.in_memoriam": "In Memoriam.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Vaigista teavitused",
"account.mute_short": "Vaigista",
"account.muted": "Vaigistatud",
+ "account.mutual": "Ãhine",
"account.no_bio": "Kirjeldust pole lisatud.",
"account.open_original_page": "Ava algne leht",
"account.posts": "Postitused",
@@ -88,7 +89,6 @@
"announcement.announcement": "Teadaanne",
"attachments_list.unprocessed": "(tÃļÃļtlemata)",
"audio.hide": "Peida audio",
- "autosuggest_hashtag.per_week": "{count} nädalas",
"boost_modal.combo": "Vajutades {combo}, saab selle edaspidi vahele jätta",
"bundle_column_error.copy_stacktrace": "Kopeeri veateade",
"bundle_column_error.error.body": "Soovitud lehte ei Ãĩnnestunud esitada. See vÃĩib olla meie koodiviga vÃĩi probleem brauseri Ãŧhilduvusega.",
@@ -147,20 +147,20 @@
"compose_form.placeholder": "Millest mÃĩtled?",
"compose_form.poll.add_option": "Lisa valik",
"compose_form.poll.duration": "KÃŧsitluse kestus",
+ "compose_form.poll.multiple": "Valikvastustega",
"compose_form.poll.option_placeholder": "Valik {number}",
"compose_form.poll.remove_option": "Eemalda see valik",
+ "compose_form.poll.single": "Vali Ãŧks",
"compose_form.poll.switch_to_multiple": "Muuda kÃŧsitlust mitmikvaliku lubamiseks",
"compose_form.poll.switch_to_single": "Muuda kÃŧsitlust ainult Ãŧhe valiku lubamiseks",
+ "compose_form.poll.type": "Stiil",
"compose_form.publish": "Postita",
"compose_form.publish_form": "Postita",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Salvesta muudatused",
- "compose_form.sensitive.hide": "{count, plural, one {Märgi meedia tundlikuks} other {Märgi meediad tundlikuks}}",
- "compose_form.sensitive.marked": "{count, plural, one {Meedia on märgitud tundlikuks} other {Meediad on märgitud tundlikuks}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Meedia ei ole tundlikuks märgitud} other {Meediad ei ole märgitud tundlikuks}}",
+ "compose_form.reply": "Vasta",
+ "compose_form.save_changes": "Uuenda",
"compose_form.spoiler.marked": "Tekst on hoiatuse taha peidetud",
"compose_form.spoiler.unmarked": "Märgi sisu tundlikuks",
- "compose_form.spoiler_placeholder": "Kirjuta hoiatus siia",
+ "compose_form.spoiler_placeholder": "Sisuhoiatus (valikuline)",
"confirmation_modal.cancel": "Katkesta",
"confirmations.block.block_and_report": "Blokeeri ja teata",
"confirmations.block.confirm": "Blokeeri",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Privaatsed mainimised",
"navigation_bar.discover": "Avasta",
"navigation_bar.domain_blocks": "Peidetud domeenid",
- "navigation_bar.edit_profile": "Muuda profiili",
"navigation_bar.explore": "Avasta",
"navigation_bar.favourites": "Lemmikud",
"navigation_bar.filters": "Vaigistatud sÃĩnad",
@@ -525,14 +524,14 @@
"poll_button.add_poll": "Lisa kÃŧsitlus",
"poll_button.remove_poll": "Eemalda kÃŧsitlus",
"privacy.change": "Muuda postituse nähtavust",
- "privacy.direct.long": "Postita ainult mainitud kasutajatele",
- "privacy.direct.short": "Mainitud inimesed ainult",
- "privacy.private.long": "Postita ainult jälgijatele",
- "privacy.private.short": "Jälgijad ainult",
- "privacy.public.long": "KÃĩigile nähtav",
+ "privacy.direct.long": "KÃĩik postituses mainitud",
+ "privacy.direct.short": "Määratud kasutajad",
+ "privacy.private.long": "Ainult jälgijad",
+ "privacy.private.short": "Jälgijad",
+ "privacy.public.long": "Nii kasutajad kui mittekasutajad",
"privacy.public.short": "Avalik",
- "privacy.unlisted.long": "KÃĩigile nähtav, aga ei ilmu avastamise vaadetes",
- "privacy.unlisted.short": "Määramata",
+ "privacy.unlisted.long": "Vähem algoritmilisi teavitusi",
+ "privacy.unlisted.short": "Vaikselt avalik",
"privacy_policy.last_updated": "Viimati uuendatud {date}",
"privacy_policy.title": "Isikuandmete kaitse",
"recommended": "Soovitatud",
@@ -550,7 +549,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "täna",
+ "reply_indicator.attachments": "{count, plural, one {# lisa} other {# lisa}}",
"reply_indicator.cancel": "TÃŧhista",
+ "reply_indicator.poll": "KÃŧsitlus",
"report.block": "Blokeeri",
"report.block_explanation": "Sa ei näe tema postitusi. Tema ei saa näha sinu postitusi ega sind jälgida. Talle on näha, et ta on blokeeritud.",
"report.categories.legal": "Juriidiline",
@@ -714,10 +715,8 @@
"upload_error.poll": "KÃŧsitlustes pole faili Ãŧleslaadimine lubatud.",
"upload_form.audio_description": "Kirjelda kuulmispuudega inimeste jaoks",
"upload_form.description": "Kirjelda vaegnägijatele",
- "upload_form.description_missing": "Kirjeldus puudub",
"upload_form.edit": "Muuda",
"upload_form.thumbnail": "Muuda pisipilti",
- "upload_form.undo": "Kustuta",
"upload_form.video_description": "Kirjelda kuulmis- vÃĩi nägemispuudega inimeste jaoks",
"upload_modal.analyzing_picture": "AnalÃŧÃŧsime piltiâĻ",
"upload_modal.apply": "Rakenda",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 26ed7add1..cee18e7a5 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -25,20 +25,20 @@
"account.direct": "Aipatu pribatuki @{name}",
"account.disable_notifications": "Utzi jakinarazteari @{name} erabiltzaileak argitaratzean",
"account.domain_blocked": "Ezkutatutako domeinua",
- "account.edit_profile": "Aldatu profila",
+ "account.edit_profile": "Editatu profila",
"account.enable_notifications": "Jakinarazi @{name} erabiltzaileak argitaratzean",
"account.endorse": "Nabarmendu profilean",
"account.featured_tags.last_status_at": "Azken bidalketa {date} datan",
"account.featured_tags.last_status_never": "Bidalketarik ez",
"account.featured_tags.title": "{name} erabiltzailearen nabarmendutako traolak",
"account.follow": "Jarraitu",
+ "account.follow_back": "Jarraitu bueltan",
"account.followers": "Jarraitzaileak",
"account.followers.empty": "Ez du inork erabiltzaile hau jarraitzen oraindik.",
"account.followers_counter": "{count, plural, one {Jarraitzaile {counter}} other {{counter} jarraitzaile}}",
"account.following": "Jarraitzen",
"account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}",
"account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.",
- "account.follows_you": "Jarraitzen dizu",
"account.go_to_profile": "Joan profilera",
"account.hide_reblogs": "Ezkutatu @{name} erabiltzailearen bultzadak",
"account.in_memoriam": "Oroimenezkoa.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Mututu jakinarazpenak",
"account.mute_short": "Mututu",
"account.muted": "Mutututa",
+ "account.mutual": "Elkarrekikoa",
"account.no_bio": "Ez da deskribapenik eman.",
"account.open_original_page": "Ireki jatorrizko orria",
"account.posts": "Bidalketa",
@@ -88,7 +89,6 @@
"announcement.announcement": "Iragarpena",
"attachments_list.unprocessed": "(prozesatu gabe)",
"audio.hide": "Ezkutatu audioa",
- "autosuggest_hashtag.per_week": "{count} asteko",
"boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko",
"bundle_column_error.copy_stacktrace": "Kopiatu errore-txostena",
"bundle_column_error.error.body": "Eskatutako orria ezin izan da bistaratu. Kodeko errore bategatik izan daiteke edo nabigatzailearen bateragarritasun arazo bategatik.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "Zure kontua ez dago {locked}. Edonork jarraitu zaitzake zure jarraitzaileentzako soilik diren bidalketak ikusteko.",
"compose_form.lock_disclaimer.lock": "giltzapetuta",
"compose_form.placeholder": "Zer duzu buruan?",
- "compose_form.poll.add_option": "Gehitu aukera bat",
+ "compose_form.poll.add_option": "Gehitu aukera",
"compose_form.poll.duration": "Inkestaren iraupena",
+ "compose_form.poll.multiple": "Aukera aniza",
"compose_form.poll.option_placeholder": "{number}. aukera",
"compose_form.poll.remove_option": "Kendu aukera hau",
+ "compose_form.poll.single": "Hautatu bat",
"compose_form.poll.switch_to_multiple": "Aldatu inkesta hainbat aukera onartzeko",
"compose_form.poll.switch_to_single": "Aldatu inkesta aukera bakarra onartzeko",
+ "compose_form.poll.type": "Estiloa",
"compose_form.publish": "Argitaratu",
"compose_form.publish_form": "Argitaratu",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Gorde aldaketak",
- "compose_form.sensitive.hide": "Markatu multimedia hunkigarri gisa",
- "compose_form.sensitive.marked": "Multimedia edukia hunkigarri gisa markatu da",
- "compose_form.sensitive.unmarked": "Multimedia edukia ez da hunkigarri gisa markatu",
+ "compose_form.reply": "Erantzun",
+ "compose_form.save_changes": "Eguneratu",
"compose_form.spoiler.marked": "Testua abisu batek ezkutatzen du",
"compose_form.spoiler.unmarked": "Testua ez dago ezkutatuta",
- "compose_form.spoiler_placeholder": "Idatzi zure abisua hemen",
+ "compose_form.spoiler_placeholder": "Edukiaren abisua (aukerakoa)",
"confirmation_modal.cancel": "Utzi",
"confirmations.block.block_and_report": "Blokeatu eta salatu",
"confirmations.block.confirm": "Blokeatu",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Aipamen pribatuak",
"navigation_bar.discover": "Aurkitu",
"navigation_bar.domain_blocks": "Ezkutatutako domeinuak",
- "navigation_bar.edit_profile": "Aldatu profila",
"navigation_bar.explore": "Arakatu",
"navigation_bar.favourites": "Gogokoak",
"navigation_bar.filters": "Mutututako hitzak",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "Gehitu inkesta bat",
"poll_button.remove_poll": "Kendu inkesta",
"privacy.change": "Aldatu bidalketaren pribatutasuna",
- "privacy.direct.long": "Bidali aipatutako erabiltzaileei besterik ez",
- "privacy.direct.short": "Aipatutako jendea soilik",
- "privacy.private.long": "Bidali jarraitzaileei besterik ez",
- "privacy.private.short": "Jarraitzaileak soilik",
- "privacy.public.long": "Guztientzat ikusgai",
+ "privacy.direct.long": "Argitalpen honetan aipatutako denak",
+ "privacy.direct.short": "Jende jakina",
+ "privacy.private.long": "Soilik jarraitzaileak",
+ "privacy.private.short": "Jarraitzaileak",
+ "privacy.public.long": "Mastodonen dagoen edo ez dagoen edonor",
"privacy.public.short": "Publikoa",
- "privacy.unlisted.long": "Guztientzat ikusgai, baina ez aurkitzeko ezaugarrietan",
- "privacy.unlisted.short": "Zerrendatu gabea",
+ "privacy.unlisted.additional": "Aukera honek publiko modua bezala funtzionatzen du, baina argitalpena ez da agertuko zuzeneko jarioetan edo traoletan, \"Arakatu\" atalean edo Mastodonen bilaketan, nahiz eta kontua zabaltzeko onartu duzun.",
+ "privacy.unlisted.long": "Tontakeria algoritmiko gutxiago",
+ "privacy.unlisted.short": "Deiadar urrikoa",
"privacy_policy.last_updated": "Azkenengo eguneraketa {date}",
"privacy_policy.title": "Pribatutasun politika",
"recommended": "Gomendatua",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "gaur",
+ "reply_indicator.attachments": "{count, plural, one {# eranskin} other {# eranskin}}",
"reply_indicator.cancel": "Utzi",
+ "reply_indicator.poll": "Inkesta",
"report.block": "Blokeatu",
"report.block_explanation": "Ez dituzu bere bidalketak ikusiko. Ezingo dituzte zure bidalketak ikusi eta ez jarraitu. Blokeatu dituzula jakin dezakete.",
"report.categories.legal": "Juridikoa",
@@ -714,10 +716,8 @@
"upload_error.poll": "Ez da inkestetan fitxategiak igotzea onartzen.",
"upload_form.audio_description": "Deskribatu entzumen galera duten pertsonentzat",
"upload_form.description": "Deskribatu ikusmen arazoak dituztenentzat",
- "upload_form.description_missing": "Ez da deskribapenik gehitu",
"upload_form.edit": "Editatu",
"upload_form.thumbnail": "Aldatu koadro txikia",
- "upload_form.undo": "Ezabatu",
"upload_form.video_description": "Deskribatu entzumen galera edo ikusmen urritasuna duten pertsonentzat",
"upload_modal.analyzing_picture": "Irudia aztertzenâĻ",
"upload_modal.apply": "Aplikatu",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 8e8930bfe..0b078d1ab 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -13,7 +13,7 @@
"about.rules": "ŲŲاŲÛŲ ÚŠØ§ØąØŗØ§Ø˛",
"account.account_note_header": "ÛادداشØĒ",
"account.add_or_remove_from_list": "اŲØ˛ŲدŲ Ûا Ø¨ØąØ¯Ø§Ø´ØĒŲ Ø§Ø˛ ØŗÛاŲŲâŲا",
- "account.badges.bot": "ØąŲباØĒ",
+ "account.badges.bot": "ØŽŲØ¯ÚŠØ§Øą",
"account.badges.group": "Ú¯ØąŲŲ",
"account.block": "اŲØŗداد â@{name}",
"account.block_domain": "اŲØŗداد داŲ
ŲŲŲ {domain}",
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "بدŲŲ ŲØąØŗØĒŲ",
"account.featured_tags.title": "Ø¨ØąÚØŗبâŲØ§Û Ø¨ØąÚ¯Ø˛ÛدŲŲ {name}",
"account.follow": "ŲžÛâÚ¯ØąŲØĒŲ",
+ "account.follow_back": "دŲباŲ ÚŠØąØ¯Ų Ų
ØĒŲابŲ",
"account.followers": "ŲžÛâÚ¯ÛØąŲدگاŲ",
"account.followers.empty": "ŲŲŲØ˛ ÚŠØŗÛ ŲžÛâÚ¯ÛØą اÛŲ ÚŠØ§ØąØ¨Øą ŲÛØŗØĒ.",
"account.followers_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.go_to_profile": "ØąŲØĒŲ بŲ ŲŲ
اÛŲ",
"account.hide_reblogs": "ŲŲŲØĒŲ ØĒŲŲÛØĒâŲØ§Û â@{name}",
"account.in_memoriam": "بŲ ÛادبŲد.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ØŽŲ
ŲØ´Û ØĸگاŲÛâŲا",
"account.mute_short": "ØŽŲ
ŲØ´Û",
"account.muted": "ØŽŲ
ŲØ´",
+ "account.mutual": "دŲØˇØąŲŲ",
"account.no_bio": "Ø´ØąØÛ ŲØąØ§ŲŲ
ŲشدŲ.",
"account.open_original_page": "گشŲدŲ ØĩŲØŲŲ اØĩŲÛ",
"account.posts": "ŲØąØŗØĒŲ",
@@ -88,7 +89,6 @@
"announcement.announcement": "اؚŲاŲ
ÛŲ",
"attachments_list.unprocessed": "(ŲžØąØ¯Ø§Ø˛Ø´ ŲشدŲ)",
"audio.hide": "ŲŲŲØĒŲ Øĩدا",
- "autosuggest_hashtag.per_week": "{count} Ø¯Øą ŲŲØĒŲ",
"boost_modal.combo": "دڊŲ
ŲŲ {combo} ØąØ§ Ø¨Ø˛ŲÛد ØĒا دÛÚ¯Øą اÛŲ ØąØ§ ŲبÛŲÛد",
"bundle_column_error.copy_stacktrace": "ØąŲŲŲØ´ØĒ Ø§Ø˛ Ú¯Ø˛Ø§ØąØ´ ØŽØˇØ§",
"bundle_column_error.error.body": "ØĩŲØŲŲ Ø¯ØąØŽŲاØŗØĒÛ ŲØĒŲاŲØŗØĒ ŲžØąØ¯Ø§ØŽØĒ Ø´Ųد. Ų
Ų
ÚŠŲ اØŗØĒ بŲ ØŽØ§ØˇØą اشڊاŲÛ Ø¯Øą ڊدŲ
اŲ Ûا Ų
Ø´ÚŠŲ ØŗØ§Ø˛Ú¯Ø§ØąÛ Ų
ØąŲØąÚ¯Øą باشد.",
@@ -147,20 +147,20 @@
"compose_form.placeholder": "ØĒØ§Ø˛Ų ÚŲ ØŽØ¨ØąØ",
"compose_form.poll.add_option": "اŲØ˛ŲدŲ Ú¯Ø˛ÛŲŲ",
"compose_form.poll.duration": "Ų
دØĒ ŲØ¸ØąØŗŲØŦÛ",
+ "compose_form.poll.multiple": "ÚŲد Ú¯Ø˛ÛŲŲâاÛ",
"compose_form.poll.option_placeholder": "Ú¯Ø˛ÛŲŲŲ {number}",
"compose_form.poll.remove_option": "Ø¨ØąØ¯Ø§Ø´ØĒŲ اÛŲ Ú¯Ø˛ÛŲŲ",
+ "compose_form.poll.single": "Ú¯Ø˛ÛŲØ´ ÛÚŠÛ",
"compose_form.poll.switch_to_multiple": "ØĒØēÛÛØą ŲØ¸ØąØŗŲØŦÛ Ø¨ØąØ§Û Ø§ØŦØ§Ø˛Ų بŲ ÚŲدÛŲ Ú¯Ø˛ÛŲŲ",
"compose_form.poll.switch_to_single": "ØĒبدÛŲ بŲ ŲØ¸ØąØŗŲØŦÛ ØĒÚŠâÚ¯Ø˛ÛŲŲâاÛ",
- "compose_form.publish": "اŲØĒØ´Ø§Øą",
+ "compose_form.poll.type": "Øŗبڊ",
+ "compose_form.publish": "ŲØąØŗØĒادŲ",
"compose_form.publish_form": "اŲØĒØ´Ø§Øą",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Ø°ØŽÛØąŲŲ ØĒØēÛÛØąØ§ØĒ",
- "compose_form.sensitive.hide": "{count, plural, one {ØšŲاŲ
ØĒâÚ¯Ø°Ø§ØąÛ ØąØŗاŲŲ بŲ ØšŲŲاŲ ØØŗاØŗ} other {ØšŲاŲ
ØĒâÚ¯Ø°Ø§ØąÛ ØąØŗاŲŲâŲا بŲ ØšŲŲاŲ ØØŗاØŗ}}",
- "compose_form.sensitive.marked": "{count, plural, one {ØąØŗاŲŲ بŲ ØšŲŲاŲ ØØŗاØŗ ØšŲاŲ
ØĒâÚ¯Ø°Ø§ØąÛ Ø´Ø¯} other {ØąØŗاŲŲâŲا بŲ ØšŲŲاŲ ØØŗاØŗ ØšŲاŲ
ØĒâÚ¯Ø°Ø§ØąÛ Ø´Ø¯Ųد}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ØąØŗاŲŲ بŲ ØšŲŲاŲ ØØŗاØŗ ØšŲاŲ
ØĒâÚ¯Ø°Ø§ØąÛ Ųشد} other {ØąØŗاŲŲâŲا بŲ ØšŲŲاŲ ØØŗاØŗ ØšŲاŲ
ØĒâÚ¯Ø°Ø§ØąÛ ŲشدŲد}}",
+ "compose_form.reply": "ŲžØ§ØŗØŽ",
+ "compose_form.save_changes": "بŲâØąŲØ˛ ØąØŗاŲÛ",
"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": "اŲØŗداد",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Ø§Ø´Ø§ØąŲâŲØ§Û ØŽØĩŲØĩÛ",
"navigation_bar.discover": "گشØĒ Ų Ú¯Ø°Ø§Øą",
"navigation_bar.domain_blocks": "داŲ
ŲŲâŲØ§Û Ų
ØŗدŲد شدŲ",
- "navigation_bar.edit_profile": "ŲÛØąØ§ÛØ´ ŲŲ
اÛŲ",
"navigation_bar.explore": "ڊاŲØ´",
"navigation_bar.favourites": "Ø¨ØąÚ¯Ø˛ÛدŲâŲا",
"navigation_bar.filters": "ŲاÚŲâŲØ§Û ØŽŲ
ŲØ´",
@@ -523,14 +522,14 @@
"poll_button.add_poll": "اŲØ˛ŲدŲ ŲØ¸ØąØŗŲØŦÛ",
"poll_button.remove_poll": "Ø¨ØąØ¯Ø§Ø´ØĒŲ ŲØ¸ØąØŗŲØŦÛ",
"privacy.change": "ØĒØēÛÛØą Ų
ØØąŲ
اŲÚ¯Û ŲØąØŗØĒŲ",
- "privacy.direct.long": "ŲŲ
اÛاŲ ŲŲØˇ Ø¨ØąØ§Û ÚŠØ§ØąØ¨ØąØ§Ų Ø§Ø´Ø§ØąŲ شدŲ",
- "privacy.direct.short": "ŲŲØˇ اŲØąØ§Ø¯ Ø§Ø´Ø§ØąŲ شدŲ",
- "privacy.private.long": "ŲŲ
اÛاŲ ŲŲØˇ Ø¨ØąØ§Û ŲžÛâÚ¯ÛØąŲدگاŲ",
- "privacy.private.short": "ŲŲØˇ ŲžÛâÚ¯ÛØąŲدگاŲ",
- "privacy.public.long": "ŲŲ
اÛاŲ Ø¨ØąØ§Û ŲŲ
Ų",
+ "privacy.direct.long": "ŲØąÚŠØŗÛ ÚŠŲ Ø¯Øą ŲØąØŗØĒŲ ŲاŲ
Ø¨ØąØ¯Ų شدŲ",
+ "privacy.direct.short": "اŲØąØ§Ø¯ Ų
Ø´ØŽŲØĩ",
+ "privacy.private.long": "ØĒŲŲا ŲžÛâÚ¯ÛØąŲدگاŲØĒاŲ",
+ "privacy.private.short": "ŲžÛâÚ¯ÛØąŲدگاŲ",
+ "privacy.public.long": "ŲØąÚŠØŗÛ Ø¯Øą Ų بÛØąŲŲ Ø§Ø˛ Ų
اØŗØĒŲدŲŲ",
"privacy.public.short": "ØšŲ
ŲŲ
Û",
- "privacy.unlisted.long": "ŲŲ
اÛاŲ Ø¨ØąØ§Û ŲŲ
ŲØ ŲŲÛ ØŽØ§ØąØŦ Ø§Ø˛ ŲابŲÛØĒâŲØ§Û ÚŠØ´Ų",
- "privacy.unlisted.short": "ŲŲØąØŗØĒ ŲشدŲ",
+ "privacy.unlisted.long": "ØŗØąŲØĩØ¯Ø§Û Ø§ŲÚ¯ŲØąÛØĒŲ
Û ÚŠŲ
âØĒØą",
+ "privacy.unlisted.short": "ØšŲ
ŲŲ
Û ØŗاڊØĒ",
"privacy_policy.last_updated": "ØĸØŽØąÛŲ بŲâØąŲØ˛ ØąØŗاŲÛ Ø¯Øą {date}",
"privacy_policy.title": "ØŗÛاØŗØĒ Ų
ØØąŲ
اŲÚ¯Û",
"recommended": "ŲžÛØ´ŲŲادشدŲ",
@@ -549,6 +548,7 @@
"relative_time.seconds": "{number} ØĢاŲÛŲ",
"relative_time.today": "اŲ
ØąŲØ˛",
"reply_indicator.cancel": "ŲØēŲ",
+ "reply_indicator.poll": "ŲØ¸ØąØŗŲØŦÛ",
"report.block": "اŲØŗداد",
"report.block_explanation": "Ø´Ų
ا ŲØąØŗØĒŲâŲاÛشاŲ ØąØ§ ŲØŽŲاŲÛد دÛد. ØĸŲâŲا ŲŲ
ÛâØĒŲاŲŲد ŲØąØŗØĒŲâŲاÛØĒاŲ ØąØ§ ببÛŲŲد Ûا Ø´Ų
ا ØąØ§ ŲžÛâبگÛØąŲد. ØĸŲŲا Ų
ÛâØĒŲاŲŲد بگŲÛŲد ÚŠŲ Ų
ØŗدŲد شدŲâاŲد.",
"report.categories.legal": "ØŲŲŲÛ",
@@ -712,10 +712,8 @@
"upload_error.poll": "Ø¨Ø§ØąÚ¯Ø°Ø§ØąÛ ŲžØąŲŲدŲ Ø¯Øą ŲØ¸ØąØŗŲØŦÛâŲا Ų
ØŦØ§Ø˛ ŲÛØŗØĒ.",
"upload_form.audio_description": "Ø¨ØąØ§Û ŲاشŲŲاÛاŲ ØĒŲØĩÛŲØ´ ÚŠŲÛد",
"upload_form.description": "Ø¨ØąØ§Û ÚŠŲ
âبÛŲاÛاŲ ØĒŲØĩÛŲØ´ ÚŠŲÛد",
- "upload_form.description_missing": "Ø´ØąØÛ Ø§ŲØ˛ŲدŲ ŲشدŲ",
"upload_form.edit": "ŲÛØąØ§ÛØ´",
"upload_form.thumbnail": "ØĒØēÛÛØą بŲداŲگشØĒÛ",
- "upload_form.undo": "ØØ°Ų",
"upload_form.video_description": "Ø¨ØąØ§Û ÚŠŲ
âبÛŲاÛاŲ Ûا ŲاشŲŲاÛاŲ ØĒŲØĩÛŲØ´ ÚŠŲÛد",
"upload_modal.analyzing_picture": "Ø¯Øą ØاŲ ŲžØąØ¯Ø§Ø˛Ø´ ØĒØĩŲÛØąâĻ",
"upload_modal.apply": "اؚŲ
اŲ",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index e99de4d03..7b98f9983 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -21,7 +21,7 @@
"account.blocked": "Estetty",
"account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella",
"account.cancel_follow_request": "Peruuta seurantapyyntÃļ",
- "account.copy": "Kopioi profiililinkki",
+ "account.copy": "Kopioi linkki profiiliin",
"account.direct": "Mainitse @{name} yksityisesti",
"account.disable_notifications": "Lopeta ilmoittamasta minulle, kun @{name} julkaisee",
"account.domain_blocked": "Verkkotunnus estetty",
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Ei julkaisuja",
"account.featured_tags.title": "Käyttäjän {name} esillä pidettävät aihetunnisteet",
"account.follow": "Seuraa",
+ "account.follow_back": "Seuraa takaisin",
"account.followers": "Seuraajat",
"account.followers.empty": "Kukaan ei seuraa tätä käyttäjää vielä.",
"account.followers_counter": "{count, plural, one {{counter} seuraaja} other {{counter} seuraajaa}}",
"account.following": "Seuratut",
"account.following_counter": "{count, plural, one {{counter} seurattu} other {{counter} seurattua}}",
"account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.",
- "account.follows_you": "Seuraa sinua",
"account.go_to_profile": "Avaa profiili",
"account.hide_reblogs": "Piilota käyttäjän @{name} tehostukset",
"account.in_memoriam": "Muistoissamme.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Mykistä ilmoitukset",
"account.mute_short": "Mykistä",
"account.muted": "Mykistetty",
+ "account.mutual": "Seuraatte toisianne",
"account.no_bio": "Kuvausta ei ole annettu.",
"account.open_original_page": "Avaa alkuperäinen sivu",
"account.posts": "Julkaisut",
@@ -88,7 +89,6 @@
"announcement.announcement": "Ilmoitus",
"attachments_list.unprocessed": "(käsittelemätÃļn)",
"audio.hide": "Piilota ääni",
- "autosuggest_hashtag.per_week": "{count} viikossa",
"boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}",
"bundle_column_error.copy_stacktrace": "Kopioi virheraportti",
"bundle_column_error.error.body": "Pyydettyä sivua ei voitu hahmontaa. Se voi johtua virheestä koodissamme tai selaimen yhteensopivuudessa.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "Tilisi ei ole {locked}. Kuka tahansa voi seurata tiliäsi ja nähdä vain seuraajille rajaamasi julkaisut.",
"compose_form.lock_disclaimer.lock": "lukittu",
"compose_form.placeholder": "Mitä mietit?",
- "compose_form.poll.add_option": "Lisää valinta",
+ "compose_form.poll.add_option": "Lisää vaihtoehto",
"compose_form.poll.duration": "Ãänestyksen kesto",
- "compose_form.poll.option_placeholder": "Valinta {number}",
- "compose_form.poll.remove_option": "Poista tämä valinta",
+ "compose_form.poll.multiple": "Monivalinta",
+ "compose_form.poll.option_placeholder": "Vaihtoehto {number}",
+ "compose_form.poll.remove_option": "Poista tämä vaihtoehto",
+ "compose_form.poll.single": "Valitse yksi",
"compose_form.poll.switch_to_multiple": "Muuta äänestys monivalinnaksi",
"compose_form.poll.switch_to_single": "Muuta äänestys sallimaan vain yksi valinta",
+ "compose_form.poll.type": "Tyyli",
"compose_form.publish": "Julkaise",
"compose_form.publish_form": "Uusi julkaisu",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Tallenna muutokset",
- "compose_form.sensitive.hide": "{count, plural, one {Merkitse media arkaluonteiseksi} other {Merkitse mediat arkaluonteisiksi}}",
- "compose_form.sensitive.marked": "{count, plural, one {Media on merkitty arkaluonteiseksi} other {Mediat on merkitty arkaluonteisiksi}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Mediaa ei ole merkitty arkaluonteiseksi} other {Medioita ei ole merkitty arkaluonteisiksi}}",
+ "compose_form.reply": "Vastaa",
+ "compose_form.save_changes": "Päivitä",
"compose_form.spoiler.marked": "Poista sisältÃļvaroitus",
"compose_form.spoiler.unmarked": "Lisää sisältÃļvaroitus",
- "compose_form.spoiler_placeholder": "Kirjoita varoituksesi tähän",
+ "compose_form.spoiler_placeholder": "SisältÃļvaroitus (valinnainen)",
"confirmation_modal.cancel": "Peruuta",
"confirmations.block.block_and_report": "Estä ja raportoi",
"confirmations.block.confirm": "Estä",
@@ -192,7 +192,7 @@
"conversation.mark_as_read": "Merkitse luetuksi",
"conversation.open": "Näytä keskustelu",
"conversation.with": "{names} kanssa",
- "copy_icon_button.copied": "Kopioitiin leikepÃļydälle",
+ "copy_icon_button.copied": "SisältÃļ kopioitiin leikepÃļydälle",
"copypaste.copied": "Kopioitu",
"copypaste.copy_to_clipboard": "Kopioi leikepÃļydälle",
"directory.federated": "Koko tunnettu fediversumi",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Yksityiset maininnat",
"navigation_bar.discover": "LÃļydä uutta",
"navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
- "navigation_bar.edit_profile": "Muokkaa profiilia",
"navigation_bar.explore": "Selaa",
"navigation_bar.favourites": "Suosikit",
"navigation_bar.filters": "Mykistetyt sanat",
@@ -482,10 +481,10 @@
"onboarding.follows.lead": "Kokoat oman kotisyÃļtteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syÃļte on. Nämä profiilit voivat olla alkuun hyvä lähtÃļkohta â voit aina lopettaa niiden seuraamisen myÃļhemmin!",
"onboarding.follows.title": "Mukauta kotisyÃļtettäsi",
"onboarding.profile.discoverable": "Aseta profiilini lÃļydettäväksi",
- "onboarding.profile.discoverable_hint": "Kun olet määrittänyt itsesi lÃļydettäväksi Mastodonista, julkaisusi voivat näkyä hakutuloksissa ja suosituissa kohteissa ja profiiliasi voidaan ehdottaa käyttäjille, jotka ovat kiinnostuneet samoista aiheista kuin sinä.",
+ "onboarding.profile.discoverable_hint": "Kun olet määrittänyt itsesi lÃļydettäväksi Mastodonista, julkaisusi voivat näkyä hakutuloksissa ja suosituissa kohteissa. Lisäksi profiiliasi voidaan ehdottaa käyttäjille, jotka ovat kiinnostuneita kanssasi samoista aiheista.",
"onboarding.profile.display_name": "NäyttÃļnimi",
"onboarding.profile.display_name_hint": "Koko nimesi tai lempinimesiâĻ",
- "onboarding.profile.lead": "Voit viimeistellä tämän milloin tahansa asetuksista, jotka tarjoavat vielä enemmän mukautusvalintoja.",
+ "onboarding.profile.lead": "Voit viimeistellä tämän milloin tahansa asetuksista. Sieltä lÃļydät myÃļs lisää mukautusvaihtoehtoja.",
"onboarding.profile.note": "Elämäkerta",
"onboarding.profile.note_hint": "Voit @mainita muita käyttäjiä tai #aihetunnisteitaâĻ",
"onboarding.profile.save_and_continue": "Tallenna ja jatka",
@@ -525,14 +524,13 @@
"poll_button.add_poll": "Lisää äänestys",
"poll_button.remove_poll": "Poista äänestys",
"privacy.change": "Muuta julkaisun näkyvyyttä",
- "privacy.direct.long": "Näkyy vain mainituille käyttäjille",
- "privacy.direct.short": "Vain mainitut käyttäjät",
- "privacy.private.long": "Näkyy vain seuraajille",
- "privacy.private.short": "Vain seuraajat",
- "privacy.public.long": "Näkyy kaikille",
+ "privacy.direct.long": "Kaikki tässä julkaisussa mainitut",
+ "privacy.direct.short": "Tietyt henkilÃļt",
+ "privacy.private.long": "Vain seuraajasi",
+ "privacy.private.short": "Seuraajat",
+ "privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella",
"privacy.public.short": "Julkinen",
- "privacy.unlisted.long": "Näkyy kaikille mutta jää pois lÃļytämisominaisuuksista",
- "privacy.unlisted.short": "Listaamaton",
+ "privacy.unlisted.additional": "Tämä toimii kuten julkinen, paitsi että julkaisu ei näy livesyÃļtteissä, aihetunnisteissa, selaa-näkymässä tai Mastodon-haussa, vaikka olisit sallinut ne käyttäjätilin laajuisesti.",
"privacy_policy.last_updated": "Viimeksi päivitetty {date}",
"privacy_policy.title": "TietosuojakäytäntÃļ",
"recommended": "Suositeltu",
@@ -550,7 +548,9 @@
"relative_time.minutes": "{number} min",
"relative_time.seconds": "{number} s",
"relative_time.today": "tänään",
+ "reply_indicator.attachments": "{count, plural, one {# liite} other {# liitettä}}",
"reply_indicator.cancel": "Peruuta",
+ "reply_indicator.poll": "Kysely",
"report.block": "Estä",
"report.block_explanation": "Et näe hänen viestejään, eikä hän voi nähdä viestejäsi tai seurata sinua. Hän näkee, että olet estänyt hänet.",
"report.categories.legal": "Lakiasiat",
@@ -606,7 +606,7 @@
"search.quick_action.status_search": "Julkaisut haulla {x}",
"search.search_or_paste": "Hae tai liitä URL-osoite",
"search_popout.full_text_search_disabled_message": "Ei saatavilla palvelimella {domain}.",
- "search_popout.full_text_search_logged_out_message": "Saatavilla vain sisäänkirjautuneena.",
+ "search_popout.full_text_search_logged_out_message": "Käytettävissä vain sisäänkirjautuneena.",
"search_popout.language_code": "ISO-kielikoodi",
"search_popout.options": "Hakuvalinnat",
"search_popout.quick_actions": "Pikatoiminnot",
@@ -714,10 +714,8 @@
"upload_error.poll": "Tiedoston lataaminen ei ole sallittua äänestyksissä.",
"upload_form.audio_description": "Kuvaile sisältÃļä kuuroille ja kuulorajoitteisille",
"upload_form.description": "Kuvaile sisältÃļä sokeille ja näkÃļrajoitteisille",
- "upload_form.description_missing": "Kuvausta ei ole lisätty",
"upload_form.edit": "Muokkaa",
"upload_form.thumbnail": "Vaihda pikkukuva",
- "upload_form.undo": "Poista",
"upload_form.video_description": "Kuvaile sisältÃļä kuuroille, kuulorajoitteisille, sokeille tai näkÃļrajoitteisille",
"upload_modal.analyzing_picture": "Analysoidaan kuvaaâĻ",
"upload_modal.apply": "Käytä",
diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json
index bc7635887..ec27c8f60 100644
--- a/app/javascript/mastodon/locales/fil.json
+++ b/app/javascript/mastodon/locales/fil.json
@@ -31,7 +31,6 @@
"account.followers.empty": "Wala pang sumusunod sa tagagamit na ito.",
"account.following": "Sinusundan",
"account.follows.empty": "Wala pang sinusundan ang tagagamit na ito.",
- "account.follows_you": "Sinusunod ka",
"account.go_to_profile": "Pumunta sa profile",
"account.hide_reblogs": "Itago ang mga pagpapalakas mula sa {name}",
"account.in_memoriam": "Sa Alaala Ni.",
diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json
index 45fafd15d..a4c529608 100644
--- a/app/javascript/mastodon/locales/fo.json
+++ b/app/javascript/mastodon/locales/fo.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Einki uppslag",
"account.featured_tags.title": "TvÃkrossar hjÃĄ {name}",
"account.follow": "Fylg",
+ "account.follow_back": "Fylg aftur",
"account.followers": "Fylgjarar",
"account.followers.empty": "Ongar fylgjarar enn.",
"account.followers_counter": "{count, plural, one {{counter} Fylgjari} other {{counter} Fylgjarar}}",
"account.following": "Fylgir",
"account.following_counter": "{count, plural, one {{counter} fylgir} other {{counter} fylgja}}",
"account.follows.empty": "Hesin brÃēkari fylgir ongum enn.",
- "account.follows_you": "Fylgir tÃĻr",
"account.go_to_profile": "Far til vanga",
"account.hide_reblogs": "Fjal lyft frÃĄ @{name}",
"account.in_memoriam": "In memoriam.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Sløkk frÃĄboðanir",
"account.mute_short": "Doyv",
"account.muted": "Sløkt/ur",
+ "account.mutual": "SÃnamillum",
"account.no_bio": "LÃŊsing vantar.",
"account.open_original_page": "Opna upprunasÃðuna",
"account.posts": "Uppsløg",
@@ -88,7 +89,6 @@
"announcement.announcement": "Kunngerð",
"attachments_list.unprocessed": "(Ãŗviðgjørt)",
"audio.hide": "Fjal ljÃŗð",
- "autosuggest_hashtag.per_week": "{count} um vikuna",
"boost_modal.combo": "TÃē kanst trÃŊsta ÃĄ {combo} fyri at loypa uppum hetta nÃĻstu ferð",
"bundle_column_error.copy_stacktrace": "Avrita feilfrÃĄboðan",
"bundle_column_error.error.body": "Umbidna sÃðan kann ikki vÃsast. Tað kann vera orsakað av einum feili à koduni hjÃĄ okkum ella tað kann vera orsakað av kaganum, sum tÃē brÃēkar.",
@@ -147,20 +147,20 @@
"compose_form.placeholder": "Hvat hevur tÃē Ã huga?",
"compose_form.poll.add_option": "Legg valmøguleika afturat",
"compose_form.poll.duration": "AtkvøðugreiðslutÃð",
+ "compose_form.poll.multiple": "Fleiri valmøguleikar",
"compose_form.poll.option_placeholder": "Valmøguleiki {number}",
- "compose_form.poll.remove_option": "Strika valmøguleikan",
+ "compose_form.poll.remove_option": "Strika hendan valmøguleikan",
+ "compose_form.poll.single": "Vel ein",
"compose_form.poll.switch_to_multiple": "Broyt atkvøðugreiðslu til at loyva fleiri svarum",
"compose_form.poll.switch_to_single": "Broyt atkvøðugreiðslu til einstakt svar",
- "compose_form.publish": "Legg Ãēt",
+ "compose_form.poll.type": "StÃlur",
+ "compose_form.publish": "Posta",
"compose_form.publish_form": "Legg Ãēt",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Goym broytingar",
- "compose_form.sensitive.hide": "{count, plural, one {FrÃĄmerk tilfar sum viðkvÃĻmt} other {FrÃĄmerk tilfar sum viðkvÃĻmt}}",
- "compose_form.sensitive.marked": "{count, plural, one {Tilfarið er frÃĄmerkt sum viðkvÃĻmt} other {Tilfarið er frÃĄmerkt sum viðkvÃĻmt}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Tilfarið er ikki merkt sum viðkvÃĻmt} other {Tilfarið er ikki merkt sum viðkvÃĻmt}}",
+ "compose_form.reply": "Svara",
+ "compose_form.save_changes": "Dagfør",
"compose_form.spoiler.marked": "Ãvaring um at strika innihald",
"compose_form.spoiler.unmarked": "Skriva ÃĄvaring um innihald",
- "compose_form.spoiler_placeholder": "Skriva tÃna ÃĄvaring her",
+ "compose_form.spoiler_placeholder": "InnihaldsÃĄvaring (valfrÃ)",
"confirmation_modal.cancel": "Strika",
"confirmations.block.block_and_report": "Banna og melda",
"confirmations.block.confirm": "Banna",
@@ -392,6 +392,7 @@
"lists.search": "Leita millum fÃŗlk, sum tÃē fylgir",
"lists.subheading": "TÃnir listar",
"load_pending": "{count, plural, one {# nÃŊtt evni} other {# nÃŊggj evni}}",
+ "loading_indicator.label": "InnlesurâĻ",
"media_gallery.toggle_visible": "{number, plural, one {Fjal mynd} other {Fjal myndir}}",
"moved_to_account_banner.text": "Konta tÃn {disabledAccount} er à løtuni Ãŗvirkin, tà tÃē flutti til {movedToAccount}.",
"mute_modal.duration": "TÃðarbil",
@@ -406,7 +407,6 @@
"navigation_bar.direct": "Privatar umrøður",
"navigation_bar.discover": "Uppdaga",
"navigation_bar.domain_blocks": "Bannað økisnøvn",
- "navigation_bar.edit_profile": "Broyt vanga",
"navigation_bar.explore": "Rannsaka",
"navigation_bar.favourites": "DÃĄmdir postar",
"navigation_bar.filters": "Doyvd orð",
@@ -482,6 +482,15 @@
"onboarding.follows.title": "VÃĻlumtÃŗkt ÃĄ Mastodon",
"onboarding.profile.discoverable": "Ger tað møguligt hjÃĄ øðrum at finna vangan hjÃĄ mÃĻr",
"onboarding.profile.discoverable_hint": "TÃĄ tÃē jÃĄttar at onnur skulu kunna finna teg ÃĄ Mastodon, so kann henda, at postar tÃnir sÃggjast à leitiÃērslitum og rÃĄkum, og vangin hjÃĄ tÃĻr kann vera skotin upp fyri fÃŗlki við ÃĄhugamÃĄlum sum minna um tÃni.",
+ "onboarding.profile.display_name": "Navn, sum skal vÃsast",
+ "onboarding.profile.display_name_hint": "TÃtt fulla navn ella tÃtt stuttliga navnâĻ",
+ "onboarding.profile.lead": "TÃē kanst altÃð gera hetta liðugt seinni à stillingunum, har enn fleiri tillagingarmøguleikar eru tøkir.",
+ "onboarding.profile.note": "ÃvilÃŊsing",
+ "onboarding.profile.note_hint": "TÃē kanst @umrøða onnur fÃŗlk ella #frÃĄmerkiâĻ",
+ "onboarding.profile.save_and_continue": "Goym og halt fram",
+ "onboarding.profile.title": "Vangauppsetan",
+ "onboarding.profile.upload_avatar": "Legg vangamynd upp",
+ "onboarding.profile.upload_header": "Legg vangahøvd upp",
"onboarding.share.lead": "Lat fÃŗlk vita, hvussu tey kunnu finna teg ÃĄ Mastodon!",
"onboarding.share.message": "Eg eri {username} ÃĄ #Mastodon! Kom og fylg mÃĻr ÃĄ {url}",
"onboarding.share.next_steps": "Møgulig nÃĻstu stig:",
@@ -515,14 +524,15 @@
"poll_button.add_poll": "Legg atkvøðugreiðslu afturat",
"poll_button.remove_poll": "Strika atkvøðugreiðslu",
"privacy.change": "Broyt privatverju av posti",
- "privacy.direct.long": "Bert sjÃŗnligt hjÃĄ nevndum brÃēkarum",
- "privacy.direct.short": "Bert nevnd fÃŗlk",
- "privacy.private.long": "Bert sjÃŗnligt hjÃĄ fylgjarum",
- "privacy.private.short": "Einans fylgjarar",
- "privacy.public.long": "SjÃŗnligt hjÃĄ øllum",
+ "privacy.direct.long": "Ãll, sum eru nevnd à postinum",
+ "privacy.direct.short": "ÃvÃs fÃŗlk",
+ "privacy.private.long": "Einans tey, ið fylgja tÃĻr",
+ "privacy.private.short": "Fylgjarar",
+ "privacy.public.long": "Ãll à og uttanfyri Mastodon",
"privacy.public.short": "Alment",
- "privacy.unlisted.long": "SjÃŗnligur fyri øll, men ikki gjøgnum uppdagingarhentleikarnar",
- "privacy.unlisted.short": "Ikki listað",
+ "privacy.unlisted.additional": "Hetta er jÃēst sum almenn, tÃŗ verður posturin ikki vÃstur à samtÃðarrÃĄsum ella frÃĄmerkjum, rannsakan ella Mastodon leitingum, sjÃĄlvt um valið er galdandi fyri alla kontuna.",
+ "privacy.unlisted.long": "FÃĻrri algoritmiskar fanfarur",
+ "privacy.unlisted.short": "Stillur almenningur",
"privacy_policy.last_updated": "Seinast dagført {date}",
"privacy_policy.title": "PrivatlÃvspolitikkur",
"recommended": "ViðmÃĻlt",
@@ -540,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "Ã dag",
+ "reply_indicator.attachments": "{count, plural, one {# viðfesti} other {# viðfesti}}",
"reply_indicator.cancel": "Ãgilda",
+ "reply_indicator.poll": "Atkvøðugreiðsla",
"report.block": "Blokera",
"report.block_explanation": "TÃē fer ikki at sÃggja postarnar hjÃĄ teimum. Tey kunnu ikki sÃggja tÃnar postar ella fylgja tÃĻr. Tey sÃggja, at tey eru blokeraði.",
"report.categories.legal": "Løgfrøðisligt",
@@ -704,10 +716,8 @@
"upload_error.poll": "Ikki loyvt at leggja fÃlur upp à spurnarkanningum.",
"upload_form.audio_description": "LÃŊs fyri teimum, sum eru deyv ella hava ringa hoyrn",
"upload_form.description": "LÃŊs fyri teimum, sum eru blind ella eru sjÃŗnveik",
- "upload_form.description_missing": "LÃŊsing vantar",
"upload_form.edit": "RÃĻtta",
"upload_form.thumbnail": "Broyt smÃĄmynd",
- "upload_form.undo": "Strika",
"upload_form.video_description": "LÃŊs fyri teimum, sum eru deyv, hava ringa hoyrn, eru blind ella eru sjÃŗnveik",
"upload_modal.analyzing_picture": "Greini myndâĻ",
"upload_modal.apply": "Ger virkið",
diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-CA.json
similarity index 97%
rename from app/javascript/mastodon/locales/fr-QC.json
rename to app/javascript/mastodon/locales/fr-CA.json
index e2067cc46..66a7da6d1 100644
--- a/app/javascript/mastodon/locales/fr-QC.json
+++ b/app/javascript/mastodon/locales/fr-CA.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Aucune publication",
"account.featured_tags.title": "Hashtags inclus de {name}",
"account.follow": "Suivre",
+ "account.follow_back": "S'abonner en retour",
"account.followers": "abonnÃŠÂˇe¡s",
"account.followers.empty": "Personne ne suit ce compte pour l'instant.",
"account.followers_counter": "{count, plural, one {{counter} AbonnÃŠÂˇe} other {{counter} AbonnÃŠÂˇe¡s}}",
"account.following": "AbonnÃŠÂˇe",
"account.following_counter": "{count, plural, one {{counter} Abonnement} other {{counter} Abonnements}}",
"account.follows.empty": "Ce compte ne suit personne prÊsentement.",
- "account.follows_you": "Vous suit",
"account.go_to_profile": "Voir ce profil",
"account.hide_reblogs": "Masquer les boosts de @{name}",
"account.in_memoriam": "En souvenir de",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Rendre les notifications muettes",
"account.mute_short": "Rendre muet",
"account.muted": "MasquÃŠÂˇe",
+ "account.mutual": "Mutuel",
"account.no_bio": "Description manquante.",
"account.open_original_page": "Ouvrir la page d'origine",
"account.posts": "Publications",
@@ -88,7 +89,6 @@
"announcement.announcement": "Annonce",
"attachments_list.unprocessed": "(non traitÊ)",
"audio.hide": "Masquer l'audio",
- "autosuggest_hashtag.per_week": "{count} par semaine",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour sauter ceci la prochaine fois",
"bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur",
"bundle_column_error.error.body": "La page demandÊe n'a pas pu ÃĒtre affichÊe. Cela pourrait ÃĒtre dÃģ à un bogue dans notre code, ou à un problème de compatibilitÊ avec le navigateur.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "Votre compte nâest pas {locked}. Tout le monde peut vous suivre et voir vos publications privÊs.",
"compose_form.lock_disclaimer.lock": "verrouillÊ",
"compose_form.placeholder": "Ã quoi pensez-vous?",
- "compose_form.poll.add_option": "Ajouter un choix",
"compose_form.poll.duration": "DurÊe du sondage",
- "compose_form.poll.option_placeholder": "Choix {number}",
- "compose_form.poll.remove_option": "Supprimer ce choix",
"compose_form.poll.switch_to_multiple": "Changer le sondage pour autoriser plusieurs choix",
"compose_form.poll.switch_to_single": "Changer le sondage pour n'autoriser qu'un seul choix",
- "compose_form.publish": "Publier",
"compose_form.publish_form": "Publier",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Enregistrer les modifications",
- "compose_form.sensitive.hide": "{count, plural, one {Marquer mÊdia comme sensible} other {Marquer mÊdias comme sensibles}}",
- "compose_form.sensitive.marked": "{count, plural, one {Le mÊdia est marquÊ comme sensible} other {Les mÊdias sont marquÊs comme sensibles}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Le mÊdia nâest pas marquÊ comme sensible} other {Les mÊdias ne sont pas marquÊs comme sensibles}}",
"compose_form.spoiler.marked": "Enlever l'avertissement de contenu",
"compose_form.spoiler.unmarked": "Ajouter un avertissement de contenu",
- "compose_form.spoiler_placeholder": "Ãcrivez votre avertissement ici",
"confirmation_modal.cancel": "Annuler",
"confirmations.block.block_and_report": "Bloquer et signaler",
"confirmations.block.confirm": "Bloquer",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "Mention privÊe",
"navigation_bar.discover": "DÊcouvrir",
"navigation_bar.domain_blocks": "Domaines bloquÊs",
- "navigation_bar.edit_profile": "Modifier le profil",
"navigation_bar.explore": "Explorer",
"navigation_bar.favourites": "Favoris",
"navigation_bar.filters": "Mots masquÊs",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "Ajouter un sondage",
"poll_button.remove_poll": "Supprimer le sondage",
"privacy.change": "Changer la confidentialitÊ des messages",
- "privacy.direct.long": "Visible uniquement par les comptes mentionnÊs",
- "privacy.direct.short": "Personnes mentionnÊes uniquement",
- "privacy.private.long": "Visible uniquement pour vos abonnÃŠÂˇe¡s",
- "privacy.private.short": "AbonnÃŠÂˇe¡s seulement",
- "privacy.public.long": "Visible pour tous",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Visible pour tous, mais sans fonctionnalitÊs de dÊcouverte",
- "privacy.unlisted.short": "Non listÊ",
"privacy_policy.last_updated": "Dernière mise à jour {date}",
"privacy_policy.title": "Politique de confidentialitÊ",
"recommended": "RecommandÊ",
@@ -714,10 +696,8 @@
"upload_error.poll": "Lâenvoi de fichiers nâest pas autorisÊ avec les sondages.",
"upload_form.audio_description": "DÊcrire pour les personnes ayant des difficultÊs dâaudition",
"upload_form.description": "DÊcrire pour les malvoyants",
- "upload_form.description_missing": "Description manquante",
"upload_form.edit": "Modifier",
"upload_form.thumbnail": "Changer la vignette",
- "upload_form.undo": "Supprimer",
"upload_form.video_description": "DÊcrire pour les personnes ayant des problèmes de vue ou d'audition",
"upload_modal.analyzing_picture": "Analyse de lâimage en coursâĻ",
"upload_modal.apply": "Appliquer",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 7db4bf7bc..2d0fa3b7d 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Aucun message",
"account.featured_tags.title": "Les hashtags en vedette de {name}",
"account.follow": "Suivre",
+ "account.follow_back": "S'abonner en retour",
"account.followers": "AbonnÃŠÂˇe¡s",
"account.followers.empty": "Personne ne suit cet¡te utilisateur¡rice pour lâinstant.",
"account.followers_counter": "{count, plural, one {{counter} AbonnÃŠÂˇe} other {{counter} AbonnÃŠÂˇe¡s}}",
"account.following": "Abonnements",
"account.following_counter": "{count, plural, one {{counter} Abonnement} other {{counter} Abonnements}}",
"account.follows.empty": "Cet¡te utilisateur¡rice ne suit personne pour lâinstant.",
- "account.follows_you": "Vous suit",
"account.go_to_profile": "Aller au profil",
"account.hide_reblogs": "Masquer les partages de @{name}",
"account.in_memoriam": "En mÊmoire de.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "DÊsactiver les alertes",
"account.mute_short": "Mettre en sourdine",
"account.muted": "MasquÃŠÂˇe",
+ "account.mutual": "Mutuel",
"account.no_bio": "Aucune description fournie.",
"account.open_original_page": "Ouvrir la page d'origine",
"account.posts": "Messages",
@@ -88,7 +89,6 @@
"announcement.announcement": "Annonce",
"attachments_list.unprocessed": "(non traitÊ)",
"audio.hide": "Masquer l'audio",
- "autosuggest_hashtag.per_week": "{count} par semaine",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois",
"bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur",
"bundle_column_error.error.body": "La page demandÊe n'a pas pu ÃĒtre affichÊe. Cela peut ÃĒtre dÃģ à un bogue dans notre code, ou à un problème de compatibilitÊ avec le navigateur.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "Votre compte nâest pas {locked}. Tout le monde peut vous suivre pour voir vos messages rÊservÊs à vos abonnÊâ
eâ
s.",
"compose_form.lock_disclaimer.lock": "verrouillÊ",
"compose_form.placeholder": "Quâavez-vous en tÃĒteâ¯?",
- "compose_form.poll.add_option": "Ajouter un choix",
"compose_form.poll.duration": "DurÊe du sondage",
- "compose_form.poll.option_placeholder": "Choix {number}",
- "compose_form.poll.remove_option": "Supprimer ce choix",
"compose_form.poll.switch_to_multiple": "Changer le sondage pour autoriser plusieurs choix",
"compose_form.poll.switch_to_single": "Modifier le sondage pour autoriser qu'un seul choix",
- "compose_form.publish": "Publier",
"compose_form.publish_form": "Nouvelle publication",
- "compose_form.publish_loud": "{publish}â¯!",
- "compose_form.save_changes": "Enregistrer les modifications",
- "compose_form.sensitive.hide": "{count, plural, one {Marquer le mÊdia comme sensible} other {Marquer les mÊdias comme sensibles}}",
- "compose_form.sensitive.marked": "{count, plural, one {Le mÊdia est marquÊ comme sensible} other {Les mÊdias sont marquÊs comme sensibles}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Le mÊdia nâest pas marquÊ comme sensible} other {Les mÊdias ne sont pas marquÊs comme sensibles}}",
"compose_form.spoiler.marked": "Enlever lâavertissement de contenu",
"compose_form.spoiler.unmarked": "Ajouter un avertissement de contenu",
- "compose_form.spoiler_placeholder": "Ãcrivez votre avertissement ici",
"confirmation_modal.cancel": "Annuler",
"confirmations.block.block_and_report": "Bloquer et signaler",
"confirmations.block.confirm": "Bloquer",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "Mention privÊe",
"navigation_bar.discover": "DÊcouvrir",
"navigation_bar.domain_blocks": "Domaines bloquÊs",
- "navigation_bar.edit_profile": "Modifier le profil",
"navigation_bar.explore": "Explorer",
"navigation_bar.favourites": "Favoris",
"navigation_bar.filters": "Mots masquÊs",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "Ajouter un sondage",
"poll_button.remove_poll": "Supprimer le sondage",
"privacy.change": "Ajuster la confidentialitÊ du message",
- "privacy.direct.long": "Visible uniquement par les comptes mentionnÊs",
- "privacy.direct.short": "Personnes mentionnÊes uniquement",
- "privacy.private.long": "Visible uniquement par vos abonnÊs",
- "privacy.private.short": "AbonnÊs uniquement",
- "privacy.public.long": "Visible pour tous",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Visible pour tous, mais sans fonctionnalitÊs de dÊcouverte",
- "privacy.unlisted.short": "Non listÊ",
"privacy_policy.last_updated": "Dernière mise à jour {date}",
"privacy_policy.title": "Politique de confidentialitÊ",
"recommended": "RecommandÊ",
@@ -714,10 +696,8 @@
"upload_error.poll": "Lâenvoi de fichiers nâest pas autorisÊ avec les sondages.",
"upload_form.audio_description": "DÊcrire pour les personnes ayant des difficultÊs dâaudition",
"upload_form.description": "DÊcrire pour les malvoyant¡e¡s",
- "upload_form.description_missing": "Description manquante",
"upload_form.edit": "Modifier",
"upload_form.thumbnail": "Changer la vignette",
- "upload_form.undo": "Supprimer",
"upload_form.video_description": "DÊcrire pour les personnes ayant des problèmes de vue ou d'audition",
"upload_modal.analyzing_picture": "Analyse de lâimage en coursâĻ",
"upload_modal.apply": "Appliquer",
diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json
index 2ec4a53bf..d5f22d2ee 100644
--- a/app/javascript/mastodon/locales/fy.json
+++ b/app/javascript/mastodon/locales/fy.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Gjin berjochten",
"account.featured_tags.title": "Utljochte hashtags fan {name}",
"account.follow": "Folgje",
+ "account.follow_back": "Weromfolgje",
"account.followers": "Folgers",
"account.followers.empty": "Noch net ien folget dizze brÃģker.",
"account.followers_counter": "{count, plural, one {{counter} folger} other {{counter} folgers}}",
"account.following": "Folgjend",
"account.following_counter": "{count, plural, one {{counter} folgjend} other {{counter} folgjend}}",
"account.follows.empty": "Dizze brÃģker folget noch net ien.",
- "account.follows_you": "Folget jo",
"account.go_to_profile": "Gean nei profyl",
"account.hide_reblogs": "Boosts fan @{name} ferstopje",
"account.in_memoriam": "Yn memoriam.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Meldingen negearje",
"account.mute_short": "Negearje",
"account.muted": "Negearre",
+ "account.mutual": "Jimme folgje inoar",
"account.no_bio": "Gjin omskriuwing opjÃģn.",
"account.open_original_page": "Orizjinele side iepenje",
"account.posts": "Berjochten",
@@ -88,7 +89,6 @@
"announcement.announcement": "Oankundiging",
"attachments_list.unprocessed": "(net ferwurke)",
"audio.hide": "Audio ferstopje",
- "autosuggest_hashtag.per_week": "{count} yn âe wike",
"boost_modal.combo": "Jo kinne op {combo} drukke om dit de folgjende kear oer te slaan",
"bundle_column_error.copy_stacktrace": "Flaterrapport kopiearje",
"bundle_column_error.error.body": "De opfrege side koe net werjÃģn wurde. It kin wÃĒze troch in flater yn Ãēs koade, of in probleem mei browserkompatibiliteit.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "Jo account is net {locked}. Elkenien kin jo folgje en kin de berjochten sjen dyât jo allinnich oan jo folgers rjochte hawwe.",
"compose_form.lock_disclaimer.lock": "beskoattele",
"compose_form.placeholder": "Wat wolle jo kwyt?",
- "compose_form.poll.add_option": "Kar tafoegje",
"compose_form.poll.duration": "Doer fan de enkÃĒte",
- "compose_form.poll.option_placeholder": "Kar {number}",
- "compose_form.poll.remove_option": "Dizze kar fuortsmite",
"compose_form.poll.switch_to_multiple": "EnkÃĒte wizigje om meardere karren ta te stean",
"compose_form.poll.switch_to_single": "EnkÃĒte wizigje om in inkelde kar ta te stean",
- "compose_form.publish": "Publisearje",
"compose_form.publish_form": "Publisearje",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Wizigingen bewarje",
- "compose_form.sensitive.hide": "{count, plural, one {Media as gefoelich markearje} other {Media as gefoelich markearje}}",
- "compose_form.sensitive.marked": "{count, plural, one {Media as gefoelich markearre} other {Media as gefoelich markearre}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Media is net as gefoelich markearre} other {Media is net as gefoelich markearre}}",
"compose_form.spoiler.marked": "YnhÃĸldswarskôging fuortsmite",
"compose_form.spoiler.unmarked": "YnhÃĸldswarskôging tafoegje",
- "compose_form.spoiler_placeholder": "Warskôgingstekst",
"confirmation_modal.cancel": "Annulearje",
"confirmations.block.block_and_report": "Blokkearje en rapportearje",
"confirmations.block.confirm": "Blokkearje",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "Priveefermeldingen",
"navigation_bar.discover": "Untdekke",
"navigation_bar.domain_blocks": "Blokkearre domeinen",
- "navigation_bar.edit_profile": "Profyl bewurkje",
"navigation_bar.explore": "Ferkenne",
"navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Negearre wurden",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "Poll tafoegje",
"poll_button.remove_poll": "EnkÃĒte fuortsmite",
"privacy.change": "Sichtberheid fan berjocht oanpasse",
- "privacy.direct.long": "Allinnich sichtber foar fermelde brÃģkers",
- "privacy.direct.short": "Allinnich fermelde minsken",
- "privacy.private.long": "Allinnich sichtber foar folgers",
- "privacy.private.short": "Allinnich folgers",
- "privacy.public.long": "Sichtber foar elkenien",
"privacy.public.short": "Iepenbier",
- "privacy.unlisted.long": "Foar elkenien sichtber, mar net Ãģnder trends, hashtags en op iepenbiere tiidlinen",
- "privacy.unlisted.short": "Minder iepenbier",
"privacy_policy.last_updated": "LÃĒst bywurke op {date}",
"privacy_policy.title": "Privacybelied",
"recommended": "Oanrekommandearre",
@@ -714,10 +696,8 @@
"upload_error.poll": "It opladen fan bestannen is yn enkÃĒten net tastien.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
- "upload_form.description_missing": "Gjin omskriuwing tafoege",
"upload_form.edit": "Bewurkje",
"upload_form.thumbnail": "Miniatuerôfbylding wizigje",
- "upload_form.undo": "Fuortsmite",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Ofbylding analysearjeâĻ",
"upload_modal.apply": "Tapasse",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index ee6b44c88..855a27d05 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -35,7 +35,6 @@
"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.go_to_profile": "TÊigh go dtà prÃŗifÃl",
"account.hide_reblogs": "Folaigh moltaà Ãŗ @{name}",
"account.in_memoriam": "CuimhneachÃĄn.",
@@ -77,7 +76,6 @@
"announcement.announcement": "FÃŗgra",
"attachments_list.unprocessed": "(neamhphrÃŗiseÃĄilte)",
"audio.hide": "Cuir fuaim i bhfolach",
- "autosuggest_hashtag.per_week": "{count} sa seachtain",
"boost_modal.combo": "Is fÊidir leat {combo} a bhrÃē chun Ê seo a scipeÃĄil an chÊad uair eile",
"bundle_column_error.copy_stacktrace": "CÃŗipeÃĄil tuairisc earrÃĄide",
"bundle_column_error.error.body": "Nà fÊidir an leathanach a iarradh a sholÃĄthar. Seans gurb amhlaidh mar gheall ar fhabht sa chÃŗd, nÃŗ mar gheall ar mhÃrÊireacht leis an mbrabhsÃĄlaÃ.",
@@ -128,19 +126,12 @@
"compose_form.lock_disclaimer": "NÃl an cuntas seo {locked}. FÊadfaidh duine ar bith tÃē a leanÃēint agus na postÃĄlacha atÃĄ dÃrithe agat ar do lucht leanÃēna amhÃĄin a fheiceÃĄil.",
"compose_form.lock_disclaimer.lock": "faoi ghlas",
"compose_form.placeholder": "Cad atÃĄ ag tarlÃē?",
- "compose_form.poll.add_option": "Cuir rogha isteach",
"compose_form.poll.duration": "Achar suirbhÊanna",
- "compose_form.poll.option_placeholder": "Rogha {number}",
- "compose_form.poll.remove_option": "Bain an rogha seo",
"compose_form.poll.switch_to_multiple": "Athraigh suirbhÊ chun cead a thabhairt do ilrogha",
"compose_form.poll.switch_to_single": "Athraigh suirbhÊ chun cead a thabhairt do rogha amhÃĄin",
- "compose_form.publish": "Foilsigh",
"compose_form.publish_form": "Foilsigh\n",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "SÃĄbhÃĄil",
"compose_form.spoiler.marked": "Bain rabhadh ÃĄbhair",
"compose_form.spoiler.unmarked": "Cuir rabhadh ÃĄbhair",
- "compose_form.spoiler_placeholder": "ScrÃobh do rabhadh anseo",
"confirmation_modal.cancel": "Cealaigh",
"confirmations.block.block_and_report": "Bac â Tuairiscigh",
"confirmations.block.confirm": "Bac",
@@ -326,7 +317,6 @@
"navigation_bar.compose": "Cum postÃĄil nua",
"navigation_bar.discover": "Faigh amach",
"navigation_bar.domain_blocks": "Fearainn bhactha",
- "navigation_bar.edit_profile": "Cuir an phrÃŗifÃl in eagar",
"navigation_bar.explore": "FÊach thart",
"navigation_bar.filters": "Focail bhalbhaithe",
"navigation_bar.follow_requests": "Iarratais leanÃēnaÃ",
@@ -402,12 +392,7 @@
"poll_button.add_poll": "Cruthaigh suirbhÊ",
"poll_button.remove_poll": "Bain suirbhÊ",
"privacy.change": "Adjust status privacy",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Sofheicthe do LeantÃŗirà amhÃĄin",
- "privacy.private.short": "LeantÃŗirà amhÃĄin",
- "privacy.public.long": "Infheicthe do chÃĄch",
"privacy.public.short": "PoiblÃ",
- "privacy.unlisted.short": "Neamhliostaithe",
"privacy_policy.title": "Polasaà prÃobhÃĄideachais",
"refresh": "Athnuaigh",
"regeneration_indicator.label": "Ag lÃŗdÃĄilâĻ",
@@ -530,7 +515,6 @@
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.edit": "Cuir in eagar",
- "upload_form.undo": "Scrios",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Ag anailÃsiÃē ÃomhÃĄâĻ",
"upload_modal.apply": "Cuir i bhFeidhm",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index 91333c1a0..0c7ef79cd 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -37,7 +37,6 @@
"account.following": "Aâ leantainn",
"account.following_counter": "{count, plural, one {Aâ leantainn {counter}} two {Aâ leantainn {counter}} few {Aâ leantainn {counter}} other {Aâ leantainn {counter}}}",
"account.follows.empty": "Chan eil an cleachdaiche seo aâ leantainn neach sam bith fhathast.",
- "account.follows_you": "Gad leantainn",
"account.go_to_profile": "Tadhail air aâ phrÃ˛ifil",
"account.hide_reblogs": "Falaich na brosnachaidhean o @{name}",
"account.in_memoriam": "Mar chuimhneachan.",
@@ -87,7 +86,6 @@
"announcement.announcement": "Brath-fios",
"attachments_list.unprocessed": "(gun phrÃ˛iseasadh)",
"audio.hide": "Falaich an fhuaim",
- "autosuggest_hashtag.per_week": "{count} san t-seachdain",
"boost_modal.combo": "BrÚth air {combo} nam bâ fheà rr leat leum a ghearradh thar seo an ath-thuras",
"bundle_column_error.copy_stacktrace": "Dèan lethbhreac de aithris na mearachd",
"bundle_column_error.error.body": "Cha bâ urrainn dhuinn an duilleag a dhâiarr thu a reandaradh. Dhâfhaoidte gu bheil buga sa chÃ˛d againn no duilgheadas co-chÃ˛rdalachd leis aâ bhrabhsair.",
@@ -144,22 +142,12 @@
"compose_form.lock_disclaimer": "Chan eil an cunntas agad {locked}. âS urrainn do dhuine sam bith âgad leantainn is na postaichean agad a tha ag amas air an luchd-leantainn agad a-mhà in a shealltainn.",
"compose_form.lock_disclaimer.lock": "glaiste",
"compose_form.placeholder": "Dè tha air dâ aire?",
- "compose_form.poll.add_option": "Cuir roghainn ris",
"compose_form.poll.duration": "Faide aâ chunntais-bheachd",
- "compose_form.poll.option_placeholder": "Roghainn {number}",
- "compose_form.poll.remove_option": "Thoir an roghainn seo air falbh",
"compose_form.poll.switch_to_multiple": "Atharraich an cunntas-bheachd ach an gabh iomadh roghainn a thaghadh",
"compose_form.poll.switch_to_single": "Atharraich an cunntas-bheachd gus nach gabh ach aon roghainn a thaghadh",
- "compose_form.publish": "Foillsich",
"compose_form.publish_form": "Post Úr",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "SÃ bhail na h-atharraichean",
- "compose_form.sensitive.hide": "{count, plural, one {Cuir comharra gu bheil am meadhan frionasach} two {Cuir comharra gu bheil na meadhanan frionasach} few {Cuir comharra gu bheil na meadhanan frionasach} other {Cuir comharra gu bheil na meadhanan frionasach}}",
- "compose_form.sensitive.marked": "{count, plural, one {Tha comharra ris aâ mheadhan gu bheil e frionasach} two {Tha comharra ris na meadhanan gu bheil iad frionasach} few {Tha comharra ris na meadhanan gu bheil iad frionasach} other {Tha comharra ris na meadhanan gu bheil iad frionasach}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Chan eil comharra ris aâ mheadhan gun robh e frionasach} two {Chan eil comharra ris na meadhanan gun robh iad frionasach} few {Chan eil comharra ris na meadhanan gun robh iad frionasach} other {Chan eil comharra ris na meadhanan gun robh iad frionasach}}",
"compose_form.spoiler.marked": "Thoir air falbh an rabhadh susbainte",
"compose_form.spoiler.unmarked": "Cuir rabhadh susbainte ris",
- "compose_form.spoiler_placeholder": "SgrÃŦobh an rabhadh agad an-seo",
"confirmation_modal.cancel": "Sguir dheth",
"confirmations.block.block_and_report": "Bac â dèan gearan",
"confirmations.block.confirm": "Bac",
@@ -403,7 +391,6 @@
"navigation_bar.direct": "Iomraidhean prÃŦobhaideach",
"navigation_bar.discover": "RÚraich",
"navigation_bar.domain_blocks": "Ãrainnean bacte",
- "navigation_bar.edit_profile": "Deasaich aâ phrÃ˛ifil",
"navigation_bar.explore": "RÚraich",
"navigation_bar.favourites": "Annsachdan",
"navigation_bar.filters": "Faclan mÚchte",
@@ -510,14 +497,7 @@
"poll_button.add_poll": "Cuir cunntas-bheachd ris",
"poll_button.remove_poll": "Thoir air falbh an cunntas-bheachd",
"privacy.change": "Cuir gleus air prÃŦobhaideachd aâ phuist",
- "privacy.direct.long": "Chan fhaic ach na cleachdaichean le iomradh orra seo",
- "privacy.direct.short": "An fheadhainn le iomradh orra a-mhà in",
- "privacy.private.long": "Chan fhaic ach na daoine a tha âgad leantainn seo",
- "privacy.private.short": "Luchd-leantainn a-mhà in",
- "privacy.public.long": "ChÃŦ a h-uile duine e",
"privacy.public.short": "Poblach",
- "privacy.unlisted.long": "ChÃŦ a h-uile duine e ach cha nochd e ann an gleusan rÚrachaidh",
- "privacy.unlisted.short": "Falaichte o liostaichean",
"privacy_policy.last_updated": "An t-Úrachadh mu dheireadh {date}",
"privacy_policy.title": "Poileasaidh prÃŦobhaideachd",
"refresh": "Ath-nuadhaich",
@@ -697,10 +677,8 @@
"upload_error.poll": "Chan fhaod thu faidhle a luchdadh suas an cois cunntais-bheachd.",
"upload_form.audio_description": "MÃŦnich e dhan fheadhainn le èisteachd bheag",
"upload_form.description": "MÃŦnich e dhan fheadhainn le cion-lèirsinne",
- "upload_form.description_missing": "Cha deach tuairisgeul a chur ris",
"upload_form.edit": "Deasaich",
"upload_form.thumbnail": "Atharraich an dealbhag",
- "upload_form.undo": "Sguab à s",
"upload_form.video_description": "MÃŦnich e dhan fheadhainn le èisteachd bheag no cion-lèirsinne",
"upload_modal.analyzing_picture": "Aâ sgrÚdadh an deilbhâĻ",
"upload_modal.apply": "Cuir an sà s",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 08d7d4977..ffd01a547 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -20,7 +20,7 @@
"account.block_short": "Bloquear",
"account.blocked": "Bloqueada",
"account.browse_more_on_origin_server": "Busca mÃĄis no perfil orixinal",
- "account.cancel_follow_request": "Cancelar a solicitude de seguimento",
+ "account.cancel_follow_request": "Desbotar a solicitude de seguimento",
"account.copy": "Copiar ligazÃŗn ao perfil",
"account.direct": "Mencionar de xeito privado a @{name}",
"account.disable_notifications": "Deixar de notificarme cando @{name} publica",
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Sen publicaciÃŗns",
"account.featured_tags.title": "Cancelos destacados de {name}",
"account.follow": "Seguir",
+ "account.follow_back": "Seguir tamÊn",
"account.followers": "Seguidoras",
"account.followers.empty": "AÃnda ninguÊn segue esta usuaria.",
"account.followers_counter": "{count, plural, one {{counter} Seguidora} other {{counter} Seguidoras}}",
"account.following": "Seguindo",
"account.following_counter": "{count, plural, one {{counter} Seguindo} other {{counter} Seguindo}}",
"account.follows.empty": "Esta usuaria aÃnda non segue a ninguÊn.",
- "account.follows_you": "SÊguete",
"account.go_to_profile": "Ir ao perfil",
"account.hide_reblogs": "Agochar promociÃŗns de @{name}",
"account.in_memoriam": "Lembranzas.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silenciar notificaciÃŗns",
"account.mute_short": "Acalar",
"account.muted": "Acalada",
+ "account.mutual": "Mutuo",
"account.no_bio": "Sen descriciÃŗn.",
"account.open_original_page": "Abrir pÃĄxina orixinal",
"account.posts": "PublicaciÃŗns",
@@ -88,7 +89,6 @@
"announcement.announcement": "Anuncio",
"attachments_list.unprocessed": "(sen procesar)",
"audio.hide": "Agochar audio",
- "autosuggest_hashtag.per_week": "{count} por semana",
"boost_modal.combo": "Preme {combo} para ignorar isto na seguinte vez",
"bundle_column_error.copy_stacktrace": "Copiar informe do erro",
"bundle_column_error.error.body": "Non se puido mostrar a pÃĄxina solicitada. PoderÃa deberse a un problema no cÃŗdigo, ou incompatiblidade co navegador.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "A tÃēa conta non estÃĄ {locked}. Todas poden seguirte para ollar os teus toots sÃŗ para seguidoras.",
"compose_form.lock_disclaimer.lock": "bloqueada",
"compose_form.placeholder": "Que contas?",
- "compose_form.poll.add_option": "Engadir unha opciÃŗn",
"compose_form.poll.duration": "DuraciÃŗn da enquisa",
- "compose_form.poll.option_placeholder": "OpciÃŗn {number}",
- "compose_form.poll.remove_option": "Eliminar esta opciÃŗn",
"compose_form.poll.switch_to_multiple": "Mudar a enquisa para permitir mÃēltiples escollas",
"compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa opciÃŗn",
- "compose_form.publish": "Publicar",
"compose_form.publish_form": "Publicar",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Gardar cambios",
- "compose_form.sensitive.hide": "{count, plural, one {Marca multimedia como sensible} other {Marca multimedia como sensibles}}",
- "compose_form.sensitive.marked": "{count, plural, one {Multimedia marcado como sensible} other {Multimedia marcados como sensibles}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Multimedia non marcado como sensible} other {Multimedia non marcado como sensible}}",
"compose_form.spoiler.marked": "Retirar o aviso sobre o contido",
"compose_form.spoiler.unmarked": "Engadir aviso sobre o contido",
- "compose_form.spoiler_placeholder": "Escribe o teu aviso aquÃ",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.block_and_report": "Bloquear e denunciar",
"confirmations.block.confirm": "Bloquear",
@@ -183,7 +173,7 @@
"confirmations.mute.explanation": "Isto agocharÃĄ as sÃēas publicaciÃŗns ou as que a mencionen, mais poderÃĄ ler as tÃēas publicaciÃŗns e ser seguidora tÃēa.",
"confirmations.mute.message": "Tes a certeza de querer acalar a {name}?",
"confirmations.redraft.confirm": "Eliminar e reescribir",
- "confirmations.redraft.message": "Tes a certeza de querer eliminar esta publicaciÃŗn e reescribila? PerderÃĄs as comparticiÃŗns e favoritas, e as respostas ÃĄ publicaciÃŗn orixinal ficarÃĄn orfas.",
+ "confirmations.redraft.message": "Tes a certeza de querer eliminar esta publicaciÃŗn e reescribila? PerderÃĄs as promociÃŗns e favorecementos, e as respostas ÃĄ publicaciÃŗn orixinal ficarÃĄn orfas.",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Ao responder sobrescribirÃĄs a mensaxe que estÃĄs a compor. Tes a certeza de que queres continuar?",
"confirmations.unfollow.confirm": "Deixar de seguir",
@@ -203,7 +193,7 @@
"disabled_account_banner.text": "Actualmente a tÃēa conta {disabledAccount} estÃĄ desactivada.",
"dismissable_banner.community_timeline": "Estas son as publicaciÃŗns mÃĄis recentes das persoas que teÃąen a sÃēa conta en {domain}.",
"dismissable_banner.dismiss": "Desbotar",
- "dismissable_banner.explore_links": "As persoas deste servidor e da rede descentralizada estÃĄn a falar destas historias agora mesmo.",
+ "dismissable_banner.explore_links": "Estas son as novas historias mÃĄs compartidas hoxe na web social. Aparecen primeiro as novas compartidas por mÃĄis persoas diferentes.",
"dismissable_banner.explore_statuses": "Estas son as publicaciÃŗns da web social que hoxe estÃĄn gaÃąando popularidade. As publicaciÃŗns con mÃĄis promociÃŗns e favorecemento teÃąen puntuaciÃŗn mÃĄis alta.",
"dismissable_banner.explore_tags": "Estes cancelos estÃĄn gaÃąando popularidade entre as persoas deste servidor e noutros servidores da rede descentralizada.",
"dismissable_banner.public_timeline": "Estas son as publicaciÃŗns pÃēblicas mÃĄis recentes das persoas que as usuarias de {domain} estÃĄn a seguir.",
@@ -239,7 +229,7 @@
"empty_column.follow_requests": "Non tes peticiÃŗns de seguimento. Cando recibas unha, amosarase aquÃ.",
"empty_column.followed_tags": "AÃnda non seguiches ningÃēn cancelo. Cando o fagas aparecerÃĄn aquÃ.",
"empty_column.hashtag": "AÃnda non hai nada con este cancelo.",
- "empty_column.home": "A tÃēa cronoloxÃa inicial estÃĄ baleira! Segue a outras usuarias para enchela. {suggestions}",
+ "empty_column.home": "A tÃēa cronoloxÃa inicial estÃĄ baleira! Sigue a outras usuarias para enchela.",
"empty_column.list": "AÃnda non hai nada nesta listaxe. Cando as usuarias incluÃdas na listaxe publiquen mensaxes, amosaranse aquÃ.",
"empty_column.lists": "AÃnda non tes listaxes. Cando crees unha, amosarase aquÃ.",
"empty_column.mutes": "AÃnda non silenciaches a ningÃēnha usuaria.",
@@ -345,7 +335,7 @@
"keyboard_shortcuts.down": "Para mover cara abaixo na listaxe",
"keyboard_shortcuts.enter": "Para abrir publicaciÃŗn",
"keyboard_shortcuts.favourite": "Marcar como favorita",
- "keyboard_shortcuts.favourites": "Para abrir a listaxe das favoritas",
+ "keyboard_shortcuts.favourites": "Para abrir a lista das favoritas",
"keyboard_shortcuts.federated": "Para abrir a cronoloxÃa federada",
"keyboard_shortcuts.heading": "Atallos do teclado",
"keyboard_shortcuts.home": "Para abrir a cronoloxÃa inicial",
@@ -382,7 +372,7 @@
"lists.delete": "Eliminar listaxe",
"lists.edit": "Editar listaxe",
"lists.edit.submit": "Mudar o tÃtulo",
- "lists.exclusive": "Agocha estas publicaciÃŗns no inicio",
+ "lists.exclusive": "Agocha estas publicaciÃŗns no Inicio",
"lists.new.create": "Engadir listaxe",
"lists.new.title_placeholder": "TÃtulo da nova listaxe",
"lists.replies_policy.followed": "Toda usuaria seguida",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "MenciÃŗns privadas",
"navigation_bar.discover": "Descubrir",
"navigation_bar.domain_blocks": "Dominios agochados",
- "navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Descubrir",
"navigation_bar.favourites": "Favoritas",
"navigation_bar.filters": "Palabras silenciadas",
@@ -479,8 +468,8 @@
"onboarding.actions.go_to_home": "Vai ÃĄ cronoloxÃa de inicio",
"onboarding.compose.template": "Ola #Mastodon!",
"onboarding.follows.empty": "Desgraciadamente agora mesmo non hai nada que mostrar. Podes intentalo coa busca ou na pÃĄxina descubrir para atopar persoas ÃĄs que seguir, ou intentalo mÃĄis tarde.",
- "onboarding.follows.lead": "Podes facer que a tÃēa cronoloxÃa de inicio sexa como ti a queres. Canta mÃĄis xente sigas mÃĄis interesante serÃĄ. Estes perfÃs poderÃan axudarche a comezar âsempre poderÃĄs deixar de seguilos despois!",
- "onboarding.follows.title": "Popular en Mastodon",
+ "onboarding.follows.lead": "A cronoloxÃa de Inicio Ê o principal xeito de desfrutar Mastodon. Cantas mÃĄis persoas sigas mais interesante e activa serÃĄ. Para comezar, aquà tes algunhas suxestiÃŗns:",
+ "onboarding.follows.title": "Personaliza a cronoloxÃa de inicio",
"onboarding.profile.discoverable": "Que o meu perfil se poida atopar",
"onboarding.profile.discoverable_hint": "Cando elixes que poidan atoparte en Mastodon as tÃēas publicaciÃŗns aparecerÃĄn nos resultados das buscas e nos temas en voga, e o teu perfil poderÃa ser suxerido para seguimento a persoas con intereses semellantes aos teus.",
"onboarding.profile.display_name": "Nome pÃēblico",
@@ -493,20 +482,20 @@
"onboarding.profile.upload_avatar": "Subir imaxe do perfil",
"onboarding.profile.upload_header": "Subir cabeceira para o perfil",
"onboarding.share.lead": "Fai que as persoas saiban como atoparte en Mastodon!",
- "onboarding.share.message": "Son {username} en #Mastodon! SÊgueme en {url}",
+ "onboarding.share.message": "Son {username} en #Mastodon! SÃgueme en {url}",
"onboarding.share.next_steps": "Seguintes pasos:",
"onboarding.share.title": "Comparte o teu perfil",
- "onboarding.start.lead": "A tÃēa nova conta en Mastodon estÃĄ preparada. Mira de que xeito lle podes sacar proveito:",
+ "onboarding.start.lead": "Xa formas parte de Mastodon, unha plataforma de relaciÃŗns sociais descentralizada, Ãēnica, onde ti âe non un algoritmoâ elixes o que les. AxudÃĄmosche cos primeiros pasos:",
"onboarding.start.skip": "Queres omitir todo isto?",
"onboarding.start.title": "Pois xa estÃĄ!",
- "onboarding.steps.follow_people.body": "ConstrÃēes a tÃēa cronoloxÃa. Ãnchea con persoas interesantes.",
- "onboarding.steps.follow_people.title": "Segue a {count, plural, one {unha persoa} other {# persoas}}",
- "onboarding.steps.publish_status.body": "SaÃēda a todo o mundo.",
+ "onboarding.steps.follow_people.body": "Mastodon consiste en seguir a persoas interesantes.",
+ "onboarding.steps.follow_people.title": "Personaliza a tÃēa cronoloxÃa",
+ "onboarding.steps.publish_status.body": "ExprÊsate con texto, fotos, vÃdeos ou enquisas {emoji}",
"onboarding.steps.publish_status.title": "Escribe a tÃēa primeira publicaciÃŗn",
"onboarding.steps.setup_profile.body": "Ao engadir informaciÃŗn ao teu perfil Ê mÃĄis probable que teÃąas mÃĄis interacciÃŗns.",
"onboarding.steps.setup_profile.title": "Personaliza o perfil",
"onboarding.steps.share_profile.body": "Dille ÃĄs amizades como poden atoparte en Mastodon!",
- "onboarding.steps.share_profile.title": "Comparte o teu perfil",
+ "onboarding.steps.share_profile.title": "Comparte o teu perfil en Mastodon",
"onboarding.tips.2fa": "
Sabes que? Podes protexer a tÃēa conta configurando un segundo factor de autenticaciÃŗn nos axustes. Funciona con calquera app TOTP, non precisas un nÃēmero de telÊfono!",
"onboarding.tips.accounts_from_other_servers": "
Sabes que? Como Mastodon Ê descentralizado, algÃēns perfÃs que atopes estarÃĄn en servidores diferentes ao teu. Pero podes interactuar igualmente con eles! O seu servidor Ê o que ven despois da @ no seu identificador!",
"onboarding.tips.migration": "
Sabes que? Se cres que {domain} non Ê o servidor axeitado para ti, podes mover a conta a outro servidor Mastodon sen perder as tÃēas seguidoras. Incluso podes hospedar o teu propio servidor!",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "Engadir unha enquisa",
"poll_button.remove_poll": "Eliminar enquisa",
"privacy.change": "Axustar privacidade",
- "privacy.direct.long": "SÃŗ para as usuarias mencionadas",
- "privacy.direct.short": "SÃŗ persoas mencionadas",
- "privacy.private.long": "SÃŗ para persoas que te seguen",
- "privacy.private.short": "SÃŗ para seguidoras",
- "privacy.public.long": "Visible por todas",
"privacy.public.short": "PÃēblico",
- "privacy.unlisted.long": "Visible por todas, pero excluÃda da secciÃŗn descubrir",
- "privacy.unlisted.short": "Sen listar",
"privacy_policy.last_updated": "Actualizado por Ãēltima vez no {date}",
"privacy_policy.title": "PolÃtica de Privacidade",
"recommended": "Aconsellable",
@@ -572,7 +554,7 @@
"report.reasons.dislike": "Non me gusta",
"report.reasons.dislike_description": "Non Ê algo que queiras ver",
"report.reasons.legal": "Ã ilegal",
- "report.reasons.legal_description": "Cres que atenta contra as leis do paÃs do teu servidor",
+ "report.reasons.legal_description": "Cres que atenta contra as leis do paÃs do teu pais ou servidor",
"report.reasons.other": "Ã outra cousa",
"report.reasons.other_description": "O problema non cae dentro de outras categorÃas",
"report.reasons.spam": "Ã spam",
@@ -714,10 +696,8 @@
"upload_error.poll": "Non se poden subir ficheiros nas enquisas.",
"upload_form.audio_description": "Describir para persoas con problemas auditivos",
"upload_form.description": "Describir para persoas cegas ou con problemas visuais",
- "upload_form.description_missing": "Sen descriciÃŗn",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar a miniatura",
- "upload_form.undo": "Eliminar",
"upload_form.video_description": "Describe para persoas con problemas visuais ou auditivos",
"upload_modal.analyzing_picture": "Estase a analizar a imaxeâĻ",
"upload_modal.apply": "Aplicar",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index dda92c5c9..d88a8c49c 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "××× ××Ļר××Ļ××",
"account.featured_tags.title": "××Ē××××Ē ××××ĸ×פ××Ē ×Š× {name}",
"account.follow": "××ĸק××",
+ "account.follow_back": "××ĸק×× ×××ר×",
"account.followers": "×ĸ×ק×××",
"account.followers.empty": "××Ŗ ××× ×× ×ĸ××§× ××ר ××׊×Ē×׊ ××× ×ĸ××××.",
"account.followers_counter": "{count, plural,one {×ĸ××§× ×××} other {{counter} ×ĸ×ק×××}}",
"account.following": "× ×ĸק×××",
"account.following_counter": "{count, plural,one {×ĸ××§× ×××¨× {counter}}other {×ĸ××§× ×××¨× {counter}}}",
"account.follows.empty": "×׊×Ē×׊ ×× ×ĸ×××× ×× ×ĸ××§× ×××¨× ××Ŗ ×××.",
- "account.follows_you": "×××ĸ×§× ××ר××",
"account.go_to_profile": "××ĸ×ר ×פר×פ××",
"account.hide_reblogs": "××ץ×Ē×ר ×××××××× ×××Ē @{name}",
"account.in_memoriam": "פר×פ×× ××ר××.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "×׊×Ēק×Ē ××Ēר×××Ē",
"account.mute_short": "×׊×Ēק×",
"account.muted": "××׊×Ēק",
+ "account.mutual": "××××××",
"account.no_bio": "×× ×Ą×פק ×Ē×××ר.",
"account.open_original_page": "×פ×Ē×××Ē ××ĸ××× ××ק×ר×",
"account.posts": "פ×ץ×××",
@@ -88,7 +89,6 @@
"announcement.announcement": "××ר××",
"attachments_list.unprocessed": "(×× ××ĸ×××)",
"audio.hide": "×׊×Ēק",
- "autosuggest_hashtag.per_week": "{count} ×׊×××ĸ",
"boost_modal.combo": "× ××Ē× ××ק×׊ {combo} ××× ×××× ×פ×ĸ× ××××",
"bundle_column_error.copy_stacktrace": "××ĸ×Ēק×Ē ××××ĸ×Ē ׊××××",
"bundle_column_error.error.body": "×××Ŗ ××××ק׊ ××× × ××××. ×× ×ĸ׊×× ×××××Ē ××× ×ק×× ×× ××ĸ××× ××Ē×××××Ē ××פ×פ×.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "×׊××× × ××× × {locked}. ×× ××× ×××× ××ĸק×× ××ר×× ××× ×קר×× ××Ē ××××ĸ××Ē×× ×××××ĸ×××Ē ××ĸ×ק××× ××××.",
"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": "×ץר ××××¨× ××",
+ "compose_form.poll.multiple": "××××¨× ×ר×××",
+ "compose_form.poll.option_placeholder": "×פ׊ר××Ē {number}",
+ "compose_form.poll.remove_option": "×ץר×Ē ×פ׊ר××Ē ××",
+ "compose_form.poll.single": "× × ××××ר",
"compose_form.poll.switch_to_multiple": "××¤×Š×¨× ××××¨× ×ר××× ×ץקר",
"compose_form.poll.switch_to_single": "××¤×Š×¨× ××××¨× ×××××Ē ×ץקר",
- "compose_form.publish": "פרץ××",
+ "compose_form.poll.type": "ץ×× ×׊××",
+ "compose_form.publish": "××××ĸ×",
"compose_form.publish_form": "×פרץ×",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "׊××ר×Ē ׊×× ××××",
- "compose_form.sensitive.hide": "{count, plural, one {ץ×××× ××××ĸ ×ר××׊} other {ץ×××× ××××ĸ ×ר××׊}}",
- "compose_form.sensitive.marked": "{count, plural, one {××××ĸ ×ץ××× ×ר××׊} other {××××ĸ ×ץ××× ×ר××׊}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {××××ĸ ×× ×ץ××× ×ר××׊} other {××××ĸ ×× ×ץ××× ×ר××׊}}",
+ "compose_form.reply": "×Ē××××",
+ "compose_form.save_changes": "×ĸ××××",
"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": "××ץ××",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "××××ĸ××Ē פר××××Ē",
"navigation_bar.discover": "×××",
"navigation_bar.domain_blocks": "ק×××××Ē (׊×××Ē ××Ē××) ×ץ××××Ē",
- "navigation_bar.edit_profile": "×ĸר×××Ē פר×פ××",
"navigation_bar.explore": "ץ××ר",
"navigation_bar.favourites": "×××××××",
"navigation_bar.filters": "××××× ××׊×Ēק××Ē",
@@ -525,14 +524,12 @@
"poll_button.add_poll": "××ץפ×Ē ץקר",
"poll_button.remove_poll": "×ץר×Ē ץקר",
"privacy.change": "׊×× ×× ×¤×¨××××Ē ×××××ĸ×",
- "privacy.direct.long": "רק ××׊×Ē×׊×× ×××××ר×× (mentioned)",
- "privacy.direct.short": "××××××ר×× ××××",
- "privacy.private.long": "××Ļ× ××ĸ×ק××× ××××",
- "privacy.private.short": "××ĸ×ק××× ××××",
- "privacy.public.long": "×××× ×××",
+ "privacy.direct.long": "×× ×××××ר×× ×××××ĸ×",
+ "privacy.direct.short": "×.× ×Š×× ×ץ×××××",
+ "privacy.private.long": "××ĸ×ק××× ××××",
+ "privacy.private.short": "×ĸ×ק×××",
+ "privacy.public.long": "×× ××××׊××, ××××ר×× ××ץ××××× ×× ××",
"privacy.public.short": "פ××××",
- "privacy.unlisted.long": "×××× ×××, ××× ××ץ×Ēר ××××Ļ×ĸ× ×Ē××××Ē",
- "privacy.unlisted.short": "×× ×¨×Š×× (×× ×פ×× ×××××)",
"privacy_policy.last_updated": "×ĸ×××× ×××ר×× × {date}",
"privacy_policy.title": "×××× ×××Ē פר××××Ē",
"recommended": "×××××Ĩ",
@@ -550,7 +547,9 @@
"relative_time.minutes": "{number} ×ק××Ē",
"relative_time.seconds": "{number} ×Š× ×××Ē",
"relative_time.today": "××××",
+ "reply_indicator.attachments": "{count, plural,one {# ק×××Ĩ ××Ļ×ר×Ŗ}other {# ק××Ļ×× ××Ļ×רפ××}}",
"reply_indicator.cancel": "×××××",
+ "reply_indicator.poll": "×׊××",
"report.block": "××ץ××",
"report.block_explanation": "×× × ××Ē× ×××× ×ר×××Ē ××Ē ×××××ĸ××Ē ׊×××. ×× ×× ××××× ×ר×××Ē ××Ē ×××××ĸ××Ē ׊×× ×× ××ĸק×× ××ר××. ×× ××××× ×××ĸ×Ē ׊×× ×ץ××××.",
"report.categories.legal": "××ק×",
@@ -714,10 +713,8 @@
"upload_error.poll": "×× × ××Ē× ×××ĸ×××Ē ק×××Ĩ ×ĸ× ×Ą×§×¨.",
"upload_form.audio_description": "×Ē×ר/× ×ĸ××ר ×ק××× ×Š×××ĸ×",
"upload_form.description": "×Ē×××ר ××××× ×¨×××",
- "upload_form.description_missing": "×× ××ץ×Ŗ ×Ē×××ר",
"upload_form.edit": "×ĸר×××",
"upload_form.thumbnail": "×Š× ×/× ×Ē××× × ×××××ĸר×Ē",
- "upload_form.undo": "×××××",
"upload_form.video_description": "×Ē×ר/× ×ĸ××ר ×ק××× ×Š×××ĸ× ××ק××× ×¨××××",
"upload_modal.analyzing_picture": "×× ×Ē× ×Ē××× ×âĻ",
"upload_modal.apply": "×××",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index 387941b5e..42f4ca4ef 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -37,7 +37,6 @@
"account.following": "ā¤ĢāĨā¤˛āĨā¤ā¤ā¤",
"account.following_counter": "{count, plural, one {{counter} ā¤¨ā¤ŋā¤ŽāĨā¤¨ā¤˛ā¤ŋā¤ā¤ŋā¤¤} other {{counter} ā¤¨ā¤ŋā¤ŽāĨā¤¨ā¤˛ā¤ŋā¤ā¤ŋā¤¤}}",
"account.follows.empty": "ā¤¯ā¤š ā¤¯āĨāĨā¤°āĨ ā¤
ā¤āĨ ā¤¤ā¤ ā¤ā¤ŋā¤¸āĨ ā¤āĨ ā¤ĢāĨā¤˛āĨ ā¤¨ā¤šāĨā¤ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨāĨ¤",
- "account.follows_you": "ā¤ā¤Ēā¤āĨ ā¤ĢāĨā¤˛āĨ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨ",
"account.go_to_profile": "ā¤ĒāĨā¤°āĨā¤Ģā¤žā¤ā¤˛ ā¤ŽāĨā¤ ā¤ā¤žā¤ā¤",
"account.hide_reblogs": "@{name} ā¤āĨ ā¤ŦāĨā¤¸āĨā¤ ā¤āĨā¤Ēā¤žā¤ā¤",
"account.in_memoriam": "ā¤¯ā¤žā¤Ļ ā¤ŽāĨā¤",
@@ -84,7 +83,6 @@
"announcement.announcement": "ā¤āĨā¤ˇā¤Ŗā¤ž",
"attachments_list.unprocessed": "(ā¤
ā¤¸ā¤ā¤¸ā¤žā¤§ā¤ŋā¤¤)",
"audio.hide": "ā¤šā¤žā¤ā¤Ą ā¤ā¤Ąā¤ŋā¤¯āĨ",
- "autosuggest_hashtag.per_week": "{count} ā¤šā¤° ā¤¸ā¤ĒāĨā¤¤ā¤žā¤š",
"boost_modal.combo": "ā¤
ā¤ā¤˛āĨ ā¤Ŧā¤žā¤° ā¤¸āĨā¤ā¤ŋā¤Ē ā¤ā¤°ā¤¨āĨ ā¤āĨ ā¤˛ā¤ŋā¤ ā¤ā¤Ē {combo} ā¤Ļā¤Ŧā¤ž ā¤¸ā¤ā¤¤āĨ ā¤šāĨ",
"bundle_column_error.copy_stacktrace": "ā¤āĨā¤ĒāĨ ā¤ā¤°ā¤° ā¤°ā¤ŋā¤ĒāĨā¤°āĨā¤",
"bundle_column_error.error.body": "ā¤
ā¤¨āĨā¤°āĨā¤§ā¤ŋā¤¤ ā¤ĒāĨā¤ ā¤ĒāĨā¤°ā¤¸āĨā¤¤āĨā¤¤ ā¤¨ā¤šāĨā¤ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤ž ā¤¸ā¤ā¤žāĨ¤ ā¤¯ā¤š ā¤šā¤Žā¤žā¤°āĨ ā¤āĨā¤Ą ā¤ŽāĨā¤ ā¤Ŧā¤ ā¤¯ā¤ž ā¤ŦāĨā¤°ā¤žā¤ā¤ā¤ŧā¤° ā¤¸ā¤ā¤ā¤¤ā¤¤ā¤ž ā¤¸ā¤Žā¤¸āĨā¤¯ā¤ž ā¤āĨ ā¤ā¤žā¤°ā¤Ŗ ā¤šāĨ ā¤¸ā¤ā¤¤ā¤ž ā¤šāĨāĨ¤",
@@ -139,22 +137,12 @@
"compose_form.lock_disclaimer": "ā¤ā¤Ēā¤ā¤ž ā¤ā¤žā¤¤ā¤ž {locked} ā¤¨ā¤šāĨā¤ ā¤šāĨāĨ¤ ā¤ā¤Ēā¤āĨ ā¤āĨā¤ĩā¤˛ ā¤ĢāĨā¤˛āĨā¤ĩā¤°āĨā¤¸ ā¤āĨ ā¤Ļā¤ŋā¤ā¤žā¤ ā¤Ļā¤ŋā¤ ā¤ā¤žā¤¨āĨ ā¤ĩā¤žā¤˛āĨ ā¤ĒāĨā¤¸āĨā¤ ā¤ĻāĨā¤ā¤¨āĨ ā¤āĨ ā¤˛ā¤ŋā¤ ā¤āĨā¤ ā¤āĨ ā¤ĢāĨā¤˛āĨ ā¤ā¤° ā¤¸ā¤ā¤¤ā¤ž ā¤šāĨāĨ¤",
"compose_form.lock_disclaimer.lock": "ā¤˛āĨā¤āĨā¤Ą",
"compose_form.placeholder": "What is on your mind?",
- "compose_form.poll.add_option": "ā¤ĩā¤ŋā¤ā¤˛āĨā¤Ē ā¤āĨā¤Ąā¤ŧāĨ",
"compose_form.poll.duration": "ā¤āĨā¤¨ā¤žā¤ĩ ā¤āĨ ā¤
ā¤ĩā¤§ā¤ŋ",
- "compose_form.poll.option_placeholder": "ā¤āĨā¤˛ ā¤ĩā¤ŋā¤ā¤˛āĨā¤Ē {number}",
- "compose_form.poll.remove_option": "ā¤ā¤¸ ā¤ĩā¤ŋā¤ā¤˛āĨā¤Ē ā¤āĨ ā¤šā¤ā¤žā¤ā¤",
"compose_form.poll.switch_to_multiple": "ā¤ā¤ ā¤ĩā¤ŋā¤ā¤˛āĨā¤ĒāĨā¤ ā¤āĨ ā¤
ā¤¨āĨā¤Žā¤¤ā¤ŋ ā¤ĻāĨā¤¨āĨ ā¤āĨ ā¤˛ā¤ŋā¤ ā¤ĒāĨā¤˛ ā¤Ŧā¤Ļā¤˛āĨā¤",
"compose_form.poll.switch_to_single": "ā¤ā¤ ā¤šāĨ ā¤ĩā¤ŋā¤ā¤˛āĨā¤Ē ā¤āĨ ā¤˛ā¤ŋā¤ ā¤
ā¤¨āĨā¤Žā¤¤ā¤ŋ ā¤ĻāĨā¤¨āĨ ā¤āĨ ā¤˛ā¤ŋā¤ ā¤ĒāĨā¤˛ ā¤Ŧā¤Ļā¤˛āĨā¤",
- "compose_form.publish": "ā¤Ēā¤ŦāĨā¤˛ā¤ŋā¤ļ",
"compose_form.publish_form": "ā¤Ēā¤ŦāĨā¤˛ā¤ŋā¤ļ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ā¤Ēā¤°ā¤ŋā¤ĩā¤°āĨā¤¤ā¤¨āĨā¤ ā¤āĨ ā¤¸ā¤šāĨā¤āĨā¤",
- "compose_form.sensitive.hide": "ā¤ŽāĨā¤Ąā¤ŋā¤¯ā¤ž ā¤āĨ ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ ā¤āĨ ā¤°āĨā¤Ē ā¤ŽāĨā¤ ā¤ā¤ŋā¤šāĨā¤¨ā¤ŋā¤¤ ā¤ā¤°āĨā¤",
- "compose_form.sensitive.marked": "ā¤ŽāĨā¤Ąā¤ŋā¤¯ā¤ž ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ ā¤āĨ ā¤°āĨā¤Ē ā¤ŽāĨā¤ ā¤ā¤ŋā¤šāĨā¤¨ā¤ŋā¤¤ ā¤šāĨ",
- "compose_form.sensitive.unmarked": "ā¤ŽāĨā¤Ąā¤ŋā¤¯ā¤ž ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ ā¤āĨ ā¤°āĨā¤Ē ā¤ŽāĨā¤ ā¤ā¤ŋā¤šāĨā¤¨ā¤ŋā¤¤ ā¤¨ā¤šāĨā¤ ā¤šāĨ",
"compose_form.spoiler.marked": "ā¤āĨā¤¤ā¤žā¤ĩā¤¨āĨ ā¤āĨ ā¤ĒāĨā¤āĨ ā¤āĨā¤āĨā¤¸āĨā¤ ā¤ā¤ŋā¤Ēā¤ž ā¤šāĨ",
"compose_form.spoiler.unmarked": "ā¤āĨā¤āĨā¤¸āĨā¤ ā¤ā¤ŋā¤Ēā¤ž ā¤¨ā¤šāĨā¤ ā¤šāĨ",
- "compose_form.spoiler_placeholder": "ā¤
ā¤Ēā¤¨āĨ ā¤āĨā¤¤ā¤žā¤ĩā¤¨āĨ ā¤¯ā¤šā¤žā¤ ā¤˛ā¤ŋā¤āĨā¤",
"confirmation_modal.cancel": "ā¤°ā¤ĻāĨā¤Ļ ā¤ā¤°āĨā¤",
"confirmations.block.block_and_report": "ā¤ŦāĨā¤˛āĨā¤ ā¤ā¤ĩā¤ ā¤°ā¤ŋā¤ĒāĨā¤°āĨā¤",
"confirmations.block.confirm": "ā¤ŦāĨā¤˛āĨā¤",
@@ -371,7 +359,6 @@
"navigation_bar.direct": "ā¤¨ā¤ŋā¤āĨ ā¤¸ā¤ā¤ĻāĨā¤ļ",
"navigation_bar.discover": "ā¤āĨā¤āĨā¤",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "ā¤ĒāĨā¤°āĨā¤Ģā¤ŧā¤žā¤ā¤˛ ā¤¸ā¤ā¤Ēā¤žā¤Ļā¤ŋā¤¤ ā¤ā¤°āĨā¤",
"navigation_bar.explore": "ā¤
ā¤¨āĨā¤ĩāĨā¤ˇā¤Ŗ ā¤ā¤°āĨā¤",
"navigation_bar.favourites": "ā¤Ēā¤¸ā¤ā¤ĻāĨā¤Ļā¤ž",
"navigation_bar.filters": "ā¤ĩā¤žā¤°ā¤ŋā¤¤ ā¤ļā¤ŦāĨā¤Ļ",
@@ -387,6 +374,7 @@
"navigation_bar.security": "ā¤¸āĨā¤°ā¤āĨā¤ˇā¤ž",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.reblog": "{name} boosted your status",
+ "notification.status": "{name} ā¤¨āĨ ā¤
ā¤āĨ ā¤ĒāĨā¤¸āĨā¤ ā¤ā¤ŋā¤¯ā¤ž",
"notifications.clear": "ā¤¸āĨā¤ā¤¨ā¤žā¤ā¤ ā¤šā¤ā¤žā¤",
"notifications.column_settings.admin.report": "ā¤¨ā¤ ā¤°ā¤ŋā¤ĒāĨā¤°āĨā¤:",
"notifications.column_settings.favourite": "ā¤Ēā¤¸ā¤ā¤ĻāĨā¤Ļā¤ž:",
@@ -400,9 +388,12 @@
"notifications.column_settings.show": "ā¤āĨā¤˛ā¤Ž ā¤ŽāĨā¤ ā¤Ļā¤ŋā¤ā¤žā¤ā¤",
"notifications.column_settings.sound": "ā¤§āĨā¤ĩā¤¨ā¤ŋ ā¤ā¤˛ā¤žā¤ā¤",
"notifications.column_settings.status": "New toots:",
+ "notifications.column_settings.unread_notifications.category": "ā¤
ā¤Ēā¤ ā¤ŋā¤¤ ā¤¸āĨā¤ā¤¨ā¤žā¤ā¤",
+ "notifications.column_settings.unread_notifications.highlight": "ā¤
ā¤Ēā¤ ā¤ŋā¤¤ ā¤¸āĨā¤ā¤¨ā¤žā¤ā¤ ā¤āĨ ā¤šā¤žā¤ā¤˛ā¤žā¤ā¤ ā¤ā¤°āĨā¤",
"notifications.column_settings.update": "ā¤¸ā¤ā¤Ēā¤žā¤Ļā¤¨:",
"notifications.filter.all": "ā¤¸ā¤āĨ",
"notifications.filter.boosts": "ā¤ŦāĨā¤¸āĨā¤",
+ "notifications.filter.favourites": "ā¤Ēā¤¸ā¤ā¤ĻāĨā¤Ļā¤ž",
"notifications.filter.follows": "ā¤ĢāĨā¤˛āĨ",
"notifications.filter.mentions": "ā¤ā¤˛āĨā¤˛āĨā¤",
"notifications.filter.polls": "ā¤āĨā¤¨ā¤žā¤ĩ ā¤Ēā¤°ā¤ŋā¤Ŗā¤žā¤Ž",
@@ -417,6 +408,7 @@
"onboarding.follows.title": "Popular on Mastodon",
"onboarding.profile.discoverable": "ā¤
ā¤Ēā¤¨ā¤ž ā¤ĒāĨā¤°āĨā¤Ģā¤žā¤ā¤˛ ā¤āĨā¤ā¤¨āĨ ā¤¯āĨā¤āĨā¤¯ ā¤Ŧā¤¨ā¤žā¤ā¤",
"onboarding.profile.discoverable_hint": "ā¤ā¤Ŧ ā¤ā¤Ē ā¤ŽāĨ
ā¤¸āĨā¤āĨā¤ĄāĨā¤¨ ā¤Ēā¤° ā¤Ąā¤ŋā¤¸āĨā¤ā¤ĩā¤°āĨā¤Ŧā¤ŋā¤˛ā¤ŋā¤āĨ ā¤āĨā¤¨ā¤¤āĨ ā¤šāĨā¤ ā¤¤āĨ ā¤ā¤Ēā¤āĨ ā¤ĒāĨā¤¸āĨā¤ ā¤āĨā¤°āĨā¤ā¤Ąā¤ŋā¤ā¤ ā¤ā¤° ā¤¸ā¤°āĨā¤ ā¤ŽāĨā¤ ā¤Ļā¤ŋā¤ ā¤¸ā¤ā¤¤āĨ ā¤šāĨā¤ ā¤ā¤° ā¤ā¤Ēā¤ā¤ž ā¤ĒāĨā¤°āĨā¤Ģā¤žā¤ā¤˛ ā¤ā¤Ēā¤āĨ ā¤šāĨ ā¤āĨā¤¸āĨ ā¤
ā¤ā¤žā¤ā¤ā¤āĨā¤¸ ā¤āĨ ā¤¸āĨā¤ā¤žā¤¯ā¤ž ā¤ā¤ž ā¤¸ā¤ā¤¤ā¤ž ā¤šāĨāĨ¤",
+ "onboarding.profile.display_name": "ā¤ĒāĨā¤°ā¤Ļā¤°āĨā¤ļā¤ŋā¤¤ ā¤¨ā¤žā¤Ž",
"onboarding.share.message": "ā¤ŽāĨā¤ {username} ā¤ŽāĨ
ā¤¸āĨā¤āĨā¤ĄāĨā¤¨ ā¤Ēā¤° ā¤šāĨā¤! ā¤ŽāĨā¤āĨ ā¤¯ā¤šā¤žā¤ {url} ā¤ĢāĨā¤˛āĨ ā¤ā¤°āĨā¤",
"onboarding.share.next_steps": "ā¤ā¤āĨ ā¤ā¤ŋ ā¤¸ā¤ā¤ā¤ĩā¤ŋā¤¤ ā¤ĩā¤ŋā¤§ā¤ŋ",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
@@ -436,16 +428,13 @@
"poll.vote": "ā¤ĩāĨā¤",
"poll.voted": "ā¤ā¤Ēā¤¨āĨ ā¤ā¤¸āĨ ā¤ā¤¤āĨā¤¤ā¤° ā¤ā¤ž ā¤āĨā¤¨ā¤žā¤ĩ ā¤ā¤ŋā¤¯ā¤ž ā¤šāĨāĨ¤",
"privacy.change": "Adjust status privacy",
- "privacy.direct.long": "Post to mentioned users only",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
- "privacy.private.short": "Followers-only",
- "privacy.public.long": "ā¤¸ā¤Ŧ ā¤āĨ ā¤Ļā¤ŋā¤ā¤žā¤ ā¤ĻāĨā¤ā¤ž",
"privacy.public.short": "ā¤¸ā¤žā¤°āĨā¤ĩā¤ā¤¨ā¤ŋā¤",
- "privacy.unlisted.short": "ā¤
ā¤¨ā¤˛ā¤ŋā¤¸āĨā¤āĨā¤Ą",
"recommended": "ā¤
ā¤¨āĨā¤ļā¤ā¤¸ā¤ŋā¤¤",
"refresh": "ā¤°āĨā¤ĢāĨā¤°āĨā¤ļ ā¤ā¤°āĨā¤",
"regeneration_indicator.label": "ā¤˛āĨā¤Ą ā¤šāĨ ā¤°ā¤šā¤ž ā¤šāĨ...",
+ "relative_time.days": "{number}ā¤Ļā¤ŋā¤¨",
+ "relative_time.full.days": "{number, plural, one {# ā¤Ļā¤ŋā¤¨} other {# ā¤Ļā¤ŋā¤¨}} ā¤Ēā¤šā¤˛āĨ",
+ "relative_time.full.hours": "{number, plural,one {# ā¤ā¤ā¤ā¤ž} other {# ā¤ā¤ā¤āĨ}} ā¤Ēā¤šā¤˛āĨ",
"relative_time.full.just_now": "ā¤
ā¤āĨ-ā¤
ā¤āĨ",
"relative_time.full.minutes": "{number, plural, one {# ā¤Žā¤ŋā¤¨ā¤} other {# ā¤Žā¤ŋā¤¨ā¤}} ā¤Ēā¤šā¤˛āĨ",
"relative_time.full.seconds": "{number, plural, one {# ā¤¸āĨā¤ā¤ā¤Ą} other {# ā¤¸āĨā¤ā¤ā¤Ą}} ā¤Ēā¤šā¤˛āĨ",
@@ -455,15 +444,23 @@
"relative_time.seconds": "{number} ā¤¸āĨā¤ā¤ā¤Ą",
"relative_time.today": "ā¤ā¤",
"reply_indicator.cancel": "ā¤°ā¤ĻāĨā¤Ļ ā¤ā¤°āĨā¤",
+ "report.block": "ā¤ŦāĨā¤˛āĨā¤",
"report.block_explanation": "ā¤ā¤Ēā¤āĨ ā¤ā¤¨ā¤āĨ ā¤ĒāĨā¤¸āĨā¤āĨā¤ ā¤¨ā¤šāĨā¤ ā¤Ļā¤ŋā¤āĨā¤ā¤āĨāĨ¤ ā¤ĩāĨ ā¤ā¤Ēā¤āĨ ā¤ĒāĨā¤¸āĨā¤āĨā¤ ā¤āĨ ā¤ĻāĨā¤ ā¤¨ā¤šāĨā¤ ā¤Ēā¤žā¤ā¤ā¤āĨ ā¤ā¤° ā¤ā¤Ēā¤āĨ ā¤Ģā¤ŧāĨā¤˛āĨ ā¤¨ā¤šāĨā¤ ā¤ā¤° ā¤Ēā¤žā¤ā¤ā¤āĨāĨ¤ ā¤ā¤¨āĨā¤šāĨ ā¤Ēā¤¤ā¤ž ā¤˛ā¤āĨā¤ā¤ž ā¤ā¤ŋ ā¤ĩāĨ blocked ā¤šāĨā¤āĨ¤",
"report.categories.other": "ā¤
ā¤¨āĨā¤¯",
"report.categories.spam": "ā¤
ā¤ĩā¤žā¤ā¤ā¤ŋā¤¤",
"report.category.title_account": "ā¤°āĨā¤Ēā¤°āĨā¤ā¤ž",
"report.close": "ā¤¸āĨā¤ĩāĨā¤ā¤žā¤° ā¤ā¤°āĨā¤",
"report.comment.title": "ā¤āĨā¤¯ā¤ž ā¤ā¤° ā¤āĨā¤ ā¤šāĨ ā¤ā¤ŋā¤¸ā¤āĨ ā¤Ŧā¤žā¤°āĨ ā¤ŽāĨā¤ ā¤ā¤Ēā¤āĨ ā¤˛ā¤ā¤¤ā¤ž ā¤šāĨ ā¤ā¤ŋ ā¤šā¤ŽāĨā¤ ā¤¸āĨā¤ā¤ŋā¤¤ ā¤šāĨā¤¨ā¤ž ā¤ā¤žā¤šā¤ŋā¤?",
+ "report.next": "ā¤ā¤āĨ",
"report.placeholder": "Type or paste additional comments",
"report.reasons.dislike": "ā¤ŽāĨā¤āĨ ā¤¯ā¤š ā¤Ēā¤¸ā¤ā¤Ļ ā¤¨ā¤šāĨā¤ ā¤šāĨ",
+ "report.reasons.legal": "ā¤¯ā¤š ā¤
ā¤ĩāĨā¤§ ā¤šāĨ",
+ "report.reasons.legal_description": "ā¤ā¤Ē ā¤Žā¤žā¤¨ā¤¤āĨ ā¤šāĨā¤ ā¤ā¤ŋ ā¤¯ā¤š ā¤ā¤Ēā¤āĨ ā¤¯ā¤ž ā¤¸ā¤°āĨā¤ĩā¤° ā¤āĨ ā¤ĻāĨā¤ļ ā¤āĨ ā¤ā¤žā¤¨āĨā¤¨ ā¤ā¤ž ā¤ā¤˛āĨā¤˛ā¤ā¤ā¤¨ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨ",
"report.reasons.other": "ā¤āĨā¤ ā¤ā¤° ā¤šāĨāĨ¤",
+ "report.reasons.violation": "ā¤¯ā¤š ā¤¸ā¤°āĨā¤ĩā¤° ā¤¨ā¤ŋā¤¯ā¤ŽāĨā¤ ā¤ā¤ž ā¤ā¤˛āĨā¤˛ā¤ā¤ā¤¨ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨ",
+ "report.rules.title": "ā¤ā¤ŋā¤¨ ā¤¨ā¤ŋā¤¯ā¤ŽāĨā¤ ā¤ā¤ž ā¤ā¤˛āĨā¤˛ā¤ā¤ā¤¨ ā¤šāĨ ā¤°ā¤šā¤ž ā¤šāĨ?",
+ "report.statuses.subtitle": "ā¤˛ā¤žā¤āĨ ā¤šāĨā¤¨āĨ ā¤ĩā¤žā¤˛āĨ ā¤¸ā¤āĨ ā¤ā¤ž ā¤ā¤¯ā¤¨ ā¤ā¤°āĨā¤",
+ "report.statuses.title": "ā¤āĨā¤¯ā¤ž ā¤ā¤¸āĨ ā¤āĨā¤ ā¤ĒāĨā¤¸āĨā¤ ā¤šāĨā¤ ā¤āĨ ā¤ā¤¸ ā¤°ā¤ŋā¤ĒāĨā¤°āĨā¤ ā¤ā¤ž ā¤¸ā¤Žā¤°āĨā¤Ĩā¤¨ ā¤ā¤°ā¤¤āĨ ā¤šāĨā¤?",
"report.submit": "ā¤¸ā¤Ŧā¤Žā¤ŋā¤ ā¤ā¤°āĨā¤",
"report.target": "Report {target}",
"report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
@@ -481,11 +478,24 @@
"search_results.statuses": "Toots",
"sign_in_banner.sign_in": "Sign in",
"status.admin_status": "Open this status in the moderation interface",
+ "status.block": "@{name} ā¤āĨ ā¤ŦāĨā¤˛āĨā¤ ā¤ā¤°āĨā¤",
+ "status.bookmark": "ā¤ŦāĨā¤ā¤Žā¤žā¤°āĨā¤",
+ "status.cannot_reblog": "ā¤°ā¤ŋā¤ĒāĨā¤¸āĨā¤ ā¤āĨ ā¤ŦāĨā¤¸āĨā¤ ā¤¨ā¤šāĨā¤ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤ž ā¤¸ā¤ā¤¤ā¤ž",
"status.copy": "Copy link to status",
+ "status.delete": "ā¤šā¤ā¤žā¤ā¤",
+ "status.detailed_status": "ā¤ĩā¤ŋā¤¸āĨā¤¤āĨā¤¤ ā¤ĩā¤žā¤°āĨā¤¤ā¤ž ā¤ĻāĨā¤ļāĨā¤¯",
"status.direct": "ā¤¨ā¤ŋā¤āĨ ā¤¸ā¤ā¤ĻāĨā¤ļ @{name} ā¤¸āĨ",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
+ "status.media.open": "ā¤āĨā¤˛ā¤¨āĨ ā¤āĨ ā¤˛ā¤ŋā¤ ā¤āĨā¤˛ā¤ŋā¤ ā¤ā¤°āĨā¤",
+ "status.media.show": "ā¤Ļā¤ŋā¤ā¤žā¤¨āĨ ā¤āĨ ā¤˛ā¤ŋā¤ ā¤āĨā¤˛ā¤ŋā¤ ā¤ā¤°āĨā¤",
+ "status.mention": "@{name} ā¤ā¤ž ā¤ā¤˛āĨā¤˛āĨā¤ ā¤ā¤°āĨā¤",
+ "status.more": "ā¤
ā¤¤ā¤ŋā¤°ā¤ŋā¤āĨā¤¤",
+ "status.mute": "@{name} ā¤ŽāĨā¤¯āĨā¤ ā¤ā¤°āĨā¤",
+ "status.mute_conversation": "ā¤ā¤¸ ā¤ĩā¤žā¤°āĨā¤¤ā¤žā¤˛ā¤žā¤Ē ā¤āĨ ā¤ŽāĨā¤¯āĨā¤ ā¤ā¤°āĨā¤",
"status.open": "Expand this status",
+ "status.pin": "ā¤ĒāĨā¤°āĨā¤Ģā¤ŧā¤žā¤ā¤˛ ā¤Ēā¤° ā¤Ēā¤ŋā¤¨ ā¤ā¤°āĨā¤",
"status.pinned": "Pinned toot",
+ "status.read_more": "ā¤ā¤° ā¤Ēā¤ĸā¤ŧāĨā¤",
"status.reblog": "ā¤ŦāĨā¤¸āĨā¤",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.replied_to": "{name} ā¤ā¤ž ā¤ā¤¤āĨā¤¤ā¤° ā¤ĻāĨā¤",
@@ -503,7 +513,6 @@
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.edit": "ā¤¸ā¤ā¤ļāĨā¤§ā¤¨ ā¤ā¤°āĨā¤",
- "upload_form.undo": "ā¤Žā¤ŋā¤ā¤žā¤",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.apply": "ā¤˛ā¤žā¤āĨ ā¤ā¤°āĨā¤",
"upload_modal.edit_media": "ā¤ŽāĨā¤Ąā¤ŋā¤¯ā¤ž ā¤ŽāĨā¤ ā¤¸ā¤ā¤ļāĨā¤§ā¤¨ ā¤ā¤°āĨā¤",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 6da7d6cd8..cada365fc 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -1,8 +1,15 @@
{
"about.blocks": "Moderirani posluÅžitelji",
"about.contact": "Kontakt:",
+ "about.disclaimer": "Mastodon je besplatan softver otvorenog koda i zaÅĄtitni znak tvrtke Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Razlog nije dostupan",
+ "about.domain_blocks.preamble": "Mastodon vam opÄenito omoguÄuje pregled sadrÅžaja i interakciju s korisnicima s bilo kojeg drugog posluÅžitelja u fediverse. Ovo su iznimke napravljene na ovom posluÅžitelju.",
+ "about.domain_blocks.silenced.explanation": "ObiÄno neÄete vidjeti profile i sadrÅžaj s ovog posluÅžitelja, osim ako ga izriÄito ne potraÅžite ili ukljuÄite u njega slijedeÄi ga.",
+ "about.domain_blocks.silenced.title": "OgraniÄen",
+ "about.domain_blocks.suspended.explanation": "Podatci s ovog posluÅžitelja neÄe se obraÄivati, pohranjivati ili razmjenjivati, ÅĄto onemoguÄuje bilo kakvu interakciju ili komunikaciju s korisnicima s ovog posluÅžitelja.",
"about.domain_blocks.suspended.title": "Suspendiran",
+ "about.not_available": "Te informacije nisu dostupne na ovom posluÅžitelju.",
+ "about.powered_by": "Decentralizirani druÅĄtveni mediji koje pokreÄe {mastodon}",
"about.rules": "Pravila servera",
"account.account_note_header": "BiljeÅĄka",
"account.add_or_remove_from_list": "Dodaj ili ukloni s liste",
@@ -14,6 +21,8 @@
"account.blocked": "Blokirano",
"account.browse_more_on_origin_server": "Pogledajte viÅĄe na izvornom profilu",
"account.cancel_follow_request": "Withdraw follow request",
+ "account.copy": "Kopiraj vezu u profil",
+ "account.direct": "Privatno spomeni @{name}",
"account.disable_notifications": "Nemoj me obavjestiti kada @{name} napravi objavu",
"account.domain_blocked": "Domena je blokirana",
"account.edit_profile": "Uredi profil",
@@ -21,18 +30,20 @@
"account.endorse": "Istakni na profilu",
"account.featured_tags.last_status_at": "Zadnji post {date}",
"account.featured_tags.last_status_never": "Nema postova",
+ "account.featured_tags.title": "Istaknuti hashtagovi {name}",
"account.follow": "Prati",
+ "account.follow_back": "Slijedi natrag",
"account.followers": "Pratitelji",
"account.followers.empty": "Nitko joÅĄ ne prati korisnika/cu.",
"account.followers_counter": "{count, plural, one {{counter} pratitelj} other {{counter} pratitelja}}",
"account.following": "Pratim",
"account.following_counter": "{count, plural, one {{counter} praÄeni} few{{counter} praÄena} other {{counter} praÄenih}}",
"account.follows.empty": "Korisnik/ca joÅĄ ne prati nikoga.",
- "account.follows_you": "Prati te",
"account.go_to_profile": "Idi na profil",
"account.hide_reblogs": "Sakrij boostove od @{name}",
"account.in_memoriam": "U sjeÄanje.",
"account.joined_short": "PridruÅžen",
+ "account.languages": "Promjeni pretplaÄene jezike",
"account.link_verified_on": "VlasniÅĄtvo ove poveznice provjereno je {date}",
"account.locked_info": "Status privatnosti ovog raÄuna postavljen je na zakljuÄano. Vlasnik ruÄno pregledava tko ih moÅže pratiti.",
"account.media": "Medijski sadrÅžaj",
@@ -41,11 +52,14 @@
"account.mute_notifications_short": "UtiÅĄaj obavijesti",
"account.mute_short": "UtiÅĄaj",
"account.muted": "UtiÅĄano",
+ "account.mutual": "Uzajamno",
+ "account.no_bio": "Nije dan opis.",
"account.open_original_page": "Otvori originalnu stranicu",
"account.posts": "Objave",
"account.posts_with_replies": "Objave i odgovori",
"account.report": "Prijavi @{name}",
"account.requested": "Äekanje na potvrdu. Kliknite za poniÅĄtavanje zahtjeva za praÄenje",
+ "account.requested_follow": "{name} zatraÅžio/la je praÄenje",
"account.share": "Podijeli profil @{name}",
"account.show_reblogs": "PrikaÅži boostove od @{name}",
"account.statuses_counter": "{count, plural, one {{counter} toot} other {{counter} toota}}",
@@ -55,11 +69,18 @@
"account.unendorse": "Ne istiÄi na profilu",
"account.unfollow": "Prestani pratiti",
"account.unmute": "PoniÅĄti utiÅĄavanje @{name}",
+ "account.unmute_notifications_short": "UkljuÄi utiÅĄane obavijesti",
"account.unmute_short": "PoniÅĄti utiÅĄavanje",
"account_note.placeholder": "Kliknite za dodavanje biljeÅĄke",
+ "admin.dashboard.daily_retention": "Stopa zadrÅžavanja korisnika po danu nakon prijave",
+ "admin.dashboard.monthly_retention": "Stopa zadrÅžavanja korisnika po mjesecu nakon prijave",
"admin.dashboard.retention.average": "ProsjeÄno",
"admin.dashboard.retention.cohort": "Mjesec prijave",
"admin.dashboard.retention.cohort_size": "Novi korisnici",
+ "admin.impact_report.instance_accounts": "Profili raÄuna koji bi ovo izbrisali",
+ "admin.impact_report.instance_followers": "Sljedbenici koje bi izgubili naÅĄi korisnici",
+ "admin.impact_report.instance_follows": "Sljedbenici koje bi izgubili njihovi korisnici",
+ "admin.impact_report.title": "SaÅžetak uÄinka",
"alert.rate_limited.message": "Molimo pokuÅĄajte nakon {retry_time, time, medium}.",
"alert.rate_limited.title": "OgraniÄenje uÄestalosti",
"alert.unexpected.message": "Dogodila se neoÄekivana greÅĄka.",
@@ -67,12 +88,15 @@
"announcement.announcement": "Najava",
"attachments_list.unprocessed": "(neobraÄeno)",
"audio.hide": "Sakrij audio",
- "autosuggest_hashtag.per_week": "{count} tjedno",
"boost_modal.combo": "MoÅžete pritisnuti {combo} kako biste preskoÄili ovo sljedeÄi put",
+ "bundle_column_error.copy_stacktrace": "Kopiraj izvjeÅĄÄe o pogreÅĄci",
+ "bundle_column_error.error.body": "ZaraÅženu stranicu nije moguÄe prikazati. To bi moglo biti zbog pogreÅĄke u naÅĄem kodu ili problema s kompatibilnoÅĄÄu preglednika.",
"bundle_column_error.error.title": "Oh, ne!",
+ "bundle_column_error.network.body": "DoÅĄlo je do pogreÅĄke prilikom pokuÅĄaja uÄitavanja ove stranice. Razlog moÅže biti privremeni problem s internetskom vezom ili ovim posluÅžiteljem.",
"bundle_column_error.network.title": "GreÅĄka mreÅže",
"bundle_column_error.retry": "PokuÅĄajte ponovno",
"bundle_column_error.return": "Na glavnu",
+ "bundle_column_error.routing.body": "TraÅženu stranicu nije moguÄe pronaÄi. Jeste li sigurni da je URL u adresnoj traci toÄan?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Zatvori",
"bundle_modal_error.message": "NeÅĄto je poÅĄlo po zlu tijekom uÄitavanja ove komponente.",
@@ -115,22 +139,12 @@
"compose_form.lock_disclaimer": "VaÅĄ raÄun nije {locked}. Svatko Vas moÅže pratiti kako bi vidjeli objave namijenjene VaÅĄim pratiteljima.",
"compose_form.lock_disclaimer.lock": "zakljuÄan",
"compose_form.placeholder": "Å to ti je na umu?",
- "compose_form.poll.add_option": "Dodaj opciju",
"compose_form.poll.duration": "Trajanje ankete",
- "compose_form.poll.option_placeholder": "Opcija {number}",
- "compose_form.poll.remove_option": "Ukloni ovu opciju",
"compose_form.poll.switch_to_multiple": "OmoguÄi viÅĄestruki odabir opcija ankete",
"compose_form.poll.switch_to_single": "OmoguÄi odabir samo jedne opcije ankete",
- "compose_form.publish": "Objavi",
"compose_form.publish_form": "Objavi",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Spremi promjene",
- "compose_form.sensitive.hide": "OznaÄi medijski sadrÅžaj kao osjetljiv",
- "compose_form.sensitive.marked": "Medijski sadrÅžaj oznaÄen je kao osjetljiv",
- "compose_form.sensitive.unmarked": "Medijski sadrÅžaj nije oznaÄen kao osjetljiv",
"compose_form.spoiler.marked": "Tekst je skriven iza upozorenja",
"compose_form.spoiler.unmarked": "Tekst nije skriven",
- "compose_form.spoiler_placeholder": "Ovdje upiÅĄite upozorenje",
"confirmation_modal.cancel": "OtkaÅži",
"confirmations.block.block_and_report": "Blokiraj i prijavi",
"confirmations.block.confirm": "Blokiraj",
@@ -172,6 +186,7 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Evo kako Äe izgledati:",
"emoji_button.activity": "Aktivnost",
+ "emoji_button.clear": "ObriÅĄi",
"emoji_button.custom": "PrilagoÄeno",
"emoji_button.flags": "Zastave",
"emoji_button.food": "Hrana i piÄe",
@@ -212,6 +227,7 @@
"explore.trending_links": "Novosti",
"explore.trending_statuses": "Objave",
"explore.trending_tags": "Hashtagovi",
+ "filter_modal.added.context_mismatch_title": "Nepodudaranje konteksta!",
"filter_modal.added.review_and_configure_title": "Postavke filtara",
"filter_modal.added.title": "Filtar dodan!",
"filter_modal.select_filter.prompt_new": "Nova kategorija: {name}",
@@ -319,7 +335,6 @@
"navigation_bar.direct": "Privatna spominjanja",
"navigation_bar.discover": "IstraÅživanje",
"navigation_bar.domain_blocks": "Blokirane domene",
- "navigation_bar.edit_profile": "Uredi profil",
"navigation_bar.explore": "IstraÅži",
"navigation_bar.favourites": "Favoriti",
"navigation_bar.filters": "UtiÅĄane rijeÄi",
@@ -388,13 +403,7 @@
"poll_button.add_poll": "Dodaj anketu",
"poll_button.remove_poll": "Ukloni anketu",
"privacy.change": "Podesi privatnost toota",
- "privacy.direct.long": "Vidljivo samo spomenutim korisnicima",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Vidljivo samo pratiteljima",
- "privacy.private.short": "Followers-only",
- "privacy.public.long": "Vidljivo svima",
"privacy.public.short": "Javno",
- "privacy.unlisted.short": "Neprikazano",
"privacy_policy.last_updated": "Zadnje aÅžurirannje {date}",
"privacy_policy.title": "Pravila o zaÅĄtiti privatnosti",
"recommended": "PreporuÄeno",
@@ -534,10 +543,8 @@
"upload_error.poll": "Prijenos datoteka nije dopuÅĄten kod anketa.",
"upload_form.audio_description": "OpiÅĄite za ljude sa slabim sluhom",
"upload_form.description": "OpiÅĄite za ljude sa slabim vidom",
- "upload_form.description_missing": "Bez opisa",
"upload_form.edit": "Uredi",
"upload_form.thumbnail": "Promijeni pretpregled",
- "upload_form.undo": "ObriÅĄi",
"upload_form.video_description": "OpiÅĄite za ljude sa slabim sluhom ili vidom",
"upload_modal.analyzing_picture": "Analiza slikeâĻ",
"upload_modal.apply": "Primijeni",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 386b15811..31bca5652 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Nincs bejegyzÊs",
"account.featured_tags.title": "{name} kiemelt hashtagjei",
"account.follow": "KÃļvetÊs",
+ "account.follow_back": "ViszontkÃļvetÊs",
"account.followers": "KÃļvetÅ",
"account.followers.empty": "Ezt a felhasznÃĄlÃŗt mÊg senki sem kÃļveti.",
"account.followers_counter": "{count, plural, one {{counter} KÃļvetÅ} other {{counter} KÃļvetÅ}}",
"account.following": "KÃļvetve",
"account.following_counter": "{count, plural, one {{counter} KÃļvetett} other {{counter} KÃļvetett}}",
"account.follows.empty": "Ez a felhasznÃĄlÃŗ mÊg senkit sem kÃļvet.",
- "account.follows_you": "KÃļvet tÊged",
"account.go_to_profile": "UgrÃĄs a profilhoz",
"account.hide_reblogs": "@{name} megtolÃĄsainak elrejtÊse",
"account.in_memoriam": "EmlÊkÃŧnkben.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ÃrtesÃtÊsek nÊmÃtÃĄsa",
"account.mute_short": "NÊmÃtÃĄs",
"account.muted": "NÊmÃtva",
+ "account.mutual": "KÃļlcsÃļnÃļs",
"account.no_bio": "LeÃrÃĄs nincs megadva.",
"account.open_original_page": "Eredeti oldal megnyitÃĄsa",
"account.posts": "BejegyzÊsek",
@@ -88,7 +89,6 @@
"announcement.announcement": "KÃļzlemÊny",
"attachments_list.unprocessed": "(feldolgozatlan)",
"audio.hide": "Hang elrejtÊse",
- "autosuggest_hashtag.per_week": "{count} hetente",
"boost_modal.combo": "Hogy ÃĄtugord ezt kÃļvetkezÅ alkalommal, hasznÃĄld {combo}",
"bundle_column_error.copy_stacktrace": "HibajelentÊs mÃĄsolÃĄsa",
"bundle_column_error.error.body": "A kÊrt lap nem jelenÃthetÅ meg. Ez lehet, hogy kÃŗdhiba, vagy bÃļngÊszÅkompatibitÃĄsi hiba.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "A fiÃŗkod nincs {locked}. BÃĄrki kÃļvetni tud, hogy megtekintse a kizÃĄrÃŗlag kÃļvetÅknek szÃĄnt bejegyzÊseket.",
"compose_form.lock_disclaimer.lock": "zÃĄrolva",
"compose_form.placeholder": "Mi jÃĄr a fejedben?",
- "compose_form.poll.add_option": "LehetÅsÊg hozzÃĄadÃĄsa",
+ "compose_form.poll.add_option": "OpciÃŗ hozzÃĄadÃĄsa",
"compose_form.poll.duration": "SzavazÃĄs idÅtartama",
- "compose_form.poll.option_placeholder": "{number}. lehetÅsÊg",
- "compose_form.poll.remove_option": "LehetÅsÊg eltÃĄvolÃtÃĄsa",
+ "compose_form.poll.multiple": "TÃļbb vÃĄlasztÃĄs",
+ "compose_form.poll.option_placeholder": "OpciÃŗ {number}",
+ "compose_form.poll.remove_option": "OpciÃŗ eltÃĄvolÃtÃĄsa",
+ "compose_form.poll.single": "Egy vÃĄlasztÃĄsa",
"compose_form.poll.switch_to_multiple": "SzavazÃĄs megvÃĄltoztatÃĄsa tÃļbb vÃĄlasztÃĄsosra",
"compose_form.poll.switch_to_single": "SzavazÃĄs megvÃĄltoztatÃĄsa egyetlen vÃĄlasztÃĄsosra",
- "compose_form.publish": "KÃļzzÊtÊtel",
+ "compose_form.poll.type": "StÃlus",
+ "compose_form.publish": "BejegyzÊs",
"compose_form.publish_form": "Ãj bejegyzÊs",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "MÃŗdosÃtÃĄsok mentÊse",
- "compose_form.sensitive.hide": "{count, plural, one {MÊdia kÊnyesnek jelÃļlÊse} other {MÊdia kÊnyesnek jelÃļlÊse}}",
- "compose_form.sensitive.marked": "{count, plural, one {A mÊdiÃĄt kÊnyesnek jelÃļltÊk} other {A mÊdiÃĄt kÊnyesnek jelÃļltÊk}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {A mÊdiÃĄt nem jelÃļltÊk kÊnyesnek} other {A mÊdiÃĄt nem jelÃļltÊk kÊnyesnek}}",
+ "compose_form.reply": "VÃĄlasz",
+ "compose_form.save_changes": "FrissÃtÊs",
"compose_form.spoiler.marked": "Tartalmi figyelmeztetÊs eltÃĄvolÃtÃĄsa",
"compose_form.spoiler.unmarked": "Tartalmi figyelmeztetÊs hozzÃĄadÃĄsa",
- "compose_form.spoiler_placeholder": "Ãrd ide a figyelmeztetÊst",
+ "compose_form.spoiler_placeholder": "Tartalom figyelmeztetÊs (opcionÃĄlis)",
"confirmation_modal.cancel": "MÊgsem",
"confirmations.block.block_and_report": "LetiltÃĄs Ês jelentÊs",
"confirmations.block.confirm": "LetiltÃĄs",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "SzemÊlyes emlÃtÊsek",
"navigation_bar.discover": "FelfedezÊs",
"navigation_bar.domain_blocks": "Letiltott tartomÃĄnyok",
- "navigation_bar.edit_profile": "Profil szerkesztÊse",
"navigation_bar.explore": "FelfedezÊs",
"navigation_bar.favourites": "Kedvencek",
"navigation_bar.filters": "NÊmÃtott szavak",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "Ãj szavazÃĄs",
"poll_button.remove_poll": "SzavazÃĄs eltÃĄvolÃtÃĄsa",
"privacy.change": "BejegyzÊs lÃĄthatÃŗsÃĄgÃĄnak mÃŗdosÃtÃĄsa",
- "privacy.direct.long": "Csak a megemlÃtett felhasznÃĄlÃŗknak lÃĄthatÃŗ",
- "privacy.direct.short": "Csak megemlÃtetteknek",
- "privacy.private.long": "Csak kÃļvetÅknek lÃĄthatÃŗ",
- "privacy.private.short": "Csak kÃļvetÅk",
- "privacy.public.long": "Mindenki szÃĄmÃĄra lÃĄthatÃŗ",
+ "privacy.direct.long": "Mindenki, akit a bejegyzÊsben emlÃtettek",
+ "privacy.direct.short": "Adott szemÊlyek",
+ "privacy.private.long": "Csak a kÃļvetÅk",
+ "privacy.private.short": "KÃļvetÅk",
+ "privacy.public.long": "BÃĄrki a Mastodonon Ês azon kÃvÃŧl",
"privacy.public.short": "NyilvÃĄnos",
- "privacy.unlisted.long": "Mindenki szÃĄmÃĄra lÃĄthatÃŗ, de kimarad a felfedezÅs funkciÃŗkbÃŗl",
- "privacy.unlisted.short": "ListÃĄzatlan",
+ "privacy.unlisted.additional": "Ez pontosan Ãēgy viselkedik, mint a nyilvÃĄnos, kivÊve, hogy a bejegyzÊs nem jelenik meg ÊlÅ hÃrcsatornÃĄkban vagy hashtagokban, felfedezÊsben vagy a Mastodon keresÊsben, mÊg akkor sem, ha az egÊsz fiÃŗkra bejelentkezetÃŧnk.",
+ "privacy.unlisted.long": "Kevesebb algoritmikus fanfÃĄr",
+ "privacy.unlisted.short": "Csendes nyilvÃĄnossÃĄg",
"privacy_policy.last_updated": "UtoljÃĄra frissÃtve: {date}",
"privacy_policy.title": "AdatvÊdelmi szabÃĄlyzat",
"recommended": "AjÃĄnlott",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}p",
"relative_time.seconds": "{number}mp",
"relative_time.today": "ma",
+ "reply_indicator.attachments": "{count, plural, one {# mellÊklet} other {# mellÊklet}}",
"reply_indicator.cancel": "MÊgsem",
+ "reply_indicator.poll": "SzavazÃĄs",
"report.block": "LetiltÃĄs",
"report.block_explanation": "Nem fogod lÃĄtni a bejegyzÊseit. Nem fogja tudni megnÊzni a bejegyzÊseidet Ês nem fog tudni kÃļvetni sem. Azt is meg fogja tudni mondani, hogy letiltottad.",
"report.categories.legal": "Jogi informÃĄciÃŗk",
@@ -714,10 +716,8 @@
"upload_error.poll": "SzavazÃĄsnÃĄl nem lehet fÃĄjlt feltÃļlteni.",
"upload_form.audio_description": "LeÃrÃĄs siket vagy hallÃĄssÊrÃŧlt emberek szÃĄmÃĄra",
"upload_form.description": "LeÃrÃĄs vak vagy gyengÊnlÃĄtÃŗ emberek szÃĄmÃĄra",
- "upload_form.description_missing": "Nincs leÃrÃĄs megadva",
"upload_form.edit": "SzerkesztÊs",
"upload_form.thumbnail": "BÊlyegkÊp megvÃĄltoztatÃĄsa",
- "upload_form.undo": "TÃļrlÊs",
"upload_form.video_description": "LeÃrÃĄs siket, hallÃĄssÊrÃŧlt, vak vagy gyengÊnlÃĄtÃŗ emberek szÃĄmÃĄra",
"upload_modal.analyzing_picture": "KÊp elemzÊseâĻ",
"upload_modal.apply": "Alkalmaz",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index f2548c7d3..6ddcfcdb2 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -32,7 +32,6 @@
"account.following": "ÕÕĨÕŋÕĨÖÕĄÕŽ",
"account.following_counter": "{count, plural, one {{counter} ÕÕĨÕŋÕĨÖÕĄÕŽ} other {{counter} ÕÕĨÕŋÕĨÖÕĄÕŽ}}",
"account.follows.empty": "ÔąÕĩÕŊ Ö
ÕŖÕŋÕĄÕŋÕ§ÖÕ¨ Õ¤ÕĨÕŧ Õ¸Õš Õ´Õ§Õ¯ÕĢ ÕšÕĢ Õ°ÕĨÕŋÕĨÖÕ¸ÖÕ´Ö",
- "account.follows_you": "ÕÕĨÕŋÕĨÖÕ¸ÖÕ´ Õ§ ÖÕĨÕĻ",
"account.go_to_profile": "ÔŗÕļÕĄÕŦ ÕĄÕļÕąÕļÕĄÕ¯ÕĄÕļ Õ°ÕĄÕˇÕĢÖ",
"account.hide_reblogs": "ÔšÕĄÖÖÕļÕĨÕŦ @{name}ÖÕĢ ÕŋÕĄÖÕĄÕŽÕĄÕŽÕļÕĨÖÕ¨",
"account.joined_short": "ÕÕĢÕĄÖÕĨÕŦ Õ§",
@@ -71,7 +70,6 @@
"alert.unexpected.title": "ÕÕĄÕÕĩ",
"announcement.announcement": "Õ
ÕĄÕĩÕŋÕĄÖÕĄÖÕ¸ÖÕŠÕĢÖÕļÕļÕĨÖ",
"audio.hide": "ÔšÕĄÖÖÕļÕĨÕŦ ÕĄÕ¸ÖÕ¤ÕĢÕ¸Õļ",
- "autosuggest_hashtag.per_week": "ÕˇÕĄÕĸÕĄÕŠÕ¨Õ {count}",
"boost_modal.combo": "ÔŋÕĄÖÕ¸Õ˛ ÕĨÕŊ ÕŊÕĨÕ˛Õ´ÕĨÕŦ {combo}Õ ÕŊÕĄ ÕĩÕĄÕģÕ¸ÖÕ¤ ÕĄÕļÕŖÕĄÕ´ ÕĸÕĄÖ ÕŠÕ¸Õ˛ÕļÕĨÕŦÕ¸Ö Õ°ÕĄÕ´ÕĄÖ",
"bundle_column_error.error.title": "ÕÕ, Õ¸ÕšÖ",
"bundle_column_error.network.title": "ÕÕĄÕļÖÕĢ ÕŊÕÕĄÕŦ",
@@ -118,22 +116,12 @@
"compose_form.lock_disclaimer": "ÕÕ¸ Õ°ÕĄÕˇÕĢÖÕ¨ {locked} ÕšÕ§Ö ÔģÖÖÕĄÖÕĄÕļÕšÕĢÖÖÕ¸ÖÕŠÕĢÖÕļ Õ¸Ö Õ¯ÕĄÖÕ¸Õ˛ Õ§ Õ°ÕĨÕŋÕĨÖÕĨÕŦ ÖÕĨÕĻ ÕĨÖ ÕŋÕĨÕŊÕļÕĨÕŦ Õ´ÕĢÕĄÕĩÕļ Õ°ÕĨÕŋÕĨÖÕ¸Õ˛ÕļÕĨÖÕĢ Õ°ÕĄÕ´ÕĄÖ ÕļÕĄÕÕĄÕŋÕĨÕŊÕ¸ÖÕĄÕŽ ÕŖÖÕĄÕŧÕ¸ÖÕ´ÕļÕĨÖÕ¨Ö",
"compose_form.lock_disclaimer.lock": "ÖÕĄÕ¯",
"compose_form.placeholder": "ÔģÕÕļÕš Õ¯ÕĄÕĩ Õ´ÕŋÖÕĢÕ¤",
- "compose_form.poll.add_option": "ÔąÖÕĨÕŦÕĄÖÕļÕĨÕŦ ÕŋÕĄÖÕĸÕĨÖÕĄÕ¯",
"compose_form.poll.duration": "ÕÕĄÖÖÕ´ÕĄÕļ ÕŋÕĨÖÕ¸Õ˛Õ¸ÖÕŠÕĢÖÕļÕ¨",
- "compose_form.poll.option_placeholder": "ÕÕĄÖÕĸÕĨÖÕĄÕ¯ {number}",
- "compose_form.poll.remove_option": "ÕÕĨÕŧÕĄÖÕļÕĨÕŦ ÕĄÕĩÕŊ ÕŋÕĄÖÕĸÕĨÖÕĄÕ¯Õ¨",
"compose_form.poll.switch_to_multiple": "ÕÕĄÖÖÕ¸ÖÕ´Õ¨ Õ¤ÕĄÖÕąÕļÕĨÕŦ ÕĸÕĄÕĻÕ´ÕĄÕ¯ÕĢ Õ¨ÕļÕŋÖÕ¸ÖÕŠÕĨÕĄÕ´Õĸ",
"compose_form.poll.switch_to_single": "ÕÕĄÖÖÕ¸ÖÕ´Õ¨ Õ¤ÕĄÖÕąÕļÕĨÕŦ ÕĨÕĻÕĄÕ¯ÕĢ Õ¨ÕļÕŋÖÕ¸ÖÕŠÕĨÕĄÕ´Õĸ",
- "compose_form.publish": "ÕÖÕĄÕēÕĄÖÕĄÕ¯ÕĨÕŦ",
"compose_form.publish_form": "ÕÖÕĄÕēÕĄÖÕĄÕ¯ÕĨÕŦ",
- "compose_form.publish_loud": "ÕÖÕĄÕēÕĄÖÕĄÕ¯ÕĨÕÕŦ",
- "compose_form.save_changes": "ÕÕĄÕ°ÕēÕĄÕļÕĨÕŦ ÖÕ¸ÖÕ¸ÕÕ¸ÖÕŠÕĢÖÕļÕļÕĨÖÕ¨",
- "compose_form.sensitive.hide": "ÕÕˇÕĨÕŦ Õ´ÕĨÕ¤ÕĢÕĄÕļ Õ¸ÖÕēÕ§ÕŊ Õ¤ÕĢÖÖÕĄÕĻÕŖÕĄÖ",
- "compose_form.sensitive.marked": "ÕÕĨÕ¤ÕĢÕĄÕļ ÕļÕˇÕ¸ÖÕĄÕŽ Õ§ Õ¸ÖÕēÕ§ÕŊ Õ¤ÕĢÖÖÕĄÕĻÕŖÕĄÖ",
- "compose_form.sensitive.unmarked": "ÕÕĨÕ¤ÕĢÕĄÕļ ÕļÕˇÕ¸ÖÕĄÕŽ ÕšÕ§ Õ¸ÖÕēÕ§ÕŊ Õ¤ÕĢÖÖÕĄÕĻÕŖÕĄÖ",
"compose_form.spoiler.marked": "ÕÕĨÖÕŊÕŋÕ¨ ÕŠÕĄÖÖÕ¸ÖÕĄÕŽ Õ§ ÕĻÕŖÕ¸ÖÕˇÕĄÖÕ´ÕĄÕļ ÕĨÕŋÕĨÖÕ¸ÖÕ´",
"compose_form.spoiler.unmarked": "ÕÕĨÖÕŊÕŋÕ¨ ÕŠÕĄÖÖÕ¸ÖÕĄÕŽ ÕšÕ§",
- "compose_form.spoiler_placeholder": "ÔŗÖÕĢÖ ÕļÕĄÕÕĄÕĻÕŖÕ¸ÖÕˇÕĄÖÕ¸ÖÕ´Õ¤ ÕĄÕĩÕŊÕŋÕĨÕ˛",
"confirmation_modal.cancel": "ÕÕĨÕ˛ÕĄÖÕ¯ÕĨÕŦ",
"confirmations.block.block_and_report": "ÔąÖÕŖÕĨÕŦÕĄÖÕĄÕ¯ÕĨÕŦ ÕĨÖ ÕĸÕ¸Õ˛Õ¸ÖÕĨÕŦ",
"confirmations.block.confirm": "ÔąÖÕŖÕĨÕŦÕĄÖÕĄÕ¯ÕĨÕŦ",
@@ -326,7 +314,6 @@
"navigation_bar.direct": "ÕÕĄÕŊÕļÕĄÖÕ¸Ö ÕĩÕĢÕˇÕĄÕŋÕĄÕ¯Õ¸ÖÕ´ÕļÕĨÖ",
"navigation_bar.discover": "Ô˛ÕĄÖÕĄÕĩÕĄÕĩÕŋÕĨÕŦ",
"navigation_bar.domain_blocks": "ÔšÕĄÖÖÕ¸ÖÕĄÕŽ ÕŋÕĢÖÕ¸ÕĩÕŠÕļÕĨÖ",
- "navigation_bar.edit_profile": "ÔŊÕ´ÕĸÕĄÕŖÖÕĨÕŦ Õ°ÕĄÕˇÕĢÖÕ¨",
"navigation_bar.explore": "Ô˛ÕĄÖÕĄÕĩÕĄÕĩÕŋÕĨÕŦ",
"navigation_bar.favourites": "ÕÕĄÖÕĄÕļÕĄÕŽÕļÕĨÖ",
"navigation_bar.filters": "ÔŧÕŧÕĨÖÕ¸ÖÕĄÕŽ ÕĸÕĄÕŧÕĨÖ",
@@ -415,13 +402,7 @@
"poll_button.add_poll": "ÔąÖÕĨÕŦÕĄÖÕļÕĨÕŦ Õ°ÕĄÖÖÕ¸ÖÕ´",
"poll_button.remove_poll": "ÕÕĨÕŧÕĄÖÕļÕĨÕŦ Õ°ÕĄÖÖÕ¸ÖÕ´Õ¨",
"privacy.change": "ÔŋÕĄÖÕŖÕĄÖÕ¸ÖÕĨÕŦ ÕŖÖÕĄÕŧÕ´ÕĄÕļ ÕŖÕĄÕ˛ÕŋÕļÕĢÕ¸ÖÕŠÕĢÖÕļÕ¨",
- "privacy.direct.long": "ÔŋÕ¨ ÕŋÕĨÕŊÕļÕĨÕļ Õ´ÕĢÕĄÕĩÕļ ÕļÕˇÕ¸ÖÕĄÕŽ Ö
ÕŖÕŋÕĄÕŋÕ§ÖÕĨÖÕ¨",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "ÔŋÕ¨ ÕŋÕĨÕŊÕļÕĨÕļ Õ´ÕĢÕĄÕĩÕļ Õ°ÕĨÕŋÕĨÖÕ¸ÖÕ¤ÕļÕĨÖÕ¨",
- "privacy.private.short": "ÕÕĢÕĄÕĩÕļ Õ°ÕĨÕŋÕĨÖÕ¸Õ˛ÕļÕĨÖÕ¨",
- "privacy.public.long": "ÕÕĨÕŊÕĄÕļÕĨÕŦÕĢ ÕĸÕ¸ÕŦÕ¸ÖÕĢÕļ",
"privacy.public.short": "ÕÖÕĄÕēÕĄÖÕĄÕ¯ÕĄÕĩÕĢÕļ",
- "privacy.unlisted.short": "ÔžÕĄÕŽÕ¸ÖÕ¯",
"privacy_policy.last_updated": "ÕÕĨÖÕģÕĢÕļ ÕĄÕļÕŖÕĄÕ´ ÕŠÕĄÖÕ´ÕĄÖÕ¸ÖÕĨÕŦ Õ§Õ {date}",
"privacy_policy.title": "ÔŗÕĄÕ˛ÕŋÕļÕĢÕ¸ÖÕŠÕĨÕĄÕļ ÖÕĄÕ˛ÕĄÖÕĄÕ¯ÕĄÕļÕ¸ÖÕŠÕĢÖÕļ",
"refresh": "ÔšÕĄÖÕ´ÕĄÖÕļÕĨÕŦ",
@@ -557,7 +538,6 @@
"upload_form.description": "ÕÕ¯ÕĄÖÕĄÕŖÕĢÖÕ ÕŋÕĨÕŊÕ¸Õ˛ÕĄÕ¯ÕĄÕļ ÕÕļÕ¤ÕĢÖÕļÕĨÖ Õ¸ÖÕļÕĨÖÕ¸Õ˛ÕļÕĨÖÕĢ Õ°ÕĄÕ´ÕĄÖ",
"upload_form.edit": "ÔŊÕ´ÕĸÕĄÕŖÖÕĨÕŦ",
"upload_form.thumbnail": "ÕÕ¸ÕÕĨÕŦ ÕēÕĄÕŋÕ¯ÕĨÖÕĄÕ¯Õ¨",
- "upload_form.undo": "Õ
ÕĨÕŋÕĄÖÕ¯ÕĨÕŦ",
"upload_form.video_description": "ÕÕ¯ÕĄÖÕĄÕŖÖÕĢÖ ÕŋÕĨÕŊÕĄÕļÕĢÖÕŠÕ¨ ÕŦÕŊÕ¸Õ˛ÕĄÕ¯ÕĄÕļ Õ¯ÕĄÕ´ ÕŋÕĨÕŊÕ¸Õ˛ÕĄÕ¯ÕĄÕļ ÕÕļÕ¤ÕĢÖÕļÕĨÖÕ¸Õž ÕĄÕļÕąÕĄÕļÖ Õ°ÕĄÕ´ÕĄÖ",
"upload_modal.analyzing_picture": "ÔŧÕ¸ÖÕŊÕĄÕļÕ¯ÕĄÖÕĢ ÕžÕĨÖÕŦÕ¸ÖÕŽÕ¸ÖÕ´âĻ",
"upload_modal.apply": "ÔŋÕĢÖÕĄÕŧÕĨÕŦ",
diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json
index 917a03466..14b75a17f 100644
--- a/app/javascript/mastodon/locales/ia.json
+++ b/app/javascript/mastodon/locales/ia.json
@@ -1,23 +1,310 @@
{
+ "about.blocks": "Servitores moderate",
+ "about.contact": "Contacto:",
+ "about.disclaimer": "Mastodon es software libere, de codice aperte, e un marca de Mastodon gGmbH.",
+ "about.rules": "Regulas del servitor",
+ "account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Adder o remover ab listas",
+ "account.badges.group": "Gruppo",
+ "account.block": "Blocar @{name}",
+ "account.block_short": "Blocar",
+ "account.blocked": "Blocate",
+ "account.browse_more_on_origin_server": "Navigar plus sur le profilo original",
"account.copy": "Copiar ligamine a profilo",
+ "account.domain_blocked": "Dominio blocate",
+ "account.edit_profile": "Modificar profilo",
+ "account.enable_notifications": "Notifica me quando @{name} publica",
+ "account.endorse": "Evidentiar sur le profilo",
+ "account.featured_tags.last_status_at": "Ultime message in {date}",
+ "account.featured_tags.last_status_never": "Necun messages",
+ "account.featured_tags.title": "Hashtags eminente de {name}",
+ "account.follow": "Sequer",
+ "account.follow_back": "Sequer etiam",
+ "account.followers": "Sequitores",
+ "account.followers.empty": "Iste usator ancora non ha sequitores.",
+ "account.followers_counter": "{count, plural, one {{counter} sequitor} other {{counter} sequitores}}",
+ "account.following": "Sequente",
+ "account.go_to_profile": "Vader al profilo",
+ "account.hide_reblogs": "Celar boosts de @{name}",
+ "account.languages": "Cambiar le linguas subscribite",
+ "account.link_verified_on": "Le proprietate de iste ligamine esseva verificate le {date}",
+ "account.locked_info": "Le stato de confidentialitate de iste conto es definite a blocate. Le proprietario revisa manualmente qui pote sequer lo.",
+ "account.mention": "Mentionar @{name}",
+ "account.moved_to": "{name} indicava que lor nove conto ora es:",
+ "account.mute": "Silentiar @{name}",
+ "account.mute_notifications_short": "Silentiar le notificationes",
+ "account.mute_short": "Silentiar",
+ "account.muted": "Silentiate",
+ "account.no_bio": "Nulle description fornite.",
+ "account.open_original_page": "Aperir le pagina original",
+ "account.posts": "Messages",
+ "account.posts_with_replies": "Messages e responsas",
+ "account.share": "Compartir profilo de @{name}",
+ "account.show_reblogs": "Monstrar responsas de @{name}",
+ "account.unblock": "Disblocar @{name}",
+ "account.unblock_domain": "Disblocar dominio {domain}",
+ "account.unblock_short": "Disblocar",
+ "account.unendorse": "Non evidentiar sur le profilo",
+ "account.unmute": "Non plus silentiar @{name}",
+ "account.unmute_notifications_short": "Non plus silentiar le notificationes",
+ "account.unmute_short": "Non plus silentiar",
+ "account_note.placeholder": "Clicca pro adder un nota",
+ "admin.dashboard.retention.cohort_size": "Nove usatores",
+ "admin.impact_report.instance_followers": "Sequitores que nostre usatores poterea perder",
+ "admin.impact_report.instance_follows": "Sequitores que lor usatores poterea perder",
+ "alert.rate_limited.message": "Retenta depost {retry_time, time, medium}.",
+ "alert.unexpected.message": "Ocurreva un error inexpectate.",
+ "announcement.announcement": "Annuncio",
+ "audio.hide": "Celar audio",
"bundle_column_error.network.title": "Error de rete",
+ "bundle_column_error.retry": "Tentar novemente",
+ "bundle_column_error.return": "Retornar al initio",
"bundle_modal_error.close": "Clauder",
+ "bundle_modal_error.retry": "Tentar novemente",
+ "closed_registrations_modal.find_another_server": "Trovar altere servitor",
+ "column.about": "A proposito de",
+ "column.blocks": "Usatores blocate",
+ "column.bookmarks": "Marcapaginas",
+ "column.community": "Chronologia local",
+ "column.direct": "Mentiones private",
+ "column.directory": "Navigar profilos",
+ "column.domain_blocks": "Dominios blocate",
+ "column.favourites": "Favoritos",
+ "column.firehose": "Fluxos in directe",
"column.home": "Initio",
+ "column.lists": "Listas",
+ "column.mutes": "Usatores silentiate",
+ "column.notifications": "Notificationes",
+ "column.public": "Chronologia federate",
+ "column_header.hide_settings": "Celar le parametros",
+ "column_header.moveLeft_settings": "Mover columna al sinistra",
+ "column_header.moveRight_settings": "Mover columna al dextra",
+ "column_header.show_settings": "Monstrar le parametros",
"column_subheading.settings": "Parametros",
+ "compose.language.change": "Cambiar le lingua",
"compose.language.search": "Cercar linguas...",
+ "compose.published.body": "Message publicate.",
"compose.published.open": "Aperir",
+ "compose.saved.body": "Message salvate.",
+ "compose_form.direct_message_warning_learn_more": "Apprender plus",
+ "compose_form.lock_disclaimer": "Tu conto non es {locked}. Quicunque pote sequer te pro vider tu messages solo pro sequitores.",
+ "compose_form.lock_disclaimer.lock": "blocate",
+ "compose_form.publish_form": "Nove message",
+ "compose_form.spoiler.marked": "Remover advertimento de contento",
+ "compose_form.spoiler.unmarked": "Adder advertimento de contento",
"confirmation_modal.cancel": "Cancellar",
+ "confirmations.block.confirm": "Blocar",
+ "confirmations.delete.confirm": "Deler",
+ "confirmations.delete.message": "Es tu secur que tu vole deler iste message?",
+ "confirmations.delete_list.confirm": "Deler",
+ "confirmations.delete_list.message": "Es tu secur que tu vole deler permanentemente iste lista?",
+ "confirmations.domain_block.confirm": "Blocar le dominio complete",
+ "confirmations.edit.confirm": "Modificar",
"confirmations.logout.confirm": "Clauder le session",
+ "confirmations.logout.message": "Es tu secur que tu vole clauder le session?",
+ "confirmations.mute.confirm": "Silentiar",
+ "confirmations.mute.message": "Es tu secur que tu vole silentiar {name}?",
+ "confirmations.reply.confirm": "Responder",
+ "conversation.delete": "Deler conversation",
+ "conversation.mark_as_read": "Marcar como legite",
+ "conversation.open": "Vider conversation",
+ "conversation.with": "Con {names}",
+ "copy_icon_button.copied": "Copiate al area de transferentia",
+ "copypaste.copied": "Copiate",
"copypaste.copy_to_clipboard": "Copiar al area de transferentia",
+ "directory.federated": "Ab le fediverso cognoscite",
+ "directory.local": "Solmente ab {domain}",
+ "directory.recently_active": "Recentemente active",
+ "disabled_account_banner.account_settings": "Parametros de conto",
+ "disabled_account_banner.text": "Tu conto {disabledAccount} es actualmente disactivate.",
"dismissable_banner.dismiss": "Dimitter",
+ "emoji_button.activity": "Activitate",
+ "emoji_button.clear": "Rader",
+ "emoji_button.custom": "Personalisate",
+ "emoji_button.recent": "Frequentemente usate",
+ "emoji_button.search": "Cercar...",
+ "emoji_button.search_results": "Resultatos de recerca",
+ "empty_column.account_suspended": "Conto suspendite",
+ "empty_column.account_timeline": "Nulle messages hic!",
+ "empty_column.account_unavailable": "Profilo non disponibile",
+ "empty_column.blocks": "Tu non ha blocate alcun usator ancora.",
+ "errors.unexpected_crash.report_issue": "Signalar un defecto",
+ "explore.search_results": "Resultatos de recerca",
+ "explore.title": "Explorar",
+ "explore.trending_links": "Novas",
+ "explore.trending_statuses": "Messages",
+ "explore.trending_tags": "Hashtags",
+ "filter_modal.added.review_and_configure_title": "Parametros de filtro",
+ "filter_modal.added.settings_link": "pagina de parametros",
+ "filter_modal.added.short_explanation": "Iste message esseva addite al sequente categoria de filtros: {title}.",
+ "filter_modal.added.title": "Filtro addite!",
+ "filter_modal.select_filter.prompt_new": "Nove categoria: {name}",
+ "filter_modal.select_filter.search": "Cercar o crear",
+ "filter_modal.select_filter.title": "Filtrar iste message",
+ "filter_modal.title.status": "Filtrar un message",
+ "firehose.all": "Toto",
"firehose.local": "Iste servitor",
+ "firehose.remote": "Altere servitores",
"footer.about": "A proposito de",
+ "footer.directory": "Directorio de profilos",
+ "footer.get_app": "Obtene le application",
+ "footer.keyboard_shortcuts": "Accessos directe de claviero",
+ "footer.privacy_policy": "Politica de confidentialitate",
+ "footer.source_code": "Vider le codice fonte",
+ "footer.status": "Stato",
+ "generic.saved": "Salvate",
+ "getting_started.heading": "Prime passos",
+ "hashtag.column_header.tag_mode.all": "e {additional}",
+ "hashtag.column_header.tag_mode.any": "o {additional}",
+ "hashtag.column_settings.select.no_options_message": "Nulle suggestiones trovate",
+ "hashtag.column_settings.select.placeholder": "Insere hashtagsâĻ",
+ "hashtag.follow": "Sequer hashtag",
+ "home.column_settings.show_reblogs": "Monstrar boosts",
+ "home.column_settings.show_replies": "Monstrar responsas",
+ "home.hide_announcements": "Celar annuncios",
+ "home.pending_critical_update.body": "Actualisa tu servitor de Mastodon le plus tosto possibile!",
"home.pending_critical_update.link": "Vider actualisationes",
+ "home.show_announcements": "Monstrar annuncios",
+ "interaction_modal.no_account_yet": "Non sur Mstodon?",
+ "interaction_modal.on_another_server": "In un servitor differente",
+ "interaction_modal.on_this_server": "In iste servitor",
+ "interaction_modal.title.follow": "Sequer {name}",
+ "interaction_modal.title.reblog": "Facer boost al message de {name}",
+ "interaction_modal.title.reply": "Responder al message de {name}",
+ "keyboard_shortcuts.blocked": "Aperir lista de usatores blocate",
+ "keyboard_shortcuts.boost": "Facer boost al message",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.enter": "Aperir message",
+ "keyboard_shortcuts.favourites": "Aperir lista de favoritos",
+ "keyboard_shortcuts.federated": "Aperir le chronologia federate",
+ "keyboard_shortcuts.heading": "Accessos directe de claviero",
+ "keyboard_shortcuts.home": "Aperir le chronologia de initio",
+ "keyboard_shortcuts.local": "Aperir le chronologia local",
+ "keyboard_shortcuts.muted": "Aperir lista de usatores silentiate",
"keyboard_shortcuts.my_profile": "Aperir tu profilo",
+ "keyboard_shortcuts.notifications": "Aperir columna de notificationes",
+ "keyboard_shortcuts.reply": "Responder al message",
+ "keyboard_shortcuts.spoilers": "Monstrar/celar le campo CW",
+ "keyboard_shortcuts.toot": "Initiar un nove message",
"lightbox.close": "Clauder",
"lightbox.next": "Sequente",
+ "lightbox.previous": "Precedente",
"link_preview.author": "Per {name}",
"lists.account.add": "Adder al lista",
- "navigation_bar.about": "A proposito de"
+ "lists.account.remove": "Remover ab le lista",
+ "lists.delete": "Deler lista",
+ "lists.edit": "Modificar lista",
+ "lists.edit.submit": "Cambiar titulo",
+ "lists.exclusive": "Celar iste messages ab le initio",
+ "lists.new.create": "Adder lista",
+ "lists.new.title_placeholder": "Nove titulo del lista",
+ "lists.replies_policy.title": "Monstrar responsas a:",
+ "lists.subheading": "Tu listas",
+ "mute_modal.duration": "Duration",
+ "mute_modal.hide_notifications": "Celar notificationes de iste usator?",
+ "navigation_bar.about": "A proposito de",
+ "navigation_bar.advanced_interface": "Aperir in un interfacie web avantiate",
+ "navigation_bar.blocks": "Usatores blocate",
+ "navigation_bar.bookmarks": "Marcapaginas",
+ "navigation_bar.community_timeline": "Chronologia local",
+ "navigation_bar.direct": "Mentiones private",
+ "navigation_bar.discover": "Discoperir",
+ "navigation_bar.domain_blocks": "Dominios blocate",
+ "navigation_bar.favourites": "Favoritos",
+ "navigation_bar.filters": "Parolas silentiate",
+ "navigation_bar.lists": "Listas",
+ "navigation_bar.logout": "Clauder le session",
+ "navigation_bar.mutes": "Usatores silentiate",
+ "navigation_bar.preferences": "Preferentias",
+ "navigation_bar.public_timeline": "Chronologia federate",
+ "navigation_bar.search": "Cercar",
+ "navigation_bar.security": "Securitate",
+ "notification.update": "{name} modificava un message",
+ "notifications.clear": "Rader notificationes",
+ "notifications.column_settings.alert": "Notificationes de scriptorio",
+ "notifications.column_settings.filter_bar.advanced": "Monstrar tote le categorias",
+ "notifications.column_settings.follow": "Nove sequitores:",
+ "notifications.column_settings.mention": "Mentiones:",
+ "notifications.column_settings.push": "Notificationes push",
+ "notifications.column_settings.sound": "Reproducer sono",
+ "notifications.column_settings.status": "Nove messages:",
+ "notifications.filter.all": "Toto",
+ "notifications.filter.favourites": "Favoritos",
+ "notifications.filter.mentions": "Mentiones",
+ "notifications.grant_permission": "Conceder permission.",
+ "notifications.group": "{count} notificationes",
+ "onboarding.compose.template": "Salute #Mastodon!",
+ "onboarding.profile.save_and_continue": "Salvar e continuar",
+ "onboarding.share.next_steps": "Sequente passos possibile:",
+ "onboarding.share.title": "Compartir tu profilo",
+ "onboarding.steps.follow_people.title": "Personalisa tu fluxo de initio",
+ "onboarding.steps.publish_status.title": "Face tu prime message",
+ "onboarding.steps.setup_profile.title": "Personalisa tu profilo",
+ "onboarding.steps.share_profile.title": "Compartir tu profilo de Mastodon",
+ "poll.closed": "Claudite",
+ "poll.reveal": "Vider le resultatos",
+ "privacy.change": "Cambiar privacitate del message",
+ "privacy.public.short": "Public",
+ "privacy_policy.last_updated": "Ultime actualisation {date}",
+ "privacy_policy.title": "Politica de confidentialitate",
+ "relative_time.just_now": "ora",
+ "relative_time.today": "hodie",
+ "reply_indicator.cancel": "Cancellar",
+ "report.block": "Blocar",
+ "report.categories.other": "Alteres",
+ "report.category.title_account": "profilo",
+ "report.category.title_status": "message",
+ "report.close": "Preste",
+ "report.mute": "Silentiar",
+ "report.next": "Sequente",
+ "report.placeholder": "Commentos additional",
+ "report.reasons.dislike": "Non me place",
+ "report_notification.categories.other": "Alteres",
+ "search.quick_action.go_to_account": "Vader al profilo {x}",
+ "search.quick_action.go_to_hashtag": "Vader al hashtag {x}",
+ "search.quick_action.open_url": "Aperir URL in Mastodon",
+ "search_popout.full_text_search_disabled_message": "Non disponibile sur {domain}.",
+ "search_popout.language_code": "Codice de lingua ISO",
+ "search_popout.options": "Optiones de recerca",
+ "search_popout.quick_actions": "Actiones rapide",
+ "search_popout.recent": "Recercas recente",
+ "search_popout.user": "usator",
+ "search_results.accounts": "Profilos",
+ "search_results.hashtags": "Hashtags",
+ "search_results.see_all": "Vider toto",
+ "search_results.statuses": "Messages",
+ "server_banner.learn_more": "Apprender plus",
+ "sign_in_banner.create_account": "Crear un conto",
+ "sign_in_banner.sign_in": "Initiar le session",
+ "status.block": "Blocar @{name}",
+ "status.copy": "Copiar ligamine a message",
+ "status.delete": "Deler",
+ "status.direct_indicator": "Mention private",
+ "status.edit": "Modificar",
+ "status.filter": "Filtrar iste message",
+ "status.hide": "Celar le message",
+ "status.history.created": "create per {name} le {date}",
+ "status.history.edited": "modificate per {name} le {date}",
+ "status.media.open": "Clicca pro aperir",
+ "status.media.show": "Clicca pro monstrar",
+ "status.more": "Plus",
+ "status.mute_conversation": "Silentiar conversation",
+ "status.read_more": "Leger plus",
+ "status.share": "Compartir",
+ "status.translate": "Traducer",
+ "status.translated_from_with": "Traducite ab {lang} usante {provider}",
+ "tabs_bar.home": "Initio",
+ "tabs_bar.notifications": "Notificationes",
+ "timeline_hint.resources.statuses": "Messages ancian",
+ "trends.trending_now": "Ora in tendentias",
+ "upload_modal.choose_image": "Seliger un imagine",
+ "upload_modal.detect_text": "Deteger texto ab un pictura",
+ "video.close": "Clauder le video",
+ "video.download": "Discargar le file",
+ "video.fullscreen": "Schermo plen",
+ "video.hide": "Celar video",
+ "video.mute": "Silentiar le sono",
+ "video.pause": "Pausa",
+ "video.play": "Reproducer",
+ "video.unmute": "Non plus silentiar le sono"
}
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index 8ecf36125..1670d616f 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -37,7 +37,6 @@
"account.following": "Mengikuti",
"account.following_counter": "{count, plural, other {{counter} Mengikuti}}",
"account.follows.empty": "Pengguna ini belum mengikuti siapa pun.",
- "account.follows_you": "Mengikuti Anda",
"account.go_to_profile": "Buka profil",
"account.hide_reblogs": "Sembunyikan boosts dari @{name}",
"account.in_memoriam": "Mengenang.",
@@ -83,7 +82,6 @@
"announcement.announcement": "Pengumuman",
"attachments_list.unprocessed": "(tidak diproses)",
"audio.hide": "Sembunyikan audio",
- "autosuggest_hashtag.per_week": "{count} per minggu",
"boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini",
"bundle_column_error.copy_stacktrace": "Salin laporan kesalahan",
"bundle_column_error.error.body": "Laman yang diminta tidak dapat ditampilkan. Mungkin karena sebuah kutu dalam kode kami, atau masalah kompatibilitas peramban.",
@@ -135,22 +133,12 @@
"compose_form.lock_disclaimer": "Akun Anda tidak {locked}. Semua orang dapat mengikuti Anda untuk melihat kiriman khusus untuk pengikut Anda.",
"compose_form.lock_disclaimer.lock": "terkunci",
"compose_form.placeholder": "Apa yang ada di pikiran Anda?",
- "compose_form.poll.add_option": "Tambahkan pilihan",
"compose_form.poll.duration": "Durasi japat",
- "compose_form.poll.option_placeholder": "Pilihan {number}",
- "compose_form.poll.remove_option": "Hapus opsi ini",
"compose_form.poll.switch_to_multiple": "Ubah japat menjadi pilihan ganda",
"compose_form.poll.switch_to_single": "Ubah japat menjadi pilihan tunggal",
- "compose_form.publish": "Terbitkan",
"compose_form.publish_form": "Terbitkan",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Simpan perubahan",
- "compose_form.sensitive.hide": "{count, plural, other {Tandai media sebagai sensitif}}",
- "compose_form.sensitive.marked": "{count, plural, other {Media ini ditandai sebagai sensitif}}",
- "compose_form.sensitive.unmarked": "{count, plural, other {Media ini tidak ditandai sebagai sensitif}}",
"compose_form.spoiler.marked": "Hapus peringatan tentang isi konten",
"compose_form.spoiler.unmarked": "Tambahkan peringatan tentang isi konten",
- "compose_form.spoiler_placeholder": "Peringatan konten",
"confirmation_modal.cancel": "Batal",
"confirmations.block.block_and_report": "Blokir & Laporkan",
"confirmations.block.confirm": "Blokir",
@@ -365,7 +353,6 @@
"navigation_bar.compose": "Tulis toot baru",
"navigation_bar.discover": "Temukan",
"navigation_bar.domain_blocks": "Domain tersembunyi",
- "navigation_bar.edit_profile": "Ubah profil",
"navigation_bar.explore": "Jelajahi",
"navigation_bar.filters": "Kata yang dibisukan",
"navigation_bar.follow_requests": "Permintaan mengikuti",
@@ -455,14 +442,7 @@
"poll_button.add_poll": "Tambah japat",
"poll_button.remove_poll": "Hapus japat",
"privacy.change": "Ubah privasi kiriman",
- "privacy.direct.long": "Kirim hanya ke pengguna yang disebut",
- "privacy.direct.short": "Orang yang disebutkan saja",
- "privacy.private.long": "Kirim kiriman hanya kepada pengikut",
- "privacy.private.short": "Pengikut saja",
- "privacy.public.long": "Terlihat oleh semua",
"privacy.public.short": "Publik",
- "privacy.unlisted.long": "Terlihat oleh semua, tapi jangan tampilkan di fitur jelajah",
- "privacy.unlisted.short": "Tak Terdaftar",
"privacy_policy.last_updated": "Terakhir diperbarui {date}",
"privacy_policy.title": "Kebijakan Privasi",
"refresh": "Segarkan",
@@ -616,10 +596,8 @@
"upload_error.poll": "Unggah berkas tak diizinkan di japat ini.",
"upload_form.audio_description": "Penjelasan untuk orang dengan gangguan pendengaran",
"upload_form.description": "Deskripsikan untuk mereka yang tidak bisa melihat dengan jelas",
- "upload_form.description_missing": "Tidak ada deskripsi yang ditambahkan",
"upload_form.edit": "Sunting",
"upload_form.thumbnail": "Ubah gambar kecil",
- "upload_form.undo": "Undo",
"upload_form.video_description": "Penjelasan untuk orang dengan gangguan pendengaran atau penglihatan",
"upload_modal.analyzing_picture": "Analisis gambarâĻ",
"upload_modal.apply": "Terapkan",
diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json
index 966b27272..5188d137e 100644
--- a/app/javascript/mastodon/locales/ie.json
+++ b/app/javascript/mastodon/locales/ie.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Null postas",
"account.featured_tags.title": "Recomandat hashtags de {name}",
"account.follow": "Sequer",
+ "account.follow_back": "Sequer reciprocmen",
"account.followers": "Sequitores",
"account.followers.empty": "Ancor nequi seque ti-ci usator.",
"account.followers_counter": "{count, plural, one {{counter} Sequitor} other {{counter} Sequitor}}",
"account.following": "Sequent",
"account.following_counter": "{count, plural, one {{counter} Sequent} other {{counter} Sequent}}",
"account.follows.empty": "Ti-ci usator ancor ne seque quemcunc.",
- "account.follows_you": "Seque te",
"account.go_to_profile": "Ear a profil",
"account.hide_reblogs": "Celar boosts de @{name}",
"account.in_memoriam": "In Memoriam.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silentiar notificationes",
"account.mute_short": "Silentiar",
"account.muted": "Silentiat",
+ "account.mutual": "Reciproc",
"account.no_bio": "Null descrition providet.",
"account.open_original_page": "Aperter li pÃĄgine original",
"account.posts": "Postas",
@@ -88,7 +89,6 @@
"announcement.announcement": "Proclamation",
"attachments_list.unprocessed": "(Ãntractat)",
"audio.hide": "Celar audio",
- "autosuggest_hashtag.per_week": "{count} per semane",
"boost_modal.combo": "Li proxim vez tu posse pressar {combo} por passar to-ci",
"bundle_column_error.copy_stacktrace": "Copiar erra-raporte",
"bundle_column_error.error.body": "Li demandat pÃĄgine ne posset esser rendit. FÃŗrsan it es un problema in nor code, o un problema de compatibilitÃĄ con li navigator.",
@@ -140,26 +140,26 @@
"compose.published.open": "Aperter",
"compose.saved.body": "Posta conservat.",
"compose_form.direct_message_warning_learn_more": "Aprender plu",
+ "compose_form.encryption_warning": "Postas in Mastodon ne es inciffrat de comense a fine. Ne posta quelcunc information sensitiv per Mastodon.",
"compose_form.hashtag_warning": "Ti-ci posta ne va esser listat sur quelcunc hashtag pro que it ne es public. Solmen public postas posse esser serchat per hashtag.",
"compose_form.lock_disclaimer": "Tui conto ne es {locked}. Quicunc posse sequer te por vider tui postas solmen por sequitores.",
"compose_form.lock_disclaimer.lock": "cludet",
"compose_form.placeholder": "Quo es in tui spiritu?",
- "compose_form.poll.add_option": "Adjunter un option",
+ "compose_form.poll.add_option": "Adjunter option",
"compose_form.poll.duration": "Duration del balotation",
+ "compose_form.poll.multiple": "Selection multiplic",
"compose_form.poll.option_placeholder": "Option {number}",
"compose_form.poll.remove_option": "Remover ti-ci option",
+ "compose_form.poll.single": "Selecter un",
"compose_form.poll.switch_to_multiple": "Changea li balotation por permisser multiplic selectiones",
"compose_form.poll.switch_to_single": "Changea li balotation por permisser un singul selection",
- "compose_form.publish": "Publicar",
+ "compose_form.poll.type": "Stil",
+ "compose_form.publish": "Postar",
"compose_form.publish_form": "Nov posta",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Conservar changes",
- "compose_form.sensitive.hide": "{count, plural, one {Marcar medie quam sensitiv} other {Marcar medie quam sensitiv}}",
- "compose_form.sensitive.marked": "{count, plural, one {Medie es marcat quam sensitiv} other {Medie es marcat quam sensitiv}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Medie ne es marcat quam sensitiv} other {Medie ne es marcat quam sensitiv}}",
+ "compose_form.reply": "Responder",
+ "compose_form.save_changes": "Actualisar",
"compose_form.spoiler.marked": "Remover avise pri li contenete",
"compose_form.spoiler.unmarked": "Adjunter avise pri li contenete",
- "compose_form.spoiler_placeholder": "Scri tui avise ci",
"confirmation_modal.cancel": "Anullar",
"confirmations.block.block_and_report": "Bloccar & Raportar",
"confirmations.block.confirm": "Bloccar",
@@ -191,12 +191,15 @@
"conversation.mark_as_read": "Marcar quam leet",
"conversation.open": "Vider conversation",
"conversation.with": "Con {names}",
+ "copy_icon_button.copied": "Copiat al Paperiere",
"copypaste.copied": "Copiat",
+ "copypaste.copy_to_clipboard": "Copiar al Paperiere",
"directory.federated": "Del conosset fediverse",
"directory.local": "De solmen {domain}",
"directory.new_arrivals": "Nov arivantes",
"directory.recently_active": "Recentmen activ",
"disabled_account_banner.account_settings": "Parametres del conto",
+ "disabled_account_banner.text": "Tui conto {disabledAccount} es actualmen desactivisat.",
"dismissable_banner.community_timeline": "Tis-ci es li postas max recent de gente con contos che {domain}.",
"dismissable_banner.dismiss": "Demisser",
"dismissable_banner.explore_links": "Tis-ci es li novas max distribuet che li social retage hodie. Novas plu nov, postat de plu diferent persones, es monstrat plu alt.",
@@ -245,6 +248,7 @@
"error.unexpected_crash.explanation_addons": "Ti-ci pÃĄgine ne posset esser monstrat correctmen. Li error es probabilmen causat de un extension al navigator o instrumentes por automatic traduction.",
"error.unexpected_crash.next_steps": "Prova recargar li pÃĄgine. Si to ne auxilia, tu fÃŗrsan posse usar Mastodon per un diferent navigator o aplication.",
"error.unexpected_crash.next_steps_addons": "Prova desactivisar les e recargar li pÃĄgine. Si to ne auxilia, tu fÃŗrsan posse usar Mastodon per un diferent navigator o aplication.",
+ "errors.unexpected_crash.copy_stacktrace": "Copiar cumul-tracie a paperiere",
"errors.unexpected_crash.report_issue": "Raportar un problema",
"explore.search_results": "Resultates de sercha",
"explore.suggested_follows": "Gente",
@@ -279,6 +283,7 @@
"footer.directory": "Profilarium",
"footer.get_app": "Obtener li aplication",
"footer.invite": "Invitar gente",
+ "footer.keyboard_shortcuts": "Rapid-tastes",
"footer.privacy_policy": "Politica pri privatie",
"footer.source_code": "Vider li fonte-code",
"footer.status": "Statu",
@@ -321,6 +326,7 @@
"interaction_modal.on_another_server": "Sur un servitor diferent",
"interaction_modal.on_this_server": "Sur ti-ci servitor",
"interaction_modal.sign_in": "Tu ne ha initiat session che ti-ci servitor. U logia tui conto?",
+ "interaction_modal.sign_in_hint": "Nota: To es li websitu u tu adheret. Si tu ne rememora, sercha li benevenit-email in tui inbuxe. Tu anc posse introducter tui plen usator-nÃŗmine! (p.ex. @Mastodon@mastodon.social)",
"interaction_modal.title.favourite": "Favoritisar li posta de {name}",
"interaction_modal.title.follow": "Sequer {name}",
"interaction_modal.title.reblog": "Boostar li posta de {name}",
@@ -340,7 +346,10 @@
"keyboard_shortcuts.favourite": "Favoritisar posta",
"keyboard_shortcuts.favourites": "Aperter li liste de favorites",
"keyboard_shortcuts.federated": "Aperter li federat tÊmpor-linea",
+ "keyboard_shortcuts.heading": "Rapid-tastes",
"keyboard_shortcuts.home": "Aperter li hemal tÊmpor-linea",
+ "keyboard_shortcuts.hotkey": "Rapid clave",
+ "keyboard_shortcuts.legend": "Monstrar ti-ci legende",
"keyboard_shortcuts.local": "Aperter li local tÊmpor-linea",
"keyboard_shortcuts.mention": "Mentionar li autor",
"keyboard_shortcuts.muted": "Aperter li lista de silentiat usatores",
@@ -351,10 +360,17 @@
"keyboard_shortcuts.profile": "Aperter profil del autor",
"keyboard_shortcuts.reply": "Responder al posta",
"keyboard_shortcuts.requests": "Aperter liste de seque-petitiones",
+ "keyboard_shortcuts.search": "Infocar sercha-barre",
+ "keyboard_shortcuts.spoilers": "Monstrar/celar CW camp",
+ "keyboard_shortcuts.start": "Aperter \"Qualmen comensar\" columne",
+ "keyboard_shortcuts.toggle_hidden": "Monstrar/celar text detra CW",
"keyboard_shortcuts.toggle_sensitivity": "Monstrar/celar medie",
"keyboard_shortcuts.toot": "Crear un nov posta",
+ "keyboard_shortcuts.unfocus": "Desinfocar text-area de composition/serchar",
"keyboard_shortcuts.up": "Mover ad-supra in li liste",
"lightbox.close": "Cluder",
+ "lightbox.compress": "Compresser vise-buxe de image",
+ "lightbox.expand": "Expander vise-buxe de image",
"lightbox.next": "Sequent",
"lightbox.previous": "Precedent",
"limited_account_hint.action": "Monstrar profil totvez",
@@ -382,6 +398,7 @@
"mute_modal.hide_notifications": "Celar notificationes de ti-ci usator?",
"mute_modal.indefinite": "Ãndefinit",
"navigation_bar.about": "Information",
+ "navigation_bar.advanced_interface": "Aperter in li web-interfacie avansat",
"navigation_bar.blocks": "Bloccat usatores",
"navigation_bar.bookmarks": "Marcatores",
"navigation_bar.community_timeline": "Local tÊmpor-linea",
@@ -389,7 +406,6 @@
"navigation_bar.direct": "Privat mentiones",
"navigation_bar.discover": "Decovrir",
"navigation_bar.domain_blocks": "Bloccat dominias",
- "navigation_bar.edit_profile": "Redacter profil",
"navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favorites",
"navigation_bar.filters": "Silentiat paroles",
@@ -399,6 +415,7 @@
"navigation_bar.lists": "Listes",
"navigation_bar.logout": "Exear",
"navigation_bar.mutes": "Silentiat usatores",
+ "navigation_bar.opened_in_classic_interface": "Postas, contos e altri specific pÃĄgines es customalmen apertet in li classic web-interfacie.",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinglat postas",
"navigation_bar.preferences": "Preferenties",
@@ -421,12 +438,16 @@
"notifications.clear_confirmation": "Vole tu vermen permanentmen aclarar omni tui notificationes?",
"notifications.column_settings.admin.report": "Nov raportas:",
"notifications.column_settings.admin.sign_up": "Nov registrationes:",
+ "notifications.column_settings.alert": "Notificationes sur li computator",
"notifications.column_settings.favourite": "Favorites:",
"notifications.column_settings.filter_bar.advanced": "Monstrar omni categories",
+ "notifications.column_settings.filter_bar.category": "Rapid filtre-barre",
+ "notifications.column_settings.filter_bar.show_bar": "Monstrar filtre-barre",
"notifications.column_settings.follow": "Nov sequitores:",
"notifications.column_settings.follow_request": "Nov petitiones de sequer:",
"notifications.column_settings.mention": "Mentiones:",
"notifications.column_settings.poll": "Resultates del balotation:",
+ "notifications.column_settings.push": "Notificationes push",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Monstrar in columne",
"notifications.column_settings.sound": "Far son",
@@ -444,6 +465,12 @@
"notifications.grant_permission": "Dar permission.",
"notifications.group": "{count} notificationes",
"notifications.mark_as_read": "Marcar omni notificationes quam leet",
+ "notifications.permission_denied": "Notificationes sur li computator es Ãndisponibil pro que on ha previamen rejectet un petition por navigator-permissiones",
+ "notifications.permission_denied_alert": "Notificationes sur li computator ne posse esser activisat, pro que navigator-permission ha esset previamen rejectet",
+ "notifications.permission_required": "Notificationes sur li computator es Ãndisponibil pro que li besonat permission ne ha esset dat.",
+ "notifications_permission_banner.enable": "Activisar notificationes sur li computator",
+ "notifications_permission_banner.how_to_control": "Por reciver notificationes quande Mastodon ne es apert, activisa notificationes sur li computator. Tu posse decider precisimen quel species de interactiones genera notificationes per li buton {icon} in-supra quande ili es activisat.",
+ "notifications_permission_banner.title": "Nequande preterlassa quocunc",
"onboarding.action.back": "Retroear",
"onboarding.actions.back": "Retroear",
"onboarding.actions.go_to_explore": "Ear a vider lu populari",
@@ -474,9 +501,14 @@
"onboarding.steps.follow_people.title": "Personalisar tui hemal tÊmpor-linea",
"onboarding.steps.publish_status.body": "Saluta li munde con text, images, videos o balotationes {emoji}",
"onboarding.steps.publish_status.title": "Crear tui unesim posta",
+ "onboarding.steps.setup_profile.body": "Ascresce tui interactiones per haver un profil detalliat.",
"onboarding.steps.setup_profile.title": "Personalisar tui profil",
"onboarding.steps.share_profile.body": "Di tui amics qualmen trovar te che Mastodon",
"onboarding.steps.share_profile.title": "Partir tui profil Mastodon",
+ "onboarding.tips.2fa": "
Savet tu? Tu posse securisar tui conto per activisar 2-factor autentication in tui parametres de conto. Ti functiona con quelcunc aplication TOTP quel tu selecte, null nÃēmere de telefon besonat!",
+ "onboarding.tips.accounts_from_other_servers": "
Savet tu? Pro que Mastodon es decentralisat, quelc profiles queles tu trova va esser logiat che servitores altri quam tui. Totvez tu posse interacter con les sin grates! Lor servitores es in li duesim demà de lor usator-nÃŗmines!",
+ "onboarding.tips.migration": "
Savet tu? Si tu senti que {domain} ne es un bonissim servitor por te futurimen, tu posse mover te a un altri Mastodon-servitor sin perdir tui sequitores. Tu posse mem etablisser tui propri servitor!",
+ "onboarding.tips.verification": "
Savet tu? Tu posse verificar tui conto per metter un ligament a tui Mastodon-profil in tui propri websitu e adjunter li websitu a tui profil. Null payament o documentes besonat!",
"password_confirmation.exceeds_maxlength": "Confirmation de passa-parol transpassa li maxim longore de passa-paroles",
"password_confirmation.mismatching": "Confirmation de passa-parol ne egala",
"picture_in_picture.restore": "Restaurar",
@@ -491,14 +523,11 @@
"poll_button.add_poll": "Adjunter un balotation",
"poll_button.remove_poll": "Remover balotation",
"privacy.change": "Changear li privatie del posta",
- "privacy.direct.long": "Visibil solmen a mentionat usatores",
- "privacy.direct.short": "Solmen persones mentionat",
- "privacy.private.long": "Visibil solmen por sequitores",
- "privacy.private.short": "Solmen sequitores",
- "privacy.public.long": "Visibil a omnes",
+ "privacy.direct.short": "Specific persones",
+ "privacy.private.long": "Solmen tui sequitores",
+ "privacy.private.short": "Sequitores",
+ "privacy.public.long": "Quicunc in e ex Mastodon",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Visibil por omnes, ma excludet de functiones de decovrition",
- "privacy.unlisted.short": "Delistat",
"privacy_policy.last_updated": "Ultimmen actualisat ye {date}",
"privacy_policy.title": "Politica pri Privatie",
"recommended": "Recomandat",
@@ -573,6 +602,7 @@
"search.search_or_paste": "Serchar o glutinar URL",
"search_popout.full_text_search_disabled_message": "Ne disponibil che {domain}.",
"search_popout.full_text_search_logged_out_message": "Solmen disponibil con session initiat.",
+ "search_popout.language_code": "Code de lingue ISO",
"search_popout.options": "Sercha-parametres",
"search_popout.quick_actions": "Rapid actiones",
"search_popout.recent": "Recent serchas",
@@ -600,6 +630,8 @@
"status.admin_status": "Aperter ti-ci posta in li interfacie de moderation",
"status.block": "Bloccar @{name}",
"status.bookmark": "Marcar",
+ "status.cancel_reblog_private": "Desboostar",
+ "status.cannot_reblog": "Ti-ci posta ne posse esser boostat",
"status.copy": "Copiar ligament al posta",
"status.delete": "Deleter",
"status.detailed_status": "Detalliat vise de conversation",
@@ -627,6 +659,10 @@
"status.pin": "Pinglar sur profil",
"status.pinned": "Pinglat posta",
"status.read_more": "Leer plu",
+ "status.reblog": "Boostar",
+ "status.reblog_private": "Boostar con li original visibilitÃĄ",
+ "status.reblogged_by": "{name} boostat",
+ "status.reblogs.empty": "Ancor nequi ha boostat ti-ci posta. Quande alqui fa it, ilu va aparir ci.",
"status.redraft": "Deleter & redacter",
"status.remove_bookmark": "Remover marcator",
"status.replied_to": "Respondet a {name}",
@@ -664,21 +700,23 @@
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} persones}} durant li ultim {days, plural, one {die} other {{days} dies}}",
"trends.trending_now": "Actualmen populari",
"ui.beforeunload": "Tui Ãncomplet posta va esser perdit si tu lassa Mastodon.",
+ "units.short.billion": "{count}B",
+ "units.short.million": "{count}M",
+ "units.short.thousand": "{count}K",
"upload_area.title": "Trenar & lassar cader por cargar",
"upload_button.label": "Adjunter images, un video o un audio-file",
"upload_error.limit": "LÃmite de medie-cargationes transpassat.",
"upload_error.poll": "On ne es permisset cargar medie con balotationes.",
"upload_form.audio_description": "Descrir por persones qui es surd o ne audi bon",
"upload_form.description": "Descrir por persones qui es ciec o have mal vision",
- "upload_form.description_missing": "Null descrition adjuntet",
"upload_form.edit": "Redacter",
"upload_form.thumbnail": "Changear previsual image",
- "upload_form.undo": "Deleter",
"upload_form.video_description": "Descrir por persones qui es surd, ciec, ne audi bon, o have mal vision",
"upload_modal.analyzing_picture": "Analisant imageâĻ",
"upload_modal.apply": "Aplicar",
"upload_modal.applying": "AplicantâĻ",
"upload_modal.choose_image": "Selecter image",
+ "upload_modal.description_placeholder": "Li Europan lingues es membres del sam familie. Lor separat existentie es un mite",
"upload_modal.detect_text": "Detecter text del image",
"upload_modal.edit_media": "Redacter medie",
"upload_modal.hint": "Clicca o trena li circul por selecter li focal punctu quel va esser sempre visibil in omni previse-images.",
diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json
index c24d28eea..a4f726842 100644
--- a/app/javascript/mastodon/locales/ig.json
+++ b/app/javascript/mastodon/locales/ig.json
@@ -6,7 +6,6 @@
"account.follow": "Soro",
"account.followers": "Ndáģ na-eso",
"account.following": "Na-eso",
- "account.follows_you": "Na-eso gáģ",
"account.mute": "Mee ogbi @{name}",
"account.unfollow": "KwáģĨsáģ iso",
"account_note.placeholder": "Click to add a note",
@@ -108,8 +107,6 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "Adjust status privacy",
- "privacy.direct.short": "Direct",
- "privacy.private.short": "Followers-only",
"relative_time.full.just_now": "káģta",
"relative_time.just_now": "káģta",
"relative_time.today": "taa",
@@ -143,7 +140,6 @@
"trends.trending_now": "Na-ewu ewu káģta",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
- "upload_form.undo": "HichapáģĨ",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.choose_image": "Háģráģ onyonyo",
"upload_progress.label": "UploadingâĻ"
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index ba4440893..a9dd32c06 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -37,7 +37,6 @@
"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.go_to_profile": "Irez al profilo",
"account.hide_reblogs": "Celez repeti de @{name}",
"account.in_memoriam": "Memorige.",
@@ -87,7 +86,6 @@
"announcement.announcement": "Anunco",
"attachments_list.unprocessed": "(neprocedita)",
"audio.hide": "Celez audio",
- "autosuggest_hashtag.per_week": "{count} dum singla semano",
"boost_modal.combo": "Vu povas pulsar {combo} por omisar co venontafoye",
"bundle_column_error.copy_stacktrace": "Kopierorraporto",
"bundle_column_error.error.body": "La demandita pagino ne povas strukturigesar. Forsan ol esas eroro en kodexo hike o vidilkoncilieblesproblemo.",
@@ -144,22 +142,12 @@
"compose_form.lock_disclaimer": "Vua konto ne esas {locked}. Irgu povas sequar vu por vidar vua sequanto-nura posti.",
"compose_form.lock_disclaimer.lock": "klefagesas",
"compose_form.placeholder": "Quo esas en tua spirito?",
- "compose_form.poll.add_option": "Insertez selekto",
"compose_form.poll.duration": "Votpostoduro",
- "compose_form.poll.option_placeholder": "Selektato {number}",
- "compose_form.poll.remove_option": "Efacez ca selektajo",
"compose_form.poll.switch_to_multiple": "Chanjez votposto por permisar multiselektaji",
"compose_form.poll.switch_to_single": "Chanjez votposto por permisar una selektajo",
- "compose_form.publish": "Publikigez",
"compose_form.publish_form": "Publish",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Sparez chanji",
- "compose_form.sensitive.hide": "{count, plural,one {Markizez medii quale privata} other {Markizez medii quale privata}}",
- "compose_form.sensitive.marked": "{count, plural,one {Medii markizesis quale privata} other {Medii markizesis quale privata}}",
- "compose_form.sensitive.unmarked": "{count, plural,one {Medii ne markizesis quale privata} other {Medii ne markizesis quale privata}}",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
- "compose_form.spoiler_placeholder": "Averto di kontenajo",
"confirmation_modal.cancel": "Anulez",
"confirmations.block.block_and_report": "Restriktez e Raportizez",
"confirmations.block.confirm": "Restriktez",
@@ -406,7 +394,6 @@
"navigation_bar.direct": "Privata mencioni",
"navigation_bar.discover": "Deskovrez",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "Modifikar profilo",
"navigation_bar.explore": "Explorez",
"navigation_bar.favourites": "Favoriziti",
"navigation_bar.filters": "Silencigita vorti",
@@ -520,14 +507,7 @@
"poll_button.add_poll": "Insertez votposto",
"poll_button.remove_poll": "Efacez votposto",
"privacy.change": "Aranjar privateso di mesaji",
- "privacy.direct.long": "Sendar nur a mencionata uzeri",
- "privacy.direct.short": "Mencionita personi nur",
- "privacy.private.long": "Sendar nur a sequanti",
- "privacy.private.short": "Sequanti nur",
- "privacy.public.long": "Videbla da omnu",
"privacy.public.short": "Publike",
- "privacy.unlisted.long": "Videbla da omnu ma voluntala ne inkluzas deskovrotraiti",
- "privacy.unlisted.short": "Ne enlistigota",
"privacy_policy.last_updated": "Antea novajo ye {date}",
"privacy_policy.title": "Privatesguidilo",
"recommended": "Rekomendata",
@@ -709,10 +689,8 @@
"upload_error.poll": "Failadchargo ne permisesas kun votposti.",
"upload_form.audio_description": "Deskriptez por personi kun audnekapableso",
"upload_form.description": "Deskriptez por personi kun vidnekapableso",
- "upload_form.description_missing": "Deskriptajo ne insertesis",
"upload_form.edit": "Modifikez",
"upload_form.thumbnail": "Chanjez imajeto",
- "upload_form.undo": "Desfacar",
"upload_form.video_description": "Deskriptez por personi kun audnekapableso o vidnekapableso",
"upload_modal.analyzing_picture": "Analizas imajoâĻ",
"upload_modal.apply": "Aplikez",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 0df1a5e75..dfece102b 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Engar fÃĻrslur",
"account.featured_tags.title": "Myllumerki hjÃĄ {name} með aukið vÃĻgi",
"account.follow": "Fylgjast með",
+ "account.follow_back": "Fylgjast með til baka",
"account.followers": "Fylgjendur",
"account.followers.empty": "EnnÃžÃĄ fylgist enginn með Þessum notanda.",
"account.followers_counter": "{count, plural, one {Fylgjandi: {counter}} other {Fylgjendur: {counter}}}",
"account.following": "Fylgist með",
"account.following_counter": "{count, plural, one {Fylgist með: {counter}} other {Fylgist með: {counter}}}",
"account.follows.empty": "Ãessi notandi fylgist ennÃžÃĄ ekki með neinum.",
- "account.follows_you": "Fylgir ÞÊr",
"account.go_to_profile": "Fara à notandasnið",
"account.hide_reblogs": "Fela endurbirtingar fyrir @{name}",
"account.in_memoriam": "Minning.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Ãagga à tilkynningum",
"account.mute_short": "Ãagga niður",
"account.muted": "Ãaggaður",
+ "account.mutual": "Sameiginlegir",
"account.no_bio": "Engri lÃŊsingu Ãētvegað.",
"account.open_original_page": "Opna upprunalega sÃðu",
"account.posts": "FÃĻrslur",
@@ -88,7 +89,6 @@
"announcement.announcement": "AuglÃŊsing",
"attachments_list.unprocessed": "(Ãŗunnið)",
"audio.hide": "Fela hljÃŗð",
- "autosuggest_hashtag.per_week": "{count} ÃĄ viku",
"boost_modal.combo": "ÃÃē getur ÃŊtt ÃĄ {combo} til að sleppa Þessu nÃĻst",
"bundle_column_error.copy_stacktrace": "Afrita villuskÃŊrslu",
"bundle_column_error.error.body": "Umbeðna sÃðau var ekki hÃĻgt að myndgera. Ãað gÃĻti verið vegna villu à kÃŗðanum okkar eða vandamÃĄls með samhÃĻfni vafra.",
@@ -147,20 +147,20 @@
"compose_form.placeholder": "Hvað liggur ÞÊr ÃĄ hjarta?",
"compose_form.poll.add_option": "BÃĻta við valkosti",
"compose_form.poll.duration": "TÃmalengd kÃļnnunar",
+ "compose_form.poll.multiple": "Margir valkostir",
"compose_form.poll.option_placeholder": "Valkostur {number}",
"compose_form.poll.remove_option": "FjarlÃĻgja Þennan valkost",
+ "compose_form.poll.single": "Veldu eitt",
"compose_form.poll.switch_to_multiple": "Breyta kÃļnnun svo hÃĻgt sÊ að hafa marga valkosti",
"compose_form.poll.switch_to_single": "Breyta kÃļnnun svo hÃĻgt sÊ að hafa einn stakan valkost",
+ "compose_form.poll.type": "StÃll",
"compose_form.publish": "Birta",
"compose_form.publish_form": "Birta",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Vista breytingar",
- "compose_form.sensitive.hide": "{count, plural, one {Merkja mynd sem viðkvÃĻma} other {Merkja myndir sem viðkvÃĻmar}}",
- "compose_form.sensitive.marked": "{count, plural, one {Mynd er merkt sem viðkvÃĻm} other {Myndir eru merktar sem viðkvÃĻmar}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Mynd er ekki merkt sem viðkvÃĻm} other {Myndir eru ekki merktar sem viðkvÃĻmar}}",
+ "compose_form.reply": "Svara",
+ "compose_form.save_changes": "UppfÃĻra",
"compose_form.spoiler.marked": "FjarlÃĻgja aðvÃļrun vegna efnis",
"compose_form.spoiler.unmarked": "BÃĻta við aðvÃļrun vegna efnis",
- "compose_form.spoiler_placeholder": "Skrifaðu aðvÃļrunina ÞÃna hÊr",
+ "compose_form.spoiler_placeholder": "AðvÃļrun vegna efnis (valkvÃĻtt)",
"confirmation_modal.cancel": "HÃĻtta við",
"confirmations.block.block_and_report": "Ãtiloka og kÃĻra",
"confirmations.block.confirm": "Ãtiloka",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Einkaspjall",
"navigation_bar.discover": "UppgÃļtva",
"navigation_bar.domain_blocks": "Ãtilokuð lÊn",
- "navigation_bar.edit_profile": "Breyta notandasniði",
"navigation_bar.explore": "Kanna",
"navigation_bar.favourites": "EftirlÃĻti",
"navigation_bar.filters": "ÃÃļgguð orð",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "BÃĻta við kÃļnnun",
"poll_button.remove_poll": "FjarlÃĻgja kÃļnnun",
"privacy.change": "Aðlaga gagnaleynd fÃĻrslu",
- "privacy.direct.long": "Senda einungis ÃĄ notendur sem minnst er ÃĄ",
- "privacy.direct.short": "Aðeins fÃŗlk sem minnst er ÃĄ",
- "privacy.private.long": "Senda einungis ÃĄ fylgjendur",
- "privacy.private.short": "Einungis fylgjendur",
- "privacy.public.long": "SÃŊnilegt fyrir alla",
+ "privacy.direct.long": "Allir sem minnst er ÃĄ Ã fÃĻrslunni",
+ "privacy.direct.short": "Tilteknir aðilar",
+ "privacy.private.long": "Einungis Þeir sem fylgjast með ÞÊr",
+ "privacy.private.short": "Fylgjendur",
+ "privacy.public.long": "Hver sem er, ÃĄ og utan Mastodon",
"privacy.public.short": "Opinbert",
- "privacy.unlisted.long": "SÃŊnilegt Ãļllum, en ekki tekið með à uppgÃļtvunareiginleikum",
- "privacy.unlisted.short": "ÃskrÃĄÃ°",
+ "privacy.unlisted.additional": "Ãetta hegðar sÊr eins og opinber fÃĻrsla, fyrir utan að fÃĻrslan birtist ekki à beinum streymum eða myllumerkjum, nÊ heldur à Mastodon-leitum jafnvel ÞÃŗtt ÞÃē hafir valið að falla undir slÃkt à notandasniðinu ÞÃnu.",
+ "privacy.unlisted.long": "Minni stÃĻlar à reikniritum",
+ "privacy.unlisted.short": "HljÃŗðlÃĄtt opinbert",
"privacy_policy.last_updated": "SÃðast uppfÃĻrt {date}",
"privacy_policy.title": "PersÃŗnuverndarstefna",
"recommended": "MÃĻlt með",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}mÃn",
"relative_time.seconds": "{number}sek",
"relative_time.today": "Ã dag",
+ "reply_indicator.attachments": "{count, plural, one {# viðhengi} other {# viðhengi}}",
"reply_indicator.cancel": "HÃĻtta við",
+ "reply_indicator.poll": "KÃļnnun",
"report.block": "Ãtiloka",
"report.block_explanation": "ÃÃē munt ekki sjÃĄ fÃĻrslurnar Þeirra. Ãeir munu ekki geta sÊð fÃĻrslurnar ÞÃnar eða fylgst með ÞÊr. Ãeir munu ekki geta sÊð að lokað sÊ ÃĄ ÃžÃĄ.",
"report.categories.legal": "Lagalegt",
@@ -714,10 +716,8 @@
"upload_error.poll": "Innsending skrÃĄa er ekki leyfð à kÃļnnunum.",
"upload_form.audio_description": "LÃŊstu Þessu fyrir heyrnarskerta",
"upload_form.description": "LÃŊstu Þessu fyrir sjÃŗnskerta",
- "upload_form.description_missing": "Engri lÃŊsingu bÃĻtt við",
"upload_form.edit": "Breyta",
"upload_form.thumbnail": "Skipta um smÃĄmynd",
- "upload_form.undo": "Eyða",
"upload_form.video_description": "LÃŊstu Þessu fyrir fÃŗlk sem heyrir illa eða er með skerta sjÃŗn",
"upload_modal.analyzing_picture": "Greini myndâĻ",
"upload_modal.apply": "Virkja",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index fa659506a..920b80d5a 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Nessun post",
"account.featured_tags.title": "Hashtag in evidenza di {name}",
"account.follow": "Segui",
+ "account.follow_back": "Segui a tua volta",
"account.followers": "Follower",
"account.followers.empty": "Ancora nessuno segue questo utente.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}",
"account.following": "Seguiti",
"account.following_counter": "{count, plural, one {{counter} Seguiti} other {{counter} Seguiti}}",
"account.follows.empty": "Questo utente non segue ancora nessuno.",
- "account.follows_you": "Ti segue",
"account.go_to_profile": "Vai al profilo",
"account.hide_reblogs": "Nascondi potenziamenti da @{name}",
"account.in_memoriam": "In memoria.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silenzia notifiche",
"account.mute_short": "Silenzia",
"account.muted": "Mutato",
+ "account.mutual": "Reciproco",
"account.no_bio": "Nessuna descrizione fornita.",
"account.open_original_page": "Apri la pagina originale",
"account.posts": "Post",
@@ -88,7 +89,6 @@
"announcement.announcement": "Annuncio",
"attachments_list.unprocessed": "(non elaborato)",
"audio.hide": "Nascondi audio",
- "autosuggest_hashtag.per_week": "{count} a settimana",
"boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio, la prossima volta",
"bundle_column_error.copy_stacktrace": "Copia rapporto sull'errore",
"bundle_column_error.error.body": "Impossibile rendedrizzare la pagina richiesta. Potrebbe dipendere da un bug nel nostro codice o da un problema di compatibilità di un browser.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "Il tuo profilo non è {locked}. Chiunque puÃ˛ seguirti per visualizzare i tuoi post per soli seguaci.",
"compose_form.lock_disclaimer.lock": "bloccato",
"compose_form.placeholder": "Cos'hai in mente?",
- "compose_form.poll.add_option": "Aggiungi una scelta",
+ "compose_form.poll.add_option": "Aggiungi opzione",
"compose_form.poll.duration": "Durata del sondaggio",
- "compose_form.poll.option_placeholder": "Scelta {number}",
- "compose_form.poll.remove_option": "Rimuovi questa scelta",
+ "compose_form.poll.multiple": "Scelta multipla",
+ "compose_form.poll.option_placeholder": "Opzione {number}",
+ "compose_form.poll.remove_option": "Rimuovi questa opzione",
+ "compose_form.poll.single": "Scegli uno",
"compose_form.poll.switch_to_multiple": "Modifica il sondaggio per consentire scelte multiple",
"compose_form.poll.switch_to_single": "Modifica il sondaggio per consentire una singola scelta",
+ "compose_form.poll.type": "Stile",
"compose_form.publish": "Pubblica",
"compose_form.publish_form": "Nuovo post",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Salva le modifiche",
- "compose_form.sensitive.hide": "{count, plural, one {Segna media come sensibile} other {Segna media come sensibili}}",
- "compose_form.sensitive.marked": "{count, plural, one {Il media è contrassegnato come sensibile} other {I media sono contrassegnati come sensibili}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Il media non è contrassegnato come sensibile} other {I media non sono contrassegnati come sensibili}}",
+ "compose_form.reply": "Rispondi",
+ "compose_form.save_changes": "Aggiorna",
"compose_form.spoiler.marked": "Rimuovi l'avviso del contenuto",
"compose_form.spoiler.unmarked": "Aggiungi l'avviso del contenuto",
- "compose_form.spoiler_placeholder": "Scrivi qui il tuo avviso",
+ "compose_form.spoiler_placeholder": "Contenuto sensibile (facoltativo)",
"confirmation_modal.cancel": "Annulla",
"confirmations.block.block_and_report": "Blocca & Segnala",
"confirmations.block.confirm": "Blocca",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Menzioni private",
"navigation_bar.discover": "Scopri",
"navigation_bar.domain_blocks": "Domini bloccati",
- "navigation_bar.edit_profile": "Modifica il profilo",
"navigation_bar.explore": "Esplora",
"navigation_bar.favourites": "Preferiti",
"navigation_bar.filters": "Parole silenziate",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "Aggiungi un sondaggio",
"poll_button.remove_poll": "Rimuovi il sondaggio",
"privacy.change": "Modifica privacy del post",
- "privacy.direct.long": "Visibile solo per gli utenti menzionati",
- "privacy.direct.short": "Solo persone menzionate",
- "privacy.private.long": "Visibile solo ai seguaci",
- "privacy.private.short": "Solo seguaci",
- "privacy.public.long": "Visibile a tutti",
+ "privacy.direct.long": "Tutti quelli menzioniati nel post",
+ "privacy.direct.short": "Persone specifiche",
+ "privacy.private.long": "Solo i tuoi follower",
+ "privacy.private.short": "Follower",
+ "privacy.public.long": "Chiunque dentro e fuori Mastodon",
"privacy.public.short": "Pubblico",
- "privacy.unlisted.long": "Visibile a tutti, ma escluso dalle funzioni di scoperta",
- "privacy.unlisted.short": "Non elencato",
+ "privacy.unlisted.additional": "Si comporta esattamente come pubblico, tranne per il fatto che il post non verrà visualizzato nei feed live o negli hashtag, nell'esplorazione o nella ricerca Mastodon, anche se hai attivato l'attivazione a livello di account.",
+ "privacy.unlisted.long": "Meno fanfare algoritmiche",
+ "privacy.unlisted.short": "Pubblico silenzioso",
"privacy_policy.last_updated": "Ultimo aggiornamento {date}",
"privacy_policy.title": "Politica sulla Privacy",
"recommended": "Consigliato",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "oggi",
+ "reply_indicator.attachments": "{count, plural, one {# allegato} other {# allegati}}",
"reply_indicator.cancel": "Annulla",
+ "reply_indicator.poll": "Sondaggio",
"report.block": "Blocca",
"report.block_explanation": "Non visualizzerai i suoi post. Non potrà vedere i tuoi post o seguirti. Potrà sapere di esser stato bloccato.",
"report.categories.legal": "Informazioni legali",
@@ -714,10 +716,8 @@
"upload_error.poll": "Caricamento del file non consentito con i sondaggi.",
"upload_form.audio_description": "Descrizione per persone con deficit uditivi",
"upload_form.description": "Descrizione per ipovedenti",
- "upload_form.description_missing": "Nessuna descrizione aggiunta",
"upload_form.edit": "Modifica",
"upload_form.thumbnail": "Cambia la miniatura",
- "upload_form.undo": "Elimina",
"upload_form.video_description": "Descrizione per persone con deficit uditivi o ipovedenti",
"upload_modal.analyzing_picture": "Analizzando l'immagineâĻ",
"upload_modal.apply": "Applica",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index 5ad9d6dc9..e0cc96d57 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "æį¨ŋããããžãã",
"account.featured_tags.title": "{name}ãŽæŗ¨įŽãããˇãĨãŋã°",
"account.follow": "ããŠããŧ",
+ "account.follow_back": "ããŠããŧããã¯",
"account.followers": "ããŠãã¯ãŧ",
"account.followers.empty": "ãžã čĒ°ãããŠããŧããĻããžããã",
"account.followers_counter": "{counter} ããŠãã¯ãŧ",
"account.following": "ããŠããŧä¸",
"account.following_counter": "{counter} ããŠããŧ",
"account.follows.empty": "ãžã čĒ°ãããŠããŧããĻããžããã",
- "account.follows_you": "ããŠããŧãããĻããžã",
"account.go_to_profile": "ããããŖãŧãĢããŧã¸ã¸",
"account.hide_reblogs": "@{name}ãããããŽããŧãšããé襨į¤ē",
"account.in_memoriam": "æ
äēēãå˛ãã§ã",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "éįĨããĒããĢãã",
"account.mute_short": "ããĨãŧã",
"account.muted": "ããĨãŧãæ¸ãŋ",
+ "account.mutual": "į¸äēããŠããŧä¸",
"account.no_bio": "čĒŦæãæäžãããĻããžããã",
"account.open_original_page": "å
ãŽããŧã¸ãéã",
"account.posts": "æį¨ŋ",
@@ -88,7 +89,6 @@
"announcement.announcement": "ãįĨãã",
"attachments_list.unprocessed": "(æĒåĻį)",
"audio.hide": "éŗåŖ°ãéãã",
- "autosuggest_hashtag.per_week": "{count} å / éą",
"boost_modal.combo": "æŦĄããã¯{combo}ãæŧãã°ãšãããã§ããžã",
"bundle_column_error.copy_stacktrace": "ã¨ãŠãŧãŦããŧãããŗããŧ",
"bundle_column_error.error.body": "čĻæąãããããŧã¸ããŦãŗããĒãŗã°ã§ããžããã§ããããŗãŧããŽãã°ããžãã¯ããŠãĻãļãŽäēææ§ãŽåéĄãåå ã§ããå¯čŊæ§ããããžãã",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "ããĒããŽãĸãĢãĻãŗãã¯{locked}ãĢãĒãŖãĻããžãããčĒ°ã§ãããĒããããŠããŧãããã¨ãã§ããããŠãã¯ãŧéåŽãŽæį¨ŋãčĻããã¨ãã§ããžãã",
"compose_form.lock_disclaimer.lock": "æŋčĒåļ",
"compose_form.placeholder": "äģãĒãĢããĻãīŧ",
- "compose_form.poll.add_option": "čŋŊå ",
"compose_form.poll.duration": "ãĸãŗãąãŧãæé",
- "compose_form.poll.option_placeholder": "é
įŽ {number}",
- "compose_form.poll.remove_option": "ããŽé
įŽãåé¤",
"compose_form.poll.switch_to_multiple": "č¤æ°é¸æãĢå¤æ´",
"compose_form.poll.switch_to_single": "åä¸é¸æãĢå¤æ´",
- "compose_form.publish": "æį¨ŋ",
"compose_form.publish_form": "æį¨ŋ",
- "compose_form.publish_loud": "{publish}īŧ",
- "compose_form.save_changes": "å¤æ´ãäŋå",
- "compose_form.sensitive.hide": "ãĄããŖãĸãé˛čĻ§æŗ¨æãĢãã",
- "compose_form.sensitive.marked": "ãĄããŖãĸãĢé˛čĻ§æŗ¨æãč¨åŽãããĻããžã",
- "compose_form.sensitive.unmarked": "ãĄããŖãĸãĢé˛čĻ§æŗ¨æãč¨åŽãããĻããžãã",
"compose_form.spoiler.marked": "æŦæã¯čĻåãŽåžããĢé ãããžã",
"compose_form.spoiler.unmarked": "æŦæã¯é ãããĻããžãã",
- "compose_form.spoiler_placeholder": "ãããĢčĻåãæ¸ããĻãã ãã",
"confirmation_modal.cancel": "ããŖãŗãģãĢ",
"confirmations.block.block_and_report": "ãããã¯ãéå ą",
"confirmations.block.confirm": "ãããã¯",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "éå
ŦéãŽčŋäŋĄ",
"navigation_bar.discover": "čĻã¤ãã",
"navigation_bar.domain_blocks": "ãããã¯ããããĄã¤ãŗ",
- "navigation_bar.edit_profile": "ããããŖãŧãĢãįˇ¨é",
"navigation_bar.explore": "æĸį´ĸãã",
"navigation_bar.favourites": "ãæ°ãĢå
Ĩã",
"navigation_bar.filters": "ããŖãĢãŋãŧč¨åŽ",
@@ -487,7 +476,7 @@
"onboarding.profile.display_name_hint": "ããĢããŧã ããããã¯éĸįŊãååãĒãŠ",
"onboarding.profile.lead": "ãã¨ã§ãã¤ã§ãäŋŽæŖã§ããžãããč¨åŽįģéĸãĢã¯ããäģĨå¤ãŽãĢãšãŋãã¤ãēé
įŽããããžãã",
"onboarding.profile.note": "čĒåˇąį´šäģ",
- "onboarding.profile.note_hint": "ãģããŽäēēãĢ @č¨å ãããã#ãããˇãĨãŋã° ãäģãããã§ããžã",
+ "onboarding.profile.note_hint": "ãģããŽãĻãŧãļãŧã¸ãŽãĄãŗãˇã§ãŗ (@mention) ãã #ãããˇãĨãŋã° ãäŊŋį¨ã§ããžã",
"onboarding.profile.save_and_continue": "äŋåããĻįļãã",
"onboarding.profile.title": "ããããŖãŧãĢãŽč¨åŽ",
"onboarding.profile.upload_avatar": "ããããŖãŧãĢįģåããĸããããŧã",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "ãĸãŗãąãŧããčŋŊå ",
"poll_button.remove_poll": "ãĸãŗãąãŧããåé¤",
"privacy.change": "å
Ŧéį¯å˛ãå¤æ´",
- "privacy.direct.long": "æåŽãããį¸æãŽãŋé˛čĻ§å¯",
- "privacy.direct.short": "æåŽãããį¸æãŽãŋ",
- "privacy.private.long": "ããŠãã¯ãŧãŽãŋé˛čĻ§å¯",
- "privacy.private.short": "ããŠãã¯ãŧãŽãŋ",
- "privacy.public.long": "čĒ°ã§ãé˛čĻ§å¯",
"privacy.public.short": "å
Ŧé",
- "privacy.unlisted.long": "čĒ°ã§ãé˛čĻ§å¯ããĩã¤ãŦãŗã",
- "privacy.unlisted.short": "éåčŧ",
"privacy_policy.last_updated": "{date}ãĢæ´æ°",
"privacy_policy.title": "ããŠã¤ããˇãŧããĒãˇãŧ",
"recommended": "ãããã",
@@ -714,10 +696,8 @@
"upload_error.poll": "ãĸãŗãąãŧãã§ã¯ããĄã¤ãĢããĸããããŧãã§ããžããã",
"upload_form.audio_description": "č´ãåããéŖãããĻãŧãļãŧã¸ãŽčĒŦæ",
"upload_form.description": "čĻčĻįãĢé˛čĻ§ãéŖãããĻãŧãļãŧã¸ãŽčĒŦæ",
- "upload_form.description_missing": "čĒŦæãčŋŊå ããĻããžãã",
"upload_form.edit": "įˇ¨é",
"upload_form.thumbnail": "ãĩã ãã¤ãĢãå¤æ´",
- "upload_form.undo": "åé¤",
"upload_form.video_description": "č´ãåããčĻčĻįãĢé˛čĻ§ãéŖãããĻãŧãļãŧã¸ãŽčĒŦæ",
"upload_modal.analyzing_picture": "įģåãč§Ŗæä¸âĻ",
"upload_modal.apply": "éŠį¨",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 875ac3c19..8628cb38a 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -15,7 +15,6 @@
"account.featured_tags.last_status_never": "áááĄáĸááá áá áá ááĄ",
"account.follow": "ááá§ááá",
"account.followers": "ááááááá ááá",
- "account.follows_you": "áááá§ááááá",
"account.hide_reblogs": "áááááááᥠááŖáĄáĸááá @{name}-áĄááá",
"account.media": "ááááá",
"account.mention": "ááĄááŽáááá @{name}",
@@ -37,7 +36,6 @@
"admin.dashboard.retention.cohort_size": "ááŽááá ááááŽááá ááááá",
"alert.unexpected.message": "áŦáá áááá¨áá áááŖááááááá á¨ááĒáááá.",
"alert.unexpected.title": "áŖááĄ!",
- "autosuggest_hashtag.per_week": "áááá áá¨á {count}",
"boost_modal.combo": "á¨ááááĢáááá áááááá áá {combo}-ᥠá ááá á¨ááááá á¯áá áá áááááĸáááá ááĄ",
"bundle_column_error.retry": "áĄáĒáááá ááááá áá ááŽáá",
"bundle_modal_error.close": "áááŽáŖá áá",
@@ -69,11 +67,8 @@
"compose_form.lock_disclaimer.lock": "áŠááááĸááá",
"compose_form.placeholder": "á ááá á¤ááĨá áá?",
"compose_form.publish_form": "Publish",
- "compose_form.sensitive.marked": "ááááá ááááá¨ááŖááá ááá áĢáááááá áá",
- "compose_form.sensitive.unmarked": "ááááá áá áá ááááá¨ááŖáá ááá áĢáááááá áá",
"compose_form.spoiler.marked": "ááá¤á ááŽáááááᥠáŖááá áĸááĨáĄáĸá ááááááŖááá",
"compose_form.spoiler.unmarked": "áĸááĨáĄáĸá áá áá ááááááŖáá",
- "compose_form.spoiler_placeholder": "ááĨáááá ááá¤á ááŽááááá áááŦáá áá ááĨ",
"confirmation_modal.cancel": "áŖáá á§áá¤á",
"confirmations.block.confirm": "ááááá",
"confirmations.block.message": "ááá áŦááŖááááŖáá áŽáá á, ááĄáŖá á áááááááá {name}?",
@@ -172,7 +167,6 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.discover": "ááĻááááŠááá",
"navigation_bar.domain_blocks": "ááááááŖáá áááááááá",
- "navigation_bar.edit_profile": "á¨ááĒáááá áá áá¤ááá",
"navigation_bar.filters": "áááŠáŖááááŖáá áĄááĸá§áááá",
"navigation_bar.follow_requests": "áááááááááᥠááááŽáááááá",
"navigation_bar.lists": "áĄáááá",
@@ -212,12 +206,7 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "áĄáĸááĸáŖáĄáᥠáááá¤áááááĒááááŖá áááᥠáááááááá",
- "privacy.direct.long": "ááááááĄáĸáᥠááŽáááá áááĄááŽáááááŖá ááááŽááá áááááááá",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "ááááááĄáĸáᥠááŽáááá ááááááá ááááá",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "áĄáá¯áá á",
- "privacy.unlisted.short": "áŠááááŖáááááá",
"regeneration_indicator.label": "ááĸááá ááááâĻ",
"regeneration_indicator.sublabel": "ááĨáááá áĄááŽááᥠááááĸá áááááááá!",
"relative_time.days": "{number}ááĻ",
@@ -280,7 +269,6 @@
"upload_button.label": "áááááᥠáááááĸááá",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "ááĻáŦáá ááááá ááááŖáááŖá áá áŖá¤ááĄáŖá ááĄááááĄ",
- "upload_form.undo": "áááŖáĨáááá",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_progress.label": "ááĸááá áááá...",
"video.close": "áááááᥠáááŽáŖá áá",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index e9d4b57de..d9388c704 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -22,7 +22,6 @@
"account.followers_counter": "{count, plural, one {{count} n umeá¸far} other {{count} n imeá¸faren}}",
"account.following_counter": "{count, plural, one {{counter} yettwaá¸faren} other {{counter} yettwaá¸faren}}",
"account.follows.empty": "Ar tura, amseqdac-agi ur yeášášafaáš yiwen.",
- "account.follows_you": "Yeášášafaáš-ik",
"account.hide_reblogs": "Ffer ayen i ibeášášu @{name}",
"account.link_verified_on": "TaÉŖara n useÉŖwen-a tettwasenqed ass n {date}",
"account.locked_info": "Amiá¸an-agi uslig isekweáš. D bab-is kan i izemren ad yeĮ§Į§, s ufus-is, win ara t-iá¸efášen.",
@@ -54,7 +53,6 @@
"alert.unexpected.title": "Ayhuh!",
"announcement.announcement": "UlÉŖu",
"audio.hide": "Ffer amesli",
- "autosuggest_hashtag.per_week": "{count} i yimalas",
"boost_modal.combo": "TzemreḠad tetekkiḠÉŖef {combo} akken ad tessurfeḠaya tikelt-nniá¸en",
"bundle_column_error.copy_stacktrace": "NÉŖel tuccá¸a n uneqqis",
"bundle_column_error.error.title": "Uh, ala !",
@@ -100,20 +98,10 @@
"compose_form.lock_disclaimer": "Amiá¸an-ik¡im ur yelli ara {locked}. Menwala yezmer ad k¡kem-yeá¸feáš akken ad iáēer acu tbeášášuḠakked yimeá¸faášen-ik¡im.",
"compose_form.lock_disclaimer.lock": "yettwacekkel",
"compose_form.placeholder": "D acu i itezzin deg wallaÉŖ?",
- "compose_form.poll.add_option": "Rnu afran",
"compose_form.poll.duration": "Tanzagt n tefrant",
- "compose_form.poll.option_placeholder": "Afran {number}",
- "compose_form.poll.remove_option": "SfeḠafran-agi",
- "compose_form.publish": "SuffeÉŖ",
"compose_form.publish_form": "SuffeÉŖ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Sekles ibeddilen",
- "compose_form.sensitive.hide": "CreḠallal n teywalt d anafri",
- "compose_form.sensitive.marked": "Allal n teywalt yettwacreḠd anafri",
- "compose_form.sensitive.unmarked": "{count, plural, one {Amidya ur yettwacreḠara d anafri} other {Imidyaten ur ttwacreá¸en ara d inafriyen}}",
"compose_form.spoiler.marked": "Kkes aá¸ris yettwaffren deffir n walÉŖu",
"compose_form.spoiler.unmarked": "Rnu aá¸ris yettwaffren deffir n walÉŖu",
- "compose_form.spoiler_placeholder": "Aru alÉŖu-inek¡inem da",
"confirmation_modal.cancel": "Sefsex",
"confirmations.block.block_and_report": "Sewá¸Ĩel & sewÉed",
"confirmations.block.confirm": "Sewá¸Ĩel",
@@ -285,7 +273,6 @@
"navigation_bar.compose": "Aru tajewwiqt tamaynut",
"navigation_bar.discover": "áēer",
"navigation_bar.domain_blocks": "TiÉŖula yeffren",
- "navigation_bar.edit_profile": "áēreg amaÉŖnu",
"navigation_bar.explore": "Snirem",
"navigation_bar.favourites": "Imenyafen",
"navigation_bar.filters": "Awalen i yettwasgugmen",
@@ -360,12 +347,7 @@
"poll_button.add_poll": "Rnu asenqed",
"poll_button.remove_poll": "Kkes asenqed",
"privacy.change": "Seggem tabaá¸nit n yizen",
- "privacy.direct.long": "Bá¸u gar yimseqdacen i tbedreḠkan",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Bá¸u i yimeá¸faášen-ik kan",
- "privacy.private.short": "Imeá¸faášen kan",
"privacy.public.short": "Azayez",
- "privacy.unlisted.short": "War tabdert",
"privacy_policy.title": "Tasertit tabaá¸nit",
"refresh": "Smiren",
"regeneration_indicator.label": "Yessalay-dâĻ",
@@ -473,7 +455,6 @@
"upload_form.description": "Glem-d i yemdaneni yesÉan ugur deg yiáēri",
"upload_form.edit": "áēreg",
"upload_form.thumbnail": "Beddel tugna",
- "upload_form.undo": "Kkes",
"upload_form.video_description": "Glem-d i yemdanen i yesÉan ugur deg tmesliwt neÉŖ deg yiáēri",
"upload_modal.analyzing_picture": "Tasleá¸t n tugna tettedduâĻ",
"upload_modal.apply": "Snes",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index 189d792e3..1f6cc78a5 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -17,6 +17,7 @@
"account.badges.group": "ĐĸĐžĐŋ",
"account.block": "@{name} Đ´ĐĩĐŗĐĩĐŊĐ´Ņ ĐąŌąŌĐ°ŅŅĐ°Ņ",
"account.block_domain": "{domain} Đ´ĐžĐŧĐĩĐŊŅĐŊ ĐąŌąŌĐ°ŅŅĐ°Ņ",
+ "account.block_short": "ĐŌąŌĐ°ŅŅĐ°Ņ",
"account.blocked": "ĐŌąŌĐ°ŅŅĐ°ĐģŌĐ°ĐŊ",
"account.browse_more_on_origin_server": "ĐĐ°ŅŅĐ°ĐŋŌŅ ĐŋŅĐžŅиĐģŅĐ´ĐĩĐŊ ŅĐžĐģŅ",
"account.cancel_follow_request": "Withdraw follow request",
@@ -34,7 +35,6 @@
"account.following": "ĐаСŅĐģŅĐŧ",
"account.following_counter": "{count, plural, one {{counter} ĐļаСŅĐģŅĐŧ} other {{counter} ĐļаСŅĐģŅĐŧ}}",
"account.follows.empty": "ĐŌąĐģ ŌĐžĐģĐ´Đ°ĐŊŅŅŅ ĶĐģŅ ĐĩŅĐēŅĐŧĐŗĐĩ ĐļаСŅĐģĐŧĐ°ŌĐ°ĐŊ.",
- "account.follows_you": "ĐĄŅСĐŗĐĩ ĐļаСŅĐģŌĐ°ĐŊ",
"account.go_to_profile": "ĐŅĐžŅиĐģŅĐŊĐĩ ĶŠŅŅ",
"account.hide_reblogs": "@{name} ĐąŅŅŅĐ°ŅŅĐŊ ĐļĐ°ŅŅŅŅ",
"account.joined_short": "ŌĐžŅŅĐģŌĐ°ĐŊ",
@@ -64,7 +64,6 @@
"alert.unexpected.message": "ĐŅŅ ĐŊĶŅŅĐĩ Đ´ŌąŅŅŅ йОĐģĐŧĐ°Đ´Ņ.",
"alert.unexpected.title": "Ķ¨Đš!",
"announcement.announcement": "ĐĨайаŅĐģĐ°ĐŊĐ´ŅŅŅ",
- "autosuggest_hashtag.per_week": "{count} Đ°ĐŋŅĐ°ŅŅĐŊĐ°",
"boost_modal.combo": "ĐĐĩĐģĐĩŅŅĐ´Đĩ ĶŠŅĐēŅСŅĐŋ ĐļŅĐąĐĩŅŅ Ō¯ŅŅĐŊ йаŅŅŌŖŅС {combo}",
"bundle_column_error.retry": "ŌĐ°ĐšŅĐ°Đ´Đ°ĐŊ ĐēĶŠŅŅŌŖŅС",
"bundle_modal_error.close": "ĐĐ°ĐąŅ",
@@ -99,19 +98,12 @@
"compose_form.lock_disclaimer": "ĐĐēĐēĐ°ŅĐŊŅŅŌŖŅС {locked} ĐĩĐŧĐĩŅ. ĐĐĩС ĐēĐĩĐģĐŗĐĩĐŊ Đ°Đ´Đ°Đŧ ĐļаСŅĐģŅĐŋ, ŅŅСдŅ ĐžŌи Đ°ĐģĐ°Đ´Ņ.",
"compose_form.lock_disclaimer.lock": "ĐļĐ°ĐąŅŌ",
"compose_form.placeholder": "ĐĐĩ ĐąĶŠĐģŅŅĐēŅŌŖŅС ĐēĐĩĐģĐĩĐ´Ņ?",
- "compose_form.poll.add_option": "ĐĐ°ŅĐ°Đŋ ŌĐžŅ",
"compose_form.poll.duration": "ĐĄĐ°ŅĐ°ĐģĐŊĐ°ĐŧĐ° ĐŧĐĩŅСŅĐŧŅ",
- "compose_form.poll.option_placeholder": "ĐĐ°ŅĐ°Đŋ {number}",
- "compose_form.poll.remove_option": "ĐŌąĐģ ĐļĐ°ŅĐ°ĐŋŅŅ ĶŠŅŅŅ",
"compose_form.poll.switch_to_multiple": "ĐŅŅĐŊĐĩŅĐĩ ĐļĐ°ŅĐ°Đŋ ŅĐ°ŌŖĐ´Đ°ĐšŅŅĐŊĐ´Đ°Đš ŌŅĐģŅ",
"compose_form.poll.switch_to_single": "ĐĸĐĩĐē ĐąŅŅ ĐļĐ°ŅĐ°Đŋ ŅĐ°ŌŖĐ´Đ°ĐšŅŅĐŊĐ´Đ°Đš ŌŅĐģŅ",
"compose_form.publish_form": "Publish",
- "compose_form.sensitive.hide": "ĐĄĐĩСŅĐŧŅĐ°Đģ ŅĐĩŅŅĐŊĐ´Đĩ ĐąĐĩĐģĐŗŅĐģĐĩ",
- "compose_form.sensitive.marked": "ĐĐĩдиа ĐŊĶСŅĐē Đ´ĐĩĐŋ ĐąĐĩĐģĐŗŅĐģĐĩĐŊĐŗĐĩĐŊ",
- "compose_form.sensitive.unmarked": "ĐĐĩдиа ĐŊĶСŅĐē Đ´ĐĩĐŋ ĐąĐĩĐģĐŗŅĐģĐĩĐŊĐąĐĩĐŗĐĩĐŊ",
"compose_form.spoiler.marked": "ĐĶŅŅĐŊ ĐĩŅĐēĐĩŅŅŅĐŧĐĩĐŊ ĐļĐ°ŅŅŅŅĐģŌĐ°ĐŊ",
"compose_form.spoiler.unmarked": "ĐĶŅŅĐŊ ĐļĐ°ŅŅŅŅĐģĐŧĐ°ŌĐ°ĐŊ",
- "compose_form.spoiler_placeholder": "ĐŅĐēĐĩŅŅŅŅŌŖŅСдŅ ĐžŅŅĐŊĐ´Đ° ĐļаСŅŌŖŅС",
"confirmation_modal.cancel": "ŌĐ°ĐšŅŅĐŋ Đ°ĐģŅ",
"confirmations.block.block_and_report": "ĐĐģĐžĐē ĐļĶĐŊĐĩ ШаŌŅĐŧ",
"confirmations.block.confirm": "ĐŌąŌĐ°ŅŅĐ°Ņ",
@@ -250,7 +242,6 @@
"navigation_bar.compose": "ĐĐ°ŌŖĐ° ĐļаСйа йаŅŅĐ°Ņ",
"navigation_bar.discover": "ŅĐ°ŅĐģĐ°Ņ",
"navigation_bar.domain_blocks": "ĐĐ°ĐąŅŌ Đ´ĐžĐŧĐĩĐŊĐ´ĐĩŅ",
- "navigation_bar.edit_profile": "ĐŅĐžŅиĐģŅ ŅŌ¯ĐˇĐĩŅŅ",
"navigation_bar.filters": "ŌŽĐŊŅŅС ŅĶŠĐˇĐ´ĐĩŅ",
"navigation_bar.follow_requests": "ĐаСŅĐģŅŌĐ° ŅŌąŅĐ°ĐŊŌĐ°ĐŊĐ´Đ°Ņ",
"navigation_bar.follows_and_followers": "ĐаСŅĐģŅĐŧĐ´Đ°Ņ ĐļĶĐŊĐĩ ĐžŌŅŅĐŧĐ°ĐŊĐ´Đ°Ņ",
@@ -311,12 +302,7 @@
"poll_button.add_poll": "ĐĄĐ°ŅĐ°ĐģĐŊĐ°ĐŧĐ° ŌĐžŅŅ",
"poll_button.remove_poll": "ĐĄĐ°ŅĐ°ĐģĐŊĐ°ĐŧĐ°ĐŊŅ ĶŠŅŅŅŅ",
"privacy.change": "ŌŌąĐŋиŅĐģŅĐģŅŌŅŅ ŅĐĩŅŅĐĩŅ",
- "privacy.direct.long": "ĐŅĐ°ĐģŌĐ°ĐŊ Đ°Đ´Đ°ĐŧĐ´Đ°ŅŌĐ° ŌĐ°ĐŊĐ° ĐēĶŠŅŅĐŊĐĩŅŅĐŊ ĐļаСйа",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "ĐĸĐĩĐē ĐžŌŅŅĐŧĐ°ĐŊĐ´Đ°ŅŌĐ° Đ°ŅĐŊĐ°ĐģŌĐ°ĐŊ ĐļаСйа",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "ĐŅŅŌ",
- "privacy.unlisted.short": "ĐĸŅСŅĐŧŅŅС",
"refresh": "ĐĐ°ŌŖĐ°ŅŅŅ",
"regeneration_indicator.label": "ĐŌ¯ĐēŅĐĩŅâĻ",
"regeneration_indicator.sublabel": "ĐĐĩŅĐŗŅĐģŅĐēŅŅ ĐļĐĩĐģŅ ŌŌąŅŅĐģŅĐ´Đ°!",
@@ -399,7 +385,6 @@
"upload_form.description": "ĐĶŠŅŅ ŌĐ°ĐąŅĐģĐĩŅŅ ĐŊĐ°ŅĐ°Ņ Đ°Đ´Đ°ĐŧĐ´Đ°Ņ Ō¯ŅŅĐŊ ŅиĐŋĐ°ŅŅĐ°ŌŖŅС",
"upload_form.edit": "ĐĸŌ¯ĐˇĐĩŅŅ",
"upload_form.thumbnail": "ĐĄŅŅĐĩŅŅŅ ĶŠĐˇĐŗĐĩŅŅŅ",
- "upload_form.undo": "Ķ¨ŅŅŅŅ",
"upload_form.video_description": "ĐŅŅŅ ĐŊĐĩĐŧĐĩŅĐĩ ĐēĶŠŅŅ ŌĐ°ĐąŅĐģĐĩŅŅ ĐŊĐ°ŅĐ°Ņ Đ°Đ´Đ°ĐŧĐ´Đ°ŅŌĐ° ŅиĐŋĐ°ŅŅĐ°ĐŧĐ° ĐąĐĩŅŅŌŖŅС",
"upload_modal.analyzing_picture": "ĐĄŅŅĐĩŅŅŅ Đ°ĐŊĐ°ĐģиС ĐļĐ°ŅĐ°ŅâĻ",
"upload_modal.apply": "ŌĐžĐģĐ´Đ°ĐŊŅ",
diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json
index 473690070..396aebbdf 100644
--- a/app/javascript/mastodon/locales/kn.json
+++ b/app/javascript/mastodon/locales/kn.json
@@ -91,10 +91,6 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "Adjust status privacy",
- "privacy.direct.long": "Post to mentioned users only",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
- "privacy.private.short": "Followers-only",
"report.placeholder": "Type or paste additional comments",
"report.submit": "Submit report",
"report.target": "Report {target}",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 4606916c1..eae7f8fae 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "ę˛ėëŦŧ ėė",
"account.featured_tags.title": "{name} ëė ėļė˛ í´ėí꡸",
"account.follow": "íëĄė°",
+ "account.follow_back": "ë§íëĄė°",
"account.followers": "íëĄė",
"account.followers.empty": "ėė§ ėëŦ´ë ė´ ėŦėŠėëĨŧ íëĄė°íęŗ ėė§ ėėĩëë¤.",
"account.followers_counter": "{counter} íëĄė",
"account.following": "íëĄė",
"account.following_counter": "{counter} íëĄė",
"account.follows.empty": "ė´ ėŦėŠėë ėė§ ėëŦ´ë íëĄė°íęŗ ėė§ ėėĩëë¤.",
- "account.follows_you": "ëëĨŧ íëĄė°íŠëë¤",
"account.go_to_profile": "íëĄíëĄ ė´ë",
"account.hide_reblogs": "@{name}ė ëļė¤í¸ëĨŧ ė¨ę¸°ę¸°",
"account.in_memoriam": "ęŗ ė¸ė ęŗė ė
ëë¤.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ėëĻŧ 뎤í¸",
"account.mute_short": "뎤í¸",
"account.muted": "뎤í¸ë¨",
+ "account.mutual": "ėí¸ íëĄė°",
"account.no_bio": "ė ęŗĩë ė¤ëĒ
ė´ ėėĩëë¤.",
"account.open_original_page": "ėëŗ¸ íė´ė§ ė´ę¸°",
"account.posts": "ę˛ėëŦŧ",
@@ -67,7 +68,7 @@
"account.unblock_domain": "ëëŠė¸ {domain} ė°¨ë¨ í´ė ",
"account.unblock_short": "ė°¨ë¨ í´ė ",
"account.unendorse": "íëĄíė ėļė˛íė§ ė기",
- "account.unfollow": "íëĄė° í´ė ",
+ "account.unfollow": "ė¸íëĄė°",
"account.unmute": "@{name} ëŽ¤í¸ í´ė ",
"account.unmute_notifications_short": "ėëĻŧ ëŽ¤í¸ í´ė ",
"account.unmute_short": "ëŽ¤í¸ í´ė ",
@@ -88,7 +89,6 @@
"announcement.announcement": "ęŗĩė§ėŦí",
"attachments_list.unprocessed": "(ė˛ëĻŦ ė ë¨)",
"audio.hide": "ėëĻŦ ė¨ę¸°ę¸°",
- "autosuggest_hashtag.per_week": "ėŖŧę° {count}í",
"boost_modal.combo": "ë¤ėė {combo}ëĨŧ ëëŦė ė´ ęŗŧė ė ęą´ëë¸ ė ėėĩëë¤",
"bundle_column_error.copy_stacktrace": "ėëŦ ëĻŦíŦí¸ ëŗĩėŦí기",
"bundle_column_error.error.body": "ėė˛í íė´ė§ëĨŧ ë ëë§ í ė ėėĩëë¤. ė íŦė ėŊëė ë˛ęˇ¸ę° ėęą°ë, ë¸ëŧė°ė í¸íėą ëŦ¸ė ėŧ ė ėėĩëë¤.",
@@ -147,20 +147,20 @@
"compose_form.placeholder": "ė§ę¸ ëŦ´ė¨ ėę°ė íęŗ ėëė?",
"compose_form.poll.add_option": "íëĒŠ ėļę°",
"compose_form.poll.duration": "íŦí 기ę°",
- "compose_form.poll.option_placeholder": "{number}ë˛ íëĒŠ",
+ "compose_form.poll.multiple": "ë¤ė¤ ė í",
+ "compose_form.poll.option_placeholder": "{option}ë˛ė§¸ íëĒŠ",
"compose_form.poll.remove_option": "ė´ íëĒŠ ėė ",
+ "compose_form.poll.single": "ë¨ėŧ ė í",
"compose_form.poll.switch_to_multiple": "ë¤ė¤ ė íė´ ę°ëĨí íŦíëĄ ëŗę˛Ŋ",
"compose_form.poll.switch_to_single": "ë¨ėŧ ė í íŦíëĄ ëŗę˛Ŋ",
+ "compose_form.poll.type": "íė",
"compose_form.publish": "ę˛ė",
"compose_form.publish_form": "ė ę˛ėëŦŧ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ëŗę˛ŊėŦí ė ėĨ",
- "compose_form.sensitive.hide": "미ëė´ëĨŧ ë¯ŧę°í¨ėŧëĄ ė¤ė í기",
- "compose_form.sensitive.marked": "미ëė´ę° ė´ëėŖŧėëĄ ė¤ė ëė´ ėėĩëë¤",
- "compose_form.sensitive.unmarked": "미ëė´ę° ė´ëėŖŧėëĄ ė¤ė ëė´ ėė§ ėėĩëë¤",
+ "compose_form.reply": "ëĩėĨ",
+ "compose_form.save_changes": "ėė ",
"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": "ė°¨ë¨",
@@ -239,7 +239,7 @@
"empty_column.follow_requests": "ėė§ íëĄė° ėė˛ė´ ėėĩëë¤. ėė˛ė ë°ėė ë ėŦ기ė ëíëŠëë¤.",
"empty_column.followed_tags": "ėė§ ėëŦ´ í´ėí꡸ë íëĄė°íęŗ ėė§ ėėĩëë¤. í´ėí꡸ëĨŧ íëĄė°í늴, ėŦ기ė íėëŠëë¤.",
"empty_column.hashtag": "ė´ í´ėí꡸ë ėė§ ėŦėŠëė§ ėėėĩëë¤.",
- "empty_column.home": "ëšė ė í íėëŧė¸ė ëšė´ėėĩëë¤! ë ë§ė ėŦëė íëĄė°íėŦ ėąėëŗ´ė¸ė. {suggestions}",
+ "empty_column.home": "ëšė ė í íėëŧė¸ė ëšė´ėėĩëë¤! ë ë§ė ėŦëė íëĄė°íėŦ ėąėëŗ´ė¸ė.",
"empty_column.list": "ëĻŦė¤í¸ė ėė§ ėëŦ´ę˛ë ėėĩëë¤. ëĻŦė¤í¸ė ëęĩ°ę°ę° ę˛ėëŦŧė ėŦëĻŦ늴 ėŦ기ė ëíëŠëë¤.",
"empty_column.lists": "ėė§ ëĻŦė¤í¸ę° ėėĩëë¤. ëĻŦė¤í¸ëĨŧ ë§ë¤ëŠ´ ėŦ기ė ëíëŠëë¤.",
"empty_column.mutes": "ėė§ ėëŦ´ë 뎤í¸íė§ ėėėĩëë¤.",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "ę°ė¸ė ė¸ ëŠė
",
"navigation_bar.discover": "ë°ę˛Ŧí기",
"navigation_bar.domain_blocks": "ė°¨ë¨í ëëŠė¸",
- "navigation_bar.edit_profile": "íëĄí ėė ",
"navigation_bar.explore": "ëëŦëŗ´ę¸°",
"navigation_bar.favourites": "ėĸėė",
"navigation_bar.filters": "뎤í¸í ë¨ė´",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "ė¤ëŦ¸ ėļę°",
"poll_button.remove_poll": "ė¤ëŦ¸ ė ęą°",
"privacy.change": "ę˛ėëŦŧė íëŧė´ë˛ė ė¤ė ė ëŗę˛Ŋ",
- "privacy.direct.long": "ė¸ę¸ë ėŦėŠėë§ ëŗŧ ė ėė",
- "privacy.direct.short": "ëŠė
í ėŦëë¤ë§",
- "privacy.private.long": "íëĄėėę˛ë§ ęŗĩę°",
- "privacy.private.short": "íëĄė ė ėŠ",
- "privacy.public.long": "ëĒ¨ëę° ëŗŧ ė ėė",
+ "privacy.direct.long": "ė´ ę˛ėëŦŧėė ė¸ę¸ë ëĒ¨ë",
+ "privacy.direct.short": "íšė ė¸ëŦŧ",
+ "privacy.private.long": "ë´ íëĄėë¤ėę˛ë§",
+ "privacy.private.short": "íëĄė",
+ "privacy.public.long": "ë§ė¤í ë ë´ė¸ ëĒ¨ë",
"privacy.public.short": "ęŗĩę°",
- "privacy.unlisted.long": "ëĒ¨ëę° ëŗŧ ė ėė§ë§, ë°ę˛Ŧí기 기ëĨėėë ė ė¸ë¨",
- "privacy.unlisted.short": "미ëąėŦ",
+ "privacy.unlisted.additional": "ęŗĩę°ė ëę°ė§ë§ ę˛ėëŦŧė´ ëŧė´ë¸ íŧëë í´ėí꡸, ë°ę˛Ŧí기, (ęŗė ė¤ė ėė íėŠíëëŧë) ë§ė¤í ë ę˛ėėė ė ė¸ëŠëë¤.",
+ "privacy.unlisted.long": "ë ė ė ėęŗ ëĻŦėĻ íĄíë ",
+ "privacy.unlisted.short": "ėĄ°ėŠí ęŗĩę°",
"privacy_policy.last_updated": "{date}ė ë§ė§ë§ėŧëĄ ė
ë°ė´í¸ë¨",
"privacy_policy.title": "ę°ė¸ė ëŗ´ė˛ëĻŦë°Šėš¨",
"recommended": "ėļė˛í¨",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}ëļ ė ",
"relative_time.seconds": "{number}ė´ ė ",
"relative_time.today": "ė¤ë",
+ "reply_indicator.attachments": "{count, plural, one {#} other {#}}ę°ė ė˛¨ëļíėŧ",
"reply_indicator.cancel": "ėˇ¨ė",
+ "reply_indicator.poll": "íŦí",
"report.block": "ė°¨ë¨",
"report.block_explanation": "ëšė ė í´ëš ęŗė ė ę˛ėëŦŧė ëŗ´ė§ ėę˛ ëŠëë¤. í´ëš ęŗė ė ëšė ė ę˛ėëŦŧė ëŗ´ęą°ë íëĄė° í ė ėėĩëë¤. í´ëš ęŗė ė ėė ė´ ė°¨ë¨ëėë¤ë ėŦė¤ė ė ė ėėĩëë¤.",
"report.categories.legal": "ë˛ė ė¸ ëŦ¸ė ",
@@ -658,7 +660,7 @@
"status.media_hidden": "미ëė´ ė¨ę˛¨ė§",
"status.mention": "@{name} ëėę˛ ëŠė
",
"status.more": "ėė¸í",
- "status.mute": "@{name} ëė 뎤í¸í기",
+ "status.mute": "@{name} 뎤í¸",
"status.mute_conversation": "ė´ ëíëĨŧ 뎤í¸",
"status.open": "ėė¸ ė ëŗ´ íė",
"status.pin": "ęŗ ė ",
@@ -673,7 +675,7 @@
"status.replied_to": "{name} ëėę˛",
"status.reply": "ëĩėĨ",
"status.replyAll": "ę¸íëė ëĩėĨ",
- "status.report": "{name} ëė ė ęŗ í기",
+ "status.report": "@{name} ė ęŗ í기",
"status.sensitive_warning": "ë¯ŧę°í ë´ėŠ",
"status.share": "ęŗĩė ",
"status.show_filter_reason": "꡸ëĨ íėí기",
@@ -682,7 +684,7 @@
"status.show_more": "íŧėšę¸°",
"status.show_more_all": "ëĒ¨ë íŧėšę¸°",
"status.show_original": "ėëŗ¸ ëŗ´ę¸°",
- "status.title.with_attachments": "{user} ëė´ {attachmentCount, plural, one {ė˛¨ëļ} other {{attachmentCount}ę° ė˛¨ëļ}}íėŦ ę˛ė",
+ "status.title.with_attachments": "{user} ëė´ {attachmentCount, plural, one {ė˛¨ëļíėŧ} other {{attachmentCount}ę°ė ė˛¨ëļíėŧ}}ęŗŧ í¨ęģ ę˛ėí¨",
"status.translate": "ë˛ė",
"status.translated_from_with": "{provider}ė ėí´ {lang}ėė ë˛ėë¨",
"status.uncached_media_warning": "ë§ëĻŦëŗ´ę¸° íėŠëė§ ėė",
@@ -714,10 +716,8 @@
"upload_error.poll": "íėŧ ė
ëĄëë ė¤ëŦ¸ęŗŧ í¨ęģ ė¸ ė ėėĩëë¤.",
"upload_form.audio_description": "ė˛ę° ėĨė ė¸ė ėí ė¤ëĒ
",
"upload_form.description": "ėę°ėĨė ė¸ė ėí ė¤ëĒ
",
- "upload_form.description_missing": "ė¤ëĒ
ė´ ėļę°ëė§ ėė",
"upload_form.edit": "ėė ",
"upload_form.thumbnail": "ė¸ë¤ėŧ ëŗę˛Ŋ",
- "upload_form.undo": "ėė ",
"upload_form.video_description": "ė˛ę°, ėę° ėĨė ė¸ė ėí ė¤ëĒ
",
"upload_modal.analyzing_picture": "ėŦė§ ëļė ė¤âĻ",
"upload_modal.apply": "ė ėŠ",
diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json
index b94054267..4a0fd671d 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -36,7 +36,6 @@
"account.following": "DiÅopÃŽne",
"account.following_counter": "{count, plural, one {{counter} DiÅopÃŽne} other {{counter} DiÅopÃŽne}}",
"account.follows.empty": "Ev bikarhÃĒner hin kesekÃŽ heya niha neÅopandiye.",
- "account.follows_you": "Te diÅopÃŽne",
"account.go_to_profile": "Biçe bo profÃŽlÃĒ",
"account.hide_reblogs": "BilindkirinÃĒn ji @{name} veÅÃĒre",
"account.in_memoriam": "Di bÃŽranÃŽnÃĒ de.",
@@ -78,7 +77,6 @@
"announcement.announcement": "DaxuyanÃŽ",
"attachments_list.unprocessed": "(bÃĒpÃĒvajo)",
"audio.hide": "DengÃĒ veÅÃĒre",
- "autosuggest_hashtag.per_week": "Her hefte {count}",
"boost_modal.combo": "Ji bo derbas bÃŽ carekÃŽ din de pÃĒlÃĒ {combo} bike",
"bundle_column_error.copy_stacktrace": "Rapora çewtiyÃĒ jÃĒ bigire",
"bundle_column_error.error.body": "RÃģpela xwestÃŽ nehate pÃĒÅkÃĒÅkirin. Dibe ku ew ji ber ÅaÅetiyeke koda me, an jÃŽ pirsgirÃĒkeke lihevhatina gerokÃĒ be.",
@@ -130,22 +128,12 @@
"compose_form.lock_disclaimer": "AjimÃĒrÃĒ te ne {locked}. Herkes dikare te biÅopÃŽne da ku ÅandiyÃĒn te yÃĒn tenÃĒ ji ÅopÃŽnerÃĒn re tÃĒne xuyakirin bibÃŽnin.",
"compose_form.lock_disclaimer.lock": "girtÃŽ ye",
"compose_form.placeholder": "Ãi di hiÅÃĒ te derbas dibe?",
- "compose_form.poll.add_option": "HilbijartinekÃŽ tevlÃŽ bike",
"compose_form.poll.duration": "Dema rapirsÃŽ yÃĒ",
- "compose_form.poll.option_placeholder": "{number} HilbijÃĒre",
- "compose_form.poll.remove_option": "VÃĒ hilbijarÃĒ rake",
"compose_form.poll.switch_to_multiple": "RapirsÃŽ yÃĒ biguherÃŽnin da ku destÃģr bidin vebijarkÃĒn pirjimar",
"compose_form.poll.switch_to_single": "RapirsÃŽyÃĒ biguherÃŽne da ku mafÃĒ bidÃŽ tenÃĒ vebijÃĒrkek",
- "compose_form.publish": "BiweÅÃŽne",
"compose_form.publish_form": "BiweÅÃŽne",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Guhertinan tomar bike",
- "compose_form.sensitive.hide": "{count, plural, one {Medya wekÃŽ hestiyar nÃŽÅan bide} other {Medya wekÃŽ hestiyar nÃŽÅan bide}}",
- "compose_form.sensitive.marked": "{count, plural, one {Medya wekÃŽ hestiyar hate nÃŽÅan} other {Medya wekÃŽ hestiyar nÃŽÅan}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Medya wekÃŽ hestiyar nehatiye nÃŽÅan} other {Medya wekÃŽ hestiyar nehatiye nÃŽÅan}}",
"compose_form.spoiler.marked": "HiÅyariya naverokÃĒ rake",
"compose_form.spoiler.unmarked": "HiÅyariya naverokÃĒ tevlÃŽ bike",
- "compose_form.spoiler_placeholder": "Li vir hiÅyariya xwe binivÃŽse",
"confirmation_modal.cancel": "Dev jÃĒ berde",
"confirmations.block.block_and_report": "Asteng bike & ragihÃŽne",
"confirmations.block.confirm": "Asteng bike",
@@ -352,7 +340,6 @@
"navigation_bar.direct": "QalkirinÃĒn taybet",
"navigation_bar.discover": "VekolÃĒ",
"navigation_bar.domain_blocks": "NavperÃĒn astengkirÃŽ",
- "navigation_bar.edit_profile": "ProfÃŽlÃĒ serrast bike",
"navigation_bar.explore": "Vekole",
"navigation_bar.filters": "PeyvÃĒn bÃĒdengkirÃŽ",
"navigation_bar.follow_requests": "DaxwazÃĒn ÅopandinÃĒ",
@@ -438,14 +425,7 @@
"poll_button.add_poll": "RapirsÃŽyek zÃĒde bike",
"poll_button.remove_poll": "RapirsÃŽ yÃĒ rake",
"privacy.change": "NepÃĒnÃŽtiya Åandiyan biguherÃŽne",
- "privacy.direct.long": "TenÃĒ ji bo bikarhÃĒnerÃĒn qalkirÃŽ tÃĒ dÃŽtin",
- "privacy.direct.short": "TenÃĒ kesÃĒn qalkirÃŽ",
- "privacy.private.long": "TenÃĒ bo ÅopÃŽneran xuyabar e",
- "privacy.private.short": "TenÃĒ ÅopÃŽneran",
- "privacy.public.long": "Ji bo hemÃģyan xuyabar e",
"privacy.public.short": "GelemperÃŽ",
- "privacy.unlisted.long": "Ji bo hemÃģyan xuyabar e, lÃĒ ji taybetmendiyÃĒn vekolÃŽnÃĒ veqetiya ye",
- "privacy.unlisted.short": "NelÃŽstekirÃŽ",
"privacy_policy.last_updated": "Rojanekirina dawÃŽ {date}",
"privacy_policy.title": "PolitÃŽka taybetiyÃĒ",
"refresh": "NÃģ bike",
@@ -609,10 +589,8 @@
"upload_error.poll": "Di rapirsÃŽyan de mafÃĒ barkirina pelan nayÃĒ dayÃŽn.",
"upload_form.audio_description": "Ji bona kesÃĒn kÃĒm dibihÃŽsin re pÃĒnase bike",
"upload_form.description": "Ji bona astengdarÃĒn dÃŽtinÃĒ re vebÃĒje",
- "upload_form.description_missing": "Ti danasÃŽn nehatiye tevlÃŽkirin",
"upload_form.edit": "Serrast bike",
"upload_form.thumbnail": "WÃĒneyÃĒ biçÃģk biguherÃŽne",
- "upload_form.undo": "JÃĒ bibe",
"upload_form.video_description": "Ji bo kesÃĒn kerr Ãģ lalan pÃĒnase bike",
"upload_modal.analyzing_picture": "WÃĒne tÃĒ analÃŽzkirinâĻ",
"upload_modal.apply": "BisepÃŽne",
diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json
index ca08ca836..e42f50aef 100644
--- a/app/javascript/mastodon/locales/kw.json
+++ b/app/javascript/mastodon/locales/kw.json
@@ -20,7 +20,6 @@
"account.followers_counter": "{count, plural, one {{counter} Holyer} other {{counter} Holyer}}",
"account.following_counter": "{count, plural, one {Ow holya {counter}} other {Ow holya {counter}}}",
"account.follows.empty": "Ny wra'n devnydhyer ma holya nagonan hwath.",
- "account.follows_you": "Y'th hol",
"account.hide_reblogs": "Kudha kenerthow a @{name}",
"account.link_verified_on": "Perghenogeth an kolm ma a veu checkys dhe {date}",
"account.locked_info": "Studh privetter an akont ma yw alhwedhys. An perghen a wra dasweles dre leuv piw a yll aga holya.",
@@ -46,7 +45,6 @@
"alert.unexpected.message": "Gwall anwaytyadow re dharva.",
"alert.unexpected.title": "Oups!",
"announcement.announcement": "Deklaryans",
- "autosuggest_hashtag.per_week": "{count} an seythen",
"boost_modal.combo": "Hwi a yll gwaska {combo} dhe woheles hemma an nessa tro",
"bundle_column_error.retry": "Assayewgh arta",
"bundle_modal_error.close": "Degea",
@@ -81,20 +79,12 @@
"compose_form.lock_disclaimer": "Nyns yw agas akont {locked}. Piwpynag a yll agas holya dhe weles agas postow holyoryon-hepken.",
"compose_form.lock_disclaimer.lock": "Alhwedhys",
"compose_form.placeholder": "Pyth eus yn agas brys?",
- "compose_form.poll.add_option": "Keworra dewis",
"compose_form.poll.duration": "Duryans sondyans",
- "compose_form.poll.option_placeholder": "Dewis {number}",
- "compose_form.poll.remove_option": "Dilea'n dewis ma",
"compose_form.poll.switch_to_multiple": "Chanjya sondyans dhe asa lies dewis",
"compose_form.poll.switch_to_single": "Chanjya sondyans dhe asa unn dewis hepken",
"compose_form.publish_form": "Publish",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.sensitive.hide": "{count, plural, one {Merkya myski vel tender} other {Merkya myski vel tender}}",
- "compose_form.sensitive.marked": "{count, plural, one {Myski merkys vel tender} other {Myski merkys vel tender}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Nyns yw myski merkys vel tender} other {Nyns yw myski merkys vel tender}}",
"compose_form.spoiler.marked": "Dilea gwarnyans dalgh",
"compose_form.spoiler.unmarked": "Keworra gwarnyans dalgh",
- "compose_form.spoiler_placeholder": "Skrifewgh agas gwarnyans omma",
"confirmation_modal.cancel": "Hedhi",
"confirmations.block.block_and_report": "Lettya & Reportya",
"confirmations.block.confirm": "Lettya",
@@ -245,7 +235,6 @@
"navigation_bar.compose": "Komposya post nowydh",
"navigation_bar.discover": "Diskudha",
"navigation_bar.domain_blocks": "Gorfarthow lettys",
- "navigation_bar.edit_profile": "Golegi profil",
"navigation_bar.filters": "Geryow tawhes",
"navigation_bar.follow_requests": "Govynnow holya",
"navigation_bar.follows_and_followers": "Holyansow ha holyoryon",
@@ -317,12 +306,7 @@
"poll_button.add_poll": "Keworra sondyans",
"poll_button.remove_poll": "Dilea sondyans",
"privacy.change": "Chanjya privetter an post",
- "privacy.direct.long": "Gweladow dhe'n dhevnydhyoryon menegys hepken",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Gweladow dhe holyoryon hepken",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "Poblek",
- "privacy.unlisted.short": "Anrelys",
"refresh": "Daskarga",
"regeneration_indicator.label": "Ow kargaâĻ",
"regeneration_indicator.sublabel": "Yma agas lin dre ow pos pareusys!",
@@ -408,7 +392,6 @@
"upload_form.description": "Deskrifewgh rag tus dhallek",
"upload_form.edit": "Golegi",
"upload_form.thumbnail": "Chanjya avenik",
- "upload_form.undo": "Dilea",
"upload_form.video_description": "Deskrifa rag tus vodharek po dallek",
"upload_modal.analyzing_picture": "Ow tytratya skeusenâĻ",
"upload_modal.apply": "Gweytha",
diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json
index 3e5747ba8..698b3da4c 100644
--- a/app/javascript/mastodon/locales/la.json
+++ b/app/javascript/mastodon/locales/la.json
@@ -34,9 +34,7 @@
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer.lock": "clausum",
"compose_form.placeholder": "What is on your mind?",
- "compose_form.publish": "Barrire",
"compose_form.publish_form": "Barrire",
- "compose_form.publish_loud": "{publish}!",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
"confirmations.block.confirm": "Impedire",
@@ -116,9 +114,6 @@
"poll_button.add_poll": "Addere electionem",
"poll_button.remove_poll": "Auferre electionem",
"privacy.change": "Adjust status privacy",
- "privacy.direct.short": "Direct",
- "privacy.private.short": "Followers-only",
- "privacy.public.long": "Coram publico",
"privacy.public.short": "Coram publico",
"relative_time.full.just_now": "nunc",
"relative_time.just_now": "nunc",
@@ -153,7 +148,6 @@
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people who are hard of hearing",
"upload_form.edit": "Recolere",
- "upload_form.undo": "Oblitterare",
"upload_progress.label": "UploadingâĻ",
"video.mute": "Confutare soni"
}
diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json
index ffdc04441..ba99f5cd3 100644
--- a/app/javascript/mastodon/locales/lad.json
+++ b/app/javascript/mastodon/locales/lad.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "\"No ay publikasyones",
"account.featured_tags.title": "Etiketas avaliadas de {name}",
"account.follow": "Sige",
+ "account.follow_back": "Sige tamyen",
"account.followers": "Suivantes",
"account.followers.empty": "Por agora dingun no sige a este utilizador.",
"account.followers_counter": "{count, plural, one {{counter} suivante} other {{counter} suivantes}}",
"account.following": "Sigiendo",
"account.following_counter": "{count, plural, other {Sigiendo a {counter}}}",
"account.follows.empty": "Este utilizador ainda no sige a ningun.",
- "account.follows_you": "Te sige",
"account.go_to_profile": "Va al profil",
"account.hide_reblogs": "Eskonde repartajasyones de @{name}",
"account.in_memoriam": "De bendicha memoria.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silensia avizos de @{name}",
"account.mute_short": "Silensia",
"account.muted": "Silensiado",
+ "account.mutual": "Mutual",
"account.no_bio": "No ay deskripsion.",
"account.open_original_page": "Avre pajina orijnala",
"account.posts": "Publikasyones",
@@ -77,6 +78,10 @@
"admin.dashboard.retention.average": "Media",
"admin.dashboard.retention.cohort": "Mez de enrejistrasyon",
"admin.dashboard.retention.cohort_size": "Muevos utilizadores",
+ "admin.impact_report.instance_accounts": "Profiles de kuentos esto efasaria",
+ "admin.impact_report.instance_followers": "Suivantes a los kualos nuestros utilizadores perderian",
+ "admin.impact_report.instance_follows": "Suivantes a los kualos sus utilizadores perderian",
+ "admin.impact_report.title": "Rezumen de impakto",
"alert.rate_limited.message": "Por favor aprova dempues de {retry_time, time, medium}.",
"alert.rate_limited.title": "Trafiko limitado",
"alert.unexpected.message": "Afito un yerro no asperado.",
@@ -84,7 +89,6 @@
"announcement.announcement": "Pregon",
"attachments_list.unprocessed": "(no prosesado)",
"audio.hide": "Eskonder audio",
- "autosuggest_hashtag.per_week": "{count} por semana",
"boost_modal.combo": "Puedes klikar {combo} para ometer esto la proksima vez",
"bundle_column_error.copy_stacktrace": "Kopia el raporto de yerro",
"bundle_column_error.error.body": "La pajina solisitada no pudo ser renderada. Podria ser por un yerro en muestro kodiche o un problem de kompatibilita kon el navigador.",
@@ -141,22 +145,12 @@
"compose_form.lock_disclaimer": "Tu kuento no esta {locked}. Todos pueden segirte para ver tus publikasyones solo para suivantes.",
"compose_form.lock_disclaimer.lock": "serrado",
"compose_form.placeholder": "Ke haber?",
- "compose_form.poll.add_option": "Adjusta opsyon",
"compose_form.poll.duration": "Durasion de anketa",
- "compose_form.poll.option_placeholder": "Opsyon {number}",
- "compose_form.poll.remove_option": "Kita esta opsyon",
"compose_form.poll.switch_to_multiple": "Trokar anketa para permeter a eskojer mas ke una opsyon",
"compose_form.poll.switch_to_single": "Trokar anketa para permeter a eskojer solo una opsyon",
- "compose_form.publish": "Publika",
"compose_form.publish_form": "Mueva publikasyon",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Guadra trokamientos",
- "compose_form.sensitive.hide": "{count, plural, one {Marka material komo sensivle} other {Marka material komo sensivle}}",
- "compose_form.sensitive.marked": "{count, plural, one {Material markado komo sensivle} other {Material markado komo sensivle}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Material no markado komo sensivle} other {Material no markado komo sensivle}}",
"compose_form.spoiler.marked": "Kita avertensya de kontenido",
"compose_form.spoiler.unmarked": "Adjusta avertensya de kontenido",
- "compose_form.spoiler_placeholder": "Eskrive tu avertensya aki",
"confirmation_modal.cancel": "Anula",
"confirmations.block.block_and_report": "Bloka i raporta",
"confirmations.block.confirm": "Bloka",
@@ -220,6 +214,7 @@
"emoji_button.search_results": "Rizultados de bushkeda",
"emoji_button.symbols": "Simbolos",
"emoji_button.travel": "Viajes i lugares",
+ "empty_column.account_hides_collections": "Este utilizador desidio no mostrar esta enformasyon",
"empty_column.account_suspended": "Kuento suspendido",
"empty_column.account_timeline": "No ay publikasyones aki!",
"empty_column.account_unavailable": "Profil no desponivle",
@@ -294,20 +289,35 @@
"hashtag.column_settings.tag_mode.any": "Kualsekera de estos",
"hashtag.column_settings.tag_mode.none": "Dinguno de estos",
"hashtag.column_settings.tag_toggle": "Inkluir etiketas adisionalas en esta kolumna",
+ "hashtag.counter_by_accounts": "{count, plural, one {{counter} partisipante} other {{counter} partisipantes}}",
+ "hashtag.counter_by_uses": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}",
+ "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}} oy",
"hashtag.follow": "Segir etiketa",
"hashtag.unfollow": "Desegir etiketa",
+ "hashtags.and_other": "âĻi {count, plural, one {}other {# mas}}",
+ "home.actions.go_to_explore": "Ve los trendes",
+ "home.actions.go_to_suggestions": "Topa a djente para segir",
"home.column_settings.basic": "Opsyones bazikas",
"home.column_settings.show_reblogs": "Amostrar repartajasyones",
"home.column_settings.show_replies": "Amostrar repuestas",
+ "home.explore_prompt.body": "Tu linya prinsipala es una mikstura de publikasyones kon etiketas a las kualas eskojites a segir, la djente a la kuala eskojites a segir i las publikasyones ke eyos repartajan. Si esta demaziado trankila, puedes:",
+ "home.explore_prompt.title": "Esta es tu baza prinsipala en Mastodon.",
"home.hide_announcements": "Eskonde pregones",
+ "home.pending_critical_update.body": "Por favor aktualiza tu sirvidor de Mastodon pishin!",
"home.pending_critical_update.link": "Ve aktualizasyones",
+ "home.pending_critical_update.title": "Aktualizasyon de seguridad kritika esta desponivle!",
"home.show_announcements": "Amostra pregones",
"interaction_modal.description.favourite": "Kon un kuento en Mastodon, puedes markar esta publikasyon komo favorita para ke el autor sepa ke te plaze i para guadrarla para dempues.",
"interaction_modal.description.follow": "Kon un kuento en Mastodon, puedes segir a {name} para risivir sus publikasyones en tu linya temporal prinsipala.",
"interaction_modal.description.reblog": "Kon un kuento en Mastodon, puedes repartajar esta publikasyon para amostrarla a tus suivantes.",
"interaction_modal.description.reply": "Kon un kuento en Mastodon, puedes arispondir a esta publikasyon.",
+ "interaction_modal.login.action": "Va a tu sirvidor",
+ "interaction_modal.login.prompt": "Domeno del sirvidor de tu kuento, por enshemplo mastodon.social",
+ "interaction_modal.no_account_yet": "No tyenes kuento de Mastodon?",
"interaction_modal.on_another_server": "En otro sirvidor",
"interaction_modal.on_this_server": "En este sirvidor",
+ "interaction_modal.sign_in": "No estas konektado kon este sirvidor. Ande tyenes tu kuento?",
+ "interaction_modal.sign_in_hint": "Konsejo: Akel es el sitio adonde te enrejistrates. Si no lo akodras, bushka el mesaj de posta elektronika de bienvenida en tu kuti de arivo. Tambien puedes eskrivir tu nombre de utilizador kompleto (por enshemplo @Mastodon@mastodon.social)",
"interaction_modal.title.favourite": "Endika ke te plaze publikasyon de {name}",
"interaction_modal.title.follow": "Sige a {name}",
"interaction_modal.title.reblog": "Repartaja publikasyon de {name}",
@@ -356,11 +366,13 @@
"lightbox.previous": "Anterior",
"limited_account_hint.action": "Amostra el profil entanto",
"limited_account_hint.title": "Este profil fue eskondido por los moderadores de {domain}.",
+ "link_preview.author": "Publikasyon de {name}",
"lists.account.add": "Adjusta a lista",
"lists.account.remove": "Kita de lista",
"lists.delete": "Efasa lista",
"lists.edit": "Edita lista",
"lists.edit.submit": "Troka titolo",
+ "lists.exclusive": "Eskonder estas publikasyones de linya prinsipala",
"lists.new.create": "Adjusta lista",
"lists.new.title_placeholder": "Titolo de mueva lista",
"lists.replies_policy.followed": "Kualseker utilizardo segido",
@@ -377,6 +389,7 @@
"mute_modal.hide_notifications": "Eskonder avizos de este utilizador?",
"mute_modal.indefinite": "Indefinida",
"navigation_bar.about": "Sovre mozotros",
+ "navigation_bar.advanced_interface": "Avre en la enterfaz avanzada",
"navigation_bar.blocks": "Utilizadores blokados",
"navigation_bar.bookmarks": "Markadores",
"navigation_bar.community_timeline": "Linya de tiempo lokala",
@@ -384,7 +397,6 @@
"navigation_bar.direct": "Enmentaduras privadas",
"navigation_bar.discover": "Diskuvre",
"navigation_bar.domain_blocks": "Domenos blokados",
- "navigation_bar.edit_profile": "Edita profil",
"navigation_bar.explore": "Eksplorar",
"navigation_bar.favourites": "Te plazen",
"navigation_bar.filters": "Biervos silensiados",
@@ -394,6 +406,7 @@
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Salir",
"navigation_bar.mutes": "Utilizadores silensiados",
+ "navigation_bar.opened_in_classic_interface": "Publikasyones, kuentos i otras pajinas espesifikas se avren kon preferensyas predeterminadas en la enterfaz web klasika.",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Publikasyones fiksadas",
"navigation_bar.preferences": "Preferensyas",
@@ -451,10 +464,41 @@
"notifications_permission_banner.title": "Nunka te piedres niente",
"onboarding.action.back": "Va atras",
"onboarding.actions.back": "Va atras",
+ "onboarding.actions.go_to_explore": "Va a los trendes",
+ "onboarding.actions.go_to_home": "Va a tu linya prinsipala",
+ "onboarding.compose.template": "Ke haber, #Mastodon?",
+ "onboarding.follows.empty": "Malorozamente, no se pueden amostrar rezultados en este momento. Puedes aprovar uzar la bushkeda o navigar por la pajina de eksplorasyon para topar personas a las que segir, o aprovarlo de muevo mas tadre.",
+ "onboarding.follows.title": "Personaliza tu linya prinsipala",
+ "onboarding.profile.discoverable": "Faz ke mi profil apareska en bushkedas",
"onboarding.profile.display_name": "Nombre amostrado",
+ "onboarding.profile.display_name_hint": "Tu nombre para amostrar.",
+ "onboarding.profile.lead": "Siempre puedes kompletar esto mas tadre en las preferensyas, ande tambien ay mas opsyones de personalizasyon.",
+ "onboarding.profile.note": "Tu deskripsyon",
+ "onboarding.profile.note_hint": "Puedes @enmentar a otra djente o #etiketasâĻ",
+ "onboarding.profile.save_and_continue": "Guadra i kontinua",
+ "onboarding.profile.title": "Konfigurasyon de profil",
+ "onboarding.profile.upload_avatar": "Karga imaje de profil",
+ "onboarding.profile.upload_header": "Karga kavesera de profil",
+ "onboarding.share.lead": "Informe a otros komo toparte en Mastodon!",
+ "onboarding.share.message": "Soy {username} en #Mastodon! Segidme en {url}",
+ "onboarding.share.next_steps": "Posivles sigientes pasos:",
+ "onboarding.share.title": "Partaja tu profil",
+ "onboarding.start.skip": "No nesesitas ayudo para ampesar?",
+ "onboarding.start.title": "Lo logrates!",
+ "onboarding.steps.follow_people.body": "El buto de Mastodon es segir a djente interesante.",
+ "onboarding.steps.follow_people.title": "Personaliza tu linya prinsipala",
+ "onboarding.steps.publish_status.body": "Puedes introdusirte al mundo con teksto, fotos, videos o anketas {emoji}",
+ "onboarding.steps.publish_status.title": "Eskrive tu primera publikasyon",
+ "onboarding.steps.setup_profile.body": "Kompleta tu profil para aumentar tus enteraksyones.",
+ "onboarding.steps.setup_profile.title": "Personaliza tu profil",
+ "onboarding.steps.share_profile.body": "Informe a tus amigos komo toparte en Mastodon",
+ "onboarding.steps.share_profile.title": "Partaja tu profil de Mastodon",
+ "password_confirmation.exceeds_maxlength": "La konfirmasyon de kod es demaziado lunga",
+ "password_confirmation.mismatching": "Los dos kodes son desferentes",
"picture_in_picture.restore": "Restora",
"poll.closed": "Serrado",
"poll.refresh": "Arefreska",
+ "poll.reveal": "Mira los rezultados",
"poll.total_people": "{count, plural, one {# persona} other {# personas}}",
"poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
"poll.vote": "Vota",
@@ -463,16 +507,10 @@
"poll_button.add_poll": "Adjusta anketa",
"poll_button.remove_poll": "Kita anketa",
"privacy.change": "Troka privasita de publikasyon",
- "privacy.direct.long": "Vizivle solo para utilizadores enmentados",
- "privacy.direct.short": "Solo personas enmentadas",
- "privacy.private.long": "Vizivle solo para suivantes",
- "privacy.private.short": "Solo suivantes",
- "privacy.public.long": "Vizivle para todos",
"privacy.public.short": "Publiko",
- "privacy.unlisted.long": "Vizivle para todos, ama eskluido de las fonksiones de diskuvrimyento",
- "privacy.unlisted.short": "No listado",
"privacy_policy.last_updated": "Ultima aktualizasyon: {date}",
"privacy_policy.title": "Politika de privasita",
+ "recommended": "Rekomendado",
"refresh": "Arefreska",
"regeneration_indicator.label": "EskargandoâĻ",
"regeneration_indicator.sublabel": "Tu linya de tiempo prinsipala esta preparando!",
@@ -490,6 +528,7 @@
"reply_indicator.cancel": "Anula",
"report.block": "Bloka",
"report.block_explanation": "No veras sus publikasyones. No podra ver tus publikasyones ni segirte. Podra saver ke le blokates.",
+ "report.categories.legal": "Legal",
"report.categories.other": "Otros",
"report.categories.spam": "Spam",
"report.categories.violation": "El kontenido viola una o mas reglas del sirvidor",
@@ -503,9 +542,12 @@
"report.forward_hint": "Este kuento es de otro sirvidor. Embiar una kopia anonimizada del raporto ayi tamyen?",
"report.mute": "Silensia",
"report.mute_explanation": "No veras sus publikasyones. Ainda pueden segirte i no va saver ke le silensiates.",
+ "report.next": "Sigiente",
"report.placeholder": "Otros komentos",
"report.reasons.dislike": "No me plaze",
"report.reasons.dislike_description": "\"No es algo ke kero ver",
+ "report.reasons.legal": "Es ilegal",
+ "report.reasons.legal_description": "Kreyes ke esta violando la ley de tu paiz o el paiz del sirvidor",
"report.reasons.other": "Es otra koza",
"report.reasons.other_description": "El problem no es de las otras kategorias",
"report.reasons.spam": "Es spam",
@@ -525,6 +567,7 @@
"report.unfollow": "Desegir a @{name}",
"report.unfollow_explanation": "Estas sigiendo este kuento. Para no ver sus publikasyones en tu linya de tiempo, puedes deshar de segirlo.",
"report_notification.attached_statuses": "{count, plural, one {{count} publikasyon} other {{count} publikasyones}} atadas",
+ "report_notification.categories.legal": "Legal",
"report_notification.categories.other": "Otros",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Violasion de reglas",
@@ -537,8 +580,14 @@
"search.quick_action.open_url": "Avre URL en Mastodon",
"search.quick_action.status_search": "Publikasyones ke koresponden kon {x}",
"search.search_or_paste": "Bushka o apega URL",
+ "search_popout.full_text_search_disabled_message": "No desponivle en {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Solo desponivle kuando estas konektado kon tu kuento.",
+ "search_popout.language_code": "kodiche ISO de lingua",
+ "search_popout.options": "Opsyones de bushkeda",
"search_popout.quick_actions": "Aksiones rapidas",
"search_popout.recent": "Bushkedas resientes",
+ "search_popout.specific_date": "dato espesifiko",
+ "search_popout.user": "utilizador",
"search_results.accounts": "Profiles",
"search_results.all": "Todos",
"search_results.hashtags": "Etiketas",
@@ -555,12 +604,32 @@
"sign_in_banner.create_account": "Kriya kuento",
"sign_in_banner.sign_in": "Konektate",
"sign_in_banner.sso_redirect": "Konektate o enrejistrate",
+ "sign_in_banner.text": "Konektate para segir prefiles o etiketas, partajar publikasyones, arispondir a eyas i markar ke te plazen. Puedes tambyen enteraktuar dizde tu kuento en un sirvidor desferente.",
+ "status.admin_account": "Avre la enterfaz de moderasyon para @{name}",
+ "status.admin_domain": "Avre la enterfaz de moderasyon para @{domain}",
+ "status.admin_status": "Avre esto en la enterfaz de moderasyon",
+ "status.block": "Bloka a @{name}",
+ "status.bookmark": "Marka",
+ "status.cancel_reblog_private": "No repartaja",
+ "status.cannot_reblog": "Esta publikasyon no se puede repartajar",
+ "status.copy": "Kopia atadijo de publikasyon",
+ "status.delete": "Efasa",
+ "status.detailed_status": "Vista de konversasyon detalyada",
+ "status.direct": "Enmenta a @{name} en privado",
+ "status.direct_indicator": "Enmentadura privada",
+ "status.edit": "Edita",
+ "status.edited": "Editado {date}",
+ "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} vezes}}",
+ "status.embed": "Inkrusta",
+ "status.favourite": "Te plaze",
"status.filter": "Filtra esta publikasyon",
"status.filtered": "Filtrado",
"status.hide": "Eskonde publikasyon",
"status.history.created": "{name} kriyo {date}",
"status.history.edited": "{name} edito {date}",
"status.load_more": "Eskarga mas",
+ "status.media.open": "Klika para avrir",
+ "status.media.show": "Klika para amostrar",
"status.media_hidden": "Multimedia eskondidos",
"status.mention": "Enmenta a @{name}",
"status.more": "Mas",
@@ -588,6 +657,7 @@
"status.show_more": "Amostra mas",
"status.show_more_all": "Amostra mas para todo",
"status.show_original": "Amostra orijinal",
+ "status.title.with_attachments": "{user} publiko {attachmentCount, plural, one {un anekso} other {{attachmentCount} aneksos}}",
"status.translate": "Trezlada",
"status.translated_from_with": "Trezladado dizde {lang} kon {provider}",
"status.uncached_media_warning": "Vista previa no desponivle",
@@ -619,10 +689,8 @@
"upload_error.poll": "No se permite kargar dosyas kon anketas.",
"upload_form.audio_description": "Deskrive para personas sodras o kon problemes auditivos",
"upload_form.description": "Deskrive para personas siegas o kon problemes vizuales",
- "upload_form.description_missing": "No adjustates deskripsion",
"upload_form.edit": "Edita",
"upload_form.thumbnail": "Troka minyatura",
- "upload_form.undo": "Efasa",
"upload_form.video_description": "Deskrive para personas sodras, kon problemes auditivos, siegas o kon problemes vizuales",
"upload_modal.analyzing_picture": "Analizando imajeâĻ",
"upload_modal.apply": "Aplika",
@@ -636,6 +704,7 @@
"upload_modal.preview_label": "Vista previa ({ratio})",
"upload_progress.label": "Kargando...",
"upload_progress.processing": "ProsesandoâĻ",
+ "username.taken": "Akel nombre de utilizador ya esta en uzo. Aprova otruno",
"video.close": "Serra video",
"video.download": "Abasha dosya",
"video.exit_fullscreen": "Sal de ekran kompleto",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index 58c80e411..14fa09e97 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -2,14 +2,14 @@
"about.blocks": "PriÅžiÅĢrimi serveriai",
"about.contact": "Kontaktuoti:",
"about.disclaimer": "Mastodon â nemokama atvirojo kodo programa ir Mastodon gGmbH prekÄs Åženklas.",
- "about.domain_blocks.no_reason_available": "PrieÅžastis neÅžinoma",
+ "about.domain_blocks.no_reason_available": "PrieÅžastis nepateikta",
"about.domain_blocks.preamble": "Mastodon paprastai leidÅžia perÅžiÅĢrÄti turinį ir bendrauti su naudotojais iÅĄ bet kurio kito fediverse esanÄio serverio. Å ios yra iÅĄimtys, kurios buvo padarytos ÅĄiame konkreÄiame serveryje.",
"about.domain_blocks.silenced.explanation": "Paprastai nematysi profiliÅŗ ir turinio iÅĄ ÅĄio serverio, nebent jį aiÅĄkiai ieÅĄkosi arba pasirinksi jį sekdamas (-a).",
"about.domain_blocks.silenced.title": "Ribota",
"about.domain_blocks.suspended.explanation": "Jokie duomenys iÅĄ ÅĄio serverio nebus apdorojami, saugomi ar keiÄiami, todÄl bet kokia sÄ
veika ar bendravimas su ÅĄio serverio naudotojais bus neįmanomas.",
"about.domain_blocks.suspended.title": "UÅždrausta",
"about.not_available": "Å i informacija nebuvo pateikta ÅĄiame serveryje.",
- "about.powered_by": "Decentralizuota socialinÄ Åžiniasklaida, kuriÄ
valdo {mastodon}",
+ "about.powered_by": "Decentralizuota socialinÄ medija, kuriÄ
valdo {mastodon}",
"about.rules": "Serverio taisyklÄs",
"account.account_note_header": "Pastaba",
"account.add_or_remove_from_list": "PridÄti arba iÅĄtrinti iÅĄ sÄ
raÅĄÅŗ",
@@ -27,24 +27,24 @@
"account.domain_blocked": "UÅžblokuotas domenas",
"account.edit_profile": "Redaguoti profilį",
"account.enable_notifications": "PraneÅĄti man, kai @{name} paskelbia",
- "account.endorse": "SavybÄ profilyje",
+ "account.endorse": "Rekomenduoti profilyje",
"account.featured_tags.last_status_at": "Paskutinį kartÄ
paskelbta {date}",
"account.featured_tags.last_status_never": "NÄra įraÅĄÅŗ",
- "account.featured_tags.title": "{name} rekomenduojamos grotaÅžymÄs",
+ "account.featured_tags.title": "{name} rekomenduojami saitaÅžodÅžiai",
"account.follow": "Sekti",
+ "account.follow_back": "Sekti atgal",
"account.followers": "SekÄjai",
"account.followers.empty": "Å io naudotojo dar niekas neseka.",
- "account.followers_counter": "{count, plural, one {{counter} sekÄjas (-a)} few {{counter} sekÄjai} many {{counter} sekÄjo} other {{counter} sekÄjÅŗ}}",
- "account.following": "Seka",
- "account.following_counter": "{count, plural, one {{counter} Seka} few {{counter} Seka} many {{counter} Seka} other {{counter} Seka}}",
+ "account.followers_counter": "{count, plural, one {{counter} sekÄjas} few {{counter} sekÄjai} many {{counter} sekÄjo} other {{counter} sekÄjÅŗ}}",
+ "account.following": "Sekama",
+ "account.following_counter": "{count, plural, one {{counter} sekimas} few {{counter} sekimai} many {{counter} sekimo} other {{counter} sekimÅŗ}}",
"account.follows.empty": "Å is (-i) naudotojas (-a) dar nieko neseka.",
- "account.follows_you": "Seka tave",
"account.go_to_profile": "Eiti į profilį",
"account.hide_reblogs": "SlÄpti pakÄlimus iÅĄ @{name}",
"account.in_memoriam": "Atminimui.",
"account.joined_short": "PrisijungÄ",
"account.languages": "Keisti prenumeruojamas kalbas",
- "account.link_verified_on": "Å ios nuorodos nuosavybÄ buvo patikrinta {date}",
+ "account.link_verified_on": "Å ios nuorodos nuosavybÄ buvo patikrinta {date}.",
"account.locked_info": "Å ios paskyros privatumo bÅĢsena nustatyta kaip uÅžrakinta. Savininkas (-Ä) rankiniu bÅĢdu perÅžiÅĢri, kas gali sekti.",
"account.media": "Medija",
"account.mention": "PaminÄti @{name}",
@@ -53,12 +53,13 @@
"account.mute_notifications_short": "Nutildyti praneÅĄimus",
"account.mute_short": "Nutildyti",
"account.muted": "Nutildytas",
+ "account.mutual": "Abipusis",
"account.no_bio": "NÄra pateikto apraÅĄymo.",
"account.open_original_page": "Atidaryti originalinį puslapį",
"account.posts": "ÄŽraÅĄai",
"account.posts_with_replies": "ÄŽraÅĄai ir atsakymai",
- "account.report": "PraneÅĄti @{name}",
- "account.requested": "Laukiama patvirtinimo. Spausk, kad atÅĄaukti sekimo uÅžklausÄ
",
+ "account.report": "PraneÅĄti apie @{name}",
+ "account.requested": "Laukiama patvirtinimo. SpustelÄk, jei nori atÅĄaukti sekimo praÅĄymÄ
.",
"account.requested_follow": "{name} papraÅĄÄ tave sekti",
"account.share": "Bendrinti @{name} profilį",
"account.show_reblogs": "Rodyti pakÄlimus iÅĄ @{name}",
@@ -68,28 +69,27 @@
"account.unblock_short": "Atblokuoti",
"account.unendorse": "Nerodyti profilyje",
"account.unfollow": "Nebesekti",
- "account.unmute": "Atitildyti @{name}",
- "account.unmute_notifications_short": "Atitildyti praneÅĄimus",
- "account.unmute_short": "Atitildyti",
- "account_note.placeholder": "Spausk norÄdamas (-a) pridÄti pastabÄ
",
- "admin.dashboard.daily_retention": "VartotojÅŗ iÅĄbuvimo rodiklis pagal dienÄ
po registracijos",
- "admin.dashboard.monthly_retention": "NaudotojÅŗ iÅĄlaikymo rodiklis pagal mÄnesį po registracijos",
+ "account.unmute": "AtÅĄaukti nutildymÄ
@{name}",
+ "account.unmute_notifications_short": "AtÅĄaukti nutildymÄ
praneÅĄimams",
+ "account.unmute_short": "AtÅĄaukti nutildymÄ
",
+ "account_note.placeholder": "SpustelÄk norÄdamas (-a) pridÄti pastabÄ
",
+ "admin.dashboard.daily_retention": "NaudotojÅŗ pasilikimo rodiklis pagal dienÄ
po registracijos",
+ "admin.dashboard.monthly_retention": "NaudotojÅŗ pasilikimo rodiklis pagal mÄnesį po registracijos",
"admin.dashboard.retention.average": "Vidurkis",
- "admin.dashboard.retention.cohort": "Registravimo mÄnuo",
+ "admin.dashboard.retention.cohort": "Registracijos mÄnuo",
"admin.dashboard.retention.cohort_size": "Nauji naudotojai",
"admin.impact_report.instance_accounts": "PaskyrÅŗ profiliai, kuriuos tai iÅĄtrintÅŗ",
"admin.impact_report.instance_followers": "SekÄjai, kuriuos prarastÅŗ mÅĢsÅŗ naudotojai",
"admin.impact_report.instance_follows": "SekÄjai, kuriuos prarastÅŗ jÅŗ naudotojai",
"admin.impact_report.title": "Poveikio apibendrinimas",
"alert.rate_limited.message": "Pabandyk vÄliau po {retry_time, time, medium}.",
- "alert.rate_limited.title": "Spartos ribojimas",
+ "alert.rate_limited.title": "Sparta ribota",
"alert.unexpected.message": "ÄŽvyko netikÄta klaida.",
"alert.unexpected.title": "Ups!",
"announcement.announcement": "Skelbimas",
"attachments_list.unprocessed": "(neapdorotas)",
"audio.hide": "SlÄpti garsÄ
",
- "autosuggest_hashtag.per_week": "{count} per savaitÄ",
- "boost_modal.combo": "Gali spausti {combo}, kad praleisti kitÄ
kartÄ
",
+ "boost_modal.combo": "Gali paspausti {combo}, kad praleisti kitÄ
kartÄ
",
"bundle_column_error.copy_stacktrace": "Kopijuoti klaidos ataskaitÄ
",
"bundle_column_error.error.body": "UÅžklausos puslapio nepavyko atvaizduoti. Tai gali bÅĢti dÄl mÅĢsÅŗ kodo klaidos arba narÅĄyklÄs suderinamumo problemos.",
"bundle_column_error.error.title": "O, ne!",
@@ -103,10 +103,10 @@
"bundle_modal_error.message": "Kraunant ÅĄÄ¯ komponentÄ
kaÅžkas nepavyko.",
"bundle_modal_error.retry": "Bandyti dar kartÄ
",
"closed_registrations.other_server_instructions": "Kadangi Mastodon yra decentralizuotas, gali susikurti paskyrÄ
kitame serveryje ir vis tiek bendrauti su ÅĄiuo serveriu.",
- "closed_registrations_modal.description": "Sukurti paskyrÄ
{domain} ÅĄiuo metu neįmanoma, taÄiau nepamirÅĄk, kad norint naudotis Mastodon nebÅĢtina turÄti paskyrÄ
{domain}.",
+ "closed_registrations_modal.description": "Sukurti paskyrÄ
{domain} ÅĄiuo metu neįmanoma, taÄiau nepamirÅĄk, kad norint naudotis Mastodon nebÅĢtina turÄti paskyrÄ
domene {domain}.",
"closed_registrations_modal.find_another_server": "Rasti kitÄ
serverį",
"closed_registrations_modal.preamble": "Mastodon yra decentralizuotas, todÄl nesvarbu, kur susikursi paskyrÄ
, galÄsi sekti ir bendrauti su bet kuriuo ÅĄiame serveryje esanÄiu asmeniu. Jį gali net savarankiÅĄkai talpinti!",
- "closed_registrations_modal.title": "UŞsiregistravimas į Mastodon",
+ "closed_registrations_modal.title": "UÅžsiregistruoti Mastodon",
"column.about": "Apie",
"column.blocks": "UÅžblokuoti naudotojai",
"column.bookmarks": "ÅŊymÄs",
@@ -115,15 +115,15 @@
"column.directory": "NarÅĄyti profilius",
"column.domain_blocks": "UÅžblokuoti domenai",
"column.favourites": "MÄgstamiausi",
- "column.firehose": "Tiesioginiai padavimai",
- "column.follow_requests": "Sekti praÅĄymus",
+ "column.firehose": "Tiesioginiai srautai",
+ "column.follow_requests": "Sekimo praÅĄymus",
"column.home": "Pagrindinis",
"column.lists": "SÄ
raÅĄai",
"column.mutes": "Nutildyti naudotojai",
"column.notifications": "PraneÅĄimai",
"column.pins": "Prisegti įraÅĄai",
"column.public": "FederacinÄ laiko skalÄ",
- "column_back_button.label": "Atgal",
+ "column_back_button.label": "GrįŞti",
"column_header.hide_settings": "SlÄpti nustatymus",
"column_header.moveLeft_settings": "Judinti stulpelį į kairÄ",
"column_header.moveRight_settings": "Judinti stulpelį į deÅĄinÄ",
@@ -147,20 +147,20 @@
"compose_form.placeholder": "Kas tavo mintyse?",
"compose_form.poll.add_option": "PridÄti pasirinkimÄ
",
"compose_form.poll.duration": "Apklausos trukmÄ",
+ "compose_form.poll.multiple": "Keli pasirinkimai",
"compose_form.poll.option_placeholder": "{number} pasirinkimas",
"compose_form.poll.remove_option": "PaÅĄalinti ÅĄÄ¯ pasirinkimÄ
",
+ "compose_form.poll.single": "Pasirinkti vienÄ
",
"compose_form.poll.switch_to_multiple": "Keisti apklausÄ
, kad bÅĢtÅŗ galima pasirinkti kelis pasirinkimus",
"compose_form.poll.switch_to_single": "Pakeisti apklausÄ
, kad bÅĢtÅŗ galima pasirinkti vienÄ
variantÄ
",
+ "compose_form.poll.type": "Stilius",
"compose_form.publish": "Skelbti",
"compose_form.publish_form": "Naujas įraÅĄas",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "IÅĄsaugoti pakeitimus",
- "compose_form.sensitive.hide": "{count, plural, one {ÅŊymÄti medijÄ
kaip jautriÄ
} few {ÅŊymÄti medijas kaip jautrias} many {ÅŊymÄti medijo kaip jautrio} other {ÅŊymÄti medijÅŗ kaip jautriÅŗ}}",
- "compose_form.sensitive.marked": "{count, plural, one {Medija paÅžymÄta kaip jautri} few {Medijos paÅžymÄtos kaip jautrios} many {Medijo paÅžymÄta kaip jautrio} other {MedijÅŗ paÅžymÄtÅŗ kaip jautriÅŗ}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Medija nepaÅžymÄta kaip jautri} few {Medijos nepaÅžymÄtos kaip jautrios} many {Medijo nepaÅžymÄta kaip jautrio} other {MedijÅŗ nepaÅžymÄtÅŗ kaip jautriÅŗ}}",
+ "compose_form.reply": "Atsakyti",
+ "compose_form.save_changes": "Atnaujinti",
"compose_form.spoiler.marked": "PaÅĄalinti turinio įspÄjimÄ
",
"compose_form.spoiler.unmarked": "PridÄti turinio įspÄjimÄ
",
- "compose_form.spoiler_placeholder": "RaÅĄyk savo įspÄjimÄ
Äia",
+ "compose_form.spoiler_placeholder": "Turinio įspÄjimas (pasirinktinis)",
"confirmation_modal.cancel": "AtÅĄaukti",
"confirmations.block.block_and_report": "Blokuoti ir praneÅĄti",
"confirmations.block.confirm": "Blokuoti",
@@ -341,6 +341,7 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "UÅždaryti",
+ "lists.new.create": "PridÄti sÄ
raÅĄÄ
",
"loading_indicator.label": "KraunamaâĻ",
"media_gallery.toggle_visible": "{number, plural, one {SlÄpti vaizdÄ
} few {SlÄpti vaizdus} many {SlÄpti vaizdo} other {SlÄpti vaizdÅŗ}}",
"moved_to_account_banner.text": "Tavo paskyra {disabledAccount} ÅĄiuo metu yra iÅĄjungta, nes persikÄlei į {movedToAccount}.",
@@ -355,7 +356,6 @@
"navigation_bar.direct": "PrivatÅĢs paminÄjimai",
"navigation_bar.discover": "Atrasti",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "Redaguoti profilį",
"navigation_bar.explore": "NarÅĄyti",
"navigation_bar.favourites": "MÄgstamiausi",
"navigation_bar.filters": "NutylÄti ÅžodÅžiai",
@@ -465,14 +465,15 @@
"poll_button.add_poll": "PridÄti apklausÄ
",
"poll_button.remove_poll": "Å alinti apklausÄ
",
"privacy.change": "Adjust status privacy",
- "privacy.direct.long": "Post to mentioned users only",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
- "privacy.private.short": "Followers-only",
- "privacy.public.long": "Visiems matomas",
+ "privacy.direct.long": "Visus, paminÄtus įraÅĄe",
+ "privacy.direct.short": "KonkretÅĢs ÅžmonÄs",
+ "privacy.private.long": "Tik sekÄjams",
+ "privacy.private.short": "SekÄjai",
+ "privacy.public.long": "Bet kas iÅĄ Mastodon ir ne Mastodon",
"privacy.public.short": "VieÅĄas",
- "privacy.unlisted.long": "Matomas visiems, bet atsisakyta atradimo funkcijÅŗ",
- "privacy.unlisted.short": "Neįtrauktas į sÄ
raÅĄÄ
",
+ "privacy.unlisted.additional": "Tai veikia lygiai taip pat, kaip ir vieÅĄa, tik įraÅĄas nebus rodomas tiesioginiuose srautuose, saitaÅžodÅžiose, narÅĄyme ar Mastodon paieÅĄkoje, net jei esi įtraukÄs (-usi) visÄ
paskyrÄ
.",
+ "privacy.unlisted.long": "MaÅžiau algoritminiÅŗ fanfarÅŗ",
+ "privacy.unlisted.short": "Tyliai vieÅĄa",
"privacy_policy.last_updated": "Paskutinį kartÄ
atnaujinta {date}",
"privacy_policy.title": "Privatumo politika",
"recommended": "Rekomenduojama",
@@ -484,7 +485,9 @@
"relative_time.minutes": "{number} min.",
"relative_time.seconds": "{number} sek.",
"relative_time.today": "ÅĄiandien",
+ "reply_indicator.attachments": "{count, plural, one {# priedas} few {# priedai} many {# priedo} other {# priedÅŗ}}",
"reply_indicator.cancel": "AtÅĄaukti",
+ "reply_indicator.poll": "Apklausa",
"report.block": "Blokuoti",
"report.categories.legal": "Legalus",
"report.categories.other": "Kita",
@@ -578,9 +581,7 @@
"units.short.thousand": "{count} tÅĢkst.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
- "upload_form.description_missing": "NÄra pridÄto apraÅĄymo",
"upload_form.edit": "Redaguoti",
- "upload_form.undo": "IÅĄtrinti",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.choose_image": "Pasirinkti vaizdÄ
",
"upload_modal.description_placeholder": "Greita rudoji lapÄ perÅĄoka tinginį ÅĄunį",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index 63ec6275b..b4426b4c4 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -37,7 +37,6 @@
"account.following": "Seko",
"account.following_counter": "{count, plural, one {{counter} sekojamais} other {{counter} sekojamie}}",
"account.follows.empty": "Å is lietotÄjs pagaidÄm nevienam neseko.",
- "account.follows_you": "Seko tev",
"account.go_to_profile": "Doties uz profilu",
"account.hide_reblogs": "SlÄpt @{name} izceltas ziÅas",
"account.in_memoriam": "PiemiÅai.",
@@ -87,7 +86,6 @@
"announcement.announcement": "PaziÅojums",
"attachments_list.unprocessed": "(neapstrÄdÄti)",
"audio.hide": "SlÄpt audio",
- "autosuggest_hashtag.per_week": "{count} nedÄÄŧÄ",
"boost_modal.combo": "Nospied {combo}, lai nÄkamreiz ÅĄo izlaistu",
"bundle_column_error.copy_stacktrace": "KopÄt kÄŧÅĢdu ziÅojumu",
"bundle_column_error.error.body": "PieprasÄĢto lapu nevarÄja atveidot. Tas varÄtu bÅĢt saistÄĢts ar kÄŧÅĢdu mÅĢsu kodÄ, vai tÄ ir pÄrlÅĢkprogrammas saderÄĢbas problÄma.",
@@ -144,22 +142,12 @@
"compose_form.lock_disclaimer": "Tavs konts nav {locked}. Ikviens var tev piesekot un redzÄt tikai sekotÄjiem paredzÄtos ziÅojumus.",
"compose_form.lock_disclaimer.lock": "slÄgts",
"compose_form.placeholder": "Kas tev padomÄ?",
- "compose_form.poll.add_option": "Pievienot izvÄli",
"compose_form.poll.duration": "Aptaujas ilgums",
- "compose_form.poll.option_placeholder": "IzvÄle Nr. {number}",
- "compose_form.poll.remove_option": "NoÅemt ÅĄo izvÄli",
"compose_form.poll.switch_to_multiple": "MainÄĢt aptaujas veidu, lai atÄŧautu vairÄkas izvÄles",
"compose_form.poll.switch_to_single": "MainÄĢt aptaujas veidu, lai atÄŧautu vienu izvÄli",
- "compose_form.publish": "PublicÄt",
"compose_form.publish_form": "Jauns ieraksts",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "SaglabÄt izmaiÅas",
- "compose_form.sensitive.hide": "{count, plural, one {AtzÄĢmÄt multividi kÄ sensitÄĢvu} other {AtzÄĢmÄt multivides kÄ sensitÄĢvas}}",
- "compose_form.sensitive.marked": "{count, plural, one {Multivide ir atzÄĢmÄta kÄ sensitÄĢva} other {Multivides ir atzÄĢmÄtas kÄ sensitÄĢvas}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Multivide nav atzÄĢmÄta kÄ sensitÄĢva} other {Multivides nav atzÄĢmÄtas kÄ sensitÄĢvas}}",
"compose_form.spoiler.marked": "NoÅemt satura brÄĢdinÄjumu",
"compose_form.spoiler.unmarked": "Pievienot satura brÄĢdinÄjumu",
- "compose_form.spoiler_placeholder": "Ieraksti savu brÄĢdinÄjumu ÅĄeit",
"confirmation_modal.cancel": "Atcelt",
"confirmations.block.block_and_report": "BloġÄt un ziÅot",
"confirmations.block.confirm": "BloġÄt",
@@ -404,7 +392,6 @@
"navigation_bar.direct": "PrivÄti pieminÄti",
"navigation_bar.discover": "AtklÄt",
"navigation_bar.domain_blocks": "BloġÄtie domÄni",
- "navigation_bar.edit_profile": "RediÄŖÄt profilu",
"navigation_bar.explore": "PÄrlÅĢkot",
"navigation_bar.favourites": "Izlase",
"navigation_bar.filters": "ApklusinÄtie vÄrdi",
@@ -511,14 +498,7 @@
"poll_button.add_poll": "Pievienot aptauju",
"poll_button.remove_poll": "NoÅemt aptauju",
"privacy.change": "MainÄĢt ieraksta privÄtumu",
- "privacy.direct.long": "Redzama tikai pieminÄtajiem lietotÄjiem",
- "privacy.direct.short": "Tikai minÄtie cilvÄki",
- "privacy.private.long": "Redzama tikai sekotÄjiem",
- "privacy.private.short": "Tikai sekotÄjiem",
- "privacy.public.long": "Redzams visiem",
"privacy.public.short": "Publiska",
- "privacy.unlisted.long": "Redzams visiem, bet izslÄgts no satura atklÄÅĄanas funkcijÄm",
- "privacy.unlisted.short": "NeiekÄŧautie",
"privacy_policy.last_updated": "PÄdÄjo reizi atjauninÄta {date}",
"privacy_policy.title": "PrivÄtuma politika",
"refresh": "AtsvaidzinÄt",
@@ -698,10 +678,8 @@
"upload_error.poll": "DatÅu augÅĄupielÄdes aptaujÄs nav atÄŧautas.",
"upload_form.audio_description": "Pievieno aprakstu cilvÄkiem ar dzirdes zudumu",
"upload_form.description": "Pievieno aprakstu vÄjredzÄĢgajiem",
- "upload_form.description_missing": "Apraksts nav pievienots",
"upload_form.edit": "RediÄŖÄt",
"upload_form.thumbnail": "NomainÄĢt sÄĢktÄlu",
- "upload_form.undo": "DzÄst",
"upload_form.video_description": "Pievieno aprakstu cilvÄkiem ar dzirdes vai redzes traucÄjumiem",
"upload_modal.analyzing_picture": "AnalizÄ attÄluâĻ",
"upload_modal.apply": "Pielietot",
diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json
index 371218bbf..f7080842b 100644
--- a/app/javascript/mastodon/locales/mk.json
+++ b/app/javascript/mastodon/locales/mk.json
@@ -25,7 +25,6 @@
"account.followers": "ĐĄĐģĐĩĐ´ĐąĐĩĐŊиŅи",
"account.followers.empty": "ĐиĐēĐžŅ ĐŊĐĩ ĐŗĐž ŅĐģĐĩди ОвОŅ ĐēĐžŅиŅĐŊиĐē ŅĐĩŅŅŅĐĩ.",
"account.follows.empty": "ĐĐžŅиŅĐŊиĐēĐžŅ ĐŊĐĩ ŅĐģĐĩди ĐŊиĐēĐžŅ ŅĐĩŅŅŅĐĩ.",
- "account.follows_you": "ĐĸĐĩ ŅĐģĐĩди ŅĐĩĐąĐĩ",
"account.hide_reblogs": "ĐĄĐžĐēŅиŅ ĐąŅŅŅ Од @{name}",
"account.link_verified_on": "ĐĄĐžĐŋŅŅĐĩвĐŊĐžŅŅĐ° ĐŊĐ° ОваŅ ĐģиĐŊĐē ĐąĐĩŅĐĩ ĐŋŅОвĐĩŅĐĩĐŊ ĐŊĐ° {date}",
"account.locked_info": "ĐĄŅĐ°ŅŅŅĐžŅ ĐŊĐ° ĐŋŅиваŅĐŊĐžŅŅ ĐŊĐ° ОваŅ ĐēĐžŅиŅĐŊиĐē Đĩ ŅĐĩŅиŅĐ°ĐŊ ĐēĐ°ĐēĐž СаĐēĐģŅŅĐĩĐŊ. ĐĐžŅиŅĐŊиĐēĐžŅ ОдĐģŅŅŅва ĐēĐžŅ ĐŧĐžĐļи Đ´Đ° ĐŗĐž ŅĐģĐĩди ĐŊĐĩĐŗĐž.",
@@ -49,7 +48,6 @@
"alert.rate_limited.message": "ĐйидĐĩŅĐĩ ŅĐĩ ĐŋОвŅĐžŅĐŊĐž ĐŋĐžŅĐģĐĩ {retry_time, time, medium}.",
"alert.unexpected.message": "ĐĐĩĐžŅĐĩĐēŅваĐŊĐ° ĐŗŅĐĩŅĐēĐ°.",
"alert.unexpected.title": "ĐŖĐŋŅ!",
- "autosuggest_hashtag.per_week": "{count} ĐŊĐĩĐ´ĐĩĐģĐŊĐž",
"boost_modal.combo": "ĐĐģиĐēĐŊи {combo} Са Đ´Đ° ĐŗĐž ĐŋŅĐĩŅĐēĐžĐēĐŊиŅ Ова ĐŊĐ°ŅĐĩĐ´ĐĩĐŊ ĐŋĐ°Ņ",
"bundle_column_error.retry": "ĐйидĐĩŅĐĩ ŅĐĩ ĐŋОвŅĐžŅĐŊĐž",
"bundle_modal_error.close": "ĐĐ°ŅвОŅи",
@@ -77,14 +75,8 @@
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer.lock": "СаĐēĐģŅŅĐĩĐŊ",
"compose_form.placeholder": "ШŅĐž иĐŧĐ°ŅĐĩ ĐŊĐ° ŅĐŧ?",
- "compose_form.poll.add_option": "ĐОдаŅ иСйОŅ",
"compose_form.poll.duration": "ĐŅĐĩĐŧĐĩŅŅĐ°ŅĐĩ ĐŊĐ° Đ°ĐŊĐēĐĩŅĐ°",
- "compose_form.poll.option_placeholder": "ĐСйĐĩŅи {number}",
- "compose_form.poll.remove_option": "ĐСйŅиŅи иСйОŅ",
"compose_form.publish_form": "Publish",
- "compose_form.sensitive.hide": "ĐĐąĐĩĐģĐĩĐļи ĐŧĐĩдиа ĐēĐ°ĐēĐž ŅĐĩĐŊСиŅивĐŊĐ°",
- "compose_form.sensitive.marked": "ĐĐĩдиаŅĐ° Đĩ ОйĐĩĐģĐĩĐļĐ°ĐŊĐ° ĐēĐ°ĐēĐž ŅĐĩĐŊСиŅивĐŊĐ°",
- "compose_form.sensitive.unmarked": "ĐĐĩдиаŅĐ° ĐŊĐĩ Đĩ ОйĐĩĐģĐĩĐļĐ°ĐŊĐ° ĐēĐ°ĐēĐž ŅĐĩĐŊСиŅивĐŊĐ°",
"compose_form.spoiler.marked": "ĐĸĐĩĐēŅŅĐžŅ Đĩ ŅĐžĐēŅиĐĩĐŊ Сад ĐŋŅĐĩĐ´ŅĐŋŅĐĩĐ´ŅваŅĐĩ",
"compose_form.spoiler.unmarked": "ĐĸĐĩĐēŅŅĐžŅ ĐŊĐĩ Đĩ ŅĐžĐēŅиĐĩĐŊ",
"confirmation_modal.cancel": "ĐŅĐēĐ°Đļи",
@@ -183,7 +175,6 @@
"keyboard_shortcuts.up": "to move up in the list",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "ĐŖŅĐĩди ĐŋŅĐžŅиĐģ",
"navigation_bar.filters": "ĐĐ°ĐŧĐžĐģŅĐĩĐŊи СйОŅОви",
"navigation_bar.follow_requests": "ĐĄĐģĐĩди ĐŋĐžĐēĐ°ĐŊи",
"navigation_bar.follows_and_followers": "ĐĄĐģĐĩĐ´ĐĩŅĐ° и ŅĐģĐĩĐ´ĐąĐĩĐŊиŅи",
@@ -230,12 +221,7 @@
"poll_button.add_poll": "ĐОдадĐĩŅĐĩ ĐŊОва Đ°ĐŊĐēĐĩŅĐ°",
"poll_button.remove_poll": "ĐСйŅиŅĐĩŅĐĩ Đ°ĐŊĐēĐĩŅĐ°",
"privacy.change": "ШŅĐĩĐģОваŅ ŅŅĐ°ŅŅŅ ĐŊĐ° ĐŋŅиваŅĐŊĐžŅŅ",
- "privacy.direct.long": "ĐĐąŅави ŅĐ°ĐŧĐž ĐŊĐ° ŅĐŋĐžĐŧĐŊĐ°Ņи ĐēĐžŅиŅĐŊиŅи",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "ĐĐąŅави ŅĐ°ĐŧĐž ĐŊĐ° ŅĐģĐĩĐ´ĐąĐĩĐŊиŅи",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "ĐавĐŊĐž",
- "privacy.unlisted.short": "ĐĐĩОйŅавĐĩĐŊĐž",
"refresh": "ĐŅвĐĩĐļи",
"regeneration_indicator.label": "ĐŅиŅŅваŅĐĩâĻ",
"regeneration_indicator.sublabel": "ĐĐ°ŅиОŅ ĐŊОвОŅŅи ŅĐĩ ĐŋОдĐŗĐžŅвŅвааŅ!",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index b00cedc6f..0059dd333 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -26,7 +26,6 @@
"account.following": "ā´Ēā´ŋā´¨āĩā´¤āĩā´ā´°āĩā´¨āĩā´¨āĩ",
"account.following_counter": "{count, plural, one {{counter} ā´Ēā´ŋā´¨āĩā´¤āĩā´ā´°āĩā´¨āĩā´¨āĩ} other {{counter} ā´Ēā´ŋā´¨āĩā´¤āĩā´ā´°āĩā´¨āĩā´¨āĩ}}",
"account.follows.empty": "ā´ ā´ā´Ēā´¯āĩā´āĩā´¤ā´žā´ĩāĩ ā´ā´°āĩā´¯āĩā´ ā´ā´¤āĩā´ĩā´°āĩ ā´Ēā´ŋā´¨āĩā´¤āĩā´ā´°āĩā´¨āĩā´¨ā´ŋā´˛āĩā´˛.",
- "account.follows_you": "ā´¨ā´ŋā´āĩā´ā´ŗāĩ ā´Ēā´ŋā´¨āĩā´¤āĩā´ā´°āĩā´¨āĩā´¨āĩ",
"account.go_to_profile": "ā´Ēāĩā´°āĩā´Ģāĩā´˛ā´ŋā´˛āĩā´āĩā´āĩ ā´Ēāĩā´ā´žā´",
"account.hide_reblogs": "@{name} ā´Ŧāĩā´¸āĩā´ąāĩā´ąāĩ ā´āĩā´¯āĩā´¤ā´ĩ ā´Žā´ąā´¯āĩā´āĩā´",
"account.joined_short": "ā´āĩā´¯ā´ŋāĩģ ā´āĩā´¯āĩâā´¤ā´ŋā´°ā´ŋā´āĩā´āĩā´¨āĩā´¨āĩ",
@@ -61,7 +60,6 @@
"announcement.announcement": "ā´
ā´ąā´ŋā´¯ā´ŋā´Ēāĩā´Ēāĩ",
"attachments_list.unprocessed": "(ā´Ēāĩā´°āĩā´¸ā´¸āĩā´¸āĩ ā´āĩā´¯āĩā´¯ā´žā´¤āĩā´¤ā´¤āĩ)",
"audio.hide": "ā´ļā´Ŧāĩā´Ļā´ ā´ā´´ā´ŋā´ĩā´žā´āĩā´āĩā´",
- "autosuggest_hashtag.per_week": "ā´ā´´āĩā´ ā´¤āĩā´ąāĩā´ {count}",
"boost_modal.combo": "ā´
ā´āĩā´¤āĩā´¤ ā´¤ā´ĩā´Ŗ ā´ā´¤āĩ ā´ā´´ā´ŋā´ĩā´žā´āĩā´āĩā´ĩā´žāĩģ {combo} ā´āĩā´āĩā´ā´žā´ĩāĩā´¨āĩā´¨ā´¤ā´žā´Ŗāĩ",
"bundle_column_error.network.title": "ā´¨āĩā´ąāĩā´ąāĩâā´ĩāĩŧā´āĩā´āĩ ā´Ēā´ŋā´ļā´āĩ",
"bundle_column_error.retry": "ā´ĩāĩā´Ŗāĩā´āĩā´ ā´ļāĩā´°ā´Žā´ŋā´āĩā´āĩā´",
@@ -103,17 +101,12 @@
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer.lock": "ā´˛āĩā´āĩā´āĩā´āĩā´¯āĩā´¤āĩ",
"compose_form.placeholder": "ā´¨ā´ŋā´āĩā´ā´ŗāĩā´āĩ ā´Žā´¨ā´¸āĩā´¸ā´ŋāĩŊ ā´ā´¨āĩā´¤ā´žā´Ŗāĩ?",
- "compose_form.poll.add_option": "ā´ā´°āĩ ā´āĩā´¯āĩâā´¸āĩ ā´āĩāĩŧā´āĩā´āĩā´",
"compose_form.poll.duration": "ā´¤ā´ŋā´°ā´āĩā´āĩā´āĩā´Ēāĩā´Ēā´ŋā´¨āĩā´ąāĩ ā´¸ā´Žā´¯ā´Ļāĩāĩŧā´āĩā´¯ā´",
- "compose_form.poll.option_placeholder": "ā´āĩā´¯āĩâā´¸āĩ {number}",
- "compose_form.poll.remove_option": "ā´ ā´Ąā´ŋā´ĩāĩā´¸āĩ ā´Žā´žā´ąāĩā´ąāĩā´",
"compose_form.poll.switch_to_multiple": "ā´ĩāĩā´āĩā´āĩā´āĩā´Ēāĩā´Ēā´ŋāĩŊ ā´ā´¨āĩā´¨ā´ŋā´˛ā´§ā´ŋā´ā´ ā´āĩā´¯āĩâā´¸āĩā´āĩž ā´āĩžā´Ēāĩā´Ēāĩā´āĩā´¤āĩā´",
"compose_form.poll.switch_to_single": "ā´ĩāĩā´āĩā´āĩā´āĩā´Ēāĩā´Ēā´ŋāĩŊ ā´ā´°āĩā´ąāĩā´ą ā´āĩā´¯āĩâā´¸āĩâ ā´Žā´žā´¤āĩā´°ā´ ā´ā´āĩā´āĩā´",
"compose_form.publish_form": "Publish",
- "compose_form.publish_loud": "{ā´Ēāĩā´°ā´¸ā´ŋā´Ļāĩā´§āĩā´ā´°ā´ŋā´āĩā´āĩā´}!",
"compose_form.spoiler.marked": "ā´ā´´āĩā´¤āĩā´¤āĩ ā´Žāĩā´¨āĩā´¨ā´ąā´ŋā´¯ā´ŋā´Ēāĩā´Ēā´ŋā´¨ā´žāĩŊ ā´Žā´ąā´āĩā´ā´ŋā´°ā´ŋā´āĩā´āĩā´¨āĩā´¨āĩ",
"compose_form.spoiler.unmarked": "ā´ā´´āĩā´¤āĩā´¤āĩ ā´Žā´ąā´¯āĩā´āĩā´ā´Ēāĩā´Ēāĩā´āĩā´ā´ŋā´āĩā´ā´ŋā´˛āĩā´˛",
- "compose_form.spoiler_placeholder": "ā´¨ā´ŋā´āĩā´ā´ŗāĩā´āĩ ā´Žāĩā´¨āĩā´¨ā´ąā´ŋā´¯ā´ŋā´Ēāĩā´Ēāĩ ā´ā´ĩā´ŋā´āĩ ā´ā´´āĩā´¤āĩā´",
"confirmation_modal.cancel": "ā´ąā´Ļāĩā´Ļā´žā´āĩā´āĩā´",
"confirmations.block.block_and_report": "ā´¤ā´ā´¯āĩā´ā´¯āĩā´ ā´ąā´ŋā´Ēāĩā´Ēāĩāĩŧā´āĩā´āĩā´ ā´āĩā´¯āĩā´¯āĩā´",
"confirmations.block.confirm": "ā´¤ā´ā´¯āĩā´",
@@ -245,7 +238,6 @@
"navigation_bar.compose": "ā´Ēāĩā´¤ā´ŋā´¯ ā´āĩā´āĩā´āĩ ā´ā´´āĩā´¤āĩā´",
"navigation_bar.discover": "ā´ā´Ŗāĩā´āĩā´¤āĩā´¤āĩā´",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "ā´Ēāĩā´°āĩā´ĢāĩāĩŊ ā´¤ā´ŋā´°āĩā´¤āĩā´¤āĩā´",
"navigation_bar.follow_requests": "ā´Ēā´ŋā´¨āĩā´¤āĩā´ā´°ā´žā´¨āĩā´ŗāĩā´ŗ ā´
ā´āĩā´¯āĩŧā´¤āĩā´Ĩā´¨ā´āĩž",
"navigation_bar.lists": "ā´˛ā´ŋā´¸āĩā´ąāĩā´ąāĩā´āĩž",
"navigation_bar.logout": "ā´˛āĩā´āĩā´āĩā´āĩ",
@@ -303,10 +295,6 @@
"poll_button.add_poll": "ā´ā´°āĩ ā´Ēāĩāĩž ā´āĩāĩŧā´āĩā´āĩā´",
"poll_button.remove_poll": "ā´Ēāĩāĩž ā´¨āĩā´āĩā´ā´ā´āĩā´¯āĩā´¯āĩā´",
"privacy.change": "ā´āĩā´āĩā´āĩ ā´¸āĩā´ĩā´ā´žā´°āĩā´¯ā´¤ ā´āĩā´°ā´Žāĩā´ā´°ā´ŋā´āĩā´āĩā´",
- "privacy.direct.long": "Post to mentioned users only",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "ā´ā´˛āĩā´˛ā´žā´ĩā´°āĩâā´āĩā´āĩā´",
"refresh": "ā´Ēāĩā´¤āĩā´āĩā´āĩā´",
"regeneration_indicator.label": "ā´˛ā´āĩā´¯ā´Žā´žā´āĩā´āĩā´¨āĩā´¨āĩâĻ",
@@ -373,7 +361,6 @@
"upload_form.description": "ā´ā´žā´´āĩā´ā´ļā´āĩā´¤ā´ŋ ā´ā´˛āĩā´˛ā´žā´¤āĩā´¤ā´ĩāĩŧā´āĩā´āĩ ā´ĩāĩā´Ŗāĩā´ā´ŋ ā´ĩā´ŋā´ĩā´°ā´Ŗā´ ā´¨āĩŊā´āĩ",
"upload_form.edit": "ā´¤ā´ŋā´°āĩā´¤āĩā´¤āĩā´",
"upload_form.thumbnail": "ā´˛ā´āĩā´ā´ŋā´¤āĩā´°ā´ ā´Žā´žā´ąāĩā´ąāĩā´",
- "upload_form.undo": "ā´ā´˛āĩā´˛ā´žā´¤ā´žā´āĩā´āĩā´",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "ā´ā´ŋā´¤āĩā´°ā´ ā´ĩā´ŋā´ļā´ā´˛ā´¨ā´ ā´āĩā´¯āĩā´¯āĩā´¨āĩā´¨āĩâĻ",
"upload_modal.apply": "ā´Ēāĩā´°ā´¯āĩā´ā´ŋā´āĩā´āĩā´",
diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json
index 75b75375b..20231f0bb 100644
--- a/app/javascript/mastodon/locales/mr.json
+++ b/app/javascript/mastodon/locales/mr.json
@@ -35,7 +35,6 @@
"account.following": "ā¤
ā¤¨āĨā¤¸ā¤°ā¤Ŗ",
"account.following_counter": "{count, plural, one {{counter} following} other {{counter} following}}",
"account.follows.empty": "ā¤šā¤ž ā¤ĩā¤žā¤Ēā¤°ā¤ā¤°āĨā¤¤ā¤ž ā¤
ā¤āĨā¤¨ā¤Ēā¤°āĨā¤¯ā¤ā¤¤ ā¤āĨā¤Ŗā¤žā¤ā¤ž ā¤
ā¤¨āĨā¤¯ā¤žā¤¯āĨ ā¤¨ā¤žā¤šāĨ.",
- "account.follows_you": "ā¤¤āĨā¤Žā¤ā¤ž ā¤
ā¤¨āĨā¤¯ā¤žā¤¯āĨ ā¤ā¤šāĨ",
"account.go_to_profile": "ā¤ĒāĨā¤°āĨā¤Ģā¤žā¤ā¤˛ ā¤ĩā¤° ā¤ā¤ž",
"account.hide_reblogs": "@{name} ā¤Ēā¤žā¤¸āĨā¤¨ ā¤¸ā¤°āĨā¤ĩ ā¤ŦāĨā¤¸āĨā¤ ā¤˛ā¤Ēā¤ĩā¤ž",
"account.joined_short": "ā¤¸ā¤žā¤ŽāĨā¤˛ ā¤ā¤žā¤˛āĨ",
@@ -74,7 +73,6 @@
"alert.unexpected.message": "ā¤ā¤ ā¤
ā¤¨ā¤ĒāĨā¤āĨā¤ˇā¤ŋā¤¤ ā¤¤āĨā¤°āĨā¤āĨ ā¤ā¤˛āĨ.",
"alert.unexpected.title": "ā¤
ā¤°āĨā¤°āĨ!",
"announcement.announcement": "ā¤āĨā¤ˇā¤Ŗā¤ž",
- "autosuggest_hashtag.per_week": "{count} ā¤ĒāĨā¤°ā¤¤ā¤ŋā¤¸ā¤ĒāĨā¤¤ā¤žā¤š",
"bundle_column_error.retry": "ā¤ĒāĨā¤¨āĨā¤šā¤ž ā¤ĒāĨā¤°ā¤¯ā¤¤āĨā¤¨ ā¤ā¤°ā¤ž",
"bundle_modal_error.close": "ā¤Ŧā¤ā¤Ļ ā¤ā¤°ā¤ž",
"bundle_modal_error.message": "ā¤šā¤ž ā¤ā¤ā¤ ā¤˛āĨā¤Ą ā¤ā¤°ā¤¤ā¤žā¤ā¤¨ā¤ž ā¤ā¤žā¤šāĨā¤¤ā¤°āĨ ā¤āĨā¤ā¤˛āĨ ā¤ā¤šāĨ.",
@@ -100,9 +98,6 @@
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.placeholder": "ā¤ā¤Ēā¤˛āĨā¤¯ā¤ž ā¤Žā¤¨ā¤žā¤¤ ā¤ā¤žā¤¯ ā¤ā¤šāĨ?",
- "compose_form.poll.add_option": "ā¤¨ā¤ĩāĨā¤¨ ā¤Ēā¤°āĨā¤¯ā¤žā¤¯",
- "compose_form.poll.option_placeholder": "ā¤¨ā¤ŋā¤ĩā¤Ą {number}",
- "compose_form.poll.remove_option": "ā¤šā¤ž ā¤Ēā¤°āĨā¤¯ā¤žā¤¯ ā¤ā¤žā¤ĸā¤ž",
"compose_form.publish_form": "Publish",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
@@ -229,10 +224,6 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "Adjust status privacy",
- "privacy.direct.long": "Post to mentioned users only",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
- "privacy.private.short": "Followers-only",
"report.placeholder": "Type or paste additional comments",
"report.submit": "Submit report",
"report.target": "Report {target}",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 724e07ae7..8c1ff6337 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -37,7 +37,6 @@
"account.following": "Mengikuti",
"account.following_counter": "{count, plural, one {{counter} Diikuti} other {{counter} Diikuti}}",
"account.follows.empty": "Pengguna ini belum mengikuti sesiapa.",
- "account.follows_you": "Mengikuti anda",
"account.go_to_profile": "Pergi ke profil",
"account.hide_reblogs": "Sembunyikan galakan daripada @{name}",
"account.in_memoriam": "Dalam Memoriam.",
@@ -87,7 +86,6 @@
"announcement.announcement": "Pengumuman",
"attachments_list.unprocessed": "(belum diproses)",
"audio.hide": "Sembunyikan audio",
- "autosuggest_hashtag.per_week": "{count} seminggu",
"boost_modal.combo": "Anda boleh tekan {combo} untuk melangkauinya pada waktu lain",
"bundle_column_error.copy_stacktrace": "Salin laporan ralat",
"bundle_column_error.error.body": "Halaman yang diminta gagal dipaparkan. Ini mungkin disebabkan oleh pepijat dalam kod kami, atau masalah keserasian pelayar.",
@@ -144,22 +142,12 @@
"compose_form.lock_disclaimer": "Akaun anda tidak {locked}. Sesiapa pun boleh mengikuti anda untuk melihat hantaran pengikut-sahaja anda.",
"compose_form.lock_disclaimer.lock": "dikunci",
"compose_form.placeholder": "Apakah yang sedang anda fikirkan?",
- "compose_form.poll.add_option": "Tambah pilihan",
"compose_form.poll.duration": "Tempoh undian",
- "compose_form.poll.option_placeholder": "Pilihan {number}",
- "compose_form.poll.remove_option": "Buang pilihan ini",
"compose_form.poll.switch_to_multiple": "Ubah kepada membenarkan aneka undian",
"compose_form.poll.switch_to_single": "Ubah kepada undian pilihan tunggal",
- "compose_form.publish": "Terbit",
"compose_form.publish_form": "Terbit",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Simpan perubahan",
- "compose_form.sensitive.hide": "{count, plural, one {Tandakan media sbg sensitif} other {Tandakan media sbg sensitif}}",
- "compose_form.sensitive.marked": "{count, plural, one {Media telah ditanda sbg sensitif} other {Media telah ditanda sbg sensitif}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Media tidak ditanda sbg sensitif} other {Media tidak ditanda sbg sensitif}}",
"compose_form.spoiler.marked": "Buang amaran kandungan",
"compose_form.spoiler.unmarked": "Tambah amaran kandungan",
- "compose_form.spoiler_placeholder": "Tulis amaran anda di sini",
"confirmation_modal.cancel": "Batal",
"confirmations.block.block_and_report": "Sekat & Lapor",
"confirmations.block.confirm": "Sekat",
@@ -400,7 +388,6 @@
"navigation_bar.direct": "Sebutan peribadi",
"navigation_bar.discover": "Teroka",
"navigation_bar.domain_blocks": "Domain disekat",
- "navigation_bar.edit_profile": "Sunting profil",
"navigation_bar.explore": "Teroka",
"navigation_bar.favourites": "Kegemaran",
"navigation_bar.filters": "Perkataan yang dibisukan",
@@ -507,14 +494,7 @@
"poll_button.add_poll": "Tambah undian",
"poll_button.remove_poll": "Buang undian",
"privacy.change": "Ubah privasi hantaran",
- "privacy.direct.long": "Hanya boleh dilihat oleh pengguna disebut",
- "privacy.direct.short": "Orang yang disebut sahaja",
- "privacy.private.long": "Hanya boleh dilihat oleh pengikut",
- "privacy.private.short": "Pengikut sahaja",
- "privacy.public.long": "Kelihatan untuk semua",
"privacy.public.short": "Awam",
- "privacy.unlisted.long": "Terpapar untuk semua, tetapi menarik diri daripada ciri penemuan",
- "privacy.unlisted.short": "Tidak tersenarai",
"privacy_policy.last_updated": "Dikemaskini {date}",
"privacy_policy.title": "Dasar Privasi",
"refresh": "Muat semula",
@@ -694,10 +674,8 @@
"upload_error.poll": "Tidak boleh memuat naik fail bersama undian.",
"upload_form.audio_description": "Jelaskan untuk orang yang ada masalah pendengaran",
"upload_form.description": "Jelaskan untuk orang yang ada masalah penglihatan",
- "upload_form.description_missing": "Tiada keterangan ditambah",
"upload_form.edit": "Sunting",
"upload_form.thumbnail": "Ubah gambar kecil",
- "upload_form.undo": "Padam",
"upload_form.video_description": "Jelaskan untuk orang yang ada masalah pendengaran atau penglihatan",
"upload_modal.analyzing_picture": "Menganalisis gambarâĻ",
"upload_modal.apply": "Guna",
diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json
index 917419d17..396a72ac4 100644
--- a/app/javascript/mastodon/locales/my.json
+++ b/app/javascript/mastodon/locales/my.json
@@ -38,7 +38,6 @@
"account.following": "á
áąáŦááˇáēááŧááˇáēááąáááē",
"account.following_counter": "{count, plural, one {á
áąáŦááēáˇááŧááēáˇááŦá¸áá° {counter}} other {á
áąáŦááēáˇááŧááēáˇááŦá¸áá°ááģáŦḠ{counter}}}",
"account.follows.empty": "á¤áá°áááē áááēáá°áˇááá¯ááģáž á
áąáŦááˇáēááŧááˇáēááŧááēḠááážáááąá¸ááĢá",
- "account.follows_you": "áááˇáēááᯠá
áąáŦááˇáēááŧááˇáēááąáááē",
"account.go_to_profile": "áááá¯ááá¯ááēá¸ááá¯áˇ ááŊáŦá¸áááē",
"account.hide_reblogs": "@{name} á ááģážááąáážá¯ááᯠáážááēááŦá¸áááē",
"account.in_memoriam": "áĄáážááēáá",
@@ -88,7 +87,6 @@
"announcement.announcement": "ááŧáąááŧáŦááģááē",
"attachments_list.unprocessed": "(ááá¯ááēááąáŦááēáááąá¸)",
"audio.hide": "áĄááļááááēáááē",
- "autosuggest_hashtag.per_week": "áá
áēáááēááģážááē {count}\n",
"boost_modal.combo": "á¤áĄááŦááᯠááąáŦááēáá
áēááŧáááēááģáąáŦáēáááē {combo} ááá¯áážáááēááá¯ááēáááēá",
"bundle_column_error.copy_stacktrace": "á
áŦáá°á¸ááŦááŊááēááŧáŋááŦáážááááē",
"bundle_column_error.error.body": "á¤á
áŦááģááēáážáŦááᯠááąáŦáēááŧááŦááŊááē ááŧáŋááŦáážáááąáááē",
@@ -145,22 +143,12 @@
"compose_form.lock_disclaimer": "áááˇáēáĄááąáŦááˇáēááᯠ{ááąáŦáˇáááēáááŦá¸ááĢ}á áááˇáēááąáŦááēááá¯ááē-ááŽá¸áááˇáēááá¯áˇá
áēááģáŦá¸ááᯠááŧááˇáēáážá¯áááē áááēáá°áááᯠáááˇáēáĄáŦḠááá¯ááēááŧááēáˇááá¯ááēááĢáááēá",
"compose_form.lock_disclaimer.lock": "ááąáŦáˇáááēááŦá¸áááē",
"compose_form.placeholder": "What is on your mind?",
- "compose_form.poll.add_option": "ááŊáąá¸ááģááēáážá¯áááēááļááąáĢááēá¸áááēáˇááĢ",
"compose_form.poll.duration": "á
á
áēáááēá¸ááŧáŦááģáááē",
- "compose_form.poll.option_placeholder": "ááŊáąá¸ááģááēáážá¯ {number}\n",
- "compose_form.poll.remove_option": "á¤ááŊáąá¸ááģááēáážá¯ááᯠáááēáá¯ááēááĢ",
"compose_form.poll.switch_to_multiple": "á
á
áēáááēá¸ááŊááēáá
áēáá¯áááēááá¯ááąáŦááášáááŧá¯ááģááēáááēááļáááē",
"compose_form.poll.switch_to_single": "á
á
áēáááēá¸ááŊááē áá
áēáá¯ááá¯ááŦááŊáąá¸ááģááēááŊááēáˇááŧá¯áááē",
- "compose_form.publish": "ááá¯áˇá
áēáááēáááē",
"compose_form.publish_form": "ááá¯áˇá
áēáááēáááē",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ááŧáąáŦááēá¸áá˛áážá¯ááģáŦá¸ááᯠááááēá¸áááēá¸ááĢ",
- "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
- "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
- "compose_form.spoiler_placeholder": "áááááąá¸á
áŦááá¯á¤ááąááŦááŊááēááąá¸ááĢ",
"confirmation_modal.cancel": "áááēááģááēáááē",
"confirmations.block.block_and_report": "áááąáŦáˇááŧáŽá¸ ááá¯ááēááŧáŦá¸áááē",
"confirmations.block.confirm": "áááąáŦáˇáááē",
@@ -406,7 +394,6 @@
"navigation_bar.direct": "ááŽá¸áááˇáēááąáŦáēááŧááģááēááģáŦá¸",
"navigation_bar.discover": "áážáŦááŊáąááĢ",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "ááá¯ááēááąá¸áážááēáááēá¸ááŧááēáááēáááē",
"navigation_bar.explore": "á
á°á¸á
ááēá¸áááē",
"navigation_bar.favourites": "Favorites",
"navigation_bar.filters": "á
ááŦá¸áá¯áļá¸ááģáŦḠááááēááŦá¸ááĢ",
@@ -520,14 +507,7 @@
"poll_button.add_poll": "á
á
áēáááēá¸ááąáŦááēáááē",
"poll_button.remove_poll": "á
á
áēáááēá¸áááēááģááēáááē",
"privacy.change": "Adjust status privacy",
- "privacy.direct.long": "áááēá¸áážááēá¸ááąáĢáēáá°ááŽá¸áááēáˇ",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "ááąáŦáēááá¯á¸áá¯ááēáá°ááŽá¸áááēáˇ",
- "privacy.private.short": "á
áąáŦááˇáēááŧááˇáēáá°ááģáŦá¸ááŦ",
- "privacy.public.long": "áĄáŦá¸áá¯áļḠááŧááēááá¯ááēáááē",
"privacy.public.short": "áĄááģáŦá¸ááá¯ááŧáááē",
- "privacy.unlisted.long": "áĄáŦá¸áá¯áļá¸ááŧááēááá¯ááēááąáŦáēáááēḠáážáŦááŊáąáážá¯ááģáŦá¸ááž áááēáá¯ááēááŦá¸áááē",
- "privacy.unlisted.short": "á
áŦáááēá¸áááŊááēá¸ááŦá¸ááĢ",
"privacy_policy.last_updated": "ááąáŦááēáá¯áļḠááŧááēáááēáá˛áˇáááˇáēáááēá
áŊᲠ{date}",
"privacy_policy.title": "ááá¯ááēááąá¸áĄááģááēáĄáááēáá°ááĢá",
"recommended": "áĄááŧáļááŧá¯áááē",
@@ -709,10 +689,8 @@
"upload_error.poll": "á
á
áēáááēá¸áážááēáˇáĄáá°ááá¯ááēááģáŦá¸áááēááŊááēáˇáááŧá¯ááĢ",
"upload_form.audio_description": "áĄááŧáŦá¸áĄáŦáá¯áļááģáá¯áˇááŊááēá¸ááąáŦ áááēáá˛ááąáŦáá°ááģáŦá¸áĄááŊááē ááąáŦáēááŧááŦá¸áááē",
"upload_form.description": "áĄááŧááēáĄáŦáá¯áļááģáá¯áˇááŊááēá¸ááąáŦ áááēáá˛ááąáŦáá°ááģáŦá¸áĄááŊááē ááąáŦáēááŧááŦá¸áááē",
- "upload_form.description_missing": "ááąáŦáēááŧááģááē ááááˇáēááĢ",
"upload_form.edit": "ááŧááēáááē",
"upload_form.thumbnail": "áá¯áļááąá¸ááᯠááŧáąáŦááēá¸ááĢ",
- "upload_form.undo": "ááģááēáááē",
"upload_form.video_description": "áĄááŧááēáĄáŦáá¯áļáážááēáˇáĄááŧáŦá¸áĄáŦáá¯áļ ááģáá¯áˇááŊááēá¸ááąáŦ áááēáá˛ááąáŦáá°ááģáŦá¸áĄááŊááē ááąáŦáēááŧááŦá¸áááē",
"upload_modal.analyzing_picture": "áá¯áļáĄáŦḠááá¯ááēá¸ááŧáŦá¸á
áááēááŧáŦááąáááē...",
"upload_modal.apply": "áá¯áļá¸ááĢ",
diff --git a/app/javascript/mastodon/locales/ne.json b/app/javascript/mastodon/locales/ne.json
index 229d4f471..86e24a15f 100644
--- a/app/javascript/mastodon/locales/ne.json
+++ b/app/javascript/mastodon/locales/ne.json
@@ -69,12 +69,5 @@
"compose.language.change": "ā¤ā¤žā¤ˇā¤ž ā¤Ēā¤°ā¤ŋā¤ĩā¤°āĨā¤¤ā¤¨ ā¤ā¤°āĨā¤¨āĨā¤šāĨā¤¸āĨ",
"compose.language.search": "ā¤ā¤žā¤ˇā¤žā¤šā¤°āĨ ā¤āĨā¤āĨā¤¨āĨā¤šāĨā¤¸āĨ...",
"compose_form.direct_message_warning_learn_more": "ā¤Ĩā¤Ē ā¤ā¤žā¤¨āĨā¤¨āĨā¤šāĨā¤¸āĨ",
- "compose_form.poll.add_option": "ā¤ĩā¤ŋā¤ā¤˛āĨā¤Ē ā¤Ĩā¤ĒāĨā¤¨āĨā¤šāĨā¤¸āĨ",
- "compose_form.poll.remove_option": "ā¤¯āĨ ā¤ĩā¤ŋā¤ā¤˛āĨā¤Ē ā¤šā¤ā¤žā¤ā¤¨āĨā¤šāĨā¤¸āĨ",
- "compose_form.publish_form": "ā¤¨ā¤¯ā¤žā¤ ā¤ĒāĨā¤¸āĨā¤",
- "compose_form.save_changes": "ā¤Ēā¤°ā¤ŋā¤ĩā¤°āĨā¤¤ā¤¨ā¤šā¤°āĨ ā¤¸āĨā¤ ā¤ā¤°āĨā¤¨āĨā¤šāĨā¤¸",
- "compose_form.sensitive.hide": "{count, plural, one {ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ ā¤Žā¤ŋā¤Ąā¤ŋā¤¯ā¤žā¤āĨ ā¤°āĨā¤Ēā¤Žā¤ž ā¤ā¤ŋā¤¨āĨā¤š ā¤˛ā¤ā¤žā¤ā¤¨āĨā¤šāĨā¤¸āĨ} other {ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ ā¤Žā¤ŋā¤Ąā¤ŋā¤¯ā¤žā¤šā¤°āĨā¤āĨ ā¤°āĨā¤Ēā¤Žā¤ž ā¤ā¤ŋā¤¨āĨā¤š ā¤˛ā¤ā¤žā¤ā¤¨āĨā¤šāĨā¤¸āĨ}}",
- "compose_form.sensitive.marked": "{count, plural, one {ā¤Žā¤ŋā¤Ąā¤ŋā¤¯ā¤žā¤˛ā¤žā¤ ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ ā¤°āĨā¤Ēā¤Žā¤ž ā¤ā¤ŋā¤¨āĨā¤š ā¤˛ā¤ā¤žā¤ā¤ā¤āĨ ā¤} other {ā¤Žā¤ŋā¤Ąā¤ŋā¤¯ā¤žā¤šā¤°āĨā¤˛ā¤žā¤ ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ ā¤°āĨā¤Ēā¤Žā¤ž ā¤ā¤ŋā¤¨āĨā¤š ā¤˛ā¤ā¤žā¤ā¤ā¤āĨ ā¤}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ā¤Žā¤ŋā¤Ąā¤ŋā¤¯ā¤žā¤˛ā¤žā¤ ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ ā¤°āĨā¤Ēā¤Žā¤ž ā¤ā¤ŋā¤¨āĨā¤š ā¤˛ā¤ā¤žā¤ā¤ā¤āĨ ā¤āĨā¤¨} other {ā¤Žā¤ŋā¤Ąā¤ŋā¤¯ā¤žā¤šā¤°āĨā¤˛ā¤žā¤ ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ ā¤°āĨā¤Ēā¤Žā¤ž ā¤ā¤ŋā¤¨āĨā¤š ā¤˛ā¤ā¤žā¤ā¤ā¤āĨ ā¤āĨā¤¨}}",
- "compose_form.spoiler_placeholder": "ā¤¯ā¤šā¤žā¤ ā¤ā¤ĢāĨā¤¨āĨ ā¤āĨā¤¤ā¤žā¤ĩā¤¨āĨ ā¤˛āĨā¤āĨā¤¨āĨā¤šāĨā¤¸āĨ"
+ "compose_form.publish_form": "ā¤¨ā¤¯ā¤žā¤ ā¤ĒāĨā¤¸āĨā¤"
}
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 295b420fd..e38f8fd0b 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Geen berichten",
"account.featured_tags.title": "Uitgelichte hashtags van {name}",
"account.follow": "Volgen",
+ "account.follow_back": "Terugvolgen",
"account.followers": "Volgers",
"account.followers.empty": "Deze gebruiker heeft nog geen volgers of heeft deze verborgen.",
"account.followers_counter": "{count, plural, one {{counter} volger} other {{counter} volgers}}",
"account.following": "Volgend",
"account.following_counter": "{count, plural, one {{counter} volgend} other {{counter} volgend}}",
"account.follows.empty": "Deze gebruiker volgt nog niemand of heeft deze verborgen.",
- "account.follows_you": "Volgt jou",
"account.go_to_profile": "Ga naar profiel",
"account.hide_reblogs": "Boosts van @{name} verbergen",
"account.in_memoriam": "In memoriam.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Meldingen negeren",
"account.mute_short": "Negeren",
"account.muted": "Genegeerd",
+ "account.mutual": "Jullie volgen elkaar",
"account.no_bio": "Geen beschrijving opgegeven.",
"account.open_original_page": "Originele pagina openen",
"account.posts": "Berichten",
@@ -88,7 +89,6 @@
"announcement.announcement": "Mededeling",
"attachments_list.unprocessed": "(niet verwerkt)",
"audio.hide": "Audio verbergen",
- "autosuggest_hashtag.per_week": "{count} per week",
"boost_modal.combo": "Je kunt {combo} klikken om dit de volgende keer over te slaan",
"bundle_column_error.copy_stacktrace": "Foutrapportage kopiÃĢren",
"bundle_column_error.error.body": "De opgevraagde pagina kon niet worden weergegeven. Dit kan het gevolg zijn van een fout in onze broncode, of van een compatibiliteitsprobleem met je webbrowser.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de berichten zien die je alleen aan jouw volgers hebt gericht.",
"compose_form.lock_disclaimer.lock": "vergrendeld",
"compose_form.placeholder": "Wat wil je kwijt?",
- "compose_form.poll.add_option": "Keuze toevoegen",
+ "compose_form.poll.add_option": "Optie toevoegen",
"compose_form.poll.duration": "Duur van de peiling",
- "compose_form.poll.option_placeholder": "Keuze {number}",
- "compose_form.poll.remove_option": "Deze keuze verwijderen",
+ "compose_form.poll.multiple": "Meerkeuze",
+ "compose_form.poll.option_placeholder": "Optie {number}",
+ "compose_form.poll.remove_option": "Deze optie verwijderen",
+ "compose_form.poll.single": "Kies een",
"compose_form.poll.switch_to_multiple": "Peiling wijzigen om meerdere keuzes toe te staan",
"compose_form.poll.switch_to_single": "Peiling wijzigen om een enkele keuze toe te staan",
- "compose_form.publish": "Toot",
+ "compose_form.poll.type": "Stijl",
+ "compose_form.publish": "Plaatsen",
"compose_form.publish_form": "Nieuw bericht",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Wijzigingen opslaan",
- "compose_form.sensitive.hide": "{count, plural, one {Media als gevoelig markeren} other {Media als gevoelig markeren}}",
- "compose_form.sensitive.marked": "{count, plural, one {Media is als gevoelig gemarkeerd} other {Media is als gevoelig gemarkeerd}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Media is niet als gevoelig gemarkeerd} other {Media is niet als gevoelig gemarkeerd}}",
+ "compose_form.reply": "Reageren",
+ "compose_form.save_changes": "Bijwerken",
"compose_form.spoiler.marked": "Inhoudswaarschuwing verwijderen",
"compose_form.spoiler.unmarked": "Inhoudswaarschuwing toevoegen",
- "compose_form.spoiler_placeholder": "Waarschuwingstekst",
+ "compose_form.spoiler_placeholder": "Waarschuwing inhoud (optioneel)",
"confirmation_modal.cancel": "Annuleren",
"confirmations.block.block_and_report": "Blokkeren en rapporteren",
"confirmations.block.confirm": "Blokkeren",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "PrivÊberichten",
"navigation_bar.discover": "Ontdekken",
"navigation_bar.domain_blocks": "Geblokkeerde domeinen",
- "navigation_bar.edit_profile": "Profiel bewerken",
"navigation_bar.explore": "Verkennen",
"navigation_bar.favourites": "Favorieten",
"navigation_bar.filters": "Filters",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "Peiling toevoegen",
"poll_button.remove_poll": "Peiling verwijderen",
"privacy.change": "Zichtbaarheid van bericht aanpassen",
- "privacy.direct.long": "Alleen aan vermelde gebruikers tonen",
- "privacy.direct.short": "PrivÊbericht",
- "privacy.private.long": "Alleen aan volgers tonen",
- "privacy.private.short": "Alleen volgers",
- "privacy.public.long": "Voor iedereen zichtbaar",
+ "privacy.direct.long": "Iedereen genoemd in de post",
+ "privacy.direct.short": "Specifieke mensen",
+ "privacy.private.long": "Alleen jouw volgers",
+ "privacy.private.short": "Volgers",
+ "privacy.public.long": "Iedereen op Mastodon en daarbuiten",
"privacy.public.short": "Openbaar",
- "privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen",
- "privacy.unlisted.short": "Minder openbaar",
+ "privacy.unlisted.additional": "Dit is vergelijkbaar met publiek, behalve dat de post niet zal verschijnen in live feeds of hashtags, verkennen of Mastodon zoeken, zelfs als je gekozen hebt voor account-breed.",
+ "privacy.unlisted.long": "Minder algoritmische fanfare",
+ "privacy.unlisted.short": "Stil publiek",
"privacy_policy.last_updated": "Laatst bijgewerkt op {date}",
"privacy_policy.title": "Privacybeleid",
"recommended": "Aanbevolen",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "vandaag",
+ "reply_indicator.attachments": "{count, plural, one {# bijlage} other {# bijlagen}}",
"reply_indicator.cancel": "Annuleren",
+ "reply_indicator.poll": "Peiling",
"report.block": "Blokkeren",
"report.block_explanation": "Je kunt diens berichten niet zien. Je kunt door diegene niet gevolgd worden en jouw berichten zijn onzichtbaar. Diegene kan zien dat die door jou is geblokkeerd.",
"report.categories.legal": "Juridisch",
@@ -714,10 +716,8 @@
"upload_error.poll": "Het uploaden van bestanden is bij peilingen niet toegestaan.",
"upload_form.audio_description": "Omschrijf dit voor dove of slechthorende mensen",
"upload_form.description": "Omschrijf dit voor blinde of slechtziende mensen",
- "upload_form.description_missing": "Geen omschrijving toegevoegd",
"upload_form.edit": "Bewerken",
"upload_form.thumbnail": "Miniatuurafbeelding wijzigen",
- "upload_form.undo": "Verwijderen",
"upload_form.video_description": "Omschrijf dit voor dove, slechthorende, blinde of slechtziende mensen",
"upload_modal.analyzing_picture": "Afbeelding analyserenâĻ",
"upload_modal.apply": "Toepassen",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 4750b1adc..9bb4f5919 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Ingen innlegg",
"account.featured_tags.title": "{name} sine framheva emneknaggar",
"account.follow": "Fylg",
+ "account.follow_back": "Følg tilbake",
"account.followers": "Fylgjarar",
"account.followers.empty": "Ingen fylgjer denne brukaren enno.",
"account.followers_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjarar}}",
"account.following": "Fylgjer",
"account.following_counter": "{count, plural, one {Fylgjer {counter}} other {Fylgjer {counter}}}",
"account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.",
- "account.follows_you": "Fylgjer deg",
"account.go_to_profile": "GÃĨ til profil",
"account.hide_reblogs": "Skjul framhevingar frÃĨ @{name}",
"account.in_memoriam": "Til minne om.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Demp varslingar",
"account.mute_short": "Demp",
"account.muted": "MÃĨlbunden",
+ "account.mutual": "Felles",
"account.no_bio": "Inga skildring er gjeven.",
"account.open_original_page": "Opne originalsida",
"account.posts": "Tut",
@@ -88,7 +89,6 @@
"announcement.announcement": "Kunngjering",
"attachments_list.unprocessed": "(ubehandla)",
"audio.hide": "Gøym lyd",
- "autosuggest_hashtag.per_week": "{count} per veke",
"boost_modal.combo": "Du kan trykkja {combo} for ÃĨ hoppa over dette neste gong",
"bundle_column_error.copy_stacktrace": "Kopier feilrapport",
"bundle_column_error.error.body": "Den etterspurde sida kan ikke hentast fram. Det kan skuldast ein feil i koden vÃĨr eller eit kompatibilitetsproblem.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "Kontoen din er ikkje {locked}. Kven som helst kan fylgja deg for ÃĨ sjÃĨ innlegga dine.",
"compose_form.lock_disclaimer.lock": "lÃĨst",
"compose_form.placeholder": "Kva har du pÃĨ hjarta?",
- "compose_form.poll.add_option": "Legg til eit val",
+ "compose_form.poll.add_option": "Legg til alternativ",
"compose_form.poll.duration": "Varigheit for rundspørjing",
- "compose_form.poll.option_placeholder": "Val {number}",
- "compose_form.poll.remove_option": "Fjern dette valet",
+ "compose_form.poll.multiple": "Flervalg",
+ "compose_form.poll.option_placeholder": "Valg {number}",
+ "compose_form.poll.remove_option": "Fjern dette valget",
+ "compose_form.poll.single": "Velg en",
"compose_form.poll.switch_to_multiple": "Endre rundspørjinga til ÃĨ tillate fleire val",
"compose_form.poll.switch_to_single": "Endre rundspørjinga til ÃĨ tillate berre eitt val",
- "compose_form.publish": "Legg ut",
+ "compose_form.poll.type": "Stil",
+ "compose_form.publish": "Publiser",
"compose_form.publish_form": "Legg ut",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Lagre endringar",
- "compose_form.sensitive.hide": "{count, plural, one {Marker mediet som ømtolig} other {Marker media som ømtolige}}",
- "compose_form.sensitive.marked": "{count, plural, one {Mediet er markert som ømtolig} other {Media er markerte som ømtolige}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Mediet er ikkje markert som ømtolig} other {Media er ikkje markerte som ømtolige}}",
+ "compose_form.reply": "Svar",
+ "compose_form.save_changes": "Oppdater",
"compose_form.spoiler.marked": "Fjern innhaldsÃĨtvaring",
"compose_form.spoiler.unmarked": "Legg til innhaldsÃĨtvaring",
- "compose_form.spoiler_placeholder": "Skriv ÃĨtvaringa di her",
+ "compose_form.spoiler_placeholder": "Innholdsadvarsel (valgfritt)",
"confirmation_modal.cancel": "Avbryt",
"confirmations.block.block_and_report": "Blokker & rapporter",
"confirmations.block.confirm": "Blokker",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Private omtaler",
"navigation_bar.discover": "Oppdag",
"navigation_bar.domain_blocks": "Skjulte domene",
- "navigation_bar.edit_profile": "Rediger profil",
"navigation_bar.explore": "Utforsk",
"navigation_bar.favourites": "Favorittar",
"navigation_bar.filters": "MÃĨlbundne ord",
@@ -481,6 +480,7 @@
"onboarding.follows.empty": "Me kan ikkje visa deg nokon resultat no. Du kan prøva ÃĨ søkja eller bla gjennom utforsk-sida for ÃĨ finna folk ÃĨ fylgja, eller du kan prøva att seinare.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting pointâyou can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon",
+ "onboarding.profile.discoverable": "Gjør min profil synlig",
"onboarding.profile.display_name": "Synleg namn",
"onboarding.profile.display_name_hint": "Det fulle namnet eller kallenamnet dittâĻ",
"onboarding.profile.lead": "Du kan alltid fullføra dette seinare i innstillingane, og der er det endÃĨ fleire tilpassingsalternativ.",
@@ -523,16 +523,17 @@
"poll_button.add_poll": "Lag ei rundspørjing",
"poll_button.remove_poll": "Fjern rundspørjing",
"privacy.change": "Endre personvernet pÃĨ innlegg",
- "privacy.direct.long": "Synleg kun for omtala brukarar",
- "privacy.direct.short": "Kun nemnde personar",
- "privacy.private.long": "Kun synleg for fylgjarar",
- "privacy.private.short": "Kun fylgjarar",
- "privacy.public.long": "Synleg for alle",
+ "privacy.direct.long": "Alle nevnt i innlegget",
+ "privacy.direct.short": "Spesifikke folk",
+ "privacy.private.long": "Bare følgerne dine",
+ "privacy.private.short": "Følgere",
+ "privacy.public.long": "Alle pÃĨ og utenfor Mastodon",
"privacy.public.short": "Offentleg",
- "privacy.unlisted.long": "Synleg for alle, men blir ikkje vist i oppdagsfunksjonar",
- "privacy.unlisted.short": "Uoppført",
+ "privacy.unlisted.long": "FÃĻrre algoritmiske fanfarer",
+ "privacy.unlisted.short": "Stille offentlig",
"privacy_policy.last_updated": "Sist oppdatert {date}",
"privacy_policy.title": "Personvernsreglar",
+ "recommended": "Anbefalt",
"refresh": "Oppdater",
"regeneration_indicator.label": "LastarâĻ",
"regeneration_indicator.sublabel": "Heimetidslina di vert førebudd!",
@@ -547,7 +548,9 @@
"relative_time.minutes": "{number}min",
"relative_time.seconds": "{number}sek",
"relative_time.today": "i dag",
+ "reply_indicator.attachments": "{count, plural, one {# vedlegg} other {# vedlegg}}",
"reply_indicator.cancel": "Avbryt",
+ "reply_indicator.poll": "Avstemming",
"report.block": "Blokker",
"report.block_explanation": "Du vil ikkje kunne sjÃĨ innlegga deira. Dei vil ikkje kunne sjÃĨ innlegga dine eller fylgje deg. Dei kan sjÃĨ at dei er blokkert.",
"report.categories.legal": "Juridisk",
@@ -603,6 +606,7 @@
"search.quick_action.status_search": "Innlegg som samsvarer med {x}",
"search.search_or_paste": "Søk eller lim inn URL",
"search_popout.full_text_search_disabled_message": "Ikkje tilgjengeleg pÃĨ {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Bare tilgjengelig nÃĨr man er logget inn.",
"search_popout.language_code": "ISO-sprÃĨkkode",
"search_popout.options": "Søkjealternativ",
"search_popout.quick_actions": "Hurtighandlinger",
@@ -710,10 +714,8 @@
"upload_error.poll": "Filopplasting er ikkje lov for rundspørjingar.",
"upload_form.audio_description": "Skildre for dei med nedsett høyrsel",
"upload_form.description": "Skildre for blinde og svaksynte",
- "upload_form.description_missing": "Inga skildring er lagt til",
"upload_form.edit": "Rediger",
"upload_form.thumbnail": "Bytt miniatyrbilete",
- "upload_form.undo": "Slett",
"upload_form.video_description": "Skildre for dei med nedsett høyrsel eller redusert syn",
"upload_modal.analyzing_picture": "Analyserer bileteâĻ",
"upload_modal.apply": "Bruk",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 1739d4aa3..8da9853be 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Ingen Innlegg",
"account.featured_tags.title": "{name} sine fremhevede emneknagger",
"account.follow": "Følg",
+ "account.follow_back": "Følg tilbake",
"account.followers": "Følgere",
"account.followers.empty": "Ingen følger denne brukeren ennÃĨ.",
"account.followers_counter": "{count, plural, one {{counter} følger} other {{counter} følgere}}",
"account.following": "Følger",
"account.following_counter": "{count, plural, one {{counter} som følges} other {{counter} som følges}}",
"account.follows.empty": "Denne brukeren følger ikke noen enda.",
- "account.follows_you": "Følger deg",
"account.go_to_profile": "GÃĨ til profil",
"account.hide_reblogs": "Skjul fremhevinger fra @{name}",
"account.in_memoriam": "Til minne om.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Demp varsler",
"account.mute_short": "Demp",
"account.muted": "Dempet",
+ "account.mutual": "Gjensidig",
"account.no_bio": "Ingen beskrivelse oppgitt.",
"account.open_original_page": "GÃĨ til originalsiden",
"account.posts": "Innlegg",
@@ -67,7 +68,7 @@
"account.unblock_domain": "Opphev blokkering av {domain}",
"account.unblock_short": "Opphev blokkering",
"account.unendorse": "Ikke vis frem pÃĨ profilen",
- "account.unfollow": "Avfølg",
+ "account.unfollow": "Slutt ÃĨ følge",
"account.unmute": "Opphev demping av @{name}",
"account.unmute_notifications_short": "Opphev demping av varsler",
"account.unmute_short": "Opphev demping",
@@ -88,7 +89,6 @@
"announcement.announcement": "Kunngjøring",
"attachments_list.unprocessed": "(ubehandlet)",
"audio.hide": "Skjul lyd",
- "autosuggest_hashtag.per_week": "{count} per uke",
"boost_modal.combo": "You kan trykke {combo} for ÃĨ hoppe over dette neste gang",
"bundle_column_error.copy_stacktrace": "Kopier feilrapport",
"bundle_column_error.error.body": "Den forespurte siden kan ikke gjengis. Den kan skyldes en feil i vÃĨr kode eller et kompatibilitetsproblem med nettleseren.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "Din konto er ikke {locked}. Hvem som helst kan følge deg og se dine private poster.",
"compose_form.lock_disclaimer.lock": "lÃĨst",
"compose_form.placeholder": "Hva har du pÃĨ hjertet?",
- "compose_form.poll.add_option": "Legg til et valg",
+ "compose_form.poll.add_option": "Legg til alternativ",
"compose_form.poll.duration": "Avstemningens varighet",
+ "compose_form.poll.multiple": "Flervalg",
"compose_form.poll.option_placeholder": "Valg {number}",
"compose_form.poll.remove_option": "Fjern dette valget",
+ "compose_form.poll.single": "Velg en",
"compose_form.poll.switch_to_multiple": "Endre avstemning til ÃĨ tillate flere valg",
"compose_form.poll.switch_to_single": "Endre avstemning til ÃĨ tillate ett valg",
+ "compose_form.poll.type": "Stil",
"compose_form.publish": "Publiser",
"compose_form.publish_form": "Publiser",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Lagre endringer",
- "compose_form.sensitive.hide": "{count, plural,one {Merk media som følsomt} other {Merk medier som følsomme}}",
- "compose_form.sensitive.marked": "{count, plural,one {Mediet er merket som følsomt}other {Mediene er merket som følsomme}}",
- "compose_form.sensitive.unmarked": "{count, plural,one {Mediet er ikke merket som følsomt}other {Mediene er ikke merket som følsomme}}",
+ "compose_form.reply": "Svar",
+ "compose_form.save_changes": "Oppdater",
"compose_form.spoiler.marked": "Fjern innholdsvarsel",
"compose_form.spoiler.unmarked": "Legg til innholdsvarsel",
- "compose_form.spoiler_placeholder": "Skriv advarselen din her",
+ "compose_form.spoiler_placeholder": "Innholdsadvarsel (valgfritt)",
"confirmation_modal.cancel": "Avbryt",
"confirmations.block.block_and_report": "Blokker og rapporter",
"confirmations.block.confirm": "Blokkèr",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "Private omtaler",
"navigation_bar.discover": "Oppdag",
"navigation_bar.domain_blocks": "Skjulte domener",
- "navigation_bar.edit_profile": "Rediger profil",
"navigation_bar.explore": "Utforsk",
"navigation_bar.favourites": "Favoritter",
"navigation_bar.filters": "Stilnede ord",
@@ -481,6 +480,7 @@
"onboarding.follows.empty": "Dessverre kan ingen resultater vises akkurat nÃĨ. Du kan prøve ÃĨ bruke søk eller bla gjennom utforske-siden for ÃĨ finne folk ÃĨ følge, eller prøve igjen senere.",
"onboarding.follows.lead": "Hjem-skjermen din er den viktigste mÃĨten ÃĨ oppleve Mastodon pÃĨ. Jo flere du følger, jo mer aktiv og interessant blir det. For ÃĨ komme i gang, er her noen forslag:",
"onboarding.follows.title": "PopulÃĻrt pÃĨ Mastodon",
+ "onboarding.profile.discoverable": "Gjør min profil synlig",
"onboarding.profile.display_name": "Visningsnavn",
"onboarding.profile.display_name_hint": "Ditt fulle navn eller ditt morsomme navnâĻ",
"onboarding.profile.lead": "Du kan alltid fullføre dette senere i innstillingene, der enda flere tilpasningsalternativer er tilgjengelige.",
@@ -523,16 +523,17 @@
"poll_button.add_poll": "Legg til en avstemning",
"poll_button.remove_poll": "Fjern avstemningen",
"privacy.change": "Juster synlighet",
- "privacy.direct.long": "Post kun til nevnte brukere",
- "privacy.direct.short": "Kun nevnte personer",
- "privacy.private.long": "Post kun til følgere",
- "privacy.private.short": "Kun følgere",
- "privacy.public.long": "Synlig for alle",
+ "privacy.direct.long": "Alle nevnt i innlegget",
+ "privacy.direct.short": "Spesifikke folk",
+ "privacy.private.long": "Bare følgerne dine",
+ "privacy.private.short": "Følgere",
+ "privacy.public.long": "Alle pÃĨ og utenfor Mastodon",
"privacy.public.short": "Offentlig",
- "privacy.unlisted.long": "Synlig for alle, men vises ikke i oppdagsfunksjoner",
- "privacy.unlisted.short": "Uoppført",
+ "privacy.unlisted.long": "FÃĻrre algoritmiske fanfarer",
+ "privacy.unlisted.short": "Stille offentlig",
"privacy_policy.last_updated": "Sist oppdatert {date}",
"privacy_policy.title": "Personvernregler",
+ "recommended": "Anbefalt",
"refresh": "Oppfrisk",
"regeneration_indicator.label": "LasterâĻ",
"regeneration_indicator.sublabel": "Dine tidslinje blir gjort klar!",
@@ -547,7 +548,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "i dag",
+ "reply_indicator.attachments": "{count, plural, one {# vedlegg} other {# vedlegg}}",
"reply_indicator.cancel": "Avbryt",
+ "reply_indicator.poll": "Avstemming",
"report.block": "Blokker",
"report.block_explanation": "Du kommer ikke til ÃĨ se innleggene deres. De vil ikke kunne se innleggene dine eller følge deg. De vil kunne se at de er blokkert.",
"report.categories.legal": "Juridisk",
@@ -603,6 +606,7 @@
"search.quick_action.status_search": "Innlegg som samsvarer med {x}",
"search.search_or_paste": "Søk eller lim inn URL",
"search_popout.full_text_search_disabled_message": "Ikke tilgjengelig pÃĨ {domain}.",
+ "search_popout.full_text_search_logged_out_message": "Bare tilgjengelig nÃĨr man er logget inn.",
"search_popout.language_code": "ISO sprÃĨkkode",
"search_popout.options": "Alternativer for søk",
"search_popout.quick_actions": "Hurtighandlinger",
@@ -710,10 +714,8 @@
"upload_error.poll": "Filopplasting er ikke tillatt for avstemninger.",
"upload_form.audio_description": "Beskriv det for folk med hørselstap",
"upload_form.description": "Beskriv for synshemmede",
- "upload_form.description_missing": "Ingen beskrivelse lagt til",
"upload_form.edit": "Rediger",
"upload_form.thumbnail": "Endre miniatyrbilde",
- "upload_form.undo": "Angre",
"upload_form.video_description": "Beskriv det for folk med hørselstap eller synshemminger",
"upload_modal.analyzing_picture": "Analyserer bildet âĻ",
"upload_modal.apply": "Bruk",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index 3812057fb..8660a3bc0 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -18,6 +18,7 @@
"account.blocked": "Blocat",
"account.browse_more_on_origin_server": "Navigar sul perfil original",
"account.cancel_follow_request": "Retirar la demanda dâabonament",
+ "account.copy": "Copiar lo ligam del perfil",
"account.direct": "Mencionar @{name} en privat",
"account.disable_notifications": "Quitar de mâavisar quand @{name} publica quicÃ˛m",
"account.domain_blocked": "Domeni amagat",
@@ -28,13 +29,13 @@
"account.featured_tags.last_status_never": "Cap de publicacion",
"account.featured_tags.title": "Etiquetas en avant de {name}",
"account.follow": "Sègre",
+ "account.follow_back": "Sègre en retorn",
"account.followers": "Seguidors",
"account.followers.empty": "Degun sèc pas aqueste utilizaire pel moment.",
"account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidors}}",
"account.following": "Abonat",
"account.following_counter": "{count, plural, one {{counter} Abonaments} other {{counter} Abonaments}}",
"account.follows.empty": "Aqueste utilizaire sèc pas degun pel moment.",
- "account.follows_you": "Vos sèc",
"account.go_to_profile": "Anar al perfil",
"account.hide_reblogs": "Rescondre los partatges de @{name}",
"account.in_memoriam": "En MemÃ˛ria.",
@@ -49,6 +50,7 @@
"account.mute_notifications_short": "Amudir las notificacions",
"account.mute_short": "Amudir",
"account.muted": "Mes en silenci",
+ "account.mutual": "Mutual",
"account.no_bio": "Cap de descripcion pas fornida.",
"account.open_original_page": "Dobrir la pagina dâorigina",
"account.posts": "Tuts",
@@ -78,7 +80,6 @@
"announcement.announcement": "AnÃŗncia",
"attachments_list.unprocessed": "(pas tractat)",
"audio.hide": "Amagar à udio",
- "autosuggest_hashtag.per_week": "{count} per setmana",
"boost_modal.combo": "Podètz botar {combo} per passar aquÃ˛ lo cÃ˛p que ven",
"bundle_column_error.copy_stacktrace": "Copiar senhalament dâavaria",
"bundle_column_error.error.title": "Oh nonâ¯!",
@@ -129,22 +130,12 @@
"compose_form.lock_disclaimer": "VÃ˛stre compte es pas {locked}. Tot lo mond pÃ˛t vos sègre e veire los estatuts reservats als seguidors.",
"compose_form.lock_disclaimer.lock": "clavat",
"compose_form.placeholder": "A de quÊ pensatz�",
- "compose_form.poll.add_option": "Ajustar una causida",
"compose_form.poll.duration": "Durada del sondatge",
- "compose_form.poll.option_placeholder": "Opcion {number}",
- "compose_form.poll.remove_option": "Levar aquesta opcion",
"compose_form.poll.switch_to_multiple": "Cambiar lo sondatge per permetre de causidas multiplas",
"compose_form.poll.switch_to_single": "Cambiar lo sondatge per permetre una sola causida",
- "compose_form.publish": "Publicar",
"compose_form.publish_form": "Publicar",
- "compose_form.publish_loud": "{publish}â¯!",
- "compose_form.save_changes": "Salvar los cambiaments",
- "compose_form.sensitive.hide": "Marcar coma sensible",
- "compose_form.sensitive.marked": "Lo mèdia es marcat coma sensible",
- "compose_form.sensitive.unmarked": "Lo mèdia es pas marcat coma sensible",
"compose_form.spoiler.marked": "Lo tèxte es rescondut jos lâavertiment",
"compose_form.spoiler.unmarked": "Lo tèxte es pas rescondut",
- "compose_form.spoiler_placeholder": "Escrivètz lâavertiment aquÃ",
"confirmation_modal.cancel": "Anullar",
"confirmations.block.block_and_report": "Blocar e senhalar",
"confirmations.block.confirm": "Blocar",
@@ -173,6 +164,7 @@
"conversation.mark_as_read": "Marcar coma legida",
"conversation.open": "Veire la conversacion",
"conversation.with": "Amb {names}",
+ "copy_icon_button.copied": "Copiat al quichapapièr",
"copypaste.copied": "Copiat",
"copypaste.copy_to_clipboard": "Copiar al quichapapièr",
"directory.federated": "Del fediverse conegut",
@@ -295,6 +287,8 @@
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "far davalar dins la lista",
"keyboard_shortcuts.enter": "dobrir los estatuts",
+ "keyboard_shortcuts.favourite": "Marcar coma favorit",
+ "keyboard_shortcuts.favourites": "Dobrir la lista dels favorits",
"keyboard_shortcuts.federated": "dobrir lo flux public global",
"keyboard_shortcuts.heading": "Acorchis clavièr",
"keyboard_shortcuts.home": "dobrir lo flux public local",
@@ -340,6 +334,7 @@
"lists.search": "Cercar demest lo mond que seguètz",
"lists.subheading": "VÃ˛stras listas",
"load_pending": "{count, plural, one {# nÃ˛u element} other {# nÃ˛u elements}}",
+ "loading_indicator.label": "CargamentâĻ",
"media_gallery.toggle_visible": "Modificar la visibilitat",
"mute_modal.duration": "Durada",
"mute_modal.hide_notifications": "Rescondre las notificacions dâaquesta personaâ¯?",
@@ -353,7 +348,6 @@
"navigation_bar.direct": "Mencions privadas",
"navigation_bar.discover": "Trobar",
"navigation_bar.domain_blocks": "Domenis resconduts",
- "navigation_bar.edit_profile": "Modificar lo perfil",
"navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favorits",
"navigation_bar.filters": "Mots ignorats",
@@ -372,6 +366,7 @@
"not_signed_in_indicator.not_signed_in": "Devètz vos connectar per accedir a aquesta ressorsa.",
"notification.admin.report": "{name} senhalèt {target}",
"notification.admin.sign_up": "{name} se marquèt",
+ "notification.favourite": "{name} a mes vÃ˛stre estatut en favorit",
"notification.follow": "{name} vos sèc",
"notification.follow_request": "{name} a demandat a vos sègre",
"notification.mention": "{name} vos a mencionat",
@@ -424,6 +419,8 @@
"onboarding.compose.template": "Adiu #Mastodon !",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting pointâyou can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon",
+ "onboarding.profile.display_name": "Nom dâafichatge",
+ "onboarding.profile.note": "Biografia",
"onboarding.share.title": "Partejar vÃ˛stre perfil",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip": "Want to skip right ahead?",
@@ -448,14 +445,7 @@
"poll_button.add_poll": "Ajustar un sondatge",
"poll_button.remove_poll": "Levar lo sondatge",
"privacy.change": "Ajustar la confidencialitat del messatge",
- "privacy.direct.long": "Mostrar pas quâa las personas mencionadas",
- "privacy.direct.short": "Sonque per las personas mencionadas",
- "privacy.private.long": "Mostrar pas quâa vÃ˛stres seguidors",
- "privacy.private.short": "Sonque pels seguidors",
- "privacy.public.long": "Visiblas per totes",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Visible per totes mas desactivat per las foncionalitats de descobèrta",
- "privacy.unlisted.short": "Pas-listat",
"privacy_policy.last_updated": "Darrièra actualizacion {date}",
"privacy_policy.title": "Politica de confidencialitat",
"refresh": "Actualizar",
@@ -505,6 +495,7 @@
"report_notification.categories.spam": "Messatge indesirable",
"report_notification.categories.violation": "Violacion de las règlas",
"report_notification.open": "Dobrir lo senhalament",
+ "search.no_recent_searches": "Cap de recèrcas recentas",
"search.placeholder": "Recercar",
"search.search_or_paste": "Recercar o picar una URL",
"search_popout.language_code": "CÃ˛di ISO de lenga",
@@ -537,6 +528,7 @@
"status.copy": "Copiar lo ligam de lâestatut",
"status.delete": "Escafar",
"status.detailed_status": "Vista detalhada de la convèrsa",
+ "status.direct": "Mencionar @{name} en privat",
"status.direct_indicator": "Mencion privada",
"status.edit": "Modificar",
"status.edited": "Modificat {date}",
@@ -610,10 +602,8 @@
"upload_error.poll": "Lo mandadÃs de fichièr es pas autorizat pels sondatges.",
"upload_form.audio_description": "Descriure per las personas amb pèrdas auditivas",
"upload_form.description": "Descripcion pels mal vesents",
- "upload_form.description_missing": "Cap de descripcion pas aponduda",
"upload_form.edit": "Modificar",
"upload_form.thumbnail": "Cambiar la vinheta",
- "upload_form.undo": "Suprimir",
"upload_form.video_description": "Descriure per las personas amb pèrdas auditivas o mal vesent",
"upload_modal.analyzing_picture": "Analisi de lâimatgeâĻ",
"upload_modal.apply": "Aplicar",
@@ -627,6 +617,7 @@
"upload_modal.preview_label": "Apercebut ({ratio})",
"upload_progress.label": "MandadÃsâĻ",
"upload_progress.processing": "TractamentâĻ",
+ "username.taken": "Aqueste nom dâutilizaire es pres. Ensajatz-ne un autre",
"video.close": "Tampar la vidèo",
"video.download": "Telecargar lo fichièr",
"video.exit_fullscreen": "Sortir plen ecran",
diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json
index 708d8c3e9..de085cf98 100644
--- a/app/javascript/mastodon/locales/pa.json
+++ b/app/javascript/mastodon/locales/pa.json
@@ -18,7 +18,6 @@
"account.followers.empty": "ā¨ā¨¸ ā¨ĩā¨°ā¨¤āŠā¨ā¨ā¨žā¨° ā¨¨āŠāŠ° ā¨šā¨žā¨˛āŠ ā¨āŠā¨ ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨¨ā¨šāŠā¨ ā¨ā¨°ā¨Ļā¨ž ā¨šāŠāĨ¤",
"account.following": "ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨āŠā¨¤ā¨ž",
"account.follows.empty": "ā¨ā¨š ā¨ĩā¨°ā¨¤āŠā¨ā¨ā¨žā¨° ā¨šā¨žā¨˛āŠ ā¨ā¨ŋā¨¸āŠ ā¨¨āŠāŠ° ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨¨ā¨šāŠā¨ ā¨ā¨°ā¨Ļā¨ž ā¨šāŠāĨ¤",
- "account.follows_you": "ā¨¤āŠā¨šā¨žā¨¨āŠāŠ° ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ā¨°āŠ",
"account.media": "ā¨ŽāŠā¨ĄāŠā¨",
"account.muted": "ā¨ŽāŠā¨¨ ā¨āŠā¨¤āŠā¨ā¨",
"account.posts": "ā¨ĒāŠā¨¸ā¨ā¨žā¨",
@@ -68,9 +67,7 @@
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer.lock": "ā¨˛ā¨žā¨ ā¨šāŠ",
"compose_form.placeholder": "What is on your mind?",
- "compose_form.publish": "ā¨ĒāŠā¨°ā¨ā¨žā¨¸ā¨ŧā¨¨ ā¨ā¨°āŠ",
"compose_form.publish_form": "Publish",
- "compose_form.save_changes": "ā¨¤ā¨Ŧā¨ĻāŠā¨˛āŠā¨ā¨ ā¨¸ā¨žā¨ā¨āŠ",
"compose_form.spoiler.marked": "ā¨¸ā¨ŽāŠąā¨ā¨°āŠ ā¨āŠā¨¤ā¨žā¨ĩā¨¨āŠ ā¨¨āŠāŠ° ā¨šā¨ā¨žā¨",
"compose_form.spoiler.unmarked": "ā¨¸ā¨ŽāŠąā¨ā¨°āŠ ā¨Ŧā¨žā¨°āŠ ā¨āŠā¨¤ā¨žā¨ĩā¨¨āŠ ā¨āŠāŠāŠ",
"confirmation_modal.cancel": "ā¨°āŠąā¨Ļ ā¨ā¨°āŠ",
@@ -189,7 +186,6 @@
"navigation_bar.direct": "ā¨¨ā¨ŋāŠąā¨āŠ āŠā¨ŋā¨ā¨°",
"navigation_bar.discover": "ā¨āŠā¨",
"navigation_bar.domain_blocks": "ā¨Ēā¨žā¨ŦāŠ°ā¨ĻāŠ ā¨˛ā¨žā¨ ā¨ĄāŠā¨ŽāŠā¨¨",
- "navigation_bar.edit_profile": "ā¨Ēā¨°āŠā¨Ģā¨žā¨ā¨˛ ā¨¨āŠāŠ° ā¨¸āŠā¨§āŠ",
"navigation_bar.explore": "ā¨ĒāŠā¨āŠā¨˛ ā¨ā¨°āŠ",
"navigation_bar.favourites": "ā¨Žā¨¨ā¨Ēā¨¸āŠ°ā¨Ļ",
"navigation_bar.follow_requests": "ā¨Ģā¨ŧā¨žā¨˛āŠ ā¨ĻāŠā¨ā¨ ā¨ŦāŠā¨¨ā¨¤āŠā¨ā¨",
@@ -239,8 +235,6 @@
"poll.refresh": "ā¨¤ā¨žā¨ā¨ŧā¨ž ā¨ā¨°āŠ",
"poll.vote": "ā¨ĩāŠā¨ ā¨Ēā¨žā¨",
"privacy.change": "ā¨ĒāŠā¨¸ā¨ ā¨ĻāŠ ā¨Ēā¨°ā¨ĻāŠā¨Ļā¨žā¨°āŠ ā¨¨āŠāŠ° ā¨Ŧā¨Ļā¨˛āŠ",
- "privacy.direct.short": "ā¨¸ā¨ŋāŠąā¨§ā¨ž ā¨˛āŠā¨ā¨žā¨ ā¨Ļā¨ž āŠā¨ŋā¨ā¨° ā¨ā¨°āŠ",
- "privacy.private.short": "ā¨¸ā¨ŋā¨°ā¨Ģā¨ŧ ā¨Ģā¨ŧā¨žā¨˛āŠā¨
ā¨°",
"privacy.public.short": "ā¨ā¨¨ā¨¤ā¨",
"privacy_policy.title": "ā¨Ēā¨°ā¨ĻāŠā¨Ļā¨žā¨°āŠ ā¨¨āŠā¨¤āŠ",
"refresh": "ā¨¤ā¨žā¨ā¨ŧā¨ž ā¨ā¨°āŠ",
@@ -328,7 +322,6 @@
"upload_form.audio_description": "ā¨ŦāŠā¨˛ā¨ŧāŠ ā¨ā¨žā¨ ā¨¸āŠā¨Ŗā¨¨ ā¨ĩā¨ŋāŠąā¨ ā¨ŽāŠā¨ļā¨ā¨ŋā¨˛ ā¨ĩā¨žā¨˛āŠ ā¨˛āŠā¨ā¨žā¨ ā¨˛ā¨ ā¨ĩāŠā¨°ā¨ĩāŠ",
"upload_form.description": "ā¨
āŠ°ā¨¨āŠā¨šāŠ ā¨ā¨žā¨ ā¨ĻāŠā¨ā¨Ŗ ā¨˛ā¨ ā¨ŽāŠā¨ļā¨ā¨˛ ā¨ĩā¨žā¨˛āŠ ā¨˛āŠā¨ā¨žā¨ ā¨˛ā¨ ā¨ĩāŠā¨°ā¨ĩāŠ",
"upload_form.edit": "ā¨¸āŠā¨§",
- "upload_form.undo": "ā¨šā¨ā¨žā¨",
"upload_form.video_description": "ā¨ŦāŠā¨˛ā¨ŧāŠ, ā¨¸āŠā¨Ŗā¨¨ ā¨ĩā¨ŋāŠąā¨ ā¨ŽāŠā¨ļā¨ā¨ŋā¨˛, ā¨
āŠ°ā¨¨āŠā¨šāŠ ā¨ā¨žā¨ ā¨āŠąā¨ ā¨¨ā¨ŋā¨āŠā¨šā¨ž ā¨ĩā¨žā¨˛āŠ ā¨˛āŠā¨ā¨žā¨ ā¨˛ā¨ ā¨ĩāŠā¨°ā¨ĩā¨ž",
"upload_modal.apply": "ā¨˛ā¨žā¨āŠ ā¨ā¨°āŠ",
"upload_modal.applying": "ā¨˛ā¨žā¨āŠ ā¨āŠā¨¤ā¨ž ā¨ā¨ž ā¨°ā¨ŋā¨šā¨ž ā¨šāŠâĻ",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index dc77f8f4e..2eaeeaab5 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -32,17 +32,17 @@
"account.featured_tags.last_status_never": "Brak postÃŗw",
"account.featured_tags.title": "Polecane hasztagi {name}",
"account.follow": "Obserwuj",
+ "account.follow_back": "Obserwuj wzajemnie",
"account.followers": "ObserwujÄ
cy",
"account.followers.empty": "Nikt jeszcze nie obserwuje tego uÅŧytkownika.",
"account.followers_counter": "{count, plural, one {{counter} obserwujÄ
cy} few {{counter} obserwujÄ
cych} many {{counter} obserwujÄ
cych} other {{counter} obserwujÄ
cych}}",
"account.following": "Obserwowani",
"account.following_counter": "{count, plural, one {{counter} obserwowany} few {{counter} obserwowanych} many {{counter} obserwowanych} other {{counter} obserwowanych}}",
"account.follows.empty": "Ten uÅŧytkownik nie obserwuje jeszcze nikogo.",
- "account.follows_you": "Obserwuje CiÄ",
"account.go_to_profile": "PrzejdÅē do profilu",
"account.hide_reblogs": "Ukryj podbicia od @{name}",
"account.in_memoriam": "Ku pamiÄci.",
- "account.joined_short": "DoÅÄ
czony",
+ "account.joined_short": "DoÅÄ
czyÅ(a)",
"account.languages": "ZmieÅ subskrybowane jÄzyki",
"account.link_verified_on": "WÅasnoÅÄ tego odnoÅnika zostaÅa potwierdzona {date}",
"account.locked_info": "To konto jest prywatne. WÅaÅciciel rÄcznie wybiera kto moÅŧe go obserwowaÄ.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Wycisz powiadomienia",
"account.mute_short": "Wycisz",
"account.muted": "Wyciszony",
+ "account.mutual": "Przyjaciele",
"account.no_bio": "Brak opisu.",
"account.open_original_page": "OtwÃŗrz stronÄ oryginalnÄ
",
"account.posts": "Wpisy",
@@ -88,7 +89,6 @@
"announcement.announcement": "OgÅoszenie",
"attachments_list.unprocessed": "(nieprzetworzone)",
"audio.hide": "Ukryj dÅēwiÄk",
- "autosuggest_hashtag.per_week": "{count} co tydzieÅ",
"boost_modal.combo": "NaciÅnij {combo}, aby pominÄ
Ä to nastÄpnym razem",
"bundle_column_error.copy_stacktrace": "Skopiuj raport o bÅÄdzie",
"bundle_column_error.error.body": "Nie moÅŧna zrenderowaÄ ÅŧÄ
danej strony. MoÅŧe to byÄ spowodowane bÅÄdem w naszym kodzie lub problemami z kompatybilnoÅciÄ
przeglÄ
darki.",
@@ -147,20 +147,19 @@
"compose_form.placeholder": "Co chodzi ci po gÅowie?",
"compose_form.poll.add_option": "Dodaj opcjÄ",
"compose_form.poll.duration": "Czas trwania gÅosowania",
+ "compose_form.poll.multiple": "Wielokrotny wybÃŗr",
"compose_form.poll.option_placeholder": "Opcja {number}",
"compose_form.poll.remove_option": "UsuÅ tÄ opcjÄ",
+ "compose_form.poll.single": "Wybierz jednÄ
",
"compose_form.poll.switch_to_multiple": "PozwÃŗl na wybranie wielu opcji",
"compose_form.poll.switch_to_single": "PozwÃŗl na wybranie tylko jednej opcji",
+ "compose_form.poll.type": "Styl",
"compose_form.publish": "Opublikuj",
"compose_form.publish_form": "Opublikuj",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Zapisz zmiany",
- "compose_form.sensitive.hide": "{count, plural, one {Oznacz treÅÄ multimedialnÄ
jako wraÅŧliwÄ
} other {Oznacz treÅci multimedialne jako wraÅŧliwe}}",
- "compose_form.sensitive.marked": "{count, plural, one {TreÅÄ multimedialna jest oznaczona jako wraÅŧliwa} other {TreÅci multimedialne sÄ
oznaczone jako wraÅŧliwe}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {TreÅÄ multimedialna nie jest oznaczona jako wraÅŧliwa} other {TreÅci multimedialne nie sÄ
oznaczone jako wraÅŧliwe}}",
+ "compose_form.reply": "Odpowiedz",
+ "compose_form.save_changes": "Aktualizuj",
"compose_form.spoiler.marked": "UsuÅ ostrzeÅŧenie o treÅci",
"compose_form.spoiler.unmarked": "Dodaj ostrzeÅŧenie o treÅci",
- "compose_form.spoiler_placeholder": "Wpisz ostrzeÅŧenie tutaj",
"confirmation_modal.cancel": "Anuluj",
"confirmations.block.block_and_report": "Zablokuj i zgÅoÅ",
"confirmations.block.confirm": "Zablokuj",
@@ -407,7 +406,6 @@
"navigation_bar.direct": "Prywatne wzmianki",
"navigation_bar.discover": "Odkrywaj",
"navigation_bar.domain_blocks": "Ukryte domeny",
- "navigation_bar.edit_profile": "Edytuj profil",
"navigation_bar.explore": "Odkrywaj",
"navigation_bar.favourites": "Ulubione",
"navigation_bar.filters": "Wyciszone sÅowa",
@@ -491,7 +489,7 @@
"onboarding.profile.save_and_continue": "Zapisz i kontynuuj",
"onboarding.profile.title": "Ustawienia profilu",
"onboarding.profile.upload_avatar": "Dodaj zdjÄcie profilowe",
- "onboarding.profile.upload_header": "Dodaj zdjÄcie nagÅÃŗwkowe",
+ "onboarding.profile.upload_header": "Dodaj banner profilu",
"onboarding.share.lead": "Daj znaÄ ludziom, jak mogÄ
ciÄ znaleÅēÄ na Mastodonie!",
"onboarding.share.message": "Jestem {username} na #Mastodon! ÅledÅē mnie tutaj {url}",
"onboarding.share.next_steps": "MoÅŧliwe dalsze kroki:",
@@ -525,14 +523,11 @@
"poll_button.add_poll": "Dodaj gÅosowanie",
"poll_button.remove_poll": "UsuÅ gÅosowanie",
"privacy.change": "Dostosuj widocznoÅÄ wpisÃŗw",
- "privacy.direct.long": "Widoczny tylko dla wspomnianych",
- "privacy.direct.short": "Tylko wspomniane osoby",
- "privacy.private.long": "Widoczny tylko dla osÃŗb, ktÃŗre CiÄ obserwujÄ
",
- "privacy.private.short": "Tylko obserwujÄ
cy",
- "privacy.public.long": "Widoczne dla kaÅŧdego",
+ "privacy.direct.short": "Konkretni ludzie",
+ "privacy.private.long": "Tylko ci, ktÃŗrzy ciÄ obserwujÄ
",
+ "privacy.private.short": "ObserwujÄ
cy",
+ "privacy.public.long": "Ktokolwiek na i poza Mastodonem",
"privacy.public.short": "Publiczny",
- "privacy.unlisted.long": "Widoczne dla kaÅŧdego, z wyÅÄ
czeniem funkcji odkrywania",
- "privacy.unlisted.short": "Niewidoczny",
"privacy_policy.last_updated": "Data ostatniej aktualizacji: {date}",
"privacy_policy.title": "Polityka prywatnoÅci",
"recommended": "Zalecane",
@@ -714,10 +709,8 @@
"upload_error.poll": "DoÅÄ
czanie plikÃŗw nie dozwolone z gÅosowaniami.",
"upload_form.audio_description": "Opisz dla osÃŗb niesÅyszÄ
cych i niedosÅyszÄ
cych",
"upload_form.description": "WprowadÅē opis dla niewidomych i niedowidzÄ
cych",
- "upload_form.description_missing": "Nie dodano opisu",
"upload_form.edit": "Edytuj",
"upload_form.thumbnail": "ZmieÅ miniaturÄ",
- "upload_form.undo": "UsuÅ",
"upload_form.video_description": "Opisz dla osÃŗb niesÅyszÄ
cych, niedosÅyszÄ
cych, niewidomych i niedowidzÄ
cych",
"upload_modal.analyzing_picture": "Analizowanie obrazuâĻ",
"upload_modal.apply": "Zastosuj",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index e7975dd76..bb009239d 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Sem publicaçÃĩes",
"account.featured_tags.title": "Hashtags em destaque de {name}",
"account.follow": "Seguir",
+ "account.follow_back": "Seguir de volta",
"account.followers": "Seguidores",
"account.followers.empty": "Nada aqui.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "Seguindo",
"account.following_counter": "{count, plural, one {segue {counter}} other {segue {counter}}}",
"account.follows.empty": "Nada aqui.",
- "account.follows_you": "te segue",
"account.go_to_profile": "Ir ao perfil",
"account.hide_reblogs": "Ocultar boosts de @{name}",
"account.in_memoriam": "Em memÃŗria.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silenciar notificaçÃĩes",
"account.mute_short": "Silenciar",
"account.muted": "Silenciado",
+ "account.mutual": "MÃētuo",
"account.no_bio": "Nenhuma descriçÃŖo fornecida.",
"account.open_original_page": "Abrir a pÃĄgina original",
"account.posts": "Toots",
@@ -88,7 +89,6 @@
"announcement.announcement": "Comunicados",
"attachments_list.unprocessed": "(nÃŖo processado)",
"audio.hide": "Ocultar ÃĄudio",
- "autosuggest_hashtag.per_week": "{count} por semana",
"boost_modal.combo": "Pressione {combo} para pular isso na prÃŗxima vez",
"bundle_column_error.copy_stacktrace": "Copiar relatÃŗrio do erro",
"bundle_column_error.error.body": "A pÃĄgina solicitada nÃŖo pôde ser renderizada. Pode ser devido a um erro no nosso cÃŗdigo, ou um problema de compatibilidade do seu navegador.",
@@ -147,20 +147,20 @@
"compose_form.placeholder": "No que vocÃĒ estÃĄ pensando?",
"compose_form.poll.add_option": "Adicionar opçÃŖo",
"compose_form.poll.duration": "DuraçÃŖo da enquete",
+ "compose_form.poll.multiple": "MÃēltipla escolha",
"compose_form.poll.option_placeholder": "OpçÃŖo {number}",
- "compose_form.poll.remove_option": "Remover opçÃŖo",
+ "compose_form.poll.remove_option": "Remover esta opçÃŖo",
+ "compose_form.poll.single": "Escolha uma",
"compose_form.poll.switch_to_multiple": "Permitir mÃēltiplas escolhas",
"compose_form.poll.switch_to_single": "OpçÃŖo Ãēnica",
- "compose_form.publish": "Publicar",
+ "compose_form.poll.type": "Estilo",
+ "compose_form.publish": "PublicaçÃŖo",
"compose_form.publish_form": "Publicar",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Salvar alteraçÃĩes",
- "compose_form.sensitive.hide": "{count, plural, one {Marcar mÃdia como sensÃvel} other {Marcar mÃdias como sensÃvel}}",
- "compose_form.sensitive.marked": "{count, plural, one {MÃdia marcada como sensÃvel} other {MÃdias marcadas como sensÃvel}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {MÃdia nÃŖo estÃĄ marcada como sensÃvel} other {MÃdias nÃŖo estÃŖo marcadas como sensÃvel}}",
+ "compose_form.reply": "Resposta",
+ "compose_form.save_changes": "AtualizaçÃŖo",
"compose_form.spoiler.marked": "Com Aviso de ConteÃēdo",
"compose_form.spoiler.unmarked": "Sem Aviso de ConteÃēdo",
- "compose_form.spoiler_placeholder": "Aviso de ConteÃēdo aqui",
+ "compose_form.spoiler_placeholder": "Aviso de conteÃēdo (opcional)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.block_and_report": "Bloquear e denunciar",
"confirmations.block.confirm": "Bloquear",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "MençÃĩes privadas",
"navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "DomÃnios bloqueados",
- "navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palavras filtradas",
@@ -525,14 +524,12 @@
"poll_button.add_poll": "Adicionar enquete",
"poll_button.remove_poll": "Remover enquete",
"privacy.change": "Alterar privacidade do toot",
- "privacy.direct.long": "Postar sÃŗ para usuÃĄrios mencionados",
- "privacy.direct.short": "Apenas pessoas mencionadas",
- "privacy.private.long": "Postar sÃŗ para seguidores",
- "privacy.private.short": "Apenas seguidores",
- "privacy.public.long": "VisÃvel para todos",
+ "privacy.direct.long": "Todos mencionados na publicaçÃŖo",
+ "privacy.direct.short": "Pessoas especÃficas",
+ "privacy.private.long": "Apenas seus seguidores",
+ "privacy.private.short": "Seguidores",
+ "privacy.public.long": "Qualquer um dentro ou fora do Mastodon",
"privacy.public.short": "PÃēblico",
- "privacy.unlisted.long": "VisÃvel para todos, mas desativou os recursos de descoberta",
- "privacy.unlisted.short": "NÃŖo-listado",
"privacy_policy.last_updated": "Atualizado {date}",
"privacy_policy.title": "PolÃtica de privacidade",
"recommended": "Recomendado",
@@ -551,6 +548,7 @@
"relative_time.seconds": "{number}s",
"relative_time.today": "hoje",
"reply_indicator.cancel": "Cancelar",
+ "reply_indicator.poll": "Enquete",
"report.block": "Bloquear",
"report.block_explanation": "VocÃĒ nÃŖo verÃĄ suas publicaçÃĩes. Ele nÃŖo poderÃĄ ver suas publicaçÃĩes ou segui-lo, e serÃĄ capaz de perceber que estÃĄ bloqueado.",
"report.categories.legal": "JurÃdico",
@@ -714,10 +712,8 @@
"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": "Sem descriçÃŖo",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Alterar miniatura",
- "upload_form.undo": "Excluir",
"upload_form.video_description": "Descrever para deficientes auditivos ou visuais",
"upload_modal.analyzing_picture": "Analisando imagemâĻ",
"upload_modal.apply": "Aplicar",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index d5055b0dc..22bb1bbfd 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Sem publicaçÃĩes",
"account.featured_tags.title": "#Etiquetas destacadas por {name}",
"account.follow": "Seguir",
+ "account.follow_back": "Seguir de volta",
"account.followers": "Seguidores",
"account.followers.empty": "Ainda ninguÊm segue este utilizador.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "A seguir",
"account.following_counter": "{count, plural, other {A seguir {counter}}}",
"account.follows.empty": "Este utilizador ainda nÃŖo segue ninguÊm.",
- "account.follows_you": "Segue-te",
"account.go_to_profile": "Ir para o perfil",
"account.hide_reblogs": "Esconder partilhas de @{name}",
"account.in_memoriam": "Em MemÃŗria.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Silenciar notificaçÃĩes",
"account.mute_short": "Silenciar",
"account.muted": "Silenciada",
+ "account.mutual": "MÃētuo",
"account.no_bio": "Nenhuma descriçÃŖo fornecida.",
"account.open_original_page": "Abrir a pÃĄgina original",
"account.posts": "PublicaçÃĩes",
@@ -88,7 +89,6 @@
"announcement.announcement": "AnÃēncio",
"attachments_list.unprocessed": "(nÃŖo processado)",
"audio.hide": "Ocultar ÃĄudio",
- "autosuggest_hashtag.per_week": "{count} por semana",
"boost_modal.combo": "Pode clicar {combo} para nÃŖo voltar a ver",
"bundle_column_error.copy_stacktrace": "Copiar relatÃŗrio de erros",
"bundle_column_error.error.body": "A pÃĄgina solicitada nÃŖo pôde ser sintetizada. Isto pode ser devido a uma falha no nosso cÃŗdigo ou a um problema de compatibilidade com o navegador.",
@@ -145,22 +145,22 @@
"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": "fechada",
"compose_form.placeholder": "Em que estÃĄ a pensar?",
- "compose_form.poll.add_option": "Adicionar uma opçÃŖo",
+ "compose_form.poll.add_option": "Adicionar opçÃŖo",
"compose_form.poll.duration": "DuraçÃŖo do inquÊrito",
+ "compose_form.poll.multiple": "Escolha mÃēltipla",
"compose_form.poll.option_placeholder": "OpçÃŖo {number}",
"compose_form.poll.remove_option": "Eliminar esta opçÃŖo",
+ "compose_form.poll.single": "Escolha uma",
"compose_form.poll.switch_to_multiple": "Alterar o inquÊrito para permitir vÃĄrias respostas",
"compose_form.poll.switch_to_single": "Alterar o inquÊrito para permitir uma Ãēnica resposta",
+ "compose_form.poll.type": "Estilo",
"compose_form.publish": "Publicar",
"compose_form.publish_form": "Publicar",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Guardar alteraçÃĩes",
- "compose_form.sensitive.hide": "Marcar media como sensÃvel",
- "compose_form.sensitive.marked": "Media marcada como sensÃvel",
- "compose_form.sensitive.unmarked": "Media nÃŖo estÃĄ marcada como sensÃvel",
+ "compose_form.reply": "Responder",
+ "compose_form.save_changes": "Atualizar",
"compose_form.spoiler.marked": "Texto escondido atrÃĄs de aviso",
"compose_form.spoiler.unmarked": "Juntar um aviso de conteÃēdo",
- "compose_form.spoiler_placeholder": "Escreva o seu aviso aqui",
+ "compose_form.spoiler_placeholder": "Aviso de conteÃēdo (opcional)",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.block_and_report": "Bloquear e Denunciar",
"confirmations.block.confirm": "Bloquear",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "MençÃĩes privadas",
"navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "DomÃnios escondidos",
- "navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palavras silenciadas",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "Adicionar votaçÃŖo",
"poll_button.remove_poll": "Remover sondagem",
"privacy.change": "Ajustar a privacidade da publicaçÃŖo",
- "privacy.direct.long": "Apenas para utilizadores mencionados",
- "privacy.direct.short": "Apenas pessoas mencionadas",
- "privacy.private.long": "Apenas para os seguidores",
- "privacy.private.short": "Apenas seguidores",
- "privacy.public.long": "VisÃvel para todos",
+ "privacy.direct.long": "Todos os mencionados na publicaçÃŖo",
+ "privacy.direct.short": "Pessoas especÃficas",
+ "privacy.private.long": "Apenas os seus seguidores",
+ "privacy.private.short": "Seguidores",
+ "privacy.public.long": "Qualquer pessoa no Mastodon ou nÃŖo",
"privacy.public.short": "PÃēblico",
- "privacy.unlisted.long": "VisÃvel para todos, mas nÃŖo incluir em funcionalidades de divulgaçÃŖo",
- "privacy.unlisted.short": "NÃŖo listar",
+ "privacy.unlisted.additional": "Isto comporta-se exatamente como pÃēblico, exceto que a publicaçÃŖo nÃŖo aparecerÃĄ em feeds nem em etiquetas, explorar ou pesquisa Mastodon, mesmo que tenha optado por isso na sua conta.",
+ "privacy.unlisted.long": "Menos fanfarras algorÃtmicas",
+ "privacy.unlisted.short": "PÃēblico silencioso",
"privacy_policy.last_updated": "Ãltima atualizaçÃŖo em {date}",
"privacy_policy.title": "PolÃtica de privacidade",
"recommended": "Recomendado",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "hoje",
+ "reply_indicator.attachments": "{count, plural, one {# anexo} other {# anexos}}",
"reply_indicator.cancel": "Cancelar",
+ "reply_indicator.poll": "Sondagem",
"report.block": "Bloquear",
"report.block_explanation": "NÃŖo verÃĄ as publicaçÃĩes deles. Eles nÃŖo serÃŖo capazes de ver suas publicaçÃĩes ou de o seguir. Eles vÃŖo conseguir saber que estÃŖo bloqueados.",
"report.categories.legal": "Legal",
@@ -714,10 +716,8 @@
"upload_error.poll": "O carregamento de ficheiros nÃŖo Ê permitido em sondagens.",
"upload_form.audio_description": "Descreva para pessoas com diminuiçÃŖo da acuidade auditiva",
"upload_form.description": "Descreva para pessoas com diminuiçÃŖo da acuidade visual",
- "upload_form.description_missing": "Nenhuma descriçÃŖo adicionada",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Alterar miniatura",
- "upload_form.undo": "Eliminar",
"upload_form.video_description": "Descreva para pessoas com diminuiçÃŖo da acuidade auditiva ou visual",
"upload_modal.analyzing_picture": "A analizar imagemâĻ",
"upload_modal.apply": "Aplicar",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 5355f9935..e6d881a98 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -36,7 +36,6 @@
"account.following": "UrmÄriČi",
"account.following_counter": "{count, plural, one {Un abonament} few {{counter} abonamente} other {{counter} de abonamente}}",
"account.follows.empty": "Momentan acest utilizator nu are niciun abonament.",
- "account.follows_you": "Este abonat la tine",
"account.go_to_profile": "Mergi la profil",
"account.hide_reblogs": "Ascunde distribuirile de la @{name}",
"account.joined_short": "Ãnscris",
@@ -77,7 +76,6 @@
"announcement.announcement": "AnunČ",
"attachments_list.unprocessed": "(neprocesate)",
"audio.hide": "Ascunde audio",
- "autosuggest_hashtag.per_week": "{count} pe sÄptÄmÃĸnÄ",
"boost_modal.combo": "PoČi apÄsa {combo} pentru a sÄri peste asta data viitoare",
"bundle_column_error.copy_stacktrace": "CopiazÄ raportul de eroare",
"bundle_column_error.error.body": "Pagina solicitatÄ nu a putut fi randatÄ. Ar putea fi cauzatÄ de o eroare ÃŽn codul nostru sau de o problemÄ de compatibilitate cu browser-ul.",
@@ -132,22 +130,12 @@
"compose_form.lock_disclaimer": "Contul tÄu nu este {locked}. Oricine se poate abona la tine pentru a ÃŽČi vedea postÄrile numai pentru abonaČi.",
"compose_form.lock_disclaimer.lock": "privat",
"compose_form.placeholder": "La ce te gÃĸndeČti?",
- "compose_form.poll.add_option": "AdaugÄ o opČiune",
"compose_form.poll.duration": "Durata sondajului",
- "compose_form.poll.option_placeholder": "OpČiunea {number}",
- "compose_form.poll.remove_option": "EliminÄ acestÄ opČiune",
"compose_form.poll.switch_to_multiple": "ModificÄ sondajul pentru a permite mai multe opČiuni",
"compose_form.poll.switch_to_single": "ModificÄ sondajul pentru a permite o singurÄ opČiune",
- "compose_form.publish": "PublicÄ",
"compose_form.publish_form": "PublicÄ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "SalveazÄ modificÄrile",
- "compose_form.sensitive.hide": "{count, plural, one {MarcheazÄ conČinutul media ca fiind sensibil} few {MarcheazÄ conČinuturile media ca fiind sensibile} other {MarcheazÄ conČinuturile media ca fiind sensibile}}",
- "compose_form.sensitive.marked": "{count, plural, one {ConČinutul media este marcat ca fiind sensibil} other {ConČinuturile media sunt marcate ca fiind sensibile}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ConČinutul media nu este marcat ca fiind sensibil} other {ConČinuturile media nu sunt marcate ca fiind sensibile}}",
"compose_form.spoiler.marked": "EliminÄ avertismentul privind conČinutul",
"compose_form.spoiler.unmarked": "AdaugÄ un avertisment privind conČinutul",
- "compose_form.spoiler_placeholder": "Scrie avertismentul aici",
"confirmation_modal.cancel": "AnuleazÄ",
"confirmations.block.block_and_report": "BlocheazÄ Či raporteazÄ",
"confirmations.block.confirm": "BlocheazÄ",
@@ -366,7 +354,6 @@
"navigation_bar.compose": "Compune o nouÄ postare",
"navigation_bar.discover": "DescoperÄ",
"navigation_bar.domain_blocks": "Domenii blocate",
- "navigation_bar.edit_profile": "ModificÄ profilul",
"navigation_bar.explore": "ExploreazÄ",
"navigation_bar.filters": "Cuvinte ignorate",
"navigation_bar.follow_requests": "Cereri de abonare",
@@ -462,14 +449,7 @@
"poll_button.add_poll": "AdaugÄ un sondaj",
"poll_button.remove_poll": "EliminÄ sondajul",
"privacy.change": "ModificÄ confidenČialitatea postÄrii",
- "privacy.direct.long": "Vizibil doar pentru utilizatorii menČionaČi",
- "privacy.direct.short": "Doar persoane menČionate",
- "privacy.private.long": "Vizibil doar pentru abonaČi",
- "privacy.private.short": "Doar abonaČi",
- "privacy.public.long": "Vizibil pentru toČi",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Vizibil pentru toČi dar fÄrÄ funcČii de descoperire",
- "privacy.unlisted.short": "Nelistat",
"privacy_policy.last_updated": "Ultima actualizare ÃŽn data de {date}",
"privacy_policy.title": "PoliticÄ de confidenČialitate",
"refresh": "ReÃŽncarcÄ",
@@ -642,10 +622,8 @@
"upload_error.poll": "ÃncÄrcarea fiČierului nu este permisÄ cu sondaje.",
"upload_form.audio_description": "Descrie pentru persoanele cu deficienČÄ a auzului",
"upload_form.description": "AdaugÄ o descriere pentru persoanele cu deficienČe de vedere",
- "upload_form.description_missing": "Nicio descriere adÄugatÄ",
"upload_form.edit": "ModificÄ",
"upload_form.thumbnail": "SchimbÄ miniatura",
- "upload_form.undo": "Čterge",
"upload_form.video_description": "AdaugÄ o descriere pentru persoanele cu deficienČe vizuale sau auditive",
"upload_modal.analyzing_picture": "Se analizeazÄ imagineaâĻ",
"upload_modal.apply": "AplicÄ",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index f0c48236b..eefa9c729 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "ĐĐĩŅ ĐŋĐžŅŅОв",
"account.featured_tags.title": "ĐСйŅĐ°ĐŊĐŊŅĐĩ Ņ
ŅŅŅĐĩĐŗи {name}",
"account.follow": "ĐОдĐŋиŅĐ°ŅŅŅŅ",
+ "account.follow_back": "ĐОдĐŋиŅĐ°ŅŅŅŅ в ĐžŅвĐĩŅ",
"account.followers": "ĐОдĐŋиŅŅиĐēи",
"account.followers.empty": "ĐĐ° ŅŅĐžĐŗĐž ĐŋĐžĐģŅСОваŅĐĩĐģŅ ĐŋĐžĐēĐ° ĐŊиĐēŅĐž ĐŊĐĩ ĐŋОдĐŋиŅĐ°ĐŊ.",
"account.followers_counter": "{count, plural, one {{counter} ĐŋОдĐŋиŅŅиĐē} many {{counter} ĐŋОдĐŋиŅŅиĐēОв} other {{counter} ĐŋОдĐŋиŅŅиĐēĐ°}}",
"account.following": "ĐОдĐŋиŅĐēи",
"account.following_counter": "{count, plural, one {{counter} ĐŋОдĐŋиŅĐēĐ°} many {{counter} ĐŋОдĐŋиŅĐžĐē} other {{counter} ĐŋОдĐŋиŅĐēи}}",
"account.follows.empty": "ĐŅĐžŅ ĐŋĐžĐģŅСОваŅĐĩĐģŅ ĐŋĐžĐēĐ° ĐŊи ĐŊĐ° ĐēĐžĐŗĐž ĐŊĐĩ ĐŋОдĐŋиŅĐ°ĐģŅŅ.",
- "account.follows_you": "ĐОдĐŋиŅĐ°ĐŊ(Đ°) ĐŊĐ° ваŅ",
"account.go_to_profile": "ĐĐĩŅĐĩĐšŅи Đē ĐŋŅĐžŅиĐģŅ",
"account.hide_reblogs": "ĐĄĐēŅŅŅŅ ĐŋŅОдвиĐļĐĩĐŊиŅ ĐžŅ @{name}",
"account.in_memoriam": "Đ ĐĐ°ĐŧŅŅи.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ĐŅĐēĐģŅŅиŅŅ ŅвĐĩĐ´ĐžĐŧĐģĐĩĐŊиŅ",
"account.mute_short": "ĐĐĩĐŧОК",
"account.muted": "ĐĐŗĐŊĐžŅиŅŅĐĩŅŅŅ",
+ "account.mutual": "ĐСаиĐŧĐŊĐž",
"account.no_bio": "ĐĐŋиŅĐ°ĐŊиĐĩ ĐŊĐĩ ĐŋŅĐĩĐ´ĐžŅŅавĐģĐĩĐŊĐž.",
"account.open_original_page": "ĐŅĐēŅŅŅŅ иŅŅ
ОдĐŊŅŅ ŅŅŅĐ°ĐŊиŅŅ",
"account.posts": "ĐĐžŅŅŅ",
@@ -88,7 +89,6 @@
"announcement.announcement": "ĐĐąŅŅвĐģĐĩĐŊиĐĩ",
"attachments_list.unprocessed": "(ĐŊĐĩ ОйŅайОŅĐ°ĐŊ)",
"audio.hide": "ĐĄĐēŅŅŅŅ Đ°ŅдиО",
- "autosuggest_hashtag.per_week": "{count} / ĐŊĐĩĐ´ĐĩĐģŅ",
"boost_modal.combo": "{combo}, ŅŅОйŅ ĐŋŅĐžĐŋŅŅŅиŅŅ ŅŅĐž в ŅĐģĐĩĐ´ŅŅŅиК ŅаС",
"bundle_column_error.copy_stacktrace": "ĐĄĐēĐžĐŋиŅОваŅŅ ĐžŅŅĐĩŅ Ой ĐžŅийĐēĐĩ",
"bundle_column_error.error.body": "ĐĐ°ĐŋŅĐžŅĐĩĐŊĐŊĐ°Ņ ŅŅŅĐ°ĐŊиŅĐ° ĐŊĐĩ ĐŧĐžĐļĐĩŅ ĐąŅŅŅ ĐžŅОйŅĐ°ĐļĐĩĐŊĐ°. ĐŅĐž ĐŧĐžĐļĐĩŅ ĐąŅŅŅ вŅСваĐŊĐž ĐžŅийĐēОК в ĐŊĐ°ŅĐĩĐŧ ĐēОдĐĩ иĐģи ĐŋŅОйĐģĐĩĐŧОК ŅОвĐŧĐĩŅŅиĐŧĐžŅŅи ĐąŅĐ°ŅСĐĩŅĐ°.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "ĐĐ°ŅĐ° ŅŅŅŅĐŊĐ°Ņ СаĐŋиŅŅ {locked}. ĐŅйОК ĐŋĐžĐģŅСОваŅĐĩĐģŅ ŅĐŧĐžĐļĐĩŅ ĐŋОдĐŋиŅĐ°ŅŅŅŅ ĐŊĐ° ваŅ и ĐŋŅĐžŅĐŧĐ°ŅŅиваŅŅ ĐŋĐžŅŅŅ Đ´ĐģŅ ĐŋОдĐŋиŅŅиĐēОв.",
"compose_form.lock_disclaimer.lock": "ĐŊĐĩ СаĐēŅŅŅĐ°",
"compose_form.placeholder": "Đ ŅŅĐŧ Đ´ŅĐŧĐ°ĐĩŅĐĩ?",
- "compose_form.poll.add_option": "ĐОйавиŅŅ ваŅиаĐŊŅ",
"compose_form.poll.duration": "ĐŅОдОĐģĐļиŅĐĩĐģŅĐŊĐžŅŅŅ ĐžĐŋŅĐžŅĐ°",
- "compose_form.poll.option_placeholder": "ĐĐ°ŅиаĐŊŅ {number}",
- "compose_form.poll.remove_option": "ĐŖĐąŅĐ°ŅŅ ŅŅĐžŅ ваŅиаĐŊŅ",
"compose_form.poll.switch_to_multiple": "РаСŅĐĩŅиŅŅ вŅйОŅ ĐŊĐĩŅĐēĐžĐģŅĐēиŅ
ваŅиаĐŊŅОв",
"compose_form.poll.switch_to_single": "ĐĐĩŅĐĩĐēĐģŅŅиŅŅ в ŅĐĩĐļиĐŧ вŅйОŅĐ° ОдĐŊĐžĐŗĐž ĐžŅвĐĩŅĐ°",
- "compose_form.publish": "ĐĐŋŅĐąĐģиĐēОваŅŅ",
"compose_form.publish_form": "ĐĐŋŅĐąĐģиĐēОваŅŅ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ĐĄĐžŅ
ŅĐ°ĐŊиŅŅ",
- "compose_form.sensitive.hide": "{count, plural, one {ĐŅĐŧĐĩŅиŅŅ ĐŧĐĩдиŅĐ°ĐšĐģ ĐēĐ°Đē Đ´ĐĩĐģиĐēĐ°ŅĐŊŅĐš} other {ĐŅĐŧĐĩŅиŅŅ ĐŧĐĩдиŅĐ°ĐšĐģŅ ĐēĐ°Đē Đ´ĐĩĐģиĐēĐ°ŅĐŊŅĐĩ}}",
- "compose_form.sensitive.marked": "ĐĐĩдиа{count, plural, =1 {ŅĐ°ĐšĐģ ĐžŅĐŧĐĩŅĐĩĐŊ} other {ŅĐ°ĐšĐģŅ ĐžŅĐŧĐĩŅĐĩĐŊŅ}} ĐēĐ°Đē ÂĢĐ´ĐĩĐģиĐēĐ°ŅĐŊĐžĐŗĐž Ņ
Đ°ŅĐ°ĐēŅĐĩŅĐ°Âģ",
- "compose_form.sensitive.unmarked": "ĐĐĩдиа{count, plural, =1 {ŅĐ°ĐšĐģ ĐŊĐĩ ĐžŅĐŧĐĩŅĐĩĐŊ} other {ŅĐ°ĐšĐģŅ ĐŊĐĩ ĐžŅĐŧĐĩŅĐĩĐŊŅ}} ĐēĐ°Đē ÂĢĐ´ĐĩĐģиĐēĐ°ŅĐŊĐžĐŗĐž Ņ
Đ°ŅĐ°ĐēŅĐĩŅĐ°Âģ",
"compose_form.spoiler.marked": "ĐĸĐĩĐēŅŅ ŅĐēŅŅŅ Са ĐŋŅĐĩĐ´ŅĐŋŅĐĩĐļĐ´ĐĩĐŊиĐĩĐŧ",
"compose_form.spoiler.unmarked": "ĐĸĐĩĐēŅŅ ĐŊĐĩ ŅĐēŅŅŅ",
- "compose_form.spoiler_placeholder": "ĐĸĐĩĐēŅŅ ĐŋŅĐĩĐ´ŅĐŋŅĐĩĐļĐ´ĐĩĐŊиŅ",
"confirmation_modal.cancel": "ĐŅĐŧĐĩĐŊĐ°",
"confirmations.block.block_and_report": "ĐĐ°ĐąĐģĐžĐēиŅОваŅŅ и ĐŋĐžĐļĐ°ĐģОваŅŅŅŅ",
"confirmations.block.confirm": "ĐĐ°ĐąĐģĐžĐēиŅОваŅŅ",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "ĐиŅĐŊŅĐĩ ŅĐŋĐžĐŧиĐŊĐ°ĐŊиŅ",
"navigation_bar.discover": "ĐСŅŅĐ°ĐšŅĐĩ",
"navigation_bar.domain_blocks": "ĐĄĐēŅŅŅŅĐĩ Đ´ĐžĐŧĐĩĐŊŅ",
- "navigation_bar.edit_profile": "ĐСĐŧĐĩĐŊиŅŅ ĐŋŅĐžŅиĐģŅ",
"navigation_bar.explore": "ĐйСОŅ",
"navigation_bar.favourites": "ĐСйŅĐ°ĐŊĐŊŅĐĩ",
"navigation_bar.filters": "ĐĐŗĐŊĐžŅиŅŅĐĩĐŧŅĐĩ ŅĐģОва",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "ĐОйавиŅŅ ĐžĐŋŅĐžŅ",
"poll_button.remove_poll": "ĐŖĐ´Đ°ĐģиŅŅ ĐžĐŋŅĐžŅ",
"privacy.change": "ĐСĐŧĐĩĐŊиŅŅ видиĐŧĐžŅŅŅ ĐŋĐžŅŅĐ°",
- "privacy.direct.long": "ĐĐžĐēаСаŅŅ ŅĐžĐģŅĐēĐž ŅĐŋĐžĐŧŅĐŊŅŅŅĐŧ",
- "privacy.direct.short": "ĐĸĐžĐģŅĐēĐž ŅĐŋĐžĐŧŅĐŊŅŅŅĐĩ",
- "privacy.private.long": "ĐĐžĐēаСаŅŅ ŅĐžĐģŅĐēĐž ĐŋОдĐŋиŅŅиĐēĐ°Đŧ",
- "privacy.private.short": "ĐĐģŅ ĐŋОдĐŋиŅŅиĐēОв",
- "privacy.public.long": "ĐидĐĩĐŊ вŅĐĩĐŧ",
"privacy.public.short": "ĐŅĐąĐģиŅĐŊŅĐš",
- "privacy.unlisted.long": "ĐидĐĩĐŊ вŅĐĩĐŧ, ĐŊĐž ĐŊĐĩ ŅĐĩŅĐĩС ŅŅĐŊĐēŅии ОйСОŅĐ°",
- "privacy.unlisted.short": "ĐĄĐēŅŅŅŅĐš",
"privacy_policy.last_updated": "ĐĐžŅĐģĐĩĐ´ĐŊĐĩĐĩ ОйĐŊОвĐģĐĩĐŊиĐĩ {date}",
"privacy_policy.title": "ĐĐžĐģиŅиĐēĐ° ĐēĐžĐŊŅидĐĩĐŊŅиаĐģŅĐŊĐžŅŅи",
"recommended": "Đ ĐĩĐēĐžĐŧĐĩĐŊĐ´ŅĐĩŅŅŅ",
@@ -714,10 +696,8 @@
"upload_error.poll": "Đ ĐžĐŋŅĐžŅĐ°Đŧ ĐŊĐĩĐģŅСŅ ĐŋŅиĐēŅĐĩĐŋĐģŅŅŅ ŅĐ°ĐšĐģŅ.",
"upload_form.audio_description": "ĐĐŋиŅиŅĐĩ Đ°ŅдиОŅĐ°ĐšĐģ Đ´ĐģŅ ĐģŅĐ´ĐĩĐš Ņ ĐŊĐ°ŅŅŅĐĩĐŊиĐĩĐŧ ŅĐģŅŅ
Đ°",
"upload_form.description": "ĐОйавŅŅĐĩ ĐžĐŋиŅĐ°ĐŊиĐĩ Đ´ĐģŅ ĐģŅĐ´ĐĩĐš Ņ ĐŊĐ°ŅŅŅĐĩĐŊиŅĐŧи СŅĐĩĐŊиŅ:",
- "upload_form.description_missing": "ĐĐŋиŅĐ°ĐŊиĐĩ ĐŊĐĩ дОйавĐģĐĩĐŊĐž",
"upload_form.edit": "ĐСĐŧĐĩĐŊиŅŅ",
"upload_form.thumbnail": "ĐСĐŧĐĩĐŊиŅŅ ОйĐģĐžĐļĐēŅ",
- "upload_form.undo": "ĐŅĐŧĐĩĐŊиŅŅ",
"upload_form.video_description": "ĐĐŋиŅиŅĐĩ видĐĩĐž Đ´ĐģŅ ĐģŅĐ´ĐĩĐš Ņ ĐŊĐ°ŅŅŅĐĩĐŊиĐĩĐŧ ŅĐģŅŅ
Đ° иĐģи СŅĐĩĐŊиŅ",
"upload_modal.analyzing_picture": "ĐĐąŅайОŅĐēĐ° иСОйŅĐ°ĐļĐĩĐŊиŅâĻ",
"upload_modal.apply": "ĐŅиĐŧĐĩĐŊиŅŅ",
diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json
index 59379343b..469930c3e 100644
--- a/app/javascript/mastodon/locales/sa.json
+++ b/app/javascript/mastodon/locales/sa.json
@@ -36,7 +36,6 @@
"account.following": "ā¤
ā¤¨āĨā¤¸ā¤°ā¤¤ā¤ŋ",
"account.following_counter": "{count, plural, one {{counter} ā¤
ā¤¨āĨā¤¸āĨā¤¤ā¤} two {{counter} ā¤
ā¤¨āĨā¤¸āĨā¤¤āĨ} other {{counter} ā¤
ā¤¨āĨā¤¸āĨā¤¤ā¤žā¤}}",
"account.follows.empty": "ā¤¨ ā¤āĨā¤Ŋā¤ĒāĨā¤¯ā¤¨āĨā¤¸āĨā¤¤āĨ ā¤ĩā¤°āĨā¤¤ā¤¤āĨ",
- "account.follows_you": "ā¤¤āĨā¤ĩā¤žā¤Žā¤¨āĨā¤¸ā¤°ā¤¤ā¤ŋ",
"account.go_to_profile": "ā¤ĒāĨā¤°āĨā¤Ģā¤žā¤¯ā¤ŋā¤˛ā¤ ā¤ā¤āĨā¤",
"account.hide_reblogs": "@{name} ā¤Žā¤ŋā¤¤āĨā¤°ā¤¸āĨā¤¯ ā¤ĒāĨā¤°ā¤ā¤žā¤ļā¤¨ā¤žā¤¨ā¤ŋ ā¤ā¤ŋā¤ĻāĨā¤¯ā¤¨āĨā¤¤ā¤žā¤ŽāĨ",
"account.in_memoriam": "ā¤¸āĨā¤ŽāĨā¤¤āĨā¤¯ā¤žā¤ŽāĨ",
@@ -78,7 +77,6 @@
"announcement.announcement": "ā¤ā¤ĻāĨā¤āĨā¤ˇā¤Ŗā¤ž",
"attachments_list.unprocessed": "(ā¤
ā¤ĒāĨā¤°ā¤āĨā¤¤ā¤ŽāĨ)",
"audio.hide": "ā¤§āĨā¤ĩā¤¨ā¤ŋā¤ ā¤ĒāĨā¤°ā¤āĨā¤ā¤žā¤Ļā¤¯",
- "autosuggest_hashtag.per_week": "{count} ā¤ĒāĨā¤°ā¤¤ā¤ŋā¤¸ā¤ĒāĨā¤¤ā¤žā¤šāĨ",
"boost_modal.combo": "{combo} ā¤
ā¤¤āĨā¤° ā¤¸āĨā¤ĒāĨā¤°ā¤ˇāĨā¤āĨā¤ ā¤ļā¤āĨā¤¯ā¤¤āĨ, ā¤¤āĨā¤¯ā¤āĨā¤¤āĨā¤ŽāĨā¤¤ā¤Žā¤¨āĨā¤¯ā¤¸āĨā¤Žā¤ŋā¤¨āĨ ā¤¸ā¤Žā¤¯āĨ",
"bundle_column_error.copy_stacktrace": "ā¤¤āĨā¤°āĨā¤āĨā¤¯ā¤žā¤ĩāĨā¤Ļā¤¨ā¤ ā¤ĒāĨā¤°ā¤¤ā¤ŋā¤˛ā¤ŋā¤Ēā¤ŋā¤āĨā¤āĨā¤°āĨ",
"bundle_column_error.error.body": "ā¤
ā¤¨āĨā¤°āĨā¤§ā¤ŋā¤¤ā¤ ā¤ĒāĨā¤ˇāĨā¤ ā¤ ā¤ĒāĨā¤°ā¤¤ā¤ŋā¤Ēā¤žā¤Ļā¤¯ā¤ŋā¤¤āĨā¤ ā¤¨ ā¤ļā¤āĨā¤¯ā¤¤āĨāĨ¤ ā¤
ā¤¸āĨā¤Žā¤žā¤ā¤ ā¤āĨā¤Ąā¤ŋ ā¤ĻāĨā¤ˇā¤¸āĨā¤¯ ā¤ā¤žā¤°ā¤ŖāĨā¤¨, ā¤
ā¤Ĩā¤ĩā¤ž ā¤ŦāĨā¤°ā¤žā¤ā¤ā¤°āĨ ā¤¸ā¤ā¤ā¤¤ā¤¤ā¤žā¤¯ā¤žā¤¸āĨā¤¸ā¤Žā¤¸āĨā¤¯ā¤žā¤¯ā¤žā¤ ā¤ā¤žā¤°ā¤ŖāĨā¤¨ ā¤ā¤ĩā¤ŋā¤¤āĨā¤Žā¤°āĨā¤šā¤¤ā¤ŋāĨ¤",
@@ -130,22 +128,12 @@
"compose_form.lock_disclaimer": "ā¤¤ā¤ĩ ā¤˛āĨā¤ā¤ž ā¤¨ ā¤ĒāĨā¤°ā¤ĩāĨā¤ˇāĨā¤āĨā¤Žā¤ļā¤āĨā¤¯ā¤ž {locked} āĨ¤ ā¤āĨā¤Ŋā¤ĒāĨā¤¯ā¤¨āĨā¤¸ā¤°āĨā¤¤ā¤ž ā¤¤āĨ ā¤āĨā¤ĩā¤˛ā¤Žā¤¨āĨā¤¸ā¤°āĨā¤¤āĨāĨā¤Ŗā¤žā¤ ā¤āĨā¤¤āĨ ā¤¸āĨā¤Ĩā¤ŋā¤¤ā¤žā¤¨ā¤ŋ ā¤Ēā¤¤āĨā¤°ā¤žā¤Ŗā¤ŋ ā¤ĻāĨā¤°ā¤ˇāĨā¤āĨā¤ ā¤ļā¤āĨā¤¨āĨā¤¤ā¤ŋ āĨ¤",
"compose_form.lock_disclaimer.lock": "ā¤
ā¤ĩā¤°āĨā¤ĻāĨā¤§ā¤",
"compose_form.placeholder": "ā¤Žā¤¨ā¤¸ā¤ŋ ā¤¤āĨ ā¤ā¤ŋā¤Žā¤¸āĨā¤¤ā¤ŋ?",
- "compose_form.poll.add_option": "ā¤Žā¤¤ā¤Žā¤Ēā¤°ā¤ ā¤¯āĨā¤āĨā¤¯ā¤¤ā¤žā¤ŽāĨ",
"compose_form.poll.duration": "ā¤Žā¤¤ā¤Ļā¤žā¤¨-ā¤¸ā¤Žā¤¯ā¤žā¤ĩā¤§ā¤ŋā¤",
- "compose_form.poll.option_placeholder": "ā¤Žā¤¤ā¤ŽāĨ {number}",
- "compose_form.poll.remove_option": "ā¤Žā¤¤ā¤ŽāĨā¤¤ā¤¨āĨā¤¨ā¤ļāĨā¤¯ā¤¤ā¤žā¤ŽāĨ",
"compose_form.poll.switch_to_multiple": "ā¤Žā¤¤ā¤Ļā¤žā¤¨ā¤ ā¤Ēā¤°ā¤ŋā¤ĩā¤°āĨā¤¤ā¤¯ā¤ŋā¤¤āĨā¤ĩā¤ž ā¤Ŧā¤šāĨā¤ĩāĨā¤ā¤˛āĨā¤Ēā¤ŋā¤ā¤Žā¤¤ā¤Ļā¤žā¤¨ā¤ ā¤āĨā¤°ā¤ŋā¤¯ā¤¤ā¤žā¤ŽāĨ",
"compose_form.poll.switch_to_single": "ā¤Žā¤¤ā¤Ļā¤žā¤¨ā¤ ā¤Ēā¤°ā¤ŋā¤ĩā¤°āĨā¤¤ā¤¯ā¤ŋā¤¤āĨā¤ĩā¤ž ā¤¨ā¤ŋā¤°āĨā¤ĩā¤ŋā¤ā¤˛āĨā¤Ēā¤Žā¤¤ā¤Ļā¤žā¤¨ā¤ ā¤āĨā¤°ā¤ŋā¤¯ā¤¤ā¤žā¤ŽāĨ",
- "compose_form.publish": "ā¤ĒāĨā¤°ā¤ā¤žā¤ļāĨā¤āĨā¤°āĨ",
"compose_form.publish_form": "ā¤ĒāĨā¤°ā¤ā¤žā¤ļāĨā¤āĨā¤°āĨ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ā¤Ēā¤°ā¤ŋā¤ĩā¤°āĨā¤¤ā¤¨ā¤žā¤¨ā¤ŋ ā¤°ā¤āĨā¤ˇ",
- "compose_form.sensitive.hide": "ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ā¤¸ā¤žā¤Žā¤āĨā¤°āĨā¤¤āĨā¤¯ā¤āĨā¤¯ā¤¤ā¤žā¤ŽāĨ",
- "compose_form.sensitive.marked": "ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ā¤¸ā¤žā¤Žā¤āĨā¤°āĨā¤¤āĨā¤¯ā¤āĨā¤ā¤ŋā¤¤ā¤ŽāĨ",
- "compose_form.sensitive.unmarked": "ā¤¸ā¤ā¤ĩāĨā¤Ļā¤¨ā¤ļāĨā¤˛ā¤¸ā¤žā¤Žā¤āĨā¤°āĨā¤¤ā¤ŋ ā¤¨ā¤žā¤āĨā¤ā¤ŋā¤¤ā¤ŽāĨ",
"compose_form.spoiler.marked": "ā¤ĒāĨā¤°ā¤āĨā¤ā¤žā¤¨āĨā¤¨ā¤žā¤āĨā¤ˇā¤°ā¤ ā¤ĩā¤ŋā¤ĻāĨā¤¯ā¤¤āĨ",
"compose_form.spoiler.unmarked": "ā¤
ā¤ĒāĨā¤°ā¤āĨā¤ā¤¨āĨā¤¨ā¤žā¤āĨā¤ˇā¤°ā¤ ā¤ĩā¤ŋā¤ĻāĨā¤¯ā¤¤āĨ",
- "compose_form.spoiler_placeholder": "ā¤ĒāĨā¤°ā¤¤āĨā¤¯ā¤žā¤ĻāĨā¤ļā¤¸āĨā¤¤āĨ ā¤˛ā¤ŋā¤āĨā¤¯ā¤¤ā¤žā¤ŽāĨ",
"confirmation_modal.cancel": "ā¤¨ā¤ļāĨā¤¯ā¤¤ā¤žā¤ŽāĨ",
"confirmations.block.block_and_report": "ā¤
ā¤ĩā¤°āĨā¤§āĨā¤¯ ā¤ā¤ĩā¤ŋā¤ĻāĨā¤¯ā¤¤ā¤žā¤ŽāĨ",
"confirmations.block.confirm": "ā¤¨ā¤ŋā¤ˇāĨā¤§ā¤",
@@ -358,7 +346,6 @@
"navigation_bar.direct": "ā¤āĨā¤Ēā¤¨āĨā¤¯ā¤°āĨā¤ĒāĨā¤Ŗ ā¤ā¤˛āĨā¤˛ā¤ŋā¤ā¤ŋā¤¤ā¤žā¤¨ā¤ŋ",
"navigation_bar.discover": "ā¤ā¤ĩā¤ŋā¤ˇāĨā¤āĨā¤°āĨ",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "ā¤ĒāĨā¤°āĨā¤ĢāĨā¤˛ā¤ ā¤¸ā¤ŽāĨā¤Ēā¤žā¤ĻāĨā¤¯ā¤¤ā¤žā¤ŽāĨ",
"navigation_bar.explore": "ā¤
ā¤¨āĨā¤ĩā¤ŋā¤āĨā¤",
"navigation_bar.filters": "ā¤ŽāĨā¤āĨā¤āĨā¤¤ā¤žā¤¨ā¤ŋ ā¤Ēā¤Ļā¤žā¤¨ā¤ŋ",
"navigation_bar.follow_requests": "ā¤
ā¤¨āĨā¤¸ā¤°ā¤Ŗā¤žā¤¨āĨā¤°āĨā¤§ā¤žā¤",
@@ -454,14 +441,7 @@
"poll_button.add_poll": "ā¤¨ā¤ŋā¤°āĨā¤ĩā¤žā¤ā¤¨ā¤ ā¤¯āĨā¤ā¤¯",
"poll_button.remove_poll": "ā¤¨ā¤ŋā¤°āĨā¤ĩā¤žā¤ā¤¨ā¤ ā¤Žā¤žā¤°āĨā¤ā¤¯",
"privacy.change": "ā¤Ēā¤¤āĨā¤°ā¤¸āĨā¤¯ ā¤āĨā¤Ēā¤¨āĨā¤¯ā¤¤ā¤žā¤ ā¤Ēā¤°ā¤ŋā¤ĩā¤°āĨā¤¤ā¤¯",
- "privacy.direct.long": "ā¤āĨā¤ĩā¤˛ā¤ŽāĨā¤˛āĨā¤˛ā¤ŋā¤ā¤ŋā¤¤āĨā¤āĨā¤āĨā¤¤āĨā¤āĨā¤¯āĨ ā¤ĻāĨā¤ļāĨā¤¯ā¤¤āĨ",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "ā¤āĨā¤ĩā¤˛ā¤ ā¤¯āĨā¤Ŋā¤¨āĨā¤¸ā¤°ā¤¨āĨā¤¤ā¤ŋ ā¤¤āĨā¤ĩā¤žā¤ ā¤¤āĨā¤āĨā¤¯āĨ ā¤ĻāĨā¤ļāĨā¤¯ā¤¤āĨ",
- "privacy.private.short": "Followers-only",
- "privacy.public.long": "ā¤¸ā¤°āĨā¤ĩāĨā¤āĨā¤¯āĨ ā¤ĻāĨā¤ļāĨā¤¯ā¤¤āĨ",
"privacy.public.short": "ā¤¸ā¤žā¤°āĨā¤ĩā¤ā¤¨ā¤ŋā¤ā¤ŽāĨ",
- "privacy.unlisted.long": "ā¤¸ā¤°āĨā¤ĩāĨā¤āĨā¤¯āĨ ā¤ĻāĨā¤ļāĨā¤¯ā¤¤āĨ ā¤ā¤ŋā¤¨āĨā¤¤āĨ ā¤ā¤ĩā¤ŋā¤ˇāĨā¤ā¤žā¤°ā¤ĩā¤ŋā¤ļāĨā¤ˇā¤¤ā¤žā¤āĨā¤¯āĨā¤Ŋā¤¨āĨā¤¤ā¤°ā¤āĨā¤¤ā¤ ā¤¨ā¤žā¤¸āĨā¤¤ā¤ŋ",
- "privacy.unlisted.short": "ā¤
ā¤¸āĨā¤āĨā¤āĨā¤¤ā¤ŽāĨ",
"privacy_policy.last_updated": "ā¤
ā¤¨āĨā¤¤ā¤ŋā¤Žā¤ĩā¤žā¤°ā¤ ā¤Ēā¤°ā¤ŋā¤ĩā¤°āĨā¤¤ā¤ŋā¤¤ā¤ŽāĨ {date}",
"privacy_policy.title": "ā¤āĨā¤Ēā¤¨āĨā¤¯ā¤¤ā¤žā¤¨āĨā¤¤ā¤ŋā¤",
"refresh": "ā¤¨ā¤ĩāĨā¤āĨā¤°āĨ",
@@ -573,7 +553,6 @@
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
- "upload_form.undo": "ā¤Žā¤žā¤°āĨā¤ā¤¯",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_progress.label": "UploadingâĻ"
}
diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json
index 7f29525e7..90b663aea 100644
--- a/app/javascript/mastodon/locales/sc.json
+++ b/app/javascript/mastodon/locales/sc.json
@@ -30,7 +30,6 @@
"account.following": "Sighende",
"account.following_counter": "{count, plural, one {Sighende a {counter}} other {Sighende a {counter}}}",
"account.follows.empty": "Custa persone non sighit ancora a nemos.",
- "account.follows_you": "Ti sighit",
"account.hide_reblogs": "Cua is cumpartziduras de @{name}",
"account.in_memoriam": "In memoriam.",
"account.joined_short": "At aderidu",
@@ -61,7 +60,6 @@
"alert.unexpected.title": "Oh!",
"announcement.announcement": "AnnÚntziu",
"audio.hide": "Cua s'Ã udio",
- "autosuggest_hashtag.per_week": "{count} a sa chida",
"boost_modal.combo": "Podes incarcare {combo} pro brincare custu sa borta chi benit",
"bundle_column_error.error.title": "Oh, no!",
"bundle_column_error.network.title": "Faddina de connessione",
@@ -101,22 +99,12 @@
"compose_form.lock_disclaimer": "Su contu tuo no est {locked}. Cale si siat persone ti podet sighire pro bÃŦdere is messà gios tuos chi imbies a sa gente chi ti sighit.",
"compose_form.lock_disclaimer.lock": "blocadu",
"compose_form.placeholder": "A ite ses pensende?",
- "compose_form.poll.add_option": "Agiunghe unu sèberu",
"compose_form.poll.duration": "Longà ria de su sondà giu",
- "compose_form.poll.option_placeholder": "Optzione {number}",
- "compose_form.poll.remove_option": "Boga custa optzione",
"compose_form.poll.switch_to_multiple": "Muda su sondà giu pro permÃŦtere multi-optziones",
"compose_form.poll.switch_to_single": "Muda su sondà giu pro permÃŦtere un'optzione isceti",
- "compose_form.publish": "PÚblica",
"compose_form.publish_form": "Publish",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Sarva is modÃŦficas",
- "compose_form.sensitive.hide": "{count, plural, one {Marca elementu multimediale comente a sensÃŦbile} other {Marca elementos multimediales comente sensÃŦbiles}}",
- "compose_form.sensitive.marked": "{count, plural, one {Elementu multimediale marcadu comente a sensÃŦbile} other {Elementos multimediales marcados comente a sensÃŦbiles}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Elementu multimediale non marcadu comente a sensÃŦbile} other {Elementos multimediales non marcados comente a sensÃŦbiles}}",
"compose_form.spoiler.marked": "Boga avisu de cuntenutu",
"compose_form.spoiler.unmarked": "Agiunghe avisu de cuntenutu",
- "compose_form.spoiler_placeholder": "Iscrie s'avisu tuo inoghe",
"confirmation_modal.cancel": "Annulla",
"confirmations.block.block_and_report": "Bloca e signala",
"confirmations.block.confirm": "Bloca",
@@ -288,7 +276,6 @@
"navigation_bar.compose": "Cumpone una publicatzione noa",
"navigation_bar.discover": "Iscoberi",
"navigation_bar.domain_blocks": "DomÃŦnios blocados",
- "navigation_bar.edit_profile": "ModÃŦfica profilu",
"navigation_bar.filters": "Faeddos a sa muda",
"navigation_bar.follow_requests": "Rechestas de sighidura",
"navigation_bar.follows_and_followers": "Gente chi sighis e sighiduras",
@@ -365,12 +352,7 @@
"poll_button.add_poll": "Agiunghe unu sondà giu",
"poll_button.remove_poll": "Cantzella su sondà giu",
"privacy.change": "ModÃŦfica s'istadu de riservadesa",
- "privacy.direct.long": "VisÃŦbile isceti pro is persones mentovadas",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "VisÃŦbile isceti pro chie ti sighit",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "PÚblicu",
- "privacy.unlisted.short": "EsclÚidu de sa lista",
"recommended": "Cussigiadu",
"refresh": "Atualiza",
"regeneration_indicator.label": "CarrighendeâĻ",
@@ -474,7 +456,6 @@
"upload_form.description": "Descritzione pro persones cun problemas visuales",
"upload_form.edit": "ModÃŦfica",
"upload_form.thumbnail": "CÃ mbia sa miniadura",
- "upload_form.undo": "Cantzella",
"upload_form.video_description": "Descritzione pro persones cun pèrdida auditiva o problemas visuales",
"upload_modal.analyzing_picture": "Analizende immà gineâĻ",
"upload_modal.apply": "Ãplica",
diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json
index 28dac9c2a..b7563022a 100644
--- a/app/javascript/mastodon/locales/sco.json
+++ b/app/javascript/mastodon/locales/sco.json
@@ -35,7 +35,6 @@
"account.following": "Follaein",
"account.following_counter": "{count, plural, one {{counter} Follaein} other {{counter} Follaein}}",
"account.follows.empty": "This uiser disnae follae oniebody yit.",
- "account.follows_you": "Follaes ye",
"account.go_to_profile": "Gang tae profile",
"account.hide_reblogs": "Dinnae shaw heezes fae @{name}",
"account.joined_short": "Jynt",
@@ -75,7 +74,6 @@
"announcement.announcement": "Annooncement",
"attachments_list.unprocessed": "(No processed)",
"audio.hide": "Stow audio",
- "autosuggest_hashtag.per_week": "{count} a week",
"boost_modal.combo": "Ye kin chap {combo} tae dingie this neist tim",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requestit page cuidnae be rennert. Hit cuid be doon tae a bug in wir code, or a brooser compatability issue.",
@@ -126,22 +124,12 @@
"compose_form.lock_disclaimer": "Yer accoont isnae {locked}. Awbody kin follae ye for tae luik at yer follaer-ainly posts.",
"compose_form.lock_disclaimer.lock": "lockit",
"compose_form.placeholder": "Whit's on yer mind?",
- "compose_form.poll.add_option": "Pit in a chyce",
"compose_form.poll.duration": "Poll lenth",
- "compose_form.poll.option_placeholder": "Chyce {number}",
- "compose_form.poll.remove_option": "Tak oot this chyce",
"compose_form.poll.switch_to_multiple": "Chynge poll tae alloo multiple chyces",
"compose_form.poll.switch_to_single": "Chynge poll tae alloo fir a single chyce",
- "compose_form.publish": "Publish",
"compose_form.publish_form": "Publish",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Save chynges",
- "compose_form.sensitive.hide": "{count, plural, one {Mairk media as sensitive} other {Mairk media as sensitive}}",
- "compose_form.sensitive.marked": "{count, plural, one {Media is mairkit as sensitive} other {Media is mairkit as sensitive}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Media isnae mairkit as sensitive} other {Media isnae mairkit as sensitive}}",
"compose_form.spoiler.marked": "Tak aff the content warnin",
"compose_form.spoiler.unmarked": "Pit on a content warnin",
- "compose_form.spoiler_placeholder": "Scrieve yer warnin in here",
"confirmation_modal.cancel": "Stap",
"confirmations.block.block_and_report": "Dingie & Clype",
"confirmations.block.confirm": "Dingie",
@@ -342,7 +330,6 @@
"navigation_bar.compose": "Scrieve new post",
"navigation_bar.discover": "Fin",
"navigation_bar.domain_blocks": "Dingied domains",
- "navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Splore",
"navigation_bar.filters": "Wheesht wirds",
"navigation_bar.follow_requests": "Follae requests",
@@ -426,14 +413,7 @@
"poll_button.add_poll": "Dae a poll",
"poll_button.remove_poll": "Tak doon poll",
"privacy.change": "Chynge post privacy",
- "privacy.direct.long": "Ainly menshied uisers kin see this",
- "privacy.direct.short": "Menshied fowk ainly",
- "privacy.private.long": "Ainly follaers kin see this",
- "privacy.private.short": "Ainly follaers",
- "privacy.public.long": "Awbody kin see this",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Aw kin see this, but optit-oot o discovery features",
- "privacy.unlisted.short": "No listit",
"privacy_policy.last_updated": "Last updatit {date}",
"privacy_policy.title": "Privacy Policy",
"refresh": "Refresh",
@@ -584,10 +564,8 @@
"upload_error.poll": "File upload isnae allooed wi polls.",
"upload_form.audio_description": "Describe fir fowk wi hearin loss",
"upload_form.description": "Describe fir thaim wi visual impairments",
- "upload_form.description_missing": "Nae description addit",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Chynge thoomnail",
- "upload_form.undo": "Delete",
"upload_form.video_description": "Describe fir fowk wi hearin loss or wi visual impairment",
"upload_modal.analyzing_picture": "Analyzin pictureâĻ",
"upload_modal.apply": "Apply",
diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json
index 835f699b8..1b2eb1763 100644
--- a/app/javascript/mastodon/locales/si.json
+++ b/app/javascript/mastodon/locales/si.json
@@ -26,7 +26,6 @@
"account.following": "āļ
āļąāˇāļāļ¸āļą",
"account.following_counter": "{count, plural, one {āļ
āļąāˇāļāļ¸āļą {counter}} other {āļ
āļąāˇāļāļ¸āļą {counter}}}",
"account.follows.empty": "āļāˇāļ¸āļāˇ āļāˇāˇāˇāˇāˇāļāˇ āļ
āļąāˇāļāļ¸āļąāļē āļąāˇāļāļģāļēāˇ.",
- "account.follows_you": "āļāļļāˇ āļ
āļąāˇāļāļ¸āļąāļē āļāļģāļēāˇ",
"account.go_to_profile": "āļ´āˇāļāˇāļāļŠāļ§ āļēāļąāˇāļą",
"account.joined_short": "āļāļāˇ āˇāˇ āļ¯āˇāļąāļē",
"account.link_verified_on": "āļ¸āˇāļ¸ āˇāļļāˇāļŗāˇāļēāˇ āļ
āļēāˇāļāˇāļē {date} āļ¯āˇ āļ´āļģāˇāļāˇâāˇāˇ āļāˇāļģāˇāļĢāˇ",
@@ -54,7 +53,6 @@
"alert.unexpected.title": "āļ
āļ´āˇāļēāˇ!",
"announcement.announcement": "āļąāˇāˇāˇāļ¯āļąāļē",
"audio.hide": "āˇāļŦāļ´āļ§āļē āˇāļāˇāļąāˇāļą",
- "autosuggest_hashtag.per_week": "āˇāļāˇāļēāļāļ§ {count}",
"boost_modal.combo": "āļāˇ
āļ āˇāļāˇāˇāˇ āļ¸āˇāļē āļ¸āļ āˇāˇāļģāˇāļ¸āļ§ {combo} āļāļļāˇāļ¸āļ§ āˇāˇāļāˇāļē",
"bundle_column_error.copy_stacktrace": "āļ¯āˇāˇ āˇāˇāļģāˇāļāˇāˇāˇ āļ´āˇāļ§āļ´āļāļāˇ",
"bundle_column_error.error.title": "āļ
āļ´āˇāļēāˇ!",
@@ -103,19 +101,12 @@
"compose_form.encryption_warning": "āļ¸āˇāˇāˇāļ§āļŠāļąāˇ āˇāˇāļ āļ´āˇ
āļāļģāļą āļ¯āˇ āļ
āļąāˇāļ āˇāļāļāˇāļāļąāļēāˇāļąāˇ āļāļģāļāˇâāˇāˇ āļąāˇāˇāˇ. āļ¸āˇāˇāˇāļ§āļŠāļąāˇ āˇāļģāˇāˇ āļāˇāˇāˇāļ¯āˇ āˇāļāˇāˇāļ¯āˇ āļāˇāļģāļāˇāļģāļāˇ āļļāˇāļ¯āˇ āļąāˇāļāļąāˇāļą.",
"compose_form.lock_disclaimer.lock": "āļ
āļāˇāˇ
āˇ āļ¯āļ¸āˇ āļāļ",
"compose_form.placeholder": "āļāļļāļāˇ āˇāˇāļāˇāˇāˇāļŊāˇ āļ¸āˇāļąāˇāˇāļ¯?",
- "compose_form.poll.add_option": "āļāˇāļģāˇāļ¸āļāˇ āļēāˇāļ¯āļąāˇāļą",
"compose_form.poll.duration": "āļ¸āļ āˇāˇāļ¸āˇāˇāļ¸āˇ āļāˇāļŊāļē",
- "compose_form.poll.option_placeholder": "āļāˇāļģāˇāļ¸ {number}",
- "compose_form.poll.remove_option": "āļ¸āˇāļ¸ āļāˇāļāˇ āļāļģāļąāˇāļą",
"compose_form.poll.switch_to_multiple": "āļāˇāļģāˇāļ¸āˇ āļāˇāˇāˇāļ´āļēāļāļ§ āļ¸āļ āˇāˇāļ¸āˇāˇāļ¸ āˇāˇāļąāˇāˇ āļāļģāļąāˇāļą",
"compose_form.poll.switch_to_single": "āļāļąāˇ āļāˇāļģāˇāļ¸āļāļ§ āļ¸āļ āˇāˇāļ¸āˇāˇāļ¸ āˇāˇāļąāˇāˇ āļāļģāļąāˇāļą",
- "compose_form.publish": "āļ´āˇâāļģāļāˇāˇāļąāļē",
"compose_form.publish_form": "āļąāˇ āļŊāˇāļ´āˇāļē",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "āˇāˇāļąāˇāˇāļāļ¸āˇ āˇāˇāļģāļāˇāļąāˇāļą",
"compose_form.spoiler.marked": "āļ
āļąāˇāļāļģāˇāļāļ āļ
āˇāˇāˇāļ¯āļē āļāˇāļāˇ āļāļģāļąāˇāļą",
"compose_form.spoiler.unmarked": "āļ
āļąāˇāļāļģāˇāļāļ āļ
āˇāˇāˇāļ¯āļēāļāˇ āļāļāˇ āļāļģāļąāˇāļą",
- "compose_form.spoiler_placeholder": "āļ
āˇāˇāˇāļ¯āļē āļ¸āˇāˇāˇ āļŊāˇāļēāļąāˇāļą",
"confirmation_modal.cancel": "āļ
āˇāļŊāļāļāˇ",
"confirmations.block.block_and_report": "āļ
āˇāˇāˇāļģ āļāļģ āˇāˇāļģāˇāļāˇ āļāļģāļąāˇāļą",
"confirmations.block.confirm": "āļ
āˇāˇāˇāļģ",
@@ -270,7 +261,6 @@
"navigation_bar.compose": "āļąāˇ āļŊāˇāļ´āˇāļēāļāˇ āļŊāˇāļēāļąāˇāļą",
"navigation_bar.direct": "āļ´āˇāļ¯āˇāļāļŊāˇāļ āˇāˇāļŗāˇāˇāļ¸āˇ",
"navigation_bar.domain_blocks": "āļ
āˇāˇāˇāļģ āļāˇ
āˇāˇāļ¸āˇ",
- "navigation_bar.edit_profile": "āļ´āˇāļāˇāļāļŠ āˇāļāˇāˇāļāļģāļĢāļē",
"navigation_bar.explore": "āļāˇāˇāˇāļąāļē",
"navigation_bar.favourites": "āļ´āˇâāļģāˇāļēāļāļ¸āļēāļąāˇ",
"navigation_bar.filters": "āļąāˇāˇāļŦ āļāˇ
āˇāļ āļą",
@@ -336,11 +326,6 @@
"poll_button.add_poll": "āļ¸āļ āˇāˇāļ¸āˇāˇāļ¸āļāˇ āļ
āļģāļšāļąāˇāļą",
"poll_button.remove_poll": "āļ¸āļ āˇāˇāļ¸āˇāˇāļ¸ āļāˇāļāļŊāļąāˇāļą",
"privacy.change": "āļŊāˇāļ´āˇāļēāˇ āļģāˇāˇāˇâāļēāļāˇāˇ āˇāļāˇāˇāļ°āļąāļē",
- "privacy.direct.long": "āˇāļŗāˇāļąāˇ āļāˇ
āļ
āļēāļ§ āļ¯āˇāˇāˇāˇāˇāļēāˇ",
- "privacy.direct.short": "āˇāļŗāˇāļąāˇ āļāˇ
āļ
āļēāļ§ āļ´āļ¸āļĢāˇ",
- "privacy.private.long": "āļ
āļąāˇāļāˇāļ¸āˇāļāļēāˇāļąāˇāļ§ āļ¯āˇāˇāˇāˇāˇ",
- "privacy.private.short": "āļ
āļąāˇāļāˇāļ¸āˇāļāļēāˇāļąāˇ āļ´āļ¸āļĢāˇ",
- "privacy.public.long": "āˇāˇāļ¸āļ§ āļ¯āˇāˇāˇāˇāˇāļēāˇ",
"privacy.public.short": "āļ´āˇâāļģāˇāˇāļ¯āˇāļ°",
"privacy_policy.title": "āļģāˇāˇāˇâāļēāļāˇ āļ´āˇâāļģāļāˇāļ´āļāˇāļāˇāļē",
"refresh": "āļąāˇāˇāˇāļ¸āˇ āļāļģāļąāˇāļą",
@@ -482,10 +467,8 @@
"upload_error.poll": "āļ¸āļ āˇāˇāļ¸āˇāˇāļ¸āˇ āˇāļ¸āļ āļāˇāļąāˇ āļēāˇāļ¯āˇāļ¸āļ§ āļāļŠ āļąāˇāļ¯āˇ.",
"upload_form.audio_description": "āļąāˇāļāˇāˇāļą āļ
āļē āˇāļŗāˇāˇ āˇāˇāˇāˇāļāļģ āļāļģāļąāˇāļą",
"upload_form.description": "āļ¯āˇāˇāˇâāļēāˇāļļāˇāļ°āˇāļāļēāļąāˇ āˇāļŗāˇāˇ āˇāˇāˇāˇāļāļģ āļāļģāļąāˇāļą",
- "upload_form.description_missing": "āˇāˇāˇāˇāˇāļāļģāļēāļāˇ āļąāˇāļ",
"upload_form.edit": "āˇāļāˇāˇāļāļģāļĢāļē",
"upload_form.thumbnail": "āˇāˇāļāˇāļāˇ āļģāˇāˇ āˇāˇāļąāˇāˇ āļāļģāļąāˇāļą",
- "upload_form.undo": "āļ¸āļāļąāˇāļą",
"upload_form.video_description": "āˇāˇâāļģāˇāļĢāˇāļļāˇāļ° āˇāˇ āļ¯āˇāˇāˇâāļēāˇāļļāˇāļ°āˇāļ āļ´āˇāļ¯āˇāļāļŊāļēāļąāˇ āˇāļŗāˇāˇ āˇāˇāˇāˇāļāļģ āļāļģāļąāˇāļą",
"upload_modal.analyzing_picture": "āļ´āˇāļąāˇāļāˇāļģāļē āˇāˇāˇāˇāļŊāˇāˇāļĢāļē āļāļģāļ¸āˇāļąāˇâĻ",
"upload_modal.apply": "āļēāˇāļ¯āļąāˇāļą",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 0eb404198..5b1203aee 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -21,7 +21,7 @@
"account.blocked": "BlokovanÃŊ/ÃĄ",
"account.browse_more_on_origin_server": "PrehÄžadÃĄvaj viac na pôvodnom profile",
"account.cancel_follow_request": "ZruÅĄ ÅžiadosÅĨ o sledovanie",
- "account.copy": "SkopÃruj odkaz pre profil",
+ "account.copy": "SkopÃruj odkaz na profil",
"account.direct": "SpomeÅ @{name} sÃēkromne",
"account.disable_notifications": "PrestaÅ mi oznamovaÅĨ, keÄ mÃĄ @{name} prÃspevky",
"account.domain_blocked": "DomÊna skrytÃĄ",
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "ÅŊiadne prÃspevky",
"account.featured_tags.title": "OdporÃēÄanÊ hashtagy pouÅžÃvateÄža {name}",
"account.follow": "Sleduj",
+ "account.follow_back": "Nasleduj späÅĨ",
"account.followers": "Sledovatelia",
"account.followers.empty": "Tohto pouÅžÃvateÄža eÅĄte nikto nenasleduje.",
"account.followers_counter": "{count, plural, one {{counter} SledujÃēci} few {{counter} SledujÃēci} many {{counter} SledujÃēcich} other {{counter} SledujÃēcich}}",
"account.following": "Sledujem",
"account.following_counter": "{count, plural, one {{counter} SledovanÃŊch} other {{counter} SledujÃēcich}}",
"account.follows.empty": "Tento pouÅžÃvateÄž eÅĄte nikoho nesleduje.",
- "account.follows_you": "Sleduje ÅĨa",
"account.go_to_profile": "Prejdi na profil",
"account.hide_reblogs": "Skry zdieÄžania od @{name}",
"account.in_memoriam": "In Memoriam.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "StÃÅĄ oznÃĄmenia",
"account.mute_short": "StÃÅĄ",
"account.muted": "StÃÅĄenÃŊ",
+ "account.mutual": "SpoloÄnÊ",
"account.no_bio": "Nie je uvedenÃŊ Åžiadny popis.",
"account.open_original_page": "Otvor pôvodnÃē strÃĄnku",
"account.posts": "PrÃspevky",
@@ -88,7 +89,6 @@
"announcement.announcement": "OznÃĄmenie",
"attachments_list.unprocessed": "(nespracovanÊ)",
"audio.hide": "Skry zvuk",
- "autosuggest_hashtag.per_week": "{count} tÃŊÅždenne",
"boost_modal.combo": "NabudÃēce môŞeÅĄ kliknÃēÅĨ {combo} pre preskoÄenie",
"bundle_column_error.copy_stacktrace": "KopÃrovaÅĨ chybovÃē hlÃĄÅĄku",
"bundle_column_error.error.body": "PoÅžadovanÃē strÃĄnku nebolo moÅžnÊ vykresliÅĨ. MôŞe to byÅĨ spôsobenÊ chybou v naÅĄom kÃŗde alebo problÊmom s kompatibilitou prehliadaÄa.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "Tvoj ÃēÄet nie je {locked}. KtokoÄžvek ÅĨa môŞe nasledovaÅĨ a vidieÅĨ tvoje sprÃĄvy pre sledujÃēcich.",
"compose_form.lock_disclaimer.lock": "zamknutÃŊ",
"compose_form.placeholder": "Äo mÃĄÅĄ na mysli?",
- "compose_form.poll.add_option": "Pridaj voÄžbu",
"compose_form.poll.duration": "Trvanie ankety",
- "compose_form.poll.option_placeholder": "VoÄžba {number}",
- "compose_form.poll.remove_option": "OdstrÃĄÅ tÃēto voÄžbu",
"compose_form.poll.switch_to_multiple": "ZmeÅ anketu pre povolenie viacerÃŊch moÅžnostÃ",
"compose_form.poll.switch_to_single": "ZmeÅ anketu na takÃē s jedinou voÄžbou",
- "compose_form.publish": "Zverejni",
"compose_form.publish_form": "ZverejniÅĨ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "UloÅž zmeny",
- "compose_form.sensitive.hide": "OznaÄ mÊdiÃĄ ako chÃēlostivÊ",
- "compose_form.sensitive.marked": "MÊdiÃĄlny obsah je oznaÄenÃŊ ako chÃēlostivÃŊ",
- "compose_form.sensitive.unmarked": "MÊdiÃĄlny obsah nieje oznaÄenÃŊ ako chÃēlostivÃŊ",
"compose_form.spoiler.marked": "Text je ukrytÃŊ za varovanÃm",
"compose_form.spoiler.unmarked": "Text nieje ukrytÃŊ",
- "compose_form.spoiler_placeholder": "Sem napÃÅĄ tvoje varovanie",
"confirmation_modal.cancel": "ZruÅĄ",
"confirmations.block.block_and_report": "Zablokuj a nahlÃĄs",
"confirmations.block.confirm": "Blokuj",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "SÃēkromnÊ spomenutia",
"navigation_bar.discover": "Objavuj",
"navigation_bar.domain_blocks": "SkrytÊ domÊny",
- "navigation_bar.edit_profile": "Uprav profil",
"navigation_bar.explore": "Objavuj",
"navigation_bar.favourites": "ObÄžÃēbenÊ",
"navigation_bar.filters": "FiltrovanÊ slovÃĄ",
@@ -524,14 +513,7 @@
"poll_button.add_poll": "Pridaj anketu",
"poll_button.remove_poll": "OdstrÃĄÅ anketu",
"privacy.change": "Uprav sÃēkromie prÃspevku",
- "privacy.direct.long": "PoÅĄli iba spomenutÃŊm uÅžÃvateÄžom",
- "privacy.direct.short": "Iba spomenutÃŊm Äžudom",
- "privacy.private.long": "PoÅĄli iba nÃĄsledovateÄžom",
- "privacy.private.short": "Iba pre sledujÃēcich",
- "privacy.public.long": "ViditeÄžnÊ pre vÅĄetkÃŊch",
"privacy.public.short": "VerejnÊ",
- "privacy.unlisted.long": "ViditeÄžnÊ pre vÅĄetkÃŊch, ale odmietnutÊ funkcie zisÅĨovania",
- "privacy.unlisted.short": "Verejne, ale nezobraziÅĨ v osi",
"privacy_policy.last_updated": "PoslednÃĄ Ãēprava {date}",
"privacy_policy.title": "ZÃĄsady sÃēkromia",
"recommended": "OdporÃēÄanÊ",
@@ -713,10 +695,8 @@
"upload_error.poll": "NahrÃĄvanie sÃēborov pri anketÃĄch nieje moÅžnÊ.",
"upload_form.audio_description": "PopÃÅĄ, pre Äžudà so stratou sluchu",
"upload_form.description": "Opis pre slabo vidiacich",
- "upload_form.description_missing": "NepridanÃŊ Åžiadny popis",
"upload_form.edit": "Uprav",
"upload_form.thumbnail": "ZmeniÅĨ miniatÃēru",
- "upload_form.undo": "VymaÅž",
"upload_form.video_description": "PopÃÅĄ, pre Äžudà so stratou sluchu, alebo oÄnÃŊm znevÃŊhodnenÃm",
"upload_modal.analyzing_picture": "Analyzujem obrÃĄzokâĻ",
"upload_modal.apply": "PouÅži",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index 4ef2681f9..559b05db7 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Ni objav",
"account.featured_tags.title": "Izpostavljeni kljuÄniki {name}",
"account.follow": "Sledi",
+ "account.follow_back": "Sledi nazaj",
"account.followers": "Sledilci",
"account.followers.empty": "NihÄe ne sledi temu uporabniku.",
"account.followers_counter": "{count, plural, one {ima {counter} sledilca} two {ima {counter} sledilca} few {ima {counter} sledilce} other {ima {counter} sledilcev}}",
"account.following": "Sledim",
"account.following_counter": "{count, plural, one {sledi {count} osebi} two {sledi {count} osebama} few {sledi {count} osebam} other {sledi {count} osebam}}",
"account.follows.empty": "Ta uporabnik ÅĄe ne sledi nikomur.",
- "account.follows_you": "Vam sledi",
"account.go_to_profile": "Pojdi na profil",
"account.hide_reblogs": "Skrij izpostavitve od @{name}",
"account.in_memoriam": "V spomin.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "UtiÅĄaj obvestila",
"account.mute_short": "UtiÅĄaj",
"account.muted": "UtiÅĄan",
+ "account.mutual": "Vzajemno",
"account.no_bio": "Ni opisa.",
"account.open_original_page": "Odpri izvirno stran",
"account.posts": "Objave",
@@ -88,7 +89,6 @@
"announcement.announcement": "Obvestilo",
"attachments_list.unprocessed": "(neobdelano)",
"audio.hide": "Skrij zvok",
- "autosuggest_hashtag.per_week": "{count} na teden",
"boost_modal.combo": "Äe Åželite preskoÄiti to, lahko pritisnete {combo}",
"bundle_column_error.copy_stacktrace": "Kopiraj poroÄilo o napaki",
"bundle_column_error.error.body": "Zahtevane strani ni mogoÄe upodobiti. Vzrok teÅžave je morda hroÅĄÄ v naÅĄi kodi ali pa nezdruÅžljivost z brskalnikom.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "VaÅĄ raÄun ni {locked}. Vsakdo vam lahko sledi in si ogleda objave, ki so namenjene samo sledilcem.",
"compose_form.lock_disclaimer.lock": "zaklenjen",
"compose_form.placeholder": "O Äem razmiÅĄljate?",
- "compose_form.poll.add_option": "Dodaj izbiro",
"compose_form.poll.duration": "Trajanje ankete",
- "compose_form.poll.option_placeholder": "Izbira {number}",
- "compose_form.poll.remove_option": "Odstrani to izbiro",
"compose_form.poll.switch_to_multiple": "Spremenite anketo, da omogoÄite veÄ izbir",
"compose_form.poll.switch_to_single": "Spremenite anketo, da omogoÄite eno izbiro",
- "compose_form.publish": "Objavi",
"compose_form.publish_form": "Objavi",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Shrani spremembe",
- "compose_form.sensitive.hide": "{count, plural,one {OznaÄi medij kot obÄutljiv} two {OznaÄi medija kot obÄutljiva} other {OznaÄi medije kot obÄutljive}}",
- "compose_form.sensitive.marked": "{count, plural,one {Medij je oznaÄen kot obÄutljiv} two {Medija sta oznaÄena kot obÄutljiva} other {Mediji so oznaÄeni kot obÄutljivi}}",
- "compose_form.sensitive.unmarked": "{count, plural,one {Medij ni oznaÄen kot obÄutljiv} two {Medija nista oznaÄena kot obÄutljiva} other {Mediji niso oznaÄeni kot obÄutljivi}}",
"compose_form.spoiler.marked": "Odstrani opozorilo o vsebini",
"compose_form.spoiler.unmarked": "Dodaj opozorilo o vsebini",
- "compose_form.spoiler_placeholder": "Tukaj napiÅĄite opozorilo",
"confirmation_modal.cancel": "PrekliÄi",
"confirmations.block.block_and_report": "Blokiraj in prijavi",
"confirmations.block.confirm": "Blokiraj",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "Zasebne omembe",
"navigation_bar.discover": "Odkrijte",
"navigation_bar.domain_blocks": "Blokirane domene",
- "navigation_bar.edit_profile": "Uredi profil",
"navigation_bar.explore": "RaziÅĄÄi",
"navigation_bar.favourites": "Priljubljeni",
"navigation_bar.filters": "UtiÅĄane besede",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "Dodaj anketo",
"poll_button.remove_poll": "Odstrani anketo",
"privacy.change": "Spremeni zasebnost objave",
- "privacy.direct.long": "Objavi samo omenjenim uporabnikom",
- "privacy.direct.short": "Samo omenjeni",
- "privacy.private.long": "Vidno samo sledilcem",
- "privacy.private.short": "Samo sledilci",
- "privacy.public.long": "Vidno vsem",
"privacy.public.short": "Javno",
- "privacy.unlisted.long": "Vidno za vse, vendar izkljuÄeno iz funkcionalnosti odkrivanja",
- "privacy.unlisted.short": "Ni prikazano",
"privacy_policy.last_updated": "Zadnja posodobitev {date}",
"privacy_policy.title": "Pravilnik o zasebnosti",
"recommended": "PriporoÄeno",
@@ -714,10 +696,8 @@
"upload_error.poll": "Prenos datoteke z anketami ni dovoljen.",
"upload_form.audio_description": "OpiÅĄi za osebe z okvaro sluha",
"upload_form.description": "OpiÅĄite za slabovidne",
- "upload_form.description_missing": "Noben opis ni dodan",
"upload_form.edit": "Uredi",
"upload_form.thumbnail": "Spremeni sliÄico",
- "upload_form.undo": "IzbriÅĄi",
"upload_form.video_description": "OpiÅĄite za osebe z okvaro sluha in/ali vida",
"upload_modal.analyzing_picture": "Analiziranje slike âĻ",
"upload_modal.apply": "Uveljavi",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index 710224e1c..bfc674248 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Pa postime",
"account.featured_tags.title": "HashtagÃĢ tÃĢ zgjedhur tÃĢ {name}",
"account.follow": "Ndiqeni",
+ "account.follow_back": "Ndiqe gjithashtu",
"account.followers": "NdjekÃĢs",
"account.followers.empty": "KÃĢtÃĢ pÃĢrdorues ende sâe ndjek kush.",
"account.followers_counter": "{count, plural, one {{counter} NdjekÃĢs} other {{counter} NdjekÃĢs}}",
"account.following": "Ndjekje",
"account.following_counter": "{count, plural, one {{counter} i Ndjekur} other {{counter} tÃĢ Ndjekur}}",
"account.follows.empty": "Ky pÃĢrdorues ende sândjek kÃĢnd.",
- "account.follows_you": "Ju ndjek",
"account.go_to_profile": "Kalo te profili",
"account.hide_reblogs": "Fshih pÃĢrforcime nga @{name}",
"account.in_memoriam": "In Memoriam.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Mos shfaq njoftime",
"account.mute_short": "Mos i shfaq",
"account.muted": "Heshtuar",
+ "account.mutual": "Reciproke",
"account.no_bio": "Sâu dha pÃĢrshkrim.",
"account.open_original_page": "Hap faqen origjinale",
"account.posts": "Mesazhe",
@@ -88,7 +89,6 @@
"announcement.announcement": "LajmÃĢrim",
"attachments_list.unprocessed": "(e papÃĢrpunuar)",
"audio.hide": "Fshihe audion",
- "autosuggest_hashtag.per_week": "{count} pÃĢr javÃĢ",
"boost_modal.combo": "QÃĢ kjo tÃĢ anashkalohet herÃĢs tjetÃĢr, mund tÃĢ shtypni {combo}",
"bundle_column_error.copy_stacktrace": "Kopjo raportim gabimi",
"bundle_column_error.error.body": "Faqja e kÃĢrkuar sâu vizatua dot. Kjo mund tÃĢ vijÃĢ nga njÃĢ e metÃĢ nÃĢ kodin tonÃĢ, ose nga njÃĢ problem pÃĢrputhshmÃĢrie i shfletuesit.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "Llogaria juaj sâÃĢshtÃĢ {locked}. Mund ta ndjekÃĢ cilido, pÃĢr tÃĢ parÃĢ postimet tuaja vetÃĢm pÃĢr ndjekÃĢsit.",
"compose_form.lock_disclaimer.lock": "e kyçur",
"compose_form.placeholder": "Ãâbluani nÃĢ mendje?",
- "compose_form.poll.add_option": "Shtoni njÃĢ zgjedhje",
+ "compose_form.poll.add_option": "Shtoni mundÃĢsi",
"compose_form.poll.duration": "KohÃĢzgjatje pyetÃĢsori",
- "compose_form.poll.option_placeholder": "Zgjedhja {number}",
- "compose_form.poll.remove_option": "Hiqe kÃĢtÃĢ zgjedhje",
+ "compose_form.poll.multiple": "ShumÃĢ zgjedhje",
+ "compose_form.poll.option_placeholder": "MundÃĢsia {number}",
+ "compose_form.poll.remove_option": "Hiqe kÃĢtÃĢ mundÃĢsi",
+ "compose_form.poll.single": "Zgjidhni njÃĢ",
"compose_form.poll.switch_to_multiple": "Ndrysho votimin pÃĢr tÃĢ lejuar shumÃĢ zgjedhje",
"compose_form.poll.switch_to_single": "Ndrysho votimin pÃĢr tÃĢ lejuar vetÃĢm njÃĢ zgjedhje",
- "compose_form.publish": "Botoje",
+ "compose_form.poll.type": "Stil",
+ "compose_form.publish": "Postim",
"compose_form.publish_form": "Publikoje",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Ruaji ndryshimet",
- "compose_form.sensitive.hide": "{count, plural, one {VÃĢri shenjÃĢ medias si rezervat} other {VÃĢru shenjÃĢ mediave si rezervat}}",
- "compose_form.sensitive.marked": "{count, plural, one {Medias i ÃĢshtÃĢ vÃĢnÃĢ shenjÃĢ rezervat} other {Mediave u ÃĢshtÃĢ vÃĢnÃĢ shenjÃĢ si rezervat}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Media sâka shenjÃĢ si rezervat} other {Mediat sâkanÃĢ shenja si rezervat}}",
+ "compose_form.reply": "PÃĢrgjigjuni",
+ "compose_form.save_changes": "PÃĢrditÃĢsoje",
"compose_form.spoiler.marked": "Hiq sinjalizim lÃĢnde",
"compose_form.spoiler.unmarked": "Shtoni sinjalizim lÃĢnde",
- "compose_form.spoiler_placeholder": "Shkruani kÃĢtu sinjalizimin tuaj",
+ "compose_form.spoiler_placeholder": "Sinjalizim lÃĢnde (opsional)",
"confirmation_modal.cancel": "Anuloje",
"confirmations.block.block_and_report": "Bllokojeni & Raportojeni",
"confirmations.block.confirm": "Bllokoje",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "PÃĢrmendje private",
"navigation_bar.discover": "Zbuloni",
"navigation_bar.domain_blocks": "PÃĢrkatÃĢsi tÃĢ bllokuara",
- "navigation_bar.edit_profile": "PÃĢrpunoni profilin",
"navigation_bar.explore": "Eksploroni",
"navigation_bar.favourites": "TÃĢ parapÃĢlqyer",
"navigation_bar.filters": "FjalÃĢ tÃĢ heshtuara",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "Shtoni njÃĢ pyetÃĢsor",
"poll_button.remove_poll": "Hiqe pyetÃĢsorin",
"privacy.change": "Rregulloni privatÃĢsi mesazhesh",
- "privacy.direct.long": "I dukshÃĢm vetÃĢm pÃĢr pÃĢrdorues tÃĢ pÃĢrmendur",
- "privacy.direct.short": "VetÃĢm pÃĢr personat e pÃĢrmendur",
- "privacy.private.long": "I dukshÃĢm vetÃĢm pÃĢr ndjekÃĢs",
- "privacy.private.short": "VetÃĢm ndjekÃĢs",
- "privacy.public.long": "I dukshÃĢm pÃĢr tÃĢ tÃĢrÃĢ",
+ "privacy.direct.long": "GjithkÃĢnd i pÃĢrmendur te postimi",
+ "privacy.direct.short": "Persona tÃĢ veçantÃĢ",
+ "privacy.private.long": "VetÃĢm ndjekÃĢsit tuaj",
+ "privacy.private.short": "NdjekÃĢs",
+ "privacy.public.long": "Cilido qÃĢ hyn e del nÃĢ Mastodon",
"privacy.public.short": "Publik",
- "privacy.unlisted.long": "I dukshÃĢm pÃĢr tÃĢ tÃĢrÃĢ, por lÃĢnÃĢ jashtÃĢ nga veçoritÃĢ e zbulimit",
- "privacy.unlisted.short": "Jo nÃĢ lista",
+ "privacy.unlisted.additional": "Ky sillet saktÃĢsisht si publik, vetÃĢm se postimi sâdo tÃĢ shfaqet nÃĢ prurje tÃĢ drejtpÃĢrdrejta, ose nÃĢ hashtag-ÃĢ, te eksploroni, apo kÃĢrkim nÃĢ Mastodon, edhe kur keni zgjedhur tÃĢ jetÃĢ pÃĢr tÃĢrÃĢ llogarinÃĢ.",
+ "privacy.unlisted.long": "MÃĢ pak fanfara algoritmike",
+ "privacy.unlisted.short": "Publik i qetÃĢ",
"privacy_policy.last_updated": "PÃĢrditÃĢsuar sÃĢ fundi mÃĢ {date}",
"privacy_policy.title": "Rregulla PrivatÃĢsie",
"recommended": "E rekomanduar",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "sot",
+ "reply_indicator.attachments": "{count, plural, one {# bashkÃĢngjitje} other {# bashkÃĢngjitje}}",
"reply_indicator.cancel": "Anuloje",
+ "reply_indicator.poll": "PyetÃĢsor",
"report.block": "Bllokoje",
"report.block_explanation": "Sâdo tÃĢ shihni postime prej tyre. Sâdo tÃĢ jenÃĢ nÃĢ gjendje tÃĢ shohin postimet tuaja, apo tâju ndjekin. Do tÃĢ jenÃĢ nÃĢ gjendje tÃĢ shohin se janÃĢ bllokuar.",
"report.categories.legal": "Ligjore",
@@ -714,10 +716,8 @@
"upload_error.poll": "Me pyetÃĢsorÃĢt sâlejohet ngarkim kartelash.",
"upload_form.audio_description": "PÃĢrshkruajeni pÃĢr persona me dÃĢgjim tÃĢ kufizuar",
"upload_form.description": "PÃĢrshkruajeni pÃĢr persona me probleme shikimi",
- "upload_form.description_missing": "Sâu shtua pÃĢrshkrim",
"upload_form.edit": "PÃĢrpunoni",
"upload_form.thumbnail": "Ndryshoni miniaturÃĢn",
- "upload_form.undo": "Fshije",
"upload_form.video_description": "PÃĢrshkruajeni pÃĢr persona me dÃĢgjim tÃĢ kufizuar ose probleme shikimi",
"upload_modal.analyzing_picture": "Po analizohet fotojaâĻ",
"upload_modal.apply": "Aplikoje",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index 35bb8f992..b0348748a 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Nema objava",
"account.featured_tags.title": "Istaknute heÅĄ oznake korisnika {name}",
"account.follow": "Prati",
+ "account.follow_back": "Uzvrati praÄenje",
"account.followers": "Pratioci",
"account.followers.empty": "JoÅĄ uvek niko ne prati ovog korisnika.",
"account.followers_counter": "{count, plural, one {{counter} pratilac} few {{counter} pratioca} other {{counter} pratilaca}}",
"account.following": "Prati",
"account.following_counter": "{count, plural, one {{counter} prati} few {{counter} prati} other {{counter} prati}}",
"account.follows.empty": "Ovaj korisnik joÅĄ uvek nikog ne prati.",
- "account.follows_you": "Prati vas",
"account.go_to_profile": "Idi na profil",
"account.hide_reblogs": "Sakrij podrÅžavanja @{name}",
"account.in_memoriam": "U znak seÄanja na.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "IskljuÄi obaveÅĄtenja",
"account.mute_short": "IskljuÄi",
"account.muted": "Ignorisan",
+ "account.mutual": "ZajedniÄki",
"account.no_bio": "Nema opisa.",
"account.open_original_page": "Otvori originalnu stranicu",
"account.posts": "Objave",
@@ -88,7 +89,6 @@
"announcement.announcement": "Najava",
"attachments_list.unprocessed": "(neobraÄeno)",
"audio.hide": "Sakrij audio",
- "autosuggest_hashtag.per_week": "{count} nedeljno",
"boost_modal.combo": "MoÅžete pritisnuti {combo} da preskoÄite ovo sledeÄi put",
"bundle_column_error.copy_stacktrace": "Kopiraj izveÅĄtaj o greÅĄci",
"bundle_column_error.error.body": "Nije moguÄe prikazati traÅženu stranicu. Razlog moÅže biti greÅĄka u naÅĄem kodu ili problem sa kompatibilnoÅĄÄu pretraÅživaÄa.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "VaÅĄ nalog nije {locked}. Svako moÅže da vas prati i da vidi vaÅĄe objave namenjene samo za vaÅĄe pratioce.",
"compose_form.lock_disclaimer.lock": "zakljuÄan",
"compose_form.placeholder": "O Äemu razmiÅĄljate?",
- "compose_form.poll.add_option": "Dodajte izbor",
"compose_form.poll.duration": "Trajanje ankete",
- "compose_form.poll.option_placeholder": "Izbor {number}",
- "compose_form.poll.remove_option": "Ukloni ovaj izbor",
"compose_form.poll.switch_to_multiple": "Promenite anketu da biste omoguÄili viÅĄe izbora",
"compose_form.poll.switch_to_single": "Promenite anketu da biste omoguÄili jedan izbor",
- "compose_form.publish": "Objavi",
"compose_form.publish_form": "Objavi",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "SaÄuvaj promene",
- "compose_form.sensitive.hide": "{count, plural, one {OznaÄi multimediju kao osetljivu} few {OznaÄi multimediju kao osetljivu} other {OznaÄi multimediju kao osetljivu}}",
- "compose_form.sensitive.marked": "{count, plural, one {Multimedija je oznaÄena kao osetljiva} few {Multimedija je oznaÄena kao osetljiva} other {Multimedija je oznaÄena kao osetljiva}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Multimedija nije oznaÄena kao osetljiva} few {Multimedija nije oznaÄena kao osetljiva} other {Multimedija nije oznaÄena kao osetljiva}}",
"compose_form.spoiler.marked": "Ukloni upozorenje o sadrÅžaju",
"compose_form.spoiler.unmarked": "Dodaj upozorenje o sadrÅžaju",
- "compose_form.spoiler_placeholder": "Ovde napiÅĄite upozorenje",
"confirmation_modal.cancel": "OtkaÅži",
"confirmations.block.block_and_report": "Blokiraj i prijavi",
"confirmations.block.confirm": "Blokiraj",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "Privatna pominjanja",
"navigation_bar.discover": "Otkrij",
"navigation_bar.domain_blocks": "Blokirani domeni",
- "navigation_bar.edit_profile": "Uredi profil",
"navigation_bar.explore": "IstraÅži",
"navigation_bar.favourites": "Omiljeno",
"navigation_bar.filters": "Ignorisane reÄi",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "Dodaj anketu",
"poll_button.remove_poll": "Ukloni anketu",
"privacy.change": "Promeni privatnost objave",
- "privacy.direct.long": "Vidljivo samo pomenutim korisnicima",
- "privacy.direct.short": "Samo pomenute osobe",
- "privacy.private.long": "Vidljivo samo pratiocima",
- "privacy.private.short": "Samo pratioci",
- "privacy.public.long": "Vidljivo za sve",
"privacy.public.short": "Javno",
- "privacy.unlisted.long": "Vidljivo svima, ali iskljuÄeno iz funkcija otkrivanja",
- "privacy.unlisted.short": "Neizlistano",
"privacy_policy.last_updated": "Poslednje aÅžuriranje {date}",
"privacy_policy.title": "Politika privatnosti",
"recommended": "PreporuÄeno",
@@ -714,10 +696,8 @@
"upload_error.poll": "Otpremanje datoteka nije dozvoljeno kod anketa.",
"upload_form.audio_description": "Dodajte opis za osobe sa oÅĄteÄenim sluhom",
"upload_form.description": "Dodajte opis za osobe sa oÅĄteÄenim vidom",
- "upload_form.description_missing": "Nema dodatog opisa",
"upload_form.edit": "Uredi",
"upload_form.thumbnail": "Promeni sliÄicu",
- "upload_form.undo": "IzbriÅĄi",
"upload_form.video_description": "OpiÅĄite za osobe sa oÅĄteÄenim sluhom ili vidom",
"upload_modal.analyzing_picture": "Analiziranje slikeâĻ",
"upload_modal.apply": "Primeni",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 552c04d13..4e4956e1a 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "ĐĐĩĐŧĐ° ОйŅава",
"account.featured_tags.title": "ĐŅŅĐ°ĐēĐŊŅŅĐĩ Ņ
ĐĩŅ ОСĐŊĐ°ĐēĐĩ ĐēĐžŅиŅĐŊиĐēĐ° {name}",
"account.follow": "ĐŅĐ°Ņи",
+ "account.follow_back": "ĐŖСвŅĐ°Ņи ĐŋŅĐ°ŅĐĩŅĐĩ",
"account.followers": "ĐŅĐ°ŅиОŅи",
"account.followers.empty": "ĐĐžŅ ŅвĐĩĐē ĐŊиĐēĐž ĐŊĐĩ ĐŋŅĐ°Ņи ОвОĐŗ ĐēĐžŅиŅĐŊиĐēĐ°.",
"account.followers_counter": "{count, plural, one {{counter} ĐŋŅĐ°ŅиĐģĐ°Ņ} few {{counter} ĐŋŅĐ°ŅиОŅĐ°} other {{counter} ĐŋŅĐ°ŅиĐģĐ°ŅĐ°}}",
"account.following": "ĐŅĐ°Ņи",
"account.following_counter": "{count, plural, one {{counter} ĐŋŅĐ°Ņи} few {{counter} ĐŋŅĐ°Ņи} other {{counter} ĐŋŅĐ°Ņи}}",
"account.follows.empty": "ĐваŅ ĐēĐžŅиŅĐŊиĐē ŅĐžŅ ŅвĐĩĐē ĐŊиĐēĐžĐŗ ĐŊĐĩ ĐŋŅĐ°Ņи.",
- "account.follows_you": "ĐŅĐ°Ņи ваŅ",
"account.go_to_profile": "Đди ĐŊĐ° ĐŋŅĐžŅиĐģ",
"account.hide_reblogs": "ĐĄĐ°ĐēŅиŅ ĐŋОдŅĐļаваŅĐ° Од @{name}",
"account.in_memoriam": "ĐŖ СĐŊĐ°Đē ŅĐĩŅĐ°ŅĐ° ĐŊĐ°.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ĐŅĐēŅŅŅи ОйавĐĩŅŅĐĩŅĐ°",
"account.mute_short": "ĐŅĐēŅŅŅи",
"account.muted": "ĐĐŗĐŊĐžŅиŅĐ°ĐŊ",
+ "account.mutual": "ĐĐ°ŅĐĩĐ´ĐŊиŅĐēи",
"account.no_bio": "ĐĐĩĐŧĐ° ĐžĐŋиŅĐ°.",
"account.open_original_page": "ĐŅвОŅи ĐžŅиĐŗиĐŊĐ°ĐģĐŊŅ ŅŅŅĐ°ĐŊиŅŅ",
"account.posts": "ĐĐąŅавĐĩ",
@@ -88,7 +89,6 @@
"announcement.announcement": "ĐĐ°Ņава",
"attachments_list.unprocessed": "(ĐŊĐĩОйŅĐ°ŅĐĩĐŊĐž)",
"audio.hide": "ĐĄĐ°ĐēŅиŅ Đ°ŅдиО",
- "autosuggest_hashtag.per_week": "{count} ĐŊĐĩĐ´ĐĩŅĐŊĐž",
"boost_modal.combo": "ĐĐžĐļĐĩŅĐĩ ĐŋŅиŅиŅĐŊŅŅи {combo} Đ´Đ° ĐŋŅĐĩŅĐēĐžŅиŅĐĩ ОвО ŅĐģĐĩĐ´ĐĩŅи ĐŋŅŅ",
"bundle_column_error.copy_stacktrace": "ĐĐžĐŋиŅĐ°Ņ иСвĐĩŅŅĐ°Ņ Đž ĐŗŅĐĩŅŅи",
"bundle_column_error.error.body": "ĐиŅĐĩ ĐŧĐžĐŗŅŅĐĩ ĐŋŅиĐēаСаŅи ŅŅĐ°ĐļĐĩĐŊŅ ŅŅŅĐ°ĐŊиŅŅ. РаСĐģĐžĐŗ ĐŧĐžĐļĐĩ йиŅи ĐŗŅĐĩŅĐēĐ° Ņ ĐŊĐ°ŅĐĩĐŧ ĐēОдŅ иĐģи ĐŋŅОйĐģĐĩĐŧ ŅĐ° ĐēĐžĐŧĐŋĐ°ŅийиĐģĐŊĐžŅŅŅ ĐŋŅĐĩŅŅĐ°ĐļиваŅĐ°.",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "ĐĐ°Ņ ĐŊĐ°ĐģĐžĐŗ ĐŊиŅĐĩ {locked}. ХваĐēĐž ĐŧĐžĐļĐĩ Đ´Đ° ĐĐ°Ņ СаĐŋŅĐ°Ņи и Đ´Đ° види ОйŅавĐĩ ĐŊĐ°ĐŧĐĩŅĐĩĐŊĐĩ ŅĐ°ĐŧĐž ĐĐ°ŅиĐŧ ĐŋŅĐ°ŅиОŅиĐŧĐ°.",
"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": "ĐŖĐēĐģĐžĐŊи ОваŅ иСйОŅ",
+ "compose_form.poll.multiple": "ĐиŅĐĩŅŅŅŅĐēи иСйОŅ",
+ "compose_form.poll.option_placeholder": "ĐĐŋŅиŅĐ° {number}",
+ "compose_form.poll.remove_option": "ĐŖĐēĐģĐžĐŊи ОвŅ ĐžĐŋŅиŅŅ",
+ "compose_form.poll.single": "ĐĐ´Đ°ĐąĐĩŅиŅĐĩ ŅĐĩĐ´ĐŊĐž",
"compose_form.poll.switch_to_multiple": "ĐŅĐžĐŧĐĩĐŊиŅĐĩ Đ°ĐŊĐēĐĩŅŅ Đ´Đ° йиŅŅĐĩ ĐžĐŧĐžĐŗŅŅиĐģи виŅĐĩ иСйОŅĐ°",
"compose_form.poll.switch_to_single": "ĐŅĐžĐŧĐĩĐŊиŅĐĩ Đ°ĐŊĐēĐĩŅŅ Đ´Đ° йиŅŅĐĩ ĐžĐŧĐžĐŗŅŅиĐģи ŅĐĩĐ´Đ°ĐŊ иСйОŅ",
+ "compose_form.poll.type": "ĐĄŅиĐģ",
"compose_form.publish": "ĐĐąŅави",
"compose_form.publish_form": "ĐОва ОйŅава",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ĐĄĐ°ŅŅваŅ ĐŋŅĐžĐŧĐĩĐŊĐĩ",
- "compose_form.sensitive.hide": "{count, plural, one {ĐСĐŊĐ°Ņи ĐŧŅĐģŅиĐŧĐĩдиŅŅ ĐēĐ°Đž ĐžŅĐĩŅŅивŅ} few {ĐСĐŊĐ°Ņи ĐŧŅĐģŅиĐŧĐĩдиŅŅ ĐēĐ°Đž ĐžŅĐĩŅŅивŅ} other {ĐСĐŊĐ°Ņи ĐŧŅĐģŅиĐŧĐĩдиŅŅ ĐēĐ°Đž ĐžŅĐĩŅŅивŅ}}",
- "compose_form.sensitive.marked": "{count, plural, one {ĐŅĐģŅиĐŧĐĩдиŅĐ° ŅĐĩ ОСĐŊĐ°ŅĐĩĐŊĐ° ĐēĐ°Đž ĐžŅĐĩŅŅива} few {ĐŅĐģŅиĐŧĐĩдиŅĐ° ŅĐĩ ОСĐŊĐ°ŅĐĩĐŊĐ° ĐēĐ°Đž ĐžŅĐĩŅŅива} other {ĐŅĐģŅиĐŧĐĩдиŅĐ° ŅĐĩ ОСĐŊĐ°ŅĐĩĐŊĐ° ĐēĐ°Đž ĐžŅĐĩŅŅива}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ĐŅĐģŅиĐŧĐĩдиŅĐ° ĐŊиŅĐĩ ОСĐŊĐ°ŅĐĩĐŊĐ° ĐēĐ°Đž ĐžŅĐĩŅŅива} few {ĐŅĐģŅиĐŧĐĩдиŅĐ° ĐŊиŅĐĩ ОСĐŊĐ°ŅĐĩĐŊĐ° ĐēĐ°Đž ĐžŅĐĩŅŅива} other {ĐŅĐģŅиĐŧĐĩдиŅĐ° ĐŊиŅĐĩ ОСĐŊĐ°ŅĐĩĐŊĐ° ĐēĐ°Đž ĐžŅĐĩŅŅива}}",
+ "compose_form.reply": "ĐĐ´ĐŗОвОŅи",
+ "compose_form.save_changes": "ĐĐļŅŅиŅĐ°Ņ",
"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": "ĐĐģĐžĐēиŅĐ°Ņ",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "ĐŅиваŅĐŊĐ° ĐŋĐžĐŧиŅĐ°ŅĐ°",
"navigation_bar.discover": "ĐŅĐēŅиŅ",
"navigation_bar.domain_blocks": "ĐĐģĐžĐēиŅĐ°ĐŊи Đ´ĐžĐŧĐĩĐŊи",
- "navigation_bar.edit_profile": "ĐŖŅĐĩди ĐŋŅĐžŅиĐģ",
"navigation_bar.explore": "ĐŅŅŅĐ°Đļи",
"navigation_bar.favourites": "ĐĐŧиŅĐĩĐŊĐž",
"navigation_bar.filters": "ĐĐŗĐŊĐžŅиŅĐ°ĐŊĐĩ ŅĐĩŅи",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "ĐОдаŅ Đ°ĐŊĐēĐĩŅŅ",
"poll_button.remove_poll": "ĐŖĐēĐģĐžĐŊи Đ°ĐŊĐēĐĩŅŅ",
"privacy.change": "ĐŅĐžĐŧĐĩĐŊи ĐŋŅиваŅĐŊĐžŅŅ ОйŅавĐĩ",
- "privacy.direct.long": "ĐидŅивО ŅĐ°ĐŧĐž ĐŋĐžĐŧĐĩĐŊŅŅиĐŧ ĐēĐžŅиŅĐŊиŅиĐŧĐ°",
- "privacy.direct.short": "ĐĄĐ°ĐŧĐž ĐŋĐžĐŧĐĩĐŊŅŅĐĩ ĐžŅОйĐĩ",
- "privacy.private.long": "ĐидŅивО ŅĐ°ĐŧĐž ĐŋŅĐ°ŅиОŅиĐŧĐ°",
- "privacy.private.short": "ĐĄĐ°ĐŧĐž ĐŋŅĐ°ŅиОŅи",
- "privacy.public.long": "ĐидŅивО Са ŅвĐĩ",
+ "privacy.direct.long": "Хви ĐŋĐžĐŧĐĩĐŊŅŅи Ņ ОйŅави",
+ "privacy.direct.short": "ĐĐ´ŅĐĩŅĐĩĐŊи ŅŅди",
+ "privacy.private.long": "ĐĄĐ°ĐŧĐž ваŅи ĐŋŅĐ°ŅиОŅи",
+ "privacy.private.short": "ĐŅĐ°ŅиОŅи",
+ "privacy.public.long": "ĐиĐģĐž ĐēĐž ĐŊĐ° Mastodon-Ņ и ваĐŊ ŅĐĩĐŗĐ°",
"privacy.public.short": "ĐавĐŊĐž",
- "privacy.unlisted.long": "ĐидŅивО ŅвиĐŧĐ°, Đ°Đģи иŅĐēŅŅŅĐĩĐŊĐž иС ŅŅĐŊĐēŅиŅĐ° ĐžŅĐēŅиваŅĐ°",
- "privacy.unlisted.short": "ĐĐĩиСĐģиŅŅĐ°ĐŊĐž",
+ "privacy.unlisted.additional": "ĐвО ŅĐĩ ĐŋĐžĐŊĐ°ŅĐ° ĐŋĐžŅĐŋŅĐŊĐž ĐēĐ°Đž ŅавĐŊĐž, ĐžŅиĐŧ ŅŅĐž ŅĐĩ ОйŅава ĐŊĐĩŅĐĩ ĐŋĐžŅавŅиваŅи Ņ иСвОŅиĐŧĐ° ŅĐļивО иĐģи Ņ
ĐĩŅ ОСĐŊĐ°ĐēĐ°ĐŧĐ°, иŅŅŅĐ°ĐļиваŅиĐŧĐ° иĐģи ĐŋŅĐĩŅŅаСи Mastodon-Đ°, ŅĐ°Đē и Đ°ĐēĐž ŅŅĐĩ ŅĐēŅŅŅĐĩĐŊи Ņ ŅĐĩĐģĐžĐŧ ĐŊĐ°ĐģĐžĐŗŅ.",
+ "privacy.unlisted.long": "ĐĐ°ŅĐĩ Đ°ĐģĐŗĐžŅиŅĐ°ĐŧŅĐēиŅ
ŅĐ°ĐŊŅĐ°ŅĐ°",
+ "privacy.unlisted.short": "ĐĸиŅ
Đ° ŅавĐŊĐžŅŅ",
"privacy_policy.last_updated": "ĐĐžŅĐģĐĩĐ´ŅĐĩ Đ°ĐļŅŅиŅĐ°ŅĐĩ {date}",
"privacy_policy.title": "ĐĐžĐģиŅиĐēĐ° ĐŋŅиваŅĐŊĐžŅŅи",
"recommended": "ĐŅĐĩĐŋĐžŅŅŅĐĩĐŊĐž",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number} ĐŧиĐŊ.",
"relative_time.seconds": "{number} ŅĐĩĐē.",
"relative_time.today": "Đ´Đ°ĐŊĐ°Ņ",
+ "reply_indicator.attachments": "{count, plural, one {# ĐŋŅиĐģĐžĐŗ} few {# ĐŋŅиĐģĐžĐŗĐ°} other {# ĐŋŅиĐģĐžĐŗĐ°}}",
"reply_indicator.cancel": "ĐŅĐēĐ°Đļи",
+ "reply_indicator.poll": "ĐĐŊĐēĐĩŅĐ°",
"report.block": "ĐĐģĐžĐēиŅĐ°Ņ",
"report.block_explanation": "ĐĐĩŅĐĩŅĐĩ видĐĩŅи ОйŅавĐĩ ĐēĐžŅиŅĐŊиĐēĐ°. Đи ĐžĐŊ ĐŊĐĩŅĐĩ видĐĩŅи ĐĐ°ŅĐĩ ОйŅавĐĩ ĐŊиŅи ŅĐĩ ĐŧĐžŅи Đ´Đ° ĐĐ°Ņ ĐŋŅĐ°Ņи. ĐĸĐ°ĐēĐžŅĐĩ ŅĐĩ ĐŧĐžŅи Đ´Đ° ŅаСĐŊĐ° Đ´Đ° ŅĐĩ ĐąĐģĐžĐēиŅĐ°ĐŊ.",
"report.categories.legal": "ĐŅавĐŊи",
@@ -714,10 +716,8 @@
"upload_error.poll": "ĐŅĐŋŅĐĩĐŧĐ°ŅĐĩ Đ´Đ°ŅĐžŅĐĩĐēĐ° ĐŊиŅĐĩ дОСвОŅĐĩĐŊĐž ĐēОд Đ°ĐŊĐēĐĩŅĐ°.",
"upload_form.audio_description": "ĐОдаŅŅĐĩ ĐžĐŋиŅ Са ĐžŅОйĐĩ ŅĐ° ĐžŅŅĐĩŅĐĩĐŊиĐŧ ŅĐģŅŅ
ĐžĐŧ",
"upload_form.description": "ĐОдаŅŅĐĩ ĐžĐŋиŅ Са ĐžŅОйĐĩ ŅĐ° ĐžŅŅĐĩŅĐĩĐŊиĐŧ видОĐŧ",
- "upload_form.description_missing": "ĐĐĩĐŧĐ° дОдаŅĐžĐŗ ĐžĐŋиŅĐ°",
"upload_form.edit": "ĐŖŅĐĩди",
"upload_form.thumbnail": "ĐŅĐžĐŧĐĩĐŊи ŅĐģиŅиŅŅ",
- "upload_form.undo": "ĐСйŅиŅи",
"upload_form.video_description": "ĐĐŋиŅиŅĐĩ Са ĐžŅОйĐĩ ŅĐ° ĐžŅŅĐĩŅĐĩĐŊиĐŧ ŅĐģŅŅ
ĐžĐŧ иĐģи видОĐŧ",
"upload_modal.analyzing_picture": "ĐĐŊĐ°ĐģиСиŅĐ°ŅĐĩ ŅĐģиĐēĐĩâĻ",
"upload_modal.apply": "ĐŅиĐŧĐĩĐŊи",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 8a07da72d..d6e6555b5 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "Inga inlägg",
"account.featured_tags.title": "{name}s utvalda hashtaggar",
"account.follow": "FÃļlj",
+ "account.follow_back": "FÃļlj tillbaka",
"account.followers": "FÃļljare",
"account.followers.empty": "Ingen fÃļljer denna användare än.",
"account.followers_counter": "{count, plural, one {{counter} fÃļljare} other {{counter} fÃļljare}}",
"account.following": "FÃļljer",
"account.following_counter": "{count, plural, one {{counter} fÃļljd} other {{counter} fÃļljda}}",
"account.follows.empty": "Denna användare fÃļljer inte nÃĨgon än.",
- "account.follows_you": "FÃļljer dig",
"account.go_to_profile": "GÃĨ till profilen",
"account.hide_reblogs": "DÃļlj boostar frÃĨn @{name}",
"account.in_memoriam": "Till minne av.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Stäng av aviseringsljud",
"account.mute_short": "Tysta",
"account.muted": "Tystad",
+ "account.mutual": "Ãmsesidig",
"account.no_bio": "Ingen beskrivning angiven.",
"account.open_original_page": "Ãppna den ursprungliga sidan",
"account.posts": "Inlägg",
@@ -88,7 +89,6 @@
"announcement.announcement": "Meddelande",
"attachments_list.unprocessed": "(obehandlad)",
"audio.hide": "DÃļlj audio",
- "autosuggest_hashtag.per_week": "{count} per vecka",
"boost_modal.combo": "Du kan trycka pÃĨ {combo} fÃļr att hoppa Ãļver detta nästa gÃĨng",
"bundle_column_error.copy_stacktrace": "Kopiera felrapport",
"bundle_column_error.error.body": "Den begärda sidan kunde inte visas. Det kan bero pÃĨ ett fel i vÃĨr kod eller ett problem med webbläsarens kompatibilitet.",
@@ -145,22 +145,18 @@
"compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vem som helst kan fÃļlja dig fÃļr att se dina inlägg som endast är fÃļr fÃļljare.",
"compose_form.lock_disclaimer.lock": "lÃĨst",
"compose_form.placeholder": "Vad tänker du pÃĨ?",
- "compose_form.poll.add_option": "Lägg till ett val",
+ "compose_form.poll.add_option": "Lägg till alternativ",
"compose_form.poll.duration": "Varaktighet fÃļr omrÃļstning",
- "compose_form.poll.option_placeholder": "Val {number}",
- "compose_form.poll.remove_option": "Ta bort detta val",
+ "compose_form.poll.option_placeholder": "Alternativ {number}",
"compose_form.poll.switch_to_multiple": "Ãndra enkät fÃļr att tillÃĨta flera val",
"compose_form.poll.switch_to_single": "Ãndra enkät fÃļr att tillÃĨta ett enda val",
- "compose_form.publish": "Publicera",
+ "compose_form.poll.type": "Stil",
"compose_form.publish_form": "Publicera",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Spara ändringar",
- "compose_form.sensitive.hide": "Markera media som känsligt",
- "compose_form.sensitive.marked": "Media har markerats som känsligt",
- "compose_form.sensitive.unmarked": "Media är inte markerat som känsligt",
+ "compose_form.reply": "Svara",
+ "compose_form.save_changes": "Uppdatera",
"compose_form.spoiler.marked": "Texten är dold bakom en varning",
"compose_form.spoiler.unmarked": "Texten är inte dold",
- "compose_form.spoiler_placeholder": "Skriv din varning här",
+ "compose_form.spoiler_placeholder": "InnehÃĨllsvarning (valfritt)",
"confirmation_modal.cancel": "Avbryt",
"confirmations.block.block_and_report": "Blockera & rapportera",
"confirmations.block.confirm": "Blockera",
@@ -407,7 +403,6 @@
"navigation_bar.direct": "Privata nämningar",
"navigation_bar.discover": "Upptäck",
"navigation_bar.domain_blocks": "Dolda domäner",
- "navigation_bar.edit_profile": "Redigera profil",
"navigation_bar.explore": "Utforska",
"navigation_bar.favourites": "Favoriter",
"navigation_bar.filters": "Tystade ord",
@@ -523,14 +518,10 @@
"poll_button.add_poll": "Lägg till en omrÃļstning",
"poll_button.remove_poll": "Ta bort omrÃļstning",
"privacy.change": "Ãndra inläggsintegritet",
- "privacy.direct.long": "Skicka endast till nämnda användare",
- "privacy.direct.short": "Endast omnämnda personer",
- "privacy.private.long": "Endast synligt fÃļr fÃļljare",
- "privacy.private.short": "Endast fÃļljare",
- "privacy.public.long": "Synlig fÃļr alla",
+ "privacy.private.long": "Endast dina fÃļljare",
+ "privacy.private.short": "FÃļljare",
+ "privacy.public.long": "Alla pÃĨ och utanfÃļr Mastodon",
"privacy.public.short": "Publik",
- "privacy.unlisted.long": "Synlig fÃļr alla, men visas inte i upptäcksfunktioner",
- "privacy.unlisted.short": "Olistad",
"privacy_policy.last_updated": "Senast uppdaterad {date}",
"privacy_policy.title": "Integritetspolicy",
"recommended": "Rekommenderas",
@@ -549,6 +540,7 @@
"relative_time.seconds": "{number}sek",
"relative_time.today": "idag",
"reply_indicator.cancel": "Ã
ngra",
+ "reply_indicator.poll": "OmrÃļstning",
"report.block": "Blockera",
"report.block_explanation": "Du kommer inte se hens inlägg. Hen kommer inte kunna se dina inlägg eller fÃļlja dig. Hen kommer kunna se att hen är blockerad.",
"report.categories.legal": "Juridisk",
@@ -712,10 +704,8 @@
"upload_error.poll": "Filuppladdning tillÃĨts inte med omrÃļstningar.",
"upload_form.audio_description": "Beskriv fÃļr personer med hÃļrselnedsättning",
"upload_form.description": "Beskriv fÃļr synskadade",
- "upload_form.description_missing": "Beskrivning saknas",
"upload_form.edit": "Redigera",
"upload_form.thumbnail": "Ãndra miniatyr",
- "upload_form.undo": "Radera",
"upload_form.video_description": "Beskriv fÃļr personer med hÃļrsel- eller synnedsättning",
"upload_modal.analyzing_picture": "Analyserar bildâĻ",
"upload_modal.apply": "Verkställ",
diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json
index abbdf9b7d..42164f656 100644
--- a/app/javascript/mastodon/locales/szl.json
+++ b/app/javascript/mastodon/locales/szl.json
@@ -93,8 +93,6 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "Adjust status privacy",
- "privacy.direct.short": "Direct",
- "privacy.private.short": "Followers-only",
"report.placeholder": "Type or paste additional comments",
"report.submit": "Submit report",
"report.target": "Report {target}",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index ce9042e62..6210c3d0b 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -10,6 +10,7 @@
"account.badges.group": "āŽā¯āŽ´ā¯",
"account.block": "@{name} -āŽāŽ¤ā¯ āŽ¤āŽā¯",
"account.block_domain": "{domain} āŽ¯āŽŋāŽ˛ā¯ āŽāŽ°ā¯āŽ¨ā¯āŽ¤ā¯ āŽĩāŽ°ā¯āŽŽā¯ āŽāŽ˛ā¯āŽ˛āŽžāŽĩāŽąā¯āŽąā¯āŽ¯ā¯āŽŽā¯ āŽŽāŽąā¯",
+ "account.block_short": "āŽ¤āŽā¯",
"account.blocked": "āŽŽā¯āŽāŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽāŽ¤ā¯",
"account.browse_more_on_origin_server": "āŽŽā¯āŽ˛ā¯āŽŽā¯ āŽāŽ˛āŽžāŽĩ āŽā¯āŽ¯āŽĩāŽŋāŽĩāŽ°āŽ¤ā¯āŽ¤āŽŋāŽąā¯āŽā¯āŽā¯ āŽā¯āŽ˛ā¯āŽ",
"account.cancel_follow_request": "Withdraw follow request",
@@ -18,21 +19,26 @@
"account.edit_profile": "āŽā¯āŽ¯āŽĩāŽŋāŽĩāŽ°āŽ¤ā¯āŽ¤ā¯ āŽŽāŽžāŽąā¯āŽąā¯",
"account.enable_notifications": "@{name} āŽĒāŽ¤āŽŋāŽĩāŽŋāŽā¯āŽāŽ˛ā¯ āŽāŽŠāŽā¯āŽā¯āŽ¤ā¯ āŽ¤ā¯āŽ°āŽŋāŽ¯āŽĒā¯āŽĒāŽā¯āŽ¤ā¯āŽ¤āŽĩā¯āŽŽā¯",
"account.endorse": "āŽā¯āŽ¯āŽĩāŽŋāŽĩāŽ°āŽ¤ā¯āŽ¤āŽŋāŽ˛ā¯ āŽĩā¯āŽŗāŽŋāŽĒā¯āŽĒāŽā¯āŽ¤ā¯āŽ¤ā¯",
+ "account.featured_tags.last_status_never": "āŽāŽā¯āŽā¯āŽāŽŗā¯ āŽāŽ˛ā¯āŽ˛ā¯",
"account.follow": "āŽĒāŽŋāŽŠā¯āŽ¤ā¯āŽāŽ°ā¯",
+ "account.follow_back": "āŽĒāŽŋāŽŠā¯āŽ¤ā¯āŽāŽ°ā¯",
"account.followers": "āŽĒāŽŋāŽŠā¯āŽ¤ā¯āŽāŽ°ā¯āŽĒāŽĩāŽ°ā¯āŽāŽŗā¯",
"account.followers.empty": "āŽāŽ¤ā¯āŽĩāŽ°ā¯ āŽ¯āŽžāŽ°ā¯āŽŽā¯ āŽāŽ¨ā¯āŽ¤ āŽĒāŽ¯āŽŠāŽ°ā¯āŽĒā¯ āŽĒāŽŋāŽŠā¯āŽ¤ā¯āŽāŽ°āŽĩāŽŋāŽ˛ā¯āŽ˛ā¯.",
"account.followers_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.go_to_profile": "āŽā¯āŽ¯āŽĩāŽŋāŽĩāŽ°āŽ¤ā¯āŽ¤āŽŋāŽąā¯āŽā¯āŽā¯ āŽā¯āŽ˛ā¯āŽ˛āŽĩā¯āŽŽā¯",
"account.hide_reblogs": "āŽāŽ°ā¯āŽ¨ā¯āŽ¤ā¯ āŽāŽā¯āŽāŽŋāŽ¯āŽžāŽ āŽŽāŽąā¯ @{name}",
"account.link_verified_on": "āŽāŽ¨ā¯āŽ¤ āŽāŽŖā¯āŽĒā¯āŽĒā¯ āŽāŽ°āŽŋāŽŽā¯āŽ¯āŽžāŽŗāŽ°ā¯ āŽāŽ°āŽŋāŽĒāŽžāŽ°ā¯āŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽāŽ¤ā¯ {date}",
"account.locked_info": "āŽāŽ¨ā¯āŽ¤āŽā¯ āŽāŽŖāŽā¯āŽā¯ āŽ¤āŽŠāŽŋāŽ¯ā¯āŽ°āŽŋāŽŽā¯ āŽ¨āŽŋāŽ˛ā¯ āŽĒā¯āŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽā¯āŽŗā¯āŽŗāŽ¤ā¯. āŽ
āŽĩāŽ°ā¯āŽāŽŗā¯āŽĒā¯ āŽĒāŽŋāŽŠā¯āŽ¤ā¯āŽāŽ°ā¯āŽĒāŽĩāŽ°ā¯ āŽ¯āŽžāŽ°ā¯ āŽāŽŠā¯āŽĒāŽ¤ā¯ āŽāŽ°āŽŋāŽŽā¯āŽ¯āŽžāŽŗāŽ°ā¯ āŽā¯āŽŽā¯āŽąā¯āŽ¯āŽžāŽ āŽŽāŽ¤āŽŋāŽĒā¯āŽĒāŽžāŽ¯ā¯āŽĩā¯ āŽā¯āŽ¯ā¯āŽāŽŋāŽąāŽžāŽ°ā¯.",
"account.media": "āŽāŽāŽāŽā¯āŽāŽŗā¯",
"account.mention": "āŽā¯āŽąāŽŋāŽĒā¯āŽĒāŽŋāŽā¯ @{name}",
"account.mute": "āŽāŽŽā¯āŽ¯āŽžāŽŠ @{name}",
+ "account.mute_notifications_short": "āŽ
āŽąāŽŋāŽĩāŽŋāŽĒā¯āŽĒā¯āŽāŽŗā¯ āŽāŽ˛āŽŋāŽ¯āŽāŽā¯āŽā¯",
+ "account.mute_short": "āŽ
āŽŽā¯āŽ¤āŽŋāŽ¯āŽžāŽā¯āŽā¯",
"account.muted": "āŽŽā¯āŽāŽā¯āŽāŽŋāŽ¯āŽ¤ā¯",
+ "account.no_bio": "āŽĩāŽŋāŽŗāŽā¯āŽāŽŽā¯ āŽāŽ¤ā¯āŽĩā¯āŽŽā¯ āŽĩāŽ´āŽā¯āŽāŽĒā¯āŽĒāŽāŽĩāŽŋāŽ˛ā¯āŽ˛ā¯.",
"account.posts": "āŽā¯āŽā¯āŽā¯āŽāŽŗā¯",
"account.posts_with_replies": "Toots āŽŽāŽąā¯āŽąā¯āŽŽā¯ āŽĒāŽ¤āŽŋāŽ˛ā¯āŽāŽŗā¯",
"account.report": "@{name} -āŽāŽĒā¯ āŽĒā¯āŽāŽžāŽ°āŽŗāŽŋ",
@@ -60,17 +66,30 @@
"announcement.announcement": "āŽ
āŽąāŽŋāŽĩāŽŋāŽĒā¯āŽĒā¯",
"attachments_list.unprocessed": "(āŽā¯āŽ¯āŽ˛āŽžāŽā¯āŽāŽĒā¯āŽĒāŽāŽžāŽ¤āŽ¤ā¯)",
"audio.hide": "āŽāŽāŽŋāŽ¯ā¯āŽĩā¯ āŽŽāŽąā¯",
- "autosuggest_hashtag.per_week": "āŽāŽĩā¯āŽĩā¯āŽ°ā¯ āŽĩāŽžāŽ°āŽŽā¯ {count}",
"boost_modal.combo": "āŽ¨ā¯āŽā¯āŽāŽŗā¯ āŽāŽ¤ā¯ āŽ
āŽā¯āŽ¤ā¯āŽ¤āŽŽā¯āŽąā¯ āŽ¤āŽĩāŽŋāŽ°ā¯āŽā¯āŽ {combo} āŽĩā¯ āŽ
āŽ´ā¯āŽ¤ā¯āŽ¤āŽĩā¯āŽŽā¯",
+ "bundle_column_error.error.title": "āŽ
āŽāŽā¯!",
+ "bundle_column_error.network.body": "āŽāŽ¨ā¯āŽ¤āŽĒā¯ āŽĒāŽā¯āŽāŽ¤ā¯āŽ¤ā¯āŽ¤ā¯ āŽ¤āŽŋāŽąāŽā¯āŽā¯āŽŽā¯āŽĒā¯āŽ´ā¯āŽ¤ā¯ āŽāŽ°ā¯ āŽĒāŽŋāŽ´ā¯ āŽāŽąā¯āŽĒāŽā¯āŽā¯āŽĩāŽŋāŽā¯āŽāŽ¤ā¯. āŽāŽ¤ā¯ āŽāŽā¯āŽāŽŗā¯ āŽāŽŖā¯āŽ¯ āŽ¤ā¯āŽāŽ°ā¯āŽĒāŽŋāŽ˛ā¯ āŽ
āŽ˛ā¯āŽ˛āŽ¤ā¯ āŽāŽĒā¯āŽĒāŽ¤ā¯āŽ¤āŽŋāŽŠā¯ āŽĩāŽ´āŽā¯āŽā¯āŽāŽŋāŽ¯āŽŋāŽ˛ā¯ āŽāŽąā¯āŽĒāŽā¯āŽā¯āŽŗā¯āŽŗ āŽāŽ°ā¯ āŽ¤āŽąā¯āŽāŽžāŽ˛āŽŋāŽ āŽĒāŽŋāŽ°āŽā¯āŽāŽŖā¯āŽ¯āŽžāŽ āŽāŽ°ā¯āŽā¯āŽāŽ˛āŽžāŽŽā¯.",
+ "bundle_column_error.network.title": "āŽĒāŽŋāŽŖā¯āŽ¯āŽĒā¯ āŽĒāŽŋāŽ´ā¯",
"bundle_column_error.retry": "āŽŽā¯āŽŖā¯āŽā¯āŽŽā¯ āŽŽā¯āŽ¯āŽąā¯āŽāŽŋāŽā¯āŽāŽĩā¯āŽŽā¯",
+ "bundle_column_error.return": "āŽŽā¯āŽāŽĒā¯āŽĒāŽŋāŽąā¯āŽā¯ āŽā¯āŽ˛ā¯āŽ˛āŽĩā¯āŽŽā¯",
+ "bundle_column_error.routing.body": "āŽā¯āŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽ āŽĒāŽā¯āŽāŽ¤ā¯āŽ¤ā¯āŽā¯ āŽāŽžāŽŖāŽĩāŽŋāŽ˛ā¯āŽ˛ā¯. āŽ¨ā¯āŽā¯āŽāŽŗā¯ āŽāŽŗā¯āŽŗāŽŋāŽā¯āŽ āŽŽā¯āŽāŽĩāŽ°āŽŋ āŽāŽ°āŽŋāŽ¯āŽŠāŽ¤āŽž?",
+ "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "āŽŽā¯āŽā¯āŽ",
"bundle_modal_error.message": "āŽāŽā¯āŽā¯āŽąā¯āŽąā¯ āŽāŽąā¯āŽąāŽŽā¯ āŽā¯āŽ¯ā¯āŽ¯ā¯āŽŽā¯āŽĒā¯āŽ´ā¯āŽ¤ā¯ āŽāŽ¤ā¯ āŽ¤āŽĩāŽąā¯ āŽāŽąā¯āŽĒāŽā¯āŽā¯āŽŗā¯āŽŗāŽ¤ā¯.",
"bundle_modal_error.retry": "āŽŽā¯āŽŖā¯āŽā¯āŽŽā¯ āŽŽā¯āŽ¯āŽąā¯āŽāŽŋ āŽā¯āŽ¯ā¯",
+ "closed_registrations.other_server_instructions": "āŽŽā¯āŽā¯āŽāŽāŽžāŽŠā¯ āŽāŽ°ā¯ āŽĒāŽ°āŽĩāŽ˛āŽžāŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽ āŽŽā¯āŽŠā¯āŽĒā¯āŽ°ā¯āŽŗā¯ āŽāŽŠā¯āŽĒāŽ¤āŽžāŽ˛ā¯, āŽ¨ā¯āŽā¯āŽāŽŗā¯ āŽĩā¯āŽ°ā¯ āŽāŽ°ā¯ āŽĩāŽ´āŽā¯āŽāŽŋāŽ¯āŽŋāŽ˛ā¯ āŽāŽŖāŽā¯āŽā¯ āŽāŽ°ā¯āŽĩāŽžāŽā¯āŽāŽŋāŽ¯āŽŋāŽ°ā¯āŽ¨ā¯āŽ¤āŽžāŽ˛ā¯āŽŽā¯ āŽāŽ¨ā¯āŽ¤ āŽĩāŽ´āŽā¯āŽāŽŋāŽ¯āŽŋāŽ˛ā¯ āŽĒāŽ¯āŽŠā¯āŽĒāŽā¯āŽ¤ā¯āŽ¤āŽ˛āŽžāŽŽā¯.",
+ "closed_registrations_modal.description": "{domain} āŽāŽ˛ā¯ āŽāŽĒā¯āŽĒā¯āŽ´ā¯āŽ¤ā¯ āŽāŽŖāŽā¯āŽā¯āŽāŽŗā¯ āŽāŽ°ā¯āŽĩāŽžāŽā¯āŽ āŽŽā¯āŽāŽŋāŽ¯āŽžāŽ¤ā¯. āŽ¨ā¯āŽā¯āŽāŽŗā¯ āŽŽā¯āŽā¯āŽāŽāŽžāŽŠā¯ āŽĒāŽ¯āŽŠā¯āŽĒāŽā¯āŽ¤ā¯āŽ¤, āŽā¯āŽąāŽŋāŽĒā¯āŽĒāŽžāŽ {domain} āŽŽā¯āŽāŽĩāŽ°āŽŋāŽ¯āŽŋāŽ˛ā¯ āŽāŽŖāŽā¯āŽā¯āŽ¤ā¯ āŽ¤ā¯āŽĩāŽā¯āŽ āŽĩā¯āŽŖā¯āŽā¯āŽŽā¯ āŽāŽŠā¯āŽą āŽ
āŽĩāŽāŽŋāŽ¯āŽŽāŽŋāŽ˛ā¯āŽ˛ā¯ āŽāŽŠā¯āŽĒāŽ¤ā¯ āŽŽāŽŠāŽ¤āŽŋāŽ˛ā¯ āŽĩā¯āŽ¤ā¯āŽ¤ā¯āŽā¯ āŽā¯āŽŗā¯āŽŗāŽĩā¯āŽŽā¯.",
+ "closed_registrations_modal.find_another_server": "āŽĩā¯āŽąā¯āŽ°ā¯ āŽĩāŽ´āŽā¯āŽāŽŋāŽ¯ā¯āŽā¯ āŽāŽŖā¯āŽā¯āŽĒāŽŋāŽāŽŋ",
+ "closed_registrations_modal.preamble": "āŽŽā¯āŽā¯āŽāŽāŽžāŽŠā¯ āŽāŽ°ā¯ āŽĒāŽ°āŽĩāŽ˛āŽžāŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽ āŽŽā¯āŽŠā¯āŽĒā¯āŽ°ā¯āŽŗā¯. āŽāŽ¤āŽŠāŽžāŽ˛ā¯ āŽ¨ā¯āŽā¯āŽāŽŗā¯ āŽāŽā¯āŽā¯āŽā¯ āŽāŽŖāŽā¯āŽā¯ āŽāŽ°ā¯āŽĩāŽžāŽā¯āŽāŽŋāŽŠāŽžāŽ˛ā¯āŽŽā¯ āŽāŽ¨ā¯āŽ¤ āŽĩāŽ´āŽā¯āŽāŽŋāŽ¯āŽŋāŽ˛ā¯ āŽāŽŗā¯āŽŗ āŽ¯āŽžāŽ°ā¯āŽāŽŠā¯ āŽĩā¯āŽŖā¯āŽā¯āŽŽā¯ āŽāŽŠā¯āŽąāŽžāŽ˛ā¯āŽŽā¯ āŽāŽ°āŽĩāŽžāŽāŽ˛āŽžāŽŽā¯. āŽ¨ā¯āŽā¯āŽāŽŗā¯ āŽā¯āŽ āŽāŽ°ā¯ āŽĩāŽ´āŽā¯āŽāŽŋāŽ¯ā¯ āŽ¨āŽŋāŽąā¯āŽĩāŽ˛āŽžāŽŽā¯!",
+ "closed_registrations_modal.title": "āŽŽā¯āŽā¯āŽāŽāŽžāŽŠā¯ āŽāŽŖāŽā¯āŽā¯ āŽ¤ā¯āŽĩāŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽāŽŋāŽąāŽ¤ā¯",
+ "column.about": "āŽĒāŽąā¯āŽąāŽŋ",
"column.blocks": "āŽ¤āŽā¯āŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽ āŽĒāŽ¯āŽŠāŽ°ā¯āŽāŽŗā¯",
"column.bookmarks": "āŽ
āŽā¯āŽ¯āŽžāŽŗāŽā¯āŽā¯āŽąāŽŋāŽāŽŗā¯",
"column.community": "āŽā¯āŽ¯ āŽ¨āŽŋāŽāŽ´ā¯āŽĩā¯ āŽāŽžāŽ˛āŽĩāŽ°āŽŋāŽā¯",
+ "column.direct": "āŽ¤āŽŠāŽŋāŽĒā¯āŽĒāŽā¯āŽ āŽā¯āŽąāŽŋāŽĒā¯āŽĒā¯āŽāŽŗā¯",
"column.directory": "āŽā¯āŽ¯āŽĩāŽŋāŽĩāŽ°āŽā¯āŽāŽŗā¯ āŽāŽ˛āŽžāŽĩā¯",
"column.domain_blocks": "āŽŽāŽąā¯āŽ¨ā¯āŽ¤āŽŋāŽ°ā¯āŽā¯āŽā¯āŽŽā¯ āŽ¤āŽŋāŽ°āŽŗāŽā¯āŽāŽŗā¯",
+ "column.favourites": "āŽĒāŽŋāŽāŽŋāŽ¤ā¯āŽ¤āŽĩā¯",
"column.follow_requests": "āŽĒāŽŋāŽŠā¯āŽ¤ā¯āŽāŽ° āŽ
āŽŠā¯āŽŽāŽ¤āŽŋāŽāŽŗā¯",
"column.home": "āŽŽā¯āŽāŽĒā¯āŽĒā¯",
"column.lists": "āŽĒāŽā¯āŽāŽŋāŽ¯āŽ˛ā¯āŽāŽŗā¯",
@@ -91,28 +110,21 @@
"community.column_settings.remote_only": "āŽ¤ā¯āŽ˛ā¯āŽĩāŽŋāŽ˛āŽŋāŽ°ā¯āŽ¨ā¯āŽ¤ā¯ āŽŽāŽā¯āŽā¯āŽŽā¯",
"compose.language.change": "āŽŽā¯āŽ´āŽŋāŽ¯ā¯ āŽŽāŽžāŽąā¯āŽąā¯",
"compose.language.search": "āŽ¤ā¯āŽāŽ˛ā¯ āŽŽā¯āŽ´āŽŋāŽāŽŗā¯...",
+ "compose.published.body": "āŽĒāŽ¤āŽŋāŽĩāŽŋāŽāŽĒā¯āŽĒāŽā¯āŽāŽ¤ā¯.",
+ "compose.published.open": "āŽ¤āŽŋāŽą",
+ "compose.saved.body": "āŽĒāŽ¤āŽŋāŽĩā¯ āŽā¯āŽŽāŽŋāŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽāŽ¤ā¯.",
"compose_form.direct_message_warning_learn_more": "āŽŽā¯āŽ˛ā¯āŽŽā¯ āŽ
āŽąāŽŋāŽ¯",
"compose_form.encryption_warning": "MastodonāŽ˛ā¯ āŽāŽŗā¯āŽŗ āŽĒāŽ¤āŽŋāŽĩā¯āŽāŽŗā¯ āŽŽā¯āŽąā¯āŽ¯āŽžāŽ āŽāŽŠā¯āŽā¯āŽ°āŽŋāŽĒā¯āŽā¯(encrypt) āŽā¯āŽ¯ā¯āŽ¯āŽĒāŽāŽĩāŽŋāŽ˛ā¯āŽ˛ā¯. āŽ
āŽ¤āŽŠāŽžāŽ˛ā¯ āŽŽā¯āŽā¯āŽāŽŋāŽ¯ āŽ¤āŽāŽĩāŽ˛ā¯āŽāŽŗā¯ āŽāŽā¯āŽā¯ āŽĒāŽāŽŋāŽ° āŽĩā¯āŽŖā¯āŽāŽžāŽŽā¯.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer": "āŽāŽā¯āŽāŽŗā¯ āŽāŽŖāŽā¯āŽā¯ {locked} āŽā¯āŽ¯ā¯āŽ¯āŽĒā¯āŽĒāŽāŽĩāŽŋāŽ˛ā¯āŽ˛ā¯. āŽāŽā¯āŽāŽŗā¯ āŽĒāŽ¤āŽŋāŽĩā¯āŽāŽŗā¯ āŽ¯āŽžāŽ°ā¯ āŽĩā¯āŽŖā¯āŽā¯āŽŽāŽžāŽŠāŽžāŽ˛ā¯āŽŽā¯ āŽĒāŽŋāŽŠā¯āŽ¤ā¯āŽāŽ°ā¯āŽ¨ā¯āŽ¤ā¯ āŽāŽžāŽŖāŽ˛āŽžāŽŽā¯.",
"compose_form.lock_disclaimer.lock": "āŽĒā¯āŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽāŽ¤ā¯",
"compose_form.placeholder": "āŽāŽā¯āŽāŽŗā¯ āŽŽāŽŠāŽ¤āŽŋāŽ˛ā¯ āŽāŽŠā¯āŽŠ āŽāŽ°ā¯āŽā¯āŽāŽŋāŽąāŽ¤ā¯?",
- "compose_form.poll.add_option": "āŽ¤ā¯āŽ°ā¯āŽĩā¯ āŽā¯āŽ°ā¯",
"compose_form.poll.duration": "āŽāŽ°ā¯āŽ¤ā¯āŽ¤ā¯āŽā¯āŽāŽŖāŽŋāŽĒā¯āŽĒāŽŋāŽŠā¯ āŽāŽžāŽ˛ āŽ
āŽŗāŽĩā¯",
- "compose_form.poll.option_placeholder": "āŽ¤ā¯āŽ°ā¯āŽĩā¯ āŽāŽŖā¯ {number}",
- "compose_form.poll.remove_option": "āŽāŽ¨ā¯āŽ¤āŽ¤ā¯ āŽ¤ā¯āŽ°ā¯āŽĩā¯ āŽ
āŽāŽąā¯āŽąā¯",
"compose_form.poll.switch_to_multiple": "āŽĒāŽ˛ āŽ¤ā¯āŽ°ā¯āŽĩā¯āŽāŽŗā¯ āŽ
āŽŠā¯āŽŽāŽ¤āŽŋāŽā¯āŽā¯āŽŽāŽžāŽąā¯ āŽŽāŽžāŽąā¯āŽąā¯",
"compose_form.poll.switch_to_single": "āŽāŽ°ā¯ āŽāŽ°ā¯ āŽ¤ā¯āŽ°ā¯āŽĩā¯ āŽŽāŽā¯āŽā¯āŽŽā¯ āŽ
āŽŠā¯āŽŽāŽ¤āŽŋāŽā¯āŽā¯āŽŽāŽžāŽąā¯ āŽŽāŽžāŽąā¯āŽąā¯",
- "compose_form.publish": "āŽĩā¯āŽŗāŽŋāŽ¯āŽŋāŽā¯",
"compose_form.publish_form": "Publish",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "āŽŽāŽžāŽąā¯āŽąāŽā¯āŽāŽŗā¯ āŽā¯āŽŽāŽŋ",
- "compose_form.sensitive.hide": "āŽ
āŽŠā¯āŽĩāŽ°ā¯āŽā¯āŽā¯āŽŽā¯ āŽāŽąā¯āŽąāŽĒā¯ āŽĒāŽāŽŽā¯ āŽāŽ˛ā¯āŽ˛ā¯ āŽāŽŠāŽā¯ āŽā¯āŽąāŽŋāŽ¯āŽŋāŽā¯",
- "compose_form.sensitive.marked": "āŽāŽĒā¯āŽĒāŽāŽŽā¯ āŽ
āŽŠā¯āŽĩāŽ°ā¯āŽā¯āŽā¯āŽŽā¯ āŽāŽąā¯āŽąāŽ¤āŽ˛ā¯āŽ˛ āŽāŽŠāŽā¯ āŽā¯āŽąāŽŋāŽ¯āŽŋāŽāŽĒā¯āŽĒāŽā¯āŽā¯āŽŗā¯āŽŗāŽ¤ā¯",
- "compose_form.sensitive.unmarked": "āŽāŽĒā¯āŽĒāŽāŽŽā¯ āŽ
āŽŠā¯āŽĩāŽ°ā¯āŽā¯āŽā¯āŽŽā¯ āŽāŽąā¯āŽąāŽ¤āŽ˛ā¯āŽ˛ āŽāŽŠāŽā¯ āŽā¯āŽąāŽŋāŽ¯āŽŋāŽāŽĒā¯āŽĒāŽāŽĩāŽŋāŽ˛ā¯āŽ˛ā¯",
"compose_form.spoiler.marked": "āŽāŽā¯āŽāŽ°āŽŋāŽā¯āŽā¯āŽ¯āŽŋāŽŠā¯ āŽĒāŽŋāŽŠā¯āŽŠāŽžāŽ˛ā¯ āŽĒāŽ¤āŽŋāŽĩā¯ āŽŽāŽąā¯āŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽā¯āŽŗā¯āŽŗāŽ¤ā¯",
"compose_form.spoiler.unmarked": "āŽĒāŽ¤āŽŋāŽĩā¯ āŽŽāŽąā¯āŽā¯āŽāŽĒā¯āŽĒāŽāŽĩāŽŋāŽ˛ā¯āŽ˛ā¯",
- "compose_form.spoiler_placeholder": "āŽāŽā¯āŽāŽŗā¯ āŽāŽā¯āŽāŽ°āŽŋāŽā¯āŽā¯āŽ¯ā¯ āŽāŽā¯āŽā¯ āŽāŽ´ā¯āŽ¤āŽĩā¯āŽŽā¯",
"confirmation_modal.cancel": "āŽ°āŽ¤ā¯āŽ¤ā¯",
"confirmations.block.block_and_report": "āŽ¤āŽā¯āŽ¤ā¯āŽ¤ā¯āŽĒā¯ āŽĒā¯āŽāŽžāŽ°āŽŗāŽŋ",
"confirmations.block.confirm": "āŽ¤āŽā¯",
@@ -181,6 +193,10 @@
"error.unexpected_crash.next_steps": "āŽĒāŽā¯āŽāŽ¤ā¯āŽ¤ā¯āŽĒā¯ āŽĒā¯āŽ¤ā¯āŽĒā¯āŽĒāŽŋāŽ¤ā¯āŽ¤ā¯āŽĒā¯ āŽĒāŽžāŽ°ā¯āŽā¯āŽāŽĩā¯āŽŽā¯. āŽ
āŽĒā¯āŽĒāŽāŽŋāŽ¯ā¯āŽŽā¯ āŽĩā¯āŽ˛ā¯ āŽā¯āŽ¯ā¯āŽ¯āŽĩāŽŋāŽ˛ā¯āŽ˛ā¯ āŽāŽŠāŽŋāŽ˛ā¯, āŽŽāŽžāŽ¸ā¯āŽāŽāŽžāŽŠā¯ āŽĩā¯āŽąā¯ āŽāŽ°ā¯ āŽāŽ˛āŽžāŽĩāŽŋāŽ¯āŽŋāŽŠā¯ āŽŽā¯āŽ˛āŽŽā¯, āŽ
āŽ˛ā¯āŽ˛āŽ¤ā¯ āŽĒā¯āŽ°ā¯āŽ¤ā¯āŽ¤āŽŽāŽžāŽŠ āŽā¯āŽ¯āŽ˛āŽŋāŽ¯āŽŋāŽŠā¯ āŽŽā¯āŽ˛āŽŽā¯ āŽĒāŽ¯āŽŠā¯āŽĒāŽā¯āŽ¤ā¯āŽ¤āŽŋāŽĒā¯ āŽĒāŽžāŽ°ā¯āŽā¯āŽāŽĩā¯āŽŽā¯.",
"errors.unexpected_crash.copy_stacktrace": "Stacktrace-āŽ clipboard-āŽ˛ā¯ āŽ¨āŽāŽ˛ā¯āŽā¯",
"errors.unexpected_crash.report_issue": "āŽĒā¯āŽāŽžāŽ°āŽŗāŽŋ",
+ "explore.title": "āŽāŽ˛āŽžāŽĩā¯",
+ "explore.trending_links": "āŽā¯āŽ¯ā¯āŽ¤āŽŋāŽāŽŗā¯",
+ "explore.trending_statuses": "āŽĒāŽ¤āŽŋāŽĩā¯āŽāŽŗā¯",
+ "explore.trending_tags": "āŽšā¯āŽˇā¯āŽā¯āŽā¯āŽā¯āŽāŽŗā¯",
"follow_request.authorize": "āŽ
āŽŠā¯āŽŽāŽ¤āŽŋāŽ¯āŽŗāŽŋ",
"follow_request.reject": "āŽ¨āŽŋāŽ°āŽžāŽāŽ°āŽŋ",
"follow_requests.unlocked_explanation": "āŽāŽā¯āŽāŽŗā¯ āŽāŽŖāŽā¯āŽā¯ āŽĒā¯āŽā¯āŽāŽĒā¯āŽĒāŽāŽĩāŽŋāŽ˛ā¯āŽ˛ā¯ āŽāŽŠā¯āŽąāŽžāŽ˛ā¯āŽŽā¯, āŽāŽ¨ā¯āŽ¤āŽā¯ āŽāŽŖāŽā¯āŽā¯āŽāŽŗāŽŋāŽ˛āŽŋāŽ°ā¯āŽ¨ā¯āŽ¤ā¯ āŽāŽā¯āŽāŽŗā¯āŽĒā¯ āŽĒāŽŋāŽŠā¯āŽ¤ā¯āŽāŽ° āŽĩāŽŋāŽ°ā¯āŽŽā¯āŽĒā¯āŽŽā¯ āŽā¯āŽ°āŽŋāŽā¯āŽā¯āŽāŽŗā¯ āŽ¨ā¯āŽā¯āŽāŽŗā¯ āŽĒāŽ°ā¯āŽā¯āŽ˛āŽŋāŽĒā¯āŽĒāŽ¤ā¯ āŽ¨āŽ˛āŽŽā¯ āŽāŽŠā¯āŽąā¯ {domain} āŽāŽ´āŽŋāŽ¯āŽ°ā¯ āŽāŽŖā¯āŽŖā¯āŽāŽŋāŽąāŽžāŽ°ā¯.",
@@ -256,7 +272,6 @@
"navigation_bar.compose": "āŽĒā¯āŽ¤āŽŋāŽ¯āŽĩāŽąā¯āŽąā¯ āŽāŽ´ā¯āŽ¤ā¯āŽ toot",
"navigation_bar.discover": "āŽāŽŖā¯āŽā¯ āŽĒāŽŋāŽāŽŋ",
"navigation_bar.domain_blocks": "āŽŽāŽąā¯āŽ¨ā¯āŽ¤ āŽāŽŗāŽā¯āŽāŽŗā¯",
- "navigation_bar.edit_profile": "āŽā¯āŽ¯āŽĩāŽŋāŽĩāŽ°āŽ¤ā¯āŽ¤ā¯āŽ¤ā¯ āŽ¤āŽŋāŽ°ā¯āŽ¤ā¯āŽ¤āŽĩā¯āŽŽā¯",
"navigation_bar.filters": "āŽŽā¯āŽāŽā¯āŽāŽĒā¯āŽĒāŽā¯āŽ āŽĩāŽžāŽ°ā¯āŽ¤ā¯āŽ¤ā¯āŽāŽŗā¯",
"navigation_bar.follow_requests": "āŽā¯āŽ°āŽŋāŽā¯āŽā¯āŽāŽŗā¯ āŽĒāŽŋāŽŠā¯āŽĒāŽąā¯āŽąāŽĩā¯āŽŽā¯",
"navigation_bar.follows_and_followers": "āŽĒāŽŋāŽŠā¯āŽĒāŽąā¯āŽąāŽ˛ā¯āŽāŽŗā¯ āŽŽāŽąā¯āŽąā¯āŽŽā¯ āŽĒāŽŋāŽŠā¯āŽĒāŽąā¯āŽąā¯āŽĒāŽĩāŽ°ā¯āŽāŽŗā¯",
@@ -317,12 +332,7 @@
"poll_button.add_poll": "āŽĩāŽžāŽā¯āŽā¯āŽā¯āŽĒā¯āŽĒā¯āŽā¯ āŽā¯āŽ°ā¯āŽā¯āŽāŽĩā¯āŽŽā¯",
"poll_button.remove_poll": "āŽĩāŽžāŽā¯āŽā¯āŽā¯āŽĒā¯āŽĒā¯ āŽ
āŽāŽąā¯āŽąā¯",
"privacy.change": "āŽ¨āŽŋāŽ˛ā¯ āŽ¤āŽŠāŽŋāŽ¯ā¯āŽ°āŽŋāŽŽā¯",
- "privacy.direct.long": "āŽā¯āŽąāŽŋāŽĒā¯āŽĒāŽŋāŽāŽĒā¯āŽĒāŽā¯āŽ āŽĒāŽ¯āŽŠāŽ°ā¯āŽāŽŗā¯āŽā¯āŽā¯ āŽŽāŽā¯āŽā¯āŽŽā¯ āŽāŽā¯āŽā¯āŽ¯āŽŋāŽāŽĩā¯āŽŽā¯",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "āŽĒāŽŋāŽŠā¯āŽ¤ā¯āŽāŽ°ā¯āŽĒāŽĩāŽ°ā¯āŽāŽŗā¯āŽā¯āŽā¯ āŽŽāŽā¯āŽā¯āŽŽā¯ āŽāŽā¯āŽā¯",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "āŽĒā¯āŽžāŽ¤ā¯",
- "privacy.unlisted.short": "āŽĒāŽā¯āŽāŽŋāŽ¯āŽ˛āŽŋāŽāŽĒā¯āŽĒāŽāŽžāŽ¤",
"refresh": "āŽĒā¯āŽ¤ā¯āŽĒā¯āŽĒāŽŋ",
"regeneration_indicator.label": "āŽā¯āŽŽā¯āŽ¯ā¯āŽąā¯āŽąāŽŽā¯âĻ",
"regeneration_indicator.sublabel": "āŽāŽā¯āŽāŽŗā¯ āŽĩā¯āŽā¯āŽā¯ āŽāŽā¯āŽāŽŽā¯ āŽ¤āŽ¯āŽžāŽ°ā¯ āŽā¯āŽ¯ā¯āŽ¯āŽĒā¯āŽĒāŽā¯āŽāŽŋāŽąāŽ¤ā¯!",
@@ -405,7 +415,6 @@
"upload_form.description": "āŽĒāŽžāŽ°ā¯āŽĩā¯āŽ¯āŽąā¯āŽą āŽĩāŽŋāŽĩāŽ°āŽŋāŽā¯āŽāŽĩā¯āŽŽā¯",
"upload_form.edit": "āŽ¤ā¯āŽžāŽā¯",
"upload_form.thumbnail": "āŽāŽŋāŽąā¯āŽĒāŽāŽ¤ā¯āŽ¤ā¯ āŽŽāŽžāŽąā¯āŽą",
- "upload_form.undo": "āŽ¨ā¯āŽā¯āŽā¯",
"upload_form.video_description": "āŽā¯āŽĩāŽŋāŽ¤ā¯āŽ¤āŽŋāŽąāŽŠā¯ āŽŽāŽąā¯āŽąā¯āŽŽā¯ āŽĒāŽžāŽ°ā¯āŽĩā¯āŽā¯ āŽā¯āŽąā¯āŽĒāŽžāŽā¯ āŽāŽŗā¯āŽŗāŽĩāŽ°ā¯āŽāŽŗā¯āŽā¯āŽāŽžāŽ āŽĩāŽŋāŽŗāŽā¯āŽā¯āŽâ",
"upload_modal.analyzing_picture": "āŽĒāŽāŽŽā¯ āŽāŽ°āŽžāŽ¯āŽĒā¯āŽĒāŽā¯āŽāŽŋāŽąāŽ¤ā¯âĻ",
"upload_modal.apply": "āŽāŽĒāŽ¯ā¯āŽāŽŋ",
diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json
index 7c1956d95..b1a242c75 100644
--- a/app/javascript/mastodon/locales/tai.json
+++ b/app/javascript/mastodon/locales/tai.json
@@ -79,8 +79,6 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "Adjust status privacy",
- "privacy.direct.short": "Direct",
- "privacy.private.short": "Followers-only",
"report.placeholder": "Type or paste additional comments",
"report.submit": "Submit report",
"report.target": "Report {target}",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index f21c0ef57..24a67247c 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -12,7 +12,6 @@
"account.followers": "ā°
ā°¨āąā°ā°°āąā°˛āą",
"account.followers.empty": "ā° ā°ĩā°ŋā°¨ā°ŋā°¯āąā°ā°Ļā°žā°°āąā°Ąā°ŋā°¨ā°ŋ ā°ā°ā°ā°ž ā°ā°ĩā°°āą ā°
ā°¨āąā°¸ā°°ā°ŋā°ā°ā°Ąā°ā°˛āąā°Ļāą.",
"account.follows.empty": "ā° ā°ĩā°ŋā°¨ā°ŋā°¯āąā°ā°Ļā°žā°°ā°ŋ ā°ā°ā°ā°ž ā°ā°ĩā°°ā°ŋā°¨āą ā°
ā°¨āąā°¸ā°°ā°ŋā°ā°ā°Ąā°ā°˛āąā°Ļāą.",
- "account.follows_you": "ā°Žā°ŋā°Žāąā°Žā°˛āąā°¨ā°ŋ ā°
ā°¨āąā°¸ā°°ā°ŋā°¸āąā°¤āąā°¨āąā°¨ā°žā°°āą",
"account.hide_reblogs": "@{name} ā°¨āąā°ā°ā°ŋ ā°Ŧāąā°¸āąā°āą ā°˛ā°¨āą ā°Ļā°žā°ā°ŋā°Ēāąā°āąā°āą",
"account.link_verified_on": "ā° ā°˛ā°ā°āą ā°¯āąā°āąā° ā°¯ā°žā°ā°Žā°žā°¨āąā°¯ā° {date}ā°¨ ā°Ēā°°āąā°āąā°ˇā°ŋā°ā°ā°Ŧā°Ąā°ŋā°ā°Ļā°ŋ",
"account.locked_info": "ā° ā°ā°žā°¤ā°ž ā°¯āąā°āąā° ā°āąā°Ēāąā°¯ā°¤ ā°¸āąā°Ĩā°ŋā°¤ā°ŋ ā°˛ā°žā°āą ā°āąā°¯ā°Ŧā°Ąā°ŋ ā°ĩāąā°ā°Ļā°ŋ. ā° ā°ā°žā°¤ā°žā°¨āą ā°ā°ĩā°°āą ā°
ā°¨āąā°¸ā°°ā°ŋā°ā°ā°ĩā°āąā°āą ā°¯ā°ā°Žā°žā°¨āą ā°¨ā°ŋā°°āąā°Ŗā°¯ā° ā°¤āąā°¸āąā°āąā°ā°ā°žā°°āą.",
@@ -65,16 +64,10 @@
"compose_form.lock_disclaimer": "ā°Žāą ā°ā°žā°¤ā°ž {locked} ā°āąā°¯ā°Ŧā°Ąā°˛āąā°Ļāą. ā°ā°ĩā°°āąā°¨ā°ž ā°Žā°ŋā°Žāąā°Žā°˛āąā°¨ā°ŋ ā°
ā°¨āąā°¸ā°°ā°ŋā°ā°ā°ŋ ā°Žāą ā°
ā°¨āąā°ā°°āąā°˛ā°āą-ā°Žā°žā°¤āąā°°ā°Žāą ā°Ēāąā°¸āąā°āąā°˛ā°¨āą ā°ĩāąā°āąā°ˇā°ŋā°ā°ā°ĩā°āąā°āą.",
"compose_form.lock_disclaimer.lock": "ā°Ŧā°ŋā°ā°ŋā°ā°ā°Ŧā°Ąā°ŋā°¨ā°Ļā°ŋ",
"compose_form.placeholder": "ā°Žāą ā°Žā°¨ā°¸āąā°¸āąā°˛āą ā°ā°Žāąā°ā°Ļā°ŋ?",
- "compose_form.poll.add_option": "ā°ā° ā°ā°ā°Ēā°ŋā°ā°¨āą ā°āąā°°āąā°ā°ā°Ąā°ŋ",
"compose_form.poll.duration": "ā°ā°¨āąā°¨ā°ŋā° ā°ĩāąā°¯ā°ĩā°§ā°ŋ",
- "compose_form.poll.option_placeholder": "ā°ā°ā°Ēā°ŋā° {number}",
- "compose_form.poll.remove_option": "ā° ā°ā°ā°Ēā°ŋā°ā°¨āą ā°¤āąā°˛ā°ā°ŋā°ā°āą",
"compose_form.publish_form": "Publish",
- "compose_form.sensitive.marked": "ā°Žāąā°Ąā°ŋā°¯ā°ž ā°¸āąā°¨āąā°¨ā°ŋā°¤ā°Žāąā°¨ā°Ļā°ŋā°ā°ž ā°āąā°°āąā°¤ā°ŋā°ā°ā°Ŧā°Ąā°ŋā°ā°Ļā°ŋ",
- "compose_form.sensitive.unmarked": "ā°Žāąā°Ąā°ŋā°¯ā°ž ā°¸āąā°¨āąā°¨ā°ŋā°¤ā°Žāąā°¨ā°Ļā°ŋā°ā°ž ā°āąā°°āąā°¤ā°ŋā°ā°ā°Ŧā°Ąā°˛āąā°Ļāą",
"compose_form.spoiler.marked": "ā°šāąā°āąā°ā°°ā°ŋā° ā°ĩāąā°¨āąā° ā°Ēā°žā° āąā°¯ā° ā°Ļā°žā°ā°Ŧā°Ąā°ŋā°ā°Ļā°ŋ",
"compose_form.spoiler.unmarked": "ā°Ēā°žā° āąā°¯ā° ā°Ļā°žā°ā°Ŧā°Ąā°˛āąā°Ļāą",
- "compose_form.spoiler_placeholder": "ā°ā°āąā°ā°Ą ā°Žāą ā°šāąā°āąā°ā°°ā°ŋā°ā°¨āą ā°°ā°žā°¯ā°ā°Ąā°ŋ",
"confirmation_modal.cancel": "ā°°ā°Ļāąā°Ļāą ā°āąā°¯āąā°¯ā°ŋ",
"confirmations.block.confirm": "ā°Ŧāąā°˛ā°žā°āą ā°āąā°¯ā°ŋ",
"confirmations.block.message": "ā°Žāąā°°āą ā°ā°āąā°ā°ŋā°¤ā°ā°ā°ž {name}ā°¨ā°ŋ ā°Ŧāąā°˛ā°žā°āą ā°āąā°¯ā°žā°˛ā°¨āąā°āąā°ā°āąā°¨āąā°¨ā°žā°°ā°ž?",
@@ -187,7 +180,6 @@
"navigation_bar.compose": "ā°āąā°¤āąā°¤ ā°āąā°āąā°¨āą ā°°ā°žā°¯ā°ā°Ąā°ŋ",
"navigation_bar.discover": "ā°ā°¨āąā°āąā°¨āą",
"navigation_bar.domain_blocks": "ā°Ļā°žā°ā°ŋā°¨ ā°Ąāąā°Žāąā°¨āąā°˛āą",
- "navigation_bar.edit_profile": "ā°Ēāąā°°āąā°Ģāąā°˛āąā°¨ā°ŋ ā°¸ā°ĩā°°ā°ŋā°ā°ā°ā°Ąā°ŋ",
"navigation_bar.filters": "ā°Žāąā°¯āąā°āą ā°āąā°¯ā°Ŧā°Ąā°ŋā°¨ ā°Ēā°Ļā°žā°˛āą",
"navigation_bar.follow_requests": "ā°
ā°¨āąā°¸ā°°ā°ŋā°ā°ā°Ąā°žā°¨ā°ŋā°ā°ŋ ā°
ā°āąā°¯ā°°āąā°§ā°¨ā°˛āą",
"navigation_bar.lists": "ā°ā°žā°Ŧā°ŋā°¤ā°žā°˛āą",
@@ -241,12 +233,7 @@
"poll_button.add_poll": "ā°ā° ā°ā°¨āąā°¨ā°ŋā°ā°¨āą ā°āąā°°āąā°āą",
"poll_button.remove_poll": "ā°ā°¨āąā°¨ā°ŋā°ā°¨āą ā°¤āąā°˛ā°ā°ŋā°ā°āą",
"privacy.change": "ā°¸āąā°āąā°ā°¸āą ā°āąā°Ēāąā°¯ā°¤ā°¨āą ā°¸ā°°āąā°Ļāąā°Ŧā°žā°āą ā°āąā°¯ā°ā°Ąā°ŋ",
- "privacy.direct.long": "ā°Ēāąā°°āąā°āąā°¨āąā°¨ ā°ĩā°ŋā°¨ā°ŋā°¯āąā°ā°Ļā°žā°°āąā°˛ā°āą ā°Žā°žā°¤āąā°°ā°Žāą ā°Ēāąā°¸āąā°āą ā°āąā°¯ā°ŋ",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "ā°
ā°¨āąā°ā°°āąā°˛ā°āą ā°Žā°žā°¤āąā°°ā°Žāą ā°Ēāąā°¸āąā°āą ā°āąā°¯ā°ŋ",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "ā°Ēāąā°°ā°ā°ž",
- "privacy.unlisted.short": "ā°ā°žā°Ŧā°ŋā°¤ā°ž ā°āąā°¯ā°Ŧā°Ąā°¨ā°ŋā°Ļā°ŋ",
"regeneration_indicator.label": "ā°˛āąā°Ąāą ā°
ā°ĩāąā°¤āąā°ā°Ļā°ŋâĻ",
"regeneration_indicator.sublabel": "ā°Žāą ā°šāąā°Žāą ā°Ģāąā°Ąāą ā°¸ā°ŋā°Ļāąā°§ā°Žā°ĩāąā°¤āąā°ā°Ļā°ŋ!",
"relative_time.just_now": "ā°ā°Ēāąā°Ēāąā°Ąāą",
@@ -309,7 +296,6 @@
"upload_button.label": "ā°Žāąā°Ąā°ŋā°¯ā°žā°¨āą ā°āąā°Ąā°ŋā°ā°ā°ā°Ąā°ŋ (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "ā°Ļāąā°ˇāąā°ā°ŋ ā°˛āąā°Ēā°Žāąā°¨āąā°¨ ā°ĩā°žā°°ā°ŋ ā°āąā°¸ā° ā°ĩā°ŋā°ĩā°°ā°ŋā°ā°ā°ā°Ąā°ŋ",
- "upload_form.undo": "ā°¤āąā°˛ā°ā°ŋā°ā°āą",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_progress.label": "ā°
ā°Ēāąā°˛āąā°Ąāą ā°
ā°ĩāąā°¤āąā°ā°Ļā°ŋ...",
"video.close": "ā°ĩāąā°Ąā°ŋā°¯āąā°¨ā°ŋ ā°Žāąā°¸ā°ŋā°ĩāąā°¯ā°ŋ",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 67b920393..4437afa78 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "āšā¸Ąāšā¸Ąā¸ĩāšā¸ā¸Ēā¸āš",
"account.featured_tags.title": "āšā¸Žā¸āšā¸āšā¸ā¸ā¸ĩāšā¸āšā¸˛ā¸Ēā¸āšā¸ā¸ā¸ā¸ {name}",
"account.follow": "ā¸ā¸´ā¸ā¸ā¸˛ā¸Ą",
+ "account.follow_back": "ā¸ā¸´ā¸ā¸ā¸˛ā¸Ąā¸ā¸Ĩā¸ąā¸",
"account.followers": "ā¸ā¸šāšā¸ā¸´ā¸ā¸ā¸˛ā¸Ą",
"account.followers.empty": "ā¸ĸā¸ąā¸āšā¸Ąāšā¸Ąā¸ĩāšā¸ā¸Ŗā¸ā¸´ā¸ā¸ā¸˛ā¸Ąā¸ā¸šāšāšā¸āšā¸ā¸ĩāš",
"account.followers_counter": "{count, plural, other {{counter} ā¸ā¸šāšā¸ā¸´ā¸ā¸ā¸˛ā¸Ą}}",
"account.following": "ā¸ā¸ŗā¸Ĩā¸ąā¸ā¸ā¸´ā¸ā¸ā¸˛ā¸Ą",
"account.following_counter": "{count, plural, other {{counter} ā¸ā¸ŗā¸Ĩā¸ąā¸ā¸ā¸´ā¸ā¸ā¸˛ā¸Ą}}",
"account.follows.empty": "ā¸ā¸šāšāšā¸āšā¸ā¸ĩāšā¸ĸā¸ąā¸āšā¸Ąāšāšā¸āšā¸ā¸´ā¸ā¸ā¸˛ā¸Ąāšā¸ā¸Ŗ",
- "account.follows_you": "ā¸ā¸´ā¸ā¸ā¸˛ā¸Ąā¸ā¸¸ā¸",
"account.go_to_profile": "āšā¸ā¸ĸā¸ąā¸āšā¸ā¸Ŗāšā¸ā¸Ĩāš",
"account.hide_reblogs": "ā¸āšā¸ā¸ā¸ā¸˛ā¸Ŗā¸ā¸ąā¸ā¸ā¸˛ā¸ @{name}",
"account.in_memoriam": "āšā¸ā¸ˇāšā¸ā¸Ŗā¸°ā¸Ĩā¸ļā¸ā¸ā¸ļā¸",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ā¸āšā¸ā¸ā¸ā¸˛ā¸Ŗāšā¸āšā¸āšā¸ā¸ˇā¸ā¸",
"account.mute_short": "ā¸āšā¸ā¸",
"account.muted": "ā¸āšā¸ā¸ā¸ā¸ĸā¸šāš",
+ "account.mutual": "ā¸ā¸ā¸ā¸ĩāšā¸Ąā¸ĩā¸Ŗāšā¸§ā¸Ąā¸ā¸ąā¸",
"account.no_bio": "āšā¸Ąāšāšā¸āšāšā¸Ģāšā¸ā¸ŗā¸ā¸ā¸´ā¸ā¸˛ā¸ĸ",
"account.open_original_page": "āšā¸ā¸´ā¸ā¸Ģā¸āšā¸˛ā¸ā¸ąāšā¸āšā¸ā¸´ā¸Ą",
"account.posts": "āšā¸ā¸Ēā¸āš",
@@ -88,7 +89,6 @@
"announcement.announcement": "ā¸ā¸Ŗā¸°ā¸ā¸˛ā¸¨",
"attachments_list.unprocessed": "(ā¸ĸā¸ąā¸āšā¸Ąāšāšā¸āšā¸ā¸Ŗā¸°ā¸Ąā¸§ā¸Ĩā¸ā¸Ĩ)",
"audio.hide": "ā¸āšā¸ā¸āšā¸Ēā¸ĩā¸ĸā¸",
- "autosuggest_hashtag.per_week": "{count} ā¸āšā¸ā¸Ēā¸ąā¸ā¸ā¸˛ā¸Ģāš",
"boost_modal.combo": "ā¸ā¸¸ā¸ā¸Ēā¸˛ā¸Ąā¸˛ā¸Ŗā¸ā¸ā¸ {combo} āšā¸ā¸ˇāšā¸ā¸āšā¸˛ā¸Ąā¸Ēā¸´āšā¸ā¸ā¸ĩāšāšā¸ā¸ā¸Ŗā¸ąāšā¸ā¸ā¸ąā¸āšā¸",
"bundle_column_error.copy_stacktrace": "ā¸ā¸ąā¸ā¸Ĩā¸ā¸ā¸Ŗā¸˛ā¸ĸā¸ā¸˛ā¸ā¸āšā¸ā¸ā¸´ā¸ā¸ā¸Ĩā¸˛ā¸",
"bundle_column_error.error.body": "āšā¸Ąāšā¸Ēā¸˛ā¸Ąā¸˛ā¸Ŗā¸āšā¸Ēā¸ā¸ā¸ā¸Ĩā¸Ģā¸āšā¸˛ā¸ā¸ĩāšā¸ā¸ ā¸āšā¸ā¸ā¸´ā¸ā¸ā¸Ĩā¸˛ā¸ā¸ā¸˛ā¸āšā¸āšā¸āšā¸ā¸Ŗā¸˛ā¸°ā¸āšā¸ā¸ā¸ā¸ā¸Ŗāšā¸ā¸āšā¸āšā¸āšā¸ā¸ā¸ā¸āšā¸Ŗā¸˛ ā¸Ģā¸Ŗā¸ˇā¸ā¸ā¸ąā¸ā¸Ģā¸˛ā¸ā¸§ā¸˛ā¸Ąāšā¸āšā¸˛ā¸ā¸ąā¸āšā¸āšā¸ā¸ā¸āšā¸ā¸Ŗā¸˛ā¸§āšāšā¸ā¸ā¸Ŗāš",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "ā¸ā¸ąā¸ā¸ā¸ĩā¸ā¸ā¸ā¸ā¸¸ā¸āšā¸Ąāšāšā¸āš {locked} āšā¸ā¸Ŗā¸āšā¸ā¸˛ā¸Ąā¸Ēā¸˛ā¸Ąā¸˛ā¸Ŗā¸ā¸ā¸´ā¸ā¸ā¸˛ā¸Ąā¸ā¸¸ā¸āšā¸ā¸ˇāšā¸ā¸ā¸šāšā¸ā¸Ēā¸āšā¸Ēā¸ŗā¸Ģā¸Ŗā¸ąā¸ā¸ā¸šāšā¸ā¸´ā¸ā¸ā¸˛ā¸Ąāšā¸āšā¸˛ā¸ā¸ąāšā¸ā¸ā¸ā¸ā¸ā¸¸ā¸",
"compose_form.lock_disclaimer.lock": "ā¸Ĩāšā¸ā¸ā¸ā¸ĸā¸šāš",
"compose_form.placeholder": "ā¸ā¸¸ā¸ā¸ā¸ŗā¸Ĩā¸ąā¸ā¸ā¸´ā¸ā¸ā¸°āšā¸Ŗā¸ā¸ĸā¸šāš?",
- "compose_form.poll.add_option": "āšā¸ā¸´āšā¸Ąā¸ā¸ąā¸§āšā¸Ĩā¸ˇā¸ā¸",
"compose_form.poll.duration": "ā¸Ŗā¸°ā¸ĸā¸°āšā¸§ā¸Ĩā¸˛ā¸ā¸˛ā¸Ŗā¸Ēā¸ŗā¸Ŗā¸§ā¸ā¸ā¸§ā¸˛ā¸Ąā¸ā¸´ā¸āšā¸Ģāšā¸",
- "compose_form.poll.option_placeholder": "ā¸ā¸ąā¸§āšā¸Ĩā¸ˇā¸ā¸ {number}",
- "compose_form.poll.remove_option": "āšā¸ā¸˛ā¸ā¸ąā¸§āšā¸Ĩā¸ˇā¸ā¸ā¸ā¸ĩāšā¸ā¸ā¸",
"compose_form.poll.switch_to_multiple": "āšā¸ā¸Ĩā¸ĩāšā¸ĸā¸ā¸ā¸˛ā¸Ŗā¸Ēā¸ŗā¸Ŗā¸§ā¸ā¸ā¸§ā¸˛ā¸Ąā¸ā¸´ā¸āšā¸Ģāšā¸āšā¸āšā¸ā¸ā¸ā¸¸ā¸ā¸˛ā¸ā¸Ģā¸Ĩā¸˛ā¸ĸā¸ā¸ąā¸§āšā¸Ĩā¸ˇā¸ā¸",
"compose_form.poll.switch_to_single": "āšā¸ā¸Ĩā¸ĩāšā¸ĸā¸ā¸ā¸˛ā¸Ŗā¸Ēā¸ŗā¸Ŗā¸§ā¸ā¸ā¸§ā¸˛ā¸Ąā¸ā¸´ā¸āšā¸Ģāšā¸āšā¸āšā¸ā¸ā¸ā¸¸ā¸ā¸˛ā¸ā¸ā¸ąā¸§āšā¸Ĩā¸ˇā¸ā¸āšā¸ā¸ĩāšā¸ĸā¸§",
- "compose_form.publish": "āšā¸ā¸ĸāšā¸ā¸Ŗāš",
"compose_form.publish_form": "āšā¸ā¸Ēā¸āšāšā¸Ģā¸Ąāš",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ā¸ā¸ąā¸ā¸ā¸ļā¸ā¸ā¸˛ā¸Ŗāšā¸ā¸Ĩā¸ĩāšā¸ĸā¸āšā¸ā¸Ĩā¸",
- "compose_form.sensitive.hide": "{count, plural, other {ā¸ā¸ŗāšā¸ā¸Ŗā¸ˇāšā¸ā¸ā¸Ģā¸Ąā¸˛ā¸ĸā¸Ēā¸ˇāšā¸ā¸§āšā¸˛ā¸Ĩā¸°āšā¸ā¸ĩā¸ĸā¸ā¸āšā¸ā¸}}",
- "compose_form.sensitive.marked": "{count, plural, other {ā¸Ąā¸ĩā¸ā¸˛ā¸Ŗā¸ā¸ŗāšā¸ā¸Ŗā¸ˇāšā¸ā¸ā¸Ģā¸Ąā¸˛ā¸ĸā¸Ēā¸ˇāšā¸ā¸§āšā¸˛ā¸Ĩā¸°āšā¸ā¸ĩā¸ĸā¸ā¸āšā¸ā¸}}",
- "compose_form.sensitive.unmarked": "{count, plural, other {āšā¸Ąāšā¸Ąā¸ĩā¸ā¸˛ā¸Ŗā¸ā¸ŗāšā¸ā¸Ŗā¸ˇāšā¸ā¸ā¸Ģā¸Ąā¸˛ā¸ĸā¸Ēā¸ˇāšā¸ā¸§āšā¸˛ā¸Ĩā¸°āšā¸ā¸ĩā¸ĸā¸ā¸āšā¸ā¸}}",
"compose_form.spoiler.marked": "āšā¸ā¸˛ā¸ā¸ŗāšā¸ā¸ˇā¸ā¸āšā¸ā¸ˇāšā¸ā¸Ģā¸˛ā¸ā¸ā¸",
"compose_form.spoiler.unmarked": "āšā¸ā¸´āšā¸Ąā¸ā¸ŗāšā¸ā¸ˇā¸ā¸āšā¸ā¸ˇāšā¸ā¸Ģā¸˛",
- "compose_form.spoiler_placeholder": "āšā¸ā¸ĩā¸ĸā¸ā¸ā¸ŗāšā¸ā¸ˇā¸ā¸ā¸ā¸ā¸ā¸ā¸¸ā¸ā¸ā¸ĩāšā¸ā¸ĩāš",
"confirmation_modal.cancel": "ā¸ĸā¸āšā¸Ĩā¸´ā¸",
"confirmations.block.block_and_report": "ā¸ā¸´ā¸ā¸ā¸ąāšā¸āšā¸Ĩāšā¸§ā¸Ŗā¸˛ā¸ĸā¸ā¸˛ā¸",
"confirmations.block.confirm": "ā¸ā¸´ā¸ā¸ā¸ąāšā¸",
@@ -203,7 +193,7 @@
"disabled_account_banner.text": "ā¸Ąā¸ĩā¸ā¸˛ā¸Ŗā¸ā¸´ā¸āšā¸āšā¸ā¸˛ā¸ā¸ā¸ąā¸ā¸ā¸ĩā¸ā¸ā¸ā¸ā¸¸ā¸ {disabledAccount} āšā¸ā¸ā¸ąā¸ā¸ā¸¸ā¸ā¸ąā¸",
"dismissable_banner.community_timeline": "ā¸ā¸ĩāšā¸ā¸ˇā¸āšā¸ā¸Ēā¸āšā¸Ēā¸˛ā¸ā¸˛ā¸Ŗā¸ā¸°ā¸Ĩāšā¸˛ā¸Ēā¸¸ā¸ā¸ā¸˛ā¸ā¸ā¸šāšā¸ā¸ā¸ā¸ĩāšā¸ā¸ąā¸ā¸ā¸ĩāšā¸āšā¸Ŗā¸ąā¸ā¸ā¸˛ā¸Ŗāšā¸Žā¸Ēā¸āšāšā¸ā¸ĸ {domain}",
"dismissable_banner.dismiss": "ā¸ā¸´ā¸",
- "dismissable_banner.explore_links": "ā¸ā¸ĩāšā¸ā¸ˇā¸āšā¸Ŗā¸ˇāšā¸ā¸ā¸āšā¸˛ā¸§ā¸ā¸ĩāšāšā¸āšā¸Ŗā¸ąā¸ā¸ā¸˛ā¸Ŗāšā¸āšā¸ā¸ā¸ąā¸ā¸Ąā¸˛ā¸ā¸ā¸ĩāšā¸Ēā¸¸ā¸āšā¸āšā¸§āšā¸ā¸Ēā¸ąā¸ā¸ā¸Ąā¸§ā¸ąā¸ā¸ā¸ĩāš āšā¸Ŗā¸ˇāšā¸ā¸ā¸āšā¸˛ā¸§ā¸ā¸ĩāšāšā¸Ģā¸Ąāšā¸ā¸§āšā¸˛ā¸ā¸ĩāšāšā¸āšā¸Ŗā¸ąā¸ā¸ā¸˛ā¸Ŗāšā¸ā¸Ēā¸āšāšā¸ā¸ĸā¸ā¸šāšā¸ā¸ā¸āšā¸˛ā¸ āš ā¸Ąā¸˛ā¸ā¸ā¸§āšā¸˛ā¸ā¸°āšā¸āšā¸Ŗā¸ąā¸ā¸ā¸˛ā¸Ŗā¸ā¸ąā¸ā¸ā¸ąā¸ā¸ā¸ąā¸ā¸ā¸ĩāšā¸Ēā¸šā¸ā¸ā¸§āšā¸˛",
+ "dismissable_banner.explore_links": "ā¸ā¸ĩāšāšā¸āšā¸āšā¸Ŗā¸ˇāšā¸ā¸ā¸āšā¸˛ā¸§ā¸ā¸ĩāšāšā¸āšā¸Ŗā¸ąā¸ā¸ā¸˛ā¸Ŗāšā¸ā¸Ŗāšā¸Ąā¸˛ā¸ā¸ā¸ĩāšā¸Ēā¸¸ā¸āšā¸āšā¸§āšā¸ā¸Ēā¸ąā¸ā¸ā¸Ąā¸§ā¸ąā¸ā¸ā¸ĩāš āšā¸Ŗā¸ˇāšā¸ā¸ā¸āšā¸˛ā¸§ā¸ā¸ĩāšāšā¸Ģā¸Ąāšā¸ā¸§āšā¸˛ā¸ā¸ĩāšā¸Ąā¸ĩā¸ā¸āšā¸ā¸Ēā¸āšā¸Ąā¸˛ā¸ā¸ā¸§āšā¸˛ā¸ā¸°āšā¸āšā¸Ŗā¸ąā¸ā¸ā¸˛ā¸Ŗā¸ā¸ąā¸ā¸ā¸ąā¸ā¸ā¸ąā¸ā¸ā¸ĩāšā¸Ēā¸šā¸ā¸ā¸§āšā¸˛",
"dismissable_banner.explore_statuses": "ā¸ā¸ĩāšā¸ā¸ˇā¸āšā¸ā¸Ēā¸āšā¸ā¸˛ā¸ā¸ā¸ąāšā¸§ā¸ā¸ąāšā¸āšā¸§āšā¸ā¸Ēā¸ąā¸ā¸ā¸Ąā¸ā¸ĩāšā¸ā¸ŗā¸Ĩā¸ąā¸āšā¸āšā¸Ŗā¸ąā¸ā¸ā¸§ā¸˛ā¸Ąā¸Ēā¸āšā¸ā¸§ā¸ąā¸ā¸ā¸ĩāš āšā¸ā¸Ēā¸āšā¸ā¸ĩāšāšā¸Ģā¸Ąāšā¸ā¸§āšā¸˛ā¸ā¸ĩāšā¸Ąā¸ĩā¸ā¸˛ā¸Ŗā¸ā¸ąā¸āšā¸Ĩā¸°ā¸Ŗā¸˛ā¸ĸā¸ā¸˛ā¸Ŗāšā¸ā¸Ŗā¸ā¸Ąā¸˛ā¸ā¸ā¸§āšā¸˛ā¸ā¸°āšā¸āšā¸Ŗā¸ąā¸ā¸ā¸˛ā¸Ŗā¸ā¸ąā¸ā¸ā¸ąā¸ā¸ā¸ąā¸ā¸ā¸ĩāšā¸Ēā¸šā¸ā¸ā¸§āšā¸˛",
"dismissable_banner.explore_tags": "ā¸ā¸ĩāšā¸ā¸ˇā¸āšā¸Žā¸āšā¸āšā¸ā¸ā¸ĩāšā¸ā¸ŗā¸Ĩā¸ąā¸āšā¸āšā¸Ŗā¸ąā¸ā¸ā¸§ā¸˛ā¸Ąā¸Ēā¸āšā¸āšā¸āšā¸§āšā¸ā¸Ēā¸ąā¸ā¸ā¸Ąā¸§ā¸ąā¸ā¸ā¸ĩāš āšā¸Žā¸āšā¸āšā¸ā¸ā¸ĩāšā¸Ąā¸ĩā¸ā¸˛ā¸Ŗāšā¸āšāšā¸ā¸ĸā¸ā¸šāšā¸ā¸ā¸āšā¸˛ā¸ āš ā¸Ąā¸˛ā¸ā¸ā¸§āšā¸˛ā¸ā¸°āšā¸āšā¸Ŗā¸ąā¸ā¸ā¸˛ā¸Ŗā¸ā¸ąā¸ā¸ā¸ąā¸ā¸ā¸ąā¸ā¸ā¸ĩāšā¸Ēā¸šā¸ā¸ā¸§āšā¸˛",
"dismissable_banner.public_timeline": "ā¸ā¸ĩāšā¸ā¸ˇā¸āšā¸ā¸Ēā¸āšā¸Ēā¸˛ā¸ā¸˛ā¸Ŗā¸ā¸°ā¸Ĩāšā¸˛ā¸Ēā¸¸ā¸ā¸ā¸˛ā¸ā¸ā¸šāšā¸ā¸āšā¸āšā¸§āšā¸ā¸Ēā¸ąā¸ā¸ā¸Ąā¸ā¸ĩāšā¸ā¸šāšā¸ā¸āšā¸ {domain} ā¸ā¸´ā¸ā¸ā¸˛ā¸Ą",
@@ -313,7 +303,7 @@
"home.explore_prompt.body": "ā¸ā¸ĩā¸ā¸Ģā¸āšā¸˛āšā¸Ŗā¸ā¸ā¸ā¸ā¸ā¸¸ā¸ā¸ā¸°ā¸Ąā¸ĩā¸ā¸˛ā¸Ŗā¸ā¸Ēā¸Ąā¸ā¸Ēā¸˛ā¸ā¸ā¸ā¸āšā¸ā¸Ēā¸āšā¸ā¸˛ā¸āšā¸Žā¸āšā¸āšā¸ā¸ā¸ĩāšā¸ā¸¸ā¸āšā¸āšāšā¸Ĩā¸ˇā¸ā¸ā¸ā¸´ā¸ā¸ā¸˛ā¸Ą, ā¸ā¸šāšā¸ā¸ā¸ā¸ĩāšā¸ā¸¸ā¸āšā¸āšāšā¸Ĩā¸ˇā¸ā¸ā¸ā¸´ā¸ā¸ā¸˛ā¸Ą āšā¸Ĩā¸°āšā¸ā¸Ēā¸āšā¸ā¸ĩāšāšā¸ā¸˛ā¸ā¸ąā¸ ā¸Ģā¸˛ā¸ā¸ā¸ąāšā¸ā¸Ŗā¸šāšā¸Ēā¸ļā¸āšā¸ā¸ĩā¸ĸā¸āšā¸ā¸´ā¸āšā¸ ā¸ā¸¸ā¸ā¸ā¸˛ā¸ā¸āšā¸ā¸ā¸ā¸˛ā¸Ŗ:",
"home.explore_prompt.title": "ā¸ā¸ĩāšā¸ā¸ˇā¸ā¸ā¸˛ā¸ā¸Ģā¸āšā¸˛āšā¸Ŗā¸ā¸ā¸ā¸ā¸ā¸¸ā¸ā¸ ā¸˛ā¸ĸāšā¸ Mastodon",
"home.hide_announcements": "ā¸āšā¸ā¸ā¸ā¸Ŗā¸°ā¸ā¸˛ā¸¨",
- "home.pending_critical_update.body": "āšā¸ā¸Ŗā¸ā¸ā¸ąā¸āšā¸ā¸āšā¸ā¸´ā¸Ŗāšā¸āšā¸§ā¸ā¸Ŗāš Mastodon ā¸ā¸ā¸ā¸ā¸¸ā¸āšā¸ā¸ĸāšā¸Ŗāšā¸§ā¸ā¸ĩāšā¸Ēā¸¸ā¸āšā¸āšā¸˛ā¸ā¸ĩāšā¸ā¸°ā¸ā¸ŗāšā¸āš!",
+ "home.pending_critical_update.body": "āšā¸ā¸Ŗā¸ā¸ā¸ąā¸āšā¸ā¸āšā¸ā¸´ā¸Ŗāšā¸āšā¸§ā¸ā¸Ŗāš Mastodon ā¸ā¸ā¸ā¸ā¸¸ā¸āšā¸ā¸ĸāšā¸Ŗāšā¸§ā¸ā¸ĩāšā¸Ēā¸¸ā¸āšā¸āšā¸˛ā¸ā¸ĩāšā¸ā¸°āšā¸āšā¸āšā¸āšā¸āš!",
"home.pending_critical_update.link": "ā¸ā¸šā¸ā¸˛ā¸Ŗā¸ā¸ąā¸āšā¸ā¸",
"home.pending_critical_update.title": "ā¸Ąā¸ĩā¸ā¸˛ā¸Ŗā¸ā¸ąā¸āšā¸ā¸ā¸ā¸§ā¸˛ā¸Ąā¸ā¸Ĩā¸ā¸ā¸ ā¸ąā¸ĸā¸Ēā¸ŗā¸ā¸ąā¸ā¸ā¸Ŗāšā¸ā¸Ąāšā¸āšā¸ā¸˛ā¸!",
"home.show_announcements": "āšā¸Ēā¸ā¸ā¸ā¸Ŗā¸°ā¸ā¸˛ā¸¨",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "ā¸ā¸˛ā¸Ŗā¸ā¸Ĩāšā¸˛ā¸§ā¸ā¸ļā¸āšā¸ā¸ā¸Ēāšā¸§ā¸ā¸ā¸ąā¸§",
"navigation_bar.discover": "ā¸āšā¸ā¸ā¸",
"navigation_bar.domain_blocks": "āšā¸āšā¸Ąā¸ā¸ā¸ĩāšā¸ā¸´ā¸ā¸ā¸ąāšā¸ā¸ā¸ĸā¸šāš",
- "navigation_bar.edit_profile": "āšā¸āšāšā¸āšā¸ā¸Ŗāšā¸ā¸Ĩāš",
"navigation_bar.explore": "ā¸Ēā¸ŗā¸Ŗā¸§ā¸",
"navigation_bar.favourites": "ā¸Ŗā¸˛ā¸ĸā¸ā¸˛ā¸Ŗāšā¸ā¸Ŗā¸",
"navigation_bar.filters": "ā¸ā¸ŗā¸ā¸ĩāšā¸āšā¸ā¸ā¸ā¸ĸā¸šāš",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "āšā¸ā¸´āšā¸Ąā¸ā¸˛ā¸Ŗā¸Ēā¸ŗā¸Ŗā¸§ā¸ā¸ā¸§ā¸˛ā¸Ąā¸ā¸´ā¸āšā¸Ģāšā¸",
"poll_button.remove_poll": "āšā¸ā¸˛ā¸ā¸˛ā¸Ŗā¸Ēā¸ŗā¸Ŗā¸§ā¸ā¸ā¸§ā¸˛ā¸Ąā¸ā¸´ā¸āšā¸Ģāšā¸ā¸ā¸ā¸",
"privacy.change": "āšā¸ā¸Ĩā¸ĩāšā¸ĸā¸ā¸ā¸§ā¸˛ā¸Ąāšā¸āšā¸ā¸Ēāšā¸§ā¸ā¸ā¸ąā¸§ā¸ā¸ā¸āšā¸ā¸Ēā¸āš",
- "privacy.direct.long": "ā¸ā¸Ŗā¸˛ā¸ā¸āšā¸āšā¸ā¸šāšāšā¸āšā¸ā¸ĩāšā¸ā¸Ĩāšā¸˛ā¸§ā¸ā¸ļā¸āšā¸āšā¸˛ā¸ā¸ąāšā¸",
- "privacy.direct.short": "ā¸ā¸šāšā¸ā¸ā¸ā¸ĩāšā¸ā¸Ĩāšā¸˛ā¸§ā¸ā¸ļā¸āšā¸āšā¸˛ā¸ā¸ąāšā¸",
- "privacy.private.long": "ā¸ā¸Ŗā¸˛ā¸ā¸āšā¸āšā¸ā¸šāšā¸ā¸´ā¸ā¸ā¸˛ā¸Ąāšā¸āšā¸˛ā¸ā¸ąāšā¸",
- "privacy.private.short": "ā¸ā¸šāšā¸ā¸´ā¸ā¸ā¸˛ā¸Ąāšā¸āšā¸˛ā¸ā¸ąāšā¸",
- "privacy.public.long": "ā¸ā¸Ŗā¸˛ā¸ā¸āšā¸āšā¸ā¸ąāšā¸ā¸Ģā¸Ąā¸",
"privacy.public.short": "ā¸Ēā¸˛ā¸ā¸˛ā¸Ŗā¸ā¸°",
- "privacy.unlisted.long": "ā¸ā¸Ŗā¸˛ā¸ā¸āšā¸āšā¸ā¸ąāšā¸ā¸Ģā¸Ąā¸ āšā¸āšāšā¸Ĩā¸ˇā¸ā¸āšā¸Ąāšā¸Ŗā¸ąā¸ā¸ā¸¸ā¸ā¸Ĩā¸ąā¸ā¸Šā¸ā¸°ā¸ā¸˛ā¸Ŗā¸āšā¸ā¸ā¸",
- "privacy.unlisted.short": "āšā¸Ąāšā¸ā¸ĸā¸šāšāšā¸ā¸Ŗā¸˛ā¸ĸā¸ā¸˛ā¸Ŗ",
"privacy_policy.last_updated": "ā¸ā¸ąā¸āšā¸ā¸ā¸Ĩāšā¸˛ā¸Ēā¸¸ā¸āšā¸Ąā¸ˇāšā¸ {date}",
"privacy_policy.title": "ā¸āšā¸ĸā¸ā¸˛ā¸ĸā¸ā¸§ā¸˛ā¸Ąāšā¸āšā¸ā¸Ēāšā¸§ā¸ā¸ā¸ąā¸§",
"recommended": "āšā¸ā¸°ā¸ā¸ŗ",
@@ -714,10 +696,8 @@
"upload_error.poll": "āšā¸Ąāšā¸ā¸ā¸¸ā¸ā¸˛ā¸ā¸ā¸˛ā¸Ŗā¸ā¸ąā¸āšā¸Ģā¸Ĩā¸āšā¸ā¸Ĩāšāšā¸ā¸ĸā¸Ąā¸ĩā¸ā¸˛ā¸Ŗā¸Ēā¸ŗā¸Ŗā¸§ā¸ā¸ā¸§ā¸˛ā¸Ąā¸ā¸´ā¸āšā¸Ģāšā¸",
"upload_form.audio_description": "ā¸ā¸ā¸´ā¸ā¸˛ā¸ĸā¸Ēā¸ŗā¸Ģā¸Ŗā¸ąā¸ā¸ā¸šāšā¸ā¸ĩāšā¸Ēā¸šā¸āšā¸Ēā¸ĩā¸ĸā¸ā¸˛ā¸Ŗāšā¸āšā¸ĸā¸´ā¸",
"upload_form.description": "ā¸ā¸ā¸´ā¸ā¸˛ā¸ĸā¸Ēā¸ŗā¸Ģā¸Ŗā¸ąā¸ā¸ā¸šāšā¸ā¸ā¸ā¸ĩāšā¸ā¸´ā¸ā¸˛ā¸Ŗā¸ā¸˛ā¸ā¸ā¸˛ā¸Ŗā¸Ąā¸ā¸āšā¸Ģāšā¸ā¸Ģā¸Ŗā¸ˇā¸ā¸Ąā¸ĩā¸Ēā¸˛ā¸ĸā¸ā¸˛āšā¸Ĩā¸ˇā¸ā¸ā¸Ŗā¸˛ā¸",
- "upload_form.description_missing": "āšā¸Ąāšāšā¸āšāšā¸ā¸´āšā¸Ąā¸ā¸ŗā¸ā¸ā¸´ā¸ā¸˛ā¸ĸ",
"upload_form.edit": "āšā¸āšāšā¸",
"upload_form.thumbnail": "āšā¸ā¸Ĩā¸ĩāšā¸ĸā¸ā¸ ā¸˛ā¸ā¸ā¸ā¸˛ā¸ā¸ĸāšā¸",
- "upload_form.undo": "ā¸Ĩā¸",
"upload_form.video_description": "ā¸ā¸ā¸´ā¸ā¸˛ā¸ĸā¸Ēā¸ŗā¸Ģā¸Ŗā¸ąā¸ā¸ā¸šāšā¸ā¸ā¸ā¸ĩāšā¸ā¸´ā¸ā¸˛ā¸Ŗā¸ā¸˛ā¸ā¸ā¸˛ā¸Ŗāšā¸āšā¸ĸā¸´ā¸ āšā¸āšā¸ĸā¸´ā¸āšā¸Ąāšā¸ā¸ąā¸ ā¸ā¸´ā¸ā¸˛ā¸Ŗā¸ā¸˛ā¸ā¸ā¸˛ā¸Ŗā¸Ąā¸ā¸āšā¸Ģāšā¸ ā¸Ģā¸Ŗā¸ˇā¸ā¸Ąā¸ĩā¸Ēā¸˛ā¸ĸā¸ā¸˛āšā¸Ĩā¸ˇā¸ā¸ā¸Ŗā¸˛ā¸",
"upload_modal.analyzing_picture": "ā¸ā¸ŗā¸Ĩā¸ąā¸ā¸§ā¸´āšā¸ā¸Ŗā¸˛ā¸°ā¸Ģāšā¸Ŗā¸šā¸ā¸ ā¸˛ā¸âĻ",
"upload_modal.apply": "ā¸ā¸ŗāšā¸āšā¸āš",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 8eb09bb7c..6811c158d 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -32,20 +32,20 @@
"account.featured_tags.last_status_never": "GÃļnderi yok",
"account.featured_tags.title": "{name} kiÅisinin Ãļne Ã§Äąkan etiketleri",
"account.follow": "Takip et",
+ "account.follow_back": "Geri takip et",
"account.followers": "Takipçi",
"account.followers.empty": "HenÃŧz kimse bu kullanÄącÄąyÄą takip etmiyor.",
"account.followers_counter": "{count, plural, one {{counter} Takipçi} other {{counter} Takipçi}}",
"account.following": "Takip Ediliyor",
"account.following_counter": "{count, plural, one {{counter} Takip Edilen} other {{counter} Takip Edilen}}",
"account.follows.empty": "Bu kullanÄącÄą henÃŧz kimseyi takip etmiyor.",
- "account.follows_you": "Seni takip ediyor",
"account.go_to_profile": "Profile git",
"account.hide_reblogs": "@{name} kiÅisinin boostlarÄąnÄą gizle",
"account.in_memoriam": "HatÄąrasÄąna.",
"account.joined_short": "KatÄąldÄą",
"account.languages": "Abone olunan dilleri deÄiÅtir",
"account.link_verified_on": "Bu baÄlantÄąnÄąn sahipliÄi {date} tarihinde denetlendi",
- "account.locked_info": "Bu hesabÄąn gizlilik durumu gizli olarak ayarlanmÄąÅ. Sahibi, onu kimin takip edebileceÄini manuel olarak onaylÄąyor.",
+ "account.locked_info": "Bu hesabÄąn gizlilik durumu gizli olarak ayarlanmÄąÅ. Sahibi, onu kimin takip edebileceÄini elle onaylÄąyor.",
"account.media": "Medya",
"account.mention": "@{name} kiÅisinden bahset",
"account.moved_to": "{name} yeni hesabÄąnÄąn artÄąk Åu olduÄunu belirtti:",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "Bildirimleri sessize al",
"account.mute_short": "Sessize al",
"account.muted": "Susturuldu",
+ "account.mutual": "KarÅÄąlÄąklÄą",
"account.no_bio": "Herhangi bir aÃ§Äąklama belirtilmedi.",
"account.open_original_page": "AsÄąl sayfayÄą aç",
"account.posts": "GÃļnderiler",
@@ -88,7 +89,6 @@
"announcement.announcement": "Duyuru",
"attachments_list.unprocessed": "(iÅlenmemiÅ)",
"audio.hide": "Sesi gizle",
- "autosuggest_hashtag.per_week": "Haftada {count}",
"boost_modal.combo": "Bir daha ki sefere {combo} tuÅuna basabilirsin",
"bundle_column_error.copy_stacktrace": "Hata raporunu kopyala",
"bundle_column_error.error.body": "Ä°stenen sayfa gÃļsterilemiyor. Bu durum kodumuzdaki bir hatadan veya tarayÄącÄą uyum sorunundan kaynaklanÄąyor olabilir.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "HesabÄąn {locked} deÄil. YalnÄązca takipçilere Ãļzel gÃļnderilerini gÃļrÃŧntÃŧlemek için herkes seni takip edebilir.",
"compose_form.lock_disclaimer.lock": "kilitli",
"compose_form.placeholder": "AklÄąnda ne var?",
- "compose_form.poll.add_option": "Bir seçenek ekleyin",
"compose_form.poll.duration": "Anket sÃŧresi",
- "compose_form.poll.option_placeholder": "{number}.seçenek",
- "compose_form.poll.remove_option": "Bu seçeneÄi kaldÄąr",
"compose_form.poll.switch_to_multiple": "Birden çok seçeneÄe izin vermek için anketi deÄiÅtir",
"compose_form.poll.switch_to_single": "Tek bir seçeneÄe izin vermek için anketi deÄiÅtir",
- "compose_form.publish": "GÃļnder",
"compose_form.publish_form": "GÃļnder",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "DeÄiÅiklikleri kaydet",
- "compose_form.sensitive.hide": "{count, plural, one {MedyayÄą hassas olarak iÅaretle} other {MedyayÄą hassas olarak iÅaretle}}",
- "compose_form.sensitive.marked": "{count, plural, one {Medya hassas olarak iÅaretlendi} other {Medya hassas olarak iÅaretlendi}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Medya hassas olarak iÅaretlenmemiÅ} other {Medya hassas olarak iÅaretlenmemiÅ}}",
"compose_form.spoiler.marked": "Metin uyarÄąnÄąn arkasÄąna gizlenir",
"compose_form.spoiler.unmarked": "Metin gizli deÄil",
- "compose_form.spoiler_placeholder": "UyarÄąnÄązÄą buraya yazÄąn",
"confirmation_modal.cancel": "Ä°ptal",
"confirmations.block.block_and_report": "Engelle ve Bildir",
"confirmations.block.confirm": "Engelle",
@@ -345,7 +335,7 @@
"keyboard_shortcuts.down": "Listede aÅaÄÄąya inmek için",
"keyboard_shortcuts.enter": "gÃļnderiyi aç",
"keyboard_shortcuts.favourite": "GÃļnderiyi favorilerine ekle",
- "keyboard_shortcuts.favourites": "Favoriler listeni aç",
+ "keyboard_shortcuts.favourites": "GÃļzde listeni aç",
"keyboard_shortcuts.federated": "Federe akÄąÅÄą aç",
"keyboard_shortcuts.heading": "Klavye kÄąsayollarÄą",
"keyboard_shortcuts.home": "Ana akÄąÅÄą aç",
@@ -407,7 +397,6 @@
"navigation_bar.direct": "Ãzel deÄinmeler",
"navigation_bar.discover": "KeÅfet",
"navigation_bar.domain_blocks": "Engellenen alan adlarÄą",
- "navigation_bar.edit_profile": "Profili dÃŧzenle",
"navigation_bar.explore": "KeÅfet",
"navigation_bar.favourites": "Favorilerin",
"navigation_bar.filters": "Sessize alÄąnmÄąÅ kelimeler",
@@ -525,14 +514,7 @@
"poll_button.add_poll": "Bir anket ekleyin",
"poll_button.remove_poll": "Anketi kaldÄąr",
"privacy.change": "GÃļnderi gizliliÄini deÄiÅtir",
- "privacy.direct.long": "Sadece bahsedilen kullanÄącÄąlar için gÃļrÃŧnÃŧr",
- "privacy.direct.short": "Sadece bahsedilen kiÅiler",
- "privacy.private.long": "Sadece takipçiler için gÃļrÃŧnÃŧr",
- "privacy.private.short": "Sadece takipçiler",
- "privacy.public.long": "Herkese aÃ§Äąk",
"privacy.public.short": "Herkese aÃ§Äąk",
- "privacy.unlisted.long": "KeÅfet harici herkese aÃ§Äąk",
- "privacy.unlisted.short": "ListelenmemiÅ",
"privacy_policy.last_updated": "Son gÃŧncelleme {date}",
"privacy_policy.title": "Gizlilik PolitikasÄą",
"recommended": "Ãnerilen",
@@ -714,10 +696,8 @@
"upload_error.poll": "Anketlerde dosya yÃŧklemesine izin verilmez.",
"upload_form.audio_description": "Ä°Åitme kaybÄą olan kiÅiler için yazÄą ekleyiniz",
"upload_form.description": "GÃļrme engelliler için aÃ§Äąklama",
- "upload_form.description_missing": "AÃ§Äąklama eklenmedi",
"upload_form.edit": "DÃŧzenle",
"upload_form.thumbnail": "KÃŧçÃŧk resmi deÄiÅtir",
- "upload_form.undo": "Sil",
"upload_form.video_description": "Ä°Åitme kaybÄą veya gÃļrme engeli olan kiÅiler için aÃ§Äąklama ekleyiniz",
"upload_modal.analyzing_picture": "Resim analiz ediliyorâĻ",
"upload_modal.apply": "Uygula",
diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json
index 6727f3e59..17de9884e 100644
--- a/app/javascript/mastodon/locales/tt.json
+++ b/app/javascript/mastodon/locales/tt.json
@@ -35,7 +35,6 @@
"account.following": "Đ¯ĐˇŅĐģŅĐģĐ°Ņ",
"account.following_counter": "{count, plural, one {{counter} ŅСŅĐģŅ} other {{counter} ŅСŅĐģŅ}}",
"account.follows.empty": "ĐĐĩŅĐēĐĩĐŧĐŗĶ Đ´Ķ ŅСŅĐģĐŧĐ°ĐŗĐ°ĐŊ ĶĐģĐĩ.",
- "account.follows_you": "ĐĄĐĩСĐŗĶ ŅСŅĐģĐŗĐ°ĐŊ",
"account.go_to_profile": "ĐŅĐžŅиĐģŅĐŗĶ ĐēŌ¯ŅŌ¯",
"account.hide_reblogs": "ĐĄĐēŅŅваŅŅ ĐēĶŠŅĐĩĐŊ ĐŊŅĐĩ @{name}",
"account.in_memoriam": "ĐŅŅĶĐģĐĩĐŗĐĩĐŊĶ.",
@@ -77,7 +76,6 @@
"announcement.announcement": "ĐĐŗŅĐģĐ°ĐŊ",
"attachments_list.unprocessed": "(ŅиĐŧĐ°Đģ)",
"audio.hide": "ĐŅдиОĐŊŅ ŅŅĐĩŅŌ¯",
- "autosuggest_hashtag.per_week": "{count} Đ°ŅĐŊĐ°ĐŗĐ°",
"boost_modal.combo": "ĐĄĐĩС йаŅĐ° Đ°ĐģĐ°ŅŅС {combo} ĐēиĐģĶŅĐĩ ŅĐ°ĐŋĐēŅŅ ĐŧĐžĐŊŅ ŅĐ°ĐŗŅĐŊŅ ĶŠŅĐĩĐŊ",
"bundle_column_error.copy_stacktrace": "ĐŌ¯ŅĐĩŅĐĩĐŋ Đ°ĐģŅ Ņ
Đ°ŅĐ° ŅŅŅŅĐŊĐ´Đ° ĐŅŅĐĩŅ",
"bundle_column_error.error.body": "ĐĄĐžŅĐ°ĐģĐŗĐ°ĐŊ йиŅ ĐēŌ¯ŅŅĶŅĐĩĐģĶ Đ°ĐģĐŧŅĐš. ĐŅ ĐąĐĩСĐŊĐĩŌŖ ĐēОдŅĐ°ĐŗŅ Ņ
Đ°ŅĐ° ŅĐēи ĐąŅĐ°ŅСĐĩŅĐŗĐ° ŅŅŅŅ ĐēиĐģŌ¯ ĐŋŅОйĐģĐĩĐŧĐ°ŅŅ Đ°ŅĐēĐ°ŅŅĐŊĐ´Đ° ĐąŅĐģŅŅĐŗĐ° ĐŧĶŠĐŧĐēиĐŊ.",
@@ -129,22 +127,12 @@
"compose_form.lock_disclaimer": "ĐĄĐĩСĐŊĐĩŌŖ Ņ
иŅĐ°Đŋ ŅŌ¯ĐŗĐĩĐģ {locked}. ĐĐŋŅĶŅĐąĐĩŅ ŅĐĩĐģĶĐŗĶĐŊ ĐēĐĩŅĐĩ ŅĐĩСĐŊĐĩŌŖ ŅСĐŧĐ° ĶŠŅĐĩĐŊ иŅŅĶ Đ°ĐģĐ°.",
"compose_form.lock_disclaimer.lock": "йиĐēĐģĐĩ",
"compose_form.placeholder": "What is on your mind?",
- "compose_form.poll.add_option": "ĐĄĐ°ĐšĐģĐ°Ņ ĶŠŅŅĶĐŗĐĩС",
"compose_form.poll.duration": "ĐĄĐžŅĐ°ŅŅŅŅŅ ОСŅĐŊĐģŅĐŗŅ",
- "compose_form.poll.option_placeholder": "ĐĄĐ°ĐšĐģĐ°Ņ {number}",
- "compose_form.poll.remove_option": "ĐąĐĩŅĐĩŅŌ¯",
"compose_form.poll.switch_to_multiple": "ĐĐĩŅĐŊиŅĶ ваŅиаĐŊŅĐŊŅ ŅиŅŌ¯ ĶŠŅĐĩĐŊ ŅĐžŅĐ°ŅŅŅŅŅĐŊŅ ŌŽĐˇĐŗĶŅŅĐĩĐŗĐĩС",
"compose_form.poll.switch_to_single": "ĐĐĩŅĐ´ĶĐŊĐąĐĩŅ ŅĐ°ĐšĐģĐ°Ņ ĶŠŅĐĩĐŊ ŅĐžŅĐ°ŅŅŅŅŅĐŊŅ ŌŽĐˇĐŗĶŅŅĐĩĐŗĐĩС",
- "compose_form.publish": "ĐĐ°ŅŅŅŅŅ",
"compose_form.publish_form": "ĐĐ°ŅŅŅŅŅ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ŌŽĐˇĐŗĶŅĐĩŅĐģĶŅĐŊĐĩ ŅĐ°ĐēĐģĐ°Ņ",
- "compose_form.sensitive.hide": "{count, plural, one {ĐĐĩдиаĐŊŅ ŅиСĐŗĐĩŅ иŅĐĩĐŋ йиĐģĐŗĐĩĐģĶĐŗĐĩС} other {ĐĐĩдиаĐŊŅ ŅиСĐŗĐĩŅ иŅĐĩĐŋ йиĐģĐŗĐĩĐģĶĐŗĐĩС}}",
- "compose_form.sensitive.marked": "{count, plural, one {ĐĸĐ°ŅŅŅŅ ŅиСĐŗĐĩŅ диĐŋ ŅСŅĐģĐŗĐ°ĐŊ} other {ĐĸĐ°ŅŅŅŅ ŅиСĐŗĐĩŅ диĐŋ ŅСŅĐģĐŗĐ°ĐŊ}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ĐĐĩдиа ŅиСĐŗĐĩŅ ĐąŅĐģĐ°ŅĐ°Đē йиĐģĐŗĐĩĐģĐĩ ŅŌ¯ĐŗĐĩĐģ} other {ĐĐĩдиа ŅиСĐŗĐĩŅ ĐąŅĐģĐ°ŅĐ°Đē йиĐģĐŗĐĩĐģĐĩ ŅŌ¯ĐŗĐĩĐģ}}",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
- "compose_form.spoiler_placeholder": "ĐиŅĶŅŌ¯ĐĩĐŗĐĩСĐŊĐĩ ĐŧĐžĐŊĐ´Đ° ŅСŅĐŗŅС",
"confirmation_modal.cancel": "ĐĐ°Ņ ŅĐ°ŅŅŅ",
"confirmations.block.block_and_report": "ĐĐģĐžĐēĐģĐ°Ņ ŌģĶĐŧ ŅиĐēĐ°ŅŅŅ иŅŌ¯",
"confirmations.block.confirm": "ĐĐģĐžĐēĐģĐ°Ņ",
@@ -323,7 +311,6 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "ĐĨĐžŅŅŅŅĐš иŅĐēĶ Đ°ĐģŅĐģĐ°Ņ",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "ĐŅĐžŅиĐģŅĐŊŅ Ō¯ĐˇĐŗĶŅŅŌ¯",
"navigation_bar.explore": "ĐŌ¯ĐˇĶŅŌ¯",
"navigation_bar.lists": "ĐŅĐĩĐŧĐģĐĩĐēĐģĶŅ",
"navigation_bar.logout": "ЧŅĐŗŅ",
@@ -377,9 +364,6 @@
"poll_button.add_poll": "ĐĄĐžŅĐ°ŅŅŅŅŅĐŊŅ ĶŠŅŅĶŌ¯",
"poll_button.remove_poll": "ĐĄĐžŅĐ°ŅŅŅŅŅĐŊŅ ĐąĐĩŅĐĩŅŌ¯",
"privacy.change": "Adjust status privacy",
- "privacy.direct.short": "Direct",
- "privacy.private.short": "Followers-only",
- "privacy.public.long": "ŌēĶŅĐēĐĩĐŧĐŗĶ Đ°ŅŅĐē",
"privacy.public.short": "ŌēĶŅĐēĐĩĐŧĐŗĶ Đ°ŅŅĐē",
"privacy_policy.last_updated": "ĐĄĐžŌŖĐŗŅ ŅŌŖĐ°ŅŅŅ {date}",
"privacy_policy.title": "ĐĨĐžŅŅŅŅĐšĐģŅĐē ĐĄĶŅŅĶŅĐĩ",
@@ -479,9 +463,7 @@
"units.short.thousand": "{count}Đ",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
- "upload_form.description_missing": "ĐĸĐ°ŅвиŅĐģĐ°ĐŧĐ° ĶŠŅŅĶĐģĐŧĶĐ´Đĩ",
"upload_form.edit": "ŌŽĐˇĐŗĶŅŅŌ¯",
- "upload_form.undo": "ĐĐĩŅĐĩŅŌ¯",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Đ ĶŅĐĩĐŧĐŗĶ Đ°ĐŊĐ°ĐģиС ŅŅĐ°ŅâĻ",
"upload_modal.apply": "ĐŅĐģĐģĐ°ĐŊ",
diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json
index 6bb5ba0eb..9dc3b5c1f 100644
--- a/app/javascript/mastodon/locales/ug.json
+++ b/app/javascript/mastodon/locales/ug.json
@@ -76,8 +76,6 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "Adjust status privacy",
- "privacy.direct.short": "Direct",
- "privacy.private.short": "Followers-only",
"report.placeholder": "Type or paste additional comments",
"report.submit": "Submit report",
"report.target": "Report {target}",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 58a14c0ed..38e5f9cfb 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "ĐĐĩĐŧĐ°Ņ Đ´ĐžĐŋиŅŅв",
"account.featured_tags.title": "{name} видŅĐģŅŅ Ņ
ĐĩŅŅĐĩŌи",
"account.follow": "ĐŅĐ´ĐŋиŅĐ°ŅиŅŅ",
+ "account.follow_back": "ĐŅĐ´ĐŋиŅĐ°ŅиŅŅ вСаŅĐŧĐŊĐž",
"account.followers": "ĐŅĐ´ĐŋиŅĐŊиĐēи",
"account.followers.empty": "ĐŅŅ
ŅĐž ŅĐĩ ĐŊĐĩ ĐŋŅĐ´ĐŋиŅĐ°ĐŊиК ĐŊĐ° ŅŅĐžĐŗĐž ĐēĐžŅиŅŅŅваŅĐ°.",
"account.followers_counter": "{count, plural, one {{counter} ĐŋŅĐ´ĐŋиŅĐŊиĐē} few {{counter} ĐŋŅĐ´ĐŋиŅĐŊиĐēи} many {{counter} ĐŋŅĐ´ĐŋиŅĐŊиĐēŅв} other {{counter} ĐŋŅĐ´ĐŋиŅĐŊиĐēи}}",
"account.following": "Đи ŅŅĐĩĐļиŅĐĩ",
"account.following_counter": "{count, plural, one {{counter} ĐŋŅĐ´ĐŋиŅĐēĐ°} few {{counter} ĐŋŅĐ´ĐŋиŅĐēи} many {{counter} ĐŋŅĐ´ĐŋиŅĐžĐē} other {{counter} ĐŋŅĐ´ĐŋиŅĐēи}}",
"account.follows.empty": "ĐĻĐĩĐš ĐēĐžŅиŅŅŅваŅ ŅĐĩ ĐŊŅ ĐŊĐ° ĐēĐžĐŗĐž ĐŊĐĩ ĐŋŅĐ´ĐŋиŅавŅŅ.",
- "account.follows_you": "ĐŅĐ´ĐŋиŅŅŅŅŅŅŅ ĐŊĐ° ваŅ",
"account.go_to_profile": "ĐĐĩŅĐĩĐšŅи Đ´Đž ĐŋŅĐžŅŅĐģŅ",
"account.hide_reblogs": "ĐĄŅ
ОваŅи ĐŋĐžŅиŅĐĩĐŊĐŊŅ вŅĐ´ @{name}",
"account.in_memoriam": "ĐĐ°Đŧ'ŅŅĐŊиĐē.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ĐĐĩ ŅĐŋОвŅŅĐ°Ņи",
"account.mute_short": "ĐĐŗĐŊĐžŅŅваŅи",
"account.muted": "ĐŅиŅ
ОвŅŅŅŅŅŅ",
+ "account.mutual": "ĐСаŅĐŧĐŊĐž",
"account.no_bio": "ĐĐĩĐŧĐ°Ņ ĐžĐŋиŅŅ.",
"account.open_original_page": "ĐŅĐ´ĐēŅиŅи ĐžŅиĐŗŅĐŊĐ°ĐģŅĐŊŅ ŅŅĐžŅŅĐŊĐēŅ",
"account.posts": "ĐĐžĐŋиŅи",
@@ -88,7 +89,6 @@
"announcement.announcement": "ĐĐŗĐžĐģĐžŅĐĩĐŊĐŊŅ",
"attachments_list.unprocessed": "(ĐŊĐĩ ОйŅОйĐģĐĩĐŊĐž)",
"audio.hide": "ĐĄŅ
ОваŅи Đ°ŅĐ´ŅĐž",
- "autosuggest_hashtag.per_week": "{count} ĐŊĐ° ŅиĐļĐ´ĐĩĐŊŅ",
"boost_modal.combo": "Đи ĐŧĐžĐļĐĩŅĐĩ ĐŊĐ°ŅиŅĐŊŅŅи {combo}, ŅОйи ĐŋŅĐžĐŋŅŅŅиŅи ŅĐĩ ĐŊĐ°ŅŅŅĐŋĐŊĐžĐŗĐž ŅаСŅ",
"bundle_column_error.copy_stacktrace": "ĐĐžĐŋŅŅваŅи СвŅŅ ĐŋŅĐž ĐŋĐžĐŧиĐģĐēŅ",
"bundle_column_error.error.body": "ĐĐĩĐŧĐžĐļĐģивО ĐŋĐžĐēаСаŅи СаĐŋиŅĐ°ĐŊŅ ŅŅĐžŅŅĐŊĐēŅ. ĐĻĐĩ ĐŧĐžĐļĐĩ ĐąŅŅи ŅĐŋŅиŅиĐŊĐĩĐŊĐž ĐŋĐžĐŧиĐģĐēĐžŅ Ņ ĐŊĐ°ŅĐžĐŧŅ ĐēОдŅ, айО ŅĐĩŅĐĩС ĐŋŅОйĐģĐĩĐŧŅ ŅŅĐŧŅŅĐŊĐžŅŅŅ С ĐąŅĐ°ŅСĐĩŅĐžĐŧ.",
@@ -145,22 +145,13 @@
"compose_form.lock_disclaimer": "ĐĐ°Ņ ОйĐģŅĐēОвиК СаĐŋиŅ ĐŊĐĩ {locked}. ĐŅĐ´Ņ-ŅĐēиК ĐēĐžŅиŅŅŅваŅ ĐŧĐžĐļĐĩ ĐŋŅĐ´ĐŋиŅĐ°ŅиŅŅ ĐŊĐ° ваŅ ŅĐ° ĐŋĐĩŅĐĩĐŗĐģŅĐ´Đ°Ņи ваŅŅ Đ´ĐžĐŋиŅи Đ´ĐģŅ ĐŋŅĐ´ĐŋиŅĐŊиĐēŅв.",
"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": "ĐидаĐģиŅи ŅĐĩĐš ваŅŅĐ°ĐŊŅ",
"compose_form.poll.switch_to_multiple": "ĐОСвОĐģиŅи вийŅŅ Đ´ĐĩĐēŅĐģŅĐēĐžŅ
вŅĐ´ĐŋОвŅĐ´ĐĩĐš",
"compose_form.poll.switch_to_single": "ĐĐĩŅĐĩĐŧĐēĐŊŅŅи Ņ ŅĐĩĐļиĐŧ вийОŅŅ ОдĐŊŅŅŅ вŅĐ´ĐŋОвŅĐ´Ņ",
- "compose_form.publish": "ĐĐŋŅĐąĐģŅĐēŅваŅи",
"compose_form.publish_form": "ĐОвиК Đ´ĐžĐŋиŅ",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ĐĐąĐĩŅĐĩĐŗŅи СĐŧŅĐŊи",
- "compose_form.sensitive.hide": "{count, plural, one {ĐОСĐŊĐ°ŅиŅи ĐŧĐĩĐ´ŅĐ° Đ´ĐĩĐģŅĐēĐ°ŅĐŊиĐŧ} other {ĐОСĐŊĐ°ŅиŅи ĐŧĐĩĐ´ŅĐ° Đ´ĐĩĐģŅĐēĐ°ŅĐŊиĐŧи}}",
- "compose_form.sensitive.marked": "{count, plural, one {ĐĐĩĐ´ŅĐ° ĐŋОСĐŊĐ°ŅĐĩĐŊĐĩ Đ´ĐĩĐģŅĐēĐ°ŅĐŊиĐŧ} other {ĐĐĩĐ´ŅĐ° ĐŋОСĐŊĐ°ŅĐĩĐŊŅ Đ´ĐĩĐģŅĐēĐ°ŅĐŊиĐŧи}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {ĐĐĩĐ´ŅĐ° ĐŊĐĩ ĐŋОСĐŊĐ°ŅĐĩĐŊĐĩ Đ´ĐĩĐģŅĐēĐ°ŅĐŊиĐŧ} other {ĐĐĩĐ´ŅĐ° ĐŊĐĩ ĐŋОСĐŊĐ°ŅĐĩĐŊŅ Đ´ĐĩĐģŅĐēĐ°ŅĐŊиĐŧи}}",
"compose_form.spoiler.marked": "ĐŅийŅĐ°Ņи ĐŋĐžĐŋĐĩŅĐĩĐ´ĐļĐĩĐŊĐŊŅ ĐŋŅĐž вĐŧŅŅŅ",
"compose_form.spoiler.unmarked": "ĐОдаŅи ĐŋĐžĐŋĐĩŅĐĩĐ´ĐļĐĩĐŊĐŊŅ ĐŋŅĐž вĐŧŅŅŅ",
- "compose_form.spoiler_placeholder": "ĐĐ°ĐŋиŅŅŅŅ ŅвОŅ ĐŋĐžĐŋĐĩŅĐĩĐ´ĐļĐĩĐŊĐŊŅ ŅŅŅ",
"confirmation_modal.cancel": "ĐĄĐēĐ°ŅŅваŅи",
"confirmations.block.block_and_report": "ĐĐ°ĐąĐģĐžĐēŅваŅи ŅĐ° ĐŋĐžŅĐēĐ°ŅĐļиŅиŅŅ",
"confirmations.block.confirm": "ĐĐ°ĐąĐģĐžĐēŅваŅи",
@@ -407,7 +398,6 @@
"navigation_bar.direct": "ĐŅОйиŅŅŅ СĐŗĐ°Đ´Đēи",
"navigation_bar.discover": "ĐĐžŅĐģŅдиŅи",
"navigation_bar.domain_blocks": "ĐĐ°ĐąĐģĐžĐēОваĐŊŅ Đ´ĐžĐŧĐĩĐŊи",
- "navigation_bar.edit_profile": "Đ ĐĩĐ´Đ°ĐŗŅваŅи ĐŋŅĐžŅŅĐģŅ",
"navigation_bar.explore": "ĐĐŗĐģŅĐ´",
"navigation_bar.favourites": "ĐŖĐŋОдОйаĐŊĐĩ",
"navigation_bar.filters": "ĐŅиŅ
ОваĐŊŅ ŅĐģОва",
@@ -525,14 +515,7 @@
"poll_button.add_poll": "ĐОдаŅи ĐžĐŋиŅŅваĐŊĐŊŅ",
"poll_button.remove_poll": "ĐидаĐģиŅи ĐžĐŋиŅŅваĐŊĐŊŅ",
"privacy.change": "ĐĐŧŅĐŊиŅи видиĐŧŅŅŅŅ Đ´ĐžĐŋиŅŅ",
- "privacy.direct.long": "ĐĐžĐēаСаŅи ŅŅĐģŅĐēи СĐŗĐ°Đ´Đ°ĐŊиĐŧ ĐēĐžŅиŅŅŅваŅĐ°Đŧ",
- "privacy.direct.short": "ĐиŅĐĩ СĐŗĐ°Đ´Đ°ĐŊŅ ĐģŅди",
- "privacy.private.long": "ĐĐžĐēаСаŅи ŅŅĐģŅĐēи ĐŋŅĐ´ĐŋиŅĐŊиĐēĐ°Đŧ",
- "privacy.private.short": "ĐĸŅĐģŅĐēи Đ´ĐģŅ ĐŋŅĐ´ĐŋиŅĐŊиĐēŅв",
- "privacy.public.long": "ĐидиĐŧиК Đ´ĐģŅ вŅŅŅ
",
"privacy.public.short": "ĐŅĐąĐģŅŅĐŊĐž",
- "privacy.unlisted.long": "ĐидиĐŧиК Đ´ĐģŅ вŅŅŅ
, Đ°ĐģĐĩ ĐŊĐĩ ŅĐĩŅĐĩС ĐŧĐžĐļĐģивОŅŅŅ виŅвĐģĐĩĐŊĐŊŅ",
- "privacy.unlisted.short": "ĐŅиŅ
ОваĐŊиК",
"privacy_policy.last_updated": "ĐĐŊОвĐģĐĩĐŊĐž {date}",
"privacy_policy.title": "ĐĐžĐģŅŅиĐēĐ° ĐŋŅиваŅĐŊĐžŅŅŅ",
"recommended": "Đ ĐĩĐēĐžĐŧĐĩĐŊдОваĐŊĐž",
@@ -714,10 +697,8 @@
"upload_error.poll": "ĐĐĩ ĐŧĐžĐļĐŊĐ° СаваĐŊŅĐ°ĐļŅваŅи ŅĐ°ĐšĐģи Đ´Đž ĐžĐŋиŅŅваĐŊŅ.",
"upload_form.audio_description": "ĐĐŋиŅŅŅŅ Đ´ĐģŅ ĐģŅĐ´ĐĩĐš ŅС вадаĐŧи ŅĐģŅŅ
Ņ",
"upload_form.description": "ĐĐŋиŅŅŅŅ Đ´ĐģŅ ĐģŅĐ´ĐĩĐš С вадаĐŧи СОŅŅ",
- "upload_form.description_missing": "ĐĐĩĐŧĐ°Ņ ĐžĐŋиŅŅ",
"upload_form.edit": "ĐĐŧŅĐŊиŅи",
"upload_form.thumbnail": "ĐĐŧŅĐŊиŅи ĐŧŅĐŊŅĐ°ŅŅŅŅ",
- "upload_form.undo": "ĐидаĐģиŅи",
"upload_form.video_description": "ĐĐŋиŅŅŅŅ Đ´ĐģŅ ĐģŅĐ´ĐĩĐš ŅС вадаĐŧи ŅĐģŅŅ
Ņ айО СОŅŅ",
"upload_modal.analyzing_picture": "ĐĐŊĐ°ĐģŅСŅŅĐŧĐž СОйŅĐ°ĐļĐĩĐŊĐŊŅâĻ",
"upload_modal.apply": "ĐĐ°ŅŅĐžŅŅваŅи",
diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json
index 8fc3aff03..fee2cc3a9 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -32,7 +32,6 @@
"account.following": "ŲاŲŲ ÚŠØą ØąÛÛ ÛÛÚē",
"account.following_counter": "{count, plural, one {{counter} ŲžÛØąŲÛ ÚŠØą ØąÛÛ ÛÛÚē} other {{counter} ŲžÛØąŲÛ ÚŠØą ØąÛÛ ÛÛÚē}}",
"account.follows.empty": "\"ÛÛ ØĩØ§ØąŲ ÛŲŲØ˛ ÚŠØŗÛ ÚŠÛ ŲžÛØąŲÛ ŲÛÛÚē ÚŠØąØĒا ÛÛ\".",
- "account.follows_you": "ØĸŲž ڊا ŲžÛØąŲÚŠØ§Øą ÛÛ",
"account.go_to_profile": "ŲžØąŲŲاØĻŲ ŲžØą ØŦاØĻÛÚē",
"account.hide_reblogs": "@{name} ØŗÛ ŲØąŲØē ÚÚžŲžØ§ØĻÛÚē",
"account.in_memoriam": "ÛØ§Ø¯Ú¯Ø§Øą Ų
ÛÚēÛ",
@@ -73,7 +72,6 @@
"alert.unexpected.message": "اÛÚŠ ØēÛØą Ų
ØĒŲŲØš ØŗÛŲ ÛŲا ÛÛ.",
"alert.unexpected.title": "ا ØąÛ!",
"announcement.announcement": "اؚŲاŲ",
- "autosuggest_hashtag.per_week": "{count} ŲÛ ÛŲØĒÛ",
"boost_modal.combo": "ØĸØĻÛŲØ¯Û ÛÛ ŲÛ Ø¯ÛÚŠÚžŲÛ ÚŠÛŲØĻÛ ØĸŲž {combo} دبا ØŗÚŠØĒÛ ÛÛÚē",
"bundle_column_error.error.title": "اŲŲØ ŲÛÛÚē!",
"bundle_column_error.network.title": "ŲÛŲš ŲØąÚŠ ÚŠÛ ØŽØąØ§Ø¨Û",
@@ -116,22 +114,12 @@
"compose_form.lock_disclaimer": "ØĸŲž ڊا اڊاؤŲŲš {locked} ŲÛÛÚē ÛÛ. ÚŠŲØĻÛ Ø¨ÚžÛ ØĸŲž ÚŠÛ Ų
ØŽØĩŲØĩ Ø¨ØąØ§ØĻÛ ŲžÛØąŲÚŠØ§Øą ŲšŲŲš دÛÚŠÚžŲÛ ÚŠÛ ØŽØ§ØˇØą ØĸŲž ÚŠÛ ŲžÛØąŲÛ ÚŠØą ØŗÚŠØĒا ÛÛ.",
"compose_form.lock_disclaimer.lock": "Ų
ŲŲŲ",
"compose_form.placeholder": "ØĸŲž ÚŠÛا ØŗŲÚ ØąÛÛ ÛÛÚēØ",
- "compose_form.poll.add_option": "اŲØĒ؎اب شاŲ
Ų ÚŠØąÛÚē",
"compose_form.poll.duration": "Ų
دØĒŲ ØąØ§ØĻÛ",
- "compose_form.poll.option_placeholder": "اŲØĒ؎اب {number}",
- "compose_form.poll.remove_option": "ÛÛ Ø§ŲØĒ؎اب ÛŲšØ§ دÛÚē",
"compose_form.poll.switch_to_multiple": "Ų
ØĒؚدد اŲØĒ؎اب ÚŠÛ Ø§ØŦØ§Ø˛ØĒ دÛŲÛ ÚŠÛ ŲÛÛ ŲžŲŲ ØĒبدÛŲ ÚŠØąÛÚē",
"compose_form.poll.switch_to_single": "ÚŠØŗÛ Ø§ÛÚŠ اŲØĒ؎اب ÚŠÛ ŲÛÛ ŲžŲŲ ØĒبدÛŲ ÚŠØąÛÚē",
- "compose_form.publish": "اشاؚØĒ ÚŠØąØ¯Û",
"compose_form.publish_form": "اشاؚØĒ ÚŠØąÛÚē",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "ØĒبدÛŲÛاÚē Ų
ØŲŲظ ÚŠØąÛÚē",
- "compose_form.sensitive.hide": "ŲØŗاØĻŲ ÚŠŲ ØØŗاØŗ ŲشاŲØ¯Û ÚŠØąÛÚē",
- "compose_form.sensitive.marked": "ŲØŗاØĻŲ ØØŗاØŗ ŲشاŲØ¯Û ÛÛ",
- "compose_form.sensitive.unmarked": "{count, plural, one {Ų
ÛÚÛا ÚŠŲ ØØŗاØŗ ÚŠÛ ØˇŲØą ŲžØą ŲشاŲ Ø˛Ø¯ ŲÛÛÚē ÚŠÛا Ú¯Ûا ÛÛ} other {Ų
ÛÚÛا ÚŠŲ ØØŗاØŗ ÚŠÛ ØˇŲØą ŲžØą ŲشاŲ Ø˛Ø¯ ŲÛÛÚē ÚŠÛا Ú¯Ûا ÛÛ}}",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
- "compose_form.spoiler_placeholder": "اŲžŲÛ ŲØ§ØąŲŲÚ¯ ÛÛاÚē ŲÚŠÚžÛÚē",
"confirmation_modal.cancel": "Ų
ŲØŗŲØŽ",
"confirmations.block.block_and_report": "شڊاÛØĒ ÚŠØąÛÚē اŲØą بŲاڊ ÚŠØąÛÚē",
"confirmations.block.confirm": "بŲاڊ",
@@ -243,7 +231,6 @@
"navigation_bar.compose": "Compose new toot",
"navigation_bar.discover": "Ø¯ØąÛاŲØĒ ÚŠØąÛÚē",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "ŲžØąŲŲاØĻŲ Ų
ÛÚē ØĒØąŲ
ÛŲ
ÚŠØąÛÚē",
"navigation_bar.filters": "؎اŲ
ŲØ´ ÚŠØąØ¯Û Ø§ŲŲاظ",
"navigation_bar.follow_requests": "ŲžÛØąŲÛ ÚŠÛ Ø¯ØąØŽŲاØŗØĒÛÚē",
"navigation_bar.follows_and_followers": "ŲžÛØąŲÛ ÚŠØąØ¯Û Ø§ŲØą ŲžÛØąŲÚŠØ§Øą",
@@ -282,10 +269,6 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "Adjust status privacy",
- "privacy.direct.long": "Post to mentioned users only",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
- "privacy.private.short": "Followers-only",
"report.placeholder": "Type or paste additional comments",
"report.submit": "Submit report",
"report.target": "Report {target}",
diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json
index 026cc115c..8f231c8c7 100644
--- a/app/javascript/mastodon/locales/uz.json
+++ b/app/javascript/mastodon/locales/uz.json
@@ -35,7 +35,6 @@
"account.following": "Kuzatish",
"account.following_counter": "{count, plural, one {{counter} ga Muxlis} other {{counter} larga muxlis}}",
"account.follows.empty": "Bu foydalanuvchi hali hech kimni kuzatmagan.",
- "account.follows_you": "Sizga obuna",
"account.go_to_profile": "Profilga o'tish",
"account.hide_reblogs": "@{name} dan boostlarni yashirish",
"account.joined_short": "Qo'shilgan",
@@ -76,7 +75,6 @@
"announcement.announcement": "E'lonlar",
"attachments_list.unprocessed": "(qayta ishlanmagan)",
"audio.hide": "Audioni yashirish",
- "autosuggest_hashtag.per_week": "{count} haftasiga",
"boost_modal.combo": "Keyingi safar buni oĘģtkazib yuborish uchun {combo} tugmasini bosishingiz mumkin",
"bundle_column_error.copy_stacktrace": "Xato hisobotini nusxalash",
"bundle_column_error.error.body": "SoĘģralgan sahifani koĘģrsatib boĘģlmadi. Buning sababi bizning kodimizdagi xato yoki brauzer mosligi muammosi bo'lishi mumkin.",
@@ -127,22 +125,12 @@
"compose_form.lock_disclaimer": "Hisobingiz {locked}. Faqat obunachilarga moĘģljallangan postlaringizni koĘģrish uchun har kim sizni kuzatishi mumkin.",
"compose_form.lock_disclaimer.lock": "yopilgan",
"compose_form.placeholder": "Xalolizda nima?",
- "compose_form.poll.add_option": "Tanlov qo'shing",
"compose_form.poll.duration": "Soârov muddati",
- "compose_form.poll.option_placeholder": "Tanlov {number}",
- "compose_form.poll.remove_option": "Olib tashlash",
"compose_form.poll.switch_to_multiple": "Bir nechta tanlovga ruxsat berish uchun so'rovnomani o'zgartirish",
"compose_form.poll.switch_to_single": "Yagona tanlovga ruxsat berish uchun soârovnomani oâzgartirish",
- "compose_form.publish": "Nashr qilish",
"compose_form.publish_form": "Nashr qilish",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Oâzgarishlarni saqlash",
- "compose_form.sensitive.hide": "{count, plural, one {Mediani sezgir deb belgilang} other {Medialarni sezgir deb belgilang}}",
- "compose_form.sensitive.marked": "{count, plural, one {Mediani sezgir deb belgilang} other {Medialarni sezgir deb belgilang}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Mediani sezgir deb belgilang} other {Medialarni sezgir deb belgilang}}",
"compose_form.spoiler.marked": "Kontent ogohlantirishini olib tashlang",
"compose_form.spoiler.unmarked": "Kontent haqida ogohlantirish qo'shing",
- "compose_form.spoiler_placeholder": "Sharhingizni bu erga yozing",
"confirmation_modal.cancel": "Bekor qilish",
"confirmations.block.block_and_report": "Bloklash va hisobot berish",
"confirmations.block.confirm": "Bloklash",
@@ -337,7 +325,6 @@
"navigation_bar.compose": "Yangi post yozing",
"navigation_bar.discover": "Kashf qilish",
"navigation_bar.domain_blocks": "Bloklangan domenlar",
- "navigation_bar.edit_profile": "Profilni tahrirlash",
"navigation_bar.explore": "Oârganish",
"navigation_bar.filters": "E'tiborga olinmagan so'zlar",
"navigation_bar.followed_tags": "Kuzatilgan hashtaglar",
@@ -369,8 +356,6 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"privacy.change": "Adjust status privacy",
- "privacy.direct.short": "Direct",
- "privacy.private.short": "Followers-only",
"report.placeholder": "Type or paste additional comments",
"report.submit": "Submit report",
"report.target": "Report {target}",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 9ac90b407..73a11b957 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "ChÆ°a cÃŗ tÃēt",
"account.featured_tags.title": "Hashtag cáģ§a {name}",
"account.follow": "Theo dÃĩi",
+ "account.follow_back": "Theo dÃĩi láēĄi",
"account.followers": "NgÆ°áģi theo dÃĩi",
"account.followers.empty": "ChÆ°a cÃŗ ngÆ°áģi theo dÃĩi nà o.",
"account.followers_counter": "{count, plural, one {{counter} NgÆ°áģi theo dÃĩi} other {{counter} NgÆ°áģi theo dÃĩi}}",
"account.following": "Äang theo dÃĩi",
"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.go_to_profile": "Xem háģ sÆĄ",
"account.hide_reblogs": "áē¨n tÃēt @{name} ÄÄng láēĄi",
"account.in_memoriam": "TÆ°áģng Niáģm.",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "áē¨n thông bÃĄo",
"account.mute_short": "áē¨n",
"account.muted": "ÄÃŖ áēŠn",
+ "account.mutual": "Äang theo dÃĩi nhau",
"account.no_bio": "ChÆ°a cÃŗ miÃĒu táēŖ.",
"account.open_original_page": "Máģ trang gáģc",
"account.posts": "TÃēt",
@@ -88,7 +89,6 @@
"announcement.announcement": "CÃŗ gÃŦ máģi?",
"attachments_list.unprocessed": "(chÆ°a xáģ lÃ)",
"audio.hide": "áē¨n Ãĸm thanh",
- "autosuggest_hashtag.per_week": "{count} máģi tuáē§n",
"boost_modal.combo": "NháēĨn {combo} Äáģ báģ qua bÆ°áģc nà y",
"bundle_column_error.copy_stacktrace": "Sao chÊp bÃĄo láģi",
"bundle_column_error.error.body": "Không tháģ hiáģn trang nà y. ÄÃĸy cÃŗ tháģ là máģt láģi trong mÃŖ láēp trÃŦnh cáģ§a chÃēng tôi, hoáēˇc là váēĨn Äáģ tÆ°ÆĄng thÃch cáģ§a trÃŦnh duyáģt.",
@@ -145,22 +145,12 @@
"compose_form.lock_disclaimer": "Tà i khoáēŖn cáģ§a báēĄn không {locked}. BáēĨt cáģŠ ai cÅŠng cÃŗ tháģ theo dÃĩi và xem tÃēt riÃĒng tÆ° cáģ§a báēĄn.",
"compose_form.lock_disclaimer.lock": "khÃŗa",
"compose_form.placeholder": "BáēĄn Äang nghÄŠ gÃŦ?",
- "compose_form.poll.add_option": "ThÃĒm láģąa cháģn",
"compose_form.poll.duration": "Háēŋt háēĄn và o",
- "compose_form.poll.option_placeholder": "Láģąa cháģn {number}",
- "compose_form.poll.remove_option": "XÃŗa láģąa cháģn nà y",
"compose_form.poll.switch_to_multiple": "CÃŗ tháģ cháģn nhiáģu láģąa cháģn",
"compose_form.poll.switch_to_single": "Cháģ cho phÊp cháģn duy nháēĨt máģt láģąa cháģn",
- "compose_form.publish": "ÄÄng",
"compose_form.publish_form": "ÄÄng",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "LÆ°u thay Äáģi",
- "compose_form.sensitive.hide": "{count, plural, other {ÄÃĄnh dáēĨu náģi dung nháēĄy cáēŖm}}",
- "compose_form.sensitive.marked": "{count, plural, other {Náģi dung nà y nháēĄy cáēŖm}}",
- "compose_form.sensitive.unmarked": "{count, plural, other {Náģi dung nà y bÃŦnh thÆ°áģng}}",
"compose_form.spoiler.marked": "Háģ§y náģi dung áēŠn",
"compose_form.spoiler.unmarked": "TáēĄo náģi dung áēŠn",
- "compose_form.spoiler_placeholder": "Láģi dáēĢn cho náģi dung áēŠn",
"confirmation_modal.cancel": "Háģ§y báģ",
"confirmations.block.block_and_report": "Cháēˇn & BÃĄo cÃĄo",
"confirmations.block.confirm": "Cháēˇn",
@@ -239,7 +229,7 @@
"empty_column.follow_requests": "BáēĄn chÆ°a cÃŗ yÃĒu cáē§u theo dÃĩi nà o.",
"empty_column.followed_tags": "BáēĄn chÆ°a theo dÃĩi hashtag nà o. Khi báēĄn theo dÃĩi, chÃēng sáēŊ hiáģn lÃĒn áģ ÄÃĸy.",
"empty_column.hashtag": "ChÆ°a cÃŗ tÃēt nà o dÚng hashtag nà y.",
- "empty_column.home": "Trang chÃnh cáģ§a báēĄn Äang tráģng! HÃŖy theo dÃĩi nhiáģu ngÆ°áģi hÆĄn Äáģ láēĨp Äáē§y.",
+ "empty_column.home": "Trang cháģ§ cáģ§a báēĄn Äang tráģng! HÃŖy theo dÃĩi nhiáģu ngÆ°áģi hÆĄn Äáģ láēĨp Äáē§y.",
"empty_column.list": "ChÆ°a cÃŗ tÃēt. Khi nháģ¯ng ngÆ°áģi trong danh sÃĄch nà y ÄÄng tÃēt máģi, chÃēng sáēŊ xuáēĨt hiáģn áģ ÄÃĸy.",
"empty_column.lists": "BáēĄn chÆ°a táēĄo danh sÃĄch nà o.",
"empty_column.mutes": "BáēĄn chÆ°a áēŠn báēĨt káģŗ ai.",
@@ -335,38 +325,38 @@
"intervals.full.days": "{number, plural, other {# ngà y}}",
"intervals.full.hours": "{number, plural, other {# giáģ}}",
"intervals.full.minutes": "{number, plural, other {# phÃēt}}",
- "keyboard_shortcuts.back": "tráģ láēĄi",
+ "keyboard_shortcuts.back": "quay láēĄi",
"keyboard_shortcuts.blocked": "máģ danh sÃĄch ngÆ°áģi ÄÃŖ cháēˇn",
"keyboard_shortcuts.boost": "ÄÄng láēĄi",
- "keyboard_shortcuts.column": "máģ cÃĄc máģĨc",
+ "keyboard_shortcuts.column": "máģ cÃĄc cáģt",
"keyboard_shortcuts.compose": "máģ khung soáēĄn tÃēt",
"keyboard_shortcuts.description": "Mô táēŖ",
- "keyboard_shortcuts.direct": "máģ máģĨc nháē¯n riÃĒng",
+ "keyboard_shortcuts.direct": "máģ nháē¯n riÃĒng",
"keyboard_shortcuts.down": "di chuyáģn xuáģng dÆ°áģi danh sÃĄch",
- "keyboard_shortcuts.enter": "viáēŋt tÃēt máģi",
+ "keyboard_shortcuts.enter": "máģ tÃēt",
"keyboard_shortcuts.favourite": "thÃch tÃēt",
"keyboard_shortcuts.favourites": "máģ lÆ°áģŖt thÃch",
"keyboard_shortcuts.federated": "máģ máēĄng liÃĒn háģŖp",
"keyboard_shortcuts.heading": "Danh sÃĄch phÃm táē¯t",
- "keyboard_shortcuts.home": "máģ trang chÃnh",
+ "keyboard_shortcuts.home": "máģ trang cháģ§",
"keyboard_shortcuts.hotkey": "PhÃm táē¯t",
"keyboard_shortcuts.legend": "hiáģn báēŖng hÆ°áģng dáēĢn nà y",
"keyboard_shortcuts.local": "máģ mÃĄy cháģ§ cáģ§a báēĄn",
"keyboard_shortcuts.mention": "nháē¯c Äáēŋn ai ÄÃŗ",
"keyboard_shortcuts.muted": "máģ danh sÃĄch ngÆ°áģi ÄÃŖ áēŠn",
"keyboard_shortcuts.my_profile": "máģ háģ sÆĄ cáģ§a báēĄn",
- "keyboard_shortcuts.notifications": "máģ máģĨc thông bÃĄo",
+ "keyboard_shortcuts.notifications": "máģ thông bÃĄo",
"keyboard_shortcuts.open_media": "máģ áēŖnh hoáēˇc video",
- "keyboard_shortcuts.pinned": "máģ danh sÃĄch tÃēt ghim",
- "keyboard_shortcuts.profile": "máģ háģ sÆĄ cáģ§a ngÆ°áģi viáēŋt tÃēt",
+ "keyboard_shortcuts.pinned": "Open pinned posts list",
+ "keyboard_shortcuts.profile": "máģ trang cáģ§a ngÆ°áģi ÄÄng tÃēt",
"keyboard_shortcuts.reply": "tráēŖ láģi",
"keyboard_shortcuts.requests": "máģ danh sÃĄch yÃĒu cáē§u theo dÃĩi",
"keyboard_shortcuts.search": "máģ tÃŦm kiáēŋm",
"keyboard_shortcuts.spoilers": "hiáģn/áēŠn náģi dung nháēĄy cáēŖm",
- "keyboard_shortcuts.start": "máģ máģĨc \"DÃ nh cho ngÆ°áģi máģi\"",
- "keyboard_shortcuts.toggle_hidden": "áēŠn/hiáģn vÄn báēŖn bÃĒn dÆ°áģi spoil",
+ "keyboard_shortcuts.start": "máģ \"DÃ nh cho ngÆ°áģi máģi\"",
+ "keyboard_shortcuts.toggle_hidden": "áēŠn/hiáģn náģi dung áēŠn",
"keyboard_shortcuts.toggle_sensitivity": "áēŠn/hiáģn áēŖnh hoáēˇc video",
- "keyboard_shortcuts.toot": "viáēŋt tÃēt máģi",
+ "keyboard_shortcuts.toot": "soáēĄn tÃēt máģi",
"keyboard_shortcuts.unfocus": "ÄÆ°a con tráģ ra kháģi ô soáēĄn tháēŖo hoáēˇc ô tÃŦm kiáēŋm",
"keyboard_shortcuts.up": "di chuyáģn lÃĒn trÃĒn danh sÃĄch",
"lightbox.close": "ÄÃŗng",
@@ -403,11 +393,10 @@
"navigation_bar.blocks": "NgÆ°áģi ÄÃŖ cháēˇn",
"navigation_bar.bookmarks": "ÄÃŖ lÆ°u",
"navigation_bar.community_timeline": "Cáģng Äáģng",
- "navigation_bar.compose": "Viáēŋt tÃēt máģi",
+ "navigation_bar.compose": "SoáēĄn tÃēt máģi",
"navigation_bar.direct": "Nháē¯n riÃĒng",
"navigation_bar.discover": "KhÃĄm phÃĄ",
"navigation_bar.domain_blocks": "MÃĄy cháģ§ ÄÃŖ áēŠn",
- "navigation_bar.edit_profile": "Sáģa háģ sÆĄ",
"navigation_bar.explore": "Xu hÆ°áģng",
"navigation_bar.favourites": "LÆ°áģŖt thÃch",
"navigation_bar.filters": "Báģ láģc táģĢ ngáģ¯",
@@ -435,7 +424,7 @@
"notification.poll": "Cuáģc bÃŦnh cháģn ÄÃŖ káēŋt thÃēc",
"notification.reblog": "{name} ÄÄng láēĄi tÃēt cáģ§a báēĄn",
"notification.status": "{name} ÄÄng tÃēt máģi",
- "notification.update": "{name} ÄÃŖ viáēŋt láēĄi máģt tÃēt",
+ "notification.update": "{name} ÄÃŖ sáģa tÃēt",
"notifications.clear": "XÃŗa háēŋt thông bÃĄo",
"notifications.clear_confirmation": "BáēĄn tháēt sáģą muáģn xÃŗa vÄŠnh viáģ
n táēĨt cáēŖ thông bÃĄo cáģ§a mÃŦnh?",
"notifications.column_settings.admin.report": "BÃĄo cÃĄo máģi:",
@@ -476,7 +465,7 @@
"onboarding.action.back": "Quay láēĄi",
"onboarding.actions.back": "Quay láēĄi",
"onboarding.actions.go_to_explore": "Xem nháģ¯ng gÃŦ Äang tháģnh hà nh",
- "onboarding.actions.go_to_home": "Äáēŋn trang chÃnh",
+ "onboarding.actions.go_to_home": "Äáēŋn trang cháģ§",
"onboarding.compose.template": "Xin chà o #Mastodon!",
"onboarding.follows.empty": "Không cÃŗ káēŋt quáēŖ cÃŗ tháģ ÄÆ°áģŖc hiáģn tháģ lÃēc nà y. BáēĄn cÃŗ tháģ tháģ sáģ dáģĨng tÃnh nÄng tÃŦm kiáēŋm hoáēˇc duyáģt qua trang khÃĄm phÃĄ Äáģ tÃŦm nháģ¯ng ngÆ°áģi theo dÃĩi hoáēˇc tháģ láēĄi sau.",
"onboarding.follows.lead": "BáēĄn quáēŖn lÃŊ báēŖng tin cáģ§a riÃĒng báēĄn. BáēĄn cà ng theo dÃĩi nhiáģu ngÆ°áģi, nÃŗ sáēŊ cà ng sôi Äáģng và thÃē váģ. Äáģ báē¯t Äáē§u, ÄÃĸy là và i gáģŖi ÃŊ:",
@@ -500,7 +489,7 @@
"onboarding.start.skip": "Muáģn báģ qua luôn?",
"onboarding.start.title": "Xong ráģi báēĄn!",
"onboarding.steps.follow_people.body": "Theo dÃĩi nháģ¯ng ngÆ°áģi thÃē váģ trÃĒn Mastodon.",
- "onboarding.steps.follow_people.title": "CÃĄ nhÃĸn hÃŗa trang chÃnh",
+ "onboarding.steps.follow_people.title": "CÃĄ nhÃĸn hÃŗa trang cháģ§",
"onboarding.steps.publish_status.body": "Chà o cáģng Äáģng báēąng láģi nÃŗi, áēŖnh hoáēˇc video {emoji}",
"onboarding.steps.publish_status.title": "ÄÄng tÃēt Äáē§u tiÃĒn",
"onboarding.steps.setup_profile.body": "TáēĄo sáģą tÆ°ÆĄng tÃĄc báēąng máģt háģ sÆĄ hoà n cháģnh.",
@@ -525,20 +514,13 @@
"poll_button.add_poll": "TáēĄo bÃŦnh cháģn",
"poll_button.remove_poll": "Háģ§y cuáģc bÃŦnh cháģn",
"privacy.change": "Cháģn kiáģu tÃēt",
- "privacy.direct.long": "Cháģ ngÆ°áģi ÄÆ°áģŖc nháē¯c Äáēŋn máģi tháēĨy",
- "privacy.direct.short": "Nháē¯n riÃĒng",
- "privacy.private.long": "DÃ nh riÃĒng cho ngÆ°áģi theo dÃĩi",
- "privacy.private.short": "Cháģ ngÆ°áģi theo dÃĩi",
- "privacy.public.long": "Hiáģn tháģ váģi máģi ngÆ°áģi",
"privacy.public.short": "Công khai",
- "privacy.unlisted.long": "Công khai nhÆ°ng áēŠn trÃĒn báēŖng tin",
- "privacy.unlisted.short": "HáēĄn cháēŋ",
"privacy_policy.last_updated": "Cáēp nháēt láē§n cuáģi {date}",
"privacy_policy.title": "ChÃnh sÃĄch báēŖo máēt",
"recommended": "Äáģ xuáēĨt",
"refresh": "LÃ m máģi",
"regeneration_indicator.label": "Äang táēŖiâĻ",
- "regeneration_indicator.sublabel": "Trang chÃnh cáģ§a báēĄn Äang ÄÆ°áģŖc cáēp nháēt!",
+ "regeneration_indicator.sublabel": "Trang cháģ§ cáģ§a báēĄn Äang ÄÆ°áģŖc cáēp nháēt!",
"relative_time.days": "{number} ngà y",
"relative_time.full.days": "{number, plural, other {# ngà y}}",
"relative_time.full.hours": "{number, plural, other {# giáģ}}",
@@ -590,7 +572,7 @@
"report.thanks.title": "Không muáģn xem tháģŠ nà y?",
"report.thanks.title_actionable": "CáēŖm ÆĄn ÄÃŖ bÃĄo cÃĄo, chÃēng tôi sáēŊ xem xÊt káģš.",
"report.unfollow": "Báģ theo dÃĩi @{name}",
- "report.unfollow_explanation": "BáēĄn Äang theo dÃĩi ngÆ°áģi nà y. Äáģ không tháēĨy tÃēt cáģ§a háģ trÃĒn trang chÃnh náģ¯a, hÃŖy báģ theo dÃĩi.",
+ "report.unfollow_explanation": "BáēĄn Äang theo dÃĩi ngÆ°áģi nà y. Äáģ không tháēĨy tÃēt cáģ§a háģ trÃĒn trang cháģ§ náģ¯a, hÃŖy báģ theo dÃĩi.",
"report_notification.attached_statuses": "{count, plural, other {{count} tÃēt}} ÄÃnh kèm",
"report_notification.categories.legal": "PhÃĄp lÃŊ",
"report_notification.categories.other": "KhÃĄc",
@@ -691,7 +673,7 @@
"subscribed_languages.lead": "Cháģ cÃĄc tÃēt ÄÄng báēąng cÃĄc ngôn ngáģ¯ ÄÃŖ cháģn máģi ÄÆ°áģŖc xuáēĨt hiáģn trÃĒn báēŖng tin cáģ§a báēĄn. Không cháģn gÃŦ cáēŖ Äáģ Äáģc tÃēt ÄÄng báēąng máģi ngôn ngáģ¯.",
"subscribed_languages.save": "LÆ°u thay Äáģi",
"subscribed_languages.target": "Äáģi ngôn ngáģ¯ mong muáģn cho {target}",
- "tabs_bar.home": "Trang chÃnh",
+ "tabs_bar.home": "Trang cháģ§",
"tabs_bar.notifications": "Thông bÃĄo",
"time_remaining.days": "{number, plural, other {# ngà y}}",
"time_remaining.hours": "{number, plural, other {# giáģ}}",
@@ -714,10 +696,8 @@
"upload_error.poll": "Không cho phÊp ÄÃnh kèm táēp tin.",
"upload_form.audio_description": "Mô táēŖ cho ngÆ°áģi máēĨt thÃnh giÃĄc",
"upload_form.description": "Mô táēŖ cho ngÆ°áģi khiáēŋm tháģ",
- "upload_form.description_missing": "ChÆ°a thÃĒm mô táēŖ",
"upload_form.edit": "BiÃĒn táēp",
"upload_form.thumbnail": "Äáģi áēŖnh thumbnail",
- "upload_form.undo": "XÃŗa báģ",
"upload_form.video_description": "Mô táēŖ cho ngÆ°áģi máēĨt tháģ láģąc hoáēˇc không tháģ nghe",
"upload_modal.analyzing_picture": "PhÃĸn tÃch hÃŦnh áēŖnh",
"upload_modal.apply": "Ãp dáģĨng",
diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json
index 5896a25b0..a585838cd 100644
--- a/app/javascript/mastodon/locales/zgh.json
+++ b/app/javascript/mastodon/locales/zgh.json
@@ -12,7 +12,6 @@
"account.edit_profile": "âĩâĩâ´ŧâĩ âĩâ´ŧâĩâĩ",
"account.follow": "â´šâ´ŧâĩ",
"account.followers": "âĩâĩâ´šâ´ŧâ´°âĩâĩ",
- "account.follows_you": "â´šâ´ŧâĩâĩ â´Ŋâĩ¯âĩ",
"account.media": "â´°âĩâĩâĩâĩâĩâĩ",
"account.mute": "âĩĨâĩĨâĩâĩĨâĩ @{name}",
"account.muted": "âĩâĩâĩâĩâĩĨâĩâĩĨâĩ",
@@ -23,7 +22,6 @@
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unfollow": "â´Ŋâ´Ŋâĩ â´°â´šâ´ŧâ´ŧâĩâĩ",
"account_note.placeholder": "Click to add a note",
- "autosuggest_hashtag.per_week": "{count} âĩ âĩâĩâ´°âĩâ´°âĩâĩ",
"bundle_column_error.retry": "â´°âĩâĩ â´°âĩâĩ",
"bundle_modal_error.close": "âĩâ´ŗâĩ",
"bundle_modal_error.retry": "â´°âĩâĩ â´°âĩâĩ",
@@ -45,9 +43,7 @@
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer.lock": "âĩâĩâĩâĩâĩâ´ŗâĩ",
"compose_form.placeholder": "âĩâ´°âĩĸâ´ˇ âĩâĩâĩâ´°âĩ â´ŗ âĩâĩ
â´ŧ âĩâĩâ´Ŋ?",
- "compose_form.poll.option_placeholder": "â´°âĩâĩâĩâ´°âĩĸ {number}",
"compose_form.publish_form": "Publish",
- "compose_form.publish_loud": "{publish}!",
"compose_form.spoiler.marked": "Text is hidden behind warning",
"compose_form.spoiler.unmarked": "Text is not hidden",
"confirmation_modal.cancel": "âĩâĩ",
@@ -130,7 +126,6 @@
"media_gallery.toggle_visible": "â´ŧâ´ŧâĩ {number, plural, one {âĩâ´°âĩĄâĩâ´°â´ŧâĩ} other {âĩâĩâĩĄâĩâ´°â´ŧâĩâĩ}}",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "âĩâĩâ´ŧâĩ âĩâ´ŧâĩâĩ",
"navigation_bar.follow_requests": "âĩâĩâĩâĩâ´°âĩĄâĩâĩ âĩ âĩâ´šâ´ŧâ´°âĩ",
"navigation_bar.lists": "âĩâĩâĩâ´ŗâ´°âĩâĩâĩ",
"navigation_bar.logout": "â´ŧâ´ŧâĩ",
@@ -162,8 +157,6 @@
"poll_button.add_poll": "âĩâĩâĩ âĩĸâ´°âĩ âĩĸâĩâ´ˇâĩŖ",
"poll_button.remove_poll": "âĩâĩâĩâĩâĩĸ âĩâ´ˇâĩŖ",
"privacy.change": "Adjust status privacy",
- "privacy.direct.short": "Direct",
- "privacy.private.short": "Followers-only",
"privacy.public.short": "âĩâ´°â´ŗâ´ˇâĩⴡⴰâĩâĩ",
"regeneration_indicator.label": "â´°âĩŖⴡⴰâĩâĻ",
"relative_time.days": "{number}â´°âĩ",
@@ -212,7 +205,6 @@
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.edit": "âĩâĩâ´ŧâĩ",
- "upload_form.undo": "â´Ŋâ´Ŋâĩ",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.choose_image": "â´ˇâĩâĩ âĩâ´°âĩĄâĩâ´°â´ŧâĩ",
"upload_progress.label": "UploadingâĻ",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 1678fd729..9b55e51b1 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "ææ åæ",
"account.featured_tags.title": "{name} įį˛žéæ įž",
"account.follow": "å
ŗæŗ¨",
+ "account.follow_back": "åå
ŗ",
"account.followers": "å
ŗæŗ¨č
",
"account.followers.empty": "įŽåæ äēēå
ŗæŗ¨æ¤į¨æˇã",
"account.followers_counter": "čĸĢ {counter} äēēå
ŗæŗ¨",
"account.following": "æŖå¨å
ŗæŗ¨",
"account.following_counter": "æŖå¨å
ŗæŗ¨ {counter} äēē",
"account.follows.empty": "æ¤į¨æˇįŽåæĒå
ŗæŗ¨äģģäŊäēēã",
- "account.follows_you": "å
ŗæŗ¨äēäŊ ",
"account.go_to_profile": "ååžä¸ĒäēēčĩæéĄĩ",
"account.hide_reblogs": "éčæĨčĒ @{name} įčŊŦå",
"account.in_memoriam": "č°¨æ¤æŧåŋĩã",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "å
ŗééįĨ",
"account.mute_short": "éč",
"account.muted": "åˇ˛éč",
+ "account.mutual": "äēį˛åĨŊå",
"account.no_bio": "æĒæäžæčŋ°ã",
"account.open_original_page": "æåŧåå§éĄĩéĸ",
"account.posts": "åæ",
@@ -88,7 +89,6 @@
"announcement.announcement": "å
Ŧå",
"attachments_list.unprocessed": "(æĒå¤į)",
"audio.hide": "éčéŗéĸ",
- "autosuggest_hashtag.per_week": "æ¯ææ {count} æĄ",
"boost_modal.combo": "ä¸æŦĄæäŊ {combo} åŗå¯čˇŗčŋæ¤æį¤ē",
"bundle_column_error.copy_stacktrace": "å¤åļéč¯¯æĨå",
"bundle_column_error.error.body": "č¯ˇæąįéĄĩéĸæ æŗæ¸˛æīŧå¯čŊæ¯äģŖį åēį°éč¯¯ææĩč§å¨åå¨å
ŧ厚æ§éŽéĸã",
@@ -147,20 +147,20 @@
"compose_form.placeholder": "æŗåäģäšīŧ",
"compose_form.poll.add_option": "æˇģå é饚",
"compose_form.poll.duration": "æįĨ¨æé",
+ "compose_form.poll.multiple": "å¤é",
"compose_form.poll.option_placeholder": "é饚 {number}",
- "compose_form.poll.remove_option": "į§ģé¤æ¤é饚",
+ "compose_form.poll.remove_option": "å é¤æ¤é饚",
+ "compose_form.poll.single": "åé",
"compose_form.poll.switch_to_multiple": "å°æįĨ¨æšä¸ēå¤é",
"compose_form.poll.switch_to_single": "å°æįĨ¨æšä¸ēåé",
+ "compose_form.poll.type": "æ ˇåŧ",
"compose_form.publish": "åå¸",
"compose_form.publish_form": "åå¸",
- "compose_form.publish_loud": "{publish}īŧ",
- "compose_form.save_changes": "äŋåæ´æš",
- "compose_form.sensitive.hide": "æ 莰åĒäŊä¸ēææå
厚",
- "compose_form.sensitive.marked": "åĒäŊåˇ˛čĸĢæ 莰ä¸ēææå
厚",
- "compose_form.sensitive.unmarked": "åĒäŊæĒčĸĢæ 莰ä¸ēææå
厚",
+ "compose_form.reply": "åå¤",
+ "compose_form.save_changes": "æ´æ°",
"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": "åąčŊ",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "į§ä¸æå",
"navigation_bar.discover": "åį°",
"navigation_bar.domain_blocks": "åˇ˛åąčŊįåå",
- "navigation_bar.edit_profile": "äŋŽæšä¸Ēäēēčĩæ",
"navigation_bar.explore": "æĸį´ĸ",
"navigation_bar.favourites": "åæŦĸ",
"navigation_bar.filters": "åŋŊįĨįå
ŗéŽč¯",
@@ -445,7 +444,7 @@
"notifications.column_settings.filter_bar.advanced": "æžį¤ēææįąģåĢ",
"notifications.column_settings.filter_bar.category": "åŋĢéčŋæģ¤æ ",
"notifications.column_settings.filter_bar.show_bar": "æžį¤ēčŋæģ¤æ ",
- "notifications.column_settings.follow": "æ°å
ŗæŗ¨č
īŧ",
+ "notifications.column_settings.follow": "æ°į˛ä¸īŧ",
"notifications.column_settings.follow_request": "æ°å
ŗæŗ¨č¯ˇæąīŧ",
"notifications.column_settings.mention": "æåīŧ",
"notifications.column_settings.poll": "æįĨ¨įģæīŧ",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "åčĩˇæįĨ¨",
"poll_button.remove_poll": "į§ģé¤æįĨ¨",
"privacy.change": "莞įŊŽåæįå¯č§čå´",
- "privacy.direct.long": "åĒæčĸĢæåįį¨æˇčŊįå°",
- "privacy.direct.short": "äģ
æå°įäēē",
- "privacy.private.long": "äģ
寚å
ŗæŗ¨č
å¯č§",
- "privacy.private.short": "äģ
å
ŗæŗ¨č
å¯č§",
- "privacy.public.long": "ææäēēå¯č§",
+ "privacy.direct.long": "å¸åä¸æå°įæ¯ä¸Ēäēē",
+ "privacy.direct.short": "å
ˇäŊįäēē",
+ "privacy.private.long": "äģ
éæ¨įå
ŗæŗ¨č
",
+ "privacy.private.short": "å
ŗæŗ¨č
",
+ "privacy.public.long": "ææMastodonå
å¤įäēē",
"privacy.public.short": "å
Ŧåŧ",
- "privacy.unlisted.long": "ææäēēå¯č§īŧäŊä¸å¨æĸį´ĸåčŊåēį°",
- "privacy.unlisted.short": "ä¸å
Ŧåŧ",
+ "privacy.unlisted.additional": "č¯Ĩæ¨ĄåŧįčĄä¸ēä¸âå
ŦåŧâåŽå
¨į¸åīŧåĒæ¯å¸åä¸äŧåēį°å¨åŽæļå¨æãč¯éĸæ įžãæĸį´ĸæ Mastodon æį´ĸä¸īŧåŗäŊŋäŊ åˇ˛å¨č´Ļæˇįē§čŽžįŊŽä¸éæŠå å
Ĩã",
+ "privacy.unlisted.long": "åå°įŽæŗåŊąå",
+ "privacy.unlisted.short": "ææå
Ŧåŧ",
"privacy_policy.last_updated": "æčŋæ´æ°äē {date}",
"privacy_policy.title": "éį§æŋį",
"recommended": "æ¨č",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number} åéå",
"relative_time.seconds": "{number} į§å",
"relative_time.today": "äģ夊",
+ "reply_indicator.attachments": "{count, plural, other {# ä¸Ēéäģļ}}",
"reply_indicator.cancel": "åæļ",
+ "reply_indicator.poll": "æįĨ¨",
"report.block": "åąčŊ",
"report.block_explanation": "äŊ å°æ æŗįå°äģäģŦįåæãäģäģŦäšå°æ æŗįå°äŊ įåææå
ŗæŗ¨äŊ ãäģäģŦå°čŊå¤å¤æåēäģäģŦčĸĢåąčŊäēã",
"report.categories.legal": "æŗåžäšåĄ",
@@ -699,7 +701,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": "čŋåģ {days, plural, other {{days} 夊}}æ{count, plural, other { {counter} äēē}}莨čŽē",
@@ -714,10 +716,8 @@
"upload_error.poll": "æįĨ¨ä¸ä¸å
莸ä¸äŧ æäģļã",
"upload_form.audio_description": "ä¸ēåŦéäēēåŖĢæˇģå æåæčŋ°",
"upload_form.description": "ä¸ēč§č§éįĸäēēåŖĢæˇģå æåč¯´æ",
- "upload_form.description_missing": "æĒæˇģå æčŋ°",
"upload_form.edit": "įŧčž",
"upload_form.thumbnail": "æ´æšįŧŠįĨåž",
- "upload_form.undo": "å é¤",
"upload_form.video_description": "ä¸ēåŦéäēēåŖĢåč§éäēēåŖĢæˇģå æåæčŋ°",
"upload_modal.analyzing_picture": "åæåžįâĻ",
"upload_modal.apply": "åēį¨",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 263c70799..5890c4df4 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "æĢįĄæįĢ ",
"account.featured_tags.title": "{name} įį˛žé¸æ¨įą¤",
"account.follow": "éæŗ¨",
+ "account.follow_back": "čŋŊ蚤å°æš",
"account.followers": "čŋŊ蚤č
",
"account.followers.empty": "å°æĒæäēēčŋŊ蚤éäŊäŊŋį¨č
ã",
"account.followers_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.go_to_profile": "ååžåäēēæĒæĄ",
"account.hide_reblogs": "éąč @{name} įčŊæ¨",
"account.in_memoriam": "čŦšæ¤æŧåŋĩã",
@@ -53,6 +53,7 @@
"account.mute_notifications_short": "ééŗéįĨ",
"account.mute_short": "ééŗ",
"account.muted": "ééŗ",
+ "account.mutual": "äēį¸čŋŊ蚤",
"account.no_bio": "æĒæäžæčŋ°ã",
"account.open_original_page": "æéåå§é éĸ",
"account.posts": "å¸æ",
@@ -88,7 +89,6 @@
"announcement.announcement": "å
Ŧå",
"attachments_list.unprocessed": "īŧæĒčįīŧ",
"audio.hide": "éąčéŗč¨",
- "autosuggest_hashtag.per_week": "æ¯éą {count} æŦĄ",
"boost_modal.combo": "äŊ ä¸æŦĄå¯äģĨæ {combo} äžčˇŗé",
"bundle_column_error.copy_stacktrace": "č¤čŖŊé¯čĒ¤å ąå",
"bundle_column_error.error.body": "įĄæŗæäžčĢæąįé éĸãéå¯čŊæ¯å įēäģŖįĸŧåēįžé¯čĒ¤æįčĻŊå¨åēįžå
ŧ厚åéĄã",
@@ -145,22 +145,22 @@
"compose_form.lock_disclaimer": "äŊ įį¨æļįæ
æ˛æ{locked}īŧäģģäŊäēēéŊčŊįĢåŗéæŗ¨äŊ īŧįļåžįå°ãåĒæéæŗ¨č
čŊįãįæįĢ ã",
"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": "į§ģé¤æ¤é¸æ",
+ "compose_form.poll.multiple": "å¤é¸",
+ "compose_form.poll.option_placeholder": "é¸é
{number}",
+ "compose_form.poll.remove_option": "į§ģé¤æ¤é¸é
",
+ "compose_form.poll.single": "é¸æä¸å",
"compose_form.poll.switch_to_multiple": "čŽæ´æįĨ¨įēå
訹å¤åé¸é
",
"compose_form.poll.switch_to_single": "čŽæ´æįĨ¨įēéåŽåŽä¸é¸é
",
+ "compose_form.poll.type": "éĸ¨æ ŧ",
"compose_form.publish": "įŧäŊ",
"compose_form.publish_form": "įŧäŊ",
- "compose_form.publish_loud": "{publish}īŧ",
- "compose_form.save_changes": "å˛åčŽæ´",
- "compose_form.sensitive.hide": "æ¨č¨åĒéĢįēææå
§åŽš",
- "compose_form.sensitive.marked": "åĒéĢčĸĢæ¨į¤ēįēææ",
- "compose_form.sensitive.unmarked": "åĒéĢæ˛æčĸĢæ¨į¤ēįēææ",
+ "compose_form.reply": "åčĻ",
+ "compose_form.save_changes": "æ´æ°",
"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": "å°é",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "į§äēēæå",
"navigation_bar.discover": "æĸį´ĸ",
"navigation_bar.domain_blocks": "å°éįæåįĢ",
- "navigation_bar.edit_profile": "äŋŽæšåäēēčŗæ",
"navigation_bar.explore": "æĸį´ĸ",
"navigation_bar.favourites": "ææ",
"navigation_bar.filters": "ééŗčŠåŊ",
@@ -525,14 +524,15 @@
"poll_button.add_poll": "åģēįĢæįĨ¨",
"poll_button.remove_poll": "į§ģé¤æįĨ¨",
"privacy.change": "čĒŋæ´į§éąč¨åŽ",
- "privacy.direct.long": "åĒææåįäŊŋį¨č
čŊįå°",
- "privacy.direct.short": "å
éæåįäēē",
- "privacy.private.long": "åĒæäŊ įéæŗ¨č
čŊįå°",
- "privacy.private.short": "å
éčŋŊé¨č
",
- "privacy.public.long": "å°ææäēēå¯čĻ",
+ "privacy.direct.long": "å¸ææåįäēē",
+ "privacy.direct.short": "įšåŽįäēē",
+ "privacy.private.long": "åĒæäŊ įčŋŊ蚤č
",
+ "privacy.private.short": "čŋŊ蚤č
",
+ "privacy.public.long": "Mastodon å
§å¤įäģģäŊäēē",
"privacy.public.short": "å
Ŧå
ą",
- "privacy.unlisted.long": "å°ææäēēå¯čĻīŧäŊä¸å
æŦæĸį´ĸåčŊ",
- "privacy.unlisted.short": "å
Ŧé",
+ "privacy.unlisted.additional": "éčå
ŦéåŽå
¨į¸åīŧäŊæ¯äŊ įå¸æä¸æéĄ¯į¤ēå¨åŗæåæ
ãæ¨įą¤ãæĸį´ĸå Mastodon įæå°įĩæä¸īŧåŗäŊŋäŊ įå¸ŗæļåį¨äēį¸éč¨åŽäšåĨŊã",
+ "privacy.unlisted.long": "čŧå°į¨æŧįŽæŗåŽŖåŗ",
+ "privacy.unlisted.short": "åå
Ŧé",
"privacy_policy.last_updated": "æåžæ´æ° {date}",
"privacy_policy.title": "į§éąæŋį",
"recommended": "æ¨čĻ",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number}åéå",
"relative_time.seconds": "{number}į§å",
"relative_time.today": "äģ夊",
+ "reply_indicator.attachments": "{count, plural, one {# éäģļ} other {# éäģļ}}",
"reply_indicator.cancel": "åæļ",
+ "reply_indicator.poll": "æįĨ¨",
"report.block": "å°é",
"report.block_explanation": "äŊ å°ä¸æįå°äģåįå¸æãäģåå°įĄæŗįå°äŊ įå¸ææčŋŊé¨äŊ ãäģåå°įŧįžčĒåˇąčĸĢå°éäēã",
"report.categories.legal": "æŗåž",
@@ -714,10 +716,8 @@
"upload_error.poll": "ä¸å
訹å¨æįĨ¨ä¸åŗæĒæĄã",
"upload_form.audio_description": "į°ĄåŽæčŋ°å
§åŽšįĩĻčŊéäēēåŖĢ",
"upload_form.description": "įēčĻčĻēéį¤äēēåŖĢæˇģå æåčĒĒæ",
- "upload_form.description_missing": "æ˛æå å
Ĩæčŋ°",
"upload_form.edit": "įˇ¨čŧ¯",
"upload_form.thumbnail": "æ´æšé čĻŊå",
- "upload_form.undo": "åĒé¤",
"upload_form.video_description": "į°ĄåŽæčŋ°įĩĻčŊéæčĻéäēēåŖĢ",
"upload_modal.analyzing_picture": "æŖå¨åæåįâĻ",
"upload_modal.apply": "åĨį¨",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 8484e00c8..c365e67e0 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -32,13 +32,13 @@
"account.featured_tags.last_status_never": "æ˛æåæ",
"account.featured_tags.title": "{name} įæ¨čĻä¸ģéĄæ¨įą¤",
"account.follow": "čˇé¨",
+ "account.follow_back": "čˇé¨ååģ",
"account.followers": "čˇé¨č
",
"account.followers.empty": "å°æĒæäēēčˇé¨éäŊäŊŋį¨č
ã",
"account.followers_counter": "čĸĢ {count, plural, other {{counter} äēē}}čˇé¨",
"account.following": "čˇé¨ä¸",
"account.following_counter": "æŖå¨čˇé¨ {count,plural,other {{counter} äēē}}",
"account.follows.empty": "éäŊäŊŋį¨č
å°æĒčˇé¨äģģäŊäēēã",
- "account.follows_you": "čˇé¨äēæ¨",
"account.go_to_profile": "ååžåäēēæĒæĄ",
"account.hide_reblogs": "éąčäžčĒ @{name} įčŊå",
"account.in_memoriam": "čŦšæ¤æŧåŋĩã",
@@ -48,17 +48,18 @@
"account.locked_info": "æ¤å¸ŗčįéąį§įæ
č¨åŽįēéåŽã芲ææč
ææåå¯Šæ ¸čŊčˇé¨æ¤å¸ŗčįäēēã",
"account.media": "åĒéĢ",
"account.mention": "æå @{name}",
- "account.moved_to": "{name} įžå¨įæ°å¸ŗčįēīŧ",
+ "account.moved_to": "{name} įŽåįæ°å¸ŗčįēīŧ",
"account.mute": "ééŗ @{name}",
"account.mute_notifications_short": "ééŗæ¨æéįĨ",
"account.mute_short": "ééŗ",
"account.muted": "åˇ˛ééŗ",
+ "account.mutual": "äēį¸čˇé¨",
"account.no_bio": "įĄåäēēæĒæĄæčŋ°",
"account.open_original_page": "æĒĸčĻåå§é éĸ",
"account.posts": "åæ",
"account.posts_with_replies": "åæčåčĻ",
"account.report": "æĒĸč @{name}",
- "account.requested": "æŖå¨įåž
æ ¸åãæä¸ä¸äģĨåæļčˇé¨čĢæą",
+ "account.requested": "æŖå¨įåå¯Šæ ¸ãæä¸ä¸äģĨåæļčˇé¨čĢæą",
"account.requested_follow": "{name} čĻæąčˇé¨æ¨",
"account.share": "åäēĢ @{name} įåäēēæĒæĄ",
"account.show_reblogs": "éĄ¯į¤ēäžčĒ @{name} įåæ",
@@ -83,12 +84,11 @@
"admin.impact_report.title": "åŊąéŋį¸Ŋįĩ",
"alert.rate_limited.message": "čĢæŧ {retry_time, time, medium} åžéčŠĻã",
"alert.rate_limited.title": "åˇ˛éé",
- "alert.unexpected.message": "įŧįäēéé æįé¯čĒ¤ã",
+ "alert.unexpected.message": "įŧįéé æįé¯čĒ¤ã",
"alert.unexpected.title": "ååīŧ",
"announcement.announcement": "å
Ŧå",
"attachments_list.unprocessed": "īŧæĒįļčįīŧ",
"audio.hide": "éąčéŗč¨",
- "autosuggest_hashtag.per_week": "{count} / éą",
"boost_modal.combo": "ä¸æŦĄæ¨å¯äģĨæ {combo} čˇŗé",
"bundle_column_error.copy_stacktrace": "č¤čŖŊé¯čĒ¤å ąå",
"bundle_column_error.error.body": "įĄæŗįšĒčŖŊčĢæąįé éĸãéå¯čŊæ¯å įēæåį¨åŧįĸŧä¸įčč˛ææ¯įčĻŊå¨įį¸åŽšåéĄã",
@@ -147,20 +147,20 @@
"compose_form.placeholder": "æŖå¨æŗäēäģéēŧåīŧ",
"compose_form.poll.add_option": "æ°åĸé¸é
",
"compose_form.poll.duration": "æįĨ¨æé",
- "compose_form.poll.option_placeholder": "įŦŦ {number} åé¸é
",
+ "compose_form.poll.multiple": "å¤é¸",
+ "compose_form.poll.option_placeholder": "é¸é
{number}",
"compose_form.poll.remove_option": "į§ģé¤æ¤é¸é
",
+ "compose_form.poll.single": "é¸æä¸å",
"compose_form.poll.switch_to_multiple": "čŽæ´æįĨ¨įēå
訹å¤åé¸é
",
"compose_form.poll.switch_to_single": "čŽæ´æįĨ¨įēå
訹åŽä¸é¸é
",
- "compose_form.publish": "ååēåģ",
+ "compose_form.poll.type": "æįĨ¨æšåŧ",
+ "compose_form.publish": "įŧå",
"compose_form.publish_form": "ååēåģ",
- "compose_form.publish_loud": "{publish}īŧ",
- "compose_form.save_changes": "å˛åčŽæ´",
- "compose_form.sensitive.hide": "{count, plural, other {å°åĒéĢæ¨č¨įēææå
§åŽš}}",
- "compose_form.sensitive.marked": "æ¤åĒéĢčĸĢæ¨č¨įēææå
§åŽš",
- "compose_form.sensitive.unmarked": "æ¤åĒéĢæĒčĸĢæ¨č¨įēææå
§åŽš",
+ "compose_form.reply": "åčĻ",
+ "compose_form.save_changes": "æ´æ°",
"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": "å°é",
@@ -240,7 +240,7 @@
"empty_column.followed_tags": "æ¨éæ˛æčˇé¨äģģäŊä¸ģéĄæ¨įą¤ãįļæ¨čˇé¨ä¸ģéĄæ¨įą¤æīŧåŽåå°æŧæ¤éĄ¯į¤ēã",
"empty_column.hashtag": "éåä¸ģéĄæ¨įą¤ä¸äģéēŧäšæ˛æã",
"empty_column.home": "æ¨įéĻé æéčģ¸æ¯įŠēįīŧčˇé¨æ´å¤äēēäžå°åŽåĄĢæģŋå§īŧ",
- "empty_column.list": "éäģŊå襨ä¸äģéēŧäšæ˛æãįļæ¤å襨įæåĄååēäēæ°įåææīŧåŽåå°éĄ¯į¤ēæŧæ¤ã",
+ "empty_column.list": "éäģŊå襨ä¸äģéēŧäšæ˛æãįļæ¤å襨įæåĄååēæ°įåææīŧåŽåå°éĄ¯į¤ēæŧæ¤ã",
"empty_column.lists": "æ¨éæ˛æåģēįĢäģģäŊå襨ãįļæ¨åģēįĢå襨æīŧåŽå°æŧæ¤éĄ¯į¤ēã",
"empty_column.mutes": "æ¨å°æĒééŗäģģäŊäŊŋį¨č
ã",
"empty_column.notifications": "æ¨éæ˛ææļå°äģģäŊéįĨīŧįļæ¨čåĨäēēéå§äēåæīŧåŽå°æŧæ¤éĄ¯į¤ēã",
@@ -302,8 +302,8 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} å} other {{counter} å}}åčč
",
"hashtag.counter_by_uses": "{count, plural, one {{counter} å} other {{counter} å}}åæ",
"hashtag.counter_by_uses_today": "æŦæĨæ {count, plural, one {{counter} å} other {{counter} å}}åæ",
- "hashtag.follow": "čŋŊ蚤ä¸ģéĄæ¨įą¤",
- "hashtag.unfollow": "åæļčŋŊ蚤ä¸ģéĄæ¨įą¤",
+ "hashtag.follow": "čˇé¨ä¸ģéĄæ¨įą¤",
+ "hashtag.unfollow": "åæļčˇé¨ä¸ģéĄæ¨įą¤",
"hashtags.and_other": "âĻåå
ļäģ {count, plural, other {# å}}",
"home.actions.go_to_explore": "įįįŧįäģéēŧæ°éŽŽäē",
"home.actions.go_to_suggestions": "å°æžä¸äēäēēäžčˇé¨",
@@ -407,7 +407,6 @@
"navigation_bar.direct": "į§č¨",
"navigation_bar.discover": "æĸį´ĸ",
"navigation_bar.domain_blocks": "åˇ˛å°éįļ˛å",
- "navigation_bar.edit_profile": "įˇ¨čŧ¯åäēēæĒæĄ",
"navigation_bar.explore": "æĸį´ĸ",
"navigation_bar.favourites": "ææ",
"navigation_bar.filters": "åˇ˛ééŗįééĩå",
@@ -525,13 +524,14 @@
"poll_button.add_poll": "åģēįĢæįĨ¨",
"poll_button.remove_poll": "į§ģé¤æįĨ¨",
"privacy.change": "čĒŋæ´åæéąį§įæ
",
- "privacy.direct.long": "åĒæčĸĢæåįäŊŋį¨č
čŊįå°",
- "privacy.direct.short": "å
éæåč
",
- "privacy.private.long": "åĒæčˇé¨æ¨įäŊŋį¨č
čŊįå°",
- "privacy.private.short": "å
éčˇé¨č
",
- "privacy.public.long": "å°ææäēēå¯čĻ",
+ "privacy.direct.long": "æ¤åææåäšææäēē",
+ "privacy.direct.short": "æåŽäŊŋį¨č
",
+ "privacy.private.long": "åĒæčˇé¨æ¨įäēēčŊįå°",
+ "privacy.private.short": "čˇé¨č
",
+ "privacy.public.long": "ææäēē (įĄčĢå¨ Mastodon ä¸čåĻ)",
"privacy.public.short": "å
Ŧé",
- "privacy.unlisted.long": "å°ææäēēå¯čĻīŧäŊé¸æéåēæĸį´ĸåčŊ",
+ "privacy.unlisted.additional": "æ¤čå
ŦéåæåŽå
¨į¸åīŧäŊåæä¸æåēįžæŧåŗæå
§åŽšæä¸ģéĄæ¨įą¤ãæĸį´ĸãå Mastodon æå°ä¸īŧåŗäŊŋæ¨å¨å¸ŗæļč¨åŽä¸é¸æå å
Ĩã",
+ "privacy.unlisted.long": "æįļįĄč˛",
"privacy.unlisted.short": "ä¸å
Ŧé",
"privacy_policy.last_updated": "æåžæ´æ°īŧ{date}",
"privacy_policy.title": "éąį§æŦæŋį",
@@ -550,7 +550,9 @@
"relative_time.minutes": "{number} åéå",
"relative_time.seconds": "{number} į§",
"relative_time.today": "äģ夊",
+ "reply_indicator.attachments": "{count, plural, other {# åéå æĒæĄ}}",
"reply_indicator.cancel": "åæļ",
+ "reply_indicator.poll": "æįĨ¨",
"report.block": "å°é",
"report.block_explanation": "æ¨å°ä¸åįå°äģåįåæãäģåå°įĄæŗįå°æ¨įåæææ¯čˇé¨æ¨ãäģåæįŧįžäģååˇ˛čĸĢå°éã",
"report.categories.legal": "åæŗæ§",
@@ -714,10 +716,8 @@
"upload_error.poll": "ä¸å
訹æŧæįĨ¨æä¸åŗæĒæĄã",
"upload_form.audio_description": "įēčŊéäēēåŖĢåĸå æåčĒĒæ",
"upload_form.description": "įēčĻéäēēåŖĢåĸå æåčĒĒæ",
- "upload_form.description_missing": "æ˛æäģģäŊæčŋ°",
"upload_form.edit": "įˇ¨čŧ¯",
"upload_form.thumbnail": "æ´æšé čĻŊå",
- "upload_form.undo": "åĒé¤",
"upload_form.video_description": "įēčŊéæčĻéäēēåŖĢåĸå æåčĒĒæ",
"upload_modal.analyzing_picture": "æŖå¨åæåįâĻ",
"upload_modal.apply": "åĨį¨",
diff --git a/app/javascript/mastodon/reducers/accounts.ts b/app/javascript/mastodon/reducers/accounts.ts
index f7270eb60..5a9cc7220 100644
--- a/app/javascript/mastodon/reducers/accounts.ts
+++ b/app/javascript/mastodon/reducers/accounts.ts
@@ -1,7 +1,6 @@
+import type { Reducer } from '@reduxjs/toolkit';
import { Map as ImmutableMap } from 'immutable';
-import type { Reducer } from 'redux';
-
import {
followAccountSuccess,
unfollowAccountSuccess,
@@ -60,25 +59,19 @@ export const accountsReducer: Reducer
= (
return normalizeAccounts(state, action.payload.accounts);
else if (followAccountSuccess.match(action)) {
return state
- .update(
- action.payload.relationship.id,
- (account) => account?.update('followers_count', (n) => n + 1),
+ .update(action.payload.relationship.id, (account) =>
+ account?.update('followers_count', (n) => n + 1),
)
- .update(
- getCurrentUser(),
- (account) => account?.update('following_count', (n) => n + 1),
+ .update(getCurrentUser(), (account) =>
+ account?.update('following_count', (n) => n + 1),
);
} else if (unfollowAccountSuccess.match(action))
return state
- .update(
- action.payload.relationship.id,
- (account) =>
- account?.update('followers_count', (n) => Math.max(0, n - 1)),
+ .update(action.payload.relationship.id, (account) =>
+ account?.update('followers_count', (n) => Math.max(0, n - 1)),
)
- .update(
- getCurrentUser(),
- (account) =>
- account?.update('following_count', (n) => Math.max(0, n - 1)),
+ .update(getCurrentUser(), (account) =>
+ account?.update('following_count', (n) => Math.max(0, n - 1)),
);
else return state;
};
diff --git a/app/javascript/mastodon/reducers/accounts_map.js b/app/javascript/mastodon/reducers/accounts_map.js
index d5ecad7db..9053dcc9c 100644
--- a/app/javascript/mastodon/reducers/accounts_map.js
+++ b/app/javascript/mastodon/reducers/accounts_map.js
@@ -2,8 +2,13 @@ import { Map as ImmutableMap } from 'immutable';
import { ACCOUNT_LOOKUP_FAIL } from '../actions/accounts';
import { importAccounts } from '../actions/accounts_typed';
+import { domain } from '../initial_state';
-export const normalizeForLookup = str => str.toLowerCase();
+export const normalizeForLookup = str => {
+ str = str.toLowerCase();
+ const trailingIndex = str.indexOf(`@${domain.toLowerCase()}`);
+ return (trailingIndex > 0) ? str.slice(0, trailingIndex) : str;
+};
const initialState = ImmutableMap();
diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js
index e6b2509f6..f57bbb77b 100644
--- a/app/javascript/mastodon/reducers/compose.js
+++ b/app/javascript/mastodon/reducers/compose.js
@@ -40,9 +40,7 @@ import {
COMPOSE_RESET,
COMPOSE_POLL_ADD,
COMPOSE_POLL_REMOVE,
- COMPOSE_POLL_OPTION_ADD,
COMPOSE_POLL_OPTION_CHANGE,
- COMPOSE_POLL_OPTION_REMOVE,
COMPOSE_POLL_SETTINGS_CHANGE,
INIT_MEDIA_EDIT_MODAL,
COMPOSE_CHANGE_MEDIA_DESCRIPTION,
@@ -282,6 +280,18 @@ const updateSuggestionTags = (state, token) => {
});
};
+const updatePoll = (state, index, value) => state.updateIn(['poll', 'options'], options => {
+ const tmp = options.set(index, value).filterNot(x => x.trim().length === 0);
+
+ if (tmp.size === 0) {
+ return tmp.push('').push('');
+ } else if (tmp.size < 4) {
+ return tmp.push('');
+ }
+
+ return tmp;
+});
+
export default function compose(state = initialState, action) {
switch(action.type) {
case STORE_HYDRATE:
@@ -518,12 +528,8 @@ export default function compose(state = initialState, action) {
return state.set('poll', initialPoll);
case COMPOSE_POLL_REMOVE:
return state.set('poll', null);
- case COMPOSE_POLL_OPTION_ADD:
- return state.updateIn(['poll', 'options'], options => options.push(action.title));
case COMPOSE_POLL_OPTION_CHANGE:
- return state.setIn(['poll', 'options', action.index], action.title);
- case COMPOSE_POLL_OPTION_REMOVE:
- return state.updateIn(['poll', 'options'], options => options.delete(action.index));
+ return updatePoll(state, action.index, action.title);
case COMPOSE_POLL_SETTINGS_CHANGE:
return state.update('poll', poll => poll.set('expires_in', action.expiresIn).set('multiple', action.isMultiple));
case COMPOSE_LANGUAGE_CHANGE:
diff --git a/app/javascript/mastodon/reducers/modal.ts b/app/javascript/mastodon/reducers/modal.ts
index 73a2afb91..368f26542 100644
--- a/app/javascript/mastodon/reducers/modal.ts
+++ b/app/javascript/mastodon/reducers/modal.ts
@@ -1,6 +1,5 @@
-import { Record as ImmutableRecord, Stack } from 'immutable';
-
import type { Reducer } from '@reduxjs/toolkit';
+import { Record as ImmutableRecord, Stack } from 'immutable';
import { COMPOSE_UPLOAD_CHANGE_SUCCESS } from '../actions/compose';
import type { ModalType } from '../actions/modal';
diff --git a/app/javascript/mastodon/reducers/relationships.ts b/app/javascript/mastodon/reducers/relationships.ts
index 2ba61839c..dcca11b20 100644
--- a/app/javascript/mastodon/reducers/relationships.ts
+++ b/app/javascript/mastodon/reducers/relationships.ts
@@ -1,7 +1,6 @@
-import { Map as ImmutableMap } from 'immutable';
-
import { isFulfilled } from '@reduxjs/toolkit';
-import type { Reducer } from 'redux';
+import type { Reducer } from '@reduxjs/toolkit';
+import { Map as ImmutableMap } from 'immutable';
import type { ApiRelationshipJSON } from 'mastodon/api_types/relationships';
import type { Account } from 'mastodon/models/account';
diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js
index a605ecbb8..0e353e0d1 100644
--- a/app/javascript/mastodon/reducers/settings.js
+++ b/app/javascript/mastodon/reducers/settings.js
@@ -104,7 +104,7 @@ const initialState = ImmutableMap({
dismissed_banners: ImmutableMap({
'public_timeline': false,
'community_timeline': false,
- 'home.explore_prompt': false,
+ 'home/follow-suggestions': false,
'explore/links': false,
'explore/statuses': false,
'explore/tags': false,
diff --git a/app/javascript/mastodon/reducers/suggestions.js b/app/javascript/mastodon/reducers/suggestions.js
index 0f224ff4b..5b9d983de 100644
--- a/app/javascript/mastodon/reducers/suggestions.js
+++ b/app/javascript/mastodon/reducers/suggestions.js
@@ -28,12 +28,12 @@ export default function suggestionsReducer(state = initialState, action) {
case SUGGESTIONS_FETCH_FAIL:
return state.set('isLoading', false);
case SUGGESTIONS_DISMISS:
- return state.update('items', list => list.filterNot(x => x.account === action.id));
+ return state.update('items', list => list.filterNot(x => x.get('account') === action.id));
case blockAccountSuccess.type:
case muteAccountSuccess.type:
- return state.update('items', list => list.filterNot(x => x.account === action.payload.relationship.id));
+ return state.update('items', list => list.filterNot(x => x.get('account') === action.payload.relationship.id));
case blockDomainSuccess.type:
- return state.update('items', list => list.filterNot(x => action.payload.accounts.includes(x.account)));
+ return state.update('items', list => list.filterNot(x => action.payload.accounts.includes(x.get('account'))));
default:
return state;
}
diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js
index 43dedd6e6..4c9ab98a8 100644
--- a/app/javascript/mastodon/reducers/timelines.js
+++ b/app/javascript/mastodon/reducers/timelines.js
@@ -17,6 +17,9 @@ import {
TIMELINE_DISCONNECT,
TIMELINE_LOAD_PENDING,
TIMELINE_MARK_AS_PARTIAL,
+ TIMELINE_INSERT,
+ TIMELINE_GAP,
+ TIMELINE_SUGGESTIONS,
} from '../actions/timelines';
import { compareId } from '../compare_id';
@@ -32,6 +35,8 @@ const initialTimeline = ImmutableMap({
items: ImmutableList(),
});
+const isPlaceholder = value => value === TIMELINE_GAP || value === TIMELINE_SUGGESTIONS;
+
const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, isLoadingRecent, usePendingItems) => {
// This method is pretty tricky because:
// - existing items in the timeline might be out of order
@@ -63,20 +68,20 @@ const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, is
// First, find the furthest (if properly sorted, oldest) item in the timeline that is
// newer than the oldest fetched one, as it's most likely that it delimits the gap.
// Start the gap *after* that item.
- const lastIndex = oldIds.findLastIndex(id => id !== null && compareId(id, newIds.last()) >= 0) + 1;
+ const lastIndex = oldIds.findLastIndex(id => !isPlaceholder(id) && compareId(id, newIds.last()) >= 0) + 1;
// Then, try to find the furthest (if properly sorted, oldest) item in the timeline that
// is newer than the most recent fetched one, as it delimits a section comprised of only
// items older or within `newIds` (or that were deleted from the server, so should be removed
// anyway).
// Stop the gap *after* that item.
- const firstIndex = oldIds.take(lastIndex).findLastIndex(id => id !== null && compareId(id, newIds.first()) > 0) + 1;
+ const firstIndex = oldIds.take(lastIndex).findLastIndex(id => !isPlaceholder(id) && compareId(id, newIds.first()) > 0) + 1;
let insertedIds = ImmutableOrderedSet(newIds).withMutations(insertedIds => {
// It is possible, though unlikely, that the slice we are replacing contains items older
// than the elements we got from the API. Get them and add them back at the back of the
// slice.
- const olderIds = oldIds.slice(firstIndex, lastIndex).filter(id => id !== null && compareId(id, newIds.last()) < 0);
+ const olderIds = oldIds.slice(firstIndex, lastIndex).filter(id => !isPlaceholder(id) && compareId(id, newIds.last()) < 0);
insertedIds.union(olderIds);
// Make sure we aren't inserting duplicates
@@ -84,8 +89,8 @@ const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, is
}).toList();
// Finally, insert a gap marker if the data is marked as partial by the server
- if (isPartial && (firstIndex === 0 || oldIds.get(firstIndex - 1) !== null)) {
- insertedIds = insertedIds.unshift(null);
+ if (isPartial && (firstIndex === 0 || oldIds.get(firstIndex - 1) !== TIMELINE_GAP)) {
+ insertedIds = insertedIds.unshift(TIMELINE_GAP);
}
return oldIds.take(firstIndex).concat(
@@ -178,7 +183,7 @@ const reconnectTimeline = (state, usePendingItems) => {
}
return state.withMutations(mMap => {
- mMap.update(usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(null) : items);
+ mMap.update(usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(TIMELINE_GAP) : items);
mMap.set('online', true);
});
};
@@ -213,7 +218,7 @@ export default function timelines(state = initialState, action) {
return state.update(
action.timeline,
initialTimeline,
- map => map.set('online', false).update(action.usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(null) : items),
+ map => map.set('online', false).update(action.usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(TIMELINE_GAP) : items),
);
case TIMELINE_MARK_AS_PARTIAL:
return state.update(
@@ -221,6 +226,18 @@ export default function timelines(state = initialState, action) {
initialTimeline,
map => map.set('isPartial', true).set('items', ImmutableList()).set('pendingItems', ImmutableList()).set('unread', 0),
);
+ case TIMELINE_INSERT:
+ return state.update(
+ action.timeline,
+ initialTimeline,
+ map => map.update('items', ImmutableList(), list => {
+ if (!list.includes(action.key)) {
+ return list.insert(action.index, action.key);
+ }
+
+ return list;
+ })
+ );
default:
return state;
}
diff --git a/app/javascript/mastodon/selectors/accounts.ts b/app/javascript/mastodon/selectors/accounts.ts
index 66193136c..cee3a87bc 100644
--- a/app/javascript/mastodon/selectors/accounts.ts
+++ b/app/javascript/mastodon/selectors/accounts.ts
@@ -1,5 +1,5 @@
+import { createSelector } from '@reduxjs/toolkit';
import { Record as ImmutableRecord } from 'immutable';
-import { createSelector } from 'reselect';
import { accountDefaultValues } from 'mastodon/models/account';
import type { Account, AccountShape } from 'mastodon/models/account';
diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js
index 8a07ba774..b1c60403e 100644
--- a/app/javascript/mastodon/selectors/index.js
+++ b/app/javascript/mastodon/selectors/index.js
@@ -1,5 +1,5 @@
+import { createSelector } from '@reduxjs/toolkit';
import { List as ImmutableList, Map as ImmutableMap } from 'immutable';
-import { createSelector } from 'reselect';
import { toServerSideType } from 'mastodon/utils/filters';
diff --git a/app/javascript/mastodon/store/middlewares/errors.ts b/app/javascript/mastodon/store/middlewares/errors.ts
index 9f28f5ff5..e11aa7817 100644
--- a/app/javascript/mastodon/store/middlewares/errors.ts
+++ b/app/javascript/mastodon/store/middlewares/errors.ts
@@ -1,20 +1,34 @@
-import type { AnyAction, Middleware } from 'redux';
+import { isAction } from '@reduxjs/toolkit';
+import type { Action, Middleware } from '@reduxjs/toolkit';
import type { RootState } from '..';
import { showAlertForError } from '../../actions/alerts';
const defaultFailSuffix = 'FAIL';
+const isFailedAction = new RegExp(`${defaultFailSuffix}$`, 'g');
-export const errorsMiddleware: Middleware =
+interface ActionWithMaybeAlertParams extends Action {
+ skipAlert?: boolean;
+ skipNotFound?: boolean;
+ error?: unknown;
+}
+
+function isActionWithmaybeAlertParams(
+ action: unknown,
+): action is ActionWithMaybeAlertParams {
+ return isAction(action);
+}
+
+export const errorsMiddleware: Middleware, RootState> =
({ dispatch }) =>
(next) =>
- (action: AnyAction & { skipAlert?: boolean; skipNotFound?: boolean }) => {
- if (action.type && !action.skipAlert) {
- const isFail = new RegExp(`${defaultFailSuffix}$`, 'g');
-
- if (typeof action.type === 'string' && action.type.match(isFail)) {
- dispatch(showAlertForError(action.error, action.skipNotFound));
- }
+ (action) => {
+ if (
+ isActionWithmaybeAlertParams(action) &&
+ !action.skipAlert &&
+ action.type.match(isFailedAction)
+ ) {
+ dispatch(showAlertForError(action.error, action.skipNotFound));
}
return next(action);
diff --git a/app/javascript/mastodon/store/middlewares/loading_bar.ts b/app/javascript/mastodon/store/middlewares/loading_bar.ts
index 83056ee49..d259be899 100644
--- a/app/javascript/mastodon/store/middlewares/loading_bar.ts
+++ b/app/javascript/mastodon/store/middlewares/loading_bar.ts
@@ -3,9 +3,11 @@ import {
isPending as isThunkActionPending,
isFulfilled as isThunkActionFulfilled,
isRejected as isThunkActionRejected,
+ isAction,
} from '@reduxjs/toolkit';
+import type { Middleware, UnknownAction } from '@reduxjs/toolkit';
+
import { showLoading, hideLoading } from 'react-redux-loading-bar';
-import type { AnyAction, Middleware } from 'redux';
import type { RootState } from '..';
@@ -19,14 +21,28 @@ const defaultTypeSuffixes: Config['promiseTypeSuffixes'] = [
'REJECTED',
];
+interface ActionWithSkipLoading extends UnknownAction {
+ skipLoading: boolean;
+}
+
+function isActionWithSkipLoading(
+ action: unknown,
+): action is ActionWithSkipLoading {
+ return (
+ isAction(action) &&
+ 'skipLoading' in action &&
+ typeof action.skipLoading === 'boolean'
+ );
+}
+
export const loadingBarMiddleware = (
config: Config = {},
-): Middleware => {
+): Middleware<{ skipLoading?: boolean }, RootState> => {
const promiseTypeSuffixes = config.promiseTypeSuffixes ?? defaultTypeSuffixes;
return ({ dispatch }) =>
(next) =>
- (action: AnyAction) => {
+ (action) => {
let isPending = false;
let isFulfilled = false;
let isRejected = false;
@@ -39,7 +55,7 @@ export const loadingBarMiddleware = (
else if (isThunkActionFulfilled(action)) isFulfilled = true;
else if (isThunkActionRejected(action)) isRejected = true;
} else if (
- action.type &&
+ isActionWithSkipLoading(action) &&
!action.skipLoading &&
typeof action.type === 'string'
) {
diff --git a/app/javascript/mastodon/store/middlewares/sounds.ts b/app/javascript/mastodon/store/middlewares/sounds.ts
index 09ade7d75..51839f427 100644
--- a/app/javascript/mastodon/store/middlewares/sounds.ts
+++ b/app/javascript/mastodon/store/middlewares/sounds.ts
@@ -1,4 +1,5 @@
-import type { Middleware, AnyAction } from 'redux';
+import { isAction } from '@reduxjs/toolkit';
+import type { Middleware, UnknownAction } from '@reduxjs/toolkit';
import ready from 'mastodon/ready';
import { assetHost } from 'mastodon/utils/config';
@@ -10,6 +11,21 @@ interface AudioSource {
type: string;
}
+interface ActionWithMetaSound extends UnknownAction {
+ meta: { sound: string };
+}
+
+function isActionWithMetaSound(action: unknown): action is ActionWithMetaSound {
+ return (
+ isAction(action) &&
+ 'meta' in action &&
+ typeof action.meta === 'object' &&
+ !!action.meta &&
+ 'sound' in action.meta &&
+ typeof action.meta.sound === 'string'
+ );
+}
+
const createAudio = (sources: AudioSource[]) => {
const audio = new Audio();
sources.forEach(({ type, src }) => {
@@ -34,7 +50,10 @@ const play = (audio: HTMLAudioElement) => {
void audio.play();
};
-export const soundsMiddleware = (): Middleware => {
+export const soundsMiddleware = (): Middleware<
+ Record,
+ RootState
+> => {
const soundCache: Record = {};
void ready(() => {
@@ -50,15 +69,15 @@ export const soundsMiddleware = (): Middleware => {
]);
});
- return () =>
- (next) =>
- (action: AnyAction & { meta?: { sound?: string } }) => {
- const sound = action.meta?.sound;
+ return () => (next) => (action) => {
+ if (isActionWithMetaSound(action)) {
+ const sound = action.meta.sound;
if (sound && Object.hasOwn(soundCache, sound)) {
play(soundCache[sound]);
}
+ }
- return next(action);
- };
+ return next(action);
+ };
};
diff --git a/app/javascript/mastodon/store/typed_functions.ts b/app/javascript/mastodon/store/typed_functions.ts
index f1e71385a..4859b8265 100644
--- a/app/javascript/mastodon/store/typed_functions.ts
+++ b/app/javascript/mastodon/store/typed_functions.ts
@@ -1,12 +1,11 @@
-import type { TypedUseSelectorHook } from 'react-redux';
-import { useDispatch, useSelector } from 'react-redux';
-
import { createAsyncThunk } from '@reduxjs/toolkit';
+// eslint-disable-next-line @typescript-eslint/no-restricted-imports
+import { useDispatch, useSelector } from 'react-redux';
import type { AppDispatch, RootState } from './store';
-export const useAppDispatch: () => AppDispatch = useDispatch;
-export const useAppSelector: TypedUseSelectorHook = useSelector;
+export const useAppDispatch = useDispatch.withTypes();
+export const useAppSelector = useSelector.withTypes();
export const createAppAsyncThunk = createAsyncThunk.withTypes<{
state: RootState;
diff --git a/app/javascript/material-icons/400-24px/account_circle-fill.svg b/app/javascript/material-icons/400-24px/account_circle-fill.svg
new file mode 100644
index 000000000..1bf9d57a3
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/account_circle-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/account_circle.svg b/app/javascript/material-icons/400-24px/account_circle.svg
new file mode 100644
index 000000000..ce59194be
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/account_circle.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/add-fill.svg b/app/javascript/material-icons/400-24px/add-fill.svg
new file mode 100644
index 000000000..f8bc9309c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/add-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/add.svg b/app/javascript/material-icons/400-24px/add.svg
new file mode 100644
index 000000000..f8bc9309c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/add.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/add_photo_alternate-fill.svg b/app/javascript/material-icons/400-24px/add_photo_alternate-fill.svg
new file mode 100644
index 000000000..deb3f8e0d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/add_photo_alternate-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/add_photo_alternate.svg b/app/javascript/material-icons/400-24px/add_photo_alternate.svg
new file mode 100644
index 000000000..0ae8ad841
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/add_photo_alternate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/alternate_email-fill.svg b/app/javascript/material-icons/400-24px/alternate_email-fill.svg
new file mode 100644
index 000000000..7648cf975
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/alternate_email-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/alternate_email.svg b/app/javascript/material-icons/400-24px/alternate_email.svg
new file mode 100644
index 000000000..7648cf975
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/alternate_email.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/arrow_back-fill.svg b/app/javascript/material-icons/400-24px/arrow_back-fill.svg
new file mode 100644
index 000000000..cba0c8b2a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/arrow_back-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/arrow_back.svg b/app/javascript/material-icons/400-24px/arrow_back.svg
new file mode 100644
index 000000000..cba0c8b2a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/arrow_back.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/arrow_drop_down-fill.svg b/app/javascript/material-icons/400-24px/arrow_drop_down-fill.svg
new file mode 100644
index 000000000..48c72546d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/arrow_drop_down-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/arrow_drop_down.svg b/app/javascript/material-icons/400-24px/arrow_drop_down.svg
new file mode 100644
index 000000000..48c72546d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/arrow_drop_down.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/arrow_right_alt-fill.svg b/app/javascript/material-icons/400-24px/arrow_right_alt-fill.svg
new file mode 100644
index 000000000..4bf73bb6d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/arrow_right_alt-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/arrow_right_alt.svg b/app/javascript/material-icons/400-24px/arrow_right_alt.svg
new file mode 100644
index 000000000..4bf73bb6d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/arrow_right_alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/bar_chart_4_bars-fill.svg b/app/javascript/material-icons/400-24px/bar_chart_4_bars-fill.svg
new file mode 100644
index 000000000..63215a3e0
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/bar_chart_4_bars-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/bar_chart_4_bars.svg b/app/javascript/material-icons/400-24px/bar_chart_4_bars.svg
new file mode 100644
index 000000000..63215a3e0
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/bar_chart_4_bars.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/block-fill.svg b/app/javascript/material-icons/400-24px/block-fill.svg
new file mode 100644
index 000000000..20e9889ae
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/block-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/block.svg b/app/javascript/material-icons/400-24px/block.svg
new file mode 100644
index 000000000..20e9889ae
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/block.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/bookmark-fill.svg b/app/javascript/material-icons/400-24px/bookmark-fill.svg
new file mode 100644
index 000000000..3a7b4d2e8
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/bookmark-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/bookmark.svg b/app/javascript/material-icons/400-24px/bookmark.svg
new file mode 100644
index 000000000..a8226a6d8
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/bookmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/bookmarks-fill.svg b/app/javascript/material-icons/400-24px/bookmarks-fill.svg
new file mode 100644
index 000000000..f5231f925
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/bookmarks-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/bookmarks.svg b/app/javascript/material-icons/400-24px/bookmarks.svg
new file mode 100644
index 000000000..67dffd685
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/bookmarks.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/campaign-fill.svg b/app/javascript/material-icons/400-24px/campaign-fill.svg
new file mode 100644
index 000000000..3df7275bf
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/campaign-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/campaign.svg b/app/javascript/material-icons/400-24px/campaign.svg
new file mode 100644
index 000000000..a6d893fed
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/campaign.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/cancel-fill.svg b/app/javascript/material-icons/400-24px/cancel-fill.svg
new file mode 100644
index 000000000..f7d476f25
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/cancel-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/cancel.svg b/app/javascript/material-icons/400-24px/cancel.svg
new file mode 100644
index 000000000..8504fbfda
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/cancel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/cancel_presentation-fill.svg b/app/javascript/material-icons/400-24px/cancel_presentation-fill.svg
new file mode 100644
index 000000000..8e8e6a1ee
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/cancel_presentation-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/cancel_presentation.svg b/app/javascript/material-icons/400-24px/cancel_presentation.svg
new file mode 100644
index 000000000..c0da419cd
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/cancel_presentation.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/check-fill.svg b/app/javascript/material-icons/400-24px/check-fill.svg
new file mode 100644
index 000000000..1655d12bf
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/check-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/check.svg b/app/javascript/material-icons/400-24px/check.svg
new file mode 100644
index 000000000..1655d12bf
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/check.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/check_box_outline_blank-fill.svg b/app/javascript/material-icons/400-24px/check_box_outline_blank-fill.svg
new file mode 100644
index 000000000..3f7df315a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/check_box_outline_blank-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/check_box_outline_blank.svg b/app/javascript/material-icons/400-24px/check_box_outline_blank.svg
new file mode 100644
index 000000000..3f7df315a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/check_box_outline_blank.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/chevron_left-fill.svg b/app/javascript/material-icons/400-24px/chevron_left-fill.svg
new file mode 100644
index 000000000..53783746a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/chevron_left-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/chevron_left.svg b/app/javascript/material-icons/400-24px/chevron_left.svg
new file mode 100644
index 000000000..53783746a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/chevron_left.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/chevron_right-fill.svg b/app/javascript/material-icons/400-24px/chevron_right-fill.svg
new file mode 100644
index 000000000..410046736
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/chevron_right-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/chevron_right.svg b/app/javascript/material-icons/400-24px/chevron_right.svg
new file mode 100644
index 000000000..410046736
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/chevron_right.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/close-fill.svg b/app/javascript/material-icons/400-24px/close-fill.svg
new file mode 100644
index 000000000..5a60c58e7
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/close-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/close.svg b/app/javascript/material-icons/400-24px/close.svg
new file mode 100644
index 000000000..5a60c58e7
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/close.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/content_copy-fill.svg b/app/javascript/material-icons/400-24px/content_copy-fill.svg
new file mode 100644
index 000000000..dabf09450
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/content_copy-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/content_copy.svg b/app/javascript/material-icons/400-24px/content_copy.svg
new file mode 100644
index 000000000..d875c8449
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/content_copy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/delete-fill.svg b/app/javascript/material-icons/400-24px/delete-fill.svg
new file mode 100644
index 000000000..59d1abb8b
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/delete-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/delete.svg b/app/javascript/material-icons/400-24px/delete.svg
new file mode 100644
index 000000000..560d174b9
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/delete.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/delete_forever-fill.svg b/app/javascript/material-icons/400-24px/delete_forever-fill.svg
new file mode 100644
index 000000000..40fe4497f
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/delete_forever-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/delete_forever.svg b/app/javascript/material-icons/400-24px/delete_forever.svg
new file mode 100644
index 000000000..763f517d1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/delete_forever.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/description-fill.svg b/app/javascript/material-icons/400-24px/description-fill.svg
new file mode 100644
index 000000000..07998b29d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/description-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/description.svg b/app/javascript/material-icons/400-24px/description.svg
new file mode 100644
index 000000000..309a4f5b3
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/description.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/done-fill.svg b/app/javascript/material-icons/400-24px/done-fill.svg
new file mode 100644
index 000000000..1655d12bf
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/done-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/done.svg b/app/javascript/material-icons/400-24px/done.svg
new file mode 100644
index 000000000..1655d12bf
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/done.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/done_all-fill.svg b/app/javascript/material-icons/400-24px/done_all-fill.svg
new file mode 100644
index 000000000..8f05228c4
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/done_all-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/done_all.svg b/app/javascript/material-icons/400-24px/done_all.svg
new file mode 100644
index 000000000..8f05228c4
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/done_all.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/download-fill.svg b/app/javascript/material-icons/400-24px/download-fill.svg
new file mode 100644
index 000000000..6a171ea82
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/download-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/download.svg b/app/javascript/material-icons/400-24px/download.svg
new file mode 100644
index 000000000..6a171ea82
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/edit-fill.svg b/app/javascript/material-icons/400-24px/edit-fill.svg
new file mode 100644
index 000000000..278e79978
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/edit-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/edit.svg b/app/javascript/material-icons/400-24px/edit.svg
new file mode 100644
index 000000000..cb81b1130
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/edit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/edit_note-fill.svg b/app/javascript/material-icons/400-24px/edit_note-fill.svg
new file mode 100644
index 000000000..b18db1df8
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/edit_note-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/edit_note.svg b/app/javascript/material-icons/400-24px/edit_note.svg
new file mode 100644
index 000000000..cf7e98405
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/edit_note.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/expand_more-fill.svg b/app/javascript/material-icons/400-24px/expand_more-fill.svg
new file mode 100644
index 000000000..0c8f27359
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/expand_more-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/expand_more.svg b/app/javascript/material-icons/400-24px/expand_more.svg
new file mode 100644
index 000000000..0c8f27359
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/expand_more.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/find_in_page-fill.svg b/app/javascript/material-icons/400-24px/find_in_page-fill.svg
new file mode 100644
index 000000000..146f838a2
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/find_in_page-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/find_in_page.svg b/app/javascript/material-icons/400-24px/find_in_page.svg
new file mode 100644
index 000000000..f21c2786c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/find_in_page.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/flag-fill.svg b/app/javascript/material-icons/400-24px/flag-fill.svg
new file mode 100644
index 000000000..e44a94d90
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/flag-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/flag.svg b/app/javascript/material-icons/400-24px/flag.svg
new file mode 100644
index 000000000..cb4c810e0
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/flag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/fullscreen-fill.svg b/app/javascript/material-icons/400-24px/fullscreen-fill.svg
new file mode 100644
index 000000000..940c878a7
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/fullscreen-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/fullscreen.svg b/app/javascript/material-icons/400-24px/fullscreen.svg
new file mode 100644
index 000000000..940c878a7
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/fullscreen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/fullscreen_exit-fill.svg b/app/javascript/material-icons/400-24px/fullscreen_exit-fill.svg
new file mode 100644
index 000000000..d9d45a6c6
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/fullscreen_exit-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/fullscreen_exit.svg b/app/javascript/material-icons/400-24px/fullscreen_exit.svg
new file mode 100644
index 000000000..d9d45a6c6
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/fullscreen_exit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/group-fill.svg b/app/javascript/material-icons/400-24px/group-fill.svg
new file mode 100644
index 000000000..c0d6cef5c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/group-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/group.svg b/app/javascript/material-icons/400-24px/group.svg
new file mode 100644
index 000000000..dbc2c937e
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/home-fill.svg b/app/javascript/material-icons/400-24px/home-fill.svg
new file mode 100644
index 000000000..e25441638
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/home-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/home.svg b/app/javascript/material-icons/400-24px/home.svg
new file mode 100644
index 000000000..d700ddea7
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/home.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/info-fill.svg b/app/javascript/material-icons/400-24px/info-fill.svg
new file mode 100644
index 000000000..0232e17ad
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/info-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/info.svg b/app/javascript/material-icons/400-24px/info.svg
new file mode 100644
index 000000000..05606f4e5
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/info.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/insert_chart-fill.svg b/app/javascript/material-icons/400-24px/insert_chart-fill.svg
new file mode 100644
index 000000000..12d137ca8
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/insert_chart-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/insert_chart.svg b/app/javascript/material-icons/400-24px/insert_chart.svg
new file mode 100644
index 000000000..4f2a10be5
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/insert_chart.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/link-fill.svg b/app/javascript/material-icons/400-24px/link-fill.svg
new file mode 100644
index 000000000..319a0681c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/link-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/link.svg b/app/javascript/material-icons/400-24px/link.svg
new file mode 100644
index 000000000..319a0681c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/link.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/list_alt-fill.svg b/app/javascript/material-icons/400-24px/list_alt-fill.svg
new file mode 100644
index 000000000..6aa8b5082
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/list_alt-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/list_alt.svg b/app/javascript/material-icons/400-24px/list_alt.svg
new file mode 100644
index 000000000..cca8ab195
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/list_alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/lock-fill.svg b/app/javascript/material-icons/400-24px/lock-fill.svg
new file mode 100644
index 000000000..0815d7841
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/lock-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/lock.svg b/app/javascript/material-icons/400-24px/lock.svg
new file mode 100644
index 000000000..20b9e3984
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/lock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/lock_open-fill.svg b/app/javascript/material-icons/400-24px/lock_open-fill.svg
new file mode 100644
index 000000000..60309dce5
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/lock_open-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/lock_open.svg b/app/javascript/material-icons/400-24px/lock_open.svg
new file mode 100644
index 000000000..824c70b7c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/lock_open.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/logout-fill.svg b/app/javascript/material-icons/400-24px/logout-fill.svg
new file mode 100644
index 000000000..488145350
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/logout-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/logout.svg b/app/javascript/material-icons/400-24px/logout.svg
new file mode 100644
index 000000000..488145350
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/logout.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/menu-fill.svg b/app/javascript/material-icons/400-24px/menu-fill.svg
new file mode 100644
index 000000000..2f427e91c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/menu-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/menu.svg b/app/javascript/material-icons/400-24px/menu.svg
new file mode 100644
index 000000000..2f427e91c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/menu.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/mood-fill.svg b/app/javascript/material-icons/400-24px/mood-fill.svg
new file mode 100644
index 000000000..9480d0fb9
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/mood-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/mood.svg b/app/javascript/material-icons/400-24px/mood.svg
new file mode 100644
index 000000000..46cafa768
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/mood.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/more_horiz-fill.svg b/app/javascript/material-icons/400-24px/more_horiz-fill.svg
new file mode 100644
index 000000000..e77715489
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/more_horiz-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/more_horiz.svg b/app/javascript/material-icons/400-24px/more_horiz.svg
new file mode 100644
index 000000000..e77715489
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/more_horiz.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/music_note-fill.svg b/app/javascript/material-icons/400-24px/music_note-fill.svg
new file mode 100644
index 000000000..b10ad1921
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/music_note-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/music_note.svg b/app/javascript/material-icons/400-24px/music_note.svg
new file mode 100644
index 000000000..b10ad1921
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/music_note.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/navigate_before-fill.svg b/app/javascript/material-icons/400-24px/navigate_before-fill.svg
new file mode 100644
index 000000000..53783746a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/navigate_before-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/navigate_before.svg b/app/javascript/material-icons/400-24px/navigate_before.svg
new file mode 100644
index 000000000..53783746a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/navigate_before.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/navigate_next-fill.svg b/app/javascript/material-icons/400-24px/navigate_next-fill.svg
new file mode 100644
index 000000000..410046736
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/navigate_next-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/navigate_next.svg b/app/javascript/material-icons/400-24px/navigate_next.svg
new file mode 100644
index 000000000..410046736
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/navigate_next.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/notifications-fill.svg b/app/javascript/material-icons/400-24px/notifications-fill.svg
new file mode 100644
index 000000000..0730efefc
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/notifications-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/notifications.svg b/app/javascript/material-icons/400-24px/notifications.svg
new file mode 100644
index 000000000..dbfe0e040
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/notifications.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/notifications_active-fill.svg b/app/javascript/material-icons/400-24px/notifications_active-fill.svg
new file mode 100644
index 000000000..856a0ed8a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/notifications_active-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/notifications_active.svg b/app/javascript/material-icons/400-24px/notifications_active.svg
new file mode 100644
index 000000000..1389a10e0
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/notifications_active.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/open_in_new-fill.svg b/app/javascript/material-icons/400-24px/open_in_new-fill.svg
new file mode 100644
index 000000000..42895ffd1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/open_in_new-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/open_in_new.svg b/app/javascript/material-icons/400-24px/open_in_new.svg
new file mode 100644
index 000000000..42895ffd1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/open_in_new.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/pause-fill.svg b/app/javascript/material-icons/400-24px/pause-fill.svg
new file mode 100644
index 000000000..fc9a8074d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/pause-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/pause.svg b/app/javascript/material-icons/400-24px/pause.svg
new file mode 100644
index 000000000..95bc792fc
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/pause.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/person-fill.svg b/app/javascript/material-icons/400-24px/person-fill.svg
new file mode 100644
index 000000000..73ef1efc1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/person-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/person.svg b/app/javascript/material-icons/400-24px/person.svg
new file mode 100644
index 000000000..a3f6b246c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/person.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/person_add-fill.svg b/app/javascript/material-icons/400-24px/person_add-fill.svg
new file mode 100644
index 000000000..3fa7f6528
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/person_add-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/person_add.svg b/app/javascript/material-icons/400-24px/person_add.svg
new file mode 100644
index 000000000..39b592bf0
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/person_add.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/pets.svg b/app/javascript/material-icons/400-24px/pets.svg
new file mode 100644
index 000000000..b65f32edb
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/pets.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/photo_library-fill.svg b/app/javascript/material-icons/400-24px/photo_library-fill.svg
new file mode 100644
index 000000000..e68aec832
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/photo_library-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/photo_library.svg b/app/javascript/material-icons/400-24px/photo_library.svg
new file mode 100644
index 000000000..3b22224b8
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/photo_library.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/play_arrow-fill.svg b/app/javascript/material-icons/400-24px/play_arrow-fill.svg
new file mode 100644
index 000000000..6465b9022
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/play_arrow-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/play_arrow.svg b/app/javascript/material-icons/400-24px/play_arrow.svg
new file mode 100644
index 000000000..52f0fcc9c
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/play_arrow.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/public-fill.svg b/app/javascript/material-icons/400-24px/public-fill.svg
new file mode 100644
index 000000000..1e9e79de4
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/public-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/public.svg b/app/javascript/material-icons/400-24px/public.svg
new file mode 100644
index 000000000..1e9e79de4
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/public.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/push_pin-fill.svg b/app/javascript/material-icons/400-24px/push_pin-fill.svg
new file mode 100644
index 000000000..6095ba77e
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/push_pin-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/push_pin.svg b/app/javascript/material-icons/400-24px/push_pin.svg
new file mode 100644
index 000000000..e1abd900a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/push_pin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/quiet_time-fill.svg b/app/javascript/material-icons/400-24px/quiet_time-fill.svg
new file mode 100644
index 000000000..aed5740db
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/quiet_time-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/quiet_time.svg b/app/javascript/material-icons/400-24px/quiet_time.svg
new file mode 100644
index 000000000..552da6658
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/quiet_time.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/rectangle-fill.svg b/app/javascript/material-icons/400-24px/rectangle-fill.svg
new file mode 100644
index 000000000..64b038f26
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/rectangle-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/rectangle.svg b/app/javascript/material-icons/400-24px/rectangle.svg
new file mode 100644
index 000000000..ada92f2cf
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/rectangle.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/refresh-fill.svg b/app/javascript/material-icons/400-24px/refresh-fill.svg
new file mode 100644
index 000000000..a7a6bc801
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/refresh-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/refresh.svg b/app/javascript/material-icons/400-24px/refresh.svg
new file mode 100644
index 000000000..a7a6bc801
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/refresh.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/repeat-fill.svg b/app/javascript/material-icons/400-24px/repeat-fill.svg
new file mode 100644
index 000000000..c1b09d802
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/repeat-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/repeat.svg b/app/javascript/material-icons/400-24px/repeat.svg
new file mode 100644
index 000000000..c1b09d802
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/repeat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/reply-fill.svg b/app/javascript/material-icons/400-24px/reply-fill.svg
new file mode 100644
index 000000000..eb661f282
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/reply-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/reply.svg b/app/javascript/material-icons/400-24px/reply.svg
new file mode 100644
index 000000000..eb661f282
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/reply.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/reply_all-fill.svg b/app/javascript/material-icons/400-24px/reply_all-fill.svg
new file mode 100644
index 000000000..74c9573ea
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/reply_all-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/reply_all.svg b/app/javascript/material-icons/400-24px/reply_all.svg
new file mode 100644
index 000000000..74c9573ea
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/reply_all.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/search-fill.svg b/app/javascript/material-icons/400-24px/search-fill.svg
new file mode 100644
index 000000000..ef0d0521e
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/search-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/search.svg b/app/javascript/material-icons/400-24px/search.svg
new file mode 100644
index 000000000..ef0d0521e
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/search.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/settings-fill.svg b/app/javascript/material-icons/400-24px/settings-fill.svg
new file mode 100644
index 000000000..f13347950
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/settings-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/settings.svg b/app/javascript/material-icons/400-24px/settings.svg
new file mode 100644
index 000000000..817c782f0
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/settings.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/share-fill.svg b/app/javascript/material-icons/400-24px/share-fill.svg
new file mode 100644
index 000000000..5a6b0d0a8
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/share-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/share.svg b/app/javascript/material-icons/400-24px/share.svg
new file mode 100644
index 000000000..6876cd42d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/share.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/smart_toy-fill.svg b/app/javascript/material-icons/400-24px/smart_toy-fill.svg
new file mode 100644
index 000000000..df417f5ff
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/smart_toy-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/smart_toy.svg b/app/javascript/material-icons/400-24px/smart_toy.svg
new file mode 100644
index 000000000..b84efc73b
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/smart_toy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/star-fill.svg b/app/javascript/material-icons/400-24px/star-fill.svg
new file mode 100644
index 000000000..cb2231e63
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/star-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/star.svg b/app/javascript/material-icons/400-24px/star.svg
new file mode 100644
index 000000000..1736e085d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/star.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/tag-fill.svg b/app/javascript/material-icons/400-24px/tag-fill.svg
new file mode 100644
index 000000000..ce76d537b
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/tag-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/tag.svg b/app/javascript/material-icons/400-24px/tag.svg
new file mode 100644
index 000000000..ce76d537b
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/tag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/translate-fill.svg b/app/javascript/material-icons/400-24px/translate-fill.svg
new file mode 100644
index 000000000..ecaaf37f1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/translate-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/translate.svg b/app/javascript/material-icons/400-24px/translate.svg
new file mode 100644
index 000000000..ecaaf37f1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/translate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/tune-fill.svg b/app/javascript/material-icons/400-24px/tune-fill.svg
new file mode 100644
index 000000000..887f8bd49
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/tune-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/tune.svg b/app/javascript/material-icons/400-24px/tune.svg
new file mode 100644
index 000000000..887f8bd49
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/tune.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/upload_file-fill.svg b/app/javascript/material-icons/400-24px/upload_file-fill.svg
new file mode 100644
index 000000000..639d77af3
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/upload_file-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/upload_file.svg b/app/javascript/material-icons/400-24px/upload_file.svg
new file mode 100644
index 000000000..40ce5b65e
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/upload_file.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/visibility-fill.svg b/app/javascript/material-icons/400-24px/visibility-fill.svg
new file mode 100644
index 000000000..44b5f4c60
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/visibility-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/visibility.svg b/app/javascript/material-icons/400-24px/visibility.svg
new file mode 100644
index 000000000..8fe45d09a
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/visibility.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/visibility_off-fill.svg b/app/javascript/material-icons/400-24px/visibility_off-fill.svg
new file mode 100644
index 000000000..e21fbd88d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/visibility_off-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/visibility_off.svg b/app/javascript/material-icons/400-24px/visibility_off.svg
new file mode 100644
index 000000000..d98cf8d94
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/visibility_off.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/volume_off-fill.svg b/app/javascript/material-icons/400-24px/volume_off-fill.svg
new file mode 100644
index 000000000..b3d12d4d9
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/volume_off-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/volume_off.svg b/app/javascript/material-icons/400-24px/volume_off.svg
new file mode 100644
index 000000000..a0acf6374
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/volume_off.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/volume_up-fill.svg b/app/javascript/material-icons/400-24px/volume_up-fill.svg
new file mode 100644
index 000000000..dd5771215
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/volume_up-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/volume_up.svg b/app/javascript/material-icons/400-24px/volume_up.svg
new file mode 100644
index 000000000..fd9006a6d
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/volume_up.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/warning-fill.svg b/app/javascript/material-icons/400-24px/warning-fill.svg
new file mode 100644
index 000000000..c3727d3f5
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/warning-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/warning.svg b/app/javascript/material-icons/400-24px/warning.svg
new file mode 100644
index 000000000..238299e60
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/warning.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/LICENSE b/app/javascript/material-icons/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/app/javascript/material-icons/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/app/javascript/material-icons/README.md b/app/javascript/material-icons/README.md
new file mode 100644
index 000000000..1479cb225
--- /dev/null
+++ b/app/javascript/material-icons/README.md
@@ -0,0 +1 @@
+Files in this directory are Material Symbols icons fetched using the `icons:download` task.
diff --git a/app/javascript/packs/inert.js b/app/javascript/packs/inert.js
new file mode 100644
index 000000000..7c04a97fa
--- /dev/null
+++ b/app/javascript/packs/inert.js
@@ -0,0 +1,4 @@
+/* Placeholder file to have `inert.scss` compiled by Webpack
+ This is used by the `wicg-inert` polyfill */
+
+import '../styles/inert.scss';
diff --git a/app/javascript/packs/share.jsx b/app/javascript/packs/share.jsx
index 0f3b84549..7b5723091 100644
--- a/app/javascript/packs/share.jsx
+++ b/app/javascript/packs/share.jsx
@@ -13,10 +13,12 @@ function loaded() {
if (mountNode) {
const attr = mountNode.getAttribute('data-props');
- if(!attr) return;
+
+ if (!attr) return;
const props = JSON.parse(attr);
const root = createRoot(mountNode);
+
root.render();
}
}
diff --git a/app/javascript/styles/contrast/diff.scss b/app/javascript/styles/contrast/diff.scss
index 1c2386f02..ae607f484 100644
--- a/app/javascript/styles/contrast/diff.scss
+++ b/app/javascript/styles/contrast/diff.scss
@@ -1,20 +1,7 @@
-.compose-form {
- .compose-form__modifiers {
- .compose-form__upload {
- &-description {
- input {
- &::placeholder {
- opacity: 1;
- }
- }
- }
- }
- }
-}
-
.status__content a,
-.link-footer a,
.reply-indicator__content a,
+.edit-indicator__content a,
+.link-footer a,
.status__content__read-more-button,
.status__content__translate-button {
text-decoration: underline;
@@ -42,7 +29,9 @@
}
}
-.status__content a {
+.status__content a,
+.reply-indicator__content a,
+.edit-indicator__content a {
color: $highlight-text-color;
}
@@ -50,24 +39,10 @@
color: $darker-text-color;
}
-.compose-form__poll-wrapper .button.button-secondary,
-.compose-form .autosuggest-textarea__textarea::placeholder,
-.compose-form .spoiler-input__input::placeholder,
-.report-dialog-modal__textarea::placeholder,
-.language-dropdown__dropdown__results__item__common-name,
-.compose-form .icon-button {
+.report-dialog-modal__textarea::placeholder {
color: $inverted-text-color;
}
-.text-icon-button.active {
- color: $ui-highlight-color;
-}
-
-.language-dropdown__dropdown__results__item.active {
- background: $ui-highlight-color;
- font-weight: 500;
-}
-
.link-button:disabled {
cursor: not-allowed;
diff --git a/app/javascript/styles/fonts/inter.scss b/app/javascript/styles/fonts/inter.scss
new file mode 100644
index 000000000..bb4899b70
--- /dev/null
+++ b/app/javascript/styles/fonts/inter.scss
@@ -0,0 +1,8 @@
+@font-face {
+ font-family: Inter;
+ src: url('../fonts/inter/inter-variable-font-slnt-wght.woff2')
+ format('woff2-variations');
+ font-weight: 100 900;
+ font-style: normal;
+ mso-generic-font-family: swiss; /* stylelint-disable-line property-no-unknown -- Proprietary property for Outlook on Windows. */
+}
diff --git a/public/inert.css b/app/javascript/styles/inert.scss
similarity index 78%
rename from public/inert.css
rename to app/javascript/styles/inert.scss
index 54e10616d..a60045d7b 100644
--- a/public/inert.css
+++ b/app/javascript/styles/inert.scss
@@ -1,3 +1,5 @@
+/* This is needed for the wicg-inert polyfill */
+
[inert] {
pointer-events: none;
cursor: default;
diff --git a/app/javascript/styles/mailer.scss b/app/javascript/styles/mailer.scss
index 92d00cae8..a2cbb494b 100644
--- a/app/javascript/styles/mailer.scss
+++ b/app/javascript/styles/mailer.scss
@@ -1,574 +1,620 @@
-@import 'mastodon/variables';
-@import 'fonts/roboto';
+@import 'fonts/inter';
-table,
-td,
-div {
- box-sizing: border-box;
-}
-
-html,
body {
- width: 100% !important;
- min-width: 100%;
+ accent-color: #6364ff;
+ word-break: break-word;
margin: 0;
+ background-color: #f3f2f5;
padding: 0;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
-}
-
-.email-body {
- td,
- div,
- a,
- span {
- line-height: inherit;
- }
-}
-
-a {
- &,
- &:visited,
- span {
- text-decoration: none;
- color: $ui-highlight-color;
- }
-
- #outlook & {
- padding: 0;
- }
-}
-
-img {
- outline: none;
- border: 0;
- text-decoration: none;
- -ms-interpolation-mode: bicubic;
- clear: both;
- line-height: 100%;
-}
-
-table {
- border-spacing: 0;
- mso-table-lspace: 0;
- mso-table-rspace: 0;
-}
-
-td {
- vertical-align: top;
-}
-
-.auto-dir {
- p {
- unicode-bidi: plaintext;
- }
-
- a {
- unicode-bidi: isolate;
- }
-}
-
-.email-table,
-.content-section,
-.column,
-.column-cell {
- width: 100%;
- min-width: 100%;
-}
-
-.email-body {
- font-size: 0 !important;
- line-height: 100%;
- text-align: center;
- padding-left: 16px;
- padding-right: 16px;
-}
-
-.email-start {
- padding-top: 32px;
-}
-
-.email-end {
- padding-bottom: 32px;
-}
-
-.email-body,
-html,
-body {
- background-color: lighten($ui-base-color, 4%);
-}
-
-.email-container,
-.email-row,
-.col-0,
-.col-1,
-.col-2,
-.col-3,
-.col-4,
-.col-5,
-.col-6 {
- font-size: 0;
- display: inline-block;
- width: 100%;
- min-width: 100%;
- min-width: 0 !important;
- vertical-align: top;
-}
-
-.content-cell {
- width: 100%;
- min-width: 100%;
- min-width: 0 !important;
-}
-
-.column-cell {
- padding-top: 16px;
- padding-bottom: 16px;
- vertical-align: top;
-
- &.button-cell {
- padding-top: 0;
- }
-}
-
-.email-container {
- max-width: 632px;
- margin: 0 auto;
- text-align: center;
-}
-
-.email-row {
- display: block;
- max-width: 600px !important;
- margin: 0 auto;
- text-align: center;
- clear: both;
-}
-
-.col-0 {
- max-width: 50px;
-}
-
-.col-1 {
- max-width: 100px;
-}
-
-.col-2 {
- max-width: 200px;
-}
-
-.col-3 {
- max-width: 300px;
-}
-
-.col-4 {
- max-width: 400px;
-}
-
-.col-5 {
- max-width: 500px;
-}
-
-.col-6 {
- max-width: 600px;
-}
-
-.column-cell,
-.column-cell td,
-p {
- font-family: Helvetica, Arial, sans-serif;
-
- @media only screen {
- font-family: $font-sans-serif, sans-serif !important;
- }
-}
-
-.email-body .column-cell,
-.column-cell,
-p {
- font-size: 15px;
- line-height: 23px;
- color: $ui-primary-color;
- mso-line-height-rule: exactly;
- text-rendering: optimizelegibility;
-}
-
-p {
- display: block;
- margin-top: 0;
- margin-bottom: 16px;
-
- &.small {
- font-size: 13px;
- }
-
- &.lead {
- font-size: 19px;
- line-height: 27px;
- }
+ -webkit-text-size-adjust: none;
+ text-size-adjust: none;
}
+p,
h1,
h2,
h3,
h4,
h5,
h6 {
- color: $ui-secondary-color;
- margin-left: 0;
- margin-right: 0;
- margin-top: 20px;
- margin-bottom: 8px;
+ margin: 0;
+ background-color: transparent;
padding: 0;
- font-weight: 500;
+ border: none;
+ font-family: Inter, 'Lucida Grande', sans-serif;
}
-h1 {
- font-size: 26px;
- line-height: 36px;
+img {
+ max-width: 100%;
+ height: auto;
+ border: none;
+ text-indent: 0;
+ vertical-align: middle;
+ color: inherit;
+ font-family: inherit;
}
-h2 {
- font-size: 23px;
- line-height: 30px;
+table {
+ border: none;
}
-h3 {
- font-size: 19px;
- line-height: 25px;
+table + p {
+ margin-top: 16px;
}
-h5 {
- font-size: 16px;
- line-height: 21px;
- font-weight: 700;
- color: lighten($ui-base-color, 34%);
+.email {
+ min-width: 280px;
+ font-family: Inter, 'Lucida Grande', sans-serif;
+ word-break: break-word;
+ color: #17063b;
+ background-color: #f3f2f5;
}
-.input-cell {
- h5 {
- margin-top: 4px;
- }
-}
-
-.input {
- td {
- background: darken($ui-base-color, 8%);
- border-radius: 4px;
- padding: 16px;
- line-height: 20px;
- mso-line-height-rule: exactly;
- text-align: center;
- font-weight: 500;
- font-size: 17px;
- }
-}
-
-.content-cell,
-.blank-cell {
+.email-container {
+ max-width: 740px;
+ margin: 0 auto;
width: 100%;
- font-size: 0;
- text-align: center;
- vertical-align: top;
- padding-left: 16px;
- padding-right: 16px;
}
-.content-cell {
- background-color: darken($ui-base-color, 4%);
-
- &.darker {
- background-color: darken($ui-base-color, 8%);
- }
+// Outer email card
+.email-card-table {
+ border-collapse: collapse;
+ width: 100%;
}
-.hero {
- background-color: $ui-base-color;
- padding-top: 20px;
+.email-card-td {
+ overflow: hidden;
+ box-shadow: 0 4px 16px 0 rgba(23, 6, 59, 4%);
+ background-color: #fff;
}
-.hero-with-button {
- padding-bottom: 16px;
-
- h1 {
- margin-bottom: 4px;
- }
-
- p.lead {
- margin-bottom: 32px;
- }
+// Inner email card
+.email-inner-card-table {
+ border-collapse: separate;
+ width: 100%;
+ border-radius: 12px;
}
-.header {
- border-radius: 5px 5px 0 0;
- background-color: darken($ui-base-color, 8%);
-
- .column-cell {
- text-align: center;
- padding-top: 20px;
- padding-bottom: 8px;
- }
+.email-inner-card-td-without-padding,
+.email-inner-card-td {
+ border-radius: 12px;
+ overflow: hidden;
+ box-shadow: 0 4px 16px 0 rgba(23, 6, 59, 8%);
+ background-color: #fff;
+ border: 1px solid #dfdee3;
}
-.content-start {
- padding-top: 32px;
+.email-inner-card-td {
+ padding: 24px;
}
-.content-end {
- border-radius: 0 0 5px 5px;
- padding-top: 16px;
+// Account
+.email-account-banner-table {
+ background-color: #f3f2f5;
+ border-top-left-radius: 12px;
+ border-top-right-radius: 12px;
}
-.footer {
- .column-cell,
- p {
- color: lighten($ui-base-color, 34%);
- }
+.email-account-banner-td {
+ border-top-left-radius: 12px;
+ border-top-right-radius: 12px;
+ height: 140px;
+ vertical-align: bottom;
+ background-position: center !important;
+ background-size: cover !important;
+}
- p {
- margin-bottom: 0;
- font-size: 13px;
+.email-account-banner-inner-td {
+ padding: 24px 24px 0;
+ mso-padding-alt: 24px;
+}
- &.small {
- margin-bottom: 0;
- }
- }
+.email-account-banner-overlap-div {
+ max-height: 42px;
+}
- a {
- color: lighten($ui-base-color, 34%);
- text-decoration: underline;
- }
+.email-account-banner-icon-table {
+ width: auto;
+ margin: 0;
+ overflow: hidden;
+ border-radius: 8px;
+ border-collapse: separate;
+ background-color: #fff;
+ border: 2px solid #fff;
img {
- opacity: 0.3;
- }
-}
-
-.logo {
- position: relative;
- left: -4px;
-}
-
-.button {
- display: table;
- margin-left: auto;
- margin-right: auto;
-
- td {
- line-height: 20px;
- mso-line-height-rule: exactly;
- border-radius: 4px;
- text-align: center;
- font-weight: 500;
- font-size: 17px;
- padding: 0 !important;
-
- a,
- a span {
- color: $primary-text-color;
- display: block !important;
- text-align: center !important;
- vertical-align: top !important;
- line-height: inherit !important;
- }
-
- a {
- padding: 10px 22px !important;
- line-height: 26px !important;
- font-weight: 500 !important;
- }
- }
-
- &.button-small {
- td {
- border-radius: 4px;
- font-size: 14px;
- padding: 8px 16px;
-
- a {
- padding: 5px 16px !important;
- line-height: 26px !important;
- }
- }
- }
-}
-
-.button-default {
- background-color: darken($ui-base-color, 8%);
-}
-
-.button-primary {
- background-color: darken($ui-highlight-color, 3%);
-}
-
-.text-center {
- text-align: center;
-}
-
-.text-right {
- text-align: right;
-}
-
-.padded {
- padding-left: 16px;
- padding-right: 16px;
-}
-
-.padded-bottom {
- padding-bottom: 32px;
-}
-
-.margin-bottom {
- margin-bottom: 20px;
-}
-
-.hero-icon {
- width: 64px;
-
- td {
- text-align: center;
- vertical-align: middle;
- line-height: 100%;
- mso-line-height-rule: exactly;
- padding: 16px;
- border-radius: 80px;
- background: $success-green;
- }
-
- &.warning-icon td {
- background: $gold-star;
- }
-
- &.alert-icon td {
- background: $error-red;
- }
-
- img {
- max-width: 32px;
- width: 32px;
- height: 32px;
display: block;
- line-height: 100%;
+ max-width: 100%;
+ border: none;
+ border-radius: 6px;
}
}
-.hr {
- width: 100%;
+.email-account-body-td {
+ padding: 56px 24px 24px;
+ mso-padding-alt: 24px;
+}
+.email-account-name {
+ font-size: 16px;
+ font-weight: 600;
+ line-height: 24px;
+ color: #17063b;
+}
+
+.email-account-handle {
+ font-size: 14px;
+ line-height: 20px;
+ color: #746a89;
+}
+
+.email-account-stats-table {
td {
- font-size: 0;
- line-height: 1px;
- mso-line-height-rule: exactly;
- min-height: 1px;
- overflow: hidden;
- height: 2px;
- background-color: transparent !important;
- border-top: 1px solid lighten($ui-base-color, 8%);
+ padding-right: 16px;
+ font-size: 14px;
+ line-height: 20px;
+ color: #746a89;
+ }
+
+ b {
+ font-weight: 600;
+ color: #17063b;
+ }
+
+ span {
+ white-space: nowrap;
}
}
-.status {
- padding-bottom: 32px;
-
- &--highlighted {
- border: 1px solid lighten($ui-base-color, 8%);
- border-radius: 4px;
- padding-bottom: 16px;
- margin-bottom: 16px;
- }
-
- .status-header {
- td {
- font-size: 14px;
- padding-bottom: 15px;
- }
-
- bdi {
- color: $white;
- font-size: 16px;
- display: block;
- font-weight: 500;
- }
-
- td:first-child {
- padding-right: 10px;
- }
-
- img {
- width: 48px;
- height: 48px;
- border-radius: 4px;
- }
- }
+// Utility classes
+.email-w-full {
+ width: 100%;
+}
+.email-prose {
p {
- font-size: 19px;
- margin-bottom: 20px;
+ color: #17063b;
+ font-size: 14px;
+ line-height: 20px;
- &.status-footer {
- color: lighten($ui-base-color, 26%);
- font-size: 14px;
- margin-bottom: 0;
+ &:not(:last-child) {
+ margin-bottom: 16px;
+ }
- a {
- color: lighten($ui-base-color, 26%);
+ a:not([class]) {
+ color: #6364ff;
+ text-decoration: none;
+
+ &:hover {
+ color: #563acc !important;
}
}
}
}
-.border-top {
- border-top: 1px solid lighten($ui-base-color, 8%);
+.email-padding-24 {
+ padding: 24px;
}
-ul {
- padding-left: 15px;
- margin-top: 0;
- margin-bottom: 0;
+.email-padding-top-24 {
+ padding-top: 24px;
+}
+
+.email-padding-top-16 {
padding-top: 16px;
-
- li {
- margin-bottom: 16px;
- color: lighten($ui-base-color, 26%);
-
- span {
- color: $ui-primary-color;
- }
- }
}
-ul.rules-list {
+.email-padding-top-0 {
padding-top: 0;
}
-@media only screen and (device-width >= 768px) and (device-width <= 1024px) and (orientation: landscape) {
- body {
- min-height: 1024px !important;
+.email-border-top {
+ border-top: 1px solid #dfdee3;
+}
+
+.email-border-bottom {
+ border-bottom: 1px solid #dfdee3;
+}
+
+// Header
+.email-header-td {
+ padding: 16px 32px;
+ background-color: #1b001f;
+ background-image: url('../images/mailer-new/common/header-bg-start.png');
+ background-position: left top;
+ background-repeat: repeat;
+}
+
+.email-header-logo-table {
+ width: auto;
+ margin: 0;
+}
+
+.email-header-logo-td {
+ padding: 16px 0;
+ font-size: 0;
+
+ img {
+ color: #fff;
+ font-size: 16px;
+ font-weight: bold;
+ max-height: 40px;
}
}
-@media (width <= 697px) {
- .email-container,
- .col-1,
- .col-2,
- .col-3,
- .col-4,
- .col-5,
- .col-6 {
- width: 100% !important;
- max-width: none !important;
- }
+.email-header-logo-a {
+ display: inline-block;
- .email-start {
- padding-top: 16px !important;
- }
-
- .email-end {
- padding-bottom: 16px !important;
- }
-
- .padded {
- padding-left: 0 !important;
- padding-right: 0 !important;
+ img {
+ display: inline-block;
+ color: #fff;
+ }
+}
+
+.email-header-logo-div {
+ max-height: 0;
+}
+
+.email-header-logo-p {
+ word-break: break-all;
+ padding-left: 40px;
+ padding-top: 26px;
+ font-size: 11px;
+ line-height: 13px;
+ color: #8d808f;
+ text-align: left;
+}
+
+.email-header-logo-span {
+ display: block;
+ text-align: right;
+}
+
+.email-header-heading-td {
+ padding: 16px 0;
+}
+
+.email-header-heading-img-td {
+ width: 56px;
+ text-align: left;
+ vertical-align: top;
+
+ img {
+ width: 56px;
+ height: 56px;
+ border-radius: 12px;
+ }
+}
+
+.email-header-heading-txt-td {
+ vertical-align: middle;
+ padding-left: 16px;
+ padding-right: 16px;
+
+ h1 {
+ margin-bottom: 5px;
+ color: #fff;
+ font-size: 24px;
+ line-height: 28px;
+ font-weight: 600;
+ }
+
+ p {
+ color: #a399a5;
+ font-size: 18px;
+ line-height: 21.6px;
+ font-weight: 500;
+ }
+
+ &:only-child {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+
+// To make the design work with images off
+// we create an empty div that overlaps with
+// the rest of the content with a dark background.
+.email-header-after-div {
+ max-height: 0;
+}
+
+.email-header-after-inside-div {
+ height: 30px;
+ background-color: #1b001f;
+}
+
+// Body content
+.email-body-td {
+ background-image: url('../images/mailer-new/common/header-bg-end.png');
+ background-position: left top;
+ background-repeat: no-repeat;
+}
+
+.email-body-padding-td {
+ padding: 0 32px 32px;
+ mso-padding-alt: 32px;
+}
+
+.email-body-padding-td {
+ & > p {
+ font-size: 14px;
+ line-height: 20px;
+ color: #17063b;
+
+ a {
+ color: #6364ff;
+ text-decoration: none;
+
+ &:hover {
+ color: #563acc !important;
+ }
+ }
+ }
+}
+
+// Footer
+.email-footer-td {
+ padding: 28px 32px 32px;
+ text-align: center;
+}
+
+.email-footer-logo-a {
+ display: inline-block;
+}
+
+.email-footer-p {
+ color: #9b94ab;
+ text-align: center;
+ font-size: 12px;
+ line-height: 20px;
+
+ a {
+ color: #9b94ab;
+ text-decoration: underline;
+ }
+
+ &:first-child {
+ margin-bottom: 12px;
+ }
+}
+
+// Button
+.email-btn-table {
+ margin: 0;
+ max-width: 100%;
+ border-collapse: separate;
+ border-radius: 8px;
+ background-color: #6364ff;
+}
+
+.email-btn-td {
+ height: 40px;
+ text-align: center;
+ mso-padding-alt: 0 35px;
+}
+
+.email-btn-a {
+ display: block;
+ border-radius: 8px;
+ padding-left: 35px;
+ padding-right: 35px;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ text-align: center;
+ font-family: Inter, 'Lucida Grande', sans-serif;
+ font-size: 14px;
+ font-weight: 600;
+ line-height: 20px;
+ color: #fff;
+ text-decoration: none;
+ transition: background-color 0.3s ease-in-out;
+}
+
+// Status
+.email-status-header-img {
+ vertical-align: top;
+ width: 48px;
+
+ img {
+ width: 48px;
+ height: 48px;
+ border-radius: 8px;
+ overflow: hidden;
+ }
+}
+
+.email-status-header-text {
+ padding-left: 16px;
+ padding-right: 16px;
+ vertical-align: middle;
+}
+
+.email-status-header-name {
+ font-size: 16px;
+ font-weight: 600;
+ line-height: 24px;
+ color: #17063b;
+}
+
+.email-status-header-handle {
+ font-size: 14px;
+ line-height: 20px;
+ color: #746a89;
+}
+
+.email-status-content {
+ padding-top: 24px;
+}
+
+.email-status-spoiler {
+ color: #746a89;
+ font-style: italic;
+ margin-bottom: 8px;
+}
+
+.email-status-prose {
+ p {
+ font-size: 14px;
+ line-height: 20px;
+ color: #17063b;
+ }
+
+ a {
+ color: #6364ff;
+ text-decoration: none;
+
+ &:hover {
+ color: #563acc !important;
+ }
+ }
+}
+
+.email-status-media {
+ margin-top: 16px;
+ font-size: 14px;
+ line-height: 20px;
+ color: #17063b;
+
+ img {
+ border-radius: 8px;
+ }
+
+ a {
+ color: #6364ff;
+ text-decoration: none;
+
+ &:hover {
+ color: #563acc !important;
+ }
+ }
+}
+
+.email-status-footer {
+ margin-top: 16px;
+ font-size: 12px;
+ line-height: 16px;
+ color: #746a89;
+
+ a {
+ color: #746a89;
+ }
+
+ a:hover {
+ color: #746a89 !important;
+ text-decoration: underline !important;
+ }
+}
+
+// Purple frame for emphasis
+.email-frame-table {
+ background-color: #efefff;
+ border-radius: 8px;
+}
+
+.email-frame-td {
+ padding: 16px;
+}
+
+.email-frame-wrapper-td {
+ padding-bottom: 16px;
+}
+
+.email-frame-td > p {
+ text-align: center;
+ font-size: 16px;
+ line-height: 24px;
+}
+
+// Checklist item
+.email-checklist-wrapper-td {
+ padding: 4px 0;
+}
+
+.email-checklist-table {
+ border-radius: 12px;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #efefff;
+ background-color: #fff;
+}
+
+.email-checklist-td {
+ padding: 16px;
+}
+
+.email-checklist-icons-td {
+ width: 84px;
+ vertical-align: top;
+}
+
+.email-checklist-icons-checkbox-td {
+ width: 20px;
+ vertical-align: middle;
+
+ img {
+ max-width: 100%;
+ width: 20px;
+ }
+}
+
+.email-checklist-icons-step-td {
+ width: 64px;
+ text-align: center;
+ vertical-align: middle;
+
+ img {
+ max-width: 100%;
+ width: 40px;
+ }
+}
+
+.email-checklist-text-td {
+ h3 {
+ margin: 0 0 4px;
+ color: #17063b;
+ font-size: 14px;
+ font-weight: 600;
+ line-height: 16.8px;
+ }
+
+ p {
+ margin: 0 0 2px;
+ color: #746a89;
+ font-size: 14px;
+ line-height: 16.8px;
+ }
+
+ .email-btn-table {
+ width: 100px;
+ }
+
+ .email-btn-td {
+ mso-padding-alt: 10px;
+ }
+
+ .email-btn-a {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+}
+
+// Responsive
+/* stylelint-disable-next-line media-feature-range-notation -- Basic media queries have better support across email clients. */
+@media only screen and (min-width: 740px) {
+ .email-desktop-p-8 {
+ padding: 32px !important;
+ }
+
+ .email-desktop-rounded-16px {
+ border-radius: 16px !important;
+ }
+
+ .email-header-td {
+ border-radius: 16px 16px 0 0 !important;
+ }
+
+ .email-desktop-flex {
+ display: flex;
}
}
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 3777fccbf..520e91e28 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -145,10 +145,6 @@ html {
}
}
-.compose-form__autosuggest-wrapper,
-.poll__option input[type='text'],
-.compose-form .spoiler-input__input,
-.compose-form__poll-wrapper select,
.search__input,
.setting-text,
.report-dialog-modal__textarea,
@@ -172,28 +168,11 @@ html {
border-bottom: 0;
}
-.compose-form__poll-wrapper select {
- background: $simple-background-color
- url("data:image/svg+xml;utf8,")
- no-repeat right 8px center / auto 16px;
-}
-
-.compose-form__poll-wrapper,
-.compose-form__poll-wrapper .poll__footer {
- border-top-color: lighten($ui-base-color, 8%);
-}
-
.notification__filter-bar {
border: 1px solid lighten($ui-base-color, 8%);
border-top: 0;
}
-.compose-form .compose-form__buttons-wrapper {
- background: $ui-base-color;
- border: 1px solid lighten($ui-base-color, 8%);
- border-top: 0;
-}
-
.drawer__header,
.drawer__inner {
background: $white;
@@ -206,52 +185,6 @@ html {
no-repeat bottom / 100% auto;
}
-// Change the colors used in compose-form
-.compose-form {
- .compose-form__modifiers {
- .compose-form__upload__actions .icon-button,
- .compose-form__upload__warning .icon-button {
- color: lighten($white, 7%);
-
- &:active,
- &:focus,
- &:hover {
- color: $white;
- }
- }
- }
-
- .compose-form__buttons-wrapper {
- background: darken($ui-base-color, 6%);
- }
-
- .autosuggest-textarea__suggestions {
- background: darken($ui-base-color, 6%);
- }
-
- .autosuggest-textarea__suggestions__item {
- &:hover,
- &:focus,
- &:active,
- &.selected {
- background: lighten($ui-base-color, 4%);
- }
- }
-}
-
-.emoji-mart-bar {
- border-color: lighten($ui-base-color, 4%);
-
- &:first-child {
- background: darken($ui-base-color, 6%);
- }
-}
-
-.emoji-mart-search input {
- background: rgba($ui-base-color, 0.3);
- border-color: $ui-base-color;
-}
-
.upload-progress__backdrop {
background: $ui-base-color;
}
@@ -283,41 +216,11 @@ html {
background: $ui-base-color;
}
-.privacy-dropdown.active .privacy-dropdown__value.active .icon-button {
- color: $white;
-}
-
.account-gallery__item a {
background-color: $ui-base-color;
}
-// Change the colors used in the dropdown menu
-.dropdown-menu {
- background: $white;
-
- &__arrow::before {
- background-color: $white;
- }
-
- &__item {
- a,
- button {
- background: $white;
- color: $darker-text-color;
- }
- }
-}
-
// Change the text colors on inverted background
-.privacy-dropdown__option.active,
-.privacy-dropdown__option:hover,
-.privacy-dropdown__option.active .privacy-dropdown__option__content,
-.privacy-dropdown__option.active .privacy-dropdown__option__content strong,
-.privacy-dropdown__option:hover .privacy-dropdown__option__content,
-.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,
-.dropdown-menu__item a:active,
-.dropdown-menu__item a:focus,
-.dropdown-menu__item a:hover,
.actions-modal ul li:not(:empty) a.active,
.actions-modal ul li:not(:empty) a.active button,
.actions-modal ul li:not(:empty) a:active,
@@ -326,7 +229,6 @@ html {
.actions-modal ul li:not(:empty) a:focus button,
.actions-modal ul li:not(:empty) a:hover,
.actions-modal ul li:not(:empty) a:hover button,
-.language-dropdown__dropdown__results__item.active,
.admin-wrapper .sidebar ul .simple-navigation-active-leaf a,
.simple_form .block-button,
.simple_form .button,
@@ -334,19 +236,6 @@ html {
color: $white;
}
-.language-dropdown__dropdown__results__item
- .language-dropdown__dropdown__results__item__common-name {
- color: lighten($ui-base-color, 8%);
-}
-
-.language-dropdown__dropdown__results__item.active
- .language-dropdown__dropdown__results__item__common-name {
- color: darken($ui-base-color, 12%);
-}
-
-.dropdown-menu__separator,
-.dropdown-menu__item.edited-timestamp__history__item,
-.dropdown-menu__container__header,
.compare-history-modal .report-modal__target,
.report-dialog-modal .poll__option.dialog-option {
border-bottom-color: lighten($ui-base-color, 4%);
@@ -380,10 +269,7 @@ html {
.reactions-bar__item:hover,
.reactions-bar__item:focus,
-.reactions-bar__item:active,
-.language-dropdown__dropdown__results__item:hover,
-.language-dropdown__dropdown__results__item:focus,
-.language-dropdown__dropdown__results__item:active {
+.reactions-bar__item:active {
background-color: $ui-base-color;
}
@@ -626,11 +512,6 @@ html {
}
}
-.reply-indicator {
- background: transparent;
- border: 1px solid lighten($ui-base-color, 8%);
-}
-
.status__content,
.reply-indicator__content {
a {
@@ -670,3 +551,43 @@ html {
background-color: rgba($ui-highlight-color, 0.15);
}
}
+
+.compose-form__actions .icon-button.active,
+.dropdown-button.active,
+.privacy-dropdown__option.active,
+.privacy-dropdown__option:focus,
+.language-dropdown__dropdown__results__item:focus,
+.language-dropdown__dropdown__results__item.active,
+.privacy-dropdown__option:focus .privacy-dropdown__option__content,
+.privacy-dropdown__option:focus .privacy-dropdown__option__content strong,
+.privacy-dropdown__option.active .privacy-dropdown__option__content,
+.privacy-dropdown__option.active .privacy-dropdown__option__content strong,
+.language-dropdown__dropdown__results__item:focus
+ .language-dropdown__dropdown__results__item__common-name,
+.language-dropdown__dropdown__results__item.active
+ .language-dropdown__dropdown__results__item__common-name {
+ color: $white;
+}
+
+.compose-form .spoiler-input__input {
+ color: lighten($ui-highlight-color, 8%);
+}
+
+.compose-form .autosuggest-textarea__textarea,
+.compose-form__highlightable,
+.poll__option input[type='text'] {
+ background: darken($ui-base-color, 10%);
+}
+
+.inline-follow-suggestions {
+ background-color: rgba($ui-highlight-color, 0.1);
+ border-bottom-color: rgba($ui-highlight-color, 0.3);
+}
+
+.inline-follow-suggestions__body__scrollable__card {
+ background: $white;
+}
+
+.inline-follow-suggestions__body__scroll-button__icon {
+ color: $white;
+}
diff --git a/app/javascript/styles/mastodon-light/variables.scss b/app/javascript/styles/mastodon-light/variables.scss
index ac8a83121..3cf5561ca 100644
--- a/app/javascript/styles/mastodon-light/variables.scss
+++ b/app/javascript/styles/mastodon-light/variables.scss
@@ -5,7 +5,7 @@ $white: #ffffff;
$classic-base-color: #282c37;
$classic-primary-color: #9baec8;
$classic-secondary-color: #d9e1e8;
-$classic-highlight-color: #858afa;
+$classic-highlight-color: #6364ff;
$blurple-600: #563acc; // Iris
$blurple-500: #6364ff; // Brand purple
@@ -34,7 +34,7 @@ $ui-button-tertiary-border-color: $blurple-500 !default;
$primary-text-color: $black !default;
$darker-text-color: $classic-base-color !default;
-$highlight-text-color: darken($ui-highlight-color, 8%) !default;
+$highlight-text-color: $ui-highlight-color !default;
$dark-text-color: #444b5d;
$action-button-color: #606984;
@@ -55,3 +55,8 @@ $account-background-color: $white !default;
}
$emojis-requiring-inversion: 'chains';
+
+.theme-mastodon-light {
+ --dropdown-border-color: #d9e1e8;
+ --dropdown-background-color: #fff;
+}
diff --git a/app/javascript/styles/mastodon/_mixins.scss b/app/javascript/styles/mastodon/_mixins.scss
index dcfab6bd0..d7f8586dd 100644
--- a/app/javascript/styles/mastodon/_mixins.scss
+++ b/app/javascript/styles/mastodon/_mixins.scss
@@ -15,13 +15,14 @@
outline: 0;
box-sizing: border-box;
width: 100%;
- border: 0;
box-shadow: none;
font-family: inherit;
background: $ui-base-color;
color: $darker-text-color;
border-radius: 4px;
- font-size: 14px;
+ border: 1px solid lighten($ui-base-color, 8%);
+ font-size: 17px;
+ line-height: normal;
margin: 0;
}
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index a65f35e7b..3f538d08d 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -1314,6 +1314,9 @@ a.sparkline {
&__label {
padding: 15px;
+ display: flex;
+ gap: 8px;
+ align-items: center;
}
&__rules {
@@ -1324,6 +1327,9 @@ a.sparkline {
&__rule {
cursor: pointer;
padding: 15px;
+ display: flex;
+ gap: 8px;
+ align-items: center;
}
}
diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss
index 6714b2426..28dad81da 100644
--- a/app/javascript/styles/mastodon/basics.scss
+++ b/app/javascript/styles/mastodon/basics.scss
@@ -8,7 +8,7 @@
body {
font-family: $font-sans-serif, sans-serif;
- background: darken($ui-base-color, 7%);
+ background: darken($ui-base-color, 8%);
font-size: 13px;
line-height: 18px;
font-weight: 400;
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 462dd82ac..f70fa12a5 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -187,8 +187,8 @@
.icon {
flex: 0 0 auto;
- width: 20px;
- height: 20px;
+ width: 24px;
+ height: 24px;
aspect-ratio: 1;
path {
@@ -200,7 +200,7 @@
display: inline-flex;
color: $action-button-color;
border: 0;
- padding: 2px;
+ padding: 0;
border-radius: 4px;
background: transparent;
cursor: pointer;
@@ -368,46 +368,155 @@ body > [data-popper-placement] {
}
}
-.compose-form {
- padding: 15px;
+.autosuggest-textarea {
+ &__textarea {
+ background: transparent;
+ min-height: 100px;
+ padding-bottom: 0;
+ resize: none;
+ scrollbar-color: initial;
- &__sensitive-button {
- padding: 10px;
- padding-top: 0;
- font-size: 14px;
- font-weight: 500;
-
- &.active {
- color: $highlight-text-color;
- }
-
- input[type='checkbox'] {
- appearance: none;
- display: inline-block;
- position: relative;
- border: 1px solid $ui-primary-color;
- box-sizing: border-box;
- width: 18px;
- height: 18px;
- flex: 0 0 auto;
- margin-inline-end: 10px;
- top: -1px;
- border-radius: 4px;
- vertical-align: middle;
- cursor: inherit;
-
- &:checked {
- border-color: $highlight-text-color;
- background: $highlight-text-color
- url("data:image/svg+xml;utf8,")
- center center no-repeat;
- }
+ &::-webkit-scrollbar {
+ all: unset;
}
}
- .compose-form__warning {
+ &__suggestions {
+ box-shadow: var(--dropdown-shadow);
+ background: $ui-base-color;
+ border: 1px solid lighten($ui-base-color, 14%);
+ border-radius: 0 0 4px 4px;
+ color: $secondary-text-color;
+ font-size: 14px;
+ padding: 0;
+
+ &__item {
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ height: 48px;
+ cursor: pointer;
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
+ color: $secondary-text-color;
+
+ &:last-child {
+ border-radius: 0 0 4px 4px;
+ }
+
+ &:hover,
+ &:focus,
+ &:active,
+ &.selected {
+ background: $ui-highlight-color;
+ color: $primary-text-color;
+
+ .autosuggest-account .display-name__account {
+ color: inherit;
+ }
+ }
+ }
+ }
+}
+
+.autosuggest-account,
+.autosuggest-emoji,
+.autosuggest-hashtag {
+ flex: 1 0 0;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: flex-start;
+ gap: 12px;
+ padding: 8px 12px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.autosuggest-account {
+ .display-name {
+ font-weight: 400;
+ display: flex;
+ flex-direction: column;
+ flex: 1 0 0;
+ }
+
+ .display-name__account {
+ display: block;
+ line-height: 16px;
+ font-size: 12px;
+ color: $dark-text-color;
+ }
+}
+
+.autosuggest-hashtag {
+ justify-content: space-between;
+
+ &__name {
+ flex: 1 1 auto;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ &__uses {
+ flex: 0 0 auto;
+ text-align: end;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+}
+
+.autosuggest-emoji {
+ &__name {
+ flex: 1 0 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+}
+
+.autosuggest-account .account__avatar,
+.autosuggest-emoji img {
+ display: block;
+ width: 24px;
+ height: 24px;
+ flex: 0 0 auto;
+}
+
+.compose-form {
+ display: flex;
+ flex-direction: column;
+ gap: 32px;
+
+ .layout-multiple-columns &,
+ .column & {
+ padding: 15px;
+ }
+
+ &__highlightable {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ flex: 0 1 auto;
+ border-radius: 4px;
+ border: 1px solid lighten($ui-base-color, 8%);
+ transition: border-color 300ms linear;
+ min-height: 0;
+ position: relative;
+ background: $ui-base-color;
+ overflow-y: auto;
+
+ &.active {
+ transition: none;
+ border-color: $ui-highlight-color;
+ }
+ }
+
+ &__warning {
color: $inverted-text-color;
- margin-bottom: 10px;
background: $ui-primary-color;
box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);
padding: 8px 10px;
@@ -439,32 +548,27 @@ body > [data-popper-placement] {
}
}
- .emoji-picker-dropdown {
- position: absolute;
- top: 0;
- inset-inline-end: 0;
- }
-
- .compose-form__autosuggest-wrapper {
- position: relative;
- }
-
- .autosuggest-textarea,
- .autosuggest-input,
.spoiler-input {
- position: relative;
- width: 100%;
- }
+ display: flex;
+ align-items: stretch;
- .spoiler-input {
- height: 0;
- transform-origin: bottom;
- opacity: 0;
+ &__border {
+ background: url('../images/warning-stripes.svg') repeat-y;
+ width: 5px;
+ flex: 0 0 auto;
- &.spoiler-input--visible {
- height: 36px;
- margin-bottom: 11px;
- opacity: 1;
+ &:first-child {
+ border-start-start-radius: 4px;
+ }
+
+ &:last-child {
+ border-start-end-radius: 4px;
+ }
+ }
+
+ .autosuggest-input {
+ flex: 1 1 auto;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
}
}
@@ -474,269 +578,303 @@ body > [data-popper-placement] {
box-sizing: border-box;
width: 100%;
margin: 0;
- color: $inverted-text-color;
- background: $simple-background-color;
- padding: 10px;
+ color: $secondary-text-color;
+ background: $ui-base-color;
font-family: inherit;
font-size: 14px;
- resize: vertical;
+ padding: 12px;
+ line-height: normal;
border: 0;
outline: 0;
- &::placeholder {
- color: $dark-text-color;
- }
-
&:focus {
outline: 0;
}
-
- @media screen and (width <= 600px) {
- font-size: 16px;
- }
}
.spoiler-input__input {
- border-radius: 4px;
+ padding: 12px 12px - 5px;
+ background: mix($ui-base-color, $ui-highlight-color, 85%);
+ color: $highlight-text-color;
}
- .autosuggest-textarea__textarea {
- min-height: 100px;
- border-radius: 4px 4px 0 0;
- padding-bottom: 0;
- padding-right: 10px + 22px; // Cannot use inline-end because of dir=auto
- resize: none;
- scrollbar-color: initial;
-
- &::-webkit-scrollbar {
- all: unset;
- }
-
- @media screen and (width <= 600px) {
- height: 100px !important; // Prevent auto-resize textarea
- resize: vertical;
- }
- }
-
- .autosuggest-textarea__suggestions-wrapper {
- position: relative;
- height: 0;
- }
-
- .autosuggest-textarea__suggestions {
- box-sizing: border-box;
- display: none;
- position: absolute;
- top: 100%;
- width: 100%;
- z-index: 99;
- box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
- background: $ui-secondary-color;
- border-radius: 0 0 4px 4px;
- color: $inverted-text-color;
- font-size: 14px;
- padding: 6px;
-
- &.autosuggest-textarea__suggestions--visible {
- display: block;
- }
- }
-
- .autosuggest-textarea__suggestions__item {
- padding: 10px;
- cursor: pointer;
- border-radius: 4px;
-
- &:hover,
- &:focus,
- &:active,
- &.selected {
- background: darken($ui-secondary-color, 10%);
- }
- }
-
- .autosuggest-account,
- .autosuggest-emoji,
- .autosuggest-hashtag {
+ &__dropdowns {
display: flex;
- flex-direction: row;
align-items: center;
- justify-content: flex-start;
- line-height: 18px;
- font-size: 14px;
- }
+ gap: 8px;
- .autosuggest-hashtag {
- justify-content: space-between;
-
- &__name {
- flex: 1 1 auto;
+ & > div {
overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- strong {
- font-weight: 500;
- }
-
- &__uses {
- flex: 0 0 auto;
- text-align: end;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- }
-
- .autosuggest-account-icon,
- .autosuggest-emoji img {
- display: block;
- margin-inline-end: 8px;
- width: 16px;
- height: 16px;
- }
-
- .autosuggest-account .display-name__account {
- color: $lighter-text-color;
- }
-
- .compose-form__modifiers {
- color: $inverted-text-color;
- font-family: inherit;
- font-size: 14px;
- background: $simple-background-color;
-
- .compose-form__upload-wrapper {
- overflow: hidden;
- }
-
- .compose-form__uploads-wrapper {
display: flex;
- flex-direction: row;
- padding: 5px;
- flex-wrap: wrap;
+ }
+ }
+
+ &__uploads {
+ display: flex;
+ gap: 8px;
+ padding: 0 12px;
+ flex-wrap: wrap;
+ align-self: stretch;
+ align-items: flex-start;
+ align-content: flex-start;
+ justify-content: center;
+ }
+
+ &__upload {
+ flex: 1 1 0;
+ min-width: calc(50% - 8px);
+
+ &__actions {
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ padding: 8px;
}
- .compose-form__upload {
- flex: 1 1 0;
- min-width: 40%;
- margin: 5px;
-
- &__actions {
- background: linear-gradient(
- 180deg,
- rgba($base-shadow-color, 0.8) 0,
- rgba($base-shadow-color, 0.35) 80%,
- transparent
- );
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- }
-
- .icon-button {
- flex: 0 1 auto;
- color: $secondary-text-color;
- font-size: 14px;
- font-weight: 500;
- padding: 10px;
- font-family: inherit;
-
- .icon {
- width: 15px;
- height: 15px;
- }
-
- &:hover,
- &:focus,
- &:active {
- color: lighten($secondary-text-color, 7%);
- }
- }
-
- &__warning {
- position: absolute;
- z-index: 2;
- bottom: 0;
- inset-inline-start: 0;
- inset-inline-end: 0;
- box-sizing: border-box;
- background: linear-gradient(
- 0deg,
- rgba($base-shadow-color, 0.8) 0,
- rgba($base-shadow-color, 0.35) 80%,
- transparent
- );
- }
+ &__preview {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ border-radius: 6px;
+ z-index: -1;
+ top: 0;
+ inset-inline-start: 0;
}
- .compose-form__upload-thumbnail {
- border-radius: 4px;
- background-color: $base-shadow-color;
+ &__thumbnail {
+ width: 100%;
+ height: 144px;
+ border-radius: 6px;
background-position: center;
background-size: cover;
background-repeat: no-repeat;
- height: 140px;
- width: 100%;
overflow: hidden;
}
+
+ .icon-button {
+ flex: 0 0 auto;
+ color: $white;
+ background: rgba(0, 0, 0, 75%);
+ border-radius: 6px;
+ font-size: 12px;
+ line-height: 16px;
+ font-weight: 500;
+ padding: 4px 8px;
+ font-family: inherit;
+
+ .icon {
+ width: 15px;
+ height: 15px;
+ }
+ }
+
+ .icon-button.compose-form__upload__delete {
+ padding: 3px;
+ border-radius: 50%;
+
+ .icon {
+ width: 18px;
+ height: 18px;
+ }
+ }
+
+ &__warning {
+ position: absolute;
+ z-index: 2;
+ bottom: 0;
+ inset-inline-start: 0;
+ inset-inline-end: 0;
+ padding: 8px;
+
+ .icon-button.active {
+ color: #ffbe2e;
+ background: rgba(0, 0, 0, 75%);
+ }
+ }
}
- .compose-form__buttons-wrapper {
- padding: 10px;
- background: darken($simple-background-color, 8%);
- border-radius: 0 0 4px 4px;
+ &__footer {
display: flex;
- justify-content: space-between;
- flex: 0 0 auto;
+ flex-direction: column;
+ gap: 12px;
+ padding: 12px;
+ padding-top: 0;
+ }
- .compose-form__buttons {
+ &__submit {
+ display: flex;
+ align-items: center;
+ flex: 1 1 auto;
+ max-width: 100%;
+ overflow: hidden;
+ }
+
+ &__buttons {
+ display: flex;
+ gap: 8px;
+ align-items: center;
+ flex: 1 1 auto;
+
+ & > div {
display: flex;
- gap: 2px;
-
- .icon-button {
- height: 100%;
- }
-
- .compose-form__upload-button-icon {
- line-height: 27px;
- }
-
- .compose-form__sensitive-button {
- display: none;
-
- &.compose-form__sensitive-button--visible {
- display: block;
- }
-
- .compose-form__sensitive-button__icon {
- line-height: 27px;
- }
- }
}
- .icon-button,
- .text-icon-button {
- box-sizing: content-box;
- padding: 0 3px;
+ .icon-button {
+ padding: 3px;
}
- .character-counter__wrapper {
- align-self: center;
- margin-inline-end: 4px;
+ .icon-button .icon {
+ width: 18px;
+ height: 18px;
}
}
- .compose-form__publish {
+ &__actions {
display: flex;
- justify-content: flex-end;
- min-width: 0;
+ align-items: center;
flex: 0 0 auto;
+ gap: 12px;
+ flex-wrap: wrap;
- .compose-form__publish-button-wrapper {
- padding-top: 15px;
+ .button {
+ display: block; // Otherwise text-ellipsis doesn't work
+ font-size: 14px;
+ line-height: normal;
+ font-weight: 700;
+ flex: 1 1 auto;
+ padding: 5px 12px;
+ border-radius: 4px;
}
+
+ .icon-button {
+ box-sizing: content-box;
+ color: $highlight-text-color;
+
+ &:hover,
+ &:focus,
+ &:active {
+ color: $highlight-text-color;
+ }
+
+ &.disabled {
+ color: $highlight-text-color;
+ opacity: 0.5;
+ }
+
+ &.active {
+ background: $ui-highlight-color;
+ color: $primary-text-color;
+ }
+ }
+ }
+
+ &__poll {
+ display: flex;
+ flex-direction: column;
+ align-self: stretch;
+ gap: 8px;
+
+ .poll__option {
+ padding: 0 12px;
+ gap: 8px;
+
+ &.empty:not(:focus-within) {
+ opacity: 0.5;
+ }
+ }
+
+ .poll__input {
+ width: 17px;
+ height: 17px;
+ border-color: $darker-text-color;
+ }
+
+ &__footer {
+ display: flex;
+ align-items: center;
+ gap: 16px;
+ padding-inline-start: 37px;
+ padding-inline-end: 40px;
+
+ &__sep {
+ width: 1px;
+ height: 22px;
+ background: lighten($ui-base-color, 8%);
+ flex: 0 0 auto;
+ }
+ }
+
+ &__select {
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+ flex: 1 1 auto;
+ min-width: 0;
+
+ &__label {
+ flex: 0 0 auto;
+ font-size: 11px;
+ font-weight: 500;
+ line-height: 16px;
+ letter-spacing: 0.5px;
+ color: $darker-text-color;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ }
+
+ &__value {
+ flex: 0 0 auto;
+ appearance: none;
+ background: transparent;
+ border: none;
+ padding: 0;
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 20px;
+ letter-spacing: 0.1px;
+ color: $highlight-text-color;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ }
+ }
+ }
+}
+
+.dropdown-button {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ background: transparent;
+ color: $highlight-text-color;
+ border-radius: 6px;
+ border: 1px solid $highlight-text-color;
+ padding: 4px 8px;
+ font-size: 13px;
+ line-height: normal;
+ font-weight: 400;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+
+ .icon {
+ width: 15px;
+ height: 15px;
+ flex: 0 0 auto;
+ }
+
+ &__label {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ flex: 1 1 auto;
+ }
+
+ &.active {
+ background: $ui-highlight-color;
+ border-color: $ui-highlight-color;
+ color: $primary-text-color;
}
}
@@ -744,11 +882,14 @@ body > [data-popper-placement] {
cursor: default;
font-family: $font-sans-serif, sans-serif;
font-size: 14px;
- font-weight: 600;
- color: $lighter-text-color;
+ font-weight: 400;
+ line-height: normal;
+ color: $darker-text-color;
+ flex: 1 0 auto;
+ text-align: end;
&.character-counter--over {
- color: $warning-red;
+ color: $error-red;
}
}
@@ -794,41 +935,6 @@ body > [data-popper-placement] {
}
}
-.reply-indicator {
- border-radius: 4px;
- margin-bottom: 10px;
- background: $ui-primary-color;
- padding: 10px;
- min-height: 23px;
- overflow-y: auto;
- flex: 0 2 auto;
-}
-
-.reply-indicator__header {
- margin-bottom: 5px;
- overflow: hidden;
-}
-
-.reply-indicator__cancel {
- float: right;
- line-height: 24px;
-}
-
-.reply-indicator__display-name {
- color: $inverted-text-color;
- display: block;
- max-width: 100%;
- line-height: 24px;
- overflow: hidden;
- padding-inline-end: 25px;
- text-decoration: none;
-}
-
-.reply-indicator__display-avatar {
- float: left;
- margin-inline-end: 5px;
-}
-
.status__content--with-action {
cursor: pointer;
}
@@ -838,14 +944,15 @@ body > [data-popper-placement] {
}
.status__content,
+.edit-indicator__content,
.reply-indicator__content {
position: relative;
- font-size: 15px;
- line-height: 22px;
word-wrap: break-word;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
+ font-size: 15px;
+ line-height: 22px;
padding-top: 2px;
color: $primary-text-color;
@@ -930,6 +1037,174 @@ body > [data-popper-placement] {
}
}
+.reply-indicator {
+ display: grid;
+ grid-template-columns: 46px minmax(0, 1fr);
+ grid-template-rows: 46px max-content;
+ gap: 0 10px;
+
+ .detailed-status__display-name {
+ margin-bottom: 4px;
+ }
+
+ .detailed-status__display-avatar {
+ grid-column-start: 1;
+ grid-row-start: 1;
+ grid-row-end: span 1;
+ }
+
+ &__main {
+ grid-column-start: 2;
+ grid-row-start: 1;
+ grid-row-end: span 2;
+ }
+
+ .display-name {
+ font-size: 14px;
+ line-height: 16px;
+
+ &__account {
+ display: none;
+ }
+ }
+
+ &__line {
+ grid-column-start: 1;
+ grid-row-start: 2;
+ grid-row-end: span 1;
+ position: relative;
+
+ &::before {
+ display: block;
+ content: '';
+ position: absolute;
+ inset-inline-start: 50%;
+ top: 4px;
+ transform: translateX(-50%);
+ background: lighten($ui-base-color, 8%);
+ width: 2px;
+ height: calc(100% + 32px - 8px); // Account for gap to next element
+ }
+ }
+
+ &__content {
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
+ display: -webkit-box;
+ -webkit-line-clamp: 4;
+ -webkit-box-orient: vertical;
+ padding: 0;
+ max-height: 4 * 20px;
+ overflow: hidden;
+ color: $darker-text-color;
+ }
+
+ &__attachments {
+ margin-top: 4px;
+ color: $darker-text-color;
+ font-size: 12px;
+ line-height: 16px;
+ display: flex;
+ align-items: center;
+ gap: 4px;
+
+ .icon {
+ width: 18px;
+ height: 18px;
+ }
+ }
+}
+
+.edit-indicator {
+ border-radius: 4px 4px 0 0;
+ background: lighten($ui-base-color, 4%);
+ padding: 12px;
+ overflow-y: auto;
+ flex: 0 0 auto;
+ border-bottom: 0.5px solid lighten($ui-base-color, 8%);
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+
+ &__header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ color: $darker-text-color;
+ font-size: 12px;
+ line-height: 16px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ &__cancel {
+ display: flex;
+
+ .icon {
+ width: 18px;
+ height: 18px;
+ }
+ }
+
+ &__display-name {
+ display: flex;
+ gap: 4px;
+
+ a {
+ color: inherit;
+ text-decoration: none;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: underline;
+ }
+ }
+ }
+
+ &__content {
+ color: $secondary-text-color;
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
+ padding-top: 0 !important;
+ display: -webkit-box;
+ -webkit-line-clamp: 4;
+ -webkit-box-orient: vertical;
+ max-height: 4 * 20px;
+ overflow: hidden;
+
+ a {
+ color: $highlight-text-color;
+ }
+ }
+
+ &__attachments {
+ color: $darker-text-color;
+ font-size: 12px;
+ line-height: 16px;
+ opacity: 0.75;
+ display: flex;
+ align-items: center;
+ gap: 4px;
+
+ .icon {
+ width: 18px;
+ height: 18px;
+ }
+ }
+}
+
+.edit-indicator__content,
+.reply-indicator__content {
+ .emojione {
+ width: 18px;
+ height: 18px;
+ margin: -3px 0 0;
+ }
+}
+
.announcements__item__content {
word-wrap: break-word;
overflow-y: auto;
@@ -1398,8 +1673,7 @@ body > [data-popper-placement] {
.icon {
width: 15px;
height: 15px;
- position: relative;
- top: 0.145em;
+ vertical-align: middle;
}
}
@@ -1459,15 +1733,6 @@ body > [data-popper-placement] {
line-height: 18px;
}
-.reply-indicator__content {
- color: $inverted-text-color;
- font-size: 14px;
-
- a {
- color: $lighter-text-color;
- }
-}
-
.domain {
padding: 10px;
border-bottom: 1px solid lighten($ui-base-color, 8%);
@@ -1678,7 +1943,6 @@ a .account__avatar {
}
.status__display-name,
-.reply-indicator__display-name,
.detailed-status__display-name,
a.account__display-name {
&:hover .display-name strong {
@@ -1936,57 +2200,45 @@ a.account__display-name {
}
.navigation-bar {
- padding: 15px;
display: flex;
align-items: center;
flex-shrink: 0;
cursor: default;
gap: 10px;
- color: $darker-text-color;
- strong {
- color: $secondary-text-color;
+ .column > & {
+ padding: 15px;
}
- a {
- color: inherit;
- text-decoration: none;
- }
+ .account {
+ border-bottom: 0;
+ padding: 0;
+ flex: 1 1 auto;
+ min-width: 0;
- .navigation-bar__actions {
- position: relative;
+ &__display-name {
+ font-size: 16px;
+ line-height: 24px;
+ letter-spacing: 0.15px;
+ font-weight: 500;
- .compose__action-bar .icon-button {
- pointer-events: auto;
- transform: scale(1, 1) translate(0, 0);
- opacity: 1;
-
- .icon {
- width: 24px;
- height: 24px;
+ .display-name__account {
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.1px;
}
}
}
-}
-.navigation-bar__profile {
- display: flex;
- flex-direction: column;
- flex: 1 1 auto;
- line-height: 20px;
-}
+ .icon-button {
+ padding: 8px;
+ color: $secondary-text-color;
+ }
-.navigation-bar__profile-account {
- display: inline;
- font-weight: 500;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.navigation-bar__profile-edit {
- display: inline;
- color: inherit;
- text-decoration: none;
+ .icon-button .icon {
+ width: 24px;
+ height: 24px;
+ }
}
.dropdown-animation {
@@ -2164,6 +2416,7 @@ a.account__display-name {
&__panels {
display: flex;
justify-content: center;
+ gap: 16px;
width: 100%;
height: 100%;
min-height: 100vh;
@@ -2196,7 +2449,6 @@ a.account__display-name {
flex-direction: column;
@media screen and (min-width: $no-gap-breakpoint) {
- padding: 0 10px;
max-width: 600px;
}
}
@@ -2322,7 +2574,7 @@ $ui-header-height: 55px;
.drawer__tab {
display: flex;
flex: 1 1 auto;
- padding: 15px 5px 13px;
+ padding: 13px 3px 11px;
color: $darker-text-color;
text-decoration: none;
text-align: center;
@@ -2446,6 +2698,7 @@ $ui-header-height: 55px;
.columns-area__panels {
min-height: calc(100vh - $ui-header-height);
+ gap: 0;
}
.columns-area__panels__pane--navigational {
@@ -2845,21 +3098,6 @@ $ui-header-height: 55px;
}
}
-.compose-form__highlightable {
- display: flex;
- flex-direction: column;
- flex: 0 1 auto;
- border-radius: 4px;
- transition: box-shadow 300ms linear;
- min-height: 0;
- position: relative;
-
- &.active {
- transition: none;
- box-shadow: 0 0 0 6px rgba(lighten($highlight-text-color, 8%), 0.7);
- }
-}
-
.compose-panel {
width: 285px;
margin-top: 10px;
@@ -2888,32 +3126,9 @@ $ui-header-height: 55px;
}
}
- .navigation-bar {
- flex: 0 1 48px;
- }
-
.compose-form {
- flex: 1;
- display: flex;
- flex-direction: column;
- min-height: 310px;
- padding-bottom: 71px;
- margin-bottom: -71px;
- }
-
- .compose-form__autosuggest-wrapper {
- overflow-y: auto;
- background-color: $white;
- border-radius: 4px 4px 0 0;
- flex: 0 1 auto;
- }
-
- .autosuggest-textarea__textarea {
- overflow-y: hidden;
- }
-
- .compose-form__upload-thumbnail {
- height: 80px;
+ flex: 1 1 auto;
+ min-height: 0;
}
}
@@ -2933,6 +3148,10 @@ $ui-header-height: 55px;
height: 30px;
width: auto;
}
+
+ &__logo {
+ margin-bottom: 12px;
+ }
}
.navigation-panel,
@@ -2964,7 +3183,7 @@ $ui-header-height: 55px;
position: absolute;
top: 0;
inset-inline-start: 0;
- background: $ui-base-color;
+ background: darken($ui-base-color, 4%);
box-sizing: border-box;
padding: 0;
display: flex;
@@ -2980,7 +3199,7 @@ $ui-header-height: 55px;
}
.drawer__inner__mastodon {
- background: $ui-base-color
+ background: darken($ui-base-color, 4%)
url('data:image/svg+xml;utf8,')
no-repeat bottom / 100% auto;
flex: 1;
@@ -3002,24 +3221,20 @@ $ui-header-height: 55px;
}
}
-.pseudo-drawer {
- background: lighten($ui-base-color, 13%);
- font-size: 13px;
- text-align: start;
-}
-
.drawer__header {
flex: 0 0 auto;
font-size: 16px;
- background: $ui-base-color;
+ background: darken($ui-base-color, 4%);
margin-bottom: 10px;
display: flex;
flex-direction: row;
border-radius: 4px;
overflow: hidden;
- a:hover {
- background: lighten($ui-base-color, 3%);
+ a:hover,
+ a:focus,
+ a:active {
+ background: $ui-base-color;
}
}
@@ -3205,7 +3420,7 @@ $ui-header-height: 55px;
align-items: center;
gap: 5px;
font-size: 16px;
- padding: 15px;
+ padding: 13px;
text-decoration: none;
overflow: hidden;
white-space: nowrap;
@@ -3229,7 +3444,7 @@ $ui-header-height: 55px;
&--transparent {
background: transparent;
- color: $ui-secondary-color;
+ color: $secondary-text-color;
&:hover,
&:focus,
@@ -3804,7 +4019,7 @@ a.status-card {
gap: 5px;
margin: 0;
border: 0;
- padding: 15px;
+ padding: 13px;
padding-inline-end: 0;
color: inherit;
background: transparent;
@@ -4534,10 +4749,7 @@ a.status-card {
}
.emoji-picker-dropdown__menu {
- background: $simple-background-color;
position: relative;
- box-shadow: var(--dropdown-shadow);
- border-radius: 4px;
margin-top: 5px;
z-index: 2;
@@ -4560,11 +4772,12 @@ a.status-card {
.emoji-picker-dropdown__modifiers__menu {
position: absolute;
z-index: 4;
- top: -4px;
- inset-inline-start: -8px;
- background: $simple-background-color;
+ top: -5px;
+ inset-inline-start: -9px;
+ background: var(--dropdown-background-color);
+ border: 1px solid var(--dropdown-border-color);
border-radius: 4px;
- box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
+ box-shadow: var(--dropdown-shadow);
overflow: hidden;
button {
@@ -4577,7 +4790,7 @@ a.status-card {
&:hover,
&:focus,
&:active {
- background: rgba($ui-secondary-color, 0.4);
+ background: var(--dropdown-border-color);
}
}
@@ -4646,15 +4859,17 @@ a.status-card {
}
.upload-progress {
- padding: 10px;
- color: $lighter-text-color;
+ color: $darker-text-color;
overflow: hidden;
display: flex;
- gap: 10px;
+ gap: 8px;
+ align-items: center;
+ padding: 0 12px;
.icon {
width: 24px;
height: 24px;
+ color: $ui-highlight-color;
}
span {
@@ -4673,7 +4888,7 @@ a.status-card {
width: 100%;
height: 6px;
border-radius: 6px;
- background: darken($simple-background-color, 8%);
+ background: darken($ui-base-color, 8%);
position: relative;
margin-top: 5px;
}
@@ -4727,12 +4942,16 @@ a.status-card {
filter: none;
}
-.privacy-dropdown__dropdown {
- background: $simple-background-color;
+.privacy-dropdown__dropdown,
+.language-dropdown__dropdown {
box-shadow: var(--dropdown-shadow);
+ background: var(--dropdown-background-color);
+ border: 1px solid var(--dropdown-border-color);
+ padding: 4px;
border-radius: 4px;
overflow: hidden;
z-index: 2;
+ width: 300px;
&.top {
transform-origin: 50% 100%;
@@ -4753,28 +4972,41 @@ a.status-card {
}
.privacy-dropdown__option {
- color: $inverted-text-color;
- padding: 10px;
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
+ padding: 8px 12px;
cursor: pointer;
display: flex;
+ align-items: center;
+ gap: 12px;
+ border-radius: 4px;
+ color: $primary-text-color;
&:hover,
+ &:active {
+ background: var(--dropdown-border-color);
+ }
+
+ &:focus,
&.active {
background: $ui-highlight-color;
color: $primary-text-color;
outline: 0;
- .privacy-dropdown__option__content {
+ .privacy-dropdown__option__content,
+ .privacy-dropdown__option__content strong,
+ .privacy-dropdown__option__additional {
color: $primary-text-color;
-
- strong {
- color: $primary-text-color;
- }
}
}
- &.active:hover {
- background: lighten($ui-highlight-color, 4%);
+ &__additional {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: $darker-text-color;
+ cursor: help;
}
}
@@ -4782,17 +5014,16 @@ a.status-card {
display: flex;
align-items: center;
justify-content: center;
- margin-inline-end: 10px;
}
.privacy-dropdown__option__content {
flex: 1 1 auto;
- color: $lighter-text-color;
+ color: $darker-text-color;
strong {
+ color: $primary-text-color;
font-weight: 500;
display: block;
- color: $inverted-text-color;
@each $lang in $cjk-langs {
&:lang(#{$lang}) {
@@ -4804,64 +5035,78 @@ a.status-card {
.language-dropdown {
&__dropdown {
- background: $simple-background-color;
- box-shadow: var(--dropdown-shadow);
- border-radius: 4px;
- overflow: hidden;
- z-index: 2;
-
- &.top {
- transform-origin: 50% 100%;
- }
-
- &.bottom {
- transform-origin: 50% 0;
- }
+ padding: 0;
.emoji-mart-search {
- padding-inline-end: 10px;
+ padding: 10px;
+ background: var(--dropdown-background-color);
+
+ input {
+ padding: 8px 12px;
+ background: $ui-base-color;
+ border: 1px solid lighten($ui-base-color, 8%);
+ color: $darker-text-color;
+
+ @media screen and (width <= 600px) {
+ font-size: 16px;
+ line-height: 24px;
+ letter-spacing: 0.5px;
+ }
+ }
}
.emoji-mart-search-icon {
- inset-inline-end: 10px + 5px;
+ inset-inline-end: 15px;
+ opacity: 1;
+ color: $darker-text-color;
+
+ .icon {
+ width: 18px;
+ height: 18px;
+ }
+
+ &:disabled {
+ opacity: 0.38;
+ }
}
.emoji-mart-scroll {
padding: 0 10px 10px;
+ background: var(--dropdown-background-color);
}
&__results {
&__item {
cursor: pointer;
- color: $inverted-text-color;
+ color: $primary-text-color;
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
font-weight: 500;
- padding: 10px;
+ padding: 8px 12px;
border-radius: 4px;
- display: flex;
- gap: 6px;
- align-items: center;
-
- &:focus,
- &:active,
- &:hover {
- background: $ui-secondary-color;
- }
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
&__common-name {
color: $darker-text-color;
+ font-weight: 400;
}
+ &:active,
+ &:hover {
+ background: var(--dropdown-border-color);
+ }
+
+ &:focus,
&.active {
background: $ui-highlight-color;
color: $primary-text-color;
outline: 0;
.language-dropdown__dropdown__results__item__common-name {
- color: $secondary-text-color;
- }
-
- &:hover {
- background: lighten($ui-highlight-color, 4%);
+ color: $primary-text-color;
}
}
}
@@ -4870,9 +5115,13 @@ a.status-card {
}
.search {
- margin-bottom: 10px;
+ margin-bottom: 32px;
position: relative;
+ .layout-multiple-columns & {
+ margin-bottom: 10px;
+ }
+
&__popout {
box-sizing: border-box;
display: none;
@@ -4881,6 +5130,7 @@ a.status-card {
margin-top: -2px;
width: 100%;
background: $ui-base-color;
+ border: 1px solid lighten($ui-base-color, 8%);
border-radius: 0 0 4px 4px;
box-shadow: var(--dropdown-shadow);
z-index: 99;
@@ -4889,7 +5139,7 @@ a.status-card {
h4 {
text-transform: uppercase;
- color: $dark-text-color;
+ color: $darker-text-color;
font-weight: 500;
padding: 0 10px;
margin-bottom: 10px;
@@ -4897,6 +5147,7 @@ a.status-card {
.icon-button {
padding: 0;
+ color: $darker-text-color;
}
.icon {
@@ -4912,7 +5163,7 @@ a.status-card {
}
&__message {
- color: $dark-text-color;
+ color: $darker-text-color;
padding: 0 10px;
}
@@ -4968,6 +5219,10 @@ a.status-card {
}
&.active {
+ .search__input {
+ border-radius: 4px 4px 0 0;
+ }
+
.search__popout {
display: block;
}
@@ -4978,14 +5233,9 @@ a.status-card {
@include search-input;
display: block;
- padding: 15px;
- padding-inline-end: 30px;
- line-height: 18px;
- font-size: 16px;
-
- &::placeholder {
- color: lighten($darker-text-color, 4%);
- }
+ padding: 12px 16px;
+ padding-inline-start: 16px + 15px + 8px;
+ line-height: normal;
&::-moz-focus-inner {
border: 0;
@@ -4996,10 +5246,6 @@ a.status-card {
&:active {
outline: 0 !important;
}
-
- &:focus {
- background: lighten($ui-base-color, 4%);
- }
}
.search__icon {
@@ -5014,21 +5260,21 @@ a.status-card {
.icon {
position: absolute;
- top: 13px;
- inset-inline-end: 10px;
+ top: 12px + 2px;
+ inset-inline-start: 16px - 2px;
display: inline-block;
opacity: 0;
transition: all 100ms linear;
transition-property: transform, opacity;
- width: 24px;
- height: 24px;
- color: $secondary-text-color;
+ width: 20px;
+ height: 20px;
+ color: $darker-text-color;
cursor: default;
pointer-events: none;
&.active {
pointer-events: auto;
- opacity: 0.3;
+ opacity: 1;
}
}
@@ -5043,16 +5289,10 @@ a.status-card {
.icon-times-circle {
transform: rotate(0deg);
- color: $action-button-color;
cursor: pointer;
&.active {
transform: rotate(90deg);
- opacity: 1;
- }
-
- &:hover {
- color: lighten($action-button-color, 7%);
}
}
}
@@ -5544,6 +5784,10 @@ a.status-card {
padding-inline-end: 10px;
}
+ .icon {
+ vertical-align: middle;
+ }
+
.button {
flex: 0 0 auto;
}
@@ -5655,6 +5899,11 @@ a.status-card {
}
}
+ .dialog-option {
+ align-items: center;
+ gap: 12px;
+ }
+
.dialog-option .poll__input {
border-color: $inverted-text-color;
color: $ui-secondary-color;
@@ -5663,8 +5912,8 @@ a.status-card {
justify-content: center;
svg {
- width: 8px;
- height: auto;
+ width: 15px;
+ height: 15px;
}
&:active,
@@ -6094,6 +6343,7 @@ a.status-card {
gap: 2px;
}
+.media-gallery__alt__label,
.media-gallery__gifv__label {
display: flex;
align-items: center;
@@ -6170,6 +6420,7 @@ a.status-card {
.icon {
color: $dark-text-color;
+ vertical-align: middle;
}
}
}
@@ -6860,90 +7111,6 @@ noscript {
}
}
-@media screen and (width <= 630px) and (height <= 400px) {
- $duration: 400ms;
- $delay: 100ms;
-
- .search {
- will-change: margin-top;
- transition: margin-top $duration $delay;
- }
-
- .navigation-bar {
- will-change: padding-bottom;
- transition: padding-bottom $duration $delay;
- }
-
- .navigation-bar {
- & > a:first-child {
- will-change: margin-top, margin-inline-start, margin-inline-end, width;
- transition:
- margin-top $duration $delay,
- margin-inline-start $duration ($duration + $delay),
- margin-inline-end $duration ($duration + $delay);
- }
-
- & > .navigation-bar__profile-edit {
- will-change: margin-top;
- transition: margin-top $duration $delay;
- }
-
- .navigation-bar__actions {
- & > .icon-button.close {
- will-change: opacity transform;
- transition:
- opacity $duration * 0.5 $delay,
- transform $duration $delay;
- }
-
- & > .compose__action-bar .icon-button {
- will-change: opacity transform;
- transition:
- opacity $duration * 0.5 $delay + $duration * 0.5,
- transform $duration $delay;
- }
- }
- }
-
- .is-composing {
- .search {
- margin-top: -50px;
- }
-
- .navigation-bar {
- padding-bottom: 0;
-
- & > a:first-child {
- margin: -100px 10px 0 -50px;
- }
-
- .navigation-bar__profile {
- padding-top: 2px;
- }
-
- .navigation-bar__profile-edit {
- position: absolute;
- margin-top: -60px;
- }
-
- .navigation-bar__actions {
- .icon-button.close {
- pointer-events: auto;
- opacity: 1;
- transform: scale(1, 1) translate(0, 0);
- bottom: 5px;
- }
-
- .compose__action-bar .icon-button {
- pointer-events: none;
- opacity: 0;
- transform: scale(0, 1) translate(100%, 0);
- }
- }
- }
- }
-}
-
.embed-modal {
width: auto;
max-width: 80vw;
@@ -7415,6 +7582,13 @@ noscript {
span {
user-select: all;
}
+
+ .icon-lock {
+ height: 16px;
+ width: 16px;
+ position: relative;
+ top: 3px;
+ }
}
}
}
@@ -8898,11 +9072,14 @@ noscript {
.link-footer {
flex: 0 0 auto;
- padding: 10px;
padding-top: 20px;
z-index: 1;
font-size: 13px;
+ .column & {
+ padding: 15px;
+ }
+
p {
color: $dark-text-color;
margin-bottom: 20px;
@@ -9282,3 +9459,199 @@ noscript {
padding: 0;
}
}
+
+.inline-follow-suggestions {
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+ padding: 16px 0;
+ border-bottom: 1px solid mix($ui-base-color, $ui-highlight-color, 75%);
+ background: mix($ui-base-color, $ui-highlight-color, 95%);
+
+ &__header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 16px;
+
+ h3 {
+ font-size: 15px;
+ line-height: 22px;
+ font-weight: 500;
+ }
+
+ &__actions {
+ display: flex;
+ align-items: center;
+ gap: 24px;
+ }
+
+ .link-button {
+ font-size: 13px;
+ font-weight: 500;
+ }
+ }
+
+ &__body {
+ position: relative;
+
+ &__scroll-button {
+ position: absolute;
+ height: 100%;
+ background: transparent;
+ border: none;
+ cursor: pointer;
+ top: 0;
+ color: $primary-text-color;
+
+ &.left {
+ left: 0;
+ }
+
+ &.right {
+ right: 0;
+ }
+
+ &__icon {
+ border-radius: 50%;
+ background: $ui-highlight-color;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ aspect-ratio: 1;
+ padding: 8px;
+
+ .icon {
+ width: 24px;
+ height: 24px;
+ }
+ }
+
+ &:hover,
+ &:focus,
+ &:active {
+ .inline-follow-suggestions__body__scroll-button__icon {
+ background: lighten($ui-highlight-color, 4%);
+ }
+ }
+ }
+
+ &__scrollable {
+ display: flex;
+ flex-wrap: nowrap;
+ gap: 16px;
+ padding: 16px;
+ padding-bottom: 0;
+ scroll-snap-type: x mandatory;
+ scroll-padding: 16px;
+ scroll-behavior: smooth;
+ overflow-x: hidden;
+
+ &__card {
+ background: darken($ui-base-color, 4%);
+ border: 1px solid lighten($ui-base-color, 8%);
+ border-radius: 4px;
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+ align-items: center;
+ padding: 12px;
+ scroll-snap-align: start;
+ flex: 0 0 auto;
+ width: 200px;
+ box-sizing: border-box;
+ position: relative;
+
+ a {
+ text-decoration: none;
+ }
+
+ & > .icon-button {
+ position: absolute;
+ inset-inline-end: 8px;
+ top: 8px;
+ }
+
+ &__avatar {
+ height: 48px;
+ display: flex;
+
+ a {
+ display: flex;
+ text-decoration: none;
+ }
+ }
+
+ .account__avatar {
+ flex-shrink: 0;
+ align-self: flex-end;
+ border: 1px solid lighten($ui-base-color, 8%);
+ background-color: $ui-base-color;
+ }
+
+ &__text-stack {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+ align-items: center;
+ max-width: 100%;
+
+ a {
+ max-width: 100%;
+ }
+
+ &__source {
+ display: inline-flex;
+ align-items: center;
+ color: $dark-text-color;
+ gap: 4px;
+ overflow: hidden;
+ white-space: nowrap;
+
+ > span {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .icon {
+ width: 16px;
+ height: 16px;
+ }
+ }
+ }
+
+ .display-name {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+ align-items: center;
+
+ & > * {
+ max-width: 100%;
+ }
+
+ &__html {
+ font-size: 15px;
+ font-weight: 500;
+ color: $secondary-text-color;
+ }
+
+ &__account {
+ font-size: 14px;
+ color: $darker-text-color;
+ }
+ }
+
+ .verified-badge {
+ font-size: 14px;
+ max-width: 100%;
+ }
+
+ .button {
+ display: block;
+ width: 100%;
+ }
+ }
+ }
+ }
+}
diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss
index 3d646da23..8a472d75b 100644
--- a/app/javascript/styles/mastodon/containers.scss
+++ b/app/javascript/styles/mastodon/containers.scss
@@ -40,13 +40,12 @@
.compose-form {
width: 400px;
margin: 0 auto;
- padding: 20px 0;
- margin-top: 40px;
+ padding: 10px 0;
+ padding-bottom: 20px;
box-sizing: border-box;
@media screen and (width <= 400px) {
width: 100%;
- margin-top: 0;
padding: 20px;
}
}
@@ -56,13 +55,15 @@
width: 400px;
margin: 0 auto;
display: flex;
- font-size: 13px;
- line-height: 18px;
+ align-items: center;
+ gap: 10px;
+ font-size: 14px;
+ line-height: 20px;
box-sizing: border-box;
padding: 20px 0;
margin-top: 40px;
margin-bottom: 10px;
- border-bottom: 1px solid $ui-base-color;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
@media screen and (width <= 440px) {
width: 100%;
@@ -71,9 +72,9 @@
}
.avatar {
- width: 40px;
- height: 40px;
- margin-inline-end: 10px;
+ width: 48px;
+ height: 48px;
+ flex: 0 0 auto;
img {
width: 100%;
@@ -87,13 +88,14 @@
.name {
flex: 1 1 auto;
color: $secondary-text-color;
- width: calc(100% - 90px);
.username {
display: block;
- font-weight: 500;
+ font-size: 16px;
+ line-height: 24px;
text-overflow: ellipsis;
overflow: hidden;
+ color: $primary-text-color;
}
}
@@ -101,6 +103,62 @@
display: block;
font-size: 32px;
line-height: 40px;
- margin-inline-start: 10px;
+ flex: 0 0 auto;
+ }
+}
+
+.redirect {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ height: 100vh;
+ font-size: 14px;
+ line-height: 18px;
+
+ &__logo {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 30px;
+
+ img {
+ height: 48px;
+ }
+ }
+
+ &__message {
+ text-align: center;
+
+ h1 {
+ font-size: 17px;
+ line-height: 22px;
+ font-weight: 700;
+ margin-bottom: 30px;
+ }
+
+ p {
+ margin-bottom: 30px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ a {
+ color: $highlight-text-color;
+ font-weight: 500;
+ text-decoration: none;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: underline;
+ }
+ }
+ }
+
+ &__link {
+ margin-top: 15px;
}
}
diff --git a/app/javascript/styles/mastodon/emoji_picker.scss b/app/javascript/styles/mastodon/emoji_picker.scss
index c7247c3a5..fec0c10dd 100644
--- a/app/javascript/styles/mastodon/emoji_picker.scss
+++ b/app/javascript/styles/mastodon/emoji_picker.scss
@@ -1,7 +1,6 @@
.emoji-mart {
font-size: 13px;
display: inline-block;
- color: $inverted-text-color;
&,
* {
@@ -15,13 +14,13 @@
}
.emoji-mart-bar {
- border: 0 solid darken($ui-secondary-color, 8%);
+ border: 0 solid var(--dropdown-border-color);
&:first-child {
border-bottom-width: 1px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
- background: $ui-secondary-color;
+ background: var(--dropdown-border-color);
}
&:last-child {
@@ -36,7 +35,6 @@
display: flex;
justify-content: space-between;
padding: 0 6px;
- color: $lighter-text-color;
line-height: 0;
}
@@ -50,9 +48,10 @@
cursor: pointer;
background: transparent;
border: 0;
+ color: $darker-text-color;
&:hover {
- color: darken($lighter-text-color, 4%);
+ color: lighten($darker-text-color, 4%);
}
}
@@ -60,7 +59,7 @@
color: $highlight-text-color;
&:hover {
- color: darken($highlight-text-color, 4%);
+ color: lighten($highlight-text-color, 4%);
}
.emoji-mart-anchor-bar {
@@ -95,7 +94,7 @@
height: 270px;
max-height: 35vh;
padding: 0 6px 6px;
- background: $simple-background-color;
+ background: var(--dropdown-background-color);
will-change: transform;
&::-webkit-scrollbar-track:hover,
@@ -107,7 +106,7 @@
.emoji-mart-search {
padding: 10px;
padding-inline-end: 45px;
- background: $simple-background-color;
+ background: var(--dropdown-background-color);
position: relative;
input {
@@ -118,9 +117,9 @@
font-family: inherit;
display: block;
width: 100%;
- background: rgba($ui-secondary-color, 0.3);
- color: $inverted-text-color;
- border: 1px solid $ui-secondary-color;
+ background: $ui-base-color;
+ color: $darker-text-color;
+ border: 1px solid lighten($ui-base-color, 8%);
border-radius: 4px;
&::-moz-focus-inner {
@@ -155,11 +154,10 @@
&:disabled {
cursor: default;
pointer-events: none;
- opacity: 0.3;
}
svg {
- fill: $action-button-color;
+ fill: $darker-text-color;
}
}
@@ -180,7 +178,7 @@
inset-inline-start: 0;
width: 100%;
height: 100%;
- background-color: rgba($ui-secondary-color, 0.7);
+ background-color: var(--dropdown-border-color);
border-radius: 100%;
}
}
@@ -197,7 +195,7 @@
width: 100%;
font-weight: 500;
padding: 5px 6px;
- background: $simple-background-color;
+ background: var(--dropdown-background-color);
}
}
@@ -241,7 +239,7 @@
.emoji-mart-no-results {
font-size: 14px;
- color: $light-text-color;
+ color: $dark-text-color;
text-align: center;
padding: 5px 6px;
padding-top: 70px;
diff --git a/app/javascript/styles/mastodon/modal.scss b/app/javascript/styles/mastodon/modal.scss
index 0b7220b21..60e7d6224 100644
--- a/app/javascript/styles/mastodon/modal.scss
+++ b/app/javascript/styles/mastodon/modal.scss
@@ -1,5 +1,5 @@
.modal-layout {
- background: $ui-base-color
+ background: darken($ui-base-color, 4%)
url('data:image/svg+xml;utf8,')
repeat-x bottom fixed;
display: flex;
diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss
index 8a26e611c..939fca336 100644
--- a/app/javascript/styles/mastodon/polls.scss
+++ b/app/javascript/styles/mastodon/polls.scss
@@ -52,6 +52,8 @@
&__option {
position: relative;
display: flex;
+ align-items: flex-start;
+ gap: 8px;
padding: 6px 0;
line-height: 18px;
cursor: default;
@@ -78,16 +80,22 @@
box-sizing: border-box;
width: 100%;
font-size: 14px;
- color: $inverted-text-color;
+ color: $secondary-text-color;
outline: 0;
font-family: inherit;
- background: $simple-background-color;
- border: 1px solid darken($simple-background-color, 14%);
+ background: $ui-base-color;
+ border: 1px solid $darker-text-color;
border-radius: 4px;
- padding: 6px 10px;
+ padding: 8px 12px;
&:focus {
- border-color: $highlight-text-color;
+ border-color: $ui-highlight-color;
+ }
+
+ @media screen and (width <= 600px) {
+ font-size: 16px;
+ line-height: 24px;
+ letter-spacing: 0.5px;
}
}
@@ -96,26 +104,20 @@
}
&.editable {
- display: flex;
align-items: center;
overflow: visible;
}
}
&__input {
- display: inline-block;
+ display: block;
position: relative;
border: 1px solid $ui-primary-color;
box-sizing: border-box;
- width: 18px;
- height: 18px;
- margin-inline-end: 10px;
- top: -1px;
+ width: 17px;
+ height: 17px;
border-radius: 50%;
- vertical-align: middle;
- margin-top: auto;
- margin-bottom: auto;
- flex: 0 0 18px;
+ flex: 0 0 auto;
&.checkbox {
border-radius: 4px;
@@ -159,6 +161,15 @@
}
}
+ &__option.editable &__input {
+ &:active,
+ &:focus,
+ &:hover {
+ border-color: $ui-primary-color;
+ border-width: 1px;
+ }
+ }
+
&__number {
display: inline-block;
width: 45px;
@@ -209,90 +220,6 @@
}
}
-.compose-form__poll-wrapper {
- border-top: 1px solid darken($simple-background-color, 8%);
-
- ul {
- padding: 10px;
- }
-
- .poll__input {
- &:active,
- &:focus,
- &:hover {
- border-color: $ui-button-focus-background-color;
- }
- }
-
- .poll__footer {
- border-top: 1px solid darken($simple-background-color, 8%);
- padding: 10px;
- display: flex;
- align-items: center;
-
- button,
- select {
- flex: 1 1 50%;
-
- &:focus {
- border-color: $highlight-text-color;
- }
- }
- }
-
- .button.button-secondary {
- font-size: 14px;
- font-weight: 400;
- padding: 6px 10px;
- height: auto;
- line-height: inherit;
- color: $action-button-color;
- border-color: $action-button-color;
- margin-inline-end: 5px;
-
- &:hover,
- &:focus,
- &.active {
- border-color: $action-button-color;
- background-color: $action-button-color;
- color: $ui-button-color;
- }
- }
-
- li {
- display: flex;
- align-items: center;
-
- .poll__option {
- flex: 0 0 auto;
- width: calc(100% - (23px + 6px));
- margin-inline-end: 6px;
- }
- }
-
- select {
- appearance: none;
- box-sizing: border-box;
- font-size: 14px;
- color: $inverted-text-color;
- display: inline-block;
- width: auto;
- outline: 0;
- font-family: inherit;
- background: $simple-background-color
- url("data:image/svg+xml;utf8,")
- no-repeat right 8px center / auto 16px;
- border: 1px solid darken($simple-background-color, 14%);
- border-radius: 4px;
- padding: 6px 10px;
- padding-inline-end: 30px;
- }
-
- .icon-button.disabled {
- color: darken($simple-background-color, 14%);
- }
-}
-
.muted .poll {
color: $dark-text-color;
diff --git a/app/javascript/svg-icons/repeat_active.svg b/app/javascript/svg-icons/repeat_active.svg
new file mode 100644
index 000000000..a5bbb8fc4
--- /dev/null
+++ b/app/javascript/svg-icons/repeat_active.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/javascript/svg-icons/repeat_disabled.svg b/app/javascript/svg-icons/repeat_disabled.svg
old mode 100755
new mode 100644
diff --git a/app/javascript/svg-icons/repeat_private.svg b/app/javascript/svg-icons/repeat_private.svg
old mode 100755
new mode 100644
diff --git a/app/javascript/svg-icons/repeat_private_active.svg b/app/javascript/svg-icons/repeat_private_active.svg
new file mode 100644
index 000000000..cf2a05c84
--- /dev/null
+++ b/app/javascript/svg-icons/repeat_private_active.svg
@@ -0,0 +1,6 @@
+
diff --git a/app/javascript/types/image.d.ts b/app/javascript/types/image.d.ts
index 07d192955..8a08eca9f 100644
--- a/app/javascript/types/image.d.ts
+++ b/app/javascript/types/image.d.ts
@@ -20,16 +20,20 @@ declare module '*.png' {
}
declare module '*.svg' {
+ const path: string;
+ export default path;
+}
+
+declare module '*.svg?react' {
import type React from 'react';
interface SVGPropsWithTitle extends React.SVGProps {
title?: string;
}
- export const ReactComponent: React.FC;
+ const ReactComponent: React.FC;
- const path: string;
- export default path;
+ export default ReactComponent;
}
declare module '*.webp' {
diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb
index 51384ef98..322f3e27a 100644
--- a/app/lib/activitypub/activity.rb
+++ b/app/lib/activitypub/activity.rb
@@ -154,7 +154,7 @@ class ActivityPub::Activity
if object_uri.start_with?('http')
return if ActivityPub::TagManager.instance.local_uri?(object_uri)
- ActivityPub::FetchRemoteStatusService.new.call(object_uri, id: true, on_behalf_of: @account.followers.local.first, request_id: @options[:request_id])
+ ActivityPub::FetchRemoteStatusService.new.call(object_uri, on_behalf_of: @account.followers.local.first, request_id: @options[:request_id])
elsif @object['url'].present?
::FetchRemoteStatusService.new.call(@object['url'], request_id: @options[:request_id])
end
diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb
index fedfa39de..85195f4c3 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -108,7 +108,9 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
def process_status_params
- @status_parser = ActivityPub::Parser::StatusParser.new(@json, followers_collection: @account.followers_url)
+ @status_parser = ActivityPub::Parser::StatusParser.new(@json, followers_collection: @account.followers_url, object: @object)
+
+ attachment_ids = process_attachments.take(4).map(&:id)
@params = {
uri: @status_parser.uri,
@@ -125,7 +127,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
visibility: @status_parser.visibility,
thread: replied_to_status,
conversation: conversation_from_uri(@object['conversation']),
- media_attachment_ids: process_attachments.take(4).map(&:id),
+ media_attachment_ids: attachment_ids,
+ ordered_media_attachment_ids: attachment_ids,
poll: process_poll,
}
end
@@ -280,6 +283,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
RedownloadMediaWorker.perform_in(rand(30..600).seconds, media_attachment.id)
rescue Seahorse::Client::NetworkingError => e
Rails.logger.warn "Error storing media attachment: #{e}"
+ RedownloadMediaWorker.perform_async(media_attachment.id)
end
end
@@ -316,7 +320,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
already_voted = true
with_redis_lock("vote:#{replied_to_status.poll_id}:#{@account.id}") do
- already_voted = poll.votes.where(account: @account).exists?
+ already_voted = poll.votes.exists?(account: @account)
poll.votes.create!(account: @account, choice: poll.options.index(@object['name']), uri: object_uri)
end
@@ -402,7 +406,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
return false if local_usernames.empty?
- Account.local.where(username: local_usernames).exists?
+ Account.local.exists?(username: local_usernames)
end
def tombstone_exists?
diff --git a/app/lib/activitypub/linked_data_signature.rb b/app/lib/activitypub/linked_data_signature.rb
index faea63e8f..9459fdd8b 100644
--- a/app/lib/activitypub/linked_data_signature.rb
+++ b/app/lib/activitypub/linked_data_signature.rb
@@ -19,7 +19,7 @@ class ActivityPub::LinkedDataSignature
return unless type == 'RsaSignature2017'
creator = ActivityPub::TagManager.instance.uri_to_actor(creator_uri)
- creator = ActivityPub::FetchRemoteKeyService.new.call(creator_uri, id: false) if creator&.public_key.blank?
+ creator = ActivityPub::FetchRemoteKeyService.new.call(creator_uri) if creator&.public_key.blank?
return if creator.nil?
diff --git a/app/lib/activitypub/parser/status_parser.rb b/app/lib/activitypub/parser/status_parser.rb
index 45f5fc5bf..cfc2b8788 100644
--- a/app/lib/activitypub/parser/status_parser.rb
+++ b/app/lib/activitypub/parser/status_parser.rb
@@ -4,12 +4,13 @@ class ActivityPub::Parser::StatusParser
include JsonLdHelper
# @param [Hash] json
- # @param [Hash] magic_values
- # @option magic_values [String] :followers_collection
- def initialize(json, magic_values = {})
- @json = json
- @object = json['object'] || json
- @magic_values = magic_values
+ # @param [Hash] options
+ # @option options [String] :followers_collection
+ # @option options [Hash] :object
+ def initialize(json, **options)
+ @json = json
+ @object = options[:object] || json['object'] || json
+ @options = options
end
def uri
@@ -78,7 +79,7 @@ class ActivityPub::Parser::StatusParser
:public
elsif audience_cc.any? { |cc| ActivityPub::TagManager.instance.public_collection?(cc) }
:unlisted
- elsif audience_to.include?(@magic_values[:followers_collection])
+ elsif audience_to.include?(@options[:followers_collection])
:private
else
:direct
diff --git a/app/lib/admin/system_check/media_privacy_check.rb b/app/lib/admin/system_check/media_privacy_check.rb
index 1df05b120..2ddc8e8b0 100644
--- a/app/lib/admin/system_check/media_privacy_check.rb
+++ b/app/lib/admin/system_check/media_privacy_check.rb
@@ -78,7 +78,7 @@ class Admin::SystemCheck::MediaPrivacyCheck < Admin::SystemCheck::BaseCheck
@media_attachment ||= begin
attachment = Account.representative.media_attachments.first
if attachment.present?
- attachment.touch # rubocop:disable Rails/SkipsModelValidations
+ attachment.touch
attachment
else
create_test_attachment!
diff --git a/app/lib/annual_report.rb b/app/lib/annual_report.rb
new file mode 100644
index 000000000..cf4297f2a
--- /dev/null
+++ b/app/lib/annual_report.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+class AnnualReport
+ include DatabaseHelper
+
+ SOURCES = [
+ AnnualReport::Archetype,
+ AnnualReport::TypeDistribution,
+ AnnualReport::TopStatuses,
+ AnnualReport::MostUsedApps,
+ AnnualReport::CommonlyInteractedWithAccounts,
+ AnnualReport::TimeSeries,
+ AnnualReport::TopHashtags,
+ AnnualReport::MostRebloggedAccounts,
+ AnnualReport::Percentiles,
+ ].freeze
+
+ SCHEMA = 1
+
+ def initialize(account, year)
+ @account = account
+ @year = year
+ end
+
+ def generate
+ return if GeneratedAnnualReport.exists?(account: @account, year: @year)
+
+ GeneratedAnnualReport.create(
+ account: @account,
+ year: @year,
+ schema_version: SCHEMA,
+ data: data
+ )
+ end
+
+ private
+
+ def data
+ with_read_replica do
+ SOURCES.each_with_object({}) { |klass, hsh| hsh.merge!(klass.new(@account, @year).generate) }
+ end
+ end
+end
diff --git a/app/lib/annual_report/archetype.rb b/app/lib/annual_report/archetype.rb
new file mode 100644
index 000000000..ea9ef366d
--- /dev/null
+++ b/app/lib/annual_report/archetype.rb
@@ -0,0 +1,49 @@
+# frozen_string_literal: true
+
+class AnnualReport::Archetype < AnnualReport::Source
+ # Average number of posts (including replies and reblogs) made by
+ # each active user in a single year (2023)
+ AVERAGE_PER_YEAR = 113
+
+ def generate
+ {
+ archetype: archetype,
+ }
+ end
+
+ private
+
+ def archetype
+ if (standalone_count + replies_count + reblogs_count) < AVERAGE_PER_YEAR
+ :lurker
+ elsif reblogs_count > (standalone_count * 2)
+ :booster
+ elsif polls_count > (standalone_count * 0.1) # standalone_count includes posts with polls
+ :pollster
+ elsif replies_count > (standalone_count * 2)
+ :replier
+ else
+ :oracle
+ end
+ end
+
+ def polls_count
+ @polls_count ||= base_scope.where.not(poll_id: nil).count
+ end
+
+ def reblogs_count
+ @reblogs_count ||= base_scope.where.not(reblog_of_id: nil).count
+ end
+
+ def replies_count
+ @replies_count ||= base_scope.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count
+ end
+
+ def standalone_count
+ @standalone_count ||= base_scope.without_replies.without_reblogs.count
+ end
+
+ def base_scope
+ @account.statuses.where(id: year_as_snowflake_range)
+ end
+end
diff --git a/app/lib/annual_report/commonly_interacted_with_accounts.rb b/app/lib/annual_report/commonly_interacted_with_accounts.rb
new file mode 100644
index 000000000..af5e854c2
--- /dev/null
+++ b/app/lib/annual_report/commonly_interacted_with_accounts.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class AnnualReport::CommonlyInteractedWithAccounts < AnnualReport::Source
+ SET_SIZE = 40
+
+ def generate
+ {
+ commonly_interacted_with_accounts: commonly_interacted_with_accounts.map do |(account_id, count)|
+ {
+ account_id: account_id,
+ count: count,
+ }
+ end,
+ }
+ end
+
+ private
+
+ def commonly_interacted_with_accounts
+ @account.statuses.reorder(nil).where(id: year_as_snowflake_range).where.not(in_reply_to_account_id: @account.id).group(:in_reply_to_account_id).having('count(*) > 1').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('in_reply_to_account_id, count(*) AS total'))
+ end
+end
diff --git a/app/lib/annual_report/most_reblogged_accounts.rb b/app/lib/annual_report/most_reblogged_accounts.rb
new file mode 100644
index 000000000..e3e8a7c90
--- /dev/null
+++ b/app/lib/annual_report/most_reblogged_accounts.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class AnnualReport::MostRebloggedAccounts < AnnualReport::Source
+ SET_SIZE = 10
+
+ def generate
+ {
+ most_reblogged_accounts: most_reblogged_accounts.map do |(account_id, count)|
+ {
+ account_id: account_id,
+ count: count,
+ }
+ end,
+ }
+ end
+
+ private
+
+ def most_reblogged_accounts
+ @account.statuses.reorder(nil).where(id: year_as_snowflake_range).where.not(reblog_of_id: nil).joins(reblog: :account).group('accounts.id').having('count(*) > 1').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('accounts.id, count(*) as total'))
+ end
+end
diff --git a/app/lib/annual_report/most_used_apps.rb b/app/lib/annual_report/most_used_apps.rb
new file mode 100644
index 000000000..85ff1ff86
--- /dev/null
+++ b/app/lib/annual_report/most_used_apps.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class AnnualReport::MostUsedApps < AnnualReport::Source
+ SET_SIZE = 10
+
+ def generate
+ {
+ most_used_apps: most_used_apps.map do |(name, count)|
+ {
+ name: name,
+ count: count,
+ }
+ end,
+ }
+ end
+
+ private
+
+ def most_used_apps
+ @account.statuses.reorder(nil).where(id: year_as_snowflake_range).joins(:application).group('oauth_applications.name').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('oauth_applications.name, count(*) as total'))
+ end
+end
diff --git a/app/lib/annual_report/percentiles.rb b/app/lib/annual_report/percentiles.rb
new file mode 100644
index 000000000..9fe4698ee
--- /dev/null
+++ b/app/lib/annual_report/percentiles.rb
@@ -0,0 +1,62 @@
+# frozen_string_literal: true
+
+class AnnualReport::Percentiles < AnnualReport::Source
+ def generate
+ {
+ percentiles: {
+ followers: (total_with_fewer_followers / (total_with_any_followers + 1.0)) * 100,
+ statuses: (total_with_fewer_statuses / (total_with_any_statuses + 1.0)) * 100,
+ },
+ }
+ end
+
+ private
+
+ def followers_gained
+ @followers_gained ||= @account.passive_relationships.where("date_part('year', follows.created_at) = ?", @year).count
+ end
+
+ def statuses_created
+ @statuses_created ||= @account.statuses.where(id: year_as_snowflake_range).count
+ end
+
+ def total_with_fewer_followers
+ @total_with_fewer_followers ||= Follow.find_by_sql([<<~SQL.squish, { year: @year, comparison: followers_gained }]).first.total
+ WITH tmp0 AS (
+ SELECT follows.target_account_id
+ FROM follows
+ INNER JOIN accounts ON accounts.id = follows.target_account_id
+ WHERE date_part('year', follows.created_at) = :year
+ AND accounts.domain IS NULL
+ GROUP BY follows.target_account_id
+ HAVING COUNT(*) < :comparison
+ )
+ SELECT count(*) AS total
+ FROM tmp0
+ SQL
+ end
+
+ def total_with_fewer_statuses
+ @total_with_fewer_statuses ||= Status.find_by_sql([<<~SQL.squish, { comparison: statuses_created, min_id: year_as_snowflake_range.first, max_id: year_as_snowflake_range.last }]).first.total
+ WITH tmp0 AS (
+ SELECT statuses.account_id
+ FROM statuses
+ INNER JOIN accounts ON accounts.id = statuses.account_id
+ WHERE statuses.id BETWEEN :min_id AND :max_id
+ AND accounts.domain IS NULL
+ GROUP BY statuses.account_id
+ HAVING count(*) < :comparison
+ )
+ SELECT count(*) AS total
+ FROM tmp0
+ SQL
+ end
+
+ def total_with_any_followers
+ @total_with_any_followers ||= Follow.where("date_part('year', follows.created_at) = ?", @year).joins(:target_account).merge(Account.local).count('distinct follows.target_account_id')
+ end
+
+ def total_with_any_statuses
+ @total_with_any_statuses ||= Status.where(id: year_as_snowflake_range).joins(:account).merge(Account.local).count('distinct statuses.account_id')
+ end
+end
diff --git a/app/lib/annual_report/source.rb b/app/lib/annual_report/source.rb
new file mode 100644
index 000000000..1ccb62267
--- /dev/null
+++ b/app/lib/annual_report/source.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class AnnualReport::Source
+ attr_reader :account, :year
+
+ def initialize(account, year)
+ @account = account
+ @year = year
+ end
+
+ protected
+
+ def year_as_snowflake_range
+ (Mastodon::Snowflake.id_at(DateTime.new(year, 1, 1))..Mastodon::Snowflake.id_at(DateTime.new(year, 12, 31)))
+ end
+end
diff --git a/app/lib/annual_report/time_series.rb b/app/lib/annual_report/time_series.rb
new file mode 100644
index 000000000..a144bac0d
--- /dev/null
+++ b/app/lib/annual_report/time_series.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class AnnualReport::TimeSeries < AnnualReport::Source
+ def generate
+ {
+ time_series: (1..12).map do |month|
+ {
+ month: month,
+ statuses: statuses_per_month[month] || 0,
+ following: following_per_month[month] || 0,
+ followers: followers_per_month[month] || 0,
+ }
+ end,
+ }
+ end
+
+ private
+
+ def statuses_per_month
+ @statuses_per_month ||= @account.statuses.reorder(nil).where(id: year_as_snowflake_range).group(:period).pluck(Arel.sql("date_part('month', created_at)::int AS period, count(*)")).to_h
+ end
+
+ def following_per_month
+ @following_per_month ||= @account.active_relationships.where("date_part('year', created_at) = ?", @year).group(:period).pluck(Arel.sql("date_part('month', created_at)::int AS period, count(*)")).to_h
+ end
+
+ def followers_per_month
+ @followers_per_month ||= @account.passive_relationships.where("date_part('year', created_at) = ?", @year).group(:period).pluck(Arel.sql("date_part('month', created_at)::int AS period, count(*)")).to_h
+ end
+end
diff --git a/app/lib/annual_report/top_hashtags.rb b/app/lib/annual_report/top_hashtags.rb
new file mode 100644
index 000000000..488dacb1b
--- /dev/null
+++ b/app/lib/annual_report/top_hashtags.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class AnnualReport::TopHashtags < AnnualReport::Source
+ SET_SIZE = 40
+
+ def generate
+ {
+ top_hashtags: top_hashtags.map do |(name, count)|
+ {
+ name: name,
+ count: count,
+ }
+ end,
+ }
+ end
+
+ private
+
+ def top_hashtags
+ Tag.joins(:statuses).where(statuses: { id: @account.statuses.where(id: year_as_snowflake_range).reorder(nil).select(:id) }).group(:id).having('count(*) > 1').order(total: :desc).limit(SET_SIZE).pluck(Arel.sql('COALESCE(tags.display_name, tags.name), count(*) AS total'))
+ end
+end
diff --git a/app/lib/annual_report/top_statuses.rb b/app/lib/annual_report/top_statuses.rb
new file mode 100644
index 000000000..112e5591c
--- /dev/null
+++ b/app/lib/annual_report/top_statuses.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class AnnualReport::TopStatuses < AnnualReport::Source
+ def generate
+ top_reblogs = base_scope.order(reblogs_count: :desc).first&.id
+ top_favourites = base_scope.where.not(id: top_reblogs).order(favourites_count: :desc).first&.id
+ top_replies = base_scope.where.not(id: [top_reblogs, top_favourites]).order(replies_count: :desc).first&.id
+
+ {
+ top_statuses: {
+ by_reblogs: top_reblogs,
+ by_favourites: top_favourites,
+ by_replies: top_replies,
+ },
+ }
+ end
+
+ def base_scope
+ @account.statuses.with_public_visibility.joins(:status_stat).where(id: year_as_snowflake_range).reorder(nil)
+ end
+end
diff --git a/app/lib/annual_report/type_distribution.rb b/app/lib/annual_report/type_distribution.rb
new file mode 100644
index 000000000..fc12a6f1f
--- /dev/null
+++ b/app/lib/annual_report/type_distribution.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class AnnualReport::TypeDistribution < AnnualReport::Source
+ def generate
+ {
+ type_distribution: {
+ total: base_scope.count,
+ reblogs: base_scope.where.not(reblog_of_id: nil).count,
+ replies: base_scope.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count,
+ standalone: base_scope.without_replies.without_reblogs.count,
+ },
+ }
+ end
+
+ private
+
+ def base_scope
+ @account.statuses.where(id: year_as_snowflake_range)
+ end
+end
diff --git a/app/lib/attachment_batch.rb b/app/lib/attachment_batch.rb
index b28f5c3d7..32ccb0b13 100644
--- a/app/lib/attachment_batch.rb
+++ b/app/lib/attachment_batch.rb
@@ -37,7 +37,7 @@ class AttachmentBatch
def clear
remove_files
- batch.update_all(nullified_attributes) # rubocop:disable Rails/SkipsModelValidations
+ batch.update_all(nullified_attributes)
end
private
diff --git a/app/lib/content_security_policy.rb b/app/lib/content_security_policy.rb
index 966e41f03..210f37cea 100644
--- a/app/lib/content_security_policy.rb
+++ b/app/lib/content_security_policy.rb
@@ -10,7 +10,7 @@ class ContentSecurityPolicy
end
def media_hosts
- [assets_host, cdn_host_value].compact
+ [assets_host, cdn_host_value, paperclip_root_url].compact
end
private
@@ -23,6 +23,15 @@ class ContentSecurityPolicy
s3_alias_host || s3_cloudfront_host || azure_alias_host || s3_hostname_host
end
+ def paperclip_root_url
+ root_url = ENV.fetch('PAPERCLIP_ROOT_URL', nil)
+ return if root_url.blank?
+
+ (Addressable::URI.parse(assets_host) + root_url).tap do |uri|
+ uri.path += '/' unless uri.path.blank? || uri.path.end_with?('/')
+ end.to_s
+ end
+
def url_from_base_host
host_to_url(base_host)
end
diff --git a/app/lib/delivery_failure_tracker.rb b/app/lib/delivery_failure_tracker.rb
index d93826982..e17b45d66 100644
--- a/app/lib/delivery_failure_tracker.rb
+++ b/app/lib/delivery_failure_tracker.rb
@@ -28,7 +28,7 @@ class DeliveryFailureTracker
end
def available?
- !UnavailableDomain.where(domain: @host).exists?
+ !UnavailableDomain.exists?(domain: @host)
end
def exhausted_deliveries_days
diff --git a/app/lib/emoji_formatter.rb b/app/lib/emoji_formatter.rb
index 15b98dc57..2a3683c49 100644
--- a/app/lib/emoji_formatter.rb
+++ b/app/lib/emoji_formatter.rb
@@ -66,16 +66,6 @@ class EmojiFormatter
@emoji_map ||= custom_emojis.each_with_object({}) { |e, h| h[e.shortcode] = [full_asset_url(e.image.url), full_asset_url(e.image.url(:static))] }
end
- def count_tag_nesting(tag)
- if tag[1] == '/'
- -1
- elsif tag[-2] == '/'
- 0
- else
- 1
- end
- end
-
def tag_for_emoji(shortcode, emoji)
return content_tag(:span, ":#{shortcode}:", translate: 'no') if raw_shortcode?
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
index 53767486f..38a177e64 100644
--- a/app/lib/feed_manager.rb
+++ b/app/lib/feed_manager.rb
@@ -420,8 +420,8 @@ class FeedManager
check_for_blocks = status.active_mentions.pluck(:account_id)
check_for_blocks.push(status.in_reply_to_account) if status.reply? && !status.in_reply_to_account_id.nil?
- should_filter = blocks_or_mutes?(receiver_id, check_for_blocks, :mentions) # Filter if it's from someone I blocked, in reply to someone I blocked, or mentioning someone I blocked (or muted)
- should_filter ||= status.account.silenced? && !Follow.where(account_id: receiver_id, target_account_id: status.account_id).exists? # of if the account is silenced and I'm not following them
+ should_filter = blocks_or_mutes?(receiver_id, check_for_blocks, :mentions) # Filter if it's from someone I blocked, in reply to someone I blocked, or mentioning someone I blocked (or muted)
+ should_filter ||= status.account.silenced? && !Follow.exists?(account_id: receiver_id, target_account_id: status.account_id) # Filter if the account is silenced and I'm not following them
should_filter
end
@@ -434,7 +434,7 @@ class FeedManager
if status.reply? && status.in_reply_to_account_id != status.account_id
should_filter = status.in_reply_to_account_id != list.account_id
should_filter &&= !list.show_followed?
- should_filter &&= !(list.show_list? && ListAccount.where(list_id: list.id, account_id: status.in_reply_to_account_id).exists?)
+ should_filter &&= !(list.show_list? && ListAccount.exists?(list_id: list.id, account_id: status.in_reply_to_account_id))
return !!should_filter
end
diff --git a/app/lib/permalink_redirector.rb b/app/lib/permalink_redirector.rb
index 0dd37483e..f551f69db 100644
--- a/app/lib/permalink_redirector.rb
+++ b/app/lib/permalink_redirector.rb
@@ -5,17 +5,46 @@ class PermalinkRedirector
def initialize(path)
@path = path
+ @object = nil
+ end
+
+ def object
+ @object ||= begin
+ if at_username_status_request? || statuses_status_request?
+ status = Status.find_by(id: second_segment)
+ status if status&.distributable? && !status&.local?
+ elsif at_username_request?
+ username, domain = first_segment.delete_prefix('@').split('@')
+ domain = nil if TagManager.instance.local_domain?(domain)
+ account = Account.find_remote(username, domain)
+ account unless account&.local?
+ elsif accounts_request? && record_integer_id_request?
+ account = Account.find_by(id: second_segment)
+ account unless account&.local?
+ end
+ end
end
def redirect_path
- if at_username_status_request? || statuses_status_request?
- find_status_url_by_id(second_segment)
- elsif at_username_request?
- find_account_url_by_name(first_segment)
- elsif accounts_request? && record_integer_id_request?
- find_account_url_by_id(second_segment)
- elsif @path.start_with?('/deck')
- @path.delete_prefix('/deck')
+ return ActivityPub::TagManager.instance.url_for(object) if object.present?
+
+ @path.delete_prefix('/deck') if @path.start_with?('/deck')
+ end
+
+ def redirect_uri
+ return ActivityPub::TagManager.instance.uri_for(object) if object.present?
+
+ @path.delete_prefix('/deck') if @path.start_with?('/deck')
+ end
+
+ def redirect_confirmation_path
+ case object.class.name
+ when 'Account'
+ redirect_account_path(object.id)
+ when 'Status'
+ redirect_status_path(object.id)
+ else
+ @path.delete_prefix('/deck') if @path.start_with?('/deck')
end
end
@@ -56,22 +85,4 @@ class PermalinkRedirector
def path_segments
@path_segments ||= @path.delete_prefix('/deck').delete_prefix('/').split('/')
end
-
- def find_status_url_by_id(id)
- status = Status.find_by(id: id)
- ActivityPub::TagManager.instance.url_for(status) if status&.distributable? && !status.account.local?
- end
-
- def find_account_url_by_id(id)
- account = Account.find_by(id: id)
- ActivityPub::TagManager.instance.url_for(account) if account.present? && !account.local?
- end
-
- def find_account_url_by_name(name)
- username, domain = name.gsub(/\A@/, '').split('@')
- domain = nil if TagManager.instance.local_domain?(domain)
- account = Account.find_remote(username, domain)
-
- ActivityPub::TagManager.instance.url_for(account) if account.present? && !account.local?
- end
end
diff --git a/app/lib/request.rb b/app/lib/request.rb
index 5f128af73..8d4120868 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -77,6 +77,7 @@ class Request
@url = Addressable::URI.parse(url).normalize
@http_client = options.delete(:http_client)
@allow_local = options.delete(:allow_local)
+ @full_path = options.delete(:with_query_string)
@options = options.merge(socket_class: use_proxy? || @allow_local ? ProxySocket : Socket)
@options = @options.merge(timeout_class: PerOperationWithDeadline, timeout_options: TIMEOUT)
@options = @options.merge(proxy_url) if use_proxy?
@@ -146,7 +147,7 @@ class Request
private
def set_common_headers!
- @headers[REQUEST_TARGET] = "#{@verb} #{@url.path}"
+ @headers[REQUEST_TARGET] = request_target
@headers['User-Agent'] = Mastodon::Version.user_agent
@headers['Host'] = @url.host
@headers['Date'] = Time.now.utc.httpdate
@@ -157,6 +158,14 @@ class Request
@headers['Digest'] = "SHA-256=#{Digest::SHA256.base64digest(@options[:body])}"
end
+ def request_target
+ if @url.query.nil? || !@full_path
+ "#{@verb} #{@url.path}"
+ else
+ "#{@verb} #{@url.path}?#{@url.query}"
+ end
+ end
+
def signature
algorithm = 'rsa-sha256'
signature = Base64.strict_encode64(@keypair.sign(OpenSSL::Digest.new('SHA256'), signed_string))
diff --git a/app/lib/settings/scoped_settings.rb b/app/lib/settings/scoped_settings.rb
deleted file mode 100644
index 3ad57cc1e..000000000
--- a/app/lib/settings/scoped_settings.rb
+++ /dev/null
@@ -1,79 +0,0 @@
-# frozen_string_literal: true
-
-module Settings
- class ScopedSettings
- DEFAULTING_TO_UNSCOPED = %w(
- theme
- noindex
- ).freeze
-
- def initialize(object)
- @object = object
- end
-
- def method_missing(method, *args)
- method_name = method.to_s
- # set a value for a variable
- if method_name[-1] == '='
- var_name = method_name.sub('=', '')
- value = args.first
- self[var_name] = value
- else
- # retrieve a value
- self[method_name]
- end
- end
-
- def respond_to_missing?(*)
- true
- end
-
- def all_as_records
- vars = thing_scoped
- records = vars.index_by(&:var)
-
- Setting.default_settings.each do |key, default_value|
- next if records.key?(key) || default_value.is_a?(Hash)
-
- records[key] = Setting.new(var: key, value: default_value)
- end
-
- records
- end
-
- def []=(key, value)
- key = key.to_s
- record = thing_scoped.find_or_initialize_by(var: key)
- record.update!(value: value)
-
- Rails.cache.write(Setting.cache_key(key, @object), value)
- end
-
- def [](key)
- Rails.cache.fetch(Setting.cache_key(key, @object)) do
- db_val = thing_scoped.find_by(var: key.to_s)
- if db_val
- default_value = ScopedSettings.default_settings[key]
- return default_value.with_indifferent_access.merge!(db_val.value) if default_value.is_a?(Hash)
-
- db_val.value
- else
- ScopedSettings.default_settings[key]
- end
- end
- end
-
- class << self
- def default_settings
- defaulting = DEFAULTING_TO_UNSCOPED.index_with { |k| Setting[k] }
- Setting.default_settings.merge!(defaulting)
- end
- end
-
- protected
-
- def thing_scoped
- Setting.unscoped.where(thing_type: @object.class.base_class.to_s, thing_id: @object.id)
- end
- end
-end
diff --git a/app/lib/status_cache_hydrator.rb b/app/lib/status_cache_hydrator.rb
index 45b50cb37..34f6199ec 100644
--- a/app/lib/status_cache_hydrator.rb
+++ b/app/lib/status_cache_hydrator.rb
@@ -26,11 +26,11 @@ class StatusCacheHydrator
def hydrate_non_reblog_payload(empty_payload, account_id)
empty_payload.tap do |payload|
- payload[:favourited] = Favourite.where(account_id: account_id, status_id: @status.id).exists?
- payload[:reblogged] = Status.where(account_id: account_id, reblog_of_id: @status.id).exists?
- payload[:muted] = ConversationMute.where(account_id: account_id, conversation_id: @status.conversation_id).exists?
- payload[:bookmarked] = Bookmark.where(account_id: account_id, status_id: @status.id).exists?
- payload[:pinned] = StatusPin.where(account_id: account_id, status_id: @status.id).exists? if @status.account_id == account_id
+ payload[:favourited] = Favourite.exists?(account_id: account_id, status_id: @status.id)
+ payload[:reblogged] = Status.exists?(account_id: account_id, reblog_of_id: @status.id)
+ payload[:muted] = ConversationMute.exists?(account_id: account_id, conversation_id: @status.conversation_id)
+ payload[:bookmarked] = Bookmark.exists?(account_id: account_id, status_id: @status.id)
+ payload[:pinned] = StatusPin.exists?(account_id: account_id, status_id: @status.id) if @status.account_id == account_id
payload[:filtered] = mapped_applied_custom_filter(account_id, @status)
if payload[:poll]
@@ -51,11 +51,11 @@ class StatusCacheHydrator
# used to create the status, we need to hydrate it here too
payload[:reblog][:application] = payload_reblog_application if payload[:reblog][:application].nil? && @status.reblog.account_id == account_id
- payload[:reblog][:favourited] = Favourite.where(account_id: account_id, status_id: @status.reblog_of_id).exists?
- payload[:reblog][:reblogged] = Status.where(account_id: account_id, reblog_of_id: @status.reblog_of_id).exists?
- payload[:reblog][:muted] = ConversationMute.where(account_id: account_id, conversation_id: @status.reblog.conversation_id).exists?
- payload[:reblog][:bookmarked] = Bookmark.where(account_id: account_id, status_id: @status.reblog_of_id).exists?
- payload[:reblog][:pinned] = StatusPin.where(account_id: account_id, status_id: @status.reblog_of_id).exists? if @status.reblog.account_id == account_id
+ payload[:reblog][:favourited] = Favourite.exists?(account_id: account_id, status_id: @status.reblog_of_id)
+ payload[:reblog][:reblogged] = Status.exists?(account_id: account_id, reblog_of_id: @status.reblog_of_id)
+ payload[:reblog][:muted] = ConversationMute.exists?(account_id: account_id, conversation_id: @status.reblog.conversation_id)
+ payload[:reblog][:bookmarked] = Bookmark.exists?(account_id: account_id, status_id: @status.reblog_of_id)
+ payload[:reblog][:pinned] = StatusPin.exists?(account_id: account_id, status_id: @status.reblog_of_id) if @status.reblog.account_id == account_id
payload[:reblog][:filtered] = payload[:filtered]
if payload[:reblog][:poll]
diff --git a/app/lib/status_reach_finder.rb b/app/lib/status_reach_finder.rb
index 36fb0e80f..17e42e3ec 100644
--- a/app/lib/status_reach_finder.rb
+++ b/app/lib/status_reach_finder.rb
@@ -16,28 +16,28 @@ class StatusReachFinder
private
def reached_account_inboxes
+ Account.where(id: reached_account_ids).inboxes
+ end
+
+ def reached_account_ids
# When the status is a reblog, there are no interactions with it
# directly, we assume all interactions are with the original one
if @status.reblog?
- []
+ [reblog_of_account_id]
else
- Account.where(id: reached_account_ids).inboxes
- end
- end
-
- def reached_account_ids
- [
- replied_to_account_id,
- reblog_of_account_id,
- mentioned_account_ids,
- reblogs_account_ids,
- favourites_account_ids,
- replies_account_ids,
- ].tap do |arr|
- arr.flatten!
- arr.compact!
- arr.uniq!
+ [
+ replied_to_account_id,
+ reblog_of_account_id,
+ mentioned_account_ids,
+ reblogs_account_ids,
+ favourites_account_ids,
+ replies_account_ids,
+ ].tap do |arr|
+ arr.flatten!
+ arr.compact!
+ arr.uniq!
+ end
end
end
diff --git a/app/lib/suspicious_sign_in_detector.rb b/app/lib/suspicious_sign_in_detector.rb
index 1af5188c6..74f49aa55 100644
--- a/app/lib/suspicious_sign_in_detector.rb
+++ b/app/lib/suspicious_sign_in_detector.rb
@@ -19,7 +19,7 @@ class SuspiciousSignInDetector
end
def previously_seen_ip?(request)
- @user.ips.where('ip <<= ?', masked_ip(request)).exists?
+ @user.ips.exists?(['ip <<= ?', masked_ip(request)])
end
def freshly_signed_up?
diff --git a/app/lib/vacuum/media_attachments_vacuum.rb b/app/lib/vacuum/media_attachments_vacuum.rb
index ab7ea4092..e55819529 100644
--- a/app/lib/vacuum/media_attachments_vacuum.rb
+++ b/app/lib/vacuum/media_attachments_vacuum.rb
@@ -27,11 +27,17 @@ class Vacuum::MediaAttachmentsVacuum
end
def media_attachments_past_retention_period
- MediaAttachment.remote.cached.where(MediaAttachment.arel_table[:created_at].lt(@retention_period.ago)).where(MediaAttachment.arel_table[:updated_at].lt(@retention_period.ago))
+ MediaAttachment
+ .remote
+ .cached
+ .created_before(@retention_period.ago)
+ .updated_before(@retention_period.ago)
end
def orphaned_media_attachments
- MediaAttachment.unattached.where(MediaAttachment.arel_table[:created_at].lt(TTL.ago))
+ MediaAttachment
+ .unattached
+ .created_before(TTL.ago)
end
def retention_period?
diff --git a/app/mailers/notification_mailer.rb b/app/mailers/notification_mailer.rb
index 5eecfed10..4eb38ec34 100644
--- a/app/mailers/notification_mailer.rb
+++ b/app/mailers/notification_mailer.rb
@@ -12,6 +12,8 @@ class NotificationMailer < ApplicationMailer
default to: -> { email_address_with_name(@user.email, @me.username) }
+ layout 'mailer'
+
def mention
return unless @user.functional? && @status.present?
diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb
index 432b851b5..3b1a085cb 100644
--- a/app/mailers/user_mailer.rb
+++ b/app/mailers/user_mailer.rb
@@ -191,6 +191,18 @@ class UserMailer < Devise::Mailer
end
end
+ def failed_2fa(user, remote_ip, user_agent, timestamp)
+ @resource = user
+ @remote_ip = remote_ip
+ @user_agent = user_agent
+ @detection = Browser.new(user_agent)
+ @timestamp = timestamp.to_time.utc
+
+ I18n.with_locale(locale) do
+ mail subject: default_i18n_subject
+ end
+ end
+
private
def default_devise_subject
diff --git a/app/models/account.rb b/app/models/account.rb
index b9acb9c3d..e2aebf78b 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -108,6 +108,8 @@ class Account < ApplicationRecord
validates :shared_inbox_url, absence: true, if: :local?, on: :create
validates :followers_url, absence: true, if: :local?, on: :create
+ normalizes :username, with: ->(username) { username.squish }
+
scope :remote, -> { where.not(domain: nil) }
scope :local, -> { where(domain: nil) }
scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) }
@@ -121,15 +123,15 @@ class Account < ApplicationRecord
scope :bots, -> { where(actor_type: %w(Application Service)) }
scope :groups, -> { where(actor_type: 'Group') }
scope :alphabetic, -> { order(domain: :asc, username: :asc) }
+ scope :matches_uri_prefix, ->(value) { where(arel_table[:uri].matches("#{sanitize_sql_like(value)}/%", false, true)).or(where(uri: value)) }
scope :matches_username, ->(value) { where('lower((username)::text) LIKE lower(?)', "#{value}%") }
scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
- scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
scope :without_unapproved, -> { left_outer_joins(:user).merge(User.approved.confirmed).or(remote) }
+ scope :auditable, -> { where(id: Admin::ActionLog.select(:account_id).distinct) }
scope :searchable, -> { without_unapproved.without_suspended.where(moved_to_account_id: nil) }
scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat) }
- scope :followable_by, ->(account) { joins(arel_table.join(Follow.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:id].eq(Follow.arel_table[:target_account_id]).and(Follow.arel_table[:account_id].eq(account.id))).join_sources).where(Follow.arel_table[:id].eq(nil)).joins(arel_table.join(FollowRequest.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:id].eq(FollowRequest.arel_table[:target_account_id]).and(FollowRequest.arel_table[:account_id].eq(account.id))).join_sources).where(FollowRequest.arel_table[:id].eq(nil)) }
scope :by_recent_status, -> { includes(:account_stat).merge(AccountStat.order('last_status_at DESC NULLS LAST')).references(:account_stat) }
- scope :by_recent_sign_in, -> { order(Arel.sql('users.current_sign_in_at DESC NULLS LAST')) }
+ scope :by_recent_activity, -> { left_joins(:user, :account_stat).order(coalesced_activity_timestamps.desc).order(id: :desc) }
scope :popular, -> { order('account_stats.followers_count desc') }
scope :by_domain_and_subdomains, ->(domain) { where(domain: Instance.by_domain_and_subdomains(domain).select(:domain)) }
scope :not_excluded_by_account, ->(account) { where.not(id: account.excluded_from_timeline_account_ids) }
@@ -442,6 +444,14 @@ class Account < ApplicationRecord
DeliveryFailureTracker.without_unavailable(urls)
end
+ def coalesced_activity_timestamps
+ Arel.sql(
+ <<~SQL.squish
+ COALESCE(users.current_sign_in_at, account_stats.last_status_at, to_timestamp(0))
+ SQL
+ )
+ end
+
def from_text(text)
return [] if text.blank?
@@ -475,7 +485,6 @@ class Account < ApplicationRecord
end
before_validation :prepare_contents, if: :local?
- before_validation :prepare_username, on: :create
before_create :generate_keys
before_destroy :clean_feed_manager
@@ -493,10 +502,6 @@ class Account < ApplicationRecord
note&.strip!
end
- def prepare_username
- username&.squish!
- end
-
def generate_keys
return unless local? && private_key.blank? && public_key.blank?
diff --git a/app/models/account_filter.rb b/app/models/account_filter.rb
index 55d34e85c..42b1c4953 100644
--- a/app/models/account_filter.rb
+++ b/app/models/account_filter.rb
@@ -104,15 +104,7 @@ class AccountFilter
def order_scope(value)
case value.to_s
when 'active'
- accounts_with_users
- .left_joins(:account_stat)
- .order(
- Arel.sql(
- <<~SQL.squish
- COALESCE(users.current_sign_in_at, account_stats.last_status_at, to_timestamp(0)) DESC, accounts.id DESC
- SQL
- )
- )
+ Account.by_recent_activity
when 'recent'
Account.recent
else
diff --git a/app/models/account_suggestions.rb b/app/models/account_suggestions.rb
index d62176c7c..25c8b04d5 100644
--- a/app/models/account_suggestions.rb
+++ b/app/models/account_suggestions.rb
@@ -29,7 +29,7 @@ class AccountSuggestions
# a complicated query on this end.
account_ids = account_ids_with_sources[offset, limit]
- accounts_map = Account.where(id: account_ids.map(&:first)).includes(:account_stat).index_by(&:id)
+ accounts_map = Account.where(id: account_ids.map(&:first)).includes(:account_stat, :user).index_by(&:id)
account_ids.filter_map do |(account_id, source)|
next unless accounts_map.key?(account_id)
diff --git a/app/models/account_suggestions/friends_of_friends_source.rb b/app/models/account_suggestions/friends_of_friends_source.rb
index 77d4f635a..28d0ab99b 100644
--- a/app/models/account_suggestions/friends_of_friends_source.rb
+++ b/app/models/account_suggestions/friends_of_friends_source.rb
@@ -16,7 +16,7 @@ class AccountSuggestions::FriendsOfFriendsSource < AccountSuggestions::Source
JOIN account_stats ON account_stats.account_id = accounts.id
LEFT OUTER JOIN follow_recommendation_mutes ON follow_recommendation_mutes.target_account_id = accounts.id AND follow_recommendation_mutes.account_id = :id
WHERE follows.account_id IN (SELECT * FROM first_degree)
- AND follows.target_account_id NOT IN (SELECT * FROM first_degree)
+ AND NOT EXISTS (SELECT 1 FROM follows f WHERE f.target_account_id = follows.target_account_id AND f.account_id = :id)
AND follows.target_account_id <> :id
AND accounts.discoverable
AND accounts.suspended_at IS NULL
diff --git a/app/models/account_suggestions/source.rb b/app/models/account_suggestions/source.rb
index ee93a1342..d83f5e377 100644
--- a/app/models/account_suggestions/source.rb
+++ b/app/models/account_suggestions/source.rb
@@ -8,11 +8,31 @@ class AccountSuggestions::Source
protected
def base_account_scope(account)
- Account.searchable
- .followable_by(account)
- .not_excluded_by_account(account)
- .not_domain_blocked_by_account(account)
- .where.not(id: account.id)
- .joins("LEFT OUTER JOIN follow_recommendation_mutes ON follow_recommendation_mutes.target_account_id = accounts.id AND follow_recommendation_mutes.account_id = #{account.id}").where(follow_recommendation_mutes: { target_account_id: nil })
+ Account
+ .searchable
+ .where.not(follows_sql, id: account.id)
+ .where.not(follow_requests_sql, id: account.id)
+ .not_excluded_by_account(account)
+ .not_domain_blocked_by_account(account)
+ .where.not(id: account.id)
+ .where.not(follow_recommendation_mutes_sql, id: account.id)
+ end
+
+ def follows_sql
+ <<~SQL.squish
+ EXISTS (SELECT 1 FROM follows WHERE follows.target_account_id = accounts.id AND follows.account_id = :id)
+ SQL
+ end
+
+ def follow_requests_sql
+ <<~SQL.squish
+ EXISTS (SELECT 1 FROM follow_requests WHERE follow_requests.target_account_id = accounts.id AND follow_requests.account_id = :id)
+ SQL
+ end
+
+ def follow_recommendation_mutes_sql
+ <<~SQL.squish
+ EXISTS (SELECT 1 FROM follow_recommendation_mutes WHERE follow_recommendation_mutes.target_account_id = accounts.id AND follow_recommendation_mutes.account_id = :id)
+ SQL
end
end
diff --git a/app/models/account_summary.rb b/app/models/account_summary.rb
index 0d8835b83..30ada50cc 100644
--- a/app/models/account_summary.rb
+++ b/app/models/account_summary.rb
@@ -12,11 +12,15 @@
class AccountSummary < ApplicationRecord
self.primary_key = :account_id
+ has_many :follow_recommendation_suppressions, primary_key: :account_id, foreign_key: :account_id, inverse_of: false
+
scope :safe, -> { where(sensitive: false) }
- scope :localized, ->(locale) { where(language: locale) }
- scope :filtered, -> { joins(arel_table.join(FollowRecommendationSuppression.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:account_id].eq(FollowRecommendationSuppression.arel_table[:account_id])).join_sources).where(FollowRecommendationSuppression.arel_table[:id].eq(nil)) }
+ scope :localized, ->(locale) { order(Arel::Nodes::Case.new.when(arel_table[:language].eq(locale)).then(1).else(0).desc) }
+ scope :filtered, -> { where.missing(:follow_recommendation_suppressions) }
def self.refresh
+ Scenic.database.refresh_materialized_view(table_name, concurrently: true, cascade: false)
+ rescue ActiveRecord::StatementInvalid
Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false)
end
diff --git a/app/models/admin/action_log_filter.rb b/app/models/admin/action_log_filter.rb
index d413cb386..f581af74e 100644
--- a/app/models/admin/action_log_filter.rb
+++ b/app/models/admin/action_log_filter.rb
@@ -72,7 +72,7 @@ class Admin::ActionLogFilter
end
def results
- scope = latest_action_logs.includes(:target)
+ scope = latest_action_logs.includes(:target, :account)
params.each do |key, value|
next if key.to_s == 'page'
diff --git a/app/models/announcement.rb b/app/models/announcement.rb
index 2cd7c1d5e..e63057002 100644
--- a/app/models/announcement.rb
+++ b/app/models/announcement.rb
@@ -20,19 +20,28 @@
class Announcement < ApplicationRecord
scope :unpublished, -> { where(published: false) }
scope :published, -> { where(published: true) }
- scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where(announcement_mutes: { id: nil }) }
- scope :chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at) ASC')) }
- scope :reverse_chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at) DESC')) }
+ scope :chronological, -> { order(coalesced_chronology_timestamps.asc) }
+ scope :reverse_chronological, -> { order(coalesced_chronology_timestamps.desc) }
has_many :announcement_mutes, dependent: :destroy
has_many :announcement_reactions, dependent: :destroy
validates :text, presence: true
- validates :starts_at, presence: true, if: -> { ends_at.present? }
- validates :ends_at, presence: true, if: -> { starts_at.present? }
+ validates :starts_at, presence: true, if: :ends_at?
+ validates :ends_at, presence: true, if: :starts_at?
before_validation :set_published, on: :create
+ class << self
+ def coalesced_chronology_timestamps
+ Arel.sql(
+ <<~SQL.squish
+ COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at)
+ SQL
+ )
+ end
+ end
+
def to_log_human_identifier
text
end
@@ -45,10 +54,6 @@ class Announcement < ApplicationRecord
update!(published: false, scheduled_at: nil)
end
- def time_range?
- starts_at.present? && ends_at.present?
- end
-
def mentions
@mentions ||= Account.from_text(text)
end
@@ -70,22 +75,41 @@ class Announcement < ApplicationRecord
end
def reactions(account = nil)
- records = begin
- scope = announcement_reactions.group(:announcement_id, :name, :custom_emoji_id).order(Arel.sql('MIN(created_at) ASC'))
-
- if account.nil?
- scope.select('name, custom_emoji_id, count(*) as count, false as me')
- else
- scope.select("name, custom_emoji_id, count(*) as count, exists(select 1 from announcement_reactions r where r.account_id = #{account.id} and r.announcement_id = announcement_reactions.announcement_id and r.name = announcement_reactions.name) as me")
+ grouped_ordered_announcement_reactions.select(
+ [:name, :custom_emoji_id, 'COUNT(*) as count'].tap do |values|
+ values << value_for_reaction_me_column(account)
end
- end.to_a
-
- ActiveRecord::Associations::Preloader.new(records: records, associations: :custom_emoji).call
- records
+ ).to_a.tap do |records|
+ ActiveRecord::Associations::Preloader.new(records: records, associations: :custom_emoji).call
+ end
end
private
+ def grouped_ordered_announcement_reactions
+ announcement_reactions
+ .group(:announcement_id, :name, :custom_emoji_id)
+ .order(
+ Arel.sql('MIN(created_at)').asc
+ )
+ end
+
+ def value_for_reaction_me_column(account)
+ if account.nil?
+ 'FALSE AS me'
+ else
+ <<~SQL.squish
+ EXISTS(
+ SELECT 1
+ FROM announcement_reactions inner_reactions
+ WHERE inner_reactions.account_id = #{account.id}
+ AND inner_reactions.announcement_id = announcement_reactions.announcement_id
+ AND inner_reactions.name = announcement_reactions.name
+ ) AS me
+ SQL
+ end
+ end
+
def set_published
return unless scheduled_at.blank? || scheduled_at.past?
diff --git a/app/models/appeal.rb b/app/models/appeal.rb
index f1290ad01..395056b76 100644
--- a/app/models/appeal.rb
+++ b/app/models/appeal.rb
@@ -20,8 +20,11 @@ class Appeal < ApplicationRecord
belongs_to :account
belongs_to :strike, class_name: 'AccountWarning', foreign_key: 'account_warning_id', inverse_of: :appeal
- belongs_to :approved_by_account, class_name: 'Account', optional: true
- belongs_to :rejected_by_account, class_name: 'Account', optional: true
+
+ with_options class_name: 'Account', optional: true do
+ belongs_to :approved_by_account
+ belongs_to :rejected_by_account
+ end
validates :text, presence: true, length: { maximum: 2_000 }
validates :account_warning_id, uniqueness: true
diff --git a/app/models/bulk_import.rb b/app/models/bulk_import.rb
index 810e47184..406fb2aba 100644
--- a/app/models/bulk_import.rb
+++ b/app/models/bulk_import.rb
@@ -44,8 +44,8 @@ class BulkImport < ApplicationRecord
def self.progress!(bulk_import_id, imported: false)
# Use `increment_counter` so that the incrementation is done atomically in the database
- BulkImport.increment_counter(:processed_items, bulk_import_id) # rubocop:disable Rails/SkipsModelValidations
- BulkImport.increment_counter(:imported_items, bulk_import_id) if imported # rubocop:disable Rails/SkipsModelValidations
+ BulkImport.increment_counter(:processed_items, bulk_import_id)
+ BulkImport.increment_counter(:imported_items, bulk_import_id) if imported
# Since the incrementation has been done atomically, concurrent access to `bulk_import` is now bening
bulk_import = BulkImport.find(bulk_import_id)
diff --git a/app/models/concerns/account/interactions.rb b/app/models/concerns/account/interactions.rb
index 351530c2f..5b05c31e0 100644
--- a/app/models/concerns/account/interactions.rb
+++ b/app/models/concerns/account/interactions.rb
@@ -183,7 +183,7 @@ module Account::Interactions
end
def following?(other_account)
- active_relationships.where(target_account: other_account).exists?
+ active_relationships.exists?(target_account: other_account)
end
def following_anyone?
@@ -199,51 +199,51 @@ module Account::Interactions
end
def blocking?(other_account)
- block_relationships.where(target_account: other_account).exists?
+ block_relationships.exists?(target_account: other_account)
end
def domain_blocking?(other_domain)
- domain_blocks.where(domain: other_domain).exists?
+ domain_blocks.exists?(domain: other_domain)
end
def muting?(other_account)
- mute_relationships.where(target_account: other_account).exists?
+ mute_relationships.exists?(target_account: other_account)
end
def muting_conversation?(conversation)
- conversation_mutes.where(conversation: conversation).exists?
+ conversation_mutes.exists?(conversation: conversation)
end
def muting_notifications?(other_account)
- mute_relationships.where(target_account: other_account, hide_notifications: true).exists?
+ mute_relationships.exists?(target_account: other_account, hide_notifications: true)
end
def muting_reblogs?(other_account)
- active_relationships.where(target_account: other_account, show_reblogs: false).exists?
+ active_relationships.exists?(target_account: other_account, show_reblogs: false)
end
def requested?(other_account)
- follow_requests.where(target_account: other_account).exists?
+ follow_requests.exists?(target_account: other_account)
end
def favourited?(status)
- status.proper.favourites.where(account: self).exists?
+ status.proper.favourites.exists?(account: self)
end
def bookmarked?(status)
- status.proper.bookmarks.where(account: self).exists?
+ status.proper.bookmarks.exists?(account: self)
end
def reblogged?(status)
- status.proper.reblogs.where(account: self).exists?
+ status.proper.reblogs.exists?(account: self)
end
def pinned?(status)
- status_pins.where(status: status).exists?
+ status_pins.exists?(status: status)
end
def endorsed?(account)
- account_pins.where(target_account: account).exists?
+ account_pins.exists?(target_account: account)
end
def status_matches_filters(status)
diff --git a/app/models/concerns/attachmentable.rb b/app/models/concerns/attachmentable.rb
index 4cdbdeb47..3b7db1fce 100644
--- a/app/models/concerns/attachmentable.rb
+++ b/app/models/concerns/attachmentable.rb
@@ -11,11 +11,12 @@ module Attachmentable
# For some file extensions, there exist different content
# type variants, and browsers often send the wrong one,
# for example, sending an audio .ogg file as video/ogg,
- # likewise, MimeMagic also misreports them as such. For
+ # likewise, kt-paperclip also misreports them as such. For
# those files, it is necessary to use the output of the
# `file` utility instead
INCORRECT_CONTENT_TYPES = %w(
audio/vorbis
+ audio/opus
video/ogg
video/webm
).freeze
diff --git a/app/models/concerns/remotable.rb b/app/models/concerns/remotable.rb
index 6118e204a..8382c9159 100644
--- a/app/models/concerns/remotable.rb
+++ b/app/models/concerns/remotable.rb
@@ -46,7 +46,7 @@ module Remotable
public_send(:"download_#{attachment_name}!", url) if download_on_assign
end
- alias_method(:"reset_#{attachment_name}!", "download_#{attachment_name}!")
+ alias_method(:"reset_#{attachment_name}!", :"download_#{attachment_name}!")
end
end
end
diff --git a/app/models/concerns/user/omniauthable.rb b/app/models/concerns/user/omniauthable.rb
index 6d1d1b8cc..113bfda23 100644
--- a/app/models/concerns/user/omniauthable.rb
+++ b/app/models/concerns/user/omniauthable.rb
@@ -61,7 +61,7 @@ module User::Omniauthable
user.account.avatar_remote_url = nil
end
- user.confirm! if email_is_verified
+ user.mark_email_as_confirmed! if email_is_verified
user.save!
user
end
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index 97b1c63bf..1c9b44395 100644
--- a/app/models/custom_emoji.rb
+++ b/app/models/custom_emoji.rb
@@ -41,7 +41,7 @@ class CustomEmoji < ApplicationRecord
has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' } }, validate_media_type: false
- before_validation :downcase_domain
+ normalizes :domain, with: ->(domain) { domain.downcase }
validates_attachment :image, content_type: { content_type: IMAGE_MIME_TYPES }, presence: true, size: { less_than: LIMIT }
validates :shortcode, uniqueness: { scope: :domain }, format: { with: SHORTCODE_ONLY_RE }, length: { minimum: 2 }
@@ -86,7 +86,7 @@ class CustomEmoji < ApplicationRecord
end
def search(shortcode)
- where('"custom_emojis"."shortcode" ILIKE ?', "%#{shortcode}%")
+ where(arel_table[:shortcode].matches("%#{sanitize_sql_like(shortcode)}%"))
end
end
@@ -95,8 +95,4 @@ class CustomEmoji < ApplicationRecord
def remove_entity_cache
Rails.cache.delete(EntityCache.instance.to_key(:emoji, shortcode, domain))
end
-
- def downcase_domain
- self.domain = domain.downcase unless domain.nil?
- end
end
diff --git a/app/models/custom_emoji_filter.rb b/app/models/custom_emoji_filter.rb
index ed7a8dda1..870cc7197 100644
--- a/app/models/custom_emoji_filter.rb
+++ b/app/models/custom_emoji_filter.rb
@@ -31,7 +31,7 @@ class CustomEmojiFilter
def scope_for(key, value)
case key.to_s
when 'local'
- CustomEmoji.local.left_joins(:category).reorder(Arel.sql('custom_emoji_categories.name ASC NULLS FIRST, custom_emojis.shortcode ASC'))
+ CustomEmoji.local.left_joins(:category).reorder(CustomEmojiCategory.arel_table[:name].asc.nulls_first).order(shortcode: :asc)
when 'remote'
CustomEmoji.remote
when 'by_domain'
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index 5a53e73ba..c8120c239 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -68,16 +68,7 @@ class CustomFilter < ApplicationRecord
scope = CustomFilterKeyword.includes(:custom_filter).where(custom_filter: { account_id: account_id }).where(Arel.sql('expires_at IS NULL OR expires_at > NOW()'))
scope.to_a.group_by(&:custom_filter).each do |filter, keywords|
- keywords.map! do |keyword|
- if keyword.whole_word
- sb = /\A[[:word:]]/.match?(keyword.keyword) ? '\b' : ''
- eb = /[[:word:]]\z/.match?(keyword.keyword) ? '\b' : ''
-
- /(?mix:#{sb}#{Regexp.escape(keyword.keyword)}#{eb})/
- else
- /#{Regexp.escape(keyword.keyword)}/i
- end
- end
+ keywords.map!(&:to_regex)
filters_hash[filter.id] = { keywords: Regexp.union(keywords), filter: filter }
end.to_h
@@ -128,6 +119,10 @@ class CustomFilter < ApplicationRecord
end
def context_must_be_valid
- errors.add(:context, I18n.t('filters.errors.invalid_context')) if context.empty? || context.any? { |c| !VALID_CONTEXTS.include?(c) }
+ errors.add(:context, I18n.t('filters.errors.invalid_context')) if invalid_context_value?
+ end
+
+ def invalid_context_value?
+ context.blank? || context.difference(VALID_CONTEXTS).any?
end
end
diff --git a/app/models/custom_filter_keyword.rb b/app/models/custom_filter_keyword.rb
index 3158b3b79..979d0b822 100644
--- a/app/models/custom_filter_keyword.rb
+++ b/app/models/custom_filter_keyword.rb
@@ -23,8 +23,24 @@ class CustomFilterKeyword < ApplicationRecord
before_destroy :prepare_cache_invalidation!
after_commit :invalidate_cache!
+ def to_regex
+ if whole_word?
+ /(?mix:#{to_regex_sb}#{Regexp.escape(keyword)}#{to_regex_eb})/
+ else
+ /#{Regexp.escape(keyword)}/i
+ end
+ end
+
private
+ def to_regex_sb
+ /\A[[:word:]]/.match?(keyword) ? '\b' : ''
+ end
+
+ def to_regex_eb
+ /[[:word:]]\z/.match?(keyword) ? '\b' : ''
+ end
+
def prepare_cache_invalidation!
custom_filter.prepare_cache_invalidation!
end
diff --git a/app/models/domain_allow.rb b/app/models/domain_allow.rb
index ce9597b4d..47ada7ac2 100644
--- a/app/models/domain_allow.rb
+++ b/app/models/domain_allow.rb
@@ -17,8 +17,6 @@ class DomainAllow < ApplicationRecord
validates :domain, presence: true, uniqueness: true, domain: true
- scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
-
def to_log_human_identifier
domain
end
diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb
index ff23f8fcc..a05db099a 100644
--- a/app/models/domain_block.rb
+++ b/app/models/domain_block.rb
@@ -28,10 +28,9 @@ class DomainBlock < ApplicationRecord
has_many :accounts, foreign_key: :domain, primary_key: :domain, inverse_of: false, dependent: nil
delegate :count, to: :accounts, prefix: true
- scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
scope :with_user_facing_limitations, -> { where(severity: [:silence, :suspend]) }
scope :with_limitations, -> { where(severity: [:silence, :suspend]).or(where(reject_media: true)) }
- scope :by_severity, -> { order(Arel.sql('(CASE severity WHEN 0 THEN 1 WHEN 1 THEN 2 WHEN 2 THEN 0 END), domain')) }
+ scope :by_severity, -> { in_order_of(:severity, %w(noop silence suspend)).order(:domain) }
def to_log_human_identifier
domain
@@ -85,11 +84,6 @@ class DomainBlock < ApplicationRecord
(reject_media || !other_block.reject_media) && (reject_reports || !other_block.reject_reports)
end
- def affected_accounts_count
- scope = suspend? ? accounts.where(suspended_at: created_at) : accounts.where(silenced_at: created_at)
- scope.count
- end
-
def public_domain
return domain unless obfuscate?
diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb
index 60e90208d..40be59420 100644
--- a/app/models/email_domain_block.rb
+++ b/app/models/email_domain_block.rb
@@ -4,11 +4,12 @@
#
# Table name: email_domain_blocks
#
-# id :bigint(8) not null, primary key
-# domain :string default(""), not null
-# created_at :datetime not null
-# updated_at :datetime not null
-# parent_id :bigint(8)
+# id :bigint(8) not null, primary key
+# domain :string default(""), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# parent_id :bigint(8)
+# allow_with_approval :boolean default(FALSE), not null
#
class EmailDomainBlock < ApplicationRecord
@@ -20,8 +21,10 @@ class EmailDomainBlock < ApplicationRecord
include DomainNormalizable
include Paginable
- belongs_to :parent, class_name: 'EmailDomainBlock', optional: true
- has_many :children, class_name: 'EmailDomainBlock', foreign_key: :parent_id, inverse_of: :parent, dependent: :destroy
+ with_options class_name: 'EmailDomainBlock' do
+ belongs_to :parent, optional: true
+ has_many :children, foreign_key: :parent_id, inverse_of: :parent, dependent: :destroy
+ end
validates :domain, presence: true, uniqueness: true, domain: true
@@ -42,8 +45,8 @@ class EmailDomainBlock < ApplicationRecord
@attempt_ip = attempt_ip
end
- def match?
- blocking? || invalid_uri?
+ def match?(...)
+ blocking?(...) || invalid_uri?
end
private
@@ -52,8 +55,8 @@ class EmailDomainBlock < ApplicationRecord
@uris.any?(&:nil?)
end
- def blocking?
- blocks = EmailDomainBlock.where(domain: domains_with_variants).order(Arel.sql('char_length(domain) desc'))
+ def blocking?(allow_with_approval: false)
+ blocks = EmailDomainBlock.where(domain: domains_with_variants, allow_with_approval: allow_with_approval).order(Arel.sql('char_length(domain) desc'))
blocks.each { |block| block.history.add(@attempt_ip) } if @attempt_ip.present?
blocks.any?
end
@@ -86,4 +89,8 @@ class EmailDomainBlock < ApplicationRecord
def self.block?(domain_or_domains, attempt_ip: nil)
Matcher.new(domain_or_domains, attempt_ip: attempt_ip).match?
end
+
+ def self.requires_approval?(domain_or_domains, attempt_ip: nil)
+ Matcher.new(domain_or_domains, attempt_ip: attempt_ip).match?(allow_with_approval: true)
+ end
end
diff --git a/app/models/featured_tag.rb b/app/models/featured_tag.rb
index 7c36aa8b0..ea8aa4787 100644
--- a/app/models/featured_tag.rb
+++ b/app/models/featured_tag.rb
@@ -45,7 +45,7 @@ class FeaturedTag < ApplicationRecord
end
def decrement(deleted_status_id)
- update(statuses_count: [0, statuses_count - 1].max, last_status_at: account.statuses.where(visibility: %i(public unlisted)).tagged_with(tag).where.not(id: deleted_status_id).select(:created_at).first&.created_at)
+ update(statuses_count: [0, statuses_count - 1].max, last_status_at: visible_tagged_account_statuses.where.not(id: deleted_status_id).select(:created_at).first&.created_at)
end
private
@@ -55,8 +55,8 @@ class FeaturedTag < ApplicationRecord
end
def reset_data
- self.statuses_count = account.statuses.where(visibility: %i(public unlisted)).tagged_with(tag).count
- self.last_status_at = account.statuses.where(visibility: %i(public unlisted)).tagged_with(tag).select(:created_at).first&.created_at
+ self.statuses_count = visible_tagged_account_statuses.count
+ self.last_status_at = visible_tagged_account_statuses.select(:created_at).first&.created_at
end
def validate_featured_tags_limit
@@ -66,6 +66,14 @@ class FeaturedTag < ApplicationRecord
end
def validate_tag_uniqueness
- errors.add(:name, :taken) if FeaturedTag.by_name(name).where(account_id: account_id).exists?
+ errors.add(:name, :taken) if tag_already_featured_for_account?
+ end
+
+ def tag_already_featured_for_account?
+ FeaturedTag.by_name(name).exists?(account_id: account_id)
+ end
+
+ def visible_tagged_account_statuses
+ account.statuses.where(visibility: %i(public unlisted)).tagged_with(tag)
end
end
diff --git a/app/models/follow_recommendation.rb b/app/models/follow_recommendation.rb
index 9d2648394..6b49a3ca6 100644
--- a/app/models/follow_recommendation.rb
+++ b/app/models/follow_recommendation.rb
@@ -19,6 +19,8 @@ class FollowRecommendation < ApplicationRecord
scope :localized, ->(locale) { joins(:account_summary).merge(AccountSummary.localized(locale)) }
def self.refresh
+ Scenic.database.refresh_materialized_view(table_name, concurrently: true, cascade: false)
+ rescue ActiveRecord::StatementInvalid
Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false)
end
diff --git a/app/models/follow_request.rb b/app/models/follow_request.rb
index 3c5e8f96f..c13cc718d 100644
--- a/app/models/follow_request.rb
+++ b/app/models/follow_request.rb
@@ -33,7 +33,7 @@ class FollowRequest < ApplicationRecord
def authorize!
follow = account.follow!(target_account, reblogs: show_reblogs, notify: notify, languages: languages, uri: uri, bypass_limit: true)
- ListAccount.where(follow_request: self).update_all(follow_request_id: nil, follow_id: follow.id) # rubocop:disable Rails/SkipsModelValidations
+ ListAccount.where(follow_request: self).update_all(follow_request_id: nil, follow_id: follow.id)
MergeWorker.perform_async(target_account.id, account.id) if account.local?
destroy!
end
diff --git a/app/models/form/import.rb b/app/models/form/import.rb
index 712acf370..fc83d9c58 100644
--- a/app/models/form/import.rb
+++ b/app/models/form/import.rb
@@ -69,7 +69,7 @@ class Form::Import
ApplicationRecord.transaction do
now = Time.now.utc
@bulk_import = current_account.bulk_imports.create(type: type, overwrite: overwrite || false, state: :unconfirmed, original_filename: data.original_filename, likely_mismatched: likely_mismatched?)
- nb_items = BulkImportRow.insert_all(parsed_rows.map { |row| { bulk_import_id: bulk_import.id, data: row, created_at: now, updated_at: now } }).length # rubocop:disable Rails/SkipsModelValidations
+ nb_items = BulkImportRow.insert_all(parsed_rows.map { |row| { bulk_import_id: bulk_import.id, data: row, created_at: now, updated_at: now } }).length
@bulk_import.update(total_items: nb_items)
end
end
diff --git a/app/models/generated_annual_report.rb b/app/models/generated_annual_report.rb
new file mode 100644
index 000000000..43c97d710
--- /dev/null
+++ b/app/models/generated_annual_report.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: generated_annual_reports
+#
+# id :bigint(8) not null, primary key
+# account_id :bigint(8) not null
+# year :integer not null
+# data :jsonb not null
+# schema_version :integer not null
+# viewed_at :datetime
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class GeneratedAnnualReport < ApplicationRecord
+ belongs_to :account
+
+ scope :pending, -> { where(viewed_at: nil) }
+
+ def viewed?
+ viewed_at.present?
+ end
+
+ def view!
+ update!(viewed_at: Time.now.utc)
+ end
+
+ def account_ids
+ data['most_reblogged_accounts'].pluck('account_id') + data['commonly_interacted_with_accounts'].pluck('account_id')
+ end
+
+ def status_ids
+ data['top_statuses'].values
+ end
+end
diff --git a/app/models/instance.rb b/app/models/instance.rb
index 17ee0cbb1..0fd31c809 100644
--- a/app/models/instance.rb
+++ b/app/models/instance.rb
@@ -13,22 +13,37 @@ class Instance < ApplicationRecord
attr_accessor :failure_days
- has_many :accounts, foreign_key: :domain, primary_key: :domain, inverse_of: false
-
with_options foreign_key: :domain, primary_key: :domain, inverse_of: false do
belongs_to :domain_block
belongs_to :domain_allow
- belongs_to :unavailable_domain # skipcq: RB-RL1031
+ belongs_to :unavailable_domain
+
+ has_many :accounts, dependent: nil
end
scope :searchable, -> { where.not(domain: DomainBlock.select(:domain)) }
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
+ scope :domain_starts_with, ->(value) { where(arel_table[:domain].matches("#{sanitize_sql_like(value)}%", false, true)) }
scope :by_domain_and_subdomains, ->(domain) { where("reverse('.' || domain) LIKE reverse(?)", "%.#{domain}") }
+ scope :with_domain_follows, ->(domains) { where(domain: domains).where(domain_account_follows) }
def self.refresh
Scenic.database.refresh_materialized_view(table_name, concurrently: true, cascade: false)
end
+ def self.domain_account_follows
+ Arel.sql(
+ <<~SQL.squish
+ EXISTS (
+ SELECT 1
+ FROM follows
+ JOIN accounts ON follows.account_id = accounts.id OR follows.target_account_id = accounts.id
+ WHERE accounts.domain = instances.domain
+ )
+ SQL
+ )
+ end
+
def readonly?
true
end
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index 1f40e5725..7ff6a15f5 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -204,12 +204,14 @@ class MediaAttachment < ApplicationRecord
validates :file, presence: true, if: :local?
validates :thumbnail, absence: true, if: -> { local? && !audio_or_video? }
- scope :attached, -> { where.not(status_id: nil).or(where.not(scheduled_status_id: nil)) }
- scope :cached, -> { remote.where.not(file_file_name: nil) }
- scope :local, -> { where(remote_url: '') }
- scope :ordered, -> { order(id: :asc) }
- scope :remote, -> { where.not(remote_url: '') }
+ scope :attached, -> { where.not(status_id: nil).or(where.not(scheduled_status_id: nil)) }
+ scope :cached, -> { remote.where.not(file_file_name: nil) }
+ scope :created_before, ->(value) { where(arel_table[:created_at].lt(value)) }
+ scope :local, -> { where(remote_url: '') }
+ scope :ordered, -> { order(id: :asc) }
+ scope :remote, -> { where.not(remote_url: '') }
scope :unattached, -> { where(status_id: nil, scheduled_status_id: nil) }
+ scope :updated_before, ->(value) { where(arel_table[:updated_at].lt(value)) }
attr_accessor :skip_download
diff --git a/app/models/poll.rb b/app/models/poll.rb
index 72f04f00a..cc4184f80 100644
--- a/app/models/poll.rb
+++ b/app/models/poll.rb
@@ -27,8 +27,11 @@ class Poll < ApplicationRecord
belongs_to :status
has_many :votes, class_name: 'PollVote', inverse_of: :poll, dependent: :delete_all
- has_many :voters, -> { group('accounts.id') }, through: :votes, class_name: 'Account', source: :account
- has_many :local_voters, -> { group('accounts.id').merge(Account.local) }, through: :votes, class_name: 'Account', source: :account
+
+ with_options class_name: 'Account', source: :account, through: :votes do
+ has_many :voters, -> { group('accounts.id') }
+ has_many :local_voters, -> { group('accounts.id').merge(Account.local) }
+ end
has_many :notifications, as: :activity, dependent: :destroy
@@ -54,7 +57,7 @@ class Poll < ApplicationRecord
end
def voted?(account)
- account.id == account_id || votes.where(account: account).exists?
+ account.id == account_id || votes.exists?(account: account)
end
def own_votes(account)
diff --git a/app/models/privacy_policy.rb b/app/models/privacy_policy.rb
index 36cbf1882..c0d6e1b76 100644
--- a/app/models/privacy_policy.rb
+++ b/app/models/privacy_policy.rb
@@ -1,66 +1,7 @@
# frozen_string_literal: true
class PrivacyPolicy < ActiveModelSerializers::Model
- DEFAULT_PRIVACY_POLICY = <<~TXT
- This privacy policy describes how %{domain} ("%{domain}", "we", "us") collects, protects and uses the personally identifiable information you may provide through the %{domain} website or its API. The policy also describes the choices available to you regarding our use of your personal information and how you can access and update this information. This policy does not apply to the practices of companies that %{domain} does not own or control, or to individuals that %{domain} does not employ or manage.
-
- # What information do we collect?
-
- - **Basic account information**: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
- - **Posts, following and other public information**: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
- - **Direct and followers-only posts**: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. **Please keep in mind that the operators of the server and any receiving server may view such messages**, and that recipients may screenshot, copy or otherwise re-share them. **Do not share any sensitive information over Mastodon.**
- - **IPs and other metadata**: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
-
- # What do we use your information for?
-
- Any of the information we collect from you may be used in the following ways:
-
- - To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
- - To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
- - The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
-
- # How do we protect your information?
-
- We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.
-
- # What is our data retention policy?
-
- We will make a good faith effort to:
-
- - Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
- - Retain the IP addresses associated with registered users no more than 12 months.
-
- You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.
-
- You may irreversibly delete your account at any time.
-
- # Do we use cookies?
-
- Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
-
- We use cookies to understand and save your preferences for future visits.
-
- # Do we disclose any information to outside parties?
-
- We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.
-
- Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.
-
- When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.
-
- # Site usage by children
-
- If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.
-
- If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.
-
- Law requirements can be different if this server is in another jurisdiction.
-
- ___
-
- This document is CC-BY-SA. Originally adapted from the [Discourse privacy policy](https://github.com/discourse/discourse).
- TXT
-
+ DEFAULT_PRIVACY_POLICY = Rails.root.join('config', 'templates', 'privacy-policy.md').read
DEFAULT_UPDATED_AT = DateTime.new(2022, 10, 7).freeze
attributes :updated_at, :text
diff --git a/app/models/report.rb b/app/models/report.rb
index c565362cc..38da26d7b 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -29,16 +29,19 @@ class Report < ApplicationRecord
rate_limit by: :account, family: :reports
belongs_to :account
- belongs_to :target_account, class_name: 'Account'
- belongs_to :action_taken_by_account, class_name: 'Account', optional: true
- belongs_to :assigned_account, class_name: 'Account', optional: true
+
+ with_options class_name: 'Account' do
+ belongs_to :target_account
+ belongs_to :action_taken_by_account, optional: true
+ belongs_to :assigned_account, optional: true
+ end
has_many :notes, class_name: 'ReportNote', inverse_of: :report, dependent: :destroy
has_many :notifications, as: :activity, dependent: :destroy
scope :unresolved, -> { where(action_taken_at: nil) }
scope :resolved, -> { where.not(action_taken_at: nil) }
- scope :with_accounts, -> { includes([:account, :target_account, :action_taken_by_account, :assigned_account].index_with({ user: [:invite_request, :invite] })) }
+ scope :with_accounts, -> { includes([:account, :target_account, :action_taken_by_account, :assigned_account].index_with([:account_stat, { user: [:invite_request, :invite, :ips] }])) }
# A report is considered local if the reporter is local
delegate :local?, to: :account
diff --git a/app/models/session_activation.rb b/app/models/session_activation.rb
index 7f5f0d9a9..c67180d3b 100644
--- a/app/models/session_activation.rb
+++ b/app/models/session_activation.rb
@@ -41,7 +41,7 @@ class SessionActivation < ApplicationRecord
class << self
def active?(id)
- id && where(session_id: id).exists?
+ id && exists?(session_id: id)
end
def activate(**options)
diff --git a/app/models/setting.rb b/app/models/setting.rb
index 3bdc6ffb4..6af7a98c6 100644
--- a/app/models/setting.rb
+++ b/app/models/setting.rb
@@ -13,49 +13,114 @@
# thing_id :bigint(8)
#
-class Setting < RailsSettings::Base
- source Rails.root.join('config', 'settings.yml')
+# This file is derived from a fork of the `rails-settings-cached` gem available at
+# https://github.com/mastodon/rails-settings-cached/tree/v0.6.6-aliases-true, with
+# the original available at:
+# https://github.com/huacnlee/rails-settings-cached/tree/0.x
+
+# It is licensed as follows:
+
+# Copyright (c) 2006 Alex Wayne
+# Some additional features added 2009 by Georg Ledermann
+
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOa AND
+# NONINFRINGEMENT. IN NO EVENT SaALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+class Setting < ApplicationRecord
+ after_commit :rewrite_cache, on: %i(create update)
+ after_commit :expire_cache, on: %i(destroy)
+
+ # Settings are server-wide settings only, but they were previously
+ # used for users too. This can be dropped later with a database
+ # migration dropping any scoped setting.
+ default_scope { where(thing_type: nil, thing_id: nil) }
+
+ class << self
+ # get or set a variable with the variable as the called method
+ # rubocop:disable Style/MissingRespondToMissing
+ def method_missing(method, *args)
+ # set a value for a variable
+ if method.end_with?('=')
+ var_name = method.to_s.chomp('=')
+ value = args.first
+ self[var_name] = value
+ else
+ # retrieve a value
+ self[method.to_s]
+ end
+ end
+ # rubocop:enable Style/MissingRespondToMissing
+
+ def cache_prefix_by_startup
+ @cache_prefix_by_startup ||= Digest::MD5.hexdigest(default_settings.to_s)
+ end
+
+ def cache_key(var_name)
+ "rails_settings_cached/#{cache_prefix_by_startup}/#{var_name}"
+ end
+
+ def [](key)
+ Rails.cache.fetch(cache_key(key)) do
+ db_val = find_by(var: key)
+ db_val ? db_val.value : default_settings[key]
+ end
+ end
+
+ # set a setting value by [] notation
+ def []=(var_name, value)
+ record = find_or_initialize_by(var: var_name.to_s)
+ record.value = value
+ record.save!
+ end
+
+ def default_settings
+ return @default_settings if defined?(@default_settings)
+
+ content = Rails.root.join('config', 'settings.yml').read
+ hash = content.empty? ? {} : YAML.safe_load(ERB.new(content).result, aliases: true).to_hash
+ @default_settings = (hash[Rails.env] || {}).freeze
+ end
+ end
+
+ # get the value field, YAML decoded
+ def value
+ YAML.safe_load(self[:value], permitted_classes: [ActiveSupport::HashWithIndifferentAccess, Symbol]) if self[:value].present?
+ end
+
+ # set the value field, YAML encoded
+ def value=(new_value)
+ self[:value] = new_value.to_yaml
+ end
+
+ def rewrite_cache
+ Rails.cache.write(cache_key, value)
+ end
+
+ def expire_cache
+ Rails.cache.delete(cache_key)
+ end
+
+ def cache_key
+ self.class.cache_key(var)
+ end
def to_param
var
end
-
- class << self
- def [](key)
- return super(key) unless rails_initialized?
-
- Rails.cache.fetch(cache_key(key, nil)) do
- db_val = object(key)
-
- if db_val
- default_value = default_settings[key]
-
- return default_value.with_indifferent_access.merge!(db_val.value) if default_value.is_a?(Hash)
-
- db_val.value
- else
- default_settings[key]
- end
- end
- end
-
- def all_as_records
- vars = thing_scoped
- records = vars.index_by(&:var)
-
- default_settings.each do |key, default_value|
- next if records.key?(key) || default_value.is_a?(Hash)
-
- records[key] = Setting.new(var: key, value: default_value)
- end
-
- records
- end
-
- def default_settings
- return {} unless RailsSettings::Default.enabled?
-
- RailsSettings::Default.instance
- end
- end
end
diff --git a/app/models/status.rb b/app/models/status.rb
index 4bdadae06..e3d41cced 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -59,8 +59,10 @@ class Status < ApplicationRecord
belongs_to :conversation, optional: true
belongs_to :preloadable_poll, class_name: 'Poll', foreign_key: 'poll_id', optional: true, inverse_of: false
- belongs_to :thread, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :replies, optional: true
- belongs_to :reblog, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblogs, optional: true
+ with_options class_name: 'Status', optional: true do
+ belongs_to :thread, foreign_key: 'in_reply_to_id', inverse_of: :replies
+ belongs_to :reblog, foreign_key: 'reblog_of_id', inverse_of: :reblogs
+ end
has_many :favourites, inverse_of: :status, dependent: :destroy
has_many :bookmarks, inverse_of: :status, dependent: :destroy
@@ -108,8 +110,6 @@ class Status < ApplicationRecord
scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) }
scope :with_public_visibility, -> { where(visibility: :public) }
scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) }
- scope :excluding_silenced_accounts, -> { left_outer_joins(:account).where(accounts: { silenced_at: nil }) }
- scope :including_silenced_accounts, -> { left_outer_joins(:account).where.not(accounts: { silenced_at: nil }) }
scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) }
scope :not_domain_blocked_by_account, ->(account) { account.excluded_from_timeline_domains.blank? ? left_outer_joins(:account) : left_outer_joins(:account).where('accounts.domain IS NULL OR accounts.domain NOT IN (?)', account.excluded_from_timeline_domains) }
scope :tagged_with_all, lambda { |tag_ids|
@@ -263,7 +263,7 @@ class Status < ApplicationRecord
end
def reported?
- @reported ||= Report.where(target_account: account).unresolved.where('? = ANY(status_ids)', id).exists?
+ @reported ||= Report.where(target_account: account).unresolved.exists?(['? = ANY(status_ids)', id])
end
def emojis
@@ -277,7 +277,9 @@ class Status < ApplicationRecord
def ordered_media_attachments
if ordered_media_attachment_ids.nil?
- media_attachments
+ # NOTE: sort Ruby-side to avoid hitting the database when the status is
+ # not persisted to database yet
+ media_attachments.sort_by(&:id)
else
map = media_attachments.index_by(&:id)
ordered_media_attachment_ids.filter_map { |media_attachment_id| map[media_attachment_id] }
diff --git a/app/models/tag.rb b/app/models/tag.rb
index 46e55d74f..f2168ae90 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -39,6 +39,8 @@ class Tag < ApplicationRecord
HASHTAG_NAME_RE = /\A(#{HASHTAG_NAME_PAT})\z/i
HASHTAG_INVALID_CHARS_RE = /[^[:alnum:]\u0E47-\u0E4E#{HASHTAG_SEPARATORS}]/
+ RECENT_STATUS_LIMIT = 1000
+
validates :name, presence: true, format: { with: HASHTAG_NAME_RE }
validates :display_name, format: { with: HASHTAG_NAME_RE }
validate :validate_name_change, if: -> { !new_record? && name_changed? }
@@ -53,7 +55,7 @@ class Tag < ApplicationRecord
scope :not_trendable, -> { where(trendable: false) }
scope :recently_used, lambda { |account|
joins(:statuses)
- .where(statuses: { id: account.statuses.select(:id).limit(1000) })
+ .where(statuses: { id: account.statuses.select(:id).limit(RECENT_STATUS_LIMIT) })
.group(:id).order(Arel.sql('count(*) desc'))
}
scope :matches_name, ->(term) { where(arel_table[:name].lower.matches(arel_table.lower("#{sanitize_sql_like(Tag.normalize(term))}%"), nil, true)) } # Search with case-sensitive to use B-tree index
diff --git a/app/models/user.rb b/app/models/user.rb
index a1574c02a..70c24336f 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -117,16 +117,16 @@ class User < ApplicationRecord
scope :active, -> { confirmed.where(arel_table[:current_sign_in_at].gteq(ACTIVE_DURATION.ago)).joins(:account).where(accounts: { suspended_at: nil }) }
scope :matches_email, ->(value) { where(arel_table[:email].matches("#{value}%")) }
scope :matches_ip, ->(value) { left_joins(:ips).where('user_ips.ip <<= ?', value).group('users.id') }
- scope :emailable, -> { confirmed.enabled.joins(:account).merge(Account.searchable) }
- before_validation :sanitize_languages
before_validation :sanitize_role
- before_validation :sanitize_time_zone
- before_validation :sanitize_locale
before_create :set_approved
after_commit :send_pending_devise_notifications
after_create_commit :trigger_webhooks
+ normalizes :locale, with: ->(locale) { I18n.available_locales.exclude?(locale.to_sym) ? nil : locale }
+ normalizes :time_zone, with: ->(time_zone) { ActiveSupport::TimeZone[time_zone].nil? ? nil : time_zone }
+ normalizes :chosen_languages, with: ->(chosen_languages) { chosen_languages.compact_blank.presence }
+
# This avoids a deprecation warning from Rails 5.1
# It seems possible that a future release of devise-two-factor will
# handle this itself, and this can be removed from our User class.
@@ -149,6 +149,10 @@ class User < ApplicationRecord
end
end
+ def self.skip_mx_check?
+ Rails.env.local?
+ end
+
def role
if role_id.nil?
UserRole.everyone
@@ -186,37 +190,16 @@ class User < ApplicationRecord
end
def confirm
- new_user = !confirmed?
- self.approved = true if open_registrations? && !sign_up_from_ip_requires_approval?
-
- super
-
- if new_user
- # Avoid extremely unlikely race condition when approving and confirming
- # the user at the same time
- reload unless approved?
-
- if approved?
- prepare_new_user!
- else
- notify_staff_about_pending_account!
- end
+ wrap_email_confirmation do
+ super
end
end
- def confirm!
- new_user = !confirmed?
- self.approved = true if open_registrations?
-
- skip_confirmation!
- save!
-
- if new_user
- # Avoid extremely unlikely race condition when approving and confirming
- # the user at the same time
- reload unless approved?
-
- prepare_new_user! if approved?
+ # Mark current email as confirmed, bypassing Devise
+ def mark_email_as_confirmed!
+ wrap_email_confirmation do
+ skip_confirmation!
+ save!
end
end
@@ -418,7 +401,7 @@ class User < ApplicationRecord
def set_approved
self.approved = begin
- if sign_up_from_ip_requires_approval?
+ if sign_up_from_ip_requires_approval? || sign_up_email_requires_approval?
false
else
open_registrations? || valid_invitation? || external?
@@ -426,8 +409,53 @@ class User < ApplicationRecord
end
end
+ def grant_approval_on_confirmation?
+ # Re-check approval on confirmation if the server has switched to open registrations
+ open_registrations? && !sign_up_from_ip_requires_approval? && !sign_up_email_requires_approval?
+ end
+
+ def wrap_email_confirmation
+ new_user = !confirmed?
+ self.approved = true if grant_approval_on_confirmation?
+
+ yield
+
+ if new_user
+ # Avoid extremely unlikely race condition when approving and confirming
+ # the user at the same time
+ reload unless approved?
+
+ if approved?
+ prepare_new_user!
+ else
+ notify_staff_about_pending_account!
+ end
+ end
+ end
+
def sign_up_from_ip_requires_approval?
- !sign_up_ip.nil? && IpBlock.where(severity: :sign_up_requires_approval).where('ip >>= ?', sign_up_ip.to_s).exists?
+ sign_up_ip.present? && IpBlock.sign_up_requires_approval.exists?(['ip >>= ?', sign_up_ip.to_s])
+ end
+
+ def sign_up_email_requires_approval?
+ return false if email.blank?
+
+ _, domain = email.split('@', 2)
+ return false if domain.blank?
+
+ records = []
+
+ # Doing this conditionally is not very satisfying, but this is consistent
+ # with the MX records validations we do and keeps the specs tractable.
+ unless self.class.skip_mx_check?
+ Resolv::DNS.open do |dns|
+ dns.timeouts = 5
+
+ records = dns.getresources(domain, Resolv::DNS::Resource::IN::MX).to_a.map { |e| e.exchange.to_s }.compact_blank
+ end
+ end
+
+ EmailDomainBlock.requires_approval?(records + [domain], attempt_ip: sign_up_ip)
end
def open_registrations?
@@ -442,25 +470,10 @@ class User < ApplicationRecord
@bypass_invite_request_check
end
- def sanitize_languages
- return if chosen_languages.nil?
-
- chosen_languages.compact_blank!
- self.chosen_languages = nil if chosen_languages.empty?
- end
-
def sanitize_role
self.role = nil if role.present? && role.everyone?
end
- def sanitize_time_zone
- self.time_zone = nil if time_zone.present? && ActiveSupport::TimeZone[time_zone].nil?
- end
-
- def sanitize_locale
- self.locale = nil if locale.present? && I18n.available_locales.exclude?(locale.to_sym)
- end
-
def prepare_new_user!
BootstrapTimelineWorker.perform_async(account_id)
ActivityTracker.increment('activity:accounts:local')
@@ -493,7 +506,7 @@ class User < ApplicationRecord
end
def validate_email_dns?
- email_changed? && !external? && !Rails.env.local?
+ email_changed? && !external? && !self.class.skip_mx_check?
end
def validate_role_elevation
diff --git a/app/policies/status_policy.rb b/app/policies/status_policy.rb
index 322d3aec5..540e26642 100644
--- a/app/policies/status_policy.rb
+++ b/app/policies/status_policy.rb
@@ -57,7 +57,7 @@ class StatusPolicy < ApplicationPolicy
if record.mentions.loaded?
record.mentions.any? { |mention| mention.account_id == current_account.id }
else
- record.mentions.where(account: current_account).exists?
+ record.mentions.exists?(account: current_account)
end
end
diff --git a/app/presenters/annual_reports_presenter.rb b/app/presenters/annual_reports_presenter.rb
new file mode 100644
index 000000000..001e1d37b
--- /dev/null
+++ b/app/presenters/annual_reports_presenter.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class AnnualReportsPresenter
+ alias read_attribute_for_serialization send
+
+ attr_reader :annual_reports
+
+ def initialize(annual_reports)
+ @annual_reports = annual_reports
+ end
+
+ def accounts
+ @accounts ||= Account.where(id: @annual_reports.flat_map(&:account_ids)).includes(:account_stat, :moved_to_account, user: :role)
+ end
+
+ def statuses
+ @statuses ||= Status.where(id: @annual_reports.flat_map(&:status_ids)).with_includes
+ end
+
+ def self.model_name
+ @model_name ||= ActiveModel::Name.new(self)
+ end
+end
diff --git a/app/serializers/manifest_serializer.rb b/app/serializers/manifest_serializer.rb
index 501bb788e..1c1f7d0ad 100644
--- a/app/serializers/manifest_serializer.rb
+++ b/app/serializers/manifest_serializer.rb
@@ -39,7 +39,7 @@ class ManifestSerializer < ActiveModel::Serializer
def icons
ICON_SIZES.map do |size|
{
- src: full_pack_url("media/icons/android-chrome-#{size}x#{size}.png"),
+ src: frontend_asset_url("icons/android-chrome-#{size}x#{size}.png"),
sizes: "#{size}x#{size}",
type: 'image/png',
purpose: 'any maskable',
diff --git a/app/serializers/rest/admin/email_domain_block_serializer.rb b/app/serializers/rest/admin/email_domain_block_serializer.rb
index a026ff680..afe7722cb 100644
--- a/app/serializers/rest/admin/email_domain_block_serializer.rb
+++ b/app/serializers/rest/admin/email_domain_block_serializer.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class REST::Admin::EmailDomainBlockSerializer < ActiveModel::Serializer
- attributes :id, :domain, :created_at, :history
+ attributes :id, :domain, :created_at, :history, :allow_with_approval
def id
object.id.to_s
diff --git a/app/serializers/rest/announcement_serializer.rb b/app/serializers/rest/announcement_serializer.rb
index 23b2fa514..8cee27127 100644
--- a/app/serializers/rest/announcement_serializer.rb
+++ b/app/serializers/rest/announcement_serializer.rb
@@ -23,7 +23,7 @@ class REST::AnnouncementSerializer < ActiveModel::Serializer
end
def read
- object.announcement_mutes.where(account: current_user.account).exists?
+ object.announcement_mutes.exists?(account: current_user.account)
end
def content
diff --git a/app/serializers/rest/annual_report_serializer.rb b/app/serializers/rest/annual_report_serializer.rb
new file mode 100644
index 000000000..1fb5ddb5c
--- /dev/null
+++ b/app/serializers/rest/annual_report_serializer.rb
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+class REST::AnnualReportSerializer < ActiveModel::Serializer
+ attributes :year, :data, :schema_version
+end
diff --git a/app/serializers/rest/annual_reports_serializer.rb b/app/serializers/rest/annual_reports_serializer.rb
new file mode 100644
index 000000000..ea9572be1
--- /dev/null
+++ b/app/serializers/rest/annual_reports_serializer.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class REST::AnnualReportsSerializer < ActiveModel::Serializer
+ has_many :annual_reports, serializer: REST::AnnualReportSerializer
+ has_many :accounts, serializer: REST::AccountSerializer
+ has_many :statuses, serializer: REST::StatusSerializer
+end
diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb
index d7ed381e1..fa926cd28 100644
--- a/app/serializers/rest/instance_serializer.rb
+++ b/app/serializers/rest/instance_serializer.rb
@@ -28,7 +28,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
}
else
{
- url: full_pack_url('media/images/preview.png'),
+ url: frontend_asset_url('images/preview.png'),
}
end
end
diff --git a/app/serializers/rest/tag_serializer.rb b/app/serializers/rest/tag_serializer.rb
index 7801e77d1..017b57271 100644
--- a/app/serializers/rest/tag_serializer.rb
+++ b/app/serializers/rest/tag_serializer.rb
@@ -19,7 +19,7 @@ class REST::TagSerializer < ActiveModel::Serializer
if instance_options && instance_options[:relationships]
instance_options[:relationships].following_map[object.id] || false
else
- TagFollow.where(tag_id: object.id, account_id: current_user.account_id).exists?
+ TagFollow.exists?(tag_id: object.id, account_id: current_user.account_id)
end
end
diff --git a/app/serializers/rest/v1/instance_serializer.rb b/app/serializers/rest/v1/instance_serializer.rb
index 99d1b2bd6..fdf939cfc 100644
--- a/app/serializers/rest/v1/instance_serializer.rb
+++ b/app/serializers/rest/v1/instance_serializer.rb
@@ -33,7 +33,7 @@ class REST::V1::InstanceSerializer < ActiveModel::Serializer
end
def thumbnail
- instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url(:'@1x')) : full_pack_url('media/images/preview.png')
+ instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url(:'@1x')) : frontend_asset_url('images/preview.png')
end
def stats
diff --git a/app/services/activitypub/fetch_featured_collection_service.rb b/app/services/activitypub/fetch_featured_collection_service.rb
index d2bae08a0..89c3a1b6c 100644
--- a/app/services/activitypub/fetch_featured_collection_service.rb
+++ b/app/services/activitypub/fetch_featured_collection_service.rb
@@ -23,9 +23,9 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
case collection['type']
when 'Collection', 'CollectionPage'
- collection['items']
+ as_array(collection['items'])
when 'OrderedCollection', 'OrderedCollectionPage'
- collection['orderedItems']
+ as_array(collection['orderedItems'])
end
end
diff --git a/app/services/activitypub/fetch_remote_account_service.rb b/app/services/activitypub/fetch_remote_account_service.rb
index 567dd8a14..7b083d889 100644
--- a/app/services/activitypub/fetch_remote_account_service.rb
+++ b/app/services/activitypub/fetch_remote_account_service.rb
@@ -2,7 +2,7 @@
class ActivityPub::FetchRemoteAccountService < ActivityPub::FetchRemoteActorService
# Does a WebFinger roundtrip on each call, unless `only_key` is true
- def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil)
+ def call(uri, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil)
actor = super
return actor if actor.nil? || actor.is_a?(Account)
diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb
index 8df8c7587..86a134bb4 100644
--- a/app/services/activitypub/fetch_remote_actor_service.rb
+++ b/app/services/activitypub/fetch_remote_actor_service.rb
@@ -10,15 +10,15 @@ class ActivityPub::FetchRemoteActorService < BaseService
SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze
# Does a WebFinger roundtrip on each call, unless `only_key` is true
- def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil)
+ def call(uri, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil)
return if domain_not_allowed?(uri)
return ActivityPub::TagManager.instance.uri_to_actor(uri) if ActivityPub::TagManager.instance.local_uri?(uri)
@json = begin
if prefetched_body.nil?
- fetch_resource(uri, id)
+ fetch_resource(uri, true)
else
- body_to_json(prefetched_body, compare_id: id ? uri : nil)
+ body_to_json(prefetched_body, compare_id: uri)
end
rescue Oj::ParseError
raise Error, "Error parsing JSON-LD document #{uri}"
diff --git a/app/services/activitypub/fetch_remote_key_service.rb b/app/services/activitypub/fetch_remote_key_service.rb
index 8eb97c1e6..e96b5ad3b 100644
--- a/app/services/activitypub/fetch_remote_key_service.rb
+++ b/app/services/activitypub/fetch_remote_key_service.rb
@@ -6,23 +6,10 @@ class ActivityPub::FetchRemoteKeyService < BaseService
class Error < StandardError; end
# Returns actor that owns the key
- def call(uri, id: true, prefetched_body: nil, suppress_errors: true)
+ def call(uri, suppress_errors: true)
raise Error, 'No key URI given' if uri.blank?
- if prefetched_body.nil?
- if id
- @json = fetch_resource_without_id_validation(uri)
- if actor_type?
- @json = fetch_resource(@json['id'], true)
- elsif uri != @json['id']
- raise Error, "Fetched URI #{uri} has wrong id #{@json['id']}"
- end
- else
- @json = fetch_resource(uri, id)
- end
- else
- @json = body_to_json(prefetched_body, compare_id: id ? uri : nil)
- end
+ @json = fetch_resource(uri, false)
raise Error, "Unable to fetch key JSON at #{uri}" if @json.nil?
raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context?(@json)
diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb
index a491b32b2..6f8882378 100644
--- a/app/services/activitypub/fetch_remote_status_service.rb
+++ b/app/services/activitypub/fetch_remote_status_service.rb
@@ -8,14 +8,14 @@ class ActivityPub::FetchRemoteStatusService < BaseService
DISCOVERIES_PER_REQUEST = 1000
# Should be called when uri has already been checked for locality
- def call(uri, id: true, prefetched_body: nil, on_behalf_of: nil, expected_actor_uri: nil, request_id: nil)
+ def call(uri, prefetched_body: nil, on_behalf_of: nil, expected_actor_uri: nil, request_id: nil)
return if domain_not_allowed?(uri)
@request_id = request_id || "#{Time.now.utc.to_i}-status-#{uri}"
@json = if prefetched_body.nil?
- fetch_resource(uri, id, on_behalf_of)
+ fetch_resource(uri, true, on_behalf_of)
else
- body_to_json(prefetched_body, compare_id: id ? uri : nil)
+ body_to_json(prefetched_body, compare_id: uri)
end
return unless supported_context?
@@ -44,7 +44,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
# If we fetched a status that already exists, then we need to treat the
# activity as an update rather than create
- activity_json['type'] = 'Update' if equals_or_includes_any?(activity_json['type'], %w(Create)) && Status.where(uri: object_uri, account_id: actor.id).exists?
+ activity_json['type'] = 'Update' if equals_or_includes_any?(activity_json['type'], %w(Create)) && Status.exists?(uri: object_uri, account_id: actor.id)
with_redis do |redis|
discoveries = redis.incr("status_discovery_per_request:#{@request_id}")
@@ -65,7 +65,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
def account_from_uri(uri)
actor = ActivityPub::TagManager.instance.uri_to_resource(uri, Account)
- actor = ActivityPub::FetchRemoteAccountService.new.call(uri, id: true, request_id: @request_id) if actor.nil? || actor.possibly_stale?
+ actor = ActivityPub::FetchRemoteAccountService.new.call(uri, request_id: @request_id) if actor.nil? || actor.possibly_stale?
actor
end
diff --git a/app/services/activitypub/fetch_replies_service.rb b/app/services/activitypub/fetch_replies_service.rb
index b5c7759ec..e2ecdef16 100644
--- a/app/services/activitypub/fetch_replies_service.rb
+++ b/app/services/activitypub/fetch_replies_service.rb
@@ -26,9 +26,9 @@ class ActivityPub::FetchRepliesService < BaseService
case collection['type']
when 'Collection', 'CollectionPage'
- collection['items']
+ as_array(collection['items'])
when 'OrderedCollection', 'OrderedCollectionPage'
- collection['orderedItems']
+ as_array(collection['orderedItems'])
end
end
@@ -37,7 +37,20 @@ class ActivityPub::FetchRepliesService < BaseService
return unless @allow_synchronous_requests
return if non_matching_uri_hosts?(@account.uri, collection_or_uri)
- fetch_resource_without_id_validation(collection_or_uri, nil, true)
+ # NOTE: For backward compatibility reasons, Mastodon signs outgoing
+ # queries incorrectly by default.
+ #
+ # While this is relevant for all URLs with query strings, this is
+ # the only code path where this happens in practice.
+ #
+ # Therefore, retry with correct signatures if this fails.
+ begin
+ fetch_resource_without_id_validation(collection_or_uri, nil, true)
+ rescue Mastodon::UnexpectedResponseError => e
+ raise unless e.response && e.response.code == 401 && Addressable::URI.parse(collection_or_uri).query.present?
+
+ fetch_resource_without_id_validation(collection_or_uri, nil, true, request_options: { with_query_string: true })
+ end
end
def filtered_replies
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 8fc0989a3..9e787ace5 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -277,7 +277,7 @@ class ActivityPub::ProcessAccountService < BaseService
def moved_account
account = ActivityPub::TagManager.instance.uri_to_resource(@json['movedTo'], Account)
- account ||= ActivityPub::FetchRemoteAccountService.new.call(@json['movedTo'], id: true, break_on_redirect: true, request_id: @options[:request_id])
+ account ||= ActivityPub::FetchRemoteAccountService.new.call(@json['movedTo'], break_on_redirect: true, request_id: @options[:request_id])
account
end
diff --git a/app/services/activitypub/synchronize_followers_service.rb b/app/services/activitypub/synchronize_followers_service.rb
index 7ccc91730..f51d671a0 100644
--- a/app/services/activitypub/synchronize_followers_service.rb
+++ b/app/services/activitypub/synchronize_followers_service.rb
@@ -59,9 +59,9 @@ class ActivityPub::SynchronizeFollowersService < BaseService
case collection['type']
when 'Collection', 'CollectionPage'
- collection['items']
+ as_array(collection['items'])
when 'OrderedCollection', 'OrderedCollectionPage'
- collection['orderedItems']
+ as_array(collection['orderedItems'])
end
end
diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb
index a3406e5a5..71c6cca79 100644
--- a/app/services/fetch_resource_service.rb
+++ b/app/services/fetch_resource_service.rb
@@ -48,7 +48,15 @@ class FetchResourceService < BaseService
body = response.body_with_limit
json = body_to_json(body)
- [json['id'], { prefetched_body: body, id: true }] if supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES) || expected_type?(json))
+ return unless supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES) || expected_type?(json))
+
+ if json['id'] != @url
+ return if terminal
+
+ return process(json['id'], terminal: true)
+ end
+
+ [@url, { prefetched_body: body }]
elsif !terminal
link_header = response['Link'] && parse_link_header(response)
diff --git a/app/services/keys/query_service.rb b/app/services/keys/query_service.rb
index 14c9d9205..33e13293f 100644
--- a/app/services/keys/query_service.rb
+++ b/app/services/keys/query_service.rb
@@ -69,7 +69,7 @@ class Keys::QueryService < BaseService
return if json['items'].blank?
- @devices = json['items'].map do |device|
+ @devices = as_array(json['items']).map do |device|
Device.new(device_id: device['id'], name: device['name'], identity_key: device.dig('identityKey', 'publicKeyBase64'), fingerprint_key: device.dig('fingerprintKey', 'publicKeyBase64'), claim_url: device['claim'])
end
rescue HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error => e
diff --git a/app/services/reblog_service.rb b/app/services/reblog_service.rb
index 960315ed8..cca79eced 100644
--- a/app/services/reblog_service.rb
+++ b/app/services/reblog_service.rb
@@ -43,11 +43,7 @@ class ReblogService < BaseService
def create_notification(reblog)
reblogged_status = reblog.reblog
- if reblogged_status.account.local?
- LocalNotificationWorker.perform_async(reblogged_status.account_id, reblog.id, reblog.class.name, 'reblog')
- elsif reblogged_status.account.activitypub? && !reblogged_status.account.following?(reblog.account)
- ActivityPub::DeliveryWorker.perform_async(build_json(reblog), reblog.account_id, reblogged_status.account.inbox_url)
- end
+ LocalNotificationWorker.perform_async(reblogged_status.account_id, reblog.id, reblog.class.name, 'reblog') if reblogged_status.account.local?
end
def increment_statistics
diff --git a/app/services/vote_service.rb b/app/services/vote_service.rb
index 3e92a1690..878350388 100644
--- a/app/services/vote_service.rb
+++ b/app/services/vote_service.rb
@@ -19,7 +19,7 @@ class VoteService < BaseService
already_voted = true
with_redis_lock("vote:#{@poll.id}:#{@account.id}") do
- already_voted = @poll.votes.where(account: @account).exists?
+ already_voted = @poll.votes.exists?(account: @account)
ApplicationRecord.transaction do
@choices.each do |choice|
diff --git a/app/validators/email_mx_validator.rb b/app/validators/email_mx_validator.rb
index a30a0c820..794377894 100644
--- a/app/validators/email_mx_validator.rb
+++ b/app/validators/email_mx_validator.rb
@@ -47,6 +47,7 @@ class EmailMxValidator < ActiveModel::Validator
dns.timeouts = 5
records = dns.getresources(domain, Resolv::DNS::Resource::IN::MX).to_a.map { |e| e.exchange.to_s }
+ next if records == [''] # This domain explicitly rejects emails
([domain] + records).uniq.each do |hostname|
ips.concat(dns.getresources(hostname, Resolv::DNS::Resource::IN::A).to_a.map { |e| e.address.to_s })
diff --git a/app/validators/reaction_validator.rb b/app/validators/reaction_validator.rb
index 4ed3376e8..89d83de5a 100644
--- a/app/validators/reaction_validator.rb
+++ b/app/validators/reaction_validator.rb
@@ -19,7 +19,7 @@ class ReactionValidator < ActiveModel::Validator
end
def new_reaction?(reaction)
- !reaction.announcement.announcement_reactions.where(name: reaction.name).exists?
+ !reaction.announcement.announcement_reactions.exists?(name: reaction.name)
end
def limit_reached?(reaction)
diff --git a/app/validators/vote_validator.rb b/app/validators/vote_validator.rb
index fa2bd223d..e725b4c0b 100644
--- a/app/validators/vote_validator.rb
+++ b/app/validators/vote_validator.rb
@@ -35,7 +35,7 @@ class VoteValidator < ActiveModel::Validator
if vote.persisted?
account_votes_on_same_poll(vote).where(choice: vote.choice).where.not(poll_votes: { id: vote }).exists?
else
- account_votes_on_same_poll(vote).where(choice: vote.choice).exists?
+ account_votes_on_same_poll(vote).exists?(choice: vote.choice)
end
end
diff --git a/app/views/admin/account_warnings/_account_warning.html.haml b/app/views/admin/account_warnings/_account_warning.html.haml
index 85bac789f..5702e4f6d 100644
--- a/app/views/admin/account_warnings/_account_warning.html.haml
+++ b/app/views/admin/account_warnings/_account_warning.html.haml
@@ -5,7 +5,10 @@
= fa_icon 'warning'
.log-entry__content
.log-entry__title
- = t(account_warning.action, scope: 'admin.strikes.actions', name: content_tag(:span, account_warning.account ? account_warning.account.username : I18n.t('admin.action_logs.deleted_account'), class: 'username'), target: content_tag(:span, account_warning.target_account.pretty_acct, class: 'target')).html_safe
+ = t(account_warning.action,
+ scope: 'admin.strikes.actions',
+ name: content_tag(:span, account_warning.account ? account_warning.account.username : I18n.t('admin.action_logs.deleted_account'), class: 'username'),
+ target: content_tag(:span, account_warning.target_account.pretty_acct, class: 'target')).html_safe
.log-entry__timestamp
%time.formatted{ datetime: account_warning.created_at.iso8601 }
= l(account_warning.created_at)
diff --git a/app/views/admin/action_logs/_action_log.html.haml b/app/views/admin/action_logs/_action_log.html.haml
index a2fce2d11..dcc333180 100644
--- a/app/views/admin/action_logs/_action_log.html.haml
+++ b/app/views/admin/action_logs/_action_log.html.haml
@@ -4,6 +4,8 @@
= image_tag action_log.account.avatar.url(:original), alt: '', width: 40, height: 40, class: 'avatar'
.log-entry__content
.log-entry__title
- = t("admin.action_logs.actions.#{action_log.action}_#{action_log.target_type.underscore}_html", name: content_tag(:span, action_log.account.username, class: 'username'), target: content_tag(:span, log_target(action_log), class: 'target'))
+ = t "admin.action_logs.actions.#{action_log.action}_#{action_log.target_type.underscore}_html",
+ name: content_tag(:span, action_log.account.username, class: 'username'),
+ target: content_tag(:span, log_target(action_log), class: 'target')
.log-entry__timestamp
%time.formatted{ datetime: action_log.created_at.iso8601 }
diff --git a/app/views/admin/email_domain_blocks/_email_domain_block.html.haml b/app/views/admin/email_domain_blocks/_email_domain_block.html.haml
index 7cb973c4b..f6a6e8266 100644
--- a/app/views/admin/email_domain_blocks/_email_domain_block.html.haml
+++ b/app/views/admin/email_domain_blocks/_email_domain_block.html.haml
@@ -12,3 +12,7 @@
¡
= t('admin.email_domain_blocks.attempts_over_week', count: email_domain_block.history.reduce(0) { |sum, day| sum + day.accounts })
+
+ - if email_domain_block.allow_with_approval?
+ ¡
+ = t('admin.email_domain_blocks.allow_registrations_with_approval')
diff --git a/app/views/admin/email_domain_blocks/new.html.haml b/app/views/admin/email_domain_blocks/new.html.haml
index fa1d950ad..3d3148773 100644
--- a/app/views/admin/email_domain_blocks/new.html.haml
+++ b/app/views/admin/email_domain_blocks/new.html.haml
@@ -7,6 +7,9 @@
.fields-group
= f.input :domain, wrapper: :with_block_label, label: t('admin.email_domain_blocks.domain'), input_html: { readonly: defined?(@resolved_records) }
+ .fields-group
+ = f.input :allow_with_approval, wrapper: :with_label, hint: false, label: I18n.t('admin.email_domain_blocks.allow_registrations_with_approval')
+
- if defined?(@resolved_records)
%p.hint= t('admin.email_domain_blocks.resolved_dns_records_hint_html')
diff --git a/app/views/admin/reports/_media_attachments.html.haml b/app/views/admin/reports/_media_attachments.html.haml
index 8ecd7444d..3c52d6917 100644
--- a/app/views/admin/reports/_media_attachments.html.haml
+++ b/app/views/admin/reports/_media_attachments.html.haml
@@ -2,6 +2,16 @@
= render_video_component(status, visible: false)
- elsif status.ordered_media_attachments.first.audio?
- audio = status.ordered_media_attachments.first
- = react_component :audio, src: audio.file.url(:original), height: 110, alt: audio.description, lang: status.language, duration: audio.file.meta.dig(:original, :duration)
+ = react_component :audio,
+ alt: audio.description,
+ duration: audio.file.meta.dig(:original, :duration),
+ height: 110,
+ lang: status.language,
+ src: audio.file.url(:original)
- else
- = react_component :media_gallery, height: 343, sensitive: status.sensitive?, visible: false, lang: status.language, media: status.ordered_media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }
+ = react_component :media_gallery,
+ height: 343,
+ lang: status.language,
+ media: status.ordered_media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json },
+ sensitive: status.sensitive?,
+ visible: false
diff --git a/app/views/application/mailer/_account.html.haml b/app/views/application/mailer/_account.html.haml
new file mode 100644
index 000000000..27493f770
--- /dev/null
+++ b/app/views/application/mailer/_account.html.haml
@@ -0,0 +1,30 @@
+%table.email-w-full.email-account-banner-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-account-banner-td{ height: 140, background: full_asset_url(account.header.url) }
+ %table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-account-banner-inner-td
+ .email-account-banner-overlap-div
+ %table.email-account-banner-icon-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td
+ %img{ src: full_asset_url(account.avatar.url), width: 80, height: 80, alt: '' }
+%table.email-w-full.email-account-body-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-account-body-td
+ %p.email-account-name= display_name(account)
+ %p.email-account-handle= acct(account)
+ %table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-padding-top-16
+ %table.email-w-full.email-account-stats-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td
+ %b= account_formatted_stat(account.statuses_count)
+ %span= t('accounts.posts', count: account.statuses_count)
+ %td
+ %b= account_formatted_stat(account.following_count)
+ %span= t('accounts.following')
+ %td
+ %b= account_formatted_stat(account.followers_count)
+ %span= t('accounts.followers', count: account.followers_count)
diff --git a/app/views/application/mailer/_button.html.haml b/app/views/application/mailer/_button.html.haml
new file mode 100644
index 000000000..61430732e
--- /dev/null
+++ b/app/views/application/mailer/_button.html.haml
@@ -0,0 +1,4 @@
+%table.email-btn-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-btn-td
+ = link_to "#{text}Â â", url, class: 'email-btn-a email-btn-hover'
diff --git a/app/views/application/mailer/_checklist.html.haml b/app/views/application/mailer/_checklist.html.haml
new file mode 100644
index 000000000..83072bd36
--- /dev/null
+++ b/app/views/application/mailer/_checklist.html.haml
@@ -0,0 +1,29 @@
+%table.email-w-full.email-checklist-wrapper-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-checklist-wrapper-td
+ %table.email-w-full.email-checklist-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-checklist-td
+ %table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-checklist-icons-td
+ %table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-checklist-icons-checkbox-td
+ - if defined?(checked) && checked
+ = image_tag frontend_asset_url('images/mailer-new/welcome/checkbox-on.png'), alt: '', width: 20, height: 20
+ - else
+ = image_tag frontend_asset_url('images/mailer-new/welcome/checkbox-off.png'), alt: '', width: 20, height: 20
+ %td.email-checklist-icons-step-td
+ - if defined?(step_image_url)
+ = image_tag step_image_url, alt: '', width: 40, height: 40
+ %td.email-checklist-text-td
+ .email-desktop-flex
+ %div
+ - if defined?(title)
+ %h3= title
+ - if defined?(text)
+ %p= text
+ %div
+ - if defined?(button_text) && defined?(button_url) && defined?(checked) && !checked
+ = render 'application/mailer/button', text: button_text, url: button_url
diff --git a/app/views/application/mailer/_frame.html.haml b/app/views/application/mailer/_frame.html.haml
new file mode 100644
index 000000000..74403e767
--- /dev/null
+++ b/app/views/application/mailer/_frame.html.haml
@@ -0,0 +1,4 @@
+%table.email-w-full.email-frame-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-frame-td
+ %p= text
diff --git a/app/views/application/mailer/_heading.html.haml b/app/views/application/mailer/_heading.html.haml
new file mode 100644
index 000000000..9fc5dc747
--- /dev/null
+++ b/app/views/application/mailer/_heading.html.haml
@@ -0,0 +1,13 @@
+%table.email-w-full.email-header-heading-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ %td.email-header-heading-td
+ %table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' }
+ %tr
+ - if defined?(heading_image_url)
+ %td.email-header-heading-img-td
+ = image_tag heading_image_url, alt: '', width: 56, height: 56
+ %td.email-header-heading-txt-td
+ - if defined?(heading_title)
+ %h1= heading_title
+ - if defined?(heading_subtitle)
+ %p= heading_subtitle
diff --git a/app/views/auth/challenges/new.html.haml b/app/views/auth/challenges/new.html.haml
index 4f21e4af6..50dcebb00 100644
--- a/app/views/auth/challenges/new.html.haml
+++ b/app/views/auth/challenges/new.html.haml
@@ -5,7 +5,11 @@
= f.input :return_to, as: :hidden
.field-group
- = f.input :current_password, wrapper: :with_block_label, input_html: { autocomplete: 'current-password', autofocus: true }, label: t('challenge.prompt'), required: true
+ = f.input :current_password,
+ input_html: { autocomplete: 'current-password', autofocus: true },
+ label: t('challenge.prompt'),
+ required: true,
+ wrapper: :with_block_label
.actions
= f.button :button, t('challenge.confirm'), type: :submit
diff --git a/app/views/auth/confirmations/new.html.haml b/app/views/auth/confirmations/new.html.haml
index 0cb82a1f8..eaa9d9add 100644
--- a/app/views/auth/confirmations/new.html.haml
+++ b/app/views/auth/confirmations/new.html.haml
@@ -21,7 +21,13 @@
= render 'shared/error_messages', object: resource
.fields-group
- = f.input :email, autofocus: true, wrapper: :with_label, label: t('simple_form.labels.defaults.email'), input_html: { 'aria-label': t('simple_form.labels.defaults.email') }, readonly: current_user.present?, hint: current_user.present? && t('auth.confirmations.wrong_email_hint')
+ = f.input :email,
+ autofocus: true,
+ hint: current_user.present? && t('auth.confirmations.wrong_email_hint'),
+ input_html: { 'aria-label': t('simple_form.labels.defaults.email') },
+ label: t('simple_form.labels.defaults.email'),
+ readonly: current_user.present?,
+ wrapper: :with_label
.actions
= f.button :button, t('auth.resend_confirmation'), type: :submit
diff --git a/app/views/auth/passwords/edit.html.haml b/app/views/auth/passwords/edit.html.haml
index b95a9b676..a75dc2d9f 100644
--- a/app/views/auth/passwords/edit.html.haml
+++ b/app/views/auth/passwords/edit.html.haml
@@ -8,9 +8,18 @@
= f.input :reset_password_token, as: :hidden
.fields-group
- = f.input :password, wrapper: :with_label, autofocus: true, label: t('simple_form.labels.defaults.new_password'), input_html: { 'aria-label': t('simple_form.labels.defaults.new_password'), autocomplete: 'new-password', minlength: User.password_length.first, maxlength: User.password_length.last }, required: true
+ = f.input :password,
+ autofocus: true,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.new_password'), autocomplete: 'new-password', minlength: User.password_length.first, maxlength: User.password_length.last },
+ label: t('simple_form.labels.defaults.new_password'),
+ required: true,
+ wrapper: :with_label
.fields-group
- = f.input :password_confirmation, wrapper: :with_label, label: t('simple_form.labels.defaults.confirm_new_password'), input_html: { 'aria-label': t('simple_form.labels.defaults.confirm_new_password'), autocomplete: 'new-password' }, required: true
+ = f.input :password_confirmation,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.confirm_new_password'), autocomplete: 'new-password' },
+ label: t('simple_form.labels.defaults.confirm_new_password'),
+ required: true,
+ wrapper: :with_label
.actions
= f.button :button, t('auth.set_new_password'), type: :submit
diff --git a/app/views/auth/passwords/new.html.haml b/app/views/auth/passwords/new.html.haml
index 10ad108ea..8d5adaf3b 100644
--- a/app/views/auth/passwords/new.html.haml
+++ b/app/views/auth/passwords/new.html.haml
@@ -5,7 +5,12 @@
= render 'shared/error_messages', object: resource
.fields-group
- = f.input :email, autofocus: true, wrapper: :with_label, label: t('simple_form.labels.defaults.email'), input_html: { 'aria-label': t('simple_form.labels.defaults.email') }, hint: false
+ = f.input :email,
+ autofocus: true,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.email') },
+ label: t('simple_form.labels.defaults.email'),
+ wrapper: :with_label
.actions
= f.button :button, t('auth.reset_password'), type: :submit
diff --git a/app/views/auth/registrations/_account_warning.html.haml b/app/views/auth/registrations/_account_warning.html.haml
index 40e7e1296..19e5746ff 100644
--- a/app/views/auth/registrations/_account_warning.html.haml
+++ b/app/views/auth/registrations/_account_warning.html.haml
@@ -5,7 +5,9 @@
= fa_icon 'warning'
.log-entry__content
.log-entry__title
- = t('disputes.strikes.title', action: t(account_warning.action, scope: 'disputes.strikes.title_actions'), date: l(account_warning.created_at.to_date))
+ = t 'disputes.strikes.title',
+ action: t(account_warning.action, scope: 'disputes.strikes.title_actions'),
+ date: l(account_warning.created_at.to_date)
.log-entry__timestamp
%time.formatted{ datetime: account_warning.created_at.iso8601 }= l(account_warning.created_at)
diff --git a/app/views/auth/registrations/_session.html.haml b/app/views/auth/registrations/_session.html.haml
index 28499a7c9..2fa7db70c 100644
--- a/app/views/auth/registrations/_session.html.haml
+++ b/app/views/auth/registrations/_session.html.haml
@@ -3,7 +3,9 @@
%span{ title: session.user_agent }<
= fa_icon "#{session_device_icon(session)} fw", 'aria-label': session_device_icon(session)
- = t 'sessions.description', browser: t("sessions.browsers.#{session.browser}", default: session.browser.to_s), platform: t("sessions.platforms.#{session.platform}", default: session.platform.to_s)
+ = t 'sessions.description',
+ browser: t("sessions.browsers.#{session.browser}", default: session.browser.to_s),
+ platform: t("sessions.platforms.#{session.platform}", default: session.platform.to_s)
%td
%samp= session.ip
%td
diff --git a/app/views/auth/registrations/edit.html.haml b/app/views/auth/registrations/edit.html.haml
index f5ef4e97e..48350f478 100644
--- a/app/views/auth/registrations/edit.html.haml
+++ b/app/views/auth/registrations/edit.html.haml
@@ -15,15 +15,33 @@
- if (!use_seamless_external_login? || resource.encrypted_password.present?) && !omniauth_only?
.fields-row
.fields-row__column.fields-group.fields-row__column-6
- = f.input :email, wrapper: :with_label, input_html: { 'aria-label': t('simple_form.labels.defaults.email') }, required: true, disabled: current_account.suspended?
+ = f.input :email,
+ disabled: current_account.suspended?,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.email') },
+ required: true,
+ wrapper: :with_label
.fields-row__column.fields-group.fields-row__column-6
- = f.input :current_password, wrapper: :with_label, input_html: { 'aria-label': t('simple_form.labels.defaults.current_password'), autocomplete: 'current-password' }, required: true, disabled: current_account.suspended?, hint: false
+ = f.input :current_password,
+ disabled: current_account.suspended?,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.current_password'), autocomplete: 'current-password' },
+ required: true,
+ wrapper: :with_label
.fields-row
.fields-row__column.fields-group.fields-row__column-6
- = f.input :password, wrapper: :with_label, label: t('simple_form.labels.defaults.new_password'), input_html: { 'aria-label': t('simple_form.labels.defaults.new_password'), autocomplete: 'new-password', minlength: User.password_length.first, maxlength: User.password_length.last }, hint: t('simple_form.hints.defaults.password'), disabled: current_account.suspended?
+ = f.input :password,
+ disabled: current_account.suspended?,
+ hint: t('simple_form.hints.defaults.password'),
+ input_html: { 'aria-label': t('simple_form.labels.defaults.new_password'), autocomplete: 'new-password', minlength: User.password_length.first, maxlength: User.password_length.last },
+ label: t('simple_form.labels.defaults.new_password'),
+ wrapper: :with_label
.fields-row__column.fields-group.fields-row__column-6
- = f.input :password_confirmation, wrapper: :with_label, label: t('simple_form.labels.defaults.confirm_new_password'), input_html: { 'aria-label': t('simple_form.labels.defaults.confirm_new_password'), autocomplete: 'new-password' }, disabled: current_account.suspended?
+ = f.input :password_confirmation,
+ disabled: current_account.suspended?,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.confirm_new_password'), autocomplete: 'new-password' },
+ label: t('simple_form.labels.defaults.confirm_new_password'),
+ wrapper: :with_label
.actions
= f.button :button, t('generic.save_changes'), type: :submit, class: 'button', disabled: current_account.suspended?
diff --git a/app/views/auth/registrations/new.html.haml b/app/views/auth/registrations/new.html.haml
index 4cac7b51b..1e5aac297 100644
--- a/app/views/auth/registrations/new.html.haml
+++ b/app/views/auth/registrations/new.html.haml
@@ -19,25 +19,61 @@
.fields-group
= f.simple_fields_for :account do |ff|
- = ff.input :username, wrapper: :with_label, label: false, required: true, input_html: { 'aria-label': t('simple_form.labels.defaults.username'), autocomplete: 'off', placeholder: t('simple_form.labels.defaults.username'), pattern: '[a-zA-Z0-9_]+', maxlength: 30 }, append: "@#{site_hostname}"
- = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label': t('simple_form.labels.defaults.email'), autocomplete: 'username' }, hint: false
- = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label': t('simple_form.labels.defaults.password'), autocomplete: 'new-password', minlength: User.password_length.first, maxlength: User.password_length.last }, hint: false
- = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label': t('simple_form.labels.defaults.confirm_password'), autocomplete: 'new-password' }, hint: false
- = f.input :confirm_password, as: :string, placeholder: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), required: false, input_html: { 'aria-label': t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), autocomplete: 'off' }, hint: false
- = f.input :website, as: :url, wrapper: :with_label, label: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label': t('simple_form.labels.defaults.honeypot', label: 'Website'), autocomplete: 'off' }
+ = ff.input :username,
+ append: "@#{site_hostname}",
+ input_html: { 'aria-label': t('simple_form.labels.defaults.username'), autocomplete: 'off', placeholder: t('simple_form.labels.defaults.username'), pattern: '[a-zA-Z0-9_]+', maxlength: 30 },
+ label: false,
+ required: true,
+ wrapper: :with_label
+ = f.input :email,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.email'), autocomplete: 'username' },
+ placeholder: t('simple_form.labels.defaults.email'),
+ required: true
+ = f.input :password,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.password'), autocomplete: 'new-password', minlength: User.password_length.first, maxlength: User.password_length.last },
+ placeholder: t('simple_form.labels.defaults.password'),
+ required: true
+ = f.input :password_confirmation,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.confirm_password'), autocomplete: 'new-password' },
+ placeholder: t('simple_form.labels.defaults.confirm_password'),
+ required: true
+ = f.input :confirm_password,
+ as: :string,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), autocomplete: 'off' },
+ placeholder: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')),
+ required: false
+ = f.input :website,
+ as: :url,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.honeypot', label: 'Website'), autocomplete: 'off' },
+ label: t('simple_form.labels.defaults.honeypot', label: 'Website'),
+ required: false,
+ wrapper: :with_label
- if approved_registrations? && @invite.blank?
%p.lead= t('auth.sign_up.manual_review', domain: site_hostname)
.fields-group
= f.simple_fields_for :invite_request, resource.invite_request || resource.build_invite_request do |invite_request_fields|
- = invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: Setting.require_invite_text, label: false, hint: false
+ = invite_request_fields.input :text,
+ as: :text,
+ hint: false,
+ label: false,
+ required: Setting.require_invite_text,
+ wrapper: :with_block_label
= hidden_field_tag :accept, params[:accept]
= f.input :invite_code, as: :hidden
.fields-group
- = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.privacy_policy_agreement_html', rules_path: about_more_path, privacy_policy_path: privacy_policy_path), required: true
+ = f.input :agreement,
+ as: :boolean,
+ label: t('auth.privacy_policy_agreement_html', rules_path: about_more_path, privacy_policy_path: privacy_policy_path),
+ required: true,
+ wrapper: :with_label
.actions
= f.button :button, @invite.present? ? t('auth.register') : sign_up_message, type: :submit
diff --git a/app/views/auth/sessions/new.html.haml b/app/views/auth/sessions/new.html.haml
index 7914e0157..89903581a 100644
--- a/app/views/auth/sessions/new.html.haml
+++ b/app/views/auth/sessions/new.html.haml
@@ -10,11 +10,25 @@
%p.lead= t('auth.sign_in.preamble_html', domain: site_hostname)
.fields-group
- if use_seamless_external_login?
- = f.input :email, autofocus: true, wrapper: :with_label, label: t('simple_form.labels.defaults.username_or_email'), input_html: { 'aria-label': t('simple_form.labels.defaults.username_or_email') }, hint: false
+ = f.input :email,
+ autofocus: true,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.username_or_email') },
+ label: t('simple_form.labels.defaults.username_or_email'),
+ wrapper: :with_label
- else
- = f.input :email, autofocus: true, wrapper: :with_label, label: t('simple_form.labels.defaults.email'), input_html: { 'aria-label': t('simple_form.labels.defaults.email') }, hint: false
+ = f.input :email,
+ autofocus: true,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.email') },
+ label: t('simple_form.labels.defaults.email'),
+ wrapper: :with_label
.fields-group
- = f.input :password, wrapper: :with_label, label: t('simple_form.labels.defaults.password'), input_html: { 'aria-label': t('simple_form.labels.defaults.password'), autocomplete: 'current-password' }, hint: false
+ = f.input :password,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.password'), autocomplete: 'current-password' },
+ label: t('simple_form.labels.defaults.password'),
+ wrapper: :with_label
.actions
= f.button :button, t('auth.login'), type: :submit
diff --git a/app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml b/app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml
index 8cc2c8561..30e97a68c 100644
--- a/app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml
+++ b/app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml
@@ -5,7 +5,12 @@
%p.hint.authentication-hint= t('simple_form.hints.sessions.otp')
.fields-group
- = f.input :otp_attempt, type: :number, wrapper: :with_label, label: t('simple_form.labels.defaults.otp_attempt'), input_html: { 'aria-label': t('simple_form.labels.defaults.otp_attempt'), autocomplete: 'one-time-code' }, autofocus: true
+ = f.input :otp_attempt,
+ autofocus: true,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.otp_attempt'), autocomplete: 'one-time-code' },
+ label: t('simple_form.labels.defaults.otp_attempt'),
+ type: :number,
+ wrapper: :with_label
.actions
= f.button :button, t('auth.login'), type: :submit
diff --git a/app/views/auth/setup/show.html.haml b/app/views/auth/setup/show.html.haml
index 97c826d70..713f77470 100644
--- a/app/views/auth/setup/show.html.haml
+++ b/app/views/auth/setup/show.html.haml
@@ -16,7 +16,10 @@
%p.lead= t('auth.setup.email_below_hint_html')
.fields-group
- = f.input :email, required: true, hint: false, input_html: { 'aria-label': t('simple_form.labels.defaults.email'), autocomplete: 'off' }
+ = f.input :email,
+ hint: false,
+ input_html: { 'aria-label': t('simple_form.labels.defaults.email'), autocomplete: 'off' },
+ required: true
.actions
= f.button :button, t('auth.resend_confirmation'), type: :submit, class: 'button timer-button', disabled: true
diff --git a/app/views/custom_css/show.css.erb b/app/views/custom_css/show.css.erb
index 9cd38fb37..78da809ed 100644
--- a/app/views/custom_css/show.css.erb
+++ b/app/views/custom_css/show.css.erb
@@ -1,8 +1,8 @@
-<%- if Setting.custom_css.present? %>
-<%= raw Setting.custom_css %>
+<%- if custom_css_styles.present? %>
+<%= raw custom_css_styles %>
<%- end %>
-<%- UserRole.where(highlighted: true).select { |role| role.color.present? }.each do |role| %>
+<%- @user_roles.each do |role| %>
.user-role-<%= role.id %> {
--user-role-accent: <%= role.color %>;
}
diff --git a/app/views/disputes/strikes/show.html.haml b/app/views/disputes/strikes/show.html.haml
index 62695b155..5f7213882 100644
--- a/app/views/disputes/strikes/show.html.haml
+++ b/app/views/disputes/strikes/show.html.haml
@@ -21,7 +21,7 @@
.report-header
.report-header__card
- = render 'card', strike: @strike
+ = render 'disputes/strikes/card', strike: @strike
.report-header__details
.report-header__details__item
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index 1244fd5eb..c72107367 100755
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -14,12 +14,12 @@
%link{ rel: 'icon', href: '/favicon.ico', type: 'image/x-icon' }/
- %w(16 32 48).each do |size|
- %link{ rel: 'icon', sizes: "#{size}x#{size}", href: asset_pack_path("media/icons/favicon-#{size}x#{size}.png"), type: 'image/png' }/
+ %link{ rel: 'icon', sizes: "#{size}x#{size}", href: frontend_asset_path("icons/favicon-#{size}x#{size}.png"), type: 'image/png' }/
- %w(57 60 72 76 114 120 144 152 167 180 1024).each do |size|
- %link{ rel: 'apple-touch-icon', sizes: "#{size}x#{size}", href: asset_pack_path("media/icons/apple-touch-icon-#{size}x#{size}.png") }/
+ %link{ rel: 'apple-touch-icon', sizes: "#{size}x#{size}", href: frontend_asset_path("icons/apple-touch-icon-#{size}x#{size}.png") }/
- %link{ rel: 'mask-icon', href: asset_pack_path('media/images/logo-symbol-icon.svg'), color: '#6364FF' }/
+ %link{ rel: 'mask-icon', href: frontend_asset_path('images/logo-symbol-icon.svg'), color: '#6364FF' }/
%link{ rel: 'manifest', href: manifest_path(format: :json) }/
%meta{ name: 'theme-color', content: '#191b22' }/
%meta{ name: 'apple-mobile-web-app-capable', content: 'yes' }/
@@ -28,12 +28,14 @@
= stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous'
= stylesheet_pack_tag current_theme, media: 'all', crossorigin: 'anonymous'
+ -# Needed for the wicg-inert polyfill. It needs to be on it's own